自定义工资项目展示名
This commit is contained in:
parent
bbb8417008
commit
8e6bd24d0d
|
|
@ -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<SalaryBillItemNameDTO> convert2ListDTO(List<SalaryBillItemNamePO> SalaryBillItemNamePOList, Map<Long, String> 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());
|
||||
}
|
||||
}
|
||||
|
|
@ -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;
|
||||
}
|
||||
|
|
@ -26,4 +26,7 @@ public class SalaryTemplateReplenishFormDTO {
|
|||
// 薪资项目设置")
|
||||
private List<SalaryTemplateSalaryItemSetListDTO> replenishSalaryTemplateSalaryItemSet;
|
||||
|
||||
// 工资单项目名称设置
|
||||
private List<SalaryBillItemNameDTO> salaryBillItemNameSet;
|
||||
|
||||
}
|
||||
|
|
|
|||
|
|
@ -29,4 +29,7 @@ public class SalaryTemplateShowFormDTO {
|
|||
|
||||
// 薪资项目设置")
|
||||
private List<SalaryTemplateSalaryItemSetListDTO> salaryTemplateSalaryItemSet;
|
||||
|
||||
// 工资单项目名称设置
|
||||
private Map<Long, SalaryBillItemNameDTO> salaryBillItemNameSet;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -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> itemShowNameSetting;
|
||||
|
||||
@Data
|
||||
@Builder
|
||||
@NoArgsConstructor
|
||||
@AllArgsConstructor
|
||||
public static class itemShowNameSetting {
|
||||
/**
|
||||
* 薪资项目id
|
||||
*/
|
||||
private Long salaryItemId;
|
||||
|
||||
/**
|
||||
* 工资单展示名称
|
||||
*/
|
||||
private String salaryItemShowName;
|
||||
}
|
||||
|
||||
}
|
||||
|
|
@ -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<Long> ids;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -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> salaryBillItemNamePO);
|
||||
|
||||
/**
|
||||
* 批量插入
|
||||
* @param salaryBillItemNamePO
|
||||
*/
|
||||
void batchInsert(@Param("collection") List<SalaryBillItemNamePO> salaryBillItemNamePO);
|
||||
|
||||
/**
|
||||
* 根据薪资项目、模板id、模板类型批量删除
|
||||
* @param salaryItemIds
|
||||
* @param salaryTemplateId
|
||||
* @param salaryBillType
|
||||
*/
|
||||
void deleteByItemIdsAndTemplateId(@Param("salaryItemIds") List<Long> salaryItemIds, @Param("salaryTemplateId") Long salaryTemplateId, @Param("salaryBillType") Integer salaryBillType);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -6,6 +6,11 @@
|
|||
<result column="salary_item_id" property="salaryItemId" />
|
||||
<result column="salary_item_show_name" property="salaryItemShowName" />
|
||||
<result column="salary_template_id" property="salaryTemplateId" />
|
||||
<result column="delete_type" property="deleteType" />
|
||||
<result column="creator" property="creator" />
|
||||
<result column="create_time" property="createTime" />
|
||||
<result column="update_time" property="updateTime" />
|
||||
<result column="tenant_key" property="tenantKey" />
|
||||
</resultMap>
|
||||
|
||||
<!-- 表字段 -->
|
||||
|
|
@ -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
|
||||
</sql>
|
||||
|
||||
<!-- 查询全部 -->
|
||||
|
|
@ -50,6 +61,9 @@
|
|||
<if test="salaryTemplateId != null">
|
||||
AND salary_template_id = #{salaryTemplateId}
|
||||
</if>
|
||||
<if test="salaryBillType != null">
|
||||
AND salary_bill_type = #{salaryBillType}
|
||||
</if>
|
||||
<if test="ids != null and ids.size()>0">
|
||||
AND id IN
|
||||
<foreach collection="ids" open="(" item="id" separator="," close=")">
|
||||
|
|
@ -77,6 +91,24 @@
|
|||
<if test="salaryTemplateId != null">
|
||||
salary_template_id,
|
||||
</if>
|
||||
<if test="salaryBillType != null">
|
||||
salary_bill_type,
|
||||
</if>
|
||||
<if test="creator != null">
|
||||
creator,
|
||||
</if>
|
||||
<if test="createTime != null">
|
||||
create_time,
|
||||
</if>
|
||||
<if test="updateTime != null">
|
||||
update_time,
|
||||
</if>
|
||||
<if test="deleteType != null">
|
||||
delete_type,
|
||||
</if>
|
||||
<if test="tenantKey != null">
|
||||
tenant_key,
|
||||
</if>
|
||||
</trim>
|
||||
<trim prefix="VALUES (" suffix=")" suffixOverrides=",">
|
||||
<if test="id != null" >
|
||||
|
|
@ -91,9 +123,114 @@
|
|||
<if test="salaryTemplateId != null" >
|
||||
#{salaryTemplateId},
|
||||
</if>
|
||||
<if test="salaryBillType != null" >
|
||||
#{salaryBillType},
|
||||
</if>
|
||||
<if test="creator != null">
|
||||
#{creator},
|
||||
</if>
|
||||
<if test="createTime != null">
|
||||
#{createTime},
|
||||
</if>
|
||||
<if test="updateTime != null">
|
||||
#{updateTime},
|
||||
</if>
|
||||
<if test="deleteType != null">
|
||||
#{deleteType},
|
||||
</if>
|
||||
<if test="tenantKey != null">
|
||||
#{tenantKey},
|
||||
</if>
|
||||
</trim>
|
||||
</insert>
|
||||
|
||||
<insert id="batchInsert">
|
||||
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
|
||||
<foreach collection="collection" item="item" separator=",">
|
||||
(
|
||||
#{item.id},
|
||||
#{item.salaryTemplateId},
|
||||
#{item.salaryItemId},
|
||||
#{item.salaryItemShowName},
|
||||
#{item.salaryBillType},
|
||||
#{item.creator},
|
||||
#{item.createTime},
|
||||
#{item.updateTime},
|
||||
#{item.deleteType},
|
||||
#{item.tenantKey}
|
||||
)
|
||||
</foreach>
|
||||
</insert>
|
||||
<insert id="batchInsert" databaseId="oracle">
|
||||
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
|
||||
)
|
||||
<foreach collection="collection" item="item" separator="union all">
|
||||
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
|
||||
</foreach>
|
||||
</insert>
|
||||
<insert id="batchInsert" databaseId="sqlserver">
|
||||
<foreach collection="collection" item="item" separator=";">
|
||||
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}
|
||||
)
|
||||
</foreach>
|
||||
</insert>
|
||||
|
||||
<!-- 更新,更新全部字段 -->
|
||||
<update id="update" parameterType="com.engine.salary.entity.salaryBill.po.SalaryBillItemNamePO">
|
||||
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}
|
||||
</set>
|
||||
WHERE id = #{id} AND delete_type = 0
|
||||
</update>
|
||||
|
|
@ -119,10 +261,46 @@
|
|||
<if test="salaryTemplateId != null" >
|
||||
salary_template_id=#{salaryTemplateId},
|
||||
</if>
|
||||
<if test="salaryBillType != null" >
|
||||
salary_bill_type=#{salaryBillType},
|
||||
</if>
|
||||
<if test="creator != null" >
|
||||
creator=#{creator},
|
||||
</if>
|
||||
<if test="create_time != null" >
|
||||
create_time=#{createTime},
|
||||
</if>
|
||||
<if test="updateTime != null" >
|
||||
update_time=#{updateTime},
|
||||
</if>
|
||||
<if test="tenantKey != null" >
|
||||
tenant_key=#{tenantKey},
|
||||
</if>
|
||||
</set>
|
||||
WHERE id = #{id} AND delete_type = 0
|
||||
</update>
|
||||
|
||||
<update id="batchUpdate">
|
||||
UPDATE hrsa_salary_bill_item_name
|
||||
<trim prefix="set" suffixOverrides=",">
|
||||
<trim prefix="salary_item_show_name = case" suffix="end,">
|
||||
<foreach collection="collection" item="item" index="index">
|
||||
WHEN id = #{item.id} THEN #{item.salaryItemShowName}
|
||||
</foreach>
|
||||
</trim>
|
||||
<trim prefix="update_time = case" suffix="end,">
|
||||
<foreach collection="collection" item="item" index="index">
|
||||
WHEN id = #{item.id} THEN #{item.updateTime}
|
||||
</foreach>
|
||||
</trim>
|
||||
</trim>
|
||||
WHERE delete_type = 0
|
||||
AND id IN
|
||||
<foreach collection="collection" item="item" open="(" close=")" separator=",">
|
||||
#{item.id}
|
||||
</foreach>
|
||||
</update>
|
||||
|
||||
|
||||
<!-- 根据主键删除记录 -->
|
||||
<delete id="delete" parameterType="com.engine.salary.entity.salaryBill.po.SalaryBillItemNamePO">
|
||||
|
|
@ -131,5 +309,17 @@
|
|||
WHERE id = #{id} AND delete_type = 0
|
||||
</delete>
|
||||
|
||||
<delete id="deleteByItemIdsAndTemplateId">
|
||||
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
|
||||
<foreach collection="salaryItemIds" item="itemId" open="(" close=")" separator=",">
|
||||
#{itemId}
|
||||
</foreach>
|
||||
</delete>
|
||||
|
||||
|
||||
</mapper>
|
||||
|
|
@ -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<SalaryBillItemNamePO> ListByTemplateAndType(SalaryBillItemNamePO build);
|
||||
|
||||
/**
|
||||
* 设置工资单薪资项目显示名
|
||||
* @param saveList
|
||||
*/
|
||||
void saveItemShowName(List<SalaryBillItemNameSaveParam> saveList);
|
||||
|
||||
/**
|
||||
* 批量更新
|
||||
* @param needUpdateList
|
||||
*/
|
||||
void batchUpdate(List<SalaryBillItemNamePO> needUpdateList);
|
||||
|
||||
/**
|
||||
* 批量插入
|
||||
* @param needInsertList
|
||||
*/
|
||||
void batchInsert(List<SalaryBillItemNamePO> needInsertList);
|
||||
|
||||
}
|
||||
|
|
|
|||
|
|
@ -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<SalaryBillItemNamePO> 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<SalaryBillItemNamePO> ListByTemplateAndType(SalaryBillItemNamePO param) {
|
||||
return getSalaryBillItemNameMapper().listSome(param);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void saveItemShowName(List<SalaryBillItemNameSaveParam> saveList) {
|
||||
if(CollectionUtils.isEmpty(saveList))
|
||||
return;
|
||||
List<Long> 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<SalaryBillItemNamePO> needInsertList = new ArrayList<>();
|
||||
List<SalaryBillItemNamePO> needUpdateList = new ArrayList<>();
|
||||
Date now = new Date();
|
||||
// 根据模板类型分组
|
||||
Map<Integer, List<SalaryBillItemNameSaveParam.itemShowNameSetting>> saveMap = SalaryEntityUtil.convert2Map(saveList, SalaryBillItemNameSaveParam::getSalaryBillType, SalaryBillItemNameSaveParam::getItemShowNameSetting);
|
||||
|
||||
for(Map.Entry<Integer, List<SalaryBillItemNameSaveParam.itemShowNameSetting>> entry : saveMap.entrySet()){
|
||||
// 获取已经设置的展示名
|
||||
List<SalaryBillItemNamePO> billItemNameList = ListByTemplateAndType(SalaryBillItemNamePO.builder().salaryTemplateId(salaryTemplateId).salaryBillType(entry.getKey()).build());
|
||||
Map<Long, SalaryBillItemNamePO> billItemNameMap = SalaryEntityUtil.convert2Map(billItemNameList, SalaryBillItemNamePO::getSalaryItemId);
|
||||
List<Long> 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<SalaryBillItemNamePO> needUpdateList) {
|
||||
if(CollectionUtils.isEmpty(needUpdateList))
|
||||
return;
|
||||
List<List<SalaryBillItemNamePO>> partition = Lists.partition(needUpdateList, 500);
|
||||
partition.forEach(getSalaryBillItemNameMapper()::batchUpdate);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void batchInsert(List<SalaryBillItemNamePO> needInsertList) {
|
||||
if(CollectionUtils.isEmpty(needInsertList))
|
||||
return;
|
||||
List<List<SalaryBillItemNamePO>> partition = Lists.partition(needInsertList, 500);
|
||||
partition.forEach(getSalaryBillItemNameMapper()::batchInsert);
|
||||
}
|
||||
|
||||
public void batchDeleteByItemIdsAndTemplateId(List<Long> salaryItemIds, Long salaryTemplateId, Integer salaryBillType) {
|
||||
if(CollectionUtils.isEmpty(salaryItemIds) || Objects.isNull(salaryTemplateId) || Objects.isNull(salaryBillType))
|
||||
return;
|
||||
getSalaryBillItemNameMapper().deleteByItemIdsAndTemplateId(salaryItemIds, salaryTemplateId, salaryBillType);
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
|
|
|||
|
|
@ -98,6 +98,19 @@ public class SalaryBillController {
|
|||
return new ResponseResult<Long, SalaryTemplateShowFormDTO>(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<SalaryBillItemNameSaveParam> param) {
|
||||
User user = HrmUserVarify.getUser(request, response);
|
||||
return new ResponseResult<List<SalaryBillItemNameSaveParam>, String>(user).run(getSalaryTemplateWrapper(user)::saveItemShowName, param);
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取薪资项目设置
|
||||
*
|
||||
|
|
|
|||
|
|
@ -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<SalarySobItemGroupPO> groupPOS = getSalarySobItemGroupService(user).listBySalarySobId(po.getSalarySobId());
|
||||
// Map<Long, String> groupIdNameMap = SalaryEntityUtil.convert2Map(groupPOS, SalarySobItemGroupPO::getId, SalarySobItemGroupPO::getName);
|
||||
|
||||
// 获取工资单薪资项目展示名信息
|
||||
List<SalaryBillItemNamePO> billItemNameList = getSalaryBillItemNameService(user).ListByTemplateAndType(SalaryBillItemNamePO.builder().salaryTemplateId(id).salaryBillType(0).build());
|
||||
Map<Long, String> itemShowNameMap = SalaryEntityUtil.convert2Map(billItemNameList, SalaryBillItemNamePO::getSalaryItemId, SalaryBillItemNamePO::getSalaryItemShowName);
|
||||
// 获取薪资项目信息
|
||||
List<SalaryBillItemNameDTO> salaryBillItemNameDTOS = SalaryBillItemNameBO.convert2ListDTO(billItemNameList, itemIdNameMap);
|
||||
Map<Long, SalaryBillItemNameDTO> 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<SalaryTemplateSalaryItemSetListDTO> replenishSalaryItemSetting;
|
||||
// 补发薪资项目显示名称
|
||||
List<SalaryBillItemNameDTO> 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<SalaryItemPO> itemPOS = getSalaryItemService(user).listAll();
|
||||
Map<Long, String> itemIdNameMap = SalaryEntityUtil.convert2Map(itemPOS, SalaryItemPO::getId, SalaryItemPO::getName);
|
||||
// 获取工资单薪资项目展示名信息
|
||||
List<SalaryBillItemNamePO> billItemNameList = getSalaryBillItemNameService(user).ListByTemplateAndType(SalaryBillItemNamePO.builder().salaryTemplateId(id).salaryBillType(1).build());
|
||||
Map<Long, String> 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<SalaryBillItemNameSaveParam> saveList) {
|
||||
getSalaryBillItemNameService(user).saveItemShowName(saveList);
|
||||
}
|
||||
}
|
||||
|
|
|
|||
Loading…
Reference in New Issue