Merge branch 'release/个税版本' into custom/艾志工业

This commit is contained in:
Harryxzy 2024-05-30 17:24:24 +08:00
commit bdecf26b09
6 changed files with 32 additions and 369 deletions

View File

@ -1,6 +1,5 @@
package com.engine.salary.biz;
import com.engine.salary.entity.salarysob.po.SalarySobItemHidePO;
import com.engine.salary.entity.salarysob.po.SalarySobItemPO;
import com.engine.salary.mapper.salarysob.SalarySobItemMapper;
import com.google.common.collect.Lists;
@ -34,16 +33,6 @@ public class SalarySobItemBiz {
}
}
public List<SalarySobItemPO> listBySalarySobIdWithHideItem(SalarySobItemPO build) {
SqlSession sqlSession = MyBatisFactory.sqlSessionFactory.openSession();
try {
SalarySobItemMapper mapper = sqlSession.getMapper(SalarySobItemMapper.class);
return mapper.listBySalarySobIdWithHideItem(build);
} finally {
sqlSession.close();
}
}
public void batchInsert(Collection<SalarySobItemPO> salarySobItemPOS) {
if (CollectionUtils.isEmpty(salarySobItemPOS)) {
@ -83,19 +72,7 @@ public class SalarySobItemBiz {
}
}
public void InsertItemShow(SalarySobItemHidePO salarySobItemHidePO) {
if (salarySobItemHidePO == null) {
return;
}
SqlSession sqlSession = MyBatisFactory.sqlSessionFactory.openSession();
try {
SalarySobItemMapper mapper = sqlSession.getMapper(SalarySobItemMapper.class);
mapper.insertItemShow(salarySobItemHidePO);
sqlSession.commit();
} finally {
sqlSession.close();
}
}
public List<SalarySobItemPO> listBySalarySobIdAndGroupId(Long salarySobId, Collection<Long> salarySobItemGroupIds) {
SqlSession sqlSession = MyBatisFactory.sqlSessionFactory.openSession();
@ -141,21 +118,6 @@ public class SalarySobItemBiz {
}
public void batchInsertItemShow(List<SalarySobItemHidePO> list) {
if (CollectionUtils.isEmpty(list)) {
return;
}
SqlSession sqlSession = MyBatisFactory.sqlSessionFactory.openSession();
try {
SalarySobItemMapper mapper = sqlSession.getMapper(SalarySobItemMapper.class);
List<List<SalarySobItemHidePO>> partition = Lists.partition( list, 100);
partition.forEach(mapper::batchInsertItemShow);
sqlSession.commit();
} finally {
sqlSession.close();
}
}
public void update(SalarySobItemPO salarySobItemPO) {
if (Objects.isNull(salarySobItemPO)) {
return;

View File

@ -67,8 +67,6 @@ public class SalarySobItemBO {
List<SalaryItemPO> defaultSalaryItemPOS,
Long employeeId, String tenantKey) {
Date now = new Date();
// 需要保存的隐藏项目
List<SalarySobItemHidePO> needInsertItemHides = new ArrayList<>();
// 处理薪资账套默认的薪资项目分类
Map<Long, Long> salarySobItemGroupIdMap = Maps.newHashMapWithExpectedSize(salarySobDefaultItemGroupPOS.size());
List<SalarySobItemGroupPO> salarySobItemGroups = Lists.newArrayListWithExpectedSize(salarySobDefaultItemGroupPOS.size());
@ -87,20 +85,6 @@ public class SalarySobItemBO {
.deleteType(NumberUtils.INTEGER_ZERO)
.build());
salarySobItemGroupIdMap.put(salarySobDefaultItemGroupPO.getId(), salarySobItemGroupId);
// 保存薪资项目分类隐藏信息
needInsertItemHides.add(SalarySobItemHidePO.builder()
.id(IdGenerator.generate())
.salarySobId(salarySobId)
.salaryItemId(salarySobItemGroupId)
.isGroup(1)
.itemHide(0L)
.creator(employeeId)
.createTime(now)
.updateTime(now)
.deleteType(NumberUtils.INTEGER_ZERO)
.tenantKey(SalaryDefaultTenantConstant.DEFAULT_TENANT_KEY)
.build());
}
@ -128,20 +112,6 @@ public class SalarySobItemBO {
.tenantKey(tenantKey)
.deleteType(NumberUtils.INTEGER_ZERO)
.build());
// 保存薪资项目隐藏信息
needInsertItemHides.add(SalarySobItemHidePO.builder()
.id(IdGenerator.generate())
.salarySobId(salarySobId)
.salaryItemId(salaryItemPO.getId())
.isGroup(0)
.itemHide(Long.valueOf(salaryItemPO.getHideDefault()== null ? 0 : salaryItemPO.getHideDefault()))
.creator(employeeId)
.createTime(now)
.updateTime(now)
.deleteType(NumberUtils.INTEGER_ZERO)
.tenantKey(SalaryDefaultTenantConstant.DEFAULT_TENANT_KEY)
.build());
}
// 处理薪资账套默认的自定义薪资项目开启了"默认使用"
for (int i = 0; i < defaultSalaryItemPOS.size(); i++) {
@ -169,19 +139,6 @@ public class SalarySobItemBO {
.tenantKey(tenantKey)
.deleteType(NumberUtils.INTEGER_ZERO)
.build());
// 保存薪资项目隐藏信息
needInsertItemHides.add(SalarySobItemHidePO.builder()
.id(IdGenerator.generate())
.salarySobId(salarySobId)
.salaryItemId(salaryItemPO.getId())
.isGroup(0)
.itemHide(Long.valueOf(salaryItemPO.getHideDefault() == null ? 0 : salaryItemPO.getHideDefault()))
.creator(employeeId)
.createTime(now)
.updateTime(now)
.deleteType(NumberUtils.INTEGER_ZERO)
.tenantKey(SalaryDefaultTenantConstant.DEFAULT_TENANT_KEY)
.build());
}
// 薪资账套默认的回算薪资项目
@ -209,7 +166,7 @@ public class SalarySobItemBO {
}
return new Result().setNeedInsertSalarySobItems(salarySobItems).setNeedInsertSalarySobItemGroups(salarySobItemGroups)
.setNeedInsertSalarySobBackItems(salarySobBackItems).setNeedInsertItemHides(needInsertItemHides);
.setNeedInsertSalarySobBackItems(salarySobBackItems);
}
@Data
@ -230,10 +187,5 @@ public class SalarySobItemBO {
* 需要保存的回算薪资项目
*/
List<SalarySobBackItemPO> needInsertSalarySobBackItems;
/**
* 需要保存的薪资项目隐藏信息
*/
List<SalarySobItemHidePO> needInsertItemHides;
}
}

View File

@ -1,6 +1,5 @@
package com.engine.salary.mapper.salarysob;
import com.engine.salary.entity.salarysob.po.SalarySobItemHidePO;
import com.engine.salary.entity.salarysob.po.SalarySobItemPO;
import org.apache.ibatis.annotations.Param;
@ -24,7 +23,6 @@ public interface SalarySobItemMapper {
*/
List<SalarySobItemPO> listSome(SalarySobItemPO salarySobItemPO);
List<SalarySobItemPO> listBySalarySobIdWithHideItem(SalarySobItemPO salarySobItemPO);
/**
@ -35,14 +33,7 @@ public interface SalarySobItemMapper {
*/
SalarySobItemPO getById(Long id);
/**
* 新增忽略null字段
*
* @param salarySobItemPO 新增的记录
* @return 返回影响行数
*/
int insertIgnoreNull(SalarySobItemPO salarySobItemPO);
/**
* 修改修改所有字段
*
@ -50,7 +41,7 @@ public interface SalarySobItemMapper {
* @return 返回影响行数
*/
int update(SalarySobItemPO salarySobItemPO);
/**
* 修改忽略null字段
*
@ -97,12 +88,6 @@ public interface SalarySobItemMapper {
*/
void deleteItemShowBySalarySobId(@Param("salarySobIds")Collection<Long> salarySobIds);
/**
* 插入薪资项目分组是否显示
* @param salarySobItemHidePO
*/
void insertItemShow(SalarySobItemHidePO salarySobItemHidePO);
/**
* 根据账套id以及薪资项目分组获取
* @param
@ -112,9 +97,4 @@ public interface SalarySobItemMapper {
void deleteByGroupIds(@Param("groupIds") List<Long> needDeleteGroupIds);
/**
* 批量插入薪资项目分组是否显示
* @param list
*/
void batchInsertItemShow(@Param("collection")List<SalarySobItemHidePO> list);
}

View File

@ -17,6 +17,7 @@
<result column="can_delete" property="canDelete"/>
<result column="salary_item_code" property="salaryItemCode"/>
<result column="item_hide" property="itemHide"/>
<result column="income_category" property="incomeCategory"/>
</resultMap>
<!-- 表字段 -->
@ -41,6 +42,7 @@
, t.pattern
, t.value_type
, t.item_hide
, t.income_category
</sql>
<!-- 查询全部 -->
@ -151,129 +153,6 @@
</select>
<select id="listBySalarySobIdWithHideItem"
resultType="com.engine.salary.entity.salarysob.po.SalarySobItemPO">
SELECT
t.create_time
, t.creator
, t.delete_type
, t.description
, t.formula_id
, t.id
, t.salary_item_id
, t.salary_sob_id
, t.salary_sob_item_group_id
, t.sorted_index
, t.tenant_key
, t.update_time
, t.rounding_mode
, t.pattern
, t.value_type
,t.can_delete
,t.salary_item_code
,h.item_hide
FROM hrsa_salary_sob_item t
LEFT JOIN hrsa_salary_item_hide h ON t.salary_item_id=h.salary_item_id and t.salary_sob_id = h.salary_sob_id
WHERE t.delete_type = 0
and t.salary_sob_id=#{salarySobId}
ORDER BY id DESC
</select>
<!-- 插入不为NULL的字段 -->
<insert id="insertIgnoreNull" parameterType="com.engine.salary.entity.salarysob.po.SalarySobItemPO">
INSERT INTO hrsa_salary_sob_item
<trim prefix="(" suffix=")" suffixOverrides=",">
<if test="createTime != null">
create_time,
</if>
<if test="creator != null">
creator,
</if>
<if test="deleteType != null">
delete_type,
</if>
<if test="description != null">
description,
</if>
<if test="formulaId != null">
formula_id,
</if>
<if test="id != null">
id,
</if>
<if test="salaryItemId != null">
salary_item_id,
</if>
<if test="salarySobId != null">
salary_sob_id,
</if>
<if test="salarySobItemGroupId != null">
salary_sob_item_group_id,
</if>
<if test="sortedIndex != null">
sorted_index,
</if>
<if test="tenantKey != null">
tenant_key,
</if>
<if test="updateTime != null">
update_time,
</if>
<if test="canDelete != null">
can_delete,
</if>
<if test="itemHide != null">
item_hide,
</if>
</trim>
<trim prefix="VALUES (" suffix=")" suffixOverrides=",">
<if test="createTime != null">
#{createTime},
</if>
<if test="creator != null">
#{creator},
</if>
<if test="deleteType != null">
#{deleteType},
</if>
<if test="description != null">
#{description},
</if>
<if test="formulaId != null">
#{formulaId},
</if>
<if test="id != null">
#{id},
</if>
<if test="salaryItemId != null">
#{salaryItemId},
</if>
<if test="salarySobId != null">
#{salarySobId},
</if>
<if test="salarySobItemGroupId != null">
#{salarySobItemGroupId},
</if>
<if test="sortedIndex != null">
#{sortedIndex},
</if>
<if test="tenantKey != null">
#{tenantKey},
</if>
<if test="updateTime != null">
#{updateTime},
</if>
<if test="canDelete != null">
#{canDelete},
</if>
<if test="itemHide != null">
#{itemHide},
</if>
</trim>
</insert>
<!-- 更新,更新全部字段 -->
<update id="update" parameterType="com.engine.salary.entity.salarysob.po.SalarySobItemPO">
UPDATE hrsa_salary_sob_item
@ -294,6 +173,7 @@
pattern=#{pattern},
value_type=#{valueType},
item_hide=#{itemHide},
income_category=#{incomeCategory},
</set>
WHERE id = #{id} AND delete_type = 0
</update>
@ -351,6 +231,9 @@
<if test="itemHide != null">
item_hide=#{itemHide},
</if>
<if test="incomeCategory != null">
income_category=#{incomeCategory},
</if>
</set>
WHERE id = #{id} AND delete_type = 0
</update>
@ -397,7 +280,7 @@
<insert id="batchInsert">
INSERT INTO hrsa_salary_sob_item(salary_sob_id, salary_item_id, salary_sob_item_group_id, formula_id,
sorted_index, description, create_time, update_time, creator, delete_type, tenant_key,can_delete,rounding_mode,pattern,value_type,salary_item_code,item_hide)
sorted_index, description, create_time, update_time, creator, delete_type, tenant_key,can_delete,rounding_mode,pattern,value_type,salary_item_code,item_hide,income_category)
VALUES
<foreach collection="collection" item="item" separator=",">
(
@ -417,13 +300,14 @@
#{item.pattern},
#{item.valueType},
#{item.salaryItemCode},
#{item.itemHide}
#{item.itemHide},
#{item.incomeCategory}
)
</foreach>
</insert>
<insert id="batchInsert" databaseId="oracle">
INSERT INTO hrsa_salary_sob_item( salary_sob_id, salary_item_id, salary_sob_item_group_id, formula_id,
sorted_index, description, create_time, update_time, creator, delete_type, tenant_key,can_delete,rounding_mode,pattern,value_type,salary_item_code,item_hide)
sorted_index, description, create_time, update_time, creator, delete_type, tenant_key,can_delete,rounding_mode,pattern,value_type,salary_item_code,item_hide,income_category)
<foreach collection="collection" item="item" separator="union all">
select
@ -443,14 +327,15 @@
#{item.pattern,jdbcType=INTEGER},
#{item.valueType,jdbcType=INTEGER},
#{item.salaryItemCode,jdbcType=INTEGER},
#{item.itemHide,jdbcType=DOUBLE}
#{item.itemHide,jdbcType=DOUBLE},
#{item.incomeCategory,jdbcType=VARCHAR}
from dual
</foreach>
</insert>
<insert id="batchInsert" databaseId="sqlserver">
<foreach collection="collection" item="item" separator=";">
INSERT INTO hrsa_salary_sob_item( salary_sob_id, salary_item_id, salary_sob_item_group_id, formula_id,
sorted_index, description, create_time, update_time, creator, delete_type, tenant_key,can_delete,rounding_mode,pattern,value_type,salary_item_code,item_hide)
sorted_index, description, create_time, update_time, creator, delete_type, tenant_key,can_delete,rounding_mode,pattern,value_type,salary_item_code,item_hide,income_category)
VALUES
(
#{item.salarySobId},
@ -469,76 +354,11 @@
#{item.pattern},
#{item.valueType},
#{item.salaryItemCode},
#{item.itemHide}
)
</foreach>
</insert>
<insert id="insertItemShow">
insert into hrsa_salary_item_hide (id,salary_sob_id,salary_item_id,is_group,item_hide,
creator,tenant_key,create_time,update_time,delete_type)
VALUES (#{id},#{salarySobId},#{salaryItemId},
#{isGroup},#{itemHide},#{creator},
#{tenantKey},#{createTime},#{updateTime},0)
</insert>
<insert id="batchInsertItemShow">
insert into hrsa_salary_item_hide (id,salary_sob_id,salary_item_id,is_group,item_hide,
creator,tenant_key,create_time,update_time,delete_type)
VALUES
<foreach collection="collection" item="item" separator=",">
(
#{item.id},
#{item.salarySobId},
#{item.salaryItemId},
#{item.isGroup},
#{item.itemHide},
#{item.creator},
#{item.tenantKey},
#{item.createTime},
#{item.updateTime},
0
#{item.incomeCategory}
)
</foreach>
</insert>
<insert id="batchInsertItemShow" databaseId="oracle">
insert into hrsa_salary_item_hide (id,salary_sob_id,salary_item_id,is_group,item_hide,
creator,tenant_key,create_time,update_time,delete_type)
<foreach collection="collection" item="item" separator="union all">
select
#{item.id,jdbcType=DOUBLE},
#{item.salarySobId,jdbcType=DOUBLE},
#{item.salaryItemId,jdbcType=DOUBLE},
#{item.isGroup,jdbcType=INTEGER},
#{item.itemHide,jdbcType=INTEGER},
#{item.creator,jdbcType=DOUBLE},
#{item.tenantKey,jdbcType=VARCHAR},
#{item.createTime,jdbcType=DATE},
#{item.updateTime,jdbcType=DATE},
0
from dual
</foreach>
</insert>
<insert id="batchInsertItemShow" databaseId="sqlserver">
<foreach collection="collection" item="item" separator=";">
insert into hrsa_salary_item_hide (id,salary_sob_id,salary_item_id,is_group,item_hide,
creator,tenant_key,create_time,update_time,delete_type)
VALUES
(
#{item.id},
#{item.salarySobId},
#{item.salaryItemId},
#{item.isGroup},
#{item.itemHide},
#{item.creator},
#{item.tenantKey},
#{item.createTime},
#{item.updateTime},
0
)
</foreach>
</insert>
<update id="deleteByGroupIds">
UPDATE hrsa_salary_sob_item

View File

@ -2,6 +2,7 @@ package com.engine.salary.service.impl;
import com.engine.common.util.ServiceUtil;
import com.engine.core.impl.Service;
import com.engine.hrmelog.entity.dto.LoggerContext;
import com.engine.salary.biz.SalarySobBiz;
import com.engine.salary.biz.SalarySobItemBiz;
import com.engine.salary.biz.SalarySobItemGroupBiz;
@ -9,9 +10,8 @@ import com.engine.salary.biz.SalarySobItemHideBiz;
import com.engine.salary.config.SalaryElogConfig;
import com.engine.salary.constant.SalaryDefaultTenantConstant;
import com.engine.salary.entity.salaryacct.bo.SalaryAcctCalculatePriorityBO;
import com.engine.salary.entity.salaryacct.po.SalaryAcctResultPO;
import com.engine.hrmelog.entity.dto.LoggerContext;
import com.engine.salary.entity.salaryacct.bo.SalaryAcctConfig;
import com.engine.salary.entity.salaryacct.po.SalaryAcctResultPO;
import com.engine.salary.entity.salaryformula.ExpressFormula;
import com.engine.salary.entity.salaryformula.po.FormulaVar;
import com.engine.salary.entity.salaryitem.po.SalaryItemPO;
@ -380,6 +380,8 @@ public class SalarySobItemServiceImpl extends Service implements SalarySobItemSe
Date now = new Date();
Long salarySobId = saveParam.getSalarySobId();
SalarySobPO sob = salarySobBiz.getById(salarySobId);
String incomeCategory = sob.getIncomeCategory() == null ? "1" : sob.getIncomeCategory().toString();
List<SalarySobItemSaveParam.SalarySobItemGroupParam> itemGroups = saveParam.getItemGroups();
List<Long> newGroupIds = SalaryEntityUtil.properties(itemGroups, SalarySobItemSaveParam.SalarySobItemGroupParam::getId, Collectors.toList());
List<SalarySobItemGroupPO> salarySobItemGroupPOS = getSalarySobItemGroupService(user).listBySalarySobId(salarySobId);
@ -405,6 +407,7 @@ public class SalarySobItemServiceImpl extends Service implements SalarySobItemSe
SalaryItemPO salaryItemPO = checkItemExists(itemParam.getSalaryItemId(), salaryItemsMap);
SalarySobItemPO salarySobItemPO = SalarySobItemPO.builder()
.salarySobId(salarySobId)
.incomeCategory(incomeCategory)
.salaryItemId(itemParam.getSalaryItemId())
.salaryItemCode(salaryItemPO.getCode())
.salarySobItemGroupId(salarySobItemGroupId)
@ -447,6 +450,7 @@ public class SalarySobItemServiceImpl extends Service implements SalarySobItemSe
SalaryItemPO salaryItemPO = checkItemExists(itemParam.getSalaryItemId(), salaryItemsMap);
SalarySobItemPO salarySobItemPO = SalarySobItemPO.builder()
.salarySobId(salarySobId)
.incomeCategory(incomeCategory)
.salaryItemId(itemParam.getSalaryItemId())
.salaryItemCode(salaryItemPO.getCode())
.salarySobItemGroupId(groupId)
@ -471,6 +475,7 @@ public class SalarySobItemServiceImpl extends Service implements SalarySobItemSe
SalaryItemPO salaryItemPO = checkItemExists(itemParam.getSalaryItemId(), salaryItemsMap);
SalarySobItemPO salarySobItemPO = SalarySobItemPO.builder()
.id(itemParam.getId())
.incomeCategory(incomeCategory)
.salaryItemId(itemParam.getSalaryItemId())
.salaryItemCode(salaryItemPO.getCode())
.salarySobItemGroupId(groupId)
@ -510,13 +515,13 @@ public class SalarySobItemServiceImpl extends Service implements SalarySobItemSe
for (SalarySobItemSaveParam.SalarySobItemParam itemParam : needAddItems) {
SalaryItemPO salaryItemPO = checkItemExists(itemParam.getSalaryItemId(), salaryItemsMap);
SalarySobItemPO salarySobItemPO = SalarySobItemPO.builder().salarySobId(salarySobId).salaryItemId(itemParam.getSalaryItemId()).salaryItemCode(salaryItemPO.getCode()).salarySobItemGroupId(NumberUtils.LONG_ZERO).formulaId(Optional.ofNullable(itemParam.getFormulaId()).orElse(NumberUtils.LONG_ZERO)).sortedIndex(itemParam.getSortedIndex()).description(StringUtils.EMPTY).creator(employeeId).createTime(now).updateTime(now).deleteType(NumberUtils.INTEGER_ZERO).tenantKey(SalaryDefaultTenantConstant.DEFAULT_TENANT_KEY).canDelete(itemParam.getCanDelete() == null ? NumberUtils.INTEGER_ONE : (itemParam.getCanDelete() ? NumberUtils.INTEGER_ONE : NumberUtils.INTEGER_ZERO)).roundingMode(itemParam.getRoundingMode() == null ? salaryItemPO.getRoundingMode() : itemParam.getRoundingMode()).pattern(itemParam.getPattern() == null ? salaryItemPO.getPattern() : itemParam.getPattern()).valueType(itemParam.getValueType() == null ? salaryItemPO.getValueType() : itemParam.getValueType()).itemHide(itemParam.getItemHide()).build();
SalarySobItemPO salarySobItemPO = SalarySobItemPO.builder().salarySobId(salarySobId).incomeCategory(incomeCategory).salaryItemId(itemParam.getSalaryItemId()).salaryItemCode(salaryItemPO.getCode()).salarySobItemGroupId(NumberUtils.LONG_ZERO).formulaId(Optional.ofNullable(itemParam.getFormulaId()).orElse(NumberUtils.LONG_ZERO)).sortedIndex(itemParam.getSortedIndex()).description(StringUtils.EMPTY).creator(employeeId).createTime(now).updateTime(now).deleteType(NumberUtils.INTEGER_ZERO).tenantKey(SalaryDefaultTenantConstant.DEFAULT_TENANT_KEY).canDelete(itemParam.getCanDelete() == null ? NumberUtils.INTEGER_ONE : (itemParam.getCanDelete() ? NumberUtils.INTEGER_ONE : NumberUtils.INTEGER_ZERO)).roundingMode(itemParam.getRoundingMode() == null ? salaryItemPO.getRoundingMode() : itemParam.getRoundingMode()).pattern(itemParam.getPattern() == null ? salaryItemPO.getPattern() : itemParam.getPattern()).valueType(itemParam.getValueType() == null ? salaryItemPO.getValueType() : itemParam.getValueType()).itemHide(itemParam.getItemHide()).build();
salarySobItems.add(salarySobItemPO);
}
for (SalarySobItemSaveParam.SalarySobItemParam itemParam : needUpdateItems) {
SalaryItemPO salaryItemPO = checkItemExists(itemParam.getSalaryItemId(), salaryItemsMap);
SalarySobItemPO salarySobItemPO = SalarySobItemPO.builder().id(itemParam.getId()).formulaId(Optional.ofNullable(itemParam.getFormulaId()).orElse(NumberUtils.LONG_ZERO)).sortedIndex(itemParam.getSortedIndex()).updateTime(now).canDelete(itemParam.getCanDelete() == null ? NumberUtils.INTEGER_ONE : (itemParam.getCanDelete() ? NumberUtils.INTEGER_ONE : NumberUtils.INTEGER_ZERO)).roundingMode(itemParam.getRoundingMode() == null ? salaryItemPO.getRoundingMode() : itemParam.getRoundingMode()).pattern(itemParam.getPattern() == null ? salaryItemPO.getPattern() : itemParam.getPattern()).valueType(itemParam.getValueType() == null ? salaryItemPO.getValueType() : itemParam.getValueType()).itemHide(itemParam.getItemHide()).build();
SalarySobItemPO salarySobItemPO = SalarySobItemPO.builder().id(itemParam.getId()).incomeCategory(incomeCategory).formulaId(Optional.ofNullable(itemParam.getFormulaId()).orElse(NumberUtils.LONG_ZERO)).sortedIndex(itemParam.getSortedIndex()).updateTime(now).canDelete(itemParam.getCanDelete() == null ? NumberUtils.INTEGER_ONE : (itemParam.getCanDelete() ? NumberUtils.INTEGER_ONE : NumberUtils.INTEGER_ZERO)).roundingMode(itemParam.getRoundingMode() == null ? salaryItemPO.getRoundingMode() : itemParam.getRoundingMode()).pattern(itemParam.getPattern() == null ? salaryItemPO.getPattern() : itemParam.getPattern()).valueType(itemParam.getValueType() == null ? salaryItemPO.getValueType() : itemParam.getValueType()).itemHide(itemParam.getItemHide()).build();
getSalarySobItemMapper().updateIgnoreNull(salarySobItemPO);
}
@ -679,12 +684,12 @@ public class SalarySobItemServiceImpl extends Service implements SalarySobItemSe
// 查询薪资项目副本
List<SalarySobItemPO> salarySobItemPOS = listBySalarySobId(salarySobId);
// 查询薪资项目
List<Long> salaryItemIds = SalaryEntityUtil.properties(salarySobItemPOS, SalarySobItemPO::getSalaryItemId,Collectors.toList());
List<Long> salaryItemIds = SalaryEntityUtil.properties(salarySobItemPOS, SalarySobItemPO::getSalaryItemId, Collectors.toList());
List<SalaryItemPO> salaryItems = getSalaryItemService(user).listByIds(salaryItemIds);
// 查询公式详情
List<Long> formulaIds = SalaryEntityUtil.properties(salaryItems, SalaryItemPO::getFormulaId,Collectors.toList());
List<Long> formulaIds = SalaryEntityUtil.properties(salaryItems, SalaryItemPO::getFormulaId, Collectors.toList());
List<ExpressFormula> expressFormulas = getSalaryFormulaService(user).listExpressFormula(formulaIds);
SalaryAcctCalculatePriorityBO.calculatePriority(salarySobItemPOS,salaryItems,expressFormulas,new ArrayList<>(),new HashSet<>());
SalaryAcctCalculatePriorityBO.calculatePriority(salarySobItemPOS, salaryItems, expressFormulas, new ArrayList<>(), new HashSet<>());
}
/**

View File

@ -2,10 +2,10 @@ package com.engine.salary.service.impl;
import com.engine.common.util.ServiceUtil;
import com.engine.core.impl.Service;
import com.engine.hrmelog.entity.dto.LoggerContext;
import com.engine.salary.biz.*;
import com.engine.salary.config.SalaryElogConfig;
import com.engine.salary.constant.SalaryDefaultTenantConstant;
import com.engine.hrmelog.entity.dto.LoggerContext;
import com.engine.salary.entity.salaryBill.po.SalaryTemplatePO;
import com.engine.salary.entity.salaryacct.po.SalaryAcctRecordPO;
import com.engine.salary.entity.salaryitem.bo.SysSalaryItemBO;
@ -45,7 +45,6 @@ import com.engine.salary.util.valid.ValidUtil;
import com.google.common.collect.Lists;
import org.apache.commons.collections4.CollectionUtils;
import org.apache.commons.lang3.BooleanUtils;
import org.apache.commons.lang3.StringUtils;
import org.apache.commons.lang3.math.NumberUtils;
import org.springframework.beans.BeanUtils;
@ -405,13 +404,6 @@ public class SalarySobServiceImpl extends Service implements SalarySobService {
if (CollectionUtils.isNotEmpty(result.getNeedInsertSalarySobBackItems())) {
getSalarySobBackItemService(user).batchInsert(result.getNeedInsertSalarySobBackItems());
}
if (CollectionUtils.isNotEmpty(result.getNeedInsertItemHides())) {
//去重
List<SalarySobItemHidePO> list = new ArrayList<>(result.getNeedInsertItemHides().stream()
.collect(Collectors.toMap(SalarySobItemHidePO::getSalaryItemId, Function.identity(), (oldValue, newValue) -> oldValue))
.values());
salarySobItemService.batchInsertItemShow(list);
}
}
/**
@ -689,7 +681,7 @@ public class SalarySobServiceImpl extends Service implements SalarySobService {
// 查询薪资账套的员工信息字段
List<SalarySobEmpFieldPO> salarySobEmpFieldPOS = salarySobEmpFieldService.listSome(SalarySobEmpFieldPO.builder().salarySobId(duplicateParam.getId()).build());
// 查询薪资账套的薪资项目副本
List<SalarySobItemPO> salarySobItemPOS = salarySobItemService.listBySalarySobIdWithHideItem(SalarySobItemPO.builder().salarySobId(duplicateParam.getId()).build());
List<SalarySobItemPO> salarySobItemPOS = salarySobItemService.listSome(SalarySobItemPO.builder().salarySobId(duplicateParam.getId()).build());
// 薪资项目副本去重
salarySobItemPOS = salarySobItemPOS.stream().filter(SalaryEntityUtil.distinctByKey(PO -> PO.getSalarySobId() + "-" + PO.getSalaryItemId())).collect(Collectors.toList());
// 查询薪资账套的薪资项目分类
@ -739,60 +731,12 @@ public class SalarySobServiceImpl extends Service implements SalarySobService {
getSalarySobBackItemService(user).batchInsert(result.getSalarySobBackItems());
}
// 复制薪资账套的薪资项目隐藏副本
if (CollectionUtils.isNotEmpty(result.getSalarySobItems())) {
List<SalarySobItemPO> salarySobItems = result.getSalarySobItems();
Date now = new Date();
salarySobItems.stream().forEach(k -> {
Long salarySobItemShowId = IdGenerator.generate();
SalarySobItemHidePO salarySobItemHidePO = SalarySobItemHidePO.builder()
.id(salarySobItemShowId)
.salarySobId(k.getSalarySobId())
.salaryItemId(k.getSalaryItemId())
.isGroup(0)
.itemHide(k.getItemHide())
.creator((long) user.getUID())
.deleteType(NumberUtils.INTEGER_ZERO)
.createTime(now)
.updateTime(now)
.tenantKey(SalaryDefaultTenantConstant.DEFAULT_TENANT_KEY)
.build();
if (k.getItemHide() == null) {
salarySobItemHidePO.setItemHide(Long.valueOf(0));
}
salarySobItemService.InsertItemShow(salarySobItemHidePO);
});
}
// 复制薪资账套的薪资项目分类
if (CollectionUtils.isNotEmpty(result.getSalarySobItemGroups())) {
salarySobItemGroupService.batchInsert(result.getSalarySobItemGroups());
}
// 复制薪资账套的薪资项目分类隐藏信息
if (CollectionUtils.isNotEmpty(result.getSalarySobItemGroups())) {
List<SalarySobItemGroupPO> salarySobItemGroups = result.getSalarySobItemGroups();
Date now = new Date();
salarySobItemGroups.stream().forEach(k -> {
Long salarySobItemShowId = IdGenerator.generate();
SalarySobItemHidePO salarySobItemHidePO = SalarySobItemHidePO.builder()
.id(salarySobItemShowId)
.salarySobId(k.getSalarySobId())
.salaryItemId(k.getId())
.isGroup(1)
.itemHide(k.getItemHide())
.creator((long) user.getUID())
.deleteType(NumberUtils.INTEGER_ZERO)
.createTime(now)
.updateTime(now)
.tenantKey(SalaryDefaultTenantConstant.DEFAULT_TENANT_KEY)
.build();
if (k.getItemHide() == null) {
salarySobItemHidePO.setItemHide(Long.valueOf(0));
}
salarySobItemService.InsertItemShow(salarySobItemHidePO);
});
}
// 复制薪资账套的调薪计薪规则
if (CollectionUtils.isNotEmpty(result.getSalaryAdjustmentRules())) {