luoyb
2021-06-18 543941f345319f29f92d9be2529d41868bc3cf80
febs-server/febs-server-hr/src/main/java/cc/mrbird/febs/server/hr/controller/EmpBaseInfoController.java
@@ -1,58 +1,41 @@
package cc.mrbird.febs.server.hr.controller;
import cc.mrbird.febs.common.core.entity.FebsResponse;
import cc.mrbird.febs.common.core.entity.QueryRequest;
import cc.mrbird.febs.common.core.entity.constant.StringConstant;
import cc.mrbird.febs.common.core.entity.system.DicItem;
import cc.mrbird.febs.common.core.exception.FebsException;
import cc.mrbird.febs.common.core.utils.FebsUtil;
import cc.mrbird.febs.server.hr.annotation.ControllerEndpoint;
import cc.mrbird.febs.server.hr.entity.EmpBaseInfo;
import cc.mrbird.febs.server.hr.entity.EmpDimissionLog;
import cc.mrbird.febs.server.hr.entity.EmpJobChange;
import cc.mrbird.febs.server.hr.feign.IRemoteDeptService;
import cc.mrbird.febs.server.hr.feign.IRemoteDicItemService;
import cc.mrbird.febs.server.hr.service.*;
import cc.mrbird.febs.server.hr.util.PoiExportExcel;
import cc.mrbird.febs.server.hr.util.PoiImportExcel;
import cn.hutool.core.date.DateUtil;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.wuwenze.poi.ExcelKit;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.springframework.security.access.prepost.PreAuthorize;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.*;
import org.springframework.web.multipart.MultipartFile;
import javax.servlet.http.HttpServletResponse;
import javax.validation.Valid;
import javax.validation.constraints.NotBlank;
import java.io.IOException;
import java.io.InputStream;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
import java.util.Map;
import javax.servlet.http.HttpServletResponse;
import javax.validation.Valid;
import javax.validation.constraints.NotBlank;
import cc.mrbird.febs.common.core.annotation.FieldInfo;
import cc.mrbird.febs.common.core.entity.system.SystemUser;
import cc.mrbird.febs.server.hr.annotation.ControllerEndpoint;
import cc.mrbird.febs.server.hr.entity.EmpDimissionLog;
import cc.mrbird.febs.server.hr.entity.EmpJobChange;
import cn.hutool.core.annotation.AnnotationUtil;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.wuwenze.poi.ExcelKit;
import org.springframework.security.access.prepost.PreAuthorize;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.*;
import org.springframework.web.multipart.MultipartFile;
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 cc.mrbird.febs.server.hr.entity.EmpBaseInfo;
import cc.mrbird.febs.server.hr.feign.IRemoteDeptService;
import cc.mrbird.febs.server.hr.feign.IRemoteUserService;
import cc.mrbird.febs.server.hr.service.IEmpAccidentCasesService;
import cc.mrbird.febs.server.hr.service.IEmpBadRecordService;
import cc.mrbird.febs.server.hr.service.IEmpBaseInfoService;
import cc.mrbird.febs.server.hr.service.IEmpContractInfoService;
import cc.mrbird.febs.server.hr.service.IEmpDimissionAttendService;
import cc.mrbird.febs.server.hr.service.IEmpInsuranceService;
import cc.mrbird.febs.server.hr.service.IEmpLaborTroubleService;
import cc.mrbird.febs.server.hr.service.IEmpLeaveInfoService;
import cc.mrbird.febs.server.hr.service.IEmpOccupationalService;
import cc.mrbird.febs.server.hr.service.IEmpPhysicalExamService;
import cc.mrbird.febs.server.hr.service.IEmpRemarkinfoService;
import cc.mrbird.febs.server.hr.service.IEmpResignService;
import cc.mrbird.febs.server.hr.service.IEmpUnemploymentService;
import cc.mrbird.febs.server.hr.service.IEmpWorkExperienceService;
import cc.mrbird.febs.server.hr.util.PoiExportExcel;
import cc.mrbird.febs.server.hr.util.PoiImportExcel;
import cn.hutool.core.date.DateUtil;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j;
/**
 * name:EmpBaseInfo
@@ -70,7 +53,7 @@
@RequestMapping("empBaseInfo")
@RequiredArgsConstructor
public class EmpBaseInfoController {
    private final IRemoteDeptService remoteDeptService;
    private final IEmpBaseInfoService empBaseInfoService;
    private final IEmpWorkExperienceService empWorkExperienceService;
    private final IEmpPhysicalExamService empPhysicalExamService;
@@ -85,8 +68,7 @@
    private final IEmpLaborTroubleService empLaborTroubleService;
    private final IEmpBadRecordService empBadRecordService;
    private final IEmpRemarkinfoService empRemarkinfoService;
    private final IRemoteUserService remoteUserService;
    private final IRemoteDeptService remoteDeptService;
    private final IRemoteDicItemService dicItemService;
    @ApiOperation(value = "人员基本信息无翻页列表")
    @GetMapping
@@ -116,6 +98,9 @@
    public void addEmpBaseInfo(@Valid EmpBaseInfo empBaseinfo) throws FebsException {
       if(this.empBaseInfoService.verifyEmpNumb(empBaseinfo)){
           throw new FebsException("已存在此员工编号:" + empBaseinfo.getEmpNumb());
       }
       if(this.empBaseInfoService.verifyCertificateNumb(empBaseinfo)){
           throw new FebsException("已存在此身份证号:" + empBaseinfo.getCertificateNumb());
       }
        try {
            this.empBaseInfoService.createEmpBaseInfo(empBaseinfo);
@@ -182,10 +167,11 @@
    @GetMapping("options")
    public FebsResponse roles() {
        QueryWrapper<EmpBaseInfo> wrapper=new QueryWrapper();
        wrapper.eq("empStatus",0);
        wrapper.eq("delFlag",0);
        wrapper.orderByDesc("createTime");
        List<EmpBaseInfo> allRoles = empBaseInfoService.list(wrapper);
        wrapper.eq("a.empStatus",0);
        wrapper.eq("a.delFlag",0);
        wrapper.orderByDesc("a.createTime");
        wrapper.in("c.dept_Id", remoteDeptService.userRightDepts().split(StringConstant.COMMA));
        List<EmpBaseInfo> allRoles = empBaseInfoService.listAll(wrapper);
        return new FebsResponse().data(allRoles);
    }
@@ -226,34 +212,38 @@
      InputStream in;
      List<List<List<Object>>> listObject;
      List<String>  returnList = new ArrayList<>();
      List<DicItem> dicItems = dicItemService.getAllDicitemsAll();
      try {
         if (!file.isEmpty()) {
            in = file.getInputStream();
            listObject = PoiImportExcel.getMulitListByExcel(in, file.getOriginalFilename());
            in.close();
            empBaseInfoService.importEmpBaseInfo(listObject.get(0),returnList);
            empBaseInfoService.importEmpBaseInfo(listObject.get(0),returnList,dicItems);
            empWorkExperienceService.importEmpWorkExperience(listObject.get(1),returnList);
            empPhysicalExamService.importEmpPhysicalExam(listObject.get(2),returnList);
            empContractInfoService.importEmpContractInfo(listObject.get(3),returnList);
            empPhysicalExamService.importEmpPhysicalExam(listObject.get(2),returnList,dicItems);
            empContractInfoService.importEmpContractInfo(listObject.get(3),returnList,dicItems);
            empDimissionAttendService.importEmpDimissionAttend(listObject.get(4),returnList);
            empLeaveInfoService.importEmpLeaveInfo(listObject.get(5),returnList);
            empLeaveInfoService.importEmpLeaveInfo(listObject.get(5),returnList,dicItems);
            empResignService.importEmpResign(listObject.get(6),returnList);
            empUnemploymentService.importEmpUnemployment(listObject.get(7),returnList);
            empInsuranceService.importEmpInsurance(listObject.get(8),returnList);
            empInsuranceService.importEmpInsurance(listObject.get(8),returnList,dicItems);
            empAccidentCasesService.importEmpAccidentCases(listObject.get(9),returnList);
            empOccupationalService.importEmpOccupational(listObject.get(10),returnList);
            empLaborTroubleService.importEmpLaborTrouble(listObject.get(11),returnList);
            empLaborTroubleService.importEmpLaborTrouble(listObject.get(11),returnList,dicItems);
            empBadRecordService.importEmpBadRecord(listObject.get(12),returnList);
            empRemarkinfoService.importEmpRemarkInfo(listObject.get(13),returnList);
         }
      } catch (Exception e) {
      }catch (IndexOutOfBoundsException e){
            log.error("导入员工,下表越界", e);
        }catch (Exception e) {
         log.error("导入员工", e);
      }
             return new FebsResponse().data(returnList);
      return new FebsResponse().data(returnList);
   }
    @ApiOperation(value = "关闭员工档案")
    @PostMapping("dimission")
    @PreAuthorize("hasAuthority('empBaseinfo:dimission')")
    public void dimissionEmp(EmpDimissionLog empDimissionLog) throws FebsException {
        try {
            this.empBaseInfoService.closeEmpArchives(empDimissionLog);
@@ -265,6 +255,7 @@
    }
    @ApiOperation(value = "员工岗位变更")
    @PostMapping("jobChange")
    @PreAuthorize("hasAuthority('empBaseinfo:jobChange')")
    public void changeEmpJob(EmpJobChange empJobChange) throws FebsException {
        try {
            this.empBaseInfoService.changeEmpJob(empJobChange);