薪资档案代码合并

This commit is contained in:
钱涛 2022-07-21 10:51:38 +08:00
parent b90953873c
commit 8e69159900
3 changed files with 59 additions and 148 deletions

View File

@ -1,6 +1,20 @@
ALTER TABLE hrsa_salary_archive
ADD COLUMN tax_agent_id bigint(0) NULL COMMENT '个税扣缴义务人id' AFTER tenant_key;
ADD COLUMN tax_agent_id bigint(0) NULL COMMENT '个税扣缴义务人id'
ADD COLUMN pay_start_date datetime(0) NULL DEFAULT NULL COMMENT '起始发薪日期' ,
ADD COLUMN pay_end_date datetime(0) NULL DEFAULT NULL COMMENT '最后发薪日期' ;
ALTER TABLE hrsa_salary_archive
ADD COLUMN pay_start_date datetime(0) NULL DEFAULT NULL COMMENT '起始发薪日期' AFTER tax_agent_id,
ADD COLUMN pay_end_date datetime(0) NULL DEFAULT NULL COMMENT '最后发薪日期' AFTER pay_start_date;
ADD tax_agent_id bigint NULL ,
pay_start_date datetime NULL ,
pay_end_date datetime NULL
GO
ALTER TABLE hrsa_salary_archive ADD (
tax_agent_id NUMBER(38,0) NULL ,
pay_start_date date NULL ,
pay_end_date date NULL
)
/

View File

@ -125,13 +125,20 @@ public interface SalaryArchiveService {
List<SalaryArchiveDataDTO> getSalaryArchiveTaxAgentData(LocalDateRange localDateRange, Collection<Long> employeeIds);
/**
* 导入
* 导入,数据入库
* @param param
* @return
*/
Map<String,Object> importSalaryArchive(SalaryArchiveImportHandleParam param);
/**
* 导入
* @param param
* @param ifImportData 数据是否入库
* @return
*/
Map<String,Object> importSalaryArchive(SalaryArchiveImportHandleParam param,boolean ifImportData);
/**
* 预览
* @param param

View File

@ -175,8 +175,7 @@ public class SalaryArchiveServiceImpl extends Service implements SalaryArchiveSe
return Collections.EMPTY_LIST;
}
List<SalaryArchiveItemPO> salaryArchiveItems = salaryArchiveItemMapper.getCurrentEffectiveItemList(SalaryArchiveItemQueryParam.builder().salaryArchivesIds(salaryArchivesIds).salaryItemIds(salaryItemIds).effectiveTime(new Date()).build());
return salaryArchiveItems.stream()
.collect(Collectors.collectingAndThen(Collectors.toCollection(() -> new TreeSet<>(Comparator.comparing(f -> f.getSalaryArchiveId() + "-" + f.getSalaryItemId()))), ArrayList::new));
return salaryArchiveItems.stream().collect(Collectors.collectingAndThen(Collectors.toCollection(() -> new TreeSet<>(Comparator.comparing(f -> f.getSalaryArchiveId() + "-" + f.getSalaryItemId()))), ArrayList::new));
}
/**
@ -192,8 +191,7 @@ public class SalaryArchiveServiceImpl extends Service implements SalaryArchiveSe
}
List<SalaryArchiveTaxAgentPO> salaryArchiveTaxAgents = salaryArchiveTaxAgentMapper.listByParam(SalaryArchiveTaxAgentQueryParam.builder().salaryArchivesIds(salaryArchivesIds).effectiveTime(new Date()).build());
return salaryArchiveTaxAgents.stream()
.collect(Collectors.collectingAndThen(Collectors.toCollection(() -> new TreeSet<>(Comparator.comparing(SalaryArchiveTaxAgentPO::getSalaryArchiveId))), ArrayList::new));
return salaryArchiveTaxAgents.stream().collect(Collectors.collectingAndThen(Collectors.toCollection(() -> new TreeSet<>(Comparator.comparing(SalaryArchiveTaxAgentPO::getSalaryArchiveId))), ArrayList::new));
}
/**
@ -206,10 +204,7 @@ public class SalaryArchiveServiceImpl extends Service implements SalaryArchiveSe
* @return
*/
@Override
public List<Map<String, Object>> buildSalaryArchiveData(Collection<SalaryArchiveListDTO> salaryArchives,
Collection<TaxAgentPO> taxAgentLists,
List<SalaryItemPO> salaryItems,
Boolean isPage) {
public List<Map<String, Object>> buildSalaryArchiveData(Collection<SalaryArchiveListDTO> salaryArchives, Collection<TaxAgentPO> taxAgentLists, List<SalaryItemPO> salaryItems, Boolean isPage) {
// 分页用于表格展示否则用于导出
Collection<Long> ids = isPage ? salaryArchives.stream().map(SalaryArchiveListDTO::getId).collect(Collectors.toList()) : CollectionUtils.emptyCollection();
@ -276,13 +271,7 @@ public class SalaryArchiveServiceImpl extends Service implements SalaryArchiveSe
String sheetName = SalaryI18nUtil.getI18nLabel(85368, "薪资档案");
// 获取所有可被引用的薪资项目
List<SalaryItemPO> salaryItems = salaryItemMapper.getCanAdjustSalaryItems();
String[] header = {
SalaryI18nUtil.getI18nLabel(85429, "姓名"),
SalaryI18nUtil.getI18nLabel(86184, "个税扣缴义务人"),
SalaryI18nUtil.getI18nLabel(86185, "部门"),
SalaryI18nUtil.getI18nLabel(86186, "手机号"),
SalaryI18nUtil.getI18nLabel(91075, "状态")
};
String[] header = {SalaryI18nUtil.getI18nLabel(85429, "姓名"), SalaryI18nUtil.getI18nLabel(86184, "个税扣缴义务人"), SalaryI18nUtil.getI18nLabel(86185, "部门"), SalaryI18nUtil.getI18nLabel(86186, "手机号"), SalaryI18nUtil.getI18nLabel(91075, "状态")};
// 2.表头
List<Object> headerList = new ArrayList<>(Arrays.asList(header));
for (SalaryItemPO salaryItem : salaryItems) {
@ -458,16 +447,9 @@ public class SalaryArchiveServiceImpl extends Service implements SalaryArchiveSe
po.setUpdateTime(now);
salaryArchiveDimissionMapper.updateById(po);
} else {
salaryArchiveDimissionMapper.insert(SalaryArchiveDimissionPO
.builder()
salaryArchiveDimissionMapper.insert(SalaryArchiveDimissionPO.builder()
// .id(IdGenerator.generate())
.dimissionTimeInterval(saveParam.getDimissionTimeInterval().getValue())
.createTime(now)
.updateTime(now)
.creator((long) user.getUID())
.tenantKey(SalaryDefaultTenantConstant.DEFAULT_TENANT_KEY)
.build()
);
.dimissionTimeInterval(saveParam.getDimissionTimeInterval().getValue()).createTime(now).updateTime(now).creator((long) user.getUID()).tenantKey(SalaryDefaultTenantConstant.DEFAULT_TENANT_KEY).build());
}
return StringUtils.EMPTY;
}
@ -499,14 +481,9 @@ public class SalaryArchiveServiceImpl extends Service implements SalaryArchiveSe
List<SalaryItemPO> salaryItems = salaryItemMapper.getCanAdjustSalaryItems();
Collection<Long> salaryItemIds = salaryItems.stream().map(SalaryItemPO::getId).collect(Collectors.toList());
// 获取薪资项目调整数据,isOnlyTaxAgent为true时不需要薪资项目数据
List<SalaryArchiveItemPO> salaryArchiveItemDataList = isOnlyTaxAgent || CollectionUtils.isEmpty(salaryItemIds) ?
Lists.newArrayList() : salaryArchiveItemMapper.listByParam(SalaryArchiveItemQueryParam.builder().salaryItemIds(salaryItemIds).employeeIds(employeeIds).effectiveTime(localDateRange.getEndDate()).build());
List<SalaryArchiveItemPO> salaryArchiveItemDataList = isOnlyTaxAgent || CollectionUtils.isEmpty(salaryItemIds) ? Lists.newArrayList() : salaryArchiveItemMapper.listByParam(SalaryArchiveItemQueryParam.builder().salaryItemIds(salaryItemIds).employeeIds(employeeIds).effectiveTime(localDateRange.getEndDate()).build());
return SalaryArchiveBO.buildSalaryArchiveData(salaryArchiveList,
salaryArchiveItemDataList,
localDateRange,
allEmployeeIds,
isOnlyTaxAgent);
return SalaryArchiveBO.buildSalaryArchiveData(salaryArchiveList, salaryArchiveItemDataList, localDateRange, allEmployeeIds, isOnlyTaxAgent);
}
/**
@ -710,17 +687,13 @@ public class SalaryArchiveServiceImpl extends Service implements SalaryArchiveSe
Collection<Long> salaryItemIds = salaryItems.stream().map(SalaryItemPO::getId).collect(Collectors.toList());
Date now = new Date();
return SalaryArchiveImportHandleParam.builder()
.openDevolution(getTaxAgentService(user).isOpenDevolution())
.listTaxAgentAndEmployeeTree(getTaxAgentService(user).listTaxAgentAndEmployeeTree(employeeId))
return SalaryArchiveImportHandleParam.builder().openDevolution(getTaxAgentService(user).isOpenDevolution()).listTaxAgentAndEmployeeTree(getTaxAgentService(user).listTaxAgentAndEmployeeTree(employeeId))
// 获取租户下所有的人员
.employees(employBiz.listEmployee())
// 获取所有个税扣缴义务人
.taxAgentList(getTaxAgentService(user).listAllTaxAgentsAsAdmin(employeeId))
.salaryItems(salaryItems)
.taxAgentList(getTaxAgentService(user).listAllTaxAgentsAsAdmin(employeeId)).salaryItems(salaryItems)
// 查询已有的薪资档案基本数据
.salaryArchives(list(SalaryArchiveQueryParam.builder().build()))
.salaryItemIds(salaryItemIds)
.salaryArchives(list(SalaryArchiveQueryParam.builder().build())).salaryItemIds(salaryItemIds)
// 查询已生效的薪资项目数据
.effectiveItemList(getEffectiveItemList(salaryItemIds))
// 查询未生效的薪资项目数据
@ -742,8 +715,7 @@ public class SalaryArchiveServiceImpl extends Service implements SalaryArchiveSe
// 待删除薪资档案-个税扣缴义务人
.salaryArchiveTaxAgentDelTaxAgentIds(Lists.newArrayList())
// 待删除薪资档案-薪资项目
.salaryArchiveItemDelSalaryItemIds(Lists.newArrayList())
.build();
.salaryArchiveItemDelSalaryItemIds(Lists.newArrayList()).build();
}
/**
@ -776,11 +748,7 @@ public class SalaryArchiveServiceImpl extends Service implements SalaryArchiveSe
if (optionalInitImport.isPresent()) {
SalaryArchiveInitImportDTO initImport = optionalInitImport.get();
List<SalaryArchiveInitImportSameDTO> sames = initImport.getSames();
sames.add(SalaryArchiveInitImportSameDTO.builder()
.isError(isError)
.rowNo(rowNo)
.row(map)
.build());
sames.add(SalaryArchiveInitImportSameDTO.builder().isError(isError).rowNo(rowNo).row(map).build());
Optional<SalaryArchiveInitImportSameDTO> optionalSame = sames.stream().filter(SalaryArchiveInitImportSameDTO::isError).findFirst();
// 只要是其中一行有错误
if (optionalSame.isPresent()) {
@ -826,11 +794,7 @@ public class SalaryArchiveServiceImpl extends Service implements SalaryArchiveSe
SalaryArchiveInitImportDTO initImport = new SalaryArchiveInitImportDTO();
initImport.setEmployeeId(employeeId);
List<SalaryArchiveInitImportSameDTO> sames = Lists.newArrayList();
sames.add(SalaryArchiveInitImportSameDTO.builder()
.isError(isError)
.rowNo(rowNo)
.row(map)
.build());
sames.add(SalaryArchiveInitImportSameDTO.builder().isError(isError).rowNo(rowNo).row(map).build());
initImport.setSames(sames);
initImportData.add(initImport);
}
@ -858,8 +822,7 @@ public class SalaryArchiveServiceImpl extends Service implements SalaryArchiveSe
* @param importHandleParam
* @return
*/
private boolean singleRowCheck(String importType, List<Long> allEmployeeIds, Map<String, Object> map, List<String> headers,
List<Map<String, String>> excelComments, int errorCount, SalaryArchiveImportHandleParam importHandleParam) {
private boolean singleRowCheck(String importType, List<Long> allEmployeeIds, Map<String, Object> map, List<String> headers, List<Map<String, String>> excelComments, int errorCount, SalaryArchiveImportHandleParam importHandleParam) {
boolean isError = false;
boolean isInit = importType.equals(SalaryArchiveImportTypeEnum.INIT.getValue());
@ -876,21 +839,13 @@ public class SalaryArchiveServiceImpl extends Service implements SalaryArchiveSe
// 1.姓名
String userName = Optional.ofNullable(map.get(userNameI18n)).orElse("").toString();
String deparmentName = Optional.ofNullable(map.get(SalaryI18nUtil.getI18nLabel(86185, "部门"))).orElse("").toString();
List<DataCollectionEmployee> emps = importHandleParam.getEmployees().stream()
.filter(e -> (StringUtils.isBlank(userName) || Objects.equals(e.getUsername(), userName))
&& (StringUtils.isBlank(deparmentName) || Objects.equals(e.getDepartmentName(), deparmentName)))
.collect(Collectors.toList());
List<DataCollectionEmployee> emps = importHandleParam.getEmployees().stream().filter(e -> (StringUtils.isBlank(userName) || Objects.equals(e.getUsername(), userName)) && (StringUtils.isBlank(deparmentName) || Objects.equals(e.getDepartmentName(), deparmentName))).collect(Collectors.toList());
List<Long> employeeSameIds = new ArrayList<>();
if (CollectionUtils.isNotEmpty(emps) && emps.size() > 1) {
employeeSameIds = emps.stream()
.filter(e -> UserStatusEnum.getNormalStatus().contains(e.getStatus()))
.map(DataCollectionEmployee::getEmployeeId)
.collect(Collectors.toList());
employeeSameIds = emps.stream().filter(e -> UserStatusEnum.getNormalStatus().contains(e.getStatus())).map(DataCollectionEmployee::getEmployeeId).collect(Collectors.toList());
}
if (CollectionUtils.isNotEmpty(emps) && emps.size() == 1) {
employeeSameIds = emps.stream()
.map(DataCollectionEmployee::getEmployeeId)
.collect(Collectors.toList());
employeeSameIds = emps.stream().map(DataCollectionEmployee::getEmployeeId).collect(Collectors.toList());
}
Long employeeId = CollectionUtils.isNotEmpty(employeeSameIds) && employeeSameIds.size() == 1 && employeeSameIds.get(0) > 0 ? employeeSameIds.get(0) : null;
@ -948,13 +903,11 @@ public class SalaryArchiveServiceImpl extends Service implements SalaryArchiveSe
String cellVal = Optional.ofNullable(map.get(key)).orElse("").toString();
boolean isEmpty = StringUtils.isEmpty(cellVal) &&
(userNameI18n.equals(key)
// 个税扣缴义务人列判空(初始化导入或调整个税扣缴义务人)
|| (taxAgentI18n.equals(key) && (isInit || isTaxAgentAdjust))
|| (effectiveTimeI18n.equals(key) && isSalaryItemAdjust)
// 调整原因列判空(调薪或调整个税扣缴义务人)
|| (adjustReasonI18n.equals(key) && (isTaxAgentAdjust || isSalaryItemAdjust)));
boolean isEmpty = StringUtils.isEmpty(cellVal) && (userNameI18n.equals(key)
// 个税扣缴义务人列判空(初始化导入或调整个税扣缴义务人)
|| (taxAgentI18n.equals(key) && (isInit || isTaxAgentAdjust)) || (effectiveTimeI18n.equals(key) && isSalaryItemAdjust)
// 调整原因列判空(调薪或调整个税扣缴义务人)
|| (adjustReasonI18n.equals(key) && (isTaxAgentAdjust || isSalaryItemAdjust)));
// 判空
if (userNameI18n.equals(key) && StringUtils.isEmpty(cellVal)) {
Map<String, String> errorMessageMap = Maps.newHashMap();
@ -1037,8 +990,7 @@ public class SalaryArchiveServiceImpl extends Service implements SalaryArchiveSe
continue;
}
isError = handleSalaryItem(isError, isInit, excelComments,
effectiveTime, finalSalaryArchive, adjustReason, importHandleParam, key, cellVal, map);
isError = handleSalaryItem(isError, isInit, excelComments, effectiveTime, finalSalaryArchive, adjustReason, importHandleParam, key, cellVal, map);
}
}
@ -1059,17 +1011,7 @@ public class SalaryArchiveServiceImpl extends Service implements SalaryArchiveSe
salaryArchive.setPayEndDate(payEndDate);
} else if (employeeId != null && isInit) {
// 新增档案
salaryArchive = SalaryArchivePO.builder()
.id(IdGenerator.generate())
.employeeId(employeeId)
.taxAgentId(taxAgentId)
.payStartDate(payStartDate)
.payEndDate(payEndDate)
.createTime(importHandleParam.getNowTime())
.updateTime(importHandleParam.getNowTime())
.creator((long) user.getUID())
.tenantKey(SalaryDefaultTenantConstant.DEFAULT_TENANT_KEY)
.build();
salaryArchive = SalaryArchivePO.builder().id(IdGenerator.generate()).employeeId(employeeId).taxAgentId(taxAgentId).payStartDate(payStartDate).payEndDate(payEndDate).createTime(importHandleParam.getNowTime()).updateTime(importHandleParam.getNowTime()).creator((long) user.getUID()).tenantKey(SalaryDefaultTenantConstant.DEFAULT_TENANT_KEY).build();
importHandleParam.getSalaryArchiveSaves().add(salaryArchive);
}
@ -1090,9 +1032,7 @@ public class SalaryArchiveServiceImpl extends Service implements SalaryArchiveSe
* @param importHandleParam
* @return
*/
private boolean handleTaxAgent(boolean isError, boolean isInit,
List<Map<String, String>> excelComments, int errorCount, int j,
Long taxAgentId, Date effectiveTime, SalaryArchivePO finalSalaryArchive, String taxAgentAdjustReason, SalaryArchiveImportHandleParam importHandleParam, Map<String, Object> map) {
private boolean handleTaxAgent(boolean isError, boolean isInit, List<Map<String, String>> excelComments, int errorCount, int j, Long taxAgentId, Date effectiveTime, SalaryArchivePO finalSalaryArchive, String taxAgentAdjustReason, SalaryArchiveImportHandleParam importHandleParam, Map<String, Object> map) {
String rowindex = "" + map.get("index") + "";
//分权
@ -1225,18 +1165,7 @@ public class SalaryArchiveServiceImpl extends Service implements SalaryArchiveSe
if (!isBeforeError) {
importHandleParam.getSalaryArchiveTaxAgentSaves().add(SalaryArchiveTaxAgentPO.builder()
// .id(IdGenerator.generate())
.salaryArchiveId(finalSalaryArchive.getId())
.employeeId(finalSalaryArchive.getEmployeeId())
.taxAgentId(taxAgentId)
.effectiveTime(effectiveTime)
.adjustReason(StringUtils.isEmpty(taxAgentAdjustReason) ? SalaryArchiveTaxAgentAdjustReasonEnum.INIT.getValue() : taxAgentAdjustReason)
.operator((long) user.getUID())
.operateTime(importHandleParam.getNowTime())
.createTime(importHandleParam.getNowTime())
.updateTime(importHandleParam.getNowTime())
.creator((long) user.getUID())
.tenantKey(SalaryDefaultTenantConstant.DEFAULT_TENANT_KEY)
.build());
.salaryArchiveId(finalSalaryArchive.getId()).employeeId(finalSalaryArchive.getEmployeeId()).taxAgentId(taxAgentId).effectiveTime(effectiveTime).adjustReason(StringUtils.isEmpty(taxAgentAdjustReason) ? SalaryArchiveTaxAgentAdjustReasonEnum.INIT.getValue() : taxAgentAdjustReason).operator((long) user.getUID()).operateTime(importHandleParam.getNowTime()).createTime(importHandleParam.getNowTime()).updateTime(importHandleParam.getNowTime()).creator((long) user.getUID()).tenantKey(SalaryDefaultTenantConstant.DEFAULT_TENANT_KEY).build());
}
}
return isError;
@ -1254,10 +1183,7 @@ public class SalaryArchiveServiceImpl extends Service implements SalaryArchiveSe
* @param cellVal
* @return
*/
private boolean handleSalaryItem(boolean isError, boolean isInit,
List<Map<String, String>> excelComments,
Date effectiveTime, SalaryArchivePO finalSalaryArchive, String salaryItemAdjustReason, SalaryArchiveImportHandleParam importHandleParam,
String key, String cellVal, Map<String, Object> map) {
private boolean handleSalaryItem(boolean isError, boolean isInit, List<Map<String, String>> excelComments, Date effectiveTime, SalaryArchivePO finalSalaryArchive, String salaryItemAdjustReason, SalaryArchiveImportHandleParam importHandleParam, String key, String cellVal, Map<String, Object> map) {
String rowindex = "" + map.get("index") + "";
Optional<SalaryItemPO> optionalSalaryItem = importHandleParam.getSalaryItems().stream().filter(e -> e.getName().equals(key)).findFirst();
if (optionalSalaryItem.isPresent()) {
@ -1344,20 +1270,7 @@ public class SalaryArchiveServiceImpl extends Service implements SalaryArchiveSe
if (!isBeforeError) {
importHandleParam.getSalaryArchiveItemSaves().add(SalaryArchiveItemPO.builder()
// .id(IdGenerator.generate())
.salaryArchiveId(finalSalaryArchive.getId())
.employeeId(finalSalaryArchive.getEmployeeId())
.effectiveTime(effectiveTime)
.adjustReason(StringUtils.isEmpty(salaryItemAdjustReason) ? SalaryArchiveItemAdjustReasonEnum.INIT.getValue() : salaryItemAdjustReason)
.salaryItemId(salaryItemId)
.itemValue(cellVal)
.description("")
.operator((long) user.getUID())
.operateTime(importHandleParam.getNowTime())
.createTime(importHandleParam.getNowTime())
.updateTime(importHandleParam.getNowTime())
.creator((long) user.getUID())
.tenantKey(SalaryDefaultTenantConstant.DEFAULT_TENANT_KEY)
.build());
.salaryArchiveId(finalSalaryArchive.getId()).employeeId(finalSalaryArchive.getEmployeeId()).effectiveTime(effectiveTime).adjustReason(StringUtils.isEmpty(salaryItemAdjustReason) ? SalaryArchiveItemAdjustReasonEnum.INIT.getValue() : salaryItemAdjustReason).salaryItemId(salaryItemId).itemValue(cellVal).description("").operator((long) user.getUID()).operateTime(importHandleParam.getNowTime()).createTime(importHandleParam.getNowTime()).updateTime(importHandleParam.getNowTime()).creator((long) user.getUID()).tenantKey(SalaryDefaultTenantConstant.DEFAULT_TENANT_KEY).build());
}
// 用于初始化导入同一个人的多行记录之间的薪资项目是否调整
map.put("salaryItemVal", Optional.ofNullable(map.get("salaryItemVal")).orElse("").toString() + salaryItemId + cellVal);
@ -1563,42 +1476,19 @@ public class SalaryArchiveServiceImpl extends Service implements SalaryArchiveSe
for (SalaryArchiveTaxAgentPO st : saTaxAgents) {
Date finalEndDate = endDate;
List<SalaryArchiveItemPO> saItems = saItemList.stream().filter(si -> !si.getEffectiveTime().after(finalEndDate))
.collect(Collectors.collectingAndThen(Collectors.toCollection(() -> new TreeSet<>(Comparator.comparing(f -> f.getSalaryArchiveId() + "-" + f.getSalaryItemId()))), ArrayList::new));
List<SalaryArchiveItemPO> saItems = saItemList.stream().filter(si -> !si.getEffectiveTime().after(finalEndDate)).collect(Collectors.collectingAndThen(Collectors.toCollection(() -> new TreeSet<>(Comparator.comparing(f -> f.getSalaryArchiveId() + "-" + f.getSalaryItemId()))), ArrayList::new));
SalaryArchivePO newSA = SalaryArchivePO.builder()
.id(IdGenerator.generate())
.employeeId(sa.getEmployeeId())
.taxAgentId(st.getTaxAgentId())
.payStartDate(st.getEffectiveTime())
SalaryArchivePO newSA = SalaryArchivePO.builder().id(IdGenerator.generate()).employeeId(sa.getEmployeeId()).taxAgentId(st.getTaxAgentId()).payStartDate(st.getEffectiveTime())
// .runStatus(SalaryArchiveStatusEnum.FIXED.getValue())
// .modifier(0L)
.createTime(today)
.updateTime(today)
.creator(currentEmployeeId)
.deleteType(NumberUtils.INTEGER_ZERO)
.tenantKey(SalaryDefaultTenantConstant.DEFAULT_TENANT_KEY)
.build();
.createTime(today).updateTime(today).creator(currentEmployeeId).deleteType(NumberUtils.INTEGER_ZERO).tenantKey(SalaryDefaultTenantConstant.DEFAULT_TENANT_KEY).build();
salaryArchiveAddList.add(newSA);
saItems.forEach(sf -> {
salaryArchiveItemAddList.add(SalaryArchiveItemPO.builder()
// .id(IdGenerator.generate())
.salaryArchiveId(newSA.getId())
.employeeId(newSA.getEmployeeId())
.effectiveTime(sf.getEffectiveTime())
.adjustReason(sf.getAdjustReason())
.salaryItemId(sf.getSalaryItemId())
.itemValue(sf.getItemValue())
.description(sf.getDescription())
.salaryArchiveId(newSA.getId()).employeeId(newSA.getEmployeeId()).effectiveTime(sf.getEffectiveTime()).adjustReason(sf.getAdjustReason()).salaryItemId(sf.getSalaryItemId()).itemValue(sf.getItemValue()).description(sf.getDescription())
// 不用设置操作人
.operator(currentEmployeeId)
.operateTime(today)
.createTime(today)
.updateTime(today)
.creator(currentEmployeeId)
.deleteType(NumberUtils.INTEGER_ZERO)
.tenantKey(SalaryDefaultTenantConstant.DEFAULT_TENANT_KEY)
.build());
.operator(currentEmployeeId).operateTime(today).createTime(today).updateTime(today).creator(currentEmployeeId).deleteType(NumberUtils.INTEGER_ZERO).tenantKey(SalaryDefaultTenantConstant.DEFAULT_TENANT_KEY).build());
});
// endDate = st.getEffectiveTime();