From 89ba4125856330a78425bc921530bde9dc6d8606 Mon Sep 17 00:00:00 2001
From: autumnal_wind@yeah.net <autumnal_wind@yeah.net>
Date: 星期四, 18 四月 2024 16:22:55 +0800
Subject: [PATCH] feat: 合同增加时写入了到期天数
---
febs-server/febs-server-hr/src/main/java/cc/mrbird/febs/server/hr/service/impl/EmpBaseInfoServiceImpl.java | 111 +++++++++++++++++++++++++++++++++++++++++++++++--------
1 files changed, 94 insertions(+), 17 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 e78f74a..c38bb66 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
@@ -98,12 +98,13 @@
//设置部门
// List<EmpBaseInfo> list = setDeptName(iPage.getRecords());
List<EmpBaseInfo> list = iPage.getRecords();
+ List<EmpBaseInfo> newList = new ArrayList<>();
List<DicItem> dicItems = CastUtil.castList(redisService.get("dicItems"), DicItem.class);
list.forEach(p -> {
p.setSexName("1".equals(p.getSex()) ? "男" : "女");
p.setArchivesStatusName("0".equals(p.getArchivesStatus()) ? "未移交" : "已移交");
- p.setEmpCardStatusName("1".equals(p.getEmpCardStatus()) ? "未发" : "已发");
- p.setHandbookStatusName("1".equals(p.getHandbookStatus()) ? "未发" : "已发");
+ p.setEmpCardStatusName("0".equals(p.getEmpCardStatus()) ? "未发" : "已发");
+ p.setHandbookStatusName("0".equals(p.getHandbookStatus()) ? "未发" : "已发");
p.setEmpStatusName("0".equals(p.getEmpStatus()) ? "在职" : "离职");
//保险类型
p.setInsuranceTypeName(dicItems.stream()
@@ -157,8 +158,23 @@
.findFirst()
.map(DicItem::getDicItemName)
.orElse(""));
- p.setCertificateListName(getCertificateListName(p.getCertificateList(),dicItems));
+ p.setCertificateListName(getCertificateListName(p.getCertificateList(), dicItems));
});
+ // if (StringUtils.isNotBlank(empBaseInfo.getCertificateList())) {
+ // String[] certificates = empBaseInfo.getCertificateList().split(",");
+ // list.forEach(k -> {
+ // String[] dbCertificates = k.getCertificateList().split(",");
+ // for (String certificate : certificates) {
+ // if (Arrays.asList(dbCertificates).contains(certificate)) {
+ // newList.add(k);
+ // break;
+ // }
+ // }
+ // });
+ // iPage.setRecords(newList);
+ // } else {
+ // iPage.setRecords(list);
+ // }
iPage.setRecords(list);
return iPage;
}
@@ -194,12 +210,28 @@
empBaseInfo.setModifier(operatorId);
this.saveOrUpdate(empBaseInfo);
+ addEmpDimissLog(empBaseInfo, operatorId, empId);
+ }
+
+ /**
+ * 增加员工后同步增加入职记录
+ * <p>
+ * date 2021-07-30 09:12
+ *
+ * @param empBaseInfo 员工信息
+ * @param operatorId 操作员Id
+ * @param empId 员工Id
+ * @return void
+ * @author: luoyibo
+ */
+ private void addEmpDimissLog(EmpBaseInfo empBaseInfo, String operatorId, Long empId) {
EmpDimissionLog dimissionLog = new EmpDimissionLog();
dimissionLog.setCloseId(SequenceUtil.generateId(0L, ModuleCode.HR_EMPLOYEE));
dimissionLog.setEmpId(empId);
dimissionLog.setEntryDate(empBaseInfo.getEntryDate());
dimissionLog.setDimissionType("20");
dimissionLog.setRemark(empBaseInfo.getRemark());
+ dimissionLog.setDeptName(empBaseInfo.getAllDeptName());
dimissionLog.setCreator(operatorId);
dimissionLog.setModifier(operatorId);
@@ -324,6 +356,10 @@
String operatorId = Optional.of(FebsUtil.getUserId()).orElse("1");
String[] str = ids.split(",");
List<String> list = new ArrayList<>(Arrays.asList(str));
+// for (int i = 0, j = str.length; i < j; i++) {
+// EmpBaseInfo emp = this.getById(str[i]);
+// addEmpDimissLog(emp, operatorId, Long.valueOf(str[i]));
+// }
return empBaseInfoMapper.momentToNormal(list, operatorId) > 0;
}
@@ -349,6 +385,7 @@
public boolean closeEmpArchives(EmpDimissionLog empDimissionLog) {
String operatorId = Optional.of(FebsUtil.getUserId()).orElse("1");
String[] str = empDimissionLog.getEmpIds().split(",");
+ String[] empDeptNames = empDimissionLog.getDeptNames().split(",");
List<String> list = new ArrayList<>(Arrays.asList(str));
String[] strDate = empDimissionLog.getEntryDates().split(",");
@@ -365,6 +402,7 @@
dimissionLog.setReporter(empDimissionLog.getReporter());
dimissionLog.setCreator(operatorId);
dimissionLog.setModifier(operatorId);
+ dimissionLog.setDeptName(empDeptNames[i]);
dimissionLogService.save(dimissionLog);
}
@@ -458,6 +496,10 @@
returnList.add(StrUtil.format("导入员工基本信息异常: 出现位置第{}行, 原因:{}员工编号重复", listObject.indexOf(list) + 1, list.get(1).toString()));
continue;
}
+ if (this.count(new LambdaQueryWrapper<EmpBaseInfo>().eq(EmpBaseInfo::getCertificateNumb, list.get(1).toString()).ne(EmpBaseInfo::getDelFlag, 1)) > 0) {
+ returnList.add(StrUtil.format("导入员工基本信息异常: 出现位置第{}行, 原因:{}身份证号重复", listObject.indexOf(list) + 1, list.get(1).toString()));
+ continue;
+ }
EmpBaseInfo empBaseInfo = new EmpBaseInfo();
empBaseInfo.setEmpId(SequenceUtil.generateId(0L, ModuleCode.HR_EMPLOYEE));
empBaseInfo.setArchivesNumb(list.get(0).toString());
@@ -536,7 +578,7 @@
}
if (StringUtils.isNotBlank(list.get(11).toString())) {
- empBaseInfo.setEntryDate(DateUtil.parseDate(list.get(11).toString()));
+ empBaseInfo.setEntryDate(DateUtil.parse(list.get(11).toString()));
}
//最高学历
@@ -620,6 +662,8 @@
}
empBaseInfo.setEmpStatus("0");
this.save(empBaseInfo);
+ //新入职员工需要增加一条入职记录
+ this.addEmpDimissLog(empBaseInfo, "2", empBaseInfo.getEmpId());
}
}
@@ -696,17 +740,22 @@
p.setEmpTypeName("1".equals(p.getEmpType()) ? "正式工" : "临时工");
}
if (StringUtils.isNotBlank(p.getDimissionType())) {
- if ("1".equals(p.getDimissionType())) {
- p.setDimissionTypeName("正常离职");
- } else if ("2".equals(p.getDimissionType())) {
- p.setDimissionTypeName("自动离职");
- } else if ("3".equals(p.getDimissionType())) {
- p.setDimissionTypeName("公司劝退");
- } else if ("4".equals(p.getDimissionType())) {
- p.setDimissionTypeName("公司辞退");
- } else if ("5".equals(p.getDimissionType())) {
- p.setDimissionTypeName("试用期内");
- }
+ // if ("1".equals(p.getDimissionType())) {
+ // p.setDimissionTypeName("正常离职");
+ // } else if ("2".equals(p.getDimissionType())) {
+ // p.setDimissionTypeName("自动离职");
+ // } else if ("3".equals(p.getDimissionType())) {
+ // p.setDimissionTypeName("公司劝退");
+ // } else if ("4".equals(p.getDimissionType())) {
+ // p.setDimissionTypeName("公司辞退");
+ // } else if ("5".equals(p.getDimissionType())) {
+ // p.setDimissionTypeName("试用期内");
+ // }
+ p.setDimissionTypeName(dicItems.stream()
+ .filter(k -> DicCode.IN_OUT_TYPE.equals(k.getDicCode()) && k.getDicItemCode().equals(p.getDimissionType()))
+ .findFirst()
+ .map(DicItem::getDicItemName)
+ .orElse(""));
}
p.setInsuranceTypeName("1".equals(p.getInsuranceType()) ? "(深户)五险一档" : "(非深户)五险一档");
p.setArchivesStatusName("0".equals(p.getArchivesStatus()) ? "未移交" : "已移交");
@@ -1146,8 +1195,8 @@
@Override
public void accept(QueryWrapper<EmpBaseInfo> wrapper) {
for (int i = 0; i < certificates.length; i++) {
- String ageBtn = certificates[i];
- wrapper.or().like("a.certificateList", ageBtn);
+ String ageBtn = "|" + certificates[i] + "|";
+ wrapper.gt("LOCATE('" + ageBtn + "',CONCAT('|',replace( certificateList, ',', '|,|'),'|'))", 0);
}
}
};
@@ -1379,4 +1428,32 @@
}
return tempName;
}
+
+ @Override
+ public boolean updateSeniority() {
+ return empBaseInfoMapper.updateSeniority() > 0;
+ }
+
+ @Override
+ public boolean updateDeptName() {
+ return empBaseInfoMapper.updateDeptName() > 0;
+ }
+
+ @Override
+ public boolean updateEmpAge(String userId) {
+ List<EmpBaseInfo> empBaseInfoList = new ArrayList<>();
+ if (StringUtils.isNotBlank(userId)) {
+ EmpBaseInfo empBaseInfo = this.getById(userId);
+ empBaseInfoList.add(empBaseInfo);
+ } else {
+ empBaseInfoList = this.list();
+ }
+ if (empBaseInfoList.size() > 0) {
+ empBaseInfoList.forEach(p -> {
+ p.setAge(DateUtil.ageOfNow(p.getBirthdate()));
+ this.saveOrUpdate(p);
+ });
+ }
+ return false;
+ }
}
--
Gitblit v1.8.0