| febs-server/febs-server-hr/src/main/java/cc/mrbird/febs/server/hr/controller/EmpOpenArchivesController.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
| febs-server/febs-server-hr/src/main/java/cc/mrbird/febs/server/hr/entity/EmpBaseInfo.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
| febs-server/febs-server-hr/src/main/java/cc/mrbird/febs/server/hr/entity/EmpOpenArchives.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
| febs-server/febs-server-hr/src/main/java/cc/mrbird/febs/server/hr/mapper/EmpOpenArchivesMapper.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
| febs-server/febs-server-hr/src/main/java/cc/mrbird/febs/server/hr/mapper/EmpOpenArchivesMapper.xml | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
| febs-server/febs-server-hr/src/main/java/cc/mrbird/febs/server/hr/service/IEmpOpenArchivesService.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
| febs-server/febs-server-hr/src/main/java/cc/mrbird/febs/server/hr/service/impl/EmpOpenArchivesServiceImpl.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 |
febs-server/febs-server-hr/src/main/java/cc/mrbird/febs/server/hr/controller/EmpOpenArchivesController.java
New file @@ -0,0 +1,106 @@ package cc.mrbird.febs.server.hr.controller; import cc.mrbird.febs.server.hr.entity.EmpOpenArchives; import cc.mrbird.febs.server.hr.service.IEmpOpenArchivesService; import cc.mrbird.febs.common.core.entity.FebsResponse; import cc.mrbird.febs.common.core.entity.QueryRequest; import cc.mrbird.febs.common.core.exception.FebsException; import cc.mrbird.febs.common.core.utils.FebsUtil; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; import lombok.extern.slf4j.Slf4j; import lombok.RequiredArgsConstructor; import org.springframework.security.access.prepost.PreAuthorize; import org.springframework.validation.annotation.Validated; import org.springframework.web.bind.annotation.*; import javax.validation.Valid; import java.util.Map; /** * name:EmpOpenarchives * package:cc.mrbird.febs.server.hr.controller * description:员工打开档案记录控制器 * * @author luoyibo * @date 2021-03-02 22:22:41 * @since JDK1.8 */ @Api(tags = "员工打开档案记录管理接口") @Slf4j @Validated @RestController @RequestMapping("empOpenArchives") @RequiredArgsConstructor public class EmpOpenArchivesController { private final IEmpOpenArchivesService empOpenArchivesService; @ApiOperation(value = "员工打开档案记录无翻页列表") @GetMapping @PreAuthorize("hasAuthority('empOpenarchives:list')") public FebsResponse getAllEmpOpenArchivess(EmpOpenArchives empOpenarchives) { return new FebsResponse().data(empOpenArchivesService.findEmpOpenarchivess(empOpenarchives)); } @ApiOperation(value = "员工打开档案记录翻页列表") @GetMapping("list") @PreAuthorize("hasAuthority('empOpenarchives:list')") public FebsResponse empOpenarchivesList(QueryRequest request, EmpOpenArchives empOpenarchives) { Map <String, Object> dataTable = FebsUtil.getDataTable(this.empOpenArchivesService.findEmpOpenarchivess(request, empOpenarchives)); return new FebsResponse().data(dataTable); } @ApiOperation(value = "员工打开档案记录增加") @PostMapping @PreAuthorize("hasAuthority('empOpenarchives:add')") public void addEmpOpenarchives(@Valid EmpOpenArchives empOpenarchives) throws FebsException { try { this.empOpenArchivesService.createEmpOpenarchives(empOpenarchives); } catch (Exception e) { String message = "新增员工打开档案记录失败"; log.error(message, e); throw new FebsException(message); } } @ApiOperation(value = "员工打开档案记录物理删除") @DeleteMapping @PreAuthorize("hasAuthority('empOpenarchives:delete')") public void deleteEmpOpenarchives(EmpOpenArchives empOpenarchives) throws FebsException { try { this.empOpenArchivesService.deleteEmpOpenarchives(empOpenarchives); } catch (Exception e) { String message = "删除员工打开档案记录失败"; log.error(message, e); throw new FebsException(message); } } @ApiOperation(value = "员工打开档案记录逻辑删除") @DeleteMapping("{ids}") @PreAuthorize("hasAuthority('empOpenarchives:delete')") public void logicDeleteEmpOpenarchives(@PathVariable("ids") String ids) throws FebsException { try { this.empOpenArchivesService.logicDelEmpOpenarchives(ids); } catch (Exception e) { String message = "逻辑删除员工打开档案记录失败"; log.error(message, e); throw new FebsException(message); } } @ApiOperation(value = "员工打开档案记录修改") @PutMapping @PreAuthorize("hasAuthority('empOpenarchives:update')") public void updateEmpOpenarchives(EmpOpenArchives empOpenarchives) throws FebsException { try { this.empOpenArchivesService.updateEmpOpenarchives(empOpenarchives); } catch (Exception e) { String message = "修改员工打开档案记录失败"; log.error(message, e); throw new FebsException(message); } } } febs-server/febs-server-hr/src/main/java/cc/mrbird/febs/server/hr/entity/EmpBaseInfo.java
@@ -312,6 +312,13 @@ @ExcelField(value = "离职类型",writeConverterExp = "1=正常离职,2=自动离职,3=公司劝退,4=公司辞退,5=试用期内" ) private String dimissionType; @FieldInfo(name = "entryType", type = "varchar", explain = "入职类型") @TableField("entryType") private String entryType = "01"; @FieldInfo(name = "entryTypeName", type = "varchar", explain = "入职类型") @TableField(exist = false) private String entryTypeName = "正常入职"; @FieldInfo(name = "createTime", type = "datetime", explain = "记录创建时间") @TableField("createTime") febs-server/febs-server-hr/src/main/java/cc/mrbird/febs/server/hr/entity/EmpOpenArchives.java
New file @@ -0,0 +1,97 @@ package cc.mrbird.febs.server.hr.entity; import java.io.Serializable; import java.util.Date; import cc.mrbird.febs.common.core.annotation.FieldInfo; import cc.mrbird.febs.common.core.utils.DateDeSerializer; import cc.mrbird.febs.common.core.utils.DateSerializer; import cc.mrbird.febs.common.core.utils.DateTimeDeserializer; import cc.mrbird.febs.common.core.utils.DateTimeSerializer; import com.fasterxml.jackson.databind.annotation.JsonDeserialize; import com.fasterxml.jackson.databind.annotation.JsonSerialize; import lombok.Data; import com.baomidou.mybatisplus.annotation.TableField; import com.baomidou.mybatisplus.annotation.TableId; import com.baomidou.mybatisplus.annotation.TableName; import com.baomidou.mybatisplus.annotation.Version; import org.springframework.format.annotation.DateTimeFormat; /** * name:EmpOpenarchives * package:cc.mrbird.febs.server.hr.controller * description:员工打开档案记录数据表映射实体 * * @author luoyibo * @date 2021-03-02 22:22:41 * @since JDK1.8 */ @Data @TableName("t_emp_openarchives") public class EmpOpenArchives implements Serializable { private static final long serialVersionUID = 7460933384023908695L; @FieldInfo(name = "openArchivesId", type = "bigint", explain = "打开档案Id") @TableId(value = "openArchivesId") private Long openArchivesId = 0L; @FieldInfo(name = "openType", type = "varchar", explain = "打开类型") @TableField("openType") private String openType = ""; @FieldInfo(name = "openDate", type = "date", explain = "打开日期") @TableField("openDate") @JsonSerialize(using = DateSerializer.class) @JsonDeserialize(using = DateDeSerializer.class) @DateTimeFormat(pattern = "yyyy-MM-dd") private Date openDate; @FieldInfo(name = "empId", type = "bigint", explain = "员工Id") @TableField("empId") private Long empId = 0L; @FieldInfo(name = "empName", type = "varchar", explain = "员工姓名") @TableField("empName") private String empName = ""; @FieldInfo(name = "certificateNumb", type = "varchar", explain = "证件号码") @TableField("certificateNumb") private String certificateNumb = ""; @FieldInfo(name = "remark", type = "varchar", explain = "备注") @TableField("remark") private String remark = ""; @FieldInfo(name = "createTime", type = "datetime", explain = "记录创建时间") @TableField("createTime") @JsonSerialize(using = DateTimeSerializer.class) @JsonDeserialize(using = DateTimeDeserializer.class) @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") private Date createTime; @FieldInfo(name = "creator", type = "varchar", explain = "记录创建人") @TableField("creator") private String creator = ""; @FieldInfo(name = "modifyTime", type = "datetime", explain = "记录最后更新时间") @TableField("modifyTime") @JsonSerialize(using = DateTimeSerializer.class) @JsonDeserialize(using = DateTimeDeserializer.class) @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") private Date modifyTime; @FieldInfo(name = "modifier", type = "varchar", explain = "记录最后更新人") @TableField("modifier") private String modifier = ""; @FieldInfo(name = "delFlag", type = "bit", explain = "记录删除标志。0-未删除 1-已删除,默认0") @TableField("delFlag") private Integer delFlag = 0; @FieldInfo(name = "version", type = "int", explain = "记录版本号,用来进行乐观锁控制") @TableField("version") @Version private Integer version = 0; } febs-server/febs-server-hr/src/main/java/cc/mrbird/febs/server/hr/mapper/EmpOpenArchivesMapper.java
New file @@ -0,0 +1,41 @@ package cc.mrbird.febs.server.hr.mapper; import cc.mrbird.febs.server.hr.entity.EmpOpenArchives; import com.baomidou.mybatisplus.core.mapper.BaseMapper; import org.apache.ibatis.annotations.Param; import org.apache.ibatis.annotations.Update; import java.util.List; /** * name:EmpOpenarchives * package:cc.mrbird.febs.server.hr.controller * description:员工打开档案记录实体Mapper * * @author luoyibo * @date 2021-03-02 22:22:41 * @since JDK1.8 */ public interface EmpOpenArchivesMapper extends BaseMapper<EmpOpenArchives> { /** * 根据Id批量逻辑删除记录 * <p> * date luoyibo * * @param list 待删除Id * @param operatorId 操作员Id * @return void * @author: 2021-03-02 22:22:41 */ @Update("<script> " + " UPDATE t_emp_openarchives SET delFlag = 1,\n" + " modifyTime = NOW(),\n" + " modifier = #{operatorId}, \n" + " version = version+1 \n" + " WHERE openArchivesId IN \n" + " <foreach item=\"delId\" collection=\"list\" open=\"(\" close=\")\" separator=\",\">\n" + " #{delId} \n" + " </foreach>\n" + "</script>") void logicDeleteByIds(@Param("list") List<String> list, @Param("operatorId") String operatorId); } febs-server/febs-server-hr/src/main/java/cc/mrbird/febs/server/hr/mapper/EmpOpenArchivesMapper.xml
New file @@ -0,0 +1,5 @@ <?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd"> <mapper namespace="cc.mrbird.febs.server.hr.mapper.EmpOpenArchivesMapper"> </mapper> febs-server/febs-server-hr/src/main/java/cc/mrbird/febs/server/hr/service/IEmpOpenArchivesService.java
New file @@ -0,0 +1,69 @@ package cc.mrbird.febs.server.hr.service; import cc.mrbird.febs.server.hr.entity.EmpOpenArchives; import cc.mrbird.febs.common.core.entity.QueryRequest; import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.extension.service.IService; import java.util.List; /** * name:EmpOpenarchives * package:cc.mrbird.febs.server.hr.controller * description:员工打开档案记录服务接口 * * @author luoyibo * @date 2021-03-02 22:22:41 * @since JDK1.8 */ public interface IEmpOpenArchivesService extends IService<EmpOpenArchives> { /** * 查询(分页) * * @param request QueryRequest * @param empOpenarchives empOpenarchives * @return IPage<EmpOpenarchives> */ IPage<EmpOpenArchives> findEmpOpenarchivess(QueryRequest request, EmpOpenArchives empOpenarchives); /** * 查询(所有) * * @param empOpenarchives empOpenarchives * @return List<EmpOpenarchives> */ List<EmpOpenArchives> findEmpOpenarchivess(EmpOpenArchives empOpenarchives); /** * 新增 * * @param empOpenarchives empOpenarchives */ void createEmpOpenarchives(EmpOpenArchives empOpenarchives); /** * 修改 * * @param empOpenarchives empOpenarchives */ void updateEmpOpenarchives(EmpOpenArchives empOpenarchives); /** * 删除 * * @param empOpenarchives empOpenarchives */ void deleteEmpOpenarchives(EmpOpenArchives empOpenarchives); /** * 根据Id批量逻辑删除记录 * <p> * date 2021-01-28 10:48 * * @param ids 待删除Id * @return void * @author: luoyibo */ void logicDelEmpOpenarchives(String ids); } febs-server/febs-server-hr/src/main/java/cc/mrbird/febs/server/hr/service/impl/EmpOpenArchivesServiceImpl.java
New file @@ -0,0 +1,111 @@ package cc.mrbird.febs.server.hr.service.impl; import cc.mrbird.febs.common.core.constant.ModuleCode; import cc.mrbird.febs.server.hr.entity.EmpBaseInfo; import cc.mrbird.febs.server.hr.entity.EmpOpenArchives; import cc.mrbird.febs.server.hr.mapper.EmpOpenArchivesMapper; import cc.mrbird.febs.server.hr.service.IEmpBaseInfoService; import cc.mrbird.febs.server.hr.service.IEmpOpenArchivesService; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; import org.springframework.transaction.annotation.Propagation; import lombok.RequiredArgsConstructor; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import cc.mrbird.febs.common.core.entity.QueryRequest; import cc.mrbird.febs.common.core.utils.FebsUtil; import cc.mrbird.febs.common.core.utils.SequenceUtil; import java.util.*; /** * name:EmpOpenarchives * package:cc.mrbird.febs.server.hr.controller * description:员工打开档案记录服务接口实现 * * @author luoyibo * @date 2021-03-02 22:22:41 * @since JDK1.8 */ @Service @RequiredArgsConstructor @Transactional(propagation = Propagation.SUPPORTS, readOnly = true) class EmpOpenArchivesServiceImpl extends ServiceImpl<EmpOpenArchivesMapper, EmpOpenArchives> implements IEmpOpenArchivesService { private final EmpOpenArchivesMapper empOpenarchivesMapper; private final IEmpBaseInfoService empBaseInfoService; private final String operatorId = Optional.ofNullable(FebsUtil.getCurrentUser()) .map(u -> u.getUserId().toString()) .orElse("1"); @Override public IPage<EmpOpenArchives> findEmpOpenarchivess(QueryRequest request, EmpOpenArchives empOpenarchives) { LambdaQueryWrapper<EmpOpenArchives> queryWrapper = new LambdaQueryWrapper<>(); queryWrapper.eq(EmpOpenArchives::getDelFlag, 0); Page<EmpOpenArchives> page = new Page<>(request.getPageNum(), request.getPageSize()); return this.page(page, queryWrapper); } @Override public List<EmpOpenArchives> findEmpOpenarchivess(EmpOpenArchives empOpenarchives) { LambdaQueryWrapper<EmpOpenArchives> queryWrapper = new LambdaQueryWrapper<>(); queryWrapper.eq(EmpOpenArchives::getDelFlag, 0); return this.baseMapper.selectList(queryWrapper); } @Override @Transactional(rollbackFor = Exception.class) public void createEmpOpenarchives(EmpOpenArchives empOpenarchives) { empOpenarchives.setOpenArchivesId(SequenceUtil.generateId(0L, ModuleCode.HR_EMPLOYEE)); empOpenarchives.setCreator(operatorId); empOpenarchives.setModifier(operatorId); this.save(empOpenarchives); EmpBaseInfo empBaseInfo = empBaseInfoService.getById(empOpenarchives.getEmpId()); empBaseInfo.setEntryDate(empOpenarchives.getOpenDate()); empBaseInfo.setEntryType(empOpenarchives.getOpenType()); empBaseInfo.setEmpStatus("0"); empBaseInfo.setModifyTime(new Date()); empBaseInfo.setModifier(operatorId); empBaseInfoService.saveOrUpdate(empBaseInfo); } @Override @Transactional(rollbackFor = Exception.class) public void updateEmpOpenarchives(EmpOpenArchives empOpenarchives) { EmpOpenArchives dbData = this.getById(empOpenarchives.getOpenArchivesId()); empOpenarchives.setCreateTime(dbData.getCreateTime()); empOpenarchives.setCreator(dbData.getCreator()); empOpenarchives.setDelFlag(dbData.getDelFlag()); empOpenarchives.setModifyTime(new Date()); empOpenarchives.setModifier(operatorId); this.saveOrUpdate(empOpenarchives); } @Override @Transactional(rollbackFor = Exception.class) public void deleteEmpOpenarchives(EmpOpenArchives empOpenarchives) { LambdaQueryWrapper<EmpOpenArchives> wrapper = new LambdaQueryWrapper<>(); // TODO 设置删除条件 this.remove(wrapper); } /** * 根据Id批量逻辑删除记录 * <p> * date 2021-01-28 10:48 * * @param ids 待删除Id * @return void * @author: luoyibo */ @Override @Transactional(rollbackFor = Exception.class) public void logicDelEmpOpenarchives(String ids) { String[] str = ids.split(","); List<String> list = new ArrayList<>(Arrays.asList(str)); empOpenarchivesMapper.logicDeleteByIds(list, operatorId); } }