Merge remote-tracking branch 'remotes/origin/release/2.9.5.2309.01' into feature/230901-福利台账-调差,支持一个人存在多个调差记录

This commit is contained in:
sy 2023-09-19 10:47:13 +08:00
commit 2afa94e3a4
7 changed files with 68 additions and 16 deletions

View File

@ -207,7 +207,9 @@ public class CalculateFormulaVarBO {
Map<Long, SalaryAcctResultPO> salaryAcctResultPOMap = SalaryEntityUtil.convert2Map(salaryAcctResultPOS, SalaryAcctResultPO::getSalaryItemId);
formulaVarValues.addAll(salaryAcctCalculateBO.getIssuedFieldIds().stream()
.map(fieldId -> {
String originResultValue = salaryAcctResultPOMap.get(salaryCodeItemMap.get(fieldId)).getOriginResultValue();
String originResultValue = salaryAcctResultPOMap.getOrDefault(
salaryCodeItemMap.get(fieldId),SalaryAcctResultPO.builder().originResultValue("").build())
.getOriginResultValue();
String fieldId2 = SalaryFormulaReferenceEnum.ISSUED.getValue()
+ SalaryFormulaFieldConstant.FIELD_ID_SEPARATOR
+ fieldId;

View File

@ -11,11 +11,13 @@ import com.engine.salary.entity.salaryarchive.param.SalaryArchiveImportHandlePar
import com.engine.salary.entity.salaryarchive.po.SalaryArchiveItemPO;
import com.engine.salary.entity.salaryarchive.po.SalaryArchivePO;
import com.engine.salary.entity.salaryitem.po.SalaryItemPO;
import com.engine.salary.entity.salarysob.param.SalarySobRangeSaveParam;
import com.engine.salary.entity.taxagent.dto.TaxAgentManageRangeEmployeeDTO;
import com.engine.salary.entity.taxagent.param.TaxAgentManageRangeSaveParam;
import com.engine.salary.entity.taxagent.param.TaxAgentRangeSaveParam;
import com.engine.salary.enums.UserStatusEnum;
import com.engine.salary.enums.salaryarchive.*;
import com.engine.salary.enums.salarysob.SalaryEmployeeStatusEnum;
import com.engine.salary.enums.salarysob.TargetTypeEnum;
import com.engine.salary.util.SalaryDateUtil;
import com.engine.salary.util.SalaryI18nUtil;
@ -351,12 +353,12 @@ public class SalaryArchiveExcelBO extends Service {
String validType = importHandleParam.getEmpValidType();
List<DataCollectionEmployee> emps = new ArrayList<>();
//外部人员
if(importHandleParam.isExtEmp()){
if (importHandleParam.isExtEmp()) {
emps = importHandleParam.getEmployees().stream().filter(e ->
(StringUtils.isBlank(userName) || Objects.equals(e.getUsername(), userName))
&& (StringUtils.isBlank(deparmentName) || Objects.equals(e.getDepartmentName(), deparmentName))
&& (StringUtils.isBlank(mobileName) || Objects.equals(e.getMobile(), mobileName))).collect(Collectors.toList());
}else {
} else {
if ("0".equals(validType)) {
//0代表姓名+部门+手机号的匹配原则1代表工号为唯一匹配原则
emps = importHandleParam.getEmployees().stream().filter(e ->
@ -651,6 +653,30 @@ public class SalaryArchiveExcelBO extends Service {
effectiveTime, finalSalaryArchive, adjustReason, importHandleParam, key.toString(), cellVal, map);
}
}
//账套关联
Long finalEmployeeId = employeeId;
String sobIds = Optional.ofNullable(map.get("薪资账套ids")).orElse("").toString();
List<SalarySobRangeSaveParam> salarySobRangeSaveParams = new ArrayList<>();
if (StringUtils.isNotBlank(sobIds)) {
salarySobRangeSaveParams = Arrays.stream(sobIds.split(",")).map(Long::valueOf).map(sobId -> {
SalarySobRangeSaveParam.SalarySobRangeTargetParam salarySobRangeTargetParam = new SalarySobRangeSaveParam.SalarySobRangeTargetParam();
salarySobRangeTargetParam.setTargetId(finalEmployeeId);
salarySobRangeTargetParam.setTargetType(TargetTypeEnum.EMPLOYEE);
salarySobRangeTargetParam.setEmployeeStatus(SalaryEmployeeStatusEnum.values());
SalarySobRangeSaveParam sobRangeSaveParam = new SalarySobRangeSaveParam();
sobRangeSaveParam.setSalarySobId(sobId);
sobRangeSaveParam.setTargetParams(Collections.singletonList(salarySobRangeTargetParam));
sobRangeSaveParam.setIncludeType(1);
sobRangeSaveParam.setEmployeeStatus(SalaryEmployeeStatusEnum.values());
return sobRangeSaveParam;
}).collect(Collectors.toList());
}
// 如果当前校验行没问题,修改起始发薪日期和最终发薪日期等
if (!isError) {
Optional<SalaryArchivePO> optionalUpdate = importHandleParam.getSalaryArchiveUpdates().stream().filter(f -> f.getId().equals(finalSalaryArchive.getId())).findFirst();
@ -666,6 +692,8 @@ public class SalaryArchiveExcelBO extends Service {
saves.add(finalSalaryArchive);
importHandleParam.setSalaryArchiveSaves(saves);
}
//保存账套关联
importHandleParam.setSalaryArchiveSobSaves(salarySobRangeSaveParams);
} else {
// 将前面添加好的数据给过滤掉
importHandleParam.setSalaryArchiveSaves(importHandleParam.getSalaryArchiveSaves().stream().filter(f -> !finalSalaryArchive.getId().equals(f.getId())).collect(Collectors.toList()));

View File

@ -4,6 +4,7 @@ import com.engine.salary.entity.datacollection.DataCollectionEmployee;
import com.engine.salary.entity.salaryarchive.po.SalaryArchiveItemPO;
import com.engine.salary.entity.salaryarchive.po.SalaryArchivePO;
import com.engine.salary.entity.salaryitem.po.SalaryItemPO;
import com.engine.salary.entity.salarysob.param.SalarySobRangeSaveParam;
import com.engine.salary.entity.taxagent.dto.TaxAgentManageRangeEmployeeDTO;
import com.engine.salary.entity.taxagent.param.TaxAgentRangeSaveParam;
import com.engine.salary.enums.salaryarchive.SalaryArchiveImportTypeEnum;
@ -170,5 +171,5 @@ public class SalaryArchiveImportHandleParam {
/**
* 薪资档案-账套关联
*/
// List<SalaryArchiveSobPO> salaryArchiveSobSaves;
List<SalarySobRangeSaveParam> salaryArchiveSobSaves;
}

View File

@ -191,6 +191,9 @@ public class SalarySobDuplicateBO {
.description(salarySobItem.getDescription())
.canDelete(salarySobItem.getCanDelete())
.itemHide(salarySobItem.getItemHide())
.roundingMode(salarySobItem.getRoundingMode())
.pattern(salarySobItem.getPattern())
.valueType(salarySobItem.getValueType())
.creator(employeeId)
.createTime(now)
.updateTime(now)

View File

@ -19,13 +19,6 @@ import java.util.Objects;
**/
public enum SalaryEmployeeStatusEnum implements BaseEnum<Integer> {
// ALL(10, "全部", 85155),
// //在职,对应人力资源表中状态试用0正式1临时2试用延期3
// NORMAL(1, "试用,正式,临时,临时延期", 100120),
// //离职老,对应人力资源表中状态解雇4离职5退休6
// UNAVAILABLE(2, "解雇,离职,退休", 85902),
TRIAL(0, "试用", 100121),
FORMAL(1, "正式", 100122),

View File

@ -14,6 +14,7 @@ import com.engine.salary.entity.salaryarchive.param.SalaryArchiveQueryParam;
import com.engine.salary.entity.salaryarchive.po.SalaryArchiveItemPO;
import com.engine.salary.entity.salaryarchive.po.SalaryArchivePO;
import com.engine.salary.entity.salaryitem.po.SalaryItemPO;
import com.engine.salary.entity.salarysob.param.SalarySobRangeSaveParam;
import com.engine.salary.entity.taxagent.dto.TaxAgentManageRangeEmployeeDTO;
import com.engine.salary.entity.taxagent.param.TaxAgentRangeSaveParam;
import com.engine.salary.entity.taxagent.po.TaxAgentPO;
@ -86,6 +87,10 @@ public class SalaryArchiveExcelServiceImpl extends Service implements SalaryArch
return ServiceUtil.getService(TaxAgentManageRangeServiceImpl.class, user);
}
private SalarySobRangeService getSalarySobRangeService(User user) {
return ServiceUtil.getService(SalarySobRangeServiceImpl.class, user);
}
public SalarySysConfService getSalarySysConfService(User user) {
return ServiceUtil.getService(SalarySysConfServiceImpl.class, user);
}
@ -582,10 +587,6 @@ public class SalaryArchiveExcelServiceImpl extends Service implements SalaryArch
// 错误sheet数据
List<Map<String, Object>> errorData = new ArrayList<>();
// 获取匹配规则
SalarySysConfPO salarySysConfPO = getSalarySysConfService(user).getOneByCode("matchEmployeeMode");
String confValue = (salarySysConfPO != null && salarySysConfPO.getConfValue() != null && !"".equals(salarySysConfPO.getConfValue())) ? salarySysConfPO.getConfValue() : "0";
for (int i = 0; i < data.size(); i++) {
Map<String, Object> map = data.get(i);
@ -820,7 +821,7 @@ public class SalaryArchiveExcelServiceImpl extends Service implements SalaryArch
List<SalaryArchiveItemPO> salaryArchiveItemSaves = importHandleParam.getSalaryArchiveItemSaves();
List<Long> salaryArchiveItemDelSalaryItemIds = importHandleParam.getSalaryArchiveItemDelSalaryItemIds();
List<TaxAgentRangeSaveParam> taxAgentRanges = importHandleParam.getTaxAgentRanges();
// List<SalaryArchiveSobPO> salaryArchiveSobSaves = importHandleParam.getSalaryArchiveSobSaves();
List<SalarySobRangeSaveParam> salaryArchiveSobSaves = importHandleParam.getSalaryArchiveSobSaves();
// 新增薪资档案
@ -859,5 +860,9 @@ public class SalaryArchiveExcelServiceImpl extends Service implements SalaryArch
if (CollectionUtils.isNotEmpty(taxAgentRanges)) {
taxAgentRanges.forEach(getTaxAgentManageRangeService(user)::save);
}
if (CollectionUtils.isNotEmpty(salaryArchiveSobSaves)) {
salaryArchiveSobSaves.forEach(getSalarySobRangeService(user)::save);
}
}
}

View File

@ -35,6 +35,25 @@ public class SalaryEnumUtil {
return (T) Arrays.stream(list).filter(item -> Objects.equals(item.getValue(), value)).findFirst().get();
}
/**
* 根据枚举的value获取枚举对象
*
* @param value
* @param clazz
* @param <T>
* @param <R>
* @return
*/
public static <T extends BaseEnum<R>, R> T enumMatchByValue(R value, Class<T> clazz) {
T[] enumConstants = clazz.getEnumConstants();
for (T enumConstant : enumConstants) {
if (Objects.equals(enumConstant.getValue(), value)) {
return enumConstant;
}
}
return null;
}
/**
* 枚举数组转字符串
*
@ -73,6 +92,7 @@ public class SalaryEnumUtil {
for (BaseEnum enumMessage : enums) {
Map<String, Object> hashMap = new HashMap<String, Object>();
hashMap.put("enum", enumMessage);
hashMap.put("value", enumMessage.getValue());
hashMap.put("defaultLabel", enumMessage.getDefaultLabel());
hashMap.put("labelId", enumMessage.getLabelId());