账套群组保持不变
This commit is contained in:
parent
258c880543
commit
2c37086e70
|
|
@ -28,7 +28,7 @@ public class SalarySobEmpFieldBiz {
|
|||
}
|
||||
|
||||
public void batchInsert(Collection<SalarySobEmpFieldPO> salarySobEmpFieldPOS) {
|
||||
if(CollectionUtils.isEmpty(salarySobEmpFieldPOS)){
|
||||
if (CollectionUtils.isEmpty(salarySobEmpFieldPOS)) {
|
||||
return;
|
||||
}
|
||||
SqlSession sqlSession = MyBatisFactory.sqlSessionFactory.openSession();
|
||||
|
|
@ -54,7 +54,6 @@ public class SalarySobEmpFieldBiz {
|
|||
}
|
||||
|
||||
|
||||
|
||||
//---------------------------系统默认员工信息字段-----------------------------------
|
||||
|
||||
public List<SalarySobDefaultEmpFieldPO> listDefaultEmpField() {
|
||||
|
|
@ -68,4 +67,19 @@ public class SalarySobEmpFieldBiz {
|
|||
}
|
||||
|
||||
|
||||
public void deleteByIds(Collection<Long> ids) {
|
||||
|
||||
if (CollectionUtils.isEmpty(ids)) {
|
||||
return;
|
||||
}
|
||||
|
||||
SqlSession sqlSession = MyBatisFactory.sqlSessionFactory.openSession();
|
||||
try {
|
||||
SalarySobDefaultEmpFieldMapper mapper = sqlSession.getMapper(SalarySobDefaultEmpFieldMapper.class);
|
||||
mapper.deleteByIds(ids);
|
||||
sqlSession.commit();
|
||||
} finally {
|
||||
sqlSession.close();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -45,7 +45,7 @@ public class SalarySobItemBiz {
|
|||
|
||||
|
||||
public void batchInsert(Collection<SalarySobItemPO> salarySobItemPOS) {
|
||||
if(CollectionUtils.isEmpty(salarySobItemPOS)){
|
||||
if (CollectionUtils.isEmpty(salarySobItemPOS)) {
|
||||
return;
|
||||
}
|
||||
SqlSession sqlSession = MyBatisFactory.sqlSessionFactory.openSession();
|
||||
|
|
@ -83,7 +83,7 @@ public class SalarySobItemBiz {
|
|||
}
|
||||
|
||||
public void InsertItemShow(SalarySobItemHidePO salarySobItemHidePO) {
|
||||
if(salarySobItemHidePO == null){
|
||||
if (salarySobItemHidePO == null) {
|
||||
return;
|
||||
}
|
||||
SqlSession sqlSession = MyBatisFactory.sqlSessionFactory.openSession();
|
||||
|
|
@ -100,11 +100,44 @@ public class SalarySobItemBiz {
|
|||
SqlSession sqlSession = MyBatisFactory.sqlSessionFactory.openSession();
|
||||
try {
|
||||
SalarySobItemMapper mapper = sqlSession.getMapper(SalarySobItemMapper.class);
|
||||
return mapper.listBySalarySobIdAndGroupId(salarySobId,salarySobItemGroupIds);
|
||||
return mapper.listBySalarySobIdAndGroupId(salarySobId, salarySobItemGroupIds);
|
||||
} finally {
|
||||
sqlSession.close();
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
public void deleteByIds(List<Long> ids) {
|
||||
|
||||
if (CollectionUtils.isEmpty(ids)) {
|
||||
return;
|
||||
}
|
||||
|
||||
SqlSession sqlSession = MyBatisFactory.sqlSessionFactory.openSession();
|
||||
try {
|
||||
SalarySobItemMapper mapper = sqlSession.getMapper(SalarySobItemMapper.class);
|
||||
mapper.deleteByIds(ids);
|
||||
sqlSession.commit();
|
||||
} finally {
|
||||
sqlSession.close();
|
||||
}
|
||||
}
|
||||
|
||||
public void deleteByGroupIds(List<Long> needDeleteGroupIds) {
|
||||
if (CollectionUtils.isEmpty(needDeleteGroupIds)) {
|
||||
return;
|
||||
}
|
||||
|
||||
SqlSession sqlSession = MyBatisFactory.sqlSessionFactory.openSession();
|
||||
try {
|
||||
SalarySobItemMapper mapper = sqlSession.getMapper(SalarySobItemMapper.class);
|
||||
mapper.deleteByGroupIds(needDeleteGroupIds);
|
||||
sqlSession.commit();
|
||||
} finally {
|
||||
sqlSession.close();
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
|
|
|||
|
|
@ -2,6 +2,7 @@ package com.engine.salary.biz;
|
|||
|
||||
import com.engine.salary.entity.salarysob.po.SalarySobItemGroupPO;
|
||||
import com.engine.salary.mapper.salarysob.SalarySobItemGroupMapper;
|
||||
import org.apache.commons.collections.CollectionUtils;
|
||||
import org.apache.ibatis.session.SqlSession;
|
||||
import weaver.conn.mybatis.MyBatisFactory;
|
||||
|
||||
|
|
@ -72,4 +73,31 @@ public class SalarySobItemGroupBiz {
|
|||
sqlSession.close();
|
||||
}
|
||||
}
|
||||
|
||||
public void deleteByIds(List<Long> ids) {
|
||||
|
||||
if (CollectionUtils.isEmpty(ids)) {
|
||||
return;
|
||||
}
|
||||
|
||||
SqlSession sqlSession = MyBatisFactory.sqlSessionFactory.openSession();
|
||||
try {
|
||||
SalarySobItemGroupMapper mapper = sqlSession.getMapper(SalarySobItemGroupMapper.class);
|
||||
mapper.deleteByIds(ids);
|
||||
sqlSession.commit();
|
||||
} finally {
|
||||
sqlSession.close();
|
||||
}
|
||||
}
|
||||
|
||||
public void update(SalarySobItemGroupPO po) {
|
||||
SqlSession sqlSession = MyBatisFactory.sqlSessionFactory.openSession();
|
||||
try {
|
||||
SalarySobItemGroupMapper mapper = sqlSession.getMapper(SalarySobItemGroupMapper.class);
|
||||
mapper.updateIgnoreNull(po);
|
||||
sqlSession.commit();
|
||||
} finally {
|
||||
sqlSession.close();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -30,4 +30,27 @@ public class SalarySobItemHideBiz {
|
|||
sqlSession.close();
|
||||
}
|
||||
}
|
||||
|
||||
public void update(SalarySobItemHidePO salarySobGroupItemHidePO) {
|
||||
SqlSession sqlSession = MyBatisFactory.sqlSessionFactory.openSession();
|
||||
try {
|
||||
SalarySobItemHideMapper mapper = sqlSession.getMapper(SalarySobItemHideMapper.class);
|
||||
mapper.update(salarySobGroupItemHidePO);
|
||||
sqlSession.commit();
|
||||
} finally {
|
||||
sqlSession.close();
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
public void updateByItemId(SalarySobItemHidePO salarySobGroupItemHidePO) {
|
||||
SqlSession sqlSession = MyBatisFactory.sqlSessionFactory.openSession();
|
||||
try {
|
||||
SalarySobItemHideMapper mapper = sqlSession.getMapper(SalarySobItemHideMapper.class);
|
||||
mapper.updateByItemId(salarySobGroupItemHidePO);
|
||||
sqlSession.commit();
|
||||
} finally {
|
||||
sqlSession.close();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1,7 +1,9 @@
|
|||
package com.engine.salary.mapper.salarysob;
|
||||
|
||||
import com.engine.salary.entity.salarysob.po.SalarySobDefaultEmpFieldPO;
|
||||
import org.apache.ibatis.annotations.Param;
|
||||
|
||||
import java.util.Collection;
|
||||
import java.util.List;
|
||||
|
||||
public interface SalarySobDefaultEmpFieldMapper {
|
||||
|
|
@ -60,5 +62,6 @@ public interface SalarySobDefaultEmpFieldMapper {
|
|||
* @return 返回影响行数
|
||||
*/
|
||||
int delete(SalarySobDefaultEmpFieldPO sobDefaultEmpField);
|
||||
|
||||
|
||||
void deleteByIds(@Param("ids") Collection<Long> ids);
|
||||
}
|
||||
|
|
@ -280,5 +280,15 @@
|
|||
AND delete_type = 0
|
||||
</delete>
|
||||
|
||||
<update id="deleteByIds">
|
||||
UPDATE hrsa_sob_default_emp_field
|
||||
SET delete_type = 1
|
||||
WHERE delete_type = 0
|
||||
AND id IN
|
||||
<foreach collection="ids" open="(" item="id" separator="," close=")">
|
||||
#{id}
|
||||
</foreach>
|
||||
</update>
|
||||
|
||||
|
||||
</mapper>
|
||||
|
|
@ -22,4 +22,10 @@ public interface SalarySobItemHideMapper {
|
|||
* @date 2022/9/22 9:14
|
||||
*/
|
||||
void deleteBySalarySobIds(@Param("ids") Collection<Long> ids);
|
||||
|
||||
void update(SalarySobItemHidePO salarySobPO);
|
||||
|
||||
|
||||
void updateByItemId(SalarySobItemHidePO salarySobGroupItemHidePO);
|
||||
|
||||
}
|
||||
|
|
|
|||
|
|
@ -23,6 +23,24 @@
|
|||
</select>
|
||||
|
||||
|
||||
<!-- 更新,更新全部字段 -->
|
||||
<update id="update" parameterType="com.engine.salary.entity.salarysob.po.SalarySobItemHidePO">
|
||||
UPDATE hrsa_salary_item_hide
|
||||
<set>
|
||||
item_hide=#{itemHide},
|
||||
update_time=#{updateTime}
|
||||
</set>
|
||||
WHERE id = #{id} AND delete_type = 0
|
||||
</update>
|
||||
|
||||
<!-- 更新,更新全部字段 -->
|
||||
<update id="updateByItemId" parameterType="com.engine.salary.entity.salarysob.po.SalarySobItemHidePO">
|
||||
UPDATE hrsa_salary_item_hide
|
||||
<set>
|
||||
item_hide=#{itemHide},
|
||||
update_time=#{updateTime}
|
||||
</set>
|
||||
WHERE salary_sob_id = #{salarySobId} AND salary_item_id= #{salaryItemId} AND delete_type = 0
|
||||
</update>
|
||||
|
||||
</mapper>
|
||||
|
|
@ -110,4 +110,7 @@ public interface SalarySobItemMapper {
|
|||
List<SalarySobItemPO> listBySalarySobIdAndGroupId(@Param("salarySobId") Long salarySobId,@Param("salarySobItemGroupIds") Collection<Long> salarySobItemGroupIds);
|
||||
|
||||
|
||||
void deleteByGroupIds(@Param("groupIds") List<Long> needDeleteGroupIds);
|
||||
|
||||
|
||||
}
|
||||
|
|
@ -435,5 +435,17 @@
|
|||
</insert>
|
||||
|
||||
|
||||
<update id="deleteByGroupIds">
|
||||
UPDATE hrsa_salary_sob_item
|
||||
SET delete_type = 1
|
||||
WHERE delete_type = 0
|
||||
AND salary_sob_item_group_id IN
|
||||
<foreach collection="groupIds" open="(" item="groupId" separator="," close=")">
|
||||
#{groupId}
|
||||
</foreach>
|
||||
</update>
|
||||
|
||||
|
||||
|
||||
|
||||
</mapper>
|
||||
|
|
@ -36,4 +36,6 @@ public interface SalarySobEmpFieldService {
|
|||
* @param salarySobIds 薪资账套id
|
||||
*/
|
||||
void deleteBySalarySobIds(Collection<Long> salarySobIds);
|
||||
|
||||
void deleteByIds(Collection<Long> ids);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -34,4 +34,9 @@ public class SalarySobEmpFieldServiceImpl extends Service implements SalarySobEm
|
|||
public void deleteBySalarySobIds(Collection<Long> salarySobIds) {
|
||||
salarySobEmpFieldMapper.deleteBySalarySobIds(salarySobIds);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void deleteByIds(Collection<Long> ids) {
|
||||
salarySobEmpFieldMapper.deleteByIds(ids);
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -5,6 +5,7 @@ import com.engine.core.impl.Service;
|
|||
import com.engine.salary.biz.SalarySobBiz;
|
||||
import com.engine.salary.biz.SalarySobItemBiz;
|
||||
import com.engine.salary.biz.SalarySobItemGroupBiz;
|
||||
import com.engine.salary.biz.SalarySobItemHideBiz;
|
||||
import com.engine.salary.constant.SalaryDefaultTenantConstant;
|
||||
import com.engine.salary.entity.salaryformula.ExpressFormula;
|
||||
import com.engine.salary.entity.salaryitem.po.SalaryItemPO;
|
||||
|
|
@ -13,9 +14,12 @@ import com.engine.salary.entity.salarysob.dto.SalarySobItemAggregateDTO;
|
|||
import com.engine.salary.entity.salarysob.param.SalarySobItemSaveParam;
|
||||
import com.engine.salary.entity.salarysob.po.*;
|
||||
import com.engine.salary.exception.SalaryRunTimeException;
|
||||
import com.engine.salary.mapper.salarysob.SalarySobEmpFieldMapper;
|
||||
import com.engine.salary.mapper.salarysob.SalarySobItemMapper;
|
||||
import com.engine.salary.service.*;
|
||||
import com.engine.salary.util.SalaryEntityUtil;
|
||||
import com.engine.salary.util.SalaryI18nUtil;
|
||||
import com.engine.salary.util.db.MapperProxyFactory;
|
||||
import com.engine.salary.util.valid.ValidUtil;
|
||||
import dm.jdbc.util.IdGenerator;
|
||||
import org.apache.commons.collections4.CollectionUtils;
|
||||
|
|
@ -41,6 +45,15 @@ public class SalarySobItemServiceImpl extends Service implements SalarySobItemSe
|
|||
private SalarySobBiz salarySobBiz = new SalarySobBiz();
|
||||
|
||||
private SalarySobItemGroupBiz salarySobItemGroupBiz = new SalarySobItemGroupBiz();
|
||||
private SalarySobItemHideBiz salarySobItemHideBiz = new SalarySobItemHideBiz();
|
||||
|
||||
private SalarySobEmpFieldMapper getSalarySobEmpFieldMapper() {
|
||||
return MapperProxyFactory.getProxy(SalarySobEmpFieldMapper.class);
|
||||
}
|
||||
|
||||
private SalarySobItemMapper getSalarySobItemMapper() {
|
||||
return MapperProxyFactory.getProxy(SalarySobItemMapper.class);
|
||||
}
|
||||
|
||||
private SalarySobEmpFieldService getSalarySobEmpFieldService(User user) {
|
||||
return (SalarySobEmpFieldService) ServiceUtil.getService(SalarySobEmpFieldServiceImpl.class, user);
|
||||
|
|
@ -83,8 +96,8 @@ public class SalarySobItemServiceImpl extends Service implements SalarySobItemSe
|
|||
}
|
||||
|
||||
@Override
|
||||
public List<SalarySobItemPO> listBySalarySobIdAndGroupId(Long salarySobId,Collection<Long> salarySobItemGroupIds) {
|
||||
return salarySobItemMapper.listBySalarySobIdAndGroupId(salarySobId,salarySobItemGroupIds);
|
||||
public List<SalarySobItemPO> listBySalarySobIdAndGroupId(Long salarySobId, Collection<Long> salarySobItemGroupIds) {
|
||||
return salarySobItemMapper.listBySalarySobIdAndGroupId(salarySobId, salarySobItemGroupIds);
|
||||
}
|
||||
|
||||
@Override
|
||||
|
|
@ -129,13 +142,13 @@ public class SalarySobItemServiceImpl extends Service implements SalarySobItemSe
|
|||
// 查询薪资账套的薪资项目分类
|
||||
List<SalarySobItemGroupPO> salarySobItemGroupPOS = getSalarySobItemGroupService(user).listBySalarySobIdWithItemHide(salarySobId);
|
||||
// 查询薪资账套的薪资项目副本
|
||||
List<SalarySobItemPO> salarySobItemPOS =listBySalarySobIdWithHideItem(salarySobId);
|
||||
List<SalarySobItemPO> salarySobItemPOS = listBySalarySobIdWithHideItem(salarySobId);
|
||||
// 回算薪资项目
|
||||
List<SalarySobBackItemPO> salarySobBackItems = getSalarySobBackItemService(user).listBySalarySobId(salarySobId);
|
||||
// 薪资账套的薪资项目副本所用的公式id
|
||||
Set<Long> formulaIds = SalaryEntityUtil.properties(salarySobItemPOS, SalarySobItemPO::getFormulaId);
|
||||
// 添加薪资回算项目的公式id
|
||||
formulaIds.addAll(SalaryEntityUtil.properties(salarySobBackItems,SalarySobBackItemPO::getFormulaId));
|
||||
formulaIds.addAll(SalaryEntityUtil.properties(salarySobBackItems, SalarySobBackItemPO::getFormulaId));
|
||||
// 查询公式详情
|
||||
List<ExpressFormula> expressFormulas = getSalaryFormulaService(user).listExpressFormula(formulaIds);
|
||||
// 查询薪资账套的薪资项目副本+回算的薪资项目所关联的薪资项目
|
||||
|
|
@ -161,7 +174,7 @@ public class SalarySobItemServiceImpl extends Service implements SalarySobItemSe
|
|||
// 查询薪资账套的薪资项目分类
|
||||
List<SalarySobItemGroupPO> salarySobItemGroupPOS = getSalarySobItemGroupService(user).listBySalarySobIdWithItemHide(salarySobId);
|
||||
|
||||
if(isBackCalc){
|
||||
if (isBackCalc) {
|
||||
// 回算分类
|
||||
|
||||
}
|
||||
|
|
@ -173,7 +186,7 @@ public class SalarySobItemServiceImpl extends Service implements SalarySobItemSe
|
|||
List<Long> salarySobItemGroupIds = salarySobItemGroupPOS.stream().map(SalarySobItemGroupPO::getId).collect(Collectors.toList());
|
||||
|
||||
// 查询薪资账套的薪资项目副本(已经过滤关闭分类显示按钮的薪资项目)
|
||||
List<SalarySobItemPO> salarySobItemPOS = listBySalarySobIdAndGroupId(salarySobId,salarySobItemGroupIds);
|
||||
List<SalarySobItemPO> salarySobItemPOS = listBySalarySobIdAndGroupId(salarySobId, salarySobItemGroupIds);
|
||||
|
||||
// 获取关闭显示的薪资项目
|
||||
List<Long> hideItemIDs = getSalarySobItemHideService(user).listHideGroupBysalarySobId(SalarySobItemHidePO.builder().salarySobId(salarySobId).isGroup(0).build());
|
||||
|
|
@ -181,7 +194,7 @@ public class SalarySobItemServiceImpl extends Service implements SalarySobItemSe
|
|||
|
||||
// 回算薪资项目
|
||||
List<SalarySobBackItemPO> salarySobBackItems = Collections.emptyList();
|
||||
if(isBackCalc){
|
||||
if (isBackCalc) {
|
||||
salarySobBackItems = getSalarySobBackItemService(user).listBySalarySobId(salarySobId);
|
||||
}
|
||||
|
||||
|
|
@ -199,7 +212,7 @@ public class SalarySobItemServiceImpl extends Service implements SalarySobItemSe
|
|||
|
||||
// 转换成聚合dto
|
||||
SalarySobItemAggregateBO salarySobItemAggregateBO = new SalarySobItemAggregateBO(salarySobPO, salarySobEmpFieldPOS,
|
||||
salarySobItemGroupPOS, salarySobItemPOS, expressFormulas, salaryItemPOS,salarySobBackItems);
|
||||
salarySobItemGroupPOS, salarySobItemPOS, expressFormulas, salaryItemPOS, salarySobBackItems);
|
||||
return salarySobItemAggregateBO.convert2AggregateDTO();
|
||||
}
|
||||
|
||||
|
|
@ -244,27 +257,26 @@ public class SalarySobItemServiceImpl extends Service implements SalarySobItemSe
|
|||
|
||||
//员工信息字段不可重复
|
||||
List<SalarySobItemSaveParam.SalarySobEmpFieldParam> empFields = saveParam.getEmpFields();
|
||||
if(CollectionUtils.isNotEmpty(empFields)){
|
||||
int count = (int)SalaryEntityUtil.properties(empFields, SalarySobItemSaveParam.SalarySobEmpFieldParam::getFieldId).stream().distinct().count();
|
||||
if(count < empFields.size()){
|
||||
if (CollectionUtils.isNotEmpty(empFields)) {
|
||||
int count = (int) SalaryEntityUtil.properties(empFields, SalarySobItemSaveParam.SalarySobEmpFieldParam::getFieldId).stream().distinct().count();
|
||||
if (count < empFields.size()) {
|
||||
throw new SalaryRunTimeException(SalaryI18nUtil.getI18nLabel(98379, "分类名称重复!"));
|
||||
}
|
||||
}else {
|
||||
} else {
|
||||
throw new SalaryRunTimeException(SalaryI18nUtil.getI18nLabel(98379, "员工信息不能为空!"));
|
||||
}
|
||||
|
||||
//分类名称唯一
|
||||
List<SalarySobItemSaveParam.SalarySobItemGroupParam> itemGroups = saveParam.getItemGroups();
|
||||
if(CollectionUtils.isNotEmpty(itemGroups)){
|
||||
int count = (int)SalaryEntityUtil.properties(itemGroups, SalarySobItemSaveParam.SalarySobItemGroupParam::getName).stream().distinct().count();
|
||||
if(count < itemGroups.size()){
|
||||
if (CollectionUtils.isNotEmpty(itemGroups)) {
|
||||
int count = (int) SalaryEntityUtil.properties(itemGroups, SalarySobItemSaveParam.SalarySobItemGroupParam::getName).stream().distinct().count();
|
||||
if (count < itemGroups.size()) {
|
||||
throw new SalaryRunTimeException(SalaryI18nUtil.getI18nLabel(98379, "分类名称重复!"));
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
/**
|
||||
* 清楚原相关数据
|
||||
*
|
||||
|
|
@ -272,11 +284,11 @@ public class SalarySobItemServiceImpl extends Service implements SalarySobItemSe
|
|||
*/
|
||||
private void cleanOldData(Long salarySobId) {
|
||||
// 删除薪资账套的员工信息字段
|
||||
getSalarySobEmpFieldService(user).deleteBySalarySobIds(Collections.singleton(salarySobId));
|
||||
// getSalarySobEmpFieldService(user).deleteBySalarySobIds(Collections.singleton(salarySobId));
|
||||
// 删除薪资账套的薪资项目副本
|
||||
deleteBySalarySobIds(Collections.singleton(salarySobId));
|
||||
// deleteBySalarySobIds(Collections.singleton(salarySobId));
|
||||
// 删除薪资账套的薪资项目分类
|
||||
getSalarySobItemGroupService(user).deleteBySalarySobIds(Collections.singleton(salarySobId));
|
||||
// getSalarySobItemGroupService(user).deleteBySalarySobIds(Collections.singleton(salarySobId));
|
||||
// 删除薪资项目是否显示
|
||||
deleteItemShowBySalarySobIds(Collections.singleton(salarySobId));
|
||||
|
||||
|
|
@ -288,39 +300,35 @@ public class SalarySobItemServiceImpl extends Service implements SalarySobItemSe
|
|||
* @param saveParam
|
||||
*/
|
||||
private void saveSobItem(SalarySobItemSaveParam saveParam) {
|
||||
//处理人员信息字段
|
||||
handleEmpField(saveParam);
|
||||
|
||||
//分组和薪资项
|
||||
handleGroupAndItem(saveParam);
|
||||
}
|
||||
|
||||
private void handleGroupAndItem(SalarySobItemSaveParam saveParam) {
|
||||
long employeeId = (long) user.getUID();
|
||||
Date now = new Date();
|
||||
Long salarySobId = saveParam.getSalarySobId();
|
||||
|
||||
// 保存薪资账套的员工信息字段
|
||||
Collection<SalarySobEmpFieldPO> needInsertSalarySobEmpFields = new ArrayList<>();
|
||||
for (SalarySobItemSaveParam.SalarySobEmpFieldParam salarySobEmpFieldParam : saveParam.getEmpFields()) {
|
||||
SalarySobEmpFieldPO salarySobEmpFieldPO = SalarySobEmpFieldPO.builder()
|
||||
.salarySobId(saveParam.getSalarySobId())
|
||||
.fieldCode(salarySobEmpFieldParam.getFieldId())
|
||||
.sortedIndex(salarySobEmpFieldParam.getSortedIndex())
|
||||
.canDelete(salarySobEmpFieldParam.getCanDelete() ? NumberUtils.INTEGER_ONE : NumberUtils.INTEGER_ZERO)
|
||||
.creator(employeeId)
|
||||
.createTime(now)
|
||||
.updateTime(now)
|
||||
.deleteType(NumberUtils.INTEGER_ZERO)
|
||||
.tenantKey(SalaryDefaultTenantConstant.DEFAULT_TENANT_KEY)
|
||||
.build();
|
||||
needInsertSalarySobEmpFields.add(salarySobEmpFieldPO);
|
||||
}
|
||||
getSalarySobEmpFieldService(user).batchSave(needInsertSalarySobEmpFields);
|
||||
|
||||
List<SalarySobItemSaveParam.SalarySobItemGroupParam> itemGroups = saveParam.getItemGroups();
|
||||
List<Long> newGroupIds = SalaryEntityUtil.properties(itemGroups, SalarySobItemSaveParam.SalarySobItemGroupParam::getId, Collectors.toList());
|
||||
List<SalarySobItemGroupPO> salarySobItemGroupPOS = getSalarySobItemGroupService(user).listBySalarySobId(salarySobId);
|
||||
List<Long> oldGroupIds = SalaryEntityUtil.properties(salarySobItemGroupPOS, SalarySobItemGroupPO::getId, Collectors.toList());
|
||||
List<SalarySobItemSaveParam.SalarySobItemGroupParam> needAddGroup = itemGroups.stream().filter(f -> f.getId() == null).collect(Collectors.toList());
|
||||
List<SalarySobItemSaveParam.SalarySobItemGroupParam> needUpdateGroup = itemGroups.stream().filter(f -> f.getId() != null && oldGroupIds.contains(f.getId())).collect(Collectors.toList());
|
||||
List<Long> needDeleteGroupIds = oldGroupIds.stream().filter(f -> !newGroupIds.contains(f)).collect(Collectors.toList());
|
||||
|
||||
//先保存项目分类获,取分类id
|
||||
Collection<SalarySobItemPO> salarySobItems = new ArrayList<>();
|
||||
int sortedIndex = 0;
|
||||
for (SalarySobItemSaveParam.SalarySobItemGroupParam itemGroupParam : saveParam.getItemGroups()) {
|
||||
for (SalarySobItemSaveParam.SalarySobItemGroupParam itemGroupParam : needAddGroup) {
|
||||
Long salarySobItemGroupId = IdGenerator.generate();
|
||||
SalarySobItemGroupPO salarySobItemGroupPO = SalarySobItemGroupPO.builder()
|
||||
.id(salarySobItemGroupId)
|
||||
.salarySobId(salarySobId)
|
||||
.name(itemGroupParam.getName())
|
||||
.sortedIndex(sortedIndex++)
|
||||
.sortedIndex(itemGroupParam.getSortedIndex())
|
||||
.description(StringUtils.EMPTY)
|
||||
.creator(employeeId)
|
||||
.createTime(now)
|
||||
|
|
@ -346,17 +354,12 @@ public class SalarySobItemServiceImpl extends Service implements SalarySobItemSe
|
|||
.deleteType(NumberUtils.INTEGER_ZERO)
|
||||
.tenantKey(SalaryDefaultTenantConstant.DEFAULT_TENANT_KEY)
|
||||
.build();
|
||||
if(itemGroupParam.getItemHide()==null){
|
||||
if (itemGroupParam.getItemHide() == null) {
|
||||
salarySobGroupItemHidePO.setItemHide(Long.valueOf(0));
|
||||
}
|
||||
salarySobItemMapper.InsertItemShow(salarySobGroupItemHidePO);
|
||||
|
||||
|
||||
// //获取分类id
|
||||
// List<SalarySobItemGroupPO> salarySobItemGroupPOS = salarySobItemGroupBiz.listSome(SalarySobItemGroupPO.builder().salarySobId(salarySobId).name(itemGroupParam.getName()).build());
|
||||
// Long salarySobItemGroupId = salarySobItemGroupPOS.get(0).getId();
|
||||
|
||||
|
||||
for (SalarySobItemSaveParam.SalarySobItemParam itemParam : itemGroupParam.getItems()) {
|
||||
SalarySobItemPO salarySobItemPO = SalarySobItemPO.builder()
|
||||
.salarySobId(salarySobId)
|
||||
|
|
@ -394,7 +397,127 @@ public class SalarySobItemServiceImpl extends Service implements SalarySobItemSe
|
|||
}
|
||||
|
||||
|
||||
for (SalarySobItemSaveParam.SalarySobItemParam itemParam : saveParam.getItems()) {
|
||||
//更新分组
|
||||
for (SalarySobItemSaveParam.SalarySobItemGroupParam itemGroupParam : needUpdateGroup) {
|
||||
Long groupId = itemGroupParam.getId();
|
||||
SalarySobItemGroupPO salarySobItemGroupPO = SalarySobItemGroupPO.builder()
|
||||
.id(groupId)
|
||||
.name(itemGroupParam.getName())
|
||||
.sortedIndex(itemGroupParam.getSortedIndex())
|
||||
.build();
|
||||
//更新分类
|
||||
salarySobItemGroupBiz.update(salarySobItemGroupPO);
|
||||
|
||||
// 保存薪资项目分类 字段显隐
|
||||
Long salarySobGroupItemShowId = IdGenerator.generate();
|
||||
SalarySobItemHidePO salarySobGroupItemHidePO = SalarySobItemHidePO.builder()
|
||||
.id(salarySobGroupItemShowId)
|
||||
.salarySobId(salarySobId)
|
||||
.salaryItemId(groupId)
|
||||
.isGroup(1)
|
||||
.itemHide(itemGroupParam.getItemHide())
|
||||
.creator(employeeId)
|
||||
.createTime(now)
|
||||
.updateTime(now)
|
||||
.deleteType(NumberUtils.INTEGER_ZERO)
|
||||
.tenantKey(SalaryDefaultTenantConstant.DEFAULT_TENANT_KEY)
|
||||
.build();
|
||||
if (itemGroupParam.getItemHide() == null) {
|
||||
salarySobGroupItemHidePO.setItemHide(Long.valueOf(0));
|
||||
}
|
||||
salarySobItemMapper.InsertItemShow(salarySobGroupItemHidePO);
|
||||
|
||||
|
||||
List<SalarySobItemSaveParam.SalarySobItemParam> items = itemGroupParam.getItems();
|
||||
List<Long> itemIds = SalaryEntityUtil.properties(items, SalarySobItemSaveParam.SalarySobItemParam::getId, Collectors.toList());
|
||||
List<SalarySobItemPO> oldItems = salarySobItemMapper.listBySalarySobIdAndGroupId(salarySobId, Collections.singleton(groupId));
|
||||
List<Long> oldItemIds = SalaryEntityUtil.properties(oldItems, SalarySobItemPO::getId, Collectors.toList());
|
||||
List<SalarySobItemSaveParam.SalarySobItemParam> needAddItems = items.stream().filter(f -> f.getId() == null).collect(Collectors.toList());
|
||||
List<Long> needDeleteItemIds = oldItems.stream().filter(f -> !itemIds.contains(f.getId())).map(SalarySobItemPO::getId).collect(Collectors.toList());
|
||||
List<SalarySobItemSaveParam.SalarySobItemParam> needUpdateItems = items.stream().filter(f -> f.getId() != null && oldItemIds.contains(f.getId())).collect(Collectors.toList());
|
||||
|
||||
//新增
|
||||
for (SalarySobItemSaveParam.SalarySobItemParam itemParam : needAddItems) {
|
||||
SalarySobItemPO salarySobItemPO = SalarySobItemPO.builder()
|
||||
.salarySobId(salarySobId)
|
||||
.salaryItemId(itemParam.getSalaryItemId())
|
||||
.salarySobItemGroupId(groupId)
|
||||
.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)
|
||||
.build();
|
||||
salarySobItems.add(salarySobItemPO);
|
||||
|
||||
// 保存薪资项目是否展示
|
||||
Long salarySobItemShowId = IdGenerator.generate();
|
||||
SalarySobItemHidePO salarySobItemHidePO = SalarySobItemHidePO.builder()
|
||||
.id(salarySobItemShowId)
|
||||
.salarySobId(salarySobId)
|
||||
.salaryItemId(itemParam.getSalaryItemId())
|
||||
.isGroup(0)
|
||||
.itemHide(itemParam.getItemHide())
|
||||
.creator(employeeId)
|
||||
.createTime(now)
|
||||
.updateTime(now)
|
||||
.deleteType(NumberUtils.INTEGER_ZERO)
|
||||
.tenantKey(SalaryDefaultTenantConstant.DEFAULT_TENANT_KEY)
|
||||
.build();
|
||||
salarySobItemMapper.InsertItemShow(salarySobItemHidePO);
|
||||
}
|
||||
//更新
|
||||
for (SalarySobItemSaveParam.SalarySobItemParam itemParam : needUpdateItems) {
|
||||
SalarySobItemPO salarySobItemPO = SalarySobItemPO.builder()
|
||||
.id(itemParam.getId())
|
||||
.salaryItemId(itemParam.getSalaryItemId())
|
||||
.salarySobItemGroupId(groupId)
|
||||
.formulaId(Optional.ofNullable(itemParam.getFormulaId()).orElse(NumberUtils.LONG_ZERO))
|
||||
.sortedIndex(itemParam.getSortedIndex())
|
||||
.updateTime(now)
|
||||
.deleteType(NumberUtils.INTEGER_ZERO)
|
||||
.build();
|
||||
getSalarySobItemMapper().updateIgnoreNull(salarySobItemPO);
|
||||
// 保存薪资项目是否展示
|
||||
Long salarySobItemShowId = IdGenerator.generate();
|
||||
SalarySobItemHidePO salarySobItemHidePO = SalarySobItemHidePO.builder()
|
||||
.id(salarySobItemShowId)
|
||||
.salarySobId(salarySobId)
|
||||
.salaryItemId(itemParam.getSalaryItemId())
|
||||
.isGroup(0)
|
||||
.itemHide(itemParam.getItemHide())
|
||||
.creator(employeeId)
|
||||
.createTime(now)
|
||||
.updateTime(now)
|
||||
.deleteType(NumberUtils.INTEGER_ZERO)
|
||||
.tenantKey(SalaryDefaultTenantConstant.DEFAULT_TENANT_KEY)
|
||||
.build();
|
||||
salarySobItemMapper.InsertItemShow(salarySobItemHidePO);
|
||||
}
|
||||
|
||||
|
||||
//删除
|
||||
salarySobItemMapper.deleteByIds(needDeleteItemIds);
|
||||
|
||||
}
|
||||
|
||||
//删除分组
|
||||
salarySobItemGroupBiz.deleteByIds(needDeleteGroupIds);
|
||||
salarySobItemMapper.deleteByGroupIds(needDeleteGroupIds);
|
||||
|
||||
|
||||
List<SalarySobItemSaveParam.SalarySobItemParam> items = saveParam.getItems();
|
||||
List<Long> itemIds = SalaryEntityUtil.properties(items, SalarySobItemSaveParam.SalarySobItemParam::getId, Collectors.toList());
|
||||
List<SalarySobItemPO> oldItems = salarySobItemMapper.listBySalarySobIdAndGroupId(salarySobId, Collections.singleton(0L));
|
||||
List<Long> oldItemIds = SalaryEntityUtil.properties(oldItems, SalarySobItemPO::getId, Collectors.toList());
|
||||
List<SalarySobItemSaveParam.SalarySobItemParam> needAddItems = items.stream().filter(f -> f.getId() == null).collect(Collectors.toList());
|
||||
List<Long> needDeleteItemIds = oldItems.stream().filter(f -> !itemIds.contains(f.getId())).map(SalarySobItemPO::getId).collect(Collectors.toList());
|
||||
List<SalarySobItemSaveParam.SalarySobItemParam> needUpdateItems = items.stream().filter(f -> f.getId() != null && oldItemIds.contains(f.getId())).collect(Collectors.toList());
|
||||
|
||||
for (SalarySobItemSaveParam.SalarySobItemParam itemParam : needAddItems) {
|
||||
|
||||
SalarySobItemPO salarySobItemPO = SalarySobItemPO.builder()
|
||||
.salarySobId(salarySobId)
|
||||
.salaryItemId(itemParam.getSalaryItemId())
|
||||
|
|
@ -428,10 +551,83 @@ public class SalarySobItemServiceImpl extends Service implements SalarySobItemSe
|
|||
salarySobItemMapper.InsertItemShow(salarySobItemHidePO);
|
||||
}
|
||||
|
||||
for (SalarySobItemSaveParam.SalarySobItemParam itemParam : needUpdateItems) {
|
||||
|
||||
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))
|
||||
.build();
|
||||
getSalarySobItemMapper().updateIgnoreNull(salarySobItemPO);
|
||||
|
||||
// 保存未分类薪资项目是否展示
|
||||
Long salarySobItemShowId = IdGenerator.generate();
|
||||
SalarySobItemHidePO salarySobItemHidePO = SalarySobItemHidePO.builder()
|
||||
.id(salarySobItemShowId)
|
||||
.salarySobId(salarySobId)
|
||||
.salaryItemId(itemParam.getSalaryItemId())
|
||||
.isGroup(0)
|
||||
.itemHide(itemParam.getItemHide())
|
||||
.creator(employeeId)
|
||||
.createTime(now)
|
||||
.updateTime(now)
|
||||
.deleteType(NumberUtils.INTEGER_ZERO)
|
||||
.tenantKey(SalaryDefaultTenantConstant.DEFAULT_TENANT_KEY)
|
||||
.build();
|
||||
salarySobItemMapper.InsertItemShow(salarySobItemHidePO);
|
||||
}
|
||||
|
||||
if (CollectionUtils.isNotEmpty(needDeleteItemIds)) {
|
||||
getSalarySobItemMapper().deleteByIds(needDeleteItemIds);
|
||||
}
|
||||
|
||||
// 保存薪资账套的薪资项目副本
|
||||
batchSave(salarySobItems);
|
||||
}
|
||||
|
||||
private void handleEmpField(SalarySobItemSaveParam saveParam) {
|
||||
long employeeId = (long) user.getUID();
|
||||
Date now = new Date();
|
||||
Long salarySobId = saveParam.getSalarySobId();
|
||||
|
||||
List<SalarySobItemSaveParam.SalarySobEmpFieldParam> empFields = saveParam.getEmpFields();
|
||||
List<Long> newEmpIds = SalaryEntityUtil.properties(empFields, SalarySobItemSaveParam.SalarySobEmpFieldParam::getId, Collectors.toList());
|
||||
List<SalarySobEmpFieldPO> salarySobEmpFieldPOS = getSalarySobEmpFieldService(user).listBySalarySobId(salarySobId);
|
||||
List<Long> needDeleteEmpIds = salarySobEmpFieldPOS.stream().filter(f -> !newEmpIds.contains(f.getId())).map(SalarySobEmpFieldPO::getId).collect(Collectors.toList());
|
||||
|
||||
// 保存薪资账套的员工信息字段
|
||||
Collection<SalarySobEmpFieldPO> needInsertSalarySobEmpFields = new ArrayList<>();
|
||||
for (SalarySobItemSaveParam.SalarySobEmpFieldParam salarySobEmpFieldParam : empFields) {
|
||||
if (salarySobEmpFieldParam.getId() == null) {
|
||||
SalarySobEmpFieldPO salarySobEmpFieldPO = SalarySobEmpFieldPO.builder()
|
||||
.salarySobId(saveParam.getSalarySobId())
|
||||
.fieldCode(salarySobEmpFieldParam.getFieldId())
|
||||
.sortedIndex(salarySobEmpFieldParam.getSortedIndex())
|
||||
.canDelete(salarySobEmpFieldParam.getCanDelete() ? NumberUtils.INTEGER_ONE : NumberUtils.INTEGER_ZERO)
|
||||
.creator(employeeId)
|
||||
.createTime(now)
|
||||
.updateTime(now)
|
||||
.deleteType(NumberUtils.INTEGER_ZERO)
|
||||
.tenantKey(SalaryDefaultTenantConstant.DEFAULT_TENANT_KEY)
|
||||
.build();
|
||||
needInsertSalarySobEmpFields.add(salarySobEmpFieldPO);
|
||||
} else {
|
||||
SalarySobEmpFieldPO salarySobEmpFieldPO = SalarySobEmpFieldPO.builder()
|
||||
.id(salarySobEmpFieldParam.getId())
|
||||
.sortedIndex(salarySobEmpFieldParam.getSortedIndex())
|
||||
.updateTime(now)
|
||||
.build();
|
||||
getSalarySobEmpFieldMapper().updateIgnoreNull(salarySobEmpFieldPO);
|
||||
}
|
||||
|
||||
}
|
||||
getSalarySobEmpFieldService(user).batchSave(needInsertSalarySobEmpFields);
|
||||
//删除字段
|
||||
getSalarySobEmpFieldService(user).deleteByIds(needDeleteEmpIds);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void batchSave(Collection<SalarySobItemPO> salarySobItemPOS) {
|
||||
if (CollectionUtils.isEmpty(salarySobItemPOS)) {
|
||||
|
|
|
|||
Loading…
Reference in New Issue