diff --git a/src/com/engine/salary/wrapper/SalaryFieldWrapper.java b/src/com/engine/salary/wrapper/SalaryFieldWrapper.java index e520403fc..ee0880e74 100644 --- a/src/com/engine/salary/wrapper/SalaryFieldWrapper.java +++ b/src/com/engine/salary/wrapper/SalaryFieldWrapper.java @@ -10,7 +10,7 @@ import com.engine.salary.entity.salaryitem.dto.SalaryItemListDTO; import com.engine.salary.entity.salaryitem.param.SalaryItemSaveParam; import com.engine.salary.entity.salaryitem.param.SalaryItemSearchParam; import com.engine.salary.entity.salaryitem.po.SalaryItemPO; -import com.engine.salary.entity.salarysob.po.SalarySobItemPO; +import com.engine.salary.entity.salaryitem.po.SysSalaryItemPO; import com.engine.salary.enums.SalaryOnOffEnum; import com.engine.salary.enums.SalaryRoundingModeEnum; import com.engine.salary.enums.SalarySystemTypeEnum; @@ -20,9 +20,11 @@ import com.engine.salary.exception.SalaryRunTimeException; import com.engine.salary.service.SalaryFormulaService; import com.engine.salary.service.SalaryItemService; import com.engine.salary.service.SalarySobItemService; +import com.engine.salary.service.SysSalaryItemService; import com.engine.salary.service.impl.SalaryFormulaServiceImpl; import com.engine.salary.service.impl.SalaryItemServiceImpl; import com.engine.salary.service.impl.SalarySobItemServiceImpl; +import com.engine.salary.service.impl.SysSalaryItemServiceImpl; import com.engine.salary.util.SalaryEntityUtil; import com.engine.salary.util.SalaryI18nUtil; import com.engine.salary.util.page.Column; @@ -31,6 +33,7 @@ import com.engine.salary.util.valid.RuntimeTypeEnum; import com.engine.salary.util.valid.ValidUtil; 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.*; @@ -62,6 +65,10 @@ public class SalaryFieldWrapper extends Service { return ServiceUtil.getService(SalaryItemWrapper.class, user); } + private SysSalaryItemService getSysSalaryItemService(User user) { + return ServiceUtil.getService(SysSalaryItemServiceImpl.class, user); + } + /** * 薪资项目列表 * @@ -69,6 +76,12 @@ public class SalaryFieldWrapper extends Service { * @return */ public PageInfo listPage(SalaryItemSearchParam searchParam) { + + SalaryItemServiceImpl.UsingItem usingItem = getSalaryItemService(user).getUsingItem(); + List usingFormulaIds = usingItem.getUsingFormulaIds(); + List usingItemIds = usingItem.getUsingItemIds(); + List usingCodes = usingItem.getUsingCodes(); + // 1、查询薪资项目 //设置查询档案引用项目 searchParam.setUseInEmployeeSalary(SalaryOnOffEnum.ON.getValue()); @@ -88,33 +101,20 @@ public class SalaryFieldWrapper extends Service { salaryItemListDTOPage.setColumns(fieldColumns); // 被薪资账套引用的薪资项目 - List salarySobItems = new ArrayList<>(); if (CollectionUtils.isNotEmpty(salaryItemList)) { - //2、填充公式内容 - Set formulaIds = SalaryEntityUtil.properties(salaryItemList, SalaryItemPO::getFormulaId); - List expressFormulas = getSalaryFormulaService(user).listExpressFormula(formulaIds); + // 查询系统薪资项目 + Set sysSalaryItemIds = SalaryEntityUtil.properties(salaryItemList, SalaryItemPO::getSysSalaryItemId); + List sysSalaryItemPOS = getSysSalaryItemService(user).listByIds(sysSalaryItemIds); // 转换成薪资项目列表dto - List salaryItemListDTOS = SalaryItemBO.convert2ListDTO(salaryItemList, expressFormulas, Collections.emptyList()); - //薪资档案引用时不能删除 + List salaryItemListDTOS = SalaryItemBO.convert2ListDTO(salaryItemList, Collections.emptyList(), sysSalaryItemPOS); + //系统项目不删除 salaryItemListDTOS.forEach(dto -> { - if (dto.getUseInEmployeeSalary() == 1) { + if (StringUtils.isNotBlank(dto.getSystemName()) || usingItemIds.contains(dto.getId()) || usingCodes.contains(dto.getCode())) { dto.setCanDelete(false); } }); - //3、被引用的薪资项目不能删除 - Set salaryItemIds = SalaryEntityUtil.properties(salaryItemList, SalaryItemPO::getId); - salarySobItems = getSalarySobItemService(user).listBySalaryItemIds(salaryItemIds); - if (CollectionUtils.isNotEmpty(salarySobItems)) { - Set salaryItemIdsUseBySob = SalaryEntityUtil.properties(salarySobItems, SalarySobItemPO::getSalaryItemId); - salaryItemListDTOS.forEach(dto -> { - if (salaryItemIdsUseBySob.contains(dto.getId())) { - dto.setCanDelete(false); - } - }); - } salaryItemListDTOPage.setList(salaryItemListDTOS); } - return salaryItemListDTOPage; } diff --git a/src/com/engine/salary/wrapper/SalaryItemWrapper.java b/src/com/engine/salary/wrapper/SalaryItemWrapper.java index 13885be86..163695d1c 100644 --- a/src/com/engine/salary/wrapper/SalaryItemWrapper.java +++ b/src/com/engine/salary/wrapper/SalaryItemWrapper.java @@ -90,7 +90,6 @@ public class SalaryItemWrapper extends Service { salaryItemListDTOPage.setTotal(page.getTotal()); // 被薪资账套引用的薪资项目 - List salarySobItems = new ArrayList<>(); if (CollectionUtils.isNotEmpty(salaryItemList)) { //2、填充公式内容 Set formulaIds = SalaryEntityUtil.properties(salaryItemList, SalaryItemPO::getFormulaId);