薪酬系统-工资单模板,复制功能改造
This commit is contained in:
parent
e8aee9ab64
commit
94d72cd93c
|
|
@ -23,6 +23,8 @@ public class SalaryTemplateCopyParam {
|
|||
// 模板名称")
|
||||
private String name;
|
||||
|
||||
private Long salarySobId;
|
||||
|
||||
public static void checkParam(SalaryTemplateCopyParam copyParam) {
|
||||
if (copyParam.getId() == null) {
|
||||
throw new SalaryRunTimeException("id必选");
|
||||
|
|
|
|||
|
|
@ -2,6 +2,7 @@ package com.engine.salary.service.impl;
|
|||
|
||||
import cn.hutool.json.JSONUtil;
|
||||
import com.alibaba.fastjson.JSON;
|
||||
import com.alibaba.fastjson.JSONArray;
|
||||
import com.engine.common.util.ServiceUtil;
|
||||
import com.engine.core.impl.Service;
|
||||
import com.engine.salary.biz.SalarySobBiz;
|
||||
|
|
@ -16,15 +17,17 @@ import com.engine.salary.entity.salaryBill.param.SalaryTemplateQueryParam;
|
|||
import com.engine.salary.entity.salaryBill.param.SalaryTemplateSaveParam;
|
||||
import com.engine.salary.entity.salaryBill.po.SalaryBillItemNamePO;
|
||||
import com.engine.salary.entity.salaryBill.po.SalaryTemplatePO;
|
||||
import com.engine.salary.entity.salaryitem.po.SalaryItemPO;
|
||||
import com.engine.salary.entity.salarysob.dto.SalarySobItemAggregateDTO;
|
||||
import com.engine.salary.entity.salarysob.dto.SalarySobItemDTO;
|
||||
import com.engine.salary.entity.salarysob.dto.SalarySobItemGroupDTO;
|
||||
import com.engine.salary.entity.salarysob.po.SalarySobItemHidePO;
|
||||
import com.engine.salary.entity.salarysob.po.SalarySobPO;
|
||||
import com.engine.salary.entity.salarysob.po.*;
|
||||
import com.engine.salary.enums.salarybill.SalaryTemplateWhetherEnum;
|
||||
import com.engine.salary.exception.SalaryRunTimeException;
|
||||
import com.engine.salary.mapper.salarysob.SalarySobEmpFieldMapper;
|
||||
import com.engine.salary.service.*;
|
||||
import com.engine.salary.util.SalaryEntityUtil;
|
||||
import com.engine.salary.util.db.MapperProxyFactory;
|
||||
import com.engine.salary.util.page.PageInfo;
|
||||
import com.engine.salary.util.page.SalaryPageUtil;
|
||||
import com.mzlion.core.utils.BeanUtils;
|
||||
|
|
@ -68,6 +71,14 @@ public class SalaryTemplateServiceImpl extends Service implements SalaryTemplate
|
|||
return ServiceUtil.getService(SalaryBillItemNameServiceImpl.class, user);
|
||||
}
|
||||
|
||||
private SalarySobEmpFieldService getSalarySobEmpFieldService(User user) {
|
||||
return (SalarySobEmpFieldService) ServiceUtil.getService(SalarySobEmpFieldServiceImpl.class, user);
|
||||
}
|
||||
|
||||
private SalarySobEmpFieldMapper getSalarySobEmpFieldMapper() {
|
||||
return MapperProxyFactory.getProxy(SalarySobEmpFieldMapper.class);
|
||||
}
|
||||
|
||||
@Override
|
||||
public SalaryTemplatePO getById(Long id) {
|
||||
return mapper.getById(id);
|
||||
|
|
@ -272,6 +283,47 @@ public class SalaryTemplateServiceImpl extends Service implements SalaryTemplate
|
|||
salaryTemplateNew.setId(null);
|
||||
salaryTemplateNew.setName(copyParam.getName());
|
||||
salaryTemplateNew.setUseType(SalaryTemplateWhetherEnum.FALSE.getValue());
|
||||
|
||||
//20240122逻辑变更,拷贝工资单模板时,可变更薪资账套
|
||||
if (copyParam.getSalarySobId() != null && !copyParam.getSalarySobId().equals(salaryTemplate.getSalarySobId())) {
|
||||
// 查询薪资账套的员工信息字段
|
||||
List<SalarySobEmpFieldPO> salarySobEmpFieldPOS = getSalarySobEmpFieldService(user).listBySalarySobId(copyParam.getSalarySobId());
|
||||
List<String> empFieldCodeList = salarySobEmpFieldPOS.stream().map(SalarySobEmpFieldPO::getFieldCode).collect(Collectors.toList());
|
||||
Map<String, Long> empFieldCodeWithIdMap = SalaryEntityUtil.convert2Map(salarySobEmpFieldPOS, SalarySobEmpFieldPO::getFieldCode, SalarySobEmpFieldPO::getId);
|
||||
// 查询薪资账套的薪资项目副本
|
||||
List<SalarySobItemPO> salarySobItemPOS = getSalarySobItemService(user).listBySalarySobIdWithHideItem(copyParam.getSalarySobId());
|
||||
List<Long> salaryItemIdList = salarySobItemPOS.stream().map(SalarySobItemPO::getSalaryItemId).collect(Collectors.toList());
|
||||
//拷贝数据中的薪资项目
|
||||
List<SalaryTemplateSalaryItemSetListDTO> salaryItemSettingList = JSONArray.parseArray(salaryTemplate.getSalaryItemSetting(), SalaryTemplateSalaryItemSetListDTO.class);
|
||||
for (SalaryTemplateSalaryItemSetListDTO salaryItemSetting : salaryItemSettingList) {
|
||||
if ("111111111111111111".equals(salaryItemSetting.getGroupId()) && salaryItemSetting.getItems() != null) {
|
||||
List<SalaryTemplateSalaryItemListDTO> newItems = new ArrayList<>();
|
||||
for (SalaryTemplateSalaryItemListDTO templateItem : salaryItemSetting.getItems()) {
|
||||
SalarySobEmpFieldPO empFieldPO = getSalarySobEmpFieldMapper().getById(Long.valueOf(templateItem.getSalaryItemId()));
|
||||
if (empFieldCodeList.contains(empFieldPO.getFieldCode()) && empFieldCodeWithIdMap.get(empFieldPO.getFieldCode()) != null) {
|
||||
templateItem.setId(empFieldCodeWithIdMap.get(empFieldPO.getFieldCode()).toString());
|
||||
templateItem.setSalaryItemId(empFieldCodeWithIdMap.get(empFieldPO.getFieldCode()).toString());
|
||||
newItems.add(templateItem);
|
||||
}
|
||||
}
|
||||
salaryItemSetting.setItems(newItems);
|
||||
} else {
|
||||
List<SalaryTemplateSalaryItemListDTO> newItems = new ArrayList<>();
|
||||
for (SalaryTemplateSalaryItemListDTO templateItem : salaryItemSetting.getItems()) {
|
||||
SalarySobEmpFieldPO empFieldPO = getSalarySobEmpFieldMapper().getById(Long.valueOf(templateItem.getSalaryItemId()));
|
||||
if (empFieldCodeList.contains(empFieldPO.getFieldCode()) && empFieldCodeWithIdMap.get(empFieldPO.getFieldCode()) != null) {
|
||||
templateItem.setId(empFieldCodeWithIdMap.get(empFieldPO.getFieldCode()).toString());
|
||||
templateItem.setSalaryItemId(empFieldCodeWithIdMap.get(empFieldPO.getFieldCode()).toString());
|
||||
newItems.add(templateItem);
|
||||
}
|
||||
}
|
||||
salaryItemSetting.setItems(newItems);
|
||||
}
|
||||
}
|
||||
List<SalaryTemplateSalaryItemSetListDTO> replenishSalaryItemSettingList = JSONArray.parseArray(salaryTemplate.getReplenishSalaryItemSetting(), SalaryTemplateSalaryItemSetListDTO.class);
|
||||
|
||||
}
|
||||
|
||||
mapper.insert(salaryTemplateNew);
|
||||
|
||||
// 复制工资单自定义名称信息
|
||||
|
|
|
|||
Loading…
Reference in New Issue