From 3ea3ace1c157e5c124b524c5b233519383c2f802 Mon Sep 17 00:00:00 2001
From: yz_08 <yz_0812@outlook.com>
Date: 星期五, 12 三月 2021 14:48:17 +0800
Subject: [PATCH] 修改id

---
 febs-server/febs-server-hr/src/main/java/cc/mrbird/febs/server/hr/service/impl/EmpBaseInfoServiceImpl.java |  150 +++++++++++++++++++++++++++++--------------------
 1 files changed, 89 insertions(+), 61 deletions(-)

diff --git a/febs-server/febs-server-hr/src/main/java/cc/mrbird/febs/server/hr/service/impl/EmpBaseInfoServiceImpl.java b/febs-server/febs-server-hr/src/main/java/cc/mrbird/febs/server/hr/service/impl/EmpBaseInfoServiceImpl.java
index 1af47de..74c080d 100644
--- a/febs-server/febs-server-hr/src/main/java/cc/mrbird/febs/server/hr/service/impl/EmpBaseInfoServiceImpl.java
+++ b/febs-server/febs-server-hr/src/main/java/cc/mrbird/febs/server/hr/service/impl/EmpBaseInfoServiceImpl.java
@@ -1,55 +1,48 @@
 package cc.mrbird.febs.server.hr.service.impl;
 
-import java.io.*;
-import java.util.*;
-import java.util.function.Consumer;
-import java.util.stream.Collectors;
-
+import cc.mrbird.febs.common.core.constant.DicCode;
+import cc.mrbird.febs.common.core.constant.ModuleCode;
+import cc.mrbird.febs.common.core.entity.QueryRequest;
+import cc.mrbird.febs.common.core.entity.constant.FebsConstant;
 import cc.mrbird.febs.common.core.entity.constant.StringConstant;
+import cc.mrbird.febs.common.core.entity.system.Dept;
+import cc.mrbird.febs.common.core.entity.system.DicItem;
+import cc.mrbird.febs.common.core.entity.system.Position;
 import cc.mrbird.febs.common.core.entity.system.SysConfig;
-import cc.mrbird.febs.common.core.exception.FebsException;
-import cc.mrbird.febs.common.core.utils.MyUtil;
-import cc.mrbird.febs.server.hr.entity.EmpDimissionLog;
-import cc.mrbird.febs.server.hr.entity.EmpJobChange;
+import cc.mrbird.febs.common.core.utils.*;
+import cc.mrbird.febs.common.redis.service.RedisService;
+import cc.mrbird.febs.server.hr.entity.*;
+import cc.mrbird.febs.server.hr.feign.IRemoteDeptService;
 import cc.mrbird.febs.server.hr.feign.IRemoteDicItemService;
+import cc.mrbird.febs.server.hr.feign.IRemotePositionService;
 import cc.mrbird.febs.server.hr.feign.IRemoteUserService;
 import cc.mrbird.febs.server.hr.mapper.*;
 import cc.mrbird.febs.server.hr.properties.FebsServerHrProperties;
-import cc.mrbird.febs.server.hr.service.*;
+import cc.mrbird.febs.server.hr.service.IEmpBaseInfoService;
+import cc.mrbird.febs.server.hr.service.IEmpDimissionLogService;
+import cc.mrbird.febs.server.hr.service.IEmpJobChangeService;
 import cc.mrbird.febs.server.hr.util.PoiExportExcel;
-import cn.hutool.core.collection.ListUtil;
-import cn.hutool.core.date.DateUnit;
 import cn.hutool.core.date.DateUtil;
-import cc.mrbird.febs.server.hr.entity.*;
 import cn.hutool.core.util.StrUtil;
-import io.prometheus.client.Collector;
-import org.apache.commons.lang3.StringUtils;
-import org.springframework.stereotype.Service;
-import org.springframework.transaction.annotation.Propagation;
-import org.springframework.transaction.annotation.Transactional;
-
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 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.constant.DicCode;
-import cc.mrbird.febs.common.core.constant.ModuleCode;
-import cc.mrbird.febs.common.core.entity.QueryRequest;
-import cc.mrbird.febs.common.core.entity.system.Dept;
-import cc.mrbird.febs.common.core.entity.system.DicItem;
-import cc.mrbird.febs.common.core.utils.CastUtil;
-import cc.mrbird.febs.common.core.utils.FebsUtil;
-import cc.mrbird.febs.common.core.utils.SequenceUtil;
-import cc.mrbird.febs.common.redis.service.RedisService;
-import cc.mrbird.febs.server.hr.entity.EmpBaseInfo;
-import cc.mrbird.febs.server.hr.feign.IRemoteDeptService;
 import lombok.RequiredArgsConstructor;
-import org.springframework.util.FileSystemUtils;
-import org.springframework.validation.annotation.Validated;
+import org.apache.commons.lang3.StringUtils;
+import org.springframework.stereotype.Service;
+import org.springframework.transaction.annotation.Propagation;
+import org.springframework.transaction.annotation.Transactional;
 
 import javax.servlet.http.HttpServletResponse;
+import java.io.FileInputStream;
+import java.io.IOException;
+import java.io.InputStream;
+import java.io.OutputStream;
+import java.util.*;
+import java.util.function.Consumer;
+import java.util.stream.Collectors;
 
 /**
  * name:EmpBaseinfo
@@ -85,7 +78,7 @@
     private final EmpRemarkInfoMapper empRemarkInfoMapper;
     private final IRemoteDicItemService remoteDicItemService;
     private final EmpOccupationalMapper empOccupationalMapper;
-
+    private final IRemotePositionService remotePositionService;
 
     @Override
     public IPage<EmpBaseInfo> findEmpBaseInfos(QueryRequest request, EmpBaseInfo empBaseInfo) {
@@ -95,6 +88,7 @@
     @Override
     public IPage<EmpBaseInfo> findZsEmpBaseInfos(QueryRequest request, EmpBaseInfo empBaseInfo) {
         Page<EmpBaseInfo> page = new Page<>(request.getPageNum(), request.getPageSize());
+        SortUtil.handlePageSort(request, page, "createTime", FebsConstant.ORDER_DESC, true);
         IPage<EmpBaseInfo> iPage = empBaseInfoMapper.selectPageVo(page, createQueryWrapper(empBaseInfo));
         //设置部门
         // List<EmpBaseInfo> list = setDeptName(iPage.getRecords());
@@ -274,10 +268,7 @@
             queryWrapper.lambda().ne(EmpBaseInfo::getEmpId, empBaseInfo.getEmpId());
         }
 
-        if (this.count(queryWrapper) <= 0) {
-            return false;
-        }
-        return true;
+        return this.count(queryWrapper) > 0;
     }
 
     @Override
@@ -429,53 +420,78 @@
                 returnList.add(StrUtil.format("导入员工基本信息异常: 出现位置第{}行, 原因:{}部门不存在", listObject.indexOf(list) + 1, list.get(2).toString()));
                 continue;
             }
-            empBaseInfo.setEmpName(list.get(3).toString());
-            empBaseInfo.setDeptId(dept.getDeptId());
-            empBaseInfo.setJobName(list.get(4).toString());
-            empBaseInfo.setEmpType(list.get(5).toString());
-            empBaseInfo.setSex("男".equals(list.get(6).toString()) ? "1" : "2");
-            empBaseInfo.setNation(list.get(7).toString());
-            empBaseInfo.setCertificateNumb(list.get(8).toString());
 
-           //婚姻状况
-            DicItem  dicItem =dicItems.parallelStream().filter(j->StrUtil.equalsIgnoreCase(j.getDicCode(),"marriage")&&StrUtil.equals(j.getDicItemName(),list.get(9).toString())).findFirst().orElse(null);
+            empBaseInfo.setAllDeptName(dept.getAllDeptName());
+
+            empBaseInfo.setDeptId(dept.getDeptId());
+            List<Position> positionList = CastUtil.castList(redisService.get("position"), Position.class);
+            if (null==positionList){
+                positionList = remotePositionService.setPositionRedis();
+                if (null==positionList){
+                    returnList.add(StrUtil.format("导入员工基本信息异常: 出现位置第{}行, 原因:{}获取岗位为空,请设置岗位", listObject.indexOf(list) + 1, list.get(3).toString()));
+                    continue;
+                }
+            }
+            Position position = positionList.stream().filter(d -> d.getPositionName().equals(list.get(3).toString())).findFirst().orElse(null);
+            if (null == position){
+                returnList.add(StrUtil.format("导入员工基本信息异常: 出现位置第{}行, 原因:{}获取岗位为空", listObject.indexOf(list) + 1, list.get(3).toString()));
+                continue;
+            }
+            empBaseInfo.setJobId(position.getPositionId());
+            empBaseInfo.setJobName(list.get(3).toString());
+            empBaseInfo.setEmpName(list.get(4).toString());
+            empBaseInfo.setCertificateNumb(list.get(5).toString());
+            empBaseInfo.setSex("男".equals(list.get(6).toString()) ? "1" : "2");
+
+            //民族
+            DicItem  dicItem =dicItems.parallelStream().filter(j->StrUtil.equalsIgnoreCase(j.getDicCode(),"nation")&&StrUtil.equals(j.getDicItemName(),list.get(7).toString())).findFirst().orElse(null);
+            if (null!=dicItem){
+                empBaseInfo.setNation(dicItem.getDicItemCode());
+            }
+
+            //婚姻状况
+              dicItem =dicItems.parallelStream().filter(j->StrUtil.equalsIgnoreCase(j.getDicCode(),"marriage")&&StrUtil.equals(j.getDicItemName(),list.get(8).toString())).findFirst().orElse(null);
             if (null!=dicItem){
                 empBaseInfo.setMarriage(dicItem.getDicItemCode());
             }
 
-            if (StringUtils.isNotBlank(list.get(10).toString())) {
-                empBaseInfo.setStature(Integer.valueOf(list.get(10).toString()));
+            if (StringUtils.isNotBlank(list.get(9).toString())) {
+                empBaseInfo.setStature(Integer.valueOf(list.get(9).toString()));
             }
-
             //政治面貌
-            dicItem =dicItems.parallelStream().filter(j->StrUtil.equalsIgnoreCase(j.getDicCode(),"politics")&&StrUtil.equals(j.getDicItemName(),list.get(11).toString())).findFirst().orElse(null);
+            dicItem =dicItems.parallelStream().filter(j->StrUtil.equalsIgnoreCase(j.getDicCode(), "plitical")&&StrUtil.equals(j.getDicItemName(),list.get(10).toString())).findFirst().orElse(null);
             if (null!=dicItem){
                 empBaseInfo.setPolitics(dicItem.getDicItemCode());
             }
 
-
-            if (StringUtils.isNotBlank(list.get(12).toString())) {
-                empBaseInfo.setEntryDate(DateUtil.parseDate(list.get(12).toString()));
+            if (StringUtils.isNotBlank(list.get(11).toString())) {
+                empBaseInfo.setEntryDate(DateUtil.parseDate(list.get(11).toString()));
             }
 
             //最高学历
-            dicItem =dicItems.parallelStream().filter(j->StrUtil.equalsIgnoreCase(j.getDicCode(),"education")&&StrUtil.equals(j.getDicItemName(),list.get(13).toString())).findFirst().orElse(null);
+            dicItem =dicItems.parallelStream().filter(j->StrUtil.equalsIgnoreCase(j.getDicCode(),"education")&&StrUtil.equals(j.getDicItemName(),list.get(12).toString())).findFirst().orElse(null);
             if (null!=dicItem){
                 empBaseInfo.setEducation(dicItem.getDicItemCode());
             }
 
-
-            if (StringUtils.isNotBlank(list.get(14).toString())) {
-                empBaseInfo.setSeniority(Integer.valueOf(list.get(14).toString()));
+            if (StringUtils.isNotBlank(list.get(13).toString())) {
+                empBaseInfo.setSeniority(Integer.valueOf(list.get(13).toString()));
             }
+
             //籍贯
-            dicItem =dicItems.parallelStream().filter(j->StrUtil.equalsIgnoreCase(j.getDicCode(),"nativePlace")&&StrUtil.equals(j.getDicItemName(),list.get(15).toString())).findFirst().orElse(null);
+            dicItem =dicItems.parallelStream().filter(j->StrUtil.equalsIgnoreCase(j.getDicCode(),"nativePlace")&&StrUtil.equals(j.getDicItemName(),list.get(14).toString())).findFirst().orElse(null);
             if (null!=dicItem){
                 empBaseInfo.setNativePlace(dicItem.getDicItemCode());
             }
 
-            empBaseInfo.setCensusAddress(list.get(16).toString());
-            empBaseInfo.setCurrentAddress(list.get(17).toString());
+            empBaseInfo.setCensusAddress(list.get(15).toString());
+            empBaseInfo.setCurrentAddress(list.get(16).toString());
+
+            dicItem =dicItems.parallelStream().filter(j->StrUtil.equalsIgnoreCase(j.getDicCode(),"empType")&&StrUtil.equals(j.getDicItemName(),list.get(17).toString())).findFirst().orElse(null);
+            if (null!=dicItem){
+                empBaseInfo.setEmpType(dicItem.getDicItemCode());
+            }
+
             empBaseInfo.setGuardNumb(list.get(18).toString());
             empBaseInfo.setReturnReceipt(list.get(19).toString());
             empBaseInfo.setTelePhone(list.get(20).toString());
@@ -1181,4 +1197,16 @@
 
         boolean result = PoiExportExcel.exportCommonExcelMultiSheet(response, "在职员工列表", allList, sheetNames);
     }
+
+    @Override
+    public boolean verifyCertificateNumb(EmpBaseInfo empBaseInfo) {
+        QueryWrapper<EmpBaseInfo> queryWrapper = new QueryWrapper<>();
+        queryWrapper.lambda().eq(EmpBaseInfo::getCertificateNumb, empBaseInfo.getCertificateNumb())
+                .ne(EmpBaseInfo::getDelFlag, 1);;
+        if (empBaseInfo.getEmpId()!=null) {
+            queryWrapper.lambda().ne(EmpBaseInfo::getEmpId, empBaseInfo.getEmpId());
+        }
+
+        return this.count(queryWrapper) > 0;
+    }
 }

--
Gitblit v1.8.0