From 8e6bd24d0d9c274f9b9c786fa70bc4d722a4be57 Mon Sep 17 00:00:00 2001 From: Harryxzy Date: Wed, 19 Jul 2023 16:14:25 +0800 Subject: [PATCH] =?UTF-8?q?=E8=87=AA=E5=AE=9A=E4=B9=89=E5=B7=A5=E8=B5=84?= =?UTF-8?q?=E9=A1=B9=E7=9B=AE=E5=B1=95=E7=A4=BA=E5=90=8D?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../salaryBill/bo/SalaryBillItemNameBO.java | 31 +++ .../salaryBill/dto/SalaryBillItemNameDTO.java | 30 +++ .../dto/SalaryTemplateReplenishFormDTO.java | 3 + .../dto/SalaryTemplateShowFormDTO.java | 3 + .../param/SalaryBillItemNameSaveParam.java | 46 +++++ .../salaryBill/po/SalaryBillItemNamePO.java | 31 +++ .../salarybill/SalaryBillItemNameMapper.java | 21 ++ .../salarybill/SalaryBillItemNameMapper.xml | 190 ++++++++++++++++++ .../service/SalaryBillItemNameService.java | 26 +++ .../impl/SalaryBillItemNameServiceImpl.java | 113 ++++++++++- .../salary/web/SalaryBillController.java | 13 ++ .../salary/wrapper/SalaryTemplateWrapper.java | 49 ++++- 12 files changed, 550 insertions(+), 6 deletions(-) create mode 100644 src/com/engine/salary/entity/salaryBill/bo/SalaryBillItemNameBO.java create mode 100644 src/com/engine/salary/entity/salaryBill/dto/SalaryBillItemNameDTO.java create mode 100644 src/com/engine/salary/entity/salaryBill/param/SalaryBillItemNameSaveParam.java diff --git a/src/com/engine/salary/entity/salaryBill/bo/SalaryBillItemNameBO.java b/src/com/engine/salary/entity/salaryBill/bo/SalaryBillItemNameBO.java new file mode 100644 index 000000000..0465efd66 --- /dev/null +++ b/src/com/engine/salary/entity/salaryBill/bo/SalaryBillItemNameBO.java @@ -0,0 +1,31 @@ +package com.engine.salary.entity.salaryBill.bo; + +import com.engine.salary.entity.salaryBill.dto.SalaryBillItemNameDTO; +import com.engine.salary.entity.salaryBill.po.SalaryBillItemNamePO; +import org.apache.commons.collections4.CollectionUtils; + +import java.util.Collections; +import java.util.List; +import java.util.Map; +import java.util.stream.Collectors; + +/** + * @author Harryxzy + * @ClassName SalaryBillItemNameBO + * @date 2023/07/19 9:19 + * @description 工资单薪资项目展示名称 + */ +public class SalaryBillItemNameBO { + + public static List convert2ListDTO(List SalaryBillItemNamePOList, Map itemIdNameMap){ + if (CollectionUtils.isEmpty(SalaryBillItemNamePOList)) { + return Collections.emptyList(); + } + return SalaryBillItemNamePOList.stream() + .map(po -> SalaryBillItemNameDTO.builder() + .salaryItemId(po.getSalaryItemId()) + .salaryItemShowName(po.getSalaryItemShowName()) + .build()) + .collect(Collectors.toList()); + } +} diff --git a/src/com/engine/salary/entity/salaryBill/dto/SalaryBillItemNameDTO.java b/src/com/engine/salary/entity/salaryBill/dto/SalaryBillItemNameDTO.java new file mode 100644 index 000000000..4deae25f5 --- /dev/null +++ b/src/com/engine/salary/entity/salaryBill/dto/SalaryBillItemNameDTO.java @@ -0,0 +1,30 @@ +package com.engine.salary.entity.salaryBill.dto; + +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.NoArgsConstructor; + +/** + * @author Harryxzy + * @ClassName SalaryBillItemNameDTO + * @date 2023/07/19 9:21 + * @description 工资单薪资项目展示名称 + */ +@Data +@Builder +@NoArgsConstructor +@AllArgsConstructor +public class SalaryBillItemNameDTO { + + /** + * 薪资项目id + */ + private Long salaryItemId; + + + /** + * 工资单展示名称 + */ + private String salaryItemShowName; +} diff --git a/src/com/engine/salary/entity/salaryBill/dto/SalaryTemplateReplenishFormDTO.java b/src/com/engine/salary/entity/salaryBill/dto/SalaryTemplateReplenishFormDTO.java index 5a19f39e9..50bc76ba8 100644 --- a/src/com/engine/salary/entity/salaryBill/dto/SalaryTemplateReplenishFormDTO.java +++ b/src/com/engine/salary/entity/salaryBill/dto/SalaryTemplateReplenishFormDTO.java @@ -26,4 +26,7 @@ public class SalaryTemplateReplenishFormDTO { // 薪资项目设置") private List replenishSalaryTemplateSalaryItemSet; + // 工资单项目名称设置 + private List salaryBillItemNameSet; + } diff --git a/src/com/engine/salary/entity/salaryBill/dto/SalaryTemplateShowFormDTO.java b/src/com/engine/salary/entity/salaryBill/dto/SalaryTemplateShowFormDTO.java index 364cb8a63..8f3452076 100644 --- a/src/com/engine/salary/entity/salaryBill/dto/SalaryTemplateShowFormDTO.java +++ b/src/com/engine/salary/entity/salaryBill/dto/SalaryTemplateShowFormDTO.java @@ -29,4 +29,7 @@ public class SalaryTemplateShowFormDTO { // 薪资项目设置") private List salaryTemplateSalaryItemSet; + + // 工资单项目名称设置 + private Map salaryBillItemNameSet; } diff --git a/src/com/engine/salary/entity/salaryBill/param/SalaryBillItemNameSaveParam.java b/src/com/engine/salary/entity/salaryBill/param/SalaryBillItemNameSaveParam.java new file mode 100644 index 000000000..9674df028 --- /dev/null +++ b/src/com/engine/salary/entity/salaryBill/param/SalaryBillItemNameSaveParam.java @@ -0,0 +1,46 @@ +package com.engine.salary.entity.salaryBill.param; + +import lombok.*; + +import java.util.List; + +/** + * @author Harryxzy + * @ClassName SalaryBillItemNameSaveParam + * @date 2023/07/19 10:20 + * @description 设置工资单项目展示名参数 + */ +@Data +@Builder +@NoArgsConstructor +@AllArgsConstructor +public class SalaryBillItemNameSaveParam { + /** + * 工资单模板id + */ + private Long salaryTemplateId; + + /** + * 工资单类型。0:正常工资单、1:补发工资单 + */ + private Integer salaryBillType; + + private List itemShowNameSetting; + + @Data + @Builder + @NoArgsConstructor + @AllArgsConstructor + public static class itemShowNameSetting { + /** + * 薪资项目id + */ + private Long salaryItemId; + + /** + * 工资单展示名称 + */ + private String salaryItemShowName; + } + +} diff --git a/src/com/engine/salary/entity/salaryBill/po/SalaryBillItemNamePO.java b/src/com/engine/salary/entity/salaryBill/po/SalaryBillItemNamePO.java index e5170d6d0..5dcf872d6 100644 --- a/src/com/engine/salary/entity/salaryBill/po/SalaryBillItemNamePO.java +++ b/src/com/engine/salary/entity/salaryBill/po/SalaryBillItemNamePO.java @@ -6,6 +6,7 @@ import lombok.Data; import lombok.NoArgsConstructor; import java.util.Collection; +import java.util.Date; /** * @author Harryxzy @@ -35,6 +36,36 @@ public class SalaryBillItemNamePO { */ private Long salaryTemplateId; + /** + * 工资单类型。0:正常工资单、1:补发工资单 + */ + private Integer salaryBillType; + + /** + * 创建时间 + */ + private Date createTime; + + /** + * 更新时间 + */ + private Date updateTime; + + /** + * 创建人 + */ + private Long creator; + + /** + * 是否已删除。0:未删除、1:已删除 + */ + private Integer deleteType; + + /** + * 租户ID + */ + private String tenantKey; + //主键id集合 private Collection ids; } diff --git a/src/com/engine/salary/mapper/salarybill/SalaryBillItemNameMapper.java b/src/com/engine/salary/mapper/salarybill/SalaryBillItemNameMapper.java index f589a0ae6..a3cb102a7 100644 --- a/src/com/engine/salary/mapper/salarybill/SalaryBillItemNameMapper.java +++ b/src/com/engine/salary/mapper/salarybill/SalaryBillItemNameMapper.java @@ -1,6 +1,7 @@ package com.engine.salary.mapper.salarybill; import com.engine.salary.entity.salaryBill.po.SalaryBillItemNamePO; +import org.apache.ibatis.annotations.Param; import java.util.List; @@ -65,4 +66,24 @@ public interface SalaryBillItemNameMapper { * @return 返回影响行数 */ int delete(Long id); + + /** + * 批量更新 + * @param salaryBillItemNamePO + */ + void batchUpdate(@Param("collection") List salaryBillItemNamePO); + + /** + * 批量插入 + * @param salaryBillItemNamePO + */ + void batchInsert(@Param("collection") List salaryBillItemNamePO); + + /** + * 根据薪资项目、模板id、模板类型批量删除 + * @param salaryItemIds + * @param salaryTemplateId + * @param salaryBillType + */ + void deleteByItemIdsAndTemplateId(@Param("salaryItemIds") List salaryItemIds, @Param("salaryTemplateId") Long salaryTemplateId, @Param("salaryBillType") Integer salaryBillType); } diff --git a/src/com/engine/salary/mapper/salarybill/SalaryBillItemNameMapper.xml b/src/com/engine/salary/mapper/salarybill/SalaryBillItemNameMapper.xml index 3e6f61f46..03e0b6c6e 100644 --- a/src/com/engine/salary/mapper/salarybill/SalaryBillItemNameMapper.xml +++ b/src/com/engine/salary/mapper/salarybill/SalaryBillItemNameMapper.xml @@ -6,6 +6,11 @@ + + + + + @@ -14,6 +19,12 @@ , t.salary_item_id , t.salary_item_show_name , t.salary_template_id + , t.salary_bill_type + , t.delete_type + , t.creator + , t.create_time + , t.update_time + , t.tenant_key @@ -50,6 +61,9 @@ AND salary_template_id = #{salaryTemplateId} + + AND salary_bill_type = #{salaryBillType} + AND id IN @@ -77,6 +91,24 @@ salary_template_id, + + salary_bill_type, + + + creator, + + + create_time, + + + update_time, + + + delete_type, + + + tenant_key, + @@ -91,9 +123,114 @@ #{salaryTemplateId}, + + #{salaryBillType}, + + + #{creator}, + + + #{createTime}, + + + #{updateTime}, + + + #{deleteType}, + + + #{tenantKey}, + + + INSERT INTO hrsa_salary_bill_item_name ( + id, + salary_template_id, + salary_item_id, + salary_item_show_name, + salary_bill_type, + creator, + create_time, + update_time, + delete_type, + tenant_key + ) + VALUES + + ( + #{item.id}, + #{item.salaryTemplateId}, + #{item.salaryItemId}, + #{item.salaryItemShowName}, + #{item.salaryBillType}, + #{item.creator}, + #{item.createTime}, + #{item.updateTime}, + #{item.deleteType}, + #{item.tenantKey} + ) + + + + INSERT INTO hrsa_salary_send_info ( + id, + salary_template_id, + salary_item_id, + salary_item_show_name, + salary_bill_type, + creator, + create_time, + update_time, + delete_type, + tenant_key + ) + + select + #{item.id,jdbcType=DOUBLE}, + #{item.salaryTemplateId,jdbcType=DOUBLE}, + #{item.salaryItemId,jdbcType=DOUBLE}, + #{item.salaryItemShowName,jdbcType=VARCHAR}, + #{item.salaryBillType,jdbcType=INTEGER}, + #{item.creator,jdbcType=DOUBLE}, + #{item.createTime,jdbcType=DATE}, + #{item.updateTime,jdbcType=DATE}, + #{item.deleteType,jdbcType=INTEGER}, + #{item.tenantKey,jdbcType=VARCHAR} + from dual + + + + + INSERT INTO hrsa_salary_send_info ( + id, + salary_template_id, + salary_item_id, + salary_item_show_name, + salary_bill_type, + creator, + create_time, + update_time, + delete_type, + tenant_key + ) + VALUES + ( + #{item.id}, + #{item.salaryTemplateId}, + #{item.salaryItemId}, + #{item.salaryItemShowName}, + #{item.salaryBillType}, + #{item.creator}, + #{item.createTime}, + #{item.updateTime}, + #{item.deleteType}, + #{item.tenantKey} + ) + + + UPDATE hrsa_salary_bill_item_name @@ -101,6 +238,11 @@ salary_item_id=#{salaryItemId}, salary_item_show_name=#{salaryItemShowName}, salary_template_id=#{salaryTemplateId}, + salary_bill_type=#{salaryBillType}, + creator=#{creator}, + create_time={createTime}, + update_time=#{updateTime}, + tenant_key=#{tenantKey} WHERE id = #{id} AND delete_type = 0 @@ -119,10 +261,46 @@ salary_template_id=#{salaryTemplateId}, + + salary_bill_type=#{salaryBillType}, + + + creator=#{creator}, + + + create_time=#{createTime}, + + + update_time=#{updateTime}, + + + tenant_key=#{tenantKey}, + WHERE id = #{id} AND delete_type = 0 + + UPDATE hrsa_salary_bill_item_name + + + + WHEN id = #{item.id} THEN #{item.salaryItemShowName} + + + + + WHEN id = #{item.id} THEN #{item.updateTime} + + + + WHERE delete_type = 0 + AND id IN + + #{item.id} + + + @@ -131,5 +309,17 @@ WHERE id = #{id} AND delete_type = 0 + + UPDATE hrsa_salary_bill_item_name + SET delete_type=1 + WHERE delete_type = 0 + AND salary_template_id = #{salaryTemplateId} + AND salaryBillType = #{salaryBillType} + AND salary_item_id IN + + #{itemId} + + + \ No newline at end of file diff --git a/src/com/engine/salary/service/SalaryBillItemNameService.java b/src/com/engine/salary/service/SalaryBillItemNameService.java index 258740091..febe56abc 100644 --- a/src/com/engine/salary/service/SalaryBillItemNameService.java +++ b/src/com/engine/salary/service/SalaryBillItemNameService.java @@ -1,5 +1,6 @@ package com.engine.salary.service; +import com.engine.salary.entity.salaryBill.param.SalaryBillItemNameSaveParam; import com.engine.salary.entity.salaryBill.po.SalaryBillItemNamePO; import java.util.List; @@ -59,4 +60,29 @@ public interface SalaryBillItemNameService { */ int delete(Long id); + /** + * 根据工资单模板id和工资单类型获取 设置的项目名称信息 + * @param build + * @return + */ + List ListByTemplateAndType(SalaryBillItemNamePO build); + + /** + * 设置工资单薪资项目显示名 + * @param saveList + */ + void saveItemShowName(List saveList); + + /** + * 批量更新 + * @param needUpdateList + */ + void batchUpdate(List needUpdateList); + + /** + * 批量插入 + * @param needInsertList + */ + void batchInsert(List needInsertList); + } diff --git a/src/com/engine/salary/service/impl/SalaryBillItemNameServiceImpl.java b/src/com/engine/salary/service/impl/SalaryBillItemNameServiceImpl.java index a056df963..2ccee1251 100644 --- a/src/com/engine/salary/service/impl/SalaryBillItemNameServiceImpl.java +++ b/src/com/engine/salary/service/impl/SalaryBillItemNameServiceImpl.java @@ -1,12 +1,27 @@ package com.engine.salary.service.impl; import com.api.formmode.mybatis.util.SqlProxyHandle; +import com.engine.common.util.ServiceUtil; import com.engine.core.impl.Service; +import com.engine.salary.constant.SalaryDefaultTenantConstant; +import com.engine.salary.entity.salaryBill.param.SalaryBillItemNameSaveParam; import com.engine.salary.entity.salaryBill.po.SalaryBillItemNamePO; +import com.engine.salary.entity.salaryBill.po.SalaryTemplatePO; +import com.engine.salary.exception.SalaryRunTimeException; import com.engine.salary.mapper.salarybill.SalaryBillItemNameMapper; import com.engine.salary.service.SalaryBillItemNameService; +import com.engine.salary.service.SalaryItemService; +import com.engine.salary.service.SalaryTemplateService; +import com.engine.salary.util.SalaryEntityUtil; +import com.google.common.collect.Lists; +import dm.jdbc.util.IdGenerator; +import org.apache.commons.collections4.CollectionUtils; +import org.apache.commons.lang.math.NumberUtils; +import org.apache.commons.lang3.StringUtils; +import weaver.hrm.User; -import java.util.List; +import java.util.*; +import java.util.stream.Collectors; /** * @author Harryxzy @@ -19,6 +34,14 @@ public class SalaryBillItemNameServiceImpl extends Service implements SalaryBill private SalaryBillItemNameMapper getSalaryBillItemNameMapper() { return SqlProxyHandle.getProxy(SalaryBillItemNameMapper.class); } + + private SalaryItemService getSalaryItemService(User user) { + return ServiceUtil.getService(SalaryItemServiceImpl.class, user); + } + + private SalaryTemplateService getSalaryTemplateService(User user) { + return ServiceUtil.getService(SalaryTemplateServiceImpl.class, user); + } @Override public List listAll() { return getSalaryBillItemNameMapper().listAll(); @@ -48,4 +71,92 @@ public class SalaryBillItemNameServiceImpl extends Service implements SalaryBill public int delete(Long id) { return getSalaryBillItemNameMapper().delete(id); } + + @Override + public List ListByTemplateAndType(SalaryBillItemNamePO param) { + return getSalaryBillItemNameMapper().listSome(param); + } + + @Override + public void saveItemShowName(List saveList) { + if(CollectionUtils.isEmpty(saveList)) + return; + List templateIdList = saveList.stream().map(SalaryBillItemNameSaveParam::getSalaryTemplateId).distinct().collect(Collectors.toList()); + if(CollectionUtils.isEmpty(templateIdList) || templateIdList.size()>1) + throw new SalaryRunTimeException("工资单模板id为空,或存在多个工资单模板id"); + Long salaryTemplateId = templateIdList.get(0); + SalaryTemplatePO salaryTemplatePO = getSalaryTemplateService(user).getById(salaryTemplateId); + if(Objects.isNull(salaryTemplatePO)) + throw new SalaryRunTimeException("工资单模板不存在或已被删除"); + List needInsertList = new ArrayList<>(); + List needUpdateList = new ArrayList<>(); + Date now = new Date(); + // 根据模板类型分组 + Map> saveMap = SalaryEntityUtil.convert2Map(saveList, SalaryBillItemNameSaveParam::getSalaryBillType, SalaryBillItemNameSaveParam::getItemShowNameSetting); + + for(Map.Entry> entry : saveMap.entrySet()){ + // 获取已经设置的展示名 + List billItemNameList = ListByTemplateAndType(SalaryBillItemNamePO.builder().salaryTemplateId(salaryTemplateId).salaryBillType(entry.getKey()).build()); + Map billItemNameMap = SalaryEntityUtil.convert2Map(billItemNameList, SalaryBillItemNamePO::getSalaryItemId); + List needDeleteItemIdList = new ArrayList<>(); + + entry.getValue().stream().forEach(setting -> { + if(StringUtils.isBlank(setting.getSalaryItemShowName())){ + // 显示名为空则删除设置 + needDeleteItemIdList.add(setting.getSalaryItemId()); + }else{ + if(billItemNameMap.containsKey(setting.getSalaryItemId())){ + // 更新 + SalaryBillItemNamePO po = billItemNameMap.get(setting.getSalaryItemId()); + po.setSalaryItemShowName(setting.getSalaryItemShowName()); + po.setUpdateTime(now); + needUpdateList.add(po); + }else{ + // 新增 + needInsertList.add(SalaryBillItemNamePO.builder() + .id(IdGenerator.generate()) + .salaryItemId(setting.getSalaryItemId()) + .salaryItemShowName(setting.getSalaryItemShowName()) + .salaryTemplateId(salaryTemplateId) + .salaryBillType(entry.getKey()) + .createTime(now) + .updateTime(now) + .creator(Long.valueOf(user.getUID())) + .deleteType(NumberUtils.INTEGER_ZERO) + .tenantKey(SalaryDefaultTenantConstant.DEFAULT_TENANT_KEY) + .build()); + } + } + }); + // 删除 + batchDeleteByItemIdsAndTemplateId(needDeleteItemIdList, salaryTemplateId, entry.getKey()); + } + // 入库 + batchUpdate(needUpdateList); + batchInsert(needInsertList); + } + + @Override + public void batchUpdate(List needUpdateList) { + if(CollectionUtils.isEmpty(needUpdateList)) + return; + List> partition = Lists.partition(needUpdateList, 500); + partition.forEach(getSalaryBillItemNameMapper()::batchUpdate); + } + + @Override + public void batchInsert(List needInsertList) { + if(CollectionUtils.isEmpty(needInsertList)) + return; + List> partition = Lists.partition(needInsertList, 500); + partition.forEach(getSalaryBillItemNameMapper()::batchInsert); + } + + public void batchDeleteByItemIdsAndTemplateId(List salaryItemIds, Long salaryTemplateId, Integer salaryBillType) { + if(CollectionUtils.isEmpty(salaryItemIds) || Objects.isNull(salaryTemplateId) || Objects.isNull(salaryBillType)) + return; + getSalaryBillItemNameMapper().deleteByItemIdsAndTemplateId(salaryItemIds, salaryTemplateId, salaryBillType); + } + + } diff --git a/src/com/engine/salary/web/SalaryBillController.java b/src/com/engine/salary/web/SalaryBillController.java index ea5cdeece..f8a7ce21d 100644 --- a/src/com/engine/salary/web/SalaryBillController.java +++ b/src/com/engine/salary/web/SalaryBillController.java @@ -98,6 +98,19 @@ public class SalaryBillController { return new ResponseResult(user).run(getSalaryTemplateWrapper(user)::getShowForm, id); } + /** + * 设置工资单模板薪资项显示名称 + * + * @return + */ + @POST + @Path("/template/saveItemShowName") + @Produces(MediaType.APPLICATION_JSON) + public String saveItemShowName(@Context HttpServletRequest request, @Context HttpServletResponse response, @RequestBody List param) { + User user = HrmUserVarify.getUser(request, response); + return new ResponseResult, String>(user).run(getSalaryTemplateWrapper(user)::saveItemShowName, param); + } + /** * 获取薪资项目设置 * diff --git a/src/com/engine/salary/wrapper/SalaryTemplateWrapper.java b/src/com/engine/salary/wrapper/SalaryTemplateWrapper.java index d5d7a68cf..16de37b83 100644 --- a/src/com/engine/salary/wrapper/SalaryTemplateWrapper.java +++ b/src/com/engine/salary/wrapper/SalaryTemplateWrapper.java @@ -2,8 +2,10 @@ package com.engine.salary.wrapper; import com.engine.common.util.ServiceUtil; import com.engine.core.impl.Service; +import com.engine.salary.entity.salaryBill.bo.SalaryBillItemNameBO; import com.engine.salary.entity.salaryBill.dto.*; import com.engine.salary.entity.salaryBill.param.*; +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.po.SalarySobBackItemPO; @@ -65,6 +67,10 @@ public class SalaryTemplateWrapper extends Service { return ServiceUtil.getService(SalaryBillBaseSetServiceImpl.class, user); } + private SalaryBillItemNameService getSalaryBillItemNameService(User user) { + return ServiceUtil.getService(SalaryBillItemNameServiceImpl.class, user); + } + /** * 工资单模板列表 * @@ -247,12 +253,25 @@ public class SalaryTemplateWrapper extends Service { // List groupPOS = getSalarySobItemGroupService(user).listBySalarySobId(po.getSalarySobId()); // Map groupIdNameMap = SalaryEntityUtil.convert2Map(groupPOS, SalarySobItemGroupPO::getId, SalarySobItemGroupPO::getName); + // 获取工资单薪资项目展示名信息 + List billItemNameList = getSalaryBillItemNameService(user).ListByTemplateAndType(SalaryBillItemNamePO.builder().salaryTemplateId(id).salaryBillType(0).build()); + Map itemShowNameMap = SalaryEntityUtil.convert2Map(billItemNameList, SalaryBillItemNamePO::getSalaryItemId, SalaryBillItemNamePO::getSalaryItemShowName); + // 获取薪资项目信息 + List salaryBillItemNameDTOS = SalaryBillItemNameBO.convert2ListDTO(billItemNameList, itemIdNameMap); + Map salaryBillItemNameDTOMap = SalaryEntityUtil.convert2Map(salaryBillItemNameDTOS, SalaryBillItemNameDTO::getSalaryItemId); + if (CollectionUtils.isNotEmpty(salaryTemplateShowSetData)) { salaryTemplateShowSetData.stream() //排除人员消息 .filter(data -> !StringUtils.equals(data.getGroupId(), "111111111111111111")) .forEach(data -> { - data.getItems().forEach(item -> item.setName(itemIdNameMap.getOrDefault(Long.valueOf(item.getSalaryItemId()), item.getName()))); + data.getItems().forEach(item -> { + Long salaryItemId = Long.valueOf(item.getSalaryItemId()); + item.setName(itemIdNameMap.getOrDefault(salaryItemId, item.getName())); + if(itemShowNameMap.containsKey(salaryItemId)){ + item.setName(itemShowNameMap.get(salaryItemId) + "(" + item.getName() +")"); + } + }); }); } @@ -262,6 +281,7 @@ public class SalaryTemplateWrapper extends Service { .vars(Arrays.stream(SalaryTemplateVarEnum.values()).map(SalaryTemplateVarEnum::getValue).collect(Collectors.toList())) .salaryTemplateShowSet(salaryTemplateShowSet) .salaryTemplateSalaryItemSet(salaryTemplateShowSetData) + .salaryBillItemNameSet(salaryBillItemNameDTOMap) .build(); } @@ -388,6 +408,8 @@ public class SalaryTemplateWrapper extends Service { // 补发薪资项目设置 List replenishSalaryItemSetting; + // 补发薪资项目显示名称 + List salaryBillItemNameDTOS = new ArrayList<>(); if (id != null) { SalaryTemplatePO po = getSalaryTemplateService(user).getById(id); if (po == null) { @@ -399,13 +421,25 @@ public class SalaryTemplateWrapper extends Service { // 同步补发薪资项目名称 List itemPOS = getSalaryItemService(user).listAll(); Map itemIdNameMap = SalaryEntityUtil.convert2Map(itemPOS, SalaryItemPO::getId, SalaryItemPO::getName); + // 获取工资单薪资项目展示名信息 + List billItemNameList = getSalaryBillItemNameService(user).ListByTemplateAndType(SalaryBillItemNamePO.builder().salaryTemplateId(id).salaryBillType(1).build()); + Map itemShowNameMap = SalaryEntityUtil.convert2Map(billItemNameList, SalaryBillItemNamePO::getSalaryItemId, SalaryBillItemNamePO::getSalaryItemShowName); + // 获取薪资项目信息 + salaryBillItemNameDTOS = SalaryBillItemNameBO.convert2ListDTO(billItemNameList, itemIdNameMap); + if (CollectionUtils.isNotEmpty(replenishSalaryItemSetting)) { replenishSalaryItemSetting.stream() //排除人员消息 - .filter(data -> !StringUtils.equals(data.getGroupId(), "111111111111111111")) - .forEach(data -> { - data.getItems().forEach(item -> item.setName(itemIdNameMap.getOrDefault(Long.valueOf(item.getSalaryItemId()), item.getName()))); - }); + .filter(data -> !StringUtils.equals(data.getGroupId(), "111111111111111111")) + .forEach(data -> { + data.getItems().forEach(item -> { + Long salaryItemId = Long.valueOf(item.getSalaryItemId()); + item.setName(itemIdNameMap.getOrDefault(salaryItemId, item.getName())); + if(itemShowNameMap.containsKey(salaryItemId)){ + item.setName(itemShowNameMap.get(salaryItemId)); + } + }); + }); } } else { replenishSalaryItemSetting = getReplenishSalaryItemSet(replenishFormQueryParam.getSalarySobId()); @@ -417,6 +451,7 @@ public class SalaryTemplateWrapper extends Service { return SalaryTemplateReplenishFormDTO.builder() .id(id) .replenishSalaryTemplateSalaryItemSet(replenishSalaryItemSetting) + .salaryBillItemNameSet(salaryBillItemNameDTOS) .build(); } @@ -459,4 +494,8 @@ public class SalaryTemplateWrapper extends Service { ) .collect(Collectors.toList()); } + + public void saveItemShowName(List saveList) { + getSalaryBillItemNameService(user).saveItemShowName(saveList); + } }