Merge remote-tracking branch 'remotes/origin/release/2.9.5.2309.01' into feature/230901-福利台账-调差,支持一个人存在多个调差记录
This commit is contained in:
commit
2afa94e3a4
|
|
@ -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;
|
||||
|
|
|
|||
|
|
@ -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()));
|
||||
|
|
|
|||
|
|
@ -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;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -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)
|
||||
|
|
|
|||
|
|
@ -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),
|
||||
|
|
|
|||
|
|
@ -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);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -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());
|
||||
|
|
|
|||
Loading…
Reference in New Issue