luoyb
2021-03-02 f961867e0e1ca3251928b1134eb66549a6a89ee3
Merge branch 'lybfix20210302'
6个文件已添加
1个文件已修改
436 ■■■■■ 已修改文件
febs-server/febs-server-hr/src/main/java/cc/mrbird/febs/server/hr/controller/EmpOpenArchivesController.java 106 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
febs-server/febs-server-hr/src/main/java/cc/mrbird/febs/server/hr/entity/EmpBaseInfo.java 7 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
febs-server/febs-server-hr/src/main/java/cc/mrbird/febs/server/hr/entity/EmpOpenArchives.java 97 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
febs-server/febs-server-hr/src/main/java/cc/mrbird/febs/server/hr/mapper/EmpOpenArchivesMapper.java 41 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
febs-server/febs-server-hr/src/main/java/cc/mrbird/febs/server/hr/mapper/EmpOpenArchivesMapper.xml 5 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
febs-server/febs-server-hr/src/main/java/cc/mrbird/febs/server/hr/service/IEmpOpenArchivesService.java 69 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
febs-server/febs-server-hr/src/main/java/cc/mrbird/febs/server/hr/service/impl/EmpOpenArchivesServiceImpl.java 111 ●●●●● 补丁 | 查看 | 原始文档 | 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);
    }
}