薪酬系统-福利档案,增加操作日志

This commit is contained in:
sy 2024-02-07 17:39:26 +08:00
parent 146a21a377
commit 6a79b22c17
7 changed files with 934 additions and 503 deletions

View File

@ -1,5 +1,6 @@
package com.engine.salary.entity.siarchives.po;
import com.engine.salary.elog.annotation.ElogTransform;
import com.engine.salary.enums.datacollection.DataCollectionEmployeeTypeEnum;
import lombok.AllArgsConstructor;
import lombok.Builder;
@ -19,65 +20,78 @@ import java.util.Date;
@NoArgsConstructor
@AllArgsConstructor
//hrsa_insurance_base_info
@ElogTransform(name = "福利档案主表")
public class InsuranceArchivesBaseInfoPO {
/**
* 主键id
*/
@ElogTransform(name = "主键id")
private Long id;
/**
* 员工id
*/
@ElogTransform(name = "员工id")
private Long employeeId;
/**
* 个税扣缴义务人id
*/
@ElogTransform(name = "个税扣缴义务人id")
private Long paymentOrganization;
/**
* 社保档案id
*/
@ElogTransform(name = "社保档案id")
private Long socialArchivesId;
/**
* 公积金档案id
*/
@ElogTransform(name = "公积金档案id")
private Long fundArchivesId;
/**
* 其他福利档案id
*/
@ElogTransform(name = "其他福利档案id")
private Long otherArchivesId;
/**
* 租户key
*/
@ElogTransform(name = "租户key")
private String tenantKey;
/**
* 创建人id
*/
@ElogTransform(name = "创建人id")
private Long creator;
/**
* 是否删除
*/
@ElogTransform(name = "是否删除")
private Integer deleteType;
/**
* 创建时间
*/
@ElogTransform(name = "创建时间")
private Date createTime;
/**
* 更新时间
*/
@ElogTransform(name = "更新时间")
private Date updateTime;
/**
* 福利执行状态
*/
@ElogTransform(name = "福利执行状态")
private String runStatus;
/**
@ -85,6 +99,7 @@ public class InsuranceArchivesBaseInfoPO {
*
* @see DataCollectionEmployeeTypeEnum
*/
@ElogTransform(name = "人员类型")
private Integer employeeType;
//---------条件-------

View File

@ -1,6 +1,7 @@
package com.engine.salary.entity.siarchives.po;
import com.engine.salary.annotation.Encrypt;
import com.engine.salary.elog.annotation.ElogTransform;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
@ -19,35 +20,42 @@ import java.util.Date;
@NoArgsConstructor
@AllArgsConstructor
//hrsa_fund_archives
@ElogTransform(name = "福利档案明细表-公积金信息")
public class InsuranceArchivesFundSchemePO {
/**
* 主键id
*/
@ElogTransform(name = "主键id")
private Long id;
/**
* 员工id
*/
@ElogTransform(name = "员工id")
private Long employeeId;
/**
* 福利类型
*/
@ElogTransform(name = "福利类型")
private Integer welfareType;
/**
* 暂不缴纳
*/
@ElogTransform(name = "是否暂不缴纳")
private Integer nonPayment;
/**
* 公积金起始缴纳月
*/
@ElogTransform(name = "公积金起始缴纳月")
private String fundStartTime;
/**
* 公积金最后缴纳月
*/
@ElogTransform(name = "公积金最后缴纳月")
private String fundEndTime;
/**
@ -59,63 +67,75 @@ public class InsuranceArchivesFundSchemePO {
/**
* 公积金方案id
*/
@ElogTransform(name = "公积金方案id")
private Long fundSchemeId;
/**
* 公积金账号
*/
@ElogTransform(name = "公积金账号")
private String fundAccount;
/**
* 补充公积金账号
*/
@ElogTransform(name = "补充公积金账号")
private String supplementFundAccount;
/**
* 公积金缴纳组织
*/
@ElogTransform(name = "公积金缴纳组织")
private Long paymentOrganization;
/**
* 公积金个人实际承担方
*/
@ElogTransform(name = "公积金个人实际承担方")
private Integer underTake;
/**
* 公积金缴纳基数
*/
@Encrypt
@ElogTransform(name = "公积金缴纳基数")
private String fundPaymentBaseString;
/**
* 公积金缴纳基数单位
*/
@Encrypt
@ElogTransform(name = "公积金缴纳基数——单位")
private String fundPaymentComBaseString;
/**
* 租户key
*/
@ElogTransform(name = "租户key")
private String tenantKey;
/**
* 创建人id
*/
@ElogTransform(name = "创建人id")
private Long creator;
/**
* 是否删除
*/
@ElogTransform(name = "是否删除")
private Integer deleteType;
/**
* 创建时间
*/
@ElogTransform(name = "创建时间")
private Date createTime;
/**
* 更新时间
*/
@ElogTransform(name = "更新时间")
private Date updateTime;
}

View File

@ -1,6 +1,7 @@
package com.engine.salary.entity.siarchives.po;
import com.engine.salary.annotation.Encrypt;
import com.engine.salary.elog.annotation.ElogTransform;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
@ -19,35 +20,42 @@ import java.util.Date;
@NoArgsConstructor
@AllArgsConstructor
//hrsa_other_archives
@ElogTransform(name = "福利档案明细表-其他福利信息")
public class InsuranceArchivesOtherSchemePO {
/**
* 主键id
*/
@ElogTransform(name = "主键id")
private Long id;
/**
* 员工id
*/
@ElogTransform(name = "员工id")
private Long employeeId;
/**
* 暂不缴纳
*/
@ElogTransform(name = "是否暂不缴纳")
private Integer nonPayment;
/**
* 福利类型
*/
@ElogTransform(name = "福利类型")
private Integer welfareType;
/**
* 其他福利起始缴纳月
*/
@ElogTransform(name = "其他福利起始缴纳月")
private String otherStartTime;
/**
* 其他福利最后缴纳月
*/
@ElogTransform(name = "其他福利最后缴纳月")
private String otherEndTime;
/**
@ -59,52 +67,62 @@ public class InsuranceArchivesOtherSchemePO {
/**
* 其他福利方案id
*/
@ElogTransform(name = "其他福利方案id")
private Long otherSchemeId;
/**
* 其他福利缴纳组织
*/
@ElogTransform(name = "其他福利缴纳组织")
private Long paymentOrganization;
/**
* 其他福利个人实际承担方
*/
@ElogTransform(name = "其他福利个人实际承担方")
private Integer underTake;
/**
* 其他福利缴纳基数
*/
@Encrypt
@ElogTransform(name = "其他福利缴纳基数")
private String otherPaymentBaseString;
/**
* 其他福利缴纳基数单位
*/
@Encrypt
@ElogTransform(name = "其他福利缴纳基数——单位")
private String otherPaymentComBaseString;
/**
* 租户key
*/
@ElogTransform(name = "租户key")
private String tenantKey;
/**
* 创建人id
*/
@ElogTransform(name = "创建人id")
private Long creator;
/**
* 是否删除
*/
@ElogTransform(name = "是否删除")
private Integer deleteType;
/**
* 创建时间
*/
@ElogTransform(name = "创建时间")
private Date createTime;
/**
* 更新时间
*/
@ElogTransform(name = "更新时间")
private Date updateTime;
}

View File

@ -1,6 +1,7 @@
package com.engine.salary.entity.siarchives.po;
import com.engine.salary.annotation.Encrypt;
import com.engine.salary.elog.annotation.ElogTransform;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
@ -19,36 +20,43 @@ import java.util.Date;
@NoArgsConstructor
@AllArgsConstructor
//hrsa_social_archives
@ElogTransform(name = "福利档案明细表-社保信息")
public class InsuranceArchivesSocialSchemePO {
/**
* 主键id
*/
@ElogTransform(name = "主键id")
private Long id;
/**
* 员工id
*/
@ElogTransform(name = "员工id")
private Long employeeId;
/**
* 暂不缴纳
*/
@ElogTransform(name = "是否暂不缴纳")
private Integer nonPayment;
/**
* 福利类型
*/
@ElogTransform(name = "福利类型")
private Integer welfareType;
/**
* 社保起始缴纳月
*/
@ElogTransform(name = "社保起始缴纳月")
private String socialStartTime;
/**
* 社保最后缴纳月
*/
@ElogTransform(name = "社保最后缴纳月")
private String socialEndTime;
/**
@ -60,57 +68,68 @@ public class InsuranceArchivesSocialSchemePO {
/**
* 社保方案id
*/
@ElogTransform(name = "社保方案id")
private Long socialSchemeId;
/**
* 社保账号
*/
@ElogTransform(name = "社保账号")
private String socialAccount;
/**
* 社保缴纳组织
*/
@ElogTransform(name = "社保缴纳组织")
private Long paymentOrganization;
/**
* 社保个人实际承担方
*/
@ElogTransform(name = "社保个人实际承担方")
private Integer underTake;
/**
* 社保缴纳基数
*/
@Encrypt
@ElogTransform(name = "社保缴纳基数")
private String socialPaymentBaseString;
/**
* 社保缴纳基数单位
*/
@Encrypt
@ElogTransform(name = "社保缴纳基数——单位")
private String socialPaymentComBaseString;
/**
* 租户key
*/
@ElogTransform(name = "租户key")
private String tenantKey;
/**
* 创建人id
*/
@ElogTransform(name = "创建人id")
private Long creator;
/**
* 是否删除
*/
@ElogTransform(name = "是否删除")
private Integer deleteType;
/**
* 创建时间
*/
@ElogTransform(name = "创建时间")
private Date createTime;
/**
* 更新时间
*/
@ElogTransform(name = "更新时间")
private Date updateTime;
}

File diff suppressed because it is too large Load Diff

View File

@ -6,6 +6,8 @@ import com.api.browser.util.ConditionFactory;
import com.api.browser.util.ConditionType;
import com.engine.common.util.ServiceUtil;
import com.engine.core.impl.Service;
import com.engine.salary.config.SalaryElogConfig;
import com.engine.salary.elog.entity.dto.LoggerContext;
import com.engine.salary.encrypt.EncryptUtil;
import com.engine.salary.entity.siaccount.po.InsuranceAccountDetailPO;
import com.engine.salary.entity.sicategory.bo.ICategoryBO;
@ -15,6 +17,7 @@ import com.engine.salary.entity.sicategory.dto.ICategoryListDTO;
import com.engine.salary.entity.sicategory.po.ICategoryPO;
import com.engine.salary.entity.sischeme.param.InsuranceSchemeParam;
import com.engine.salary.entity.sischeme.po.InsuranceSchemeDetailPO;
import com.engine.salary.enums.OperateTypeEnum;
import com.engine.salary.enums.sicategory.DataTypeEnum;
import com.engine.salary.enums.sicategory.IsPaymentEnum;
import com.engine.salary.enums.sicategory.PaymentScopeEnum;
@ -119,6 +122,15 @@ public class SICategoryServiceImpl extends Service implements SICategoryService
items.put("paymentScope",checkbox);
apidatas.put("item",items);
//记录操作日志
LoggerContext loggerContext = new LoggerContext<>();
loggerContext.setUser(user);
loggerContext.setTargetId(String.valueOf(form.getId()));
loggerContext.setTargetName(form.getInsuranceName());
loggerContext.setOperateType(OperateTypeEnum.READ.getValue());
loggerContext.setOperateTypeName(SalaryI18nUtil.getI18nLabel(0, "查看自定义福利明细"));
loggerContext.setOperatedesc(SalaryI18nUtil.getI18nLabel(0, "查看自定义福利明细") + ": " + form.getInsuranceName());
SalaryElogConfig.siSchemeLoggerTemplate.write(loggerContext);
return apidatas;
}
@ -250,6 +262,16 @@ public class SICategoryServiceImpl extends Service implements SICategoryService
.updateTime(new Date())
.build();
getICategoryMapper().updateNameAndPayScopeById(iCategoryPO);
//记录操作日志
LoggerContext<ICategoryPO> loggerContext = new LoggerContext<>();
loggerContext.setUser(user);
loggerContext.setTargetId(String.valueOf(iCategoryPO.getId()));
loggerContext.setTargetName(iCategoryPO.getInsuranceName());
loggerContext.setOperateType(OperateTypeEnum.UPDATE.getValue());
loggerContext.setOperateTypeName(SalaryI18nUtil.getI18nLabel(0, "更新自定义福利信息"));
loggerContext.setOperatedesc(SalaryI18nUtil.getI18nLabel(0, "更新自定义福利信息"));
loggerContext.setNewValues(iCategoryPO);
SalaryElogConfig.siCategoryLoggerTemplate.write(loggerContext);
return null;
}
@ -297,6 +319,16 @@ public class SICategoryServiceImpl extends Service implements SICategoryService
//删除自定义福利项
categoryPO.setUpdateTime(new Date());
getICategoryMapper().deleteCustomCategoryById(categoryPO);
//记录操作日志
LoggerContext<ICategoryPO> loggerContext = new LoggerContext<>();
loggerContext.setUser(user);
loggerContext.setTargetId(String.valueOf(categoryPO.getId()));
loggerContext.setTargetName(categoryPO.getInsuranceName());
loggerContext.setOperateType(OperateTypeEnum.DELETE.getValue());
loggerContext.setOperateTypeName(SalaryI18nUtil.getI18nLabel(0, "新建自定义福利项"));
loggerContext.setOperatedesc(SalaryI18nUtil.getI18nLabel(0, "新建自定义福利项"));
// loggerContext.setNewValues(categoryPO);
SalaryElogConfig.siCategoryLoggerTemplate.write(loggerContext);
return null;
}
@ -381,22 +413,23 @@ public class SICategoryServiceImpl extends Service implements SICategoryService
* @param employeeId DataTypeEnum.SYSTEM.getValue()
*/
public void save(ICategoryFormDTO iCategoryFormDTO, long employeeId) {
SqlSession sqlSession = MyBatisFactory.sqlSessionFactory.openSession();
try {
ICategoryMapper iCategoryMapper = sqlSession.getMapper(ICategoryMapper.class);
iCategoryFormDTO.setInsuranceName(StringUtils.trim(iCategoryFormDTO.getInsuranceName()));
List<ICategoryPO> iCategoryPOS = listByName(iCategoryFormDTO.getInsuranceName());
if (CollectionUtils.isNotEmpty(iCategoryPOS)) {
throw new SalaryRunTimeException(SalaryI18nUtil.getI18nLabel(0,"福利名称不允许重复"));
}
ICategoryPO iCategoryPO = ICategoryBO.convertToInsuranceCategoryPO(iCategoryFormDTO, employeeId);
iCategoryMapper.insert(iCategoryPO);
sqlSession.commit();
} finally {
sqlSession.close();
iCategoryFormDTO.setInsuranceName(StringUtils.trim(iCategoryFormDTO.getInsuranceName()));
List<ICategoryPO> iCategoryPOS = listByName(iCategoryFormDTO.getInsuranceName());
if (CollectionUtils.isNotEmpty(iCategoryPOS)) {
throw new SalaryRunTimeException(SalaryI18nUtil.getI18nLabel(0,"福利名称不允许重复"));
}
ICategoryPO iCategoryPO = ICategoryBO.convertToInsuranceCategoryPO(iCategoryFormDTO, employeeId);
getICategoryMapper().insert(iCategoryPO);
//记录操作日志
LoggerContext<ICategoryPO> loggerContext = new LoggerContext<>();
loggerContext.setUser(user);
loggerContext.setTargetId(String.valueOf(iCategoryPO.getId()));
loggerContext.setTargetName(iCategoryPO.getInsuranceName());
loggerContext.setOperateType(OperateTypeEnum.ADD.getValue());
loggerContext.setOperateTypeName(SalaryI18nUtil.getI18nLabel(0, "新建自定义福利项"));
loggerContext.setOperatedesc(SalaryI18nUtil.getI18nLabel(0, "新建自定义福利项"));
loggerContext.setNewValues(iCategoryPO);
SalaryElogConfig.siCategoryLoggerTemplate.write(loggerContext);
}
/**
@ -436,31 +469,34 @@ public class SICategoryServiceImpl extends Service implements SICategoryService
* @param isUse
*/
public void updateStatusById(Long id, Integer isUse) {
SqlSession sqlSession = MyBatisFactory.sqlSessionFactory.openSession();
try {
if(id == null) {
throw new SalaryRunTimeException("id is required");
}
if (isUse == null) {
throw new SalaryRunTimeException("isUse is required");
}
// List<InsuranceSchemeDetailPO> insuranceSchemeDetailPOS = new SISchemeBiz().queryListByInsuranceIdIsPayment(id, IsPaymentEnum.YES.getValue());
List<InsuranceSchemeDetailPO> insuranceSchemeDetailPOS = getSISchemeService(user).queryListByInsuranceIdIsPayment(id, IsPaymentEnum.YES.getValue());
if(CollectionUtils.isNotEmpty(insuranceSchemeDetailPOS) && isUse == 0) {
throw new SalaryRunTimeException(SalaryI18nUtil.getI18nLabel(0,"该福利开启缴费,不可删除(或停用)"));
}
ICategoryPO iCategoryPO = getICategoryPOByID(id);
if (Objects.isNull(iCategoryPO)) {
throw new SalaryRunTimeException(SalaryI18nUtil.getI18nLabel(0,"数据记录不存在"));
}
iCategoryPO.setIsUse(isUse);
ICategoryMapper iCategoryMapper = sqlSession.getMapper(ICategoryMapper.class);
iCategoryMapper.updateById(iCategoryPO);
sqlSession.commit();
}finally {
sqlSession.close();
if(id == null) {
throw new SalaryRunTimeException("id is required");
}
if (isUse == null) {
throw new SalaryRunTimeException("isUse is required");
}
// List<InsuranceSchemeDetailPO> insuranceSchemeDetailPOS = new SISchemeBiz().queryListByInsuranceIdIsPayment(id, IsPaymentEnum.YES.getValue());
List<InsuranceSchemeDetailPO> insuranceSchemeDetailPOS = getSISchemeService(user).queryListByInsuranceIdIsPayment(id, IsPaymentEnum.YES.getValue());
if(CollectionUtils.isNotEmpty(insuranceSchemeDetailPOS) && isUse == 0) {
throw new SalaryRunTimeException(SalaryI18nUtil.getI18nLabel(0,"该福利开启缴费,不可删除(或停用)"));
}
ICategoryPO iCategoryPO = getICategoryPOByID(id);
if (Objects.isNull(iCategoryPO)) {
throw new SalaryRunTimeException(SalaryI18nUtil.getI18nLabel(0,"数据记录不存在"));
}
iCategoryPO.setIsUse(isUse);
getICategoryMapper().updateById(iCategoryPO);
//记录操作日志
LoggerContext<ICategoryPO> loggerContext = new LoggerContext<>();
loggerContext.setUser(user);
loggerContext.setTargetId(String.valueOf(iCategoryPO.getId()));
loggerContext.setTargetName(iCategoryPO.getInsuranceName());
loggerContext.setOperateType(OperateTypeEnum.UPDATE.getValue());
loggerContext.setOperateTypeName(SalaryI18nUtil.getI18nLabel(0, "更新自定义福利状态"));
loggerContext.setOperatedesc(SalaryI18nUtil.getI18nLabel(0, "更新自定义福利状态"));
loggerContext.setNewValues(iCategoryPO);
SalaryElogConfig.siCategoryLoggerTemplate.write(loggerContext);
}
/*****以上代码为SICategoryBiz中方法逻辑迁移旨在减少Biz类的使用*****/

View File

@ -14,6 +14,7 @@ import com.engine.salary.elog.entity.dto.LoggerContext;
import com.engine.salary.encrypt.EncryptUtil;
import com.engine.salary.entity.datacollection.DataCollectionEmployee;
import com.engine.salary.entity.salaryacct.po.SalaryAcctRecordPO;
import com.engine.salary.entity.siarchives.dto.InsuranceArchivesBaseHistoryDTO;
import com.engine.salary.entity.siarchives.param.InsuranceArchivesListParam;
import com.engine.salary.entity.siarchives.param.SIArchiveImportParam;
import com.engine.salary.entity.siarchives.po.*;
@ -40,6 +41,7 @@ import com.engine.salary.enums.salarysob.TargetTypeEnum;
import com.engine.salary.enums.siaccount.EmployeeStatusEnum;
import com.engine.salary.enums.sicategory.*;
import com.engine.salary.exception.SalaryRunTimeException;
import com.engine.salary.mapper.datacollection.EmployMapper;
import com.engine.salary.mapper.siaccount.SIAccountUtilMapper;
import com.engine.salary.mapper.siarchives.FundSchemeMapper;
import com.engine.salary.mapper.siarchives.InsuranceBaseInfoMapper;
@ -173,6 +175,9 @@ public class SISchemeServiceImpl extends Service implements SISchemeService {
return SqlProxyHandle.getProxy(SIAccountUtilMapper.class);
}
private EmployMapper getEmployMapper() {
return MapperProxyFactory.getProxy(EmployMapper.class);
}
@Override
public Map<String, Object> getForm(Map<String, Object> params) {
// return commandExecutor.execute(new SISchemeGetFormCmd(params, user));
@ -186,6 +191,16 @@ public class SISchemeServiceImpl extends Service implements SISchemeService {
// InsuranceSchemeFormVO form = siSchemeBiz.getForm(id, welfareTypeEnum);
InsuranceSchemeFormVO form = getForm(id, welfareTypeEnum);
apidatas.put("form",form);
//记录操作日志
InsuranceSchemeDTO schemeBatch = form.getSchemeBatch();
LoggerContext loggerContext = new LoggerContext<>();
loggerContext.setUser(user);
loggerContext.setTargetId(String.valueOf(schemeBatch.getId()));
loggerContext.setTargetName(schemeBatch.getSchemeName());
loggerContext.setOperateType(OperateTypeEnum.READ.getValue());
loggerContext.setOperateTypeName(SalaryI18nUtil.getI18nLabel(0, "查看福利方案明细"));
loggerContext.setOperatedesc(SalaryI18nUtil.getI18nLabel(0, "查看福利方案明细") + ": " + schemeBatch.getSchemeName());
SalaryElogConfig.siSchemeLoggerTemplate.write(loggerContext);
return apidatas;
}
@ -623,6 +638,13 @@ public class SISchemeServiceImpl extends Service implements SISchemeService {
}
rows.add(row);
}
//记录操作日志
LoggerContext<InsuranceArchivesOtherSchemePO> loggerContext = new LoggerContext<>();
loggerContext.setUser(user);
loggerContext.setOperateType(OperateTypeEnum.EXPORT.getValue());
loggerContext.setOperateTypeName(SalaryI18nUtil.getI18nLabel(0, "福利档案导出"));
loggerContext.setOperatedesc(SalaryI18nUtil.getI18nLabel(0, "福利档案导出"));
SalaryElogConfig.siArchivesLoggerTemplate.write(loggerContext);
//获取excel
return ExcelUtilPlus.genWorkbookV2(rows, sheetName);
}
@ -1821,10 +1843,17 @@ public class SISchemeServiceImpl extends Service implements SISchemeService {
}
public void handleImportData(List<InsuranceArchivesAccountPO> insuranceArchivesAccountPOS, SIArchiveImportParam param) {
List<InsuranceArchivesBaseInfoPO> baseInfoPOS = insuranceArchivesAccountPOS.stream().filter(Objects::nonNull).map(InsuranceArchivesAccountPO::getBaseInfo).collect(Collectors.toList());
//去除员工id+个税扣缴义务人下重复的数据
baseInfoPOS = baseInfoPOS.stream()
.collect(Collectors.collectingAndThen(Collectors.toCollection(() -> new TreeSet<>(Comparator.comparing(f -> f.getPaymentOrganization() + "-" + f.getEmployeeId()))), ArrayList::new));
//老数据map
Map<String, InsuranceArchivesSocialSchemePO> oldSocialArchiveMap = getSocialArchiveMap(baseInfoPOS);
Map<String, InsuranceArchivesFundSchemePO> oldFundArchiveMap = getFundArchiveMap(baseInfoPOS);
Map<String, InsuranceArchivesOtherSchemePO> oldOtherArchiveMap = getOtherArchiveMap(baseInfoPOS);
//导入社保档案
List<InsuranceArchivesSocialSchemePO> socialSchemePOS = insuranceArchivesAccountPOS.stream().filter(Objects::nonNull).map(InsuranceArchivesAccountPO::getSocial).collect(Collectors.toList());
if (CollectionUtils.isNotEmpty(socialSchemePOS)) {
//去除员工id+个税扣缴义务人下重复的数据
socialSchemePOS = socialSchemePOS.stream()
.collect(Collectors.collectingAndThen(Collectors.toCollection(() -> new TreeSet<>(Comparator.comparing(f -> f.getPaymentOrganization() + "-" + f.getEmployeeId()))), ArrayList::new));
@ -1848,7 +1877,6 @@ public class SISchemeServiceImpl extends Service implements SISchemeService {
//导入公积金档案
List<InsuranceArchivesFundSchemePO> fundSchemePOS = insuranceArchivesAccountPOS.stream().filter(Objects::nonNull).map(InsuranceArchivesAccountPO::getFund).collect(Collectors.toList());
if (CollectionUtils.isNotEmpty(fundSchemePOS)) {
//去除员工id+个税扣缴义务人下重复的数据
fundSchemePOS = fundSchemePOS.stream()
.collect(Collectors.collectingAndThen(Collectors.toCollection(() -> new TreeSet<>(Comparator.comparing(f -> f.getPaymentOrganization() + "-" + f.getEmployeeId()))), ArrayList::new));
@ -1869,7 +1897,6 @@ public class SISchemeServiceImpl extends Service implements SISchemeService {
//导入其他福利档案
List<InsuranceArchivesOtherSchemePO> otherSchemePOS = insuranceArchivesAccountPOS.stream().filter(Objects::nonNull).map(InsuranceArchivesAccountPO::getOther).collect(Collectors.toList());
if (CollectionUtils.isNotEmpty(otherSchemePOS)) {
//去除员工id+个税扣缴义务人下重复的数据
otherSchemePOS = otherSchemePOS.stream()
.collect(Collectors.collectingAndThen(Collectors.toCollection(() -> new TreeSet<>(Comparator.comparing(f -> f.getPaymentOrganization() + "-" + f.getEmployeeId()))), ArrayList::new));
@ -1889,12 +1916,12 @@ public class SISchemeServiceImpl extends Service implements SISchemeService {
getSIArchivesService(user).batchInsertAdjustHistory(adjustOtherHistoryPOList);
}
//导入福利档案基础信息
List<InsuranceArchivesBaseInfoPO> baseInfoPOS = insuranceArchivesAccountPOS.stream().filter(Objects::nonNull).map(InsuranceArchivesAccountPO::getBaseInfo).collect(Collectors.toList());
// List<InsuranceArchivesBaseInfoPO> baseInfoPOS = insuranceArchivesAccountPOS.stream().filter(Objects::nonNull).map(InsuranceArchivesAccountPO::getBaseInfo).collect(Collectors.toList());
if (CollectionUtils.isNotEmpty(baseInfoPOS)) {
// baseInfoPOS = baseInfoPOS.stream().collect(Collectors.collectingAndThen(Collectors.toCollection(() -> new TreeSet<>(Comparator.comparing(InsuranceArchivesBaseInfoPO::getEmployeeId))), ArrayList::new));
//去除员工id+个税扣缴义务人下重复的数据
baseInfoPOS = baseInfoPOS.stream()
.collect(Collectors.collectingAndThen(Collectors.toCollection(() -> new TreeSet<>(Comparator.comparing(f -> f.getPaymentOrganization() + "-" + f.getEmployeeId()))), ArrayList::new));
// //去除员工id+个税扣缴义务人下重复的数据
// baseInfoPOS = baseInfoPOS.stream()
// .collect(Collectors.collectingAndThen(Collectors.toCollection(() -> new TreeSet<>(Comparator.comparing(f -> f.getPaymentOrganization() + "-" + f.getEmployeeId()))), ArrayList::new));
//根据人员id和个税扣缴义务人id删除对应档案
baseInfoPOS.forEach(getInsuranceBaseInfoMapper()::deleteByEmployeeIdAndPayOrg);
//分批批量删除
@ -1919,6 +1946,54 @@ public class SISchemeServiceImpl extends Service implements SISchemeService {
//分批批量入库
List<List<InsuranceArchivesBaseInfoPO>> partition = Lists.partition(newInsuranceArchivesBaseInfoList, 100);
partition.forEach(getInsuranceBaseInfoMapper()::batchSave);
//记录操作日志
//获取新数据map和老数据map
Map<String, InsuranceArchivesSocialSchemePO> newSocialArchiveMap = getSocialArchiveMap(baseInfoPOS);
Map<String, InsuranceArchivesFundSchemePO> newFundArchiveMap = getFundArchiveMap(baseInfoPOS);
Map<String, InsuranceArchivesOtherSchemePO> newOtherArchiveMap = getOtherArchiveMap(baseInfoPOS);
newInsuranceArchivesBaseInfoList.forEach(targetPO -> {
InsuranceArchivesSocialSchemePO targetSocialDetail = newSocialArchiveMap.get(targetPO.getPaymentOrganization() + "-" + targetPO.getEmployeeId());
InsuranceArchivesFundSchemePO targetFundDetail = newFundArchiveMap.get(targetPO.getPaymentOrganization() + "-" + targetPO.getEmployeeId());
InsuranceArchivesOtherSchemePO targetOtherDetail = newOtherArchiveMap.get(targetPO.getPaymentOrganization() + "-" + targetPO.getEmployeeId());
DataCollectionEmployee empInfo = getEmployMapper().getEmployeeById(targetPO.getEmployeeId());
TaxAgentPO taxAgentInfo = getTaxAgentMapper().getById(targetPO.getPaymentOrganization());
if (targetSocialDetail != null) {
LoggerContext<InsuranceArchivesSocialSchemePO> loggerContext = new LoggerContext<>();
loggerContext.setUser(user);
loggerContext.setTargetId(String.valueOf(targetPO.getId()));
loggerContext.setTargetName(taxAgentInfo.getName() + "-" + empInfo.getUsername());
loggerContext.setOperateType(OperateTypeEnum.UPDATE.getValue());
loggerContext.setOperateTypeName(SalaryI18nUtil.getI18nLabel(0, "福利档案-社保明细导入"));
loggerContext.setOperatedesc(SalaryI18nUtil.getI18nLabel(0, "福利档案-社保明细导入") + ": " + taxAgentInfo.getName() + "-" + empInfo.getUsername());
loggerContext.setOldValues(oldSocialArchiveMap.get(targetPO.getPaymentOrganization() + "-" + targetPO.getEmployeeId()));
loggerContext.setNewValues(targetSocialDetail);
SalaryElogConfig.siArchivesLoggerTemplate.write(loggerContext);
}
if (targetFundDetail != null) {
LoggerContext<InsuranceArchivesFundSchemePO> loggerContext = new LoggerContext<>();
loggerContext.setUser(user);
loggerContext.setTargetId(String.valueOf(targetPO.getId()));
loggerContext.setTargetName(taxAgentInfo.getName() + "-" + empInfo.getUsername());
loggerContext.setOperateType(OperateTypeEnum.UPDATE.getValue());
loggerContext.setOperateTypeName(SalaryI18nUtil.getI18nLabel(0, "福利档案-公积金明细导入"));
loggerContext.setOperatedesc(SalaryI18nUtil.getI18nLabel(0, "福利档案-公积金明细导入") + ": " + taxAgentInfo.getName() + "-" + empInfo.getUsername());
loggerContext.setOldValues(oldFundArchiveMap.get(targetPO.getPaymentOrganization() + "-" + targetPO.getEmployeeId()));
loggerContext.setNewValues(targetFundDetail);
SalaryElogConfig.siArchivesLoggerTemplate.write(loggerContext);
}
if (targetOtherDetail != null) {
LoggerContext<InsuranceArchivesOtherSchemePO> loggerContext = new LoggerContext<>();
loggerContext.setUser(user);
loggerContext.setTargetId(String.valueOf(targetPO.getId()));
loggerContext.setTargetName(taxAgentInfo.getName() + "-" + empInfo.getUsername());
loggerContext.setOperateType(OperateTypeEnum.UPDATE.getValue());
loggerContext.setOperateTypeName(SalaryI18nUtil.getI18nLabel(0, "福利档案-其他福利明细导入"));
loggerContext.setOperatedesc(SalaryI18nUtil.getI18nLabel(0, "福利档案-其他福利明细导入") + ": " + taxAgentInfo.getName() + "-" + empInfo.getUsername());
loggerContext.setOldValues(oldOtherArchiveMap.get(targetPO.getPaymentOrganization() + "-" + targetPO.getEmployeeId()));
loggerContext.setNewValues(targetOtherDetail);
SalaryElogConfig.siArchivesLoggerTemplate.write(loggerContext);
}
});
}
//新增人员范围会自动生成人员档案
if (CollectionUtils.isNotEmpty(param.getTaxAgentRanges())) {
@ -1926,6 +2001,61 @@ public class SISchemeServiceImpl extends Service implements SISchemeService {
}
}
private Map<String, InsuranceArchivesSocialSchemePO> getSocialArchiveMap(List<InsuranceArchivesBaseInfoPO> baseInfoPOS) {
Map<String, InsuranceArchivesSocialSchemePO> map = new HashMap<>();
if (baseInfoPOS.size() > 0) {
//遍历待更新的福利档案数据对每组档案生成基数调整记录基数单元未变化则忽略
for (InsuranceArchivesBaseInfoPO po : baseInfoPOS) {
List<InsuranceArchivesSocialSchemePO> archiveList = getSocialSchemeMapper().getSocialByEmployeeIdAndPayOrg(InsuranceArchivesEmployeePO.builder()
.paymentOrganization(po.getPaymentOrganization()).employeeId(po.getEmployeeId()).build());
if (archiveList.size() == 1) {
//新增调整记录变更
encryptUtil.decryptList(archiveList, InsuranceArchivesSocialSchemePO.class);
map.put(po.getPaymentOrganization() + "-" + po.getEmployeeId(), archiveList.get(0));
} else if (archiveList.size() > 1) {
throw new SalaryRunTimeException(SalaryI18nUtil.getI18nLabel(0,"社保档案存在冗余数据!"));
}
}
}
return map;
}
private Map<String, InsuranceArchivesFundSchemePO> getFundArchiveMap(List<InsuranceArchivesBaseInfoPO> baseInfoPOS) {
Map<String, InsuranceArchivesFundSchemePO> map = new HashMap<>();
if (baseInfoPOS.size() > 0) {
//遍历待更新的福利档案数据对每组档案生成基数调整记录基数单元未变化则忽略
for (InsuranceArchivesBaseInfoPO po : baseInfoPOS) {
List<InsuranceArchivesFundSchemePO> archiveList = getFundSchemeMapper().getFundByEmployeeIdAndPayOrg(InsuranceArchivesEmployeePO.builder()
.paymentOrganization(po.getPaymentOrganization()).employeeId(po.getEmployeeId()).build());
if (archiveList.size() == 1) {
//新增调整记录变更
encryptUtil.decryptList(archiveList, InsuranceArchivesFundSchemePO.class);
map.put(po.getPaymentOrganization() + "-" + po.getEmployeeId(), archiveList.get(0));
} else if (archiveList.size() > 1) {
throw new SalaryRunTimeException(SalaryI18nUtil.getI18nLabel(0,"公积金档案存在冗余数据!"));
}
}
}
return map;
}
private Map<String, InsuranceArchivesOtherSchemePO> getOtherArchiveMap(List<InsuranceArchivesBaseInfoPO> baseInfoPOS) {
Map<String, InsuranceArchivesOtherSchemePO> map = new HashMap<>();
if (baseInfoPOS.size() > 0) {
//遍历待更新的福利档案数据对每组档案生成基数调整记录基数单元未变化则忽略
for (InsuranceArchivesBaseInfoPO po : baseInfoPOS) {
List<InsuranceArchivesOtherSchemePO> archiveList = getOtherSchemeMapper().getOtherByEmployeeIdAndPayOrg(InsuranceArchivesEmployeePO.builder()
.paymentOrganization(po.getPaymentOrganization()).employeeId(po.getEmployeeId()).build());
if (archiveList.size() == 1) {
//新增调整记录变更
encryptUtil.decryptList(archiveList, InsuranceArchivesOtherSchemePO.class);
map.put(po.getPaymentOrganization() + "-" + po.getEmployeeId(), archiveList.get(0));
} else if (archiveList.size() > 1) {
throw new SalaryRunTimeException(SalaryI18nUtil.getI18nLabel(0,"社保档案存在冗余数据!"));
}
}
}
return map;
}
/**
* 导出档案导入所需要的模板可根据开关选择是否导出现有的档案数据
@ -2335,8 +2465,8 @@ public class SISchemeServiceImpl extends Service implements SISchemeService {
loggerContext.setTargetId(String.valueOf(targetPO.getId()));
loggerContext.setTargetName(targetPO.getSchemeName());
loggerContext.setOperateType(OperateTypeEnum.ADD.getValue());
loggerContext.setOperateTypeName(SalaryI18nUtil.getI18nLabel(0, "建福利方案"));
loggerContext.setOperatedesc(SalaryI18nUtil.getI18nLabel(0, "新建福利方案") + ": " + targetPO.getSchemeName());
loggerContext.setOperateTypeName(SalaryI18nUtil.getI18nLabel(0, "增福利方案主表"));
loggerContext.setOperatedesc(SalaryI18nUtil.getI18nLabel(0, "福利方案基础信息") + ": " + targetPO.getSchemeName());
loggerContext.setNewValues(targetPO);
SalaryElogConfig.siSchemeLoggerTemplate.write(loggerContext);
}
@ -2345,26 +2475,19 @@ public class SISchemeServiceImpl extends Service implements SISchemeService {
//加密入库
encryptUtil.encryptList(insuranceSchemeDetailPOS, InsuranceSchemeDetailPO.class);
insuranceSchemeDetailPOS.forEach(getInsuranceSchemeDetailMapper()::insert);
//记录操作日志
//记录明细表操作日志
if (insuranceSchemeDetailPOS.size() > 0) {
encryptUtil.decryptList(insuranceSchemeDetailPOS, InsuranceSchemeDetailPO.class);
List<ICategoryPO> allCategoryList = getICategoryMapper().listAll();
Map<Long, String> categoryNameMap = SalaryEntityUtil.convert2Map(allCategoryList, ICategoryPO::getId, ICategoryPO::getInsuranceName);
InsuranceSchemePO finalTargetPO = targetPO;
insuranceSchemeDetailPOS.forEach(schemeDetailPO -> {
LoggerContext<InsuranceSchemeDetailPO> loggerContext = new LoggerContext<>();
loggerContext.setUser(user);
loggerContext.setTargetId(String.valueOf(finalTargetPO.getId()));
loggerContext.setTargetName(categoryNameMap.get(schemeDetailPO.getInsuranceId()));
loggerContext.setOperateType(OperateTypeEnum.ADD.getValue());
loggerContext.setOperateTypeName(SalaryI18nUtil.getI18nLabel(0, "新建福利方案明细"));
loggerContext.setOperatedesc(SalaryI18nUtil.getI18nLabel(0, "新建福利方案明细") + ": "
+ categoryNameMap.get(schemeDetailPO.getInsuranceId())
+ "-" + SalaryEnumUtil.enumMatchByValue(schemeDetailPO.getPaymentScope(), PaymentScopeEnum.values(), PaymentScopeEnum.class));
loggerContext.setNewValues(schemeDetailPO);
SalaryElogConfig.siSchemeLoggerTemplate.write(loggerContext);
});
LoggerContext<List<InsuranceSchemeDetailPO>> loggerContext = new LoggerContext<>();
loggerContext.setUser(user);
loggerContext.setTargetId(String.valueOf(targetPO.getId()));
loggerContext.setTargetName(targetPO.getSchemeName());
loggerContext.setOperateType(OperateTypeEnum.ADD.getValue());
loggerContext.setOperateTypeName(SalaryI18nUtil.getI18nLabel(0, "新增福利方案明细表"));
loggerContext.setOperatedesc(SalaryI18nUtil.getI18nLabel(0, "福利方案明细"));
insuranceSchemeDetailPOS.forEach(loggerContext::setNewValues);
SalaryElogConfig.siSchemeLoggerTemplate.write(loggerContext);
}
}
@ -2397,32 +2520,37 @@ public class SISchemeServiceImpl extends Service implements SISchemeService {
throw new SalaryRunTimeException(SalaryI18nUtil.getI18nLabel(0,"方案可见性为私有时,未设置可见范围"));
}
}
//记录操作日志
LoggerContext<SalaryAcctRecordPO> loggerContext = new LoggerContext<>();
//记录主表操作日志
LoggerContext<InsuranceSchemePO> loggerContext = new LoggerContext<>();
loggerContext.setUser(user);
loggerContext.setTargetId(insuranceSchemePO.getId().toString());
loggerContext.setTargetName(insuranceSchemePO.getSchemeName());
loggerContext.setOperateType(OperateTypeEnum.UPDATE.getValue());
loggerContext.setOperateTypeName(SalaryI18nUtil.getI18nLabel(0, "福利方案保存"));
loggerContext.setOperatedesc(SalaryI18nUtil.getI18nLabel(0, "福利方案保存") + ": " + insuranceSchemePO.getSchemeName());
loggerContext.setOldValues(insuranceSchemePO);
loggerContext.setOperateTypeName(SalaryI18nUtil.getI18nLabel(0, "修改福利方案主表"));
loggerContext.setOperatedesc(SalaryI18nUtil.getI18nLabel(0, "福利方案基础信息") + ": " + insuranceSchemePO.getSchemeName());
// loggerContext.setOldValues(insuranceSchemePO);
//更新福利方案主表
InsuranceSchemePO insuranceSchemePO1 = InsuranceSchemeBO.buildInsuranceSchemePO(insuranceSchemePO, updateParam.getInsuranceScheme());
getInsuranceSchemeMapper().update(insuranceSchemePO1);
//记录操作日志
//记录主表操作日志
loggerContext.setNewValues(insuranceSchemePO1);
SalaryElogConfig.salaryAcctRecordLoggerTemplate.write(loggerContext);
List<InsuranceSchemeDetailPO> oldInsuranceSchemeDetailPOS = getInsuranceSchemeDetailMapper().queryListBySchemeId(updateParam.getInsuranceScheme().getId());
encryptUtil.decryptList(oldInsuranceSchemeDetailPOS, InsuranceSchemeDetailPO.class);
//更新福利方案明细表 先删后插
getInsuranceSchemeDetailMapper().batchDeleteByPrimaryIds(Collections.singleton(updateParam.getInsuranceScheme().getId()));
//更新明细表
List<InsuranceSchemeDetailPO> insuranceSchemeDetailPOS = InsuranceSchemeBO.convertToInsuranceSchemeDetailPoList(updateParam.getInsuranceSchemeDetailList(), employeeId, insuranceSchemePO.getId());
encryptUtil.encryptList(insuranceSchemeDetailPOS, InsuranceSchemeDetailPO.class);
insuranceSchemeDetailPOS.forEach(getInsuranceSchemeDetailMapper()::insert);
//记录操作日志, todo
//记录明细表操作日志
encryptUtil.decryptList(insuranceSchemeDetailPOS, InsuranceSchemeDetailPO.class);
LoggerContext<List<InsuranceSchemeDetailPO>> insuranceSchemeDetailContext = new LoggerContext<>();
insuranceSchemeDetailContext.setTargetId(String.valueOf(insuranceSchemePO.getId()));
insuranceSchemeDetailContext.setTargetName(insuranceSchemePO.getSchemeName());
insuranceSchemeDetailContext.setOperateType(OperateTypeEnum.UPDATE.getValue());
insuranceSchemeDetailContext.setOperateTypeName(SalaryI18nUtil.getI18nLabel(0, "修改福利方案明细表"));
insuranceSchemeDetailContext.setOperatedesc(SalaryI18nUtil.getI18nLabel(0, "福利方案明细"));
insuranceSchemeDetailPOS.forEach(insuranceSchemeDetailContext::setNewValues);
SalaryElogConfig.salaryAcctRecordLoggerTemplate.write(insuranceSchemeDetailContext);
}
@ -2451,38 +2579,33 @@ public class SISchemeServiceImpl extends Service implements SISchemeService {
getInsuranceSchemeDetailMapper().deleteByIds(schemeIds);
//记录操作日志
Map<Long, List<InsuranceSchemeDetailPO>> targetDetailMap = targetDetailPoList.stream()
.collect(Collectors.groupingBy(InsuranceSchemeDetailPO::getPrimaryId));
if (targetPoList.size() > 0) {
targetPoList.forEach(targetPO -> {
//记录主表操作日志
LoggerContext<InsuranceSchemePO> loggerContext = new LoggerContext<>();
loggerContext.setUser(user);
loggerContext.setTargetId(String.valueOf(targetPO.getId()));
loggerContext.setTargetName(targetPO.getSchemeName());
loggerContext.setOperateType(OperateTypeEnum.DELETE.getValue());
loggerContext.setOperateTypeName(SalaryI18nUtil.getI18nLabel(0, "删除福利方案"));
loggerContext.setOperateTypeName(SalaryI18nUtil.getI18nLabel(0, "删除福利方案主表"));
loggerContext.setOperatedesc(SalaryI18nUtil.getI18nLabel(0, "删除福利方案") + ": " + targetPO.getSchemeName());
loggerContext.setNewValues(targetPO);
SalaryElogConfig.siSchemeLoggerTemplate.write(loggerContext);
});
}
if (targetDetailPoList.size() > 0) {
List<ICategoryPO> allCategoryList = getICategoryMapper().listAll();
Map<Long, String> categoryNameMap = SalaryEntityUtil.convert2Map(allCategoryList, ICategoryPO::getId, ICategoryPO::getInsuranceName);
Map<Long, List<InsuranceSchemeDetailPO>> targetDetailMap = targetDetailPoList.stream()
.collect(Collectors.groupingBy(InsuranceSchemeDetailPO::getPrimaryId));
targetDetailMap.forEach((k, v) -> {
v.forEach(schemeDetailPO -> {
LoggerContext<InsuranceSchemeDetailPO> loggerContext = new LoggerContext<>();
loggerContext.setUser(user);
loggerContext.setTargetId(String.valueOf(k));
loggerContext.setTargetName(categoryNameMap.get(schemeDetailPO.getInsuranceId()));
loggerContext.setOperateType(OperateTypeEnum.DELETE.getValue());
loggerContext.setOperateTypeName(SalaryI18nUtil.getI18nLabel(0, "删除福利方案明细"));
loggerContext.setOperatedesc(SalaryI18nUtil.getI18nLabel(0, "删除福利方案明细") + ": "
+ categoryNameMap.get(schemeDetailPO.getInsuranceId())
+ "-" + SalaryEnumUtil.enumMatchByValue(schemeDetailPO.getPaymentScope(), PaymentScopeEnum.values(), PaymentScopeEnum.class));
loggerContext.setNewValues(schemeDetailPO);
SalaryElogConfig.siSchemeLoggerTemplate.write(loggerContext);
});
//记录明细表操作日志
List<InsuranceSchemeDetailPO> targetDetails = targetDetailMap.get(targetPO.getId());
if (targetDetails != null && targetDetails.size() > 0) {
LoggerContext<List<InsuranceSchemeDetailPO>> detailLoggerContext = new LoggerContext<>();
detailLoggerContext.setUser(user);
detailLoggerContext.setTargetId(String.valueOf(targetPO.getId()));
detailLoggerContext.setTargetName(targetPO.getSchemeName());
detailLoggerContext.setOperateType(OperateTypeEnum.DELETE.getValue());
detailLoggerContext.setOperateTypeName(SalaryI18nUtil.getI18nLabel(0, "删除福利方案明细"));
detailLoggerContext.setOperatedesc(SalaryI18nUtil.getI18nLabel(0, "福利方案明细"));
targetDetails.forEach(detailLoggerContext::setNewValues);
SalaryElogConfig.siSchemeLoggerTemplate.write(detailLoggerContext);
}
});
}
@ -2537,8 +2660,8 @@ public class SISchemeServiceImpl extends Service implements SISchemeService {
loggerContext.setTargetId(String.valueOf(targetPO.getId()));
loggerContext.setTargetName(targetPO.getSchemeName());
loggerContext.setOperateType(OperateTypeEnum.ADD.getValue());
loggerContext.setOperateTypeName(SalaryI18nUtil.getI18nLabel(0, "复制福利方案"));
loggerContext.setOperatedesc(SalaryI18nUtil.getI18nLabel(0, "复制(新建)福利方案") + ": " + targetPO.getSchemeName());
loggerContext.setOperateTypeName(SalaryI18nUtil.getI18nLabel(0, "复制新增福利方案主表"));
loggerContext.setOperatedesc(SalaryI18nUtil.getI18nLabel(0, "福利方案基础信息") + ": " + targetPO.getSchemeName());
loggerContext.setNewValues(targetPO);
SalaryElogConfig.siSchemeLoggerTemplate.write(loggerContext);
}
@ -2569,26 +2692,19 @@ public class SISchemeServiceImpl extends Service implements SISchemeService {
//加密入库
encryptUtil.encryptList(detailPOS, InsuranceSchemeDetailPO.class);
detailPOS.forEach(getInsuranceSchemeDetailMapper()::insert);
//记录操作日志
//记录明细表操作日志
if (detailPOS.size() > 0) {
encryptUtil.decryptList(detailPOS, InsuranceSchemeDetailPO.class);
List<ICategoryPO> allCategoryList = getICategoryMapper().listAll();
Map<Long, String> categoryNameMap = SalaryEntityUtil.convert2Map(allCategoryList, ICategoryPO::getId, ICategoryPO::getInsuranceName);
InsuranceSchemePO finalTargetPO = targetPO;
detailPOS.forEach(schemeDetailPO -> {
LoggerContext<InsuranceSchemeDetailPO> loggerContext = new LoggerContext<>();
loggerContext.setUser(user);
loggerContext.setTargetId(String.valueOf(finalTargetPO.getId()));
loggerContext.setTargetName(categoryNameMap.get(schemeDetailPO.getInsuranceId()));
loggerContext.setOperateType(OperateTypeEnum.ADD.getValue());
loggerContext.setOperateTypeName(SalaryI18nUtil.getI18nLabel(0, "复制福利方案明细"));
loggerContext.setOperatedesc(SalaryI18nUtil.getI18nLabel(0, "复制(新建)福利方案明细") + ": "
+ categoryNameMap.get(schemeDetailPO.getInsuranceId())
+ "-" + SalaryEnumUtil.enumMatchByValue(schemeDetailPO.getPaymentScope(), PaymentScopeEnum.values(), PaymentScopeEnum.class));
loggerContext.setNewValues(schemeDetailPO);
SalaryElogConfig.siSchemeLoggerTemplate.write(loggerContext);
});
LoggerContext<List<InsuranceSchemeDetailPO>> loggerContext = new LoggerContext<>();
loggerContext.setUser(user);
loggerContext.setTargetId(String.valueOf(targetPO.getId()));
loggerContext.setTargetName(targetPO.getSchemeName());
loggerContext.setOperateType(OperateTypeEnum.ADD.getValue());
loggerContext.setOperateTypeName(SalaryI18nUtil.getI18nLabel(0, "复制新增福利方案明细表"));
loggerContext.setOperatedesc(SalaryI18nUtil.getI18nLabel(0, "福利方案明细"));
detailPOS.forEach(loggerContext::setNewValues);
SalaryElogConfig.siSchemeLoggerTemplate.write(loggerContext);
}
}