diff --git a/resource/sqlupgrade/DM/sql202308080503.sql b/resource/sqlupgrade/DM/sql202308080503.sql new file mode 100644 index 000000000..771c36cba --- /dev/null +++ b/resource/sqlupgrade/DM/sql202308080503.sql @@ -0,0 +1,14 @@ +CREATE TABLE hrsa_salary_bill_item_name( + id NUMBER(38,0) PRIMARY KEY NOT NULL, + salary_template_id NUMBER(38,0) NOT NULL, + salary_item_id NUMBER(38,0) NOT NULL, + salary_item_show_name VARCHAR2(255) NOT NULL, + salary_bill_type NUMBER NOT NULL, + create_time DATE DEFAULT sysdate, + update_time DATE DEFAULT sysdate, + creator NUMBER(38,0) NOT NULL, + delete_type NUMBER NOT NULL, + tenant_key VARCHAR2(255) +); +/ + diff --git a/resource/sqlupgrade/JC/sql202308080503.sql b/resource/sqlupgrade/JC/sql202308080503.sql new file mode 100644 index 000000000..771c36cba --- /dev/null +++ b/resource/sqlupgrade/JC/sql202308080503.sql @@ -0,0 +1,14 @@ +CREATE TABLE hrsa_salary_bill_item_name( + id NUMBER(38,0) PRIMARY KEY NOT NULL, + salary_template_id NUMBER(38,0) NOT NULL, + salary_item_id NUMBER(38,0) NOT NULL, + salary_item_show_name VARCHAR2(255) NOT NULL, + salary_bill_type NUMBER NOT NULL, + create_time DATE DEFAULT sysdate, + update_time DATE DEFAULT sysdate, + creator NUMBER(38,0) NOT NULL, + delete_type NUMBER NOT NULL, + tenant_key VARCHAR2(255) +); +/ + diff --git a/resource/sqlupgrade/Mysql/sql202308080503.sql b/resource/sqlupgrade/Mysql/sql202308080503.sql new file mode 100644 index 000000000..8ea1db64c --- /dev/null +++ b/resource/sqlupgrade/Mysql/sql202308080503.sql @@ -0,0 +1,12 @@ +CREATE TABLE hrsa_salary_bill_item_name ( + id bigint PRIMARY KEY, + salary_template_id bigint NOT NULL, + salary_item_id bigint NOT NULL, + salary_item_show_name varchar(255)NOT NULL, + salary_bill_type int NOT NULL, + creator bigint NOT NULL, + create_time datetime NOT NULL , + update_time datetime NOT NULL, + delete_type int NOT NULL, + tenant_key varchar(10) NOT NULL +) ; diff --git a/resource/sqlupgrade/Oracle/sql202308080503.sql b/resource/sqlupgrade/Oracle/sql202308080503.sql new file mode 100644 index 000000000..6ac9927fd --- /dev/null +++ b/resource/sqlupgrade/Oracle/sql202308080503.sql @@ -0,0 +1,13 @@ +CREATE TABLE hrsa_salary_bill_item_name( + id NUMBER(38,0) PRIMARY KEY NOT NULL, + salary_template_id NUMBER(38,0) NOT NULL, + salary_item_id NUMBER(38,0) NOT NULL, + salary_item_show_name VARCHAR2(255) NOT NULL, + salary_bill_type NUMBER NOT NULL, + create_time DATE DEFAULT sysdate, + update_time DATE DEFAULT sysdate, + creator NUMBER(38,0) NOT NULL, + delete_type NUMBER NOT NULL, + tenant_key VARCHAR2(255) +) +/ \ No newline at end of file diff --git a/resource/sqlupgrade/PG/sql202308080503.sql b/resource/sqlupgrade/PG/sql202308080503.sql new file mode 100644 index 000000000..ded2d46b0 --- /dev/null +++ b/resource/sqlupgrade/PG/sql202308080503.sql @@ -0,0 +1,12 @@ +CREATE TABLE hrsa_salary_bill_item_name ( + id bigint PRIMARY KEY, + salary_template_id bigint NOT NULL, + salary_item_id bigint NOT NULL, + salary_item_show_name varchar(255)NOT NULL, + salary_bill_type int NOT NULL, + creator bigint NOT NULL, + create_time TIMESTAMP NOT NULL , + update_time TIMESTAMP NOT NULL, + delete_type int NOT NULL, + tenant_key varchar(10) NOT NULL +) ; \ No newline at end of file diff --git a/resource/sqlupgrade/SQLServer/sql202308080503.sql b/resource/sqlupgrade/SQLServer/sql202308080503.sql new file mode 100644 index 000000000..063d85a76 --- /dev/null +++ b/resource/sqlupgrade/SQLServer/sql202308080503.sql @@ -0,0 +1,13 @@ +CREATE TABLE hrsa_salary_bill_item_name ( + id bigint PRIMARY KEY, + salary_template_id bigint NOT NULL, + salary_item_id bigint NOT NULL, + salary_item_show_name varchar(255)NOT NULL, + salary_bill_type int NOT NULL, + creator bigint NOT NULL, + create_time datetime NOT NULL , + update_time datetime NOT NULL, + delete_type int NOT NULL, + tenant_key varchar(10) NOT NULL +) +GO \ No newline at end of file diff --git a/src/com/engine/salary/action/InitSalaryAction.java b/src/com/engine/salary/action/InitSalaryAction.java index 25e0669c8..4b2b0472b 100644 --- a/src/com/engine/salary/action/InitSalaryAction.java +++ b/src/com/engine/salary/action/InitSalaryAction.java @@ -77,7 +77,7 @@ public class InitSalaryAction implements Action { List errorNotice = (List) map.get("errorNotice"); if (CollectionUtils.isNotEmpty(errorNotice)) { - log.error("调薪存在异常 requestId:{} ,参数:{}, map:{}", requestInfo.getRequestid(), build, map); + log.error("定薪存在异常 requestId:{} ,参数:{}, map:{}", requestInfo.getRequestid(), build, map); List> excelComments = (List>) map.get("errorNotice"); StringBuilder message = new StringBuilder(""); for (Map comments : excelComments) { @@ -87,7 +87,7 @@ public class InitSalaryAction implements Action { return FAILURE_AND_CONTINUE; } } catch (Exception e) { - log.error("调薪异常", e); + log.error("定薪异常", e); requestInfo.getRequestManager().setMessage(e.getMessage()); return FAILURE_AND_CONTINUE; } 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..ce1deaf67 --- /dev/null +++ b/src/com/engine/salary/entity/salaryBill/bo/SalaryBillItemNameBO.java @@ -0,0 +1,30 @@ +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.stream.Collectors; + +/** + * @author Harryxzy + * @ClassName SalaryBillItemNameBO + * @date 2023/07/19 9:19 + * @description 工资单薪资项目展示名称 + */ +public class SalaryBillItemNameBO { + + public static List convert2ListDTO(List SalaryBillItemNamePOList){ + 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/bo/SalaryTemplateBO.java b/src/com/engine/salary/entity/salaryBill/bo/SalaryTemplateBO.java index a12f0e81f..050807ff0 100644 --- a/src/com/engine/salary/entity/salaryBill/bo/SalaryTemplateBO.java +++ b/src/com/engine/salary/entity/salaryBill/bo/SalaryTemplateBO.java @@ -120,6 +120,8 @@ public class SalaryTemplateBO { .id(String.valueOf(i.getSalaryItemId())) .salaryItemId(String.valueOf(i.getSalaryItemId())) .name(i.getName()) + .salaryItemShowName(i.getName()) + .originName(i.getName()) .sortedIndex(i.getSortedIndex()) .build()); }); 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..0e90569db 100644 --- a/src/com/engine/salary/entity/salaryBill/dto/SalaryTemplateReplenishFormDTO.java +++ b/src/com/engine/salary/entity/salaryBill/dto/SalaryTemplateReplenishFormDTO.java @@ -6,6 +6,7 @@ import lombok.Data; import lombok.NoArgsConstructor; import java.util.List; +import java.util.Map; /** * @author Harryxzy @@ -26,4 +27,7 @@ public class SalaryTemplateReplenishFormDTO { // 薪资项目设置") private List replenishSalaryTemplateSalaryItemSet; + // 工资单项目名称设置 + private Map salaryBillItemNameSet; + } diff --git a/src/com/engine/salary/entity/salaryBill/dto/SalaryTemplateSalaryItemListDTO.java b/src/com/engine/salary/entity/salaryBill/dto/SalaryTemplateSalaryItemListDTO.java index bedf72566..858db75a1 100644 --- a/src/com/engine/salary/entity/salaryBill/dto/SalaryTemplateSalaryItemListDTO.java +++ b/src/com/engine/salary/entity/salaryBill/dto/SalaryTemplateSalaryItemListDTO.java @@ -26,9 +26,15 @@ public class SalaryTemplateSalaryItemListDTO { // 薪资项目值") private String salaryItemValue; -// 薪资项目名称") + // 模板展示名称 salaryItemShowName+(originName) private String name; + // 薪资项目修改后展示名称 + private String salaryItemShowName; + + // 薪资项目名称原始值 + private String originName; + // 顺序") private Integer sortedIndex; } diff --git a/src/com/engine/salary/entity/salaryBill/dto/SalaryTemplateShowFormDTO.java b/src/com/engine/salary/entity/salaryBill/dto/SalaryTemplateShowFormDTO.java index 364cb8a63..43e52905b 100644 --- a/src/com/engine/salary/entity/salaryBill/dto/SalaryTemplateShowFormDTO.java +++ b/src/com/engine/salary/entity/salaryBill/dto/SalaryTemplateShowFormDTO.java @@ -29,4 +29,10 @@ public class SalaryTemplateShowFormDTO { // 薪资项目设置") private List salaryTemplateSalaryItemSet; + + // 补发工资薪资项目设置") + private List replenishSalaryTemplateSalaryItemSet; + + // 工资单项目名称设置 + 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/param/SalaryBillSalaryGroupQueryParam.java b/src/com/engine/salary/entity/salaryBill/param/SalaryBillSalaryGroupQueryParam.java index 8bf974208..36d8ab498 100644 --- a/src/com/engine/salary/entity/salaryBill/param/SalaryBillSalaryGroupQueryParam.java +++ b/src/com/engine/salary/entity/salaryBill/param/SalaryBillSalaryGroupQueryParam.java @@ -23,4 +23,9 @@ public class SalaryBillSalaryGroupQueryParam extends BaseQueryParam { * 前端已有的分组id */ private List existSalaryGroupIds; + + /** + * 工资单模板id + */ + private Long salaryTemplateId; } diff --git a/src/com/engine/salary/entity/salaryBill/param/SalaryBillSalaryItemQueryParam.java b/src/com/engine/salary/entity/salaryBill/param/SalaryBillSalaryItemQueryParam.java index ee0be17f7..26c819771 100644 --- a/src/com/engine/salary/entity/salaryBill/param/SalaryBillSalaryItemQueryParam.java +++ b/src/com/engine/salary/entity/salaryBill/param/SalaryBillSalaryItemQueryParam.java @@ -19,4 +19,6 @@ public class SalaryBillSalaryItemQueryParam extends BaseQueryParam { private Boolean isReplenish; private List existSalaryItemIds; + + private Long salaryTemplateId; } diff --git a/src/com/engine/salary/entity/salaryBill/param/SalaryTemplateSaveParam.java b/src/com/engine/salary/entity/salaryBill/param/SalaryTemplateSaveParam.java index ff8af0607..bbf16949e 100644 --- a/src/com/engine/salary/entity/salaryBill/param/SalaryTemplateSaveParam.java +++ b/src/com/engine/salary/entity/salaryBill/param/SalaryTemplateSaveParam.java @@ -104,6 +104,8 @@ public class SalaryTemplateSaveParam { */ private String feedbackUrl; + List salaryBillItemNameSetting; + public static void checkParam(SalaryTemplateSaveParam saveParam) { if (saveParam.getSalarySobId() == null) { throw new SalaryRunTimeException("薪资账套表的主键id必传;"); diff --git a/src/com/engine/salary/entity/salaryBill/po/SalaryBillItemNamePO.java b/src/com/engine/salary/entity/salaryBill/po/SalaryBillItemNamePO.java new file mode 100644 index 000000000..5dcf872d6 --- /dev/null +++ b/src/com/engine/salary/entity/salaryBill/po/SalaryBillItemNamePO.java @@ -0,0 +1,71 @@ +package com.engine.salary.entity.salaryBill.po; + +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.NoArgsConstructor; + +import java.util.Collection; +import java.util.Date; + +/** + * @author Harryxzy + * @ClassName SalaryBillItemName + * @date 2023/07/18 15:55 + * @description 工资单薪资项目展示名称 + */ +@Data +@Builder +@NoArgsConstructor +@AllArgsConstructor +public class SalaryBillItemNamePO { + private Long id; + + /** + * 薪资项目id + */ + private Long salaryItemId; + + /** + * 薪资项目展示名称 + */ + private String salaryItemShowName; + + /** + * 工资单模板id + */ + 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 new file mode 100644 index 000000000..8833c47c6 --- /dev/null +++ b/src/com/engine/salary/mapper/salarybill/SalaryBillItemNameMapper.java @@ -0,0 +1,102 @@ +package com.engine.salary.mapper.salarybill; + +import com.engine.salary.entity.salaryBill.po.SalaryBillItemNamePO; +import org.apache.ibatis.annotations.Param; + +import java.util.Collection; +import java.util.List; + +/** + * @author Harryxzy + * @ClassName SalaryBillItemNameMapper + * @date 2023/07/18 15:58 + * @description 工资单薪资项目展示名 + */ +public interface SalaryBillItemNameMapper { + /** + * 查询所有记录 + * + * @return 返回集合,没有返回空List + */ + List listAll(); + + /** + * 条件查询 + * + * @return 返回集合,没有返回空List + */ + List listSome(SalaryBillItemNamePO salaryBillItemNamePO); + + + /** + * 根据主键查询 + * + * @param id 主键 + * @return 返回记录,没有返回null + */ + SalaryBillItemNamePO getById(Long id); + + /** + * 新增,忽略null字段 + * + * @param salaryBillItemNamePO 新增的记录 + * @return 返回影响行数 + */ + int insertIgnoreNull(SalaryBillItemNamePO salaryBillItemNamePO); + + /** + * 修改,修改所有字段 + * + * @param salaryBillItemNamePO 修改的记录 + * @return 返回影响行数 + */ + int update(SalaryBillItemNamePO salaryBillItemNamePO); + + /** + * 修改,忽略null字段 + * + * @param salaryBillItemNamePO 修改的记录 + * @return 返回影响行数 + */ + int updateIgnoreNull(SalaryBillItemNamePO salaryBillItemNamePO); + + /** + * 删除记录 + * + * @param id 待删除的记录id + * @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); + + /** + * 根据idList删除 + * @param ids + */ + void deleteByIds(@Param("collection") List ids); + + /** + * 根据模板id删除 + * @param ids + */ + void deleteByTemplateIds(@Param("collection") Collection ids); +} diff --git a/src/com/engine/salary/mapper/salarybill/SalaryBillItemNameMapper.xml b/src/com/engine/salary/mapper/salarybill/SalaryBillItemNameMapper.xml new file mode 100644 index 000000000..d00b52f35 --- /dev/null +++ b/src/com/engine/salary/mapper/salarybill/SalaryBillItemNameMapper.xml @@ -0,0 +1,344 @@ + + + + + + + + + + + + + + + + + + t.id + , 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 + + + + + + + + + + + + + + + INSERT INTO hrsa_salary_bill_item_name + + + + id, + + + salary_item_id, + + + salary_item_show_name, + + + salary_template_id, + + + salary_bill_type, + + + creator, + + + create_time, + + + update_time, + + + delete_type, + + + tenant_key, + + + + + #{id}, + + + #{salaryItemId}, + + + #{salaryItemShowName}, + + + #{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_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 + ) + + 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_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} + ) + + + + + + UPDATE hrsa_salary_bill_item_name + + 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 + + + + + + UPDATE hrsa_salary_bill_item_name + + + 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 + + + + 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} + + + + + + + UPDATE hrsa_salary_bill_item_name + SET delete_type=1 + 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 salary_bill_type = #{salaryBillType} + AND salary_item_id IN + + #{itemId} + + + + + UPDATE hrsa_salary_bill_item_name + SET delete_type=1 + WHERE delete_type = 0 + AND id IN + + #{id} + + + + UPDATE hrsa_salary_bill_item_name + SET delete_type=1 + WHERE delete_type = 0 + AND salary_template_id IN + + #{id} + + + + + \ No newline at end of file diff --git a/src/com/engine/salary/service/SalaryBillItemNameService.java b/src/com/engine/salary/service/SalaryBillItemNameService.java new file mode 100644 index 000000000..5399e47f1 --- /dev/null +++ b/src/com/engine/salary/service/SalaryBillItemNameService.java @@ -0,0 +1,100 @@ +package com.engine.salary.service; + +import com.engine.salary.entity.salaryBill.param.SalaryBillItemNameSaveParam; +import com.engine.salary.entity.salaryBill.po.SalaryBillItemNamePO; + +import java.util.Collection; +import java.util.List; + +/** + * @author Harryxzy + * @ClassName SalaryBillItemNameService + * @date 2023/07/18 16:15 + * @description 工资单薪资项目展示名称 + */ +public interface SalaryBillItemNameService { + /** + * 查询所有记录 + * + * @return 返回集合,没有返回空List + */ + List listAll(); + + + /** + * 根据主键查询 + * + * @param id 主键 + * @return 返回记录,没有返回null + */ + SalaryBillItemNamePO getById(Long id); + + /** + * 新增,忽略null字段 + * + * @param salaryBillItemNamePO 新增的记录 + * @return 返回影响行数 + */ + int insertIgnoreNull(SalaryBillItemNamePO salaryBillItemNamePO); + + /** + * 修改,修改所有字段 + * + * @param salaryBillItemNamePO 修改的记录 + * @return 返回影响行数 + */ + int update(SalaryBillItemNamePO salaryBillItemNamePO); + + /** + * 修改,忽略null字段 + * + * @param salaryBillItemNamePO 修改的记录 + * @return 返回影响行数 + */ + int updateIgnoreNull(SalaryBillItemNamePO salaryBillItemNamePO); + + /** + * 删除记录 + * + * @param id 待删除的记录id + * @return 返回影响行数 + */ + 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); + + /** + * 根据id批量删除 + * @param needDeleteIds + */ + void deleteByIds(List needDeleteIds); + + /** + * 根据工资单模板id删除 + * @param ids + */ + void deleteByTemplateIds(Collection ids); +} diff --git a/src/com/engine/salary/service/SalaryTemplateService.java b/src/com/engine/salary/service/SalaryTemplateService.java index bdf8826cb..29766417c 100644 --- a/src/com/engine/salary/service/SalaryTemplateService.java +++ b/src/com/engine/salary/service/SalaryTemplateService.java @@ -97,7 +97,7 @@ public interface SalaryTemplateService { * @param salarySobId * @return */ - List getSalaryItemSetContainHide(Long salarySobId, boolean isReplenish); + List getSalaryItemSetContainHide(Long salarySobId, Long salaryTemplateId, boolean isReplenish); /** * 获取默认工资单模板 diff --git a/src/com/engine/salary/service/impl/SalaryBillItemNameServiceImpl.java b/src/com/engine/salary/service/impl/SalaryBillItemNameServiceImpl.java new file mode 100644 index 000000000..427f28ada --- /dev/null +++ b/src/com/engine/salary/service/impl/SalaryBillItemNameServiceImpl.java @@ -0,0 +1,182 @@ +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.*; +import java.util.stream.Collectors; + +/** + * @author Harryxzy + * @ClassName SalaryBillItemNameServiceImpl + * @date 2023/07/18 16:17 + * @description + */ +public class SalaryBillItemNameServiceImpl extends Service implements SalaryBillItemNameService { + + 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(); + } + + @Override + public SalaryBillItemNamePO getById(Long id) { + return getSalaryBillItemNameMapper().getById(id); + } + + @Override + public int insertIgnoreNull(SalaryBillItemNamePO salaryBillItemNamePO) { + return getSalaryBillItemNameMapper().insertIgnoreNull(salaryBillItemNamePO); + } + + @Override + public int update(SalaryBillItemNamePO salaryBillItemNamePO) { + return getSalaryBillItemNameMapper().update(salaryBillItemNamePO); + } + + @Override + public int updateIgnoreNull(SalaryBillItemNamePO salaryBillItemNamePO) { + return getSalaryBillItemNameMapper().updateIgnoreNull(salaryBillItemNamePO); + } + + @Override + 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) { + saveList= saveList.stream().filter(param -> !Objects.isNull(param.getSalaryTemplateId()) && CollectionUtils.isNotEmpty(param.getItemShowNameSetting())).collect(Collectors.toList()); + 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); + } + + @Override + public void deleteByIds(List needDeleteIds) { + if(CollectionUtils.isEmpty(needDeleteIds)){ + return; + } + List> partition = Lists.partition(needDeleteIds, 1000); + partition.forEach(getSalaryBillItemNameMapper()::deleteByIds); + } + + 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); + } + + @Override + public void deleteByTemplateIds(Collection ids) { + if(CollectionUtils.isEmpty(ids)){ + return; + } + getSalaryBillItemNameMapper().deleteByTemplateIds(ids); + } +} diff --git a/src/com/engine/salary/service/impl/SalaryTemplateServiceImpl.java b/src/com/engine/salary/service/impl/SalaryTemplateServiceImpl.java index 7d0b790c5..973391c8f 100644 --- a/src/com/engine/salary/service/impl/SalaryTemplateServiceImpl.java +++ b/src/com/engine/salary/service/impl/SalaryTemplateServiceImpl.java @@ -7,11 +7,13 @@ import com.engine.salary.biz.SalarySobBiz; import com.engine.salary.biz.SalaryTemplateBiz; import com.engine.salary.entity.salaryBill.bo.SalaryTemplateBO; import com.engine.salary.entity.salaryBill.dto.SalaryTemplateListDTO; +import com.engine.salary.entity.salaryBill.dto.SalaryTemplateSalaryItemListDTO; import com.engine.salary.entity.salaryBill.dto.SalaryTemplateSalaryItemSetListDTO; import com.engine.salary.entity.salaryBill.param.SalaryTemplateCopyParam; import com.engine.salary.entity.salaryBill.param.SalaryTemplateDefaultUseParam; 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.salarysob.dto.SalarySobItemAggregateDTO; import com.engine.salary.entity.salarysob.dto.SalarySobItemDTO; @@ -25,7 +27,9 @@ import com.engine.salary.util.SalaryEntityUtil; import com.engine.salary.util.page.PageInfo; import com.engine.salary.util.page.SalaryPageUtil; import com.mzlion.core.utils.BeanUtils; +import dm.jdbc.util.IdGenerator; import org.apache.commons.collections.CollectionUtils; +import org.apache.commons.lang3.StringUtils; import org.apache.commons.lang3.math.NumberUtils; import weaver.hrm.User; @@ -59,6 +63,10 @@ public class SalaryTemplateServiceImpl extends Service implements SalaryTemplate return ServiceUtil.getService(SalarySobItemHideServiceImpl.class, user); } + private SalaryBillItemNameService getSalaryBillItemNameService(User user) { + return ServiceUtil.getService(SalaryBillItemNameServiceImpl.class, user); + } + @Override public SalaryTemplatePO getById(Long id) { return mapper.getById(id); @@ -138,6 +146,10 @@ public class SalaryTemplateServiceImpl extends Service implements SalaryTemplate salaryTemplate.setSalaryItemZeroStatus(saveParam.getSalaryItemZeroStatus()?1:0); salaryTemplate.setAutoSendCycleType(saveParam.getAutoSendCycleType()); mapper.insert(salaryTemplate); + + // 存储工资单项目自定义名称信息 + saveParam.getSalaryBillItemNameSetting().stream().forEach(set -> set.setSalaryTemplateId(salaryTemplate.getId())); + getSalaryBillItemNameService(user).saveItemShowName(saveParam.getSalaryBillItemNameSetting()); // 记录日志 // SalaryLoggerUtil.recordAddSingleLog(salaryTemplateLoggerTemplate, // salaryTemplate.getId(), @@ -204,6 +216,24 @@ public class SalaryTemplateServiceImpl extends Service implements SalaryTemplate salaryTemplateNew.setSalaryItemSetting(saveParam.getSalaryItemSetting() != null ? JSONUtil.toJsonStr(saveParam.getSalaryItemSetting()) : ""); salaryTemplateNew.setReplenishSalaryItemSetting(saveParam.getReplenishSalaryItemSetting() != null ? JSONUtil.toJsonStr(saveParam.getReplenishSalaryItemSetting()) : ""); mapper.updateById(salaryTemplateNew); + + // 保存自定义工资单项目名称信息 + getSalaryBillItemNameService(user).saveItemShowName(saveParam.getSalaryBillItemNameSetting()); + // 模板中没有的薪资项目需要同步删除显示名称表 + List billItemNameList = getSalaryBillItemNameService(user).ListByTemplateAndType(SalaryBillItemNamePO.builder().salaryTemplateId(saveParam.getId()).build()); + Map> billItemNameMap = SalaryEntityUtil.group2Map(billItemNameList, SalaryBillItemNamePO::getSalaryBillType); + List saveItemList = saveParam.getSalaryItemSetting().stream().map(SalaryTemplateSalaryItemSetListDTO::getItems).flatMap(Collection::stream).collect(Collectors.toList()); + Set saveItemIdList = SalaryEntityUtil.properties(saveItemList, SalaryTemplateSalaryItemListDTO::getSalaryItemId); + // 正常工资单模板中删除的薪资项目 + List needDeleteIds = billItemNameMap.getOrDefault(NumberUtils.INTEGER_ZERO, Collections.emptyList()).stream().filter(salaryBillItemNamepo -> !saveItemIdList.contains(salaryBillItemNamepo.getSalaryItemId().toString())) + .map(SalaryBillItemNamePO::getId).collect(Collectors.toList()); + // 补发工资单模板中删除的薪资项目 + List replenishItemList = saveParam.getReplenishSalaryItemSetting().stream().map(SalaryTemplateSalaryItemSetListDTO::getItems).flatMap(Collection::stream).collect(Collectors.toList()); + Set saveReplenishItemIdList = SalaryEntityUtil.properties(replenishItemList, SalaryTemplateSalaryItemListDTO::getSalaryItemId); + needDeleteIds.addAll(billItemNameMap.getOrDefault(NumberUtils.INTEGER_ONE, Collections.emptyList()).stream().filter(salaryBillItemNamepo -> !saveReplenishItemIdList.contains(salaryBillItemNamepo.getSalaryItemId().toString())) + .map(SalaryBillItemNamePO::getId).collect(Collectors.toList())); + getSalaryBillItemNameService(user).deleteByIds(needDeleteIds); + // 记录日志 // SalaryLoggerUtil.recordUpdateSingleLog(salaryTemplateLoggerTemplate, // salaryTemplate.getId(), @@ -238,6 +268,21 @@ public class SalaryTemplateServiceImpl extends Service implements SalaryTemplate salaryTemplateNew.setName(copyParam.getName()); salaryTemplateNew.setUseType(SalaryTemplateWhetherEnum.FALSE.getValue()); mapper.insert(salaryTemplateNew); + + // 复制工资单自定义名称信息 + List billItemNamePOList = getSalaryBillItemNameService(user).ListByTemplateAndType(SalaryBillItemNamePO.builder().salaryTemplateId(copyParam.getId()).build()); + if(CollectionUtils.isNotEmpty(billItemNamePOList)){ + Date now = new Date(); + List needInsertList = billItemNamePOList.stream().map(po -> { + SalaryBillItemNamePO newSalaryBillItemNamePO = new SalaryBillItemNamePO(); + BeanUtils.copyProperties(po, newSalaryBillItemNamePO); + newSalaryBillItemNamePO.setId(IdGenerator.generate()); + newSalaryBillItemNamePO.setUpdateTime(now); + newSalaryBillItemNamePO.setSalaryTemplateId(salaryTemplateNew.getId()); + return newSalaryBillItemNamePO; + }).collect(Collectors.toList()); + getSalaryBillItemNameService(user).batchInsert(needInsertList); + } // 记录日志 // SalaryLoggerUtil.recordAddSingleLog(salaryTemplateLoggerTemplate, // salaryTemplateNew.getId(), @@ -260,6 +305,8 @@ public class SalaryTemplateServiceImpl extends Service implements SalaryTemplate } // TODO 正在使用的记录不允许删除 mapper.deleteByIds(ids); + // 删除工资单重命名表 + getSalaryBillItemNameService(user).deleteByTemplateIds(ids); // 记录日志 // salaryTemplates.forEach(e -> SalaryLoggerUtil.recordDeleteSingleLog(salaryTemplateLoggerTemplate, // e.getId(), @@ -308,9 +355,31 @@ public class SalaryTemplateServiceImpl extends Service implements SalaryTemplate } @Override - public List getSalaryItemSetContainHide(Long salarySobId, boolean isReplenish) { + public List getSalaryItemSetContainHide(Long salarySobId, Long salaryTemplateId, boolean isReplenish) { SalarySobItemAggregateDTO salarySobItemAggregate = getSalarySobItemService(user).getAggregateBySalarySobId(salarySobId); - return SalaryTemplateBO.convertSalarySobItemAggregateToSalaryItemSet(salarySobItemAggregate, new Long(user.getUID()), isReplenish); + // 获取工资单薪资项目展示名信息 + List billItemNameList = getSalaryBillItemNameService(user).ListByTemplateAndType( + SalaryBillItemNamePO.builder().salaryTemplateId(salaryTemplateId) + .salaryBillType(isReplenish ? 1 : 0) + .build()); + Map itemShowNameMap = SalaryEntityUtil.convert2Map(billItemNameList, SalaryBillItemNamePO::getSalaryItemId, SalaryBillItemNamePO::getSalaryItemShowName); + + List salaryTemplateSalaryItemSetListDTOS = SalaryTemplateBO.convertSalarySobItemAggregateToSalaryItemSet(salarySobItemAggregate, new Long(user.getUID()), isReplenish); + salaryTemplateSalaryItemSetListDTOS.stream() + .filter(data -> !StringUtils.equals(data.getGroupId(), "111111111111111111")) + .forEach(data -> { + data.getItems().forEach(item -> { + Long salaryItemId = Long.valueOf(item.getSalaryItemId()); + if(itemShowNameMap.containsKey(salaryItemId)){ + item.setSalaryItemShowName(itemShowNameMap.get(salaryItemId)); + item.setName(itemShowNameMap.get(salaryItemId) + "(" + item.getOriginName() +")"); + }else{ + item.setSalaryItemShowName(item.getOriginName()); + item.setName(item.getOriginName()); + } + }); + }); + return salaryTemplateSalaryItemSetListDTOS; } @Override 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..74f06fac6 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); + } + /** * 工资单模板列表 * @@ -239,6 +245,11 @@ public class SalaryTemplateWrapper extends Service { if (StringUtils.isNotEmpty(po.getSalaryItemSetting())) { salaryTemplateShowSetData = JsonUtil.parseList(po.getSalaryItemSetting(), SalaryTemplateSalaryItemSetListDTO.class); } + // 补发薪资项目设置,前端保存时需要使用 + List replenishSalaryTemplateSalaryItemSet = new ArrayList<>(); + if (StringUtils.isNotEmpty(po.getReplenishSalaryItemSetting())) { + replenishSalaryTemplateSalaryItemSet = JsonUtil.parseList(po.getReplenishSalaryItemSetting(), SalaryTemplateSalaryItemSetListDTO.class); + } //同步项目名称 List itemPOS = getSalaryItemService(user).listAll(); @@ -247,12 +258,35 @@ public class SalaryTemplateWrapper extends Service { // List groupPOS = getSalarySobItemGroupService(user).listBySalarySobId(po.getSalarySobId()); // Map groupIdNameMap = SalaryEntityUtil.convert2Map(groupPOS, SalarySobItemGroupPO::getId, SalarySobItemGroupPO::getName); + // 获取工资单薪资项目展示名信息 + Map itemShowNameMap; + Map salaryBillItemNameDTOMap = Collections.emptyMap(); + if (id != null){ + List billItemNameList = getSalaryBillItemNameService(user).ListByTemplateAndType(SalaryBillItemNamePO.builder().salaryTemplateId(id).salaryBillType(0).build()); + itemShowNameMap = SalaryEntityUtil.convert2Map(billItemNameList, SalaryBillItemNamePO::getSalaryItemId, SalaryBillItemNamePO::getSalaryItemShowName); + // 获取薪资项目信息 + List salaryBillItemNameDTOS = SalaryBillItemNameBO.convert2ListDTO(billItemNameList); + salaryBillItemNameDTOMap = SalaryEntityUtil.convert2Map(salaryBillItemNameDTOS, SalaryBillItemNameDTO::getSalaryItemId); + } else { + itemShowNameMap = Collections.emptyMap(); + } + 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.setOriginName(itemIdNameMap.getOrDefault(salaryItemId, item.getName())); + if(itemShowNameMap.containsKey(salaryItemId)){ + item.setSalaryItemShowName(itemShowNameMap.get(salaryItemId)); + item.setName(itemShowNameMap.get(salaryItemId) + "(" + itemIdNameMap.getOrDefault(salaryItemId, item.getName()) +")"); + }else{ + item.setSalaryItemShowName(itemIdNameMap.getOrDefault(salaryItemId, item.getName())); + item.setName(itemIdNameMap.getOrDefault(salaryItemId, item.getName())); + } + }); }); } @@ -262,6 +296,8 @@ public class SalaryTemplateWrapper extends Service { .vars(Arrays.stream(SalaryTemplateVarEnum.values()).map(SalaryTemplateVarEnum::getValue).collect(Collectors.toList())) .salaryTemplateShowSet(salaryTemplateShowSet) .salaryTemplateSalaryItemSet(salaryTemplateShowSetData) + .replenishSalaryTemplateSalaryItemSet(replenishSalaryTemplateSalaryItemSet) + .salaryBillItemNameSet(salaryBillItemNameDTOMap) .build(); } @@ -388,6 +424,8 @@ public class SalaryTemplateWrapper extends Service { // 补发薪资项目设置 List replenishSalaryItemSetting; + // 补发薪资项目显示名称 + Map salaryBillItemNameDTOMap = new HashMap<>(); if (id != null) { SalaryTemplatePO po = getSalaryTemplateService(user).getById(id); if (po == null) { @@ -399,13 +437,30 @@ 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); + // 获取薪资项目信息 + List salaryBillItemNameDTOS = SalaryBillItemNameBO.convert2ListDTO(billItemNameList); + salaryBillItemNameDTOMap = SalaryEntityUtil.convert2Map(salaryBillItemNameDTOS, SalaryBillItemNameDTO::getSalaryItemId); + 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.setOriginName(itemIdNameMap.getOrDefault(salaryItemId, item.getName())); + if(itemShowNameMap.containsKey(salaryItemId)){ + item.setSalaryItemShowName(itemShowNameMap.get(salaryItemId)); + item.setName(itemShowNameMap.get(salaryItemId) + "(" + itemIdNameMap.getOrDefault(salaryItemId, item.getName()) + ")"); + }else{ + item.setSalaryItemShowName(itemIdNameMap.getOrDefault(salaryItemId, item.getName())); + item.setName(itemIdNameMap.getOrDefault(salaryItemId, item.getName())); + } + }); + }); } } else { replenishSalaryItemSetting = getReplenishSalaryItemSet(replenishFormQueryParam.getSalarySobId()); @@ -417,6 +472,7 @@ public class SalaryTemplateWrapper extends Service { return SalaryTemplateReplenishFormDTO.builder() .id(id) .replenishSalaryTemplateSalaryItemSet(replenishSalaryItemSetting) + .salaryBillItemNameSet(salaryBillItemNameDTOMap) .build(); } @@ -430,7 +486,7 @@ public class SalaryTemplateWrapper extends Service { Boolean isReplenish = Optional.ofNullable(param.getIsReplenish()) .orElse(false); List salaryItemSet - = getSalaryTemplateService(user).getSalaryItemSetContainHide(param.getSalarySobId(), isReplenish); + = getSalaryTemplateService(user).getSalaryItemSetContainHide(param.getSalarySobId(), param.getSalaryTemplateId(), isReplenish); Long groupId = param.getGroupId(); return salaryItemSet.stream() .filter(s -> Objects.equals(s.getGroupId(), groupId + "")) @@ -452,11 +508,15 @@ public class SalaryTemplateWrapper extends Service { public List getSalaryGroupSet(SalaryBillSalaryGroupQueryParam param) { Boolean isReplenish = Optional.ofNullable(param.getIsReplenish()) .orElse(false); - return getSalaryTemplateService(user).getSalaryItemSetContainHide(param.getSalarySobId(), isReplenish) + return getSalaryTemplateService(user).getSalaryItemSetContainHide(param.getSalarySobId(), param.getSalaryTemplateId(), isReplenish) .stream() .filter(group -> !Optional.ofNullable(param.getExistSalaryGroupIds()).orElse(Collections.emptyList()) .contains(group.getGroupId()) ) .collect(Collectors.toList()); } + + public void saveItemShowName(List saveList) { + getSalaryBillItemNameService(user).saveItemShowName(saveList); + } }