档案字段删除

This commit is contained in:
钱涛 2023-02-27 18:27:11 +08:00
parent 0138351665
commit 8c8d79aba3
2 changed files with 20 additions and 21 deletions

View File

@ -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<SalaryItemListDTO> listPage(SalaryItemSearchParam searchParam) {
SalaryItemServiceImpl.UsingItem usingItem = getSalaryItemService(user).getUsingItem();
List<Long> usingFormulaIds = usingItem.getUsingFormulaIds();
List<Long> usingItemIds = usingItem.getUsingItemIds();
List<String> usingCodes = usingItem.getUsingCodes();
// 1查询薪资项目
//设置查询档案引用项目
searchParam.setUseInEmployeeSalary(SalaryOnOffEnum.ON.getValue());
@ -88,33 +101,20 @@ public class SalaryFieldWrapper extends Service {
salaryItemListDTOPage.setColumns(fieldColumns);
// 被薪资账套引用的薪资项目
List<SalarySobItemPO> salarySobItems = new ArrayList<>();
if (CollectionUtils.isNotEmpty(salaryItemList)) {
//2填充公式内容
Set<Long> formulaIds = SalaryEntityUtil.properties(salaryItemList, SalaryItemPO::getFormulaId);
List<ExpressFormula> expressFormulas = getSalaryFormulaService(user).listExpressFormula(formulaIds);
// 查询系统薪资项目
Set<Long> sysSalaryItemIds = SalaryEntityUtil.properties(salaryItemList, SalaryItemPO::getSysSalaryItemId);
List<SysSalaryItemPO> sysSalaryItemPOS = getSysSalaryItemService(user).listByIds(sysSalaryItemIds);
// 转换成薪资项目列表dto
List<SalaryItemListDTO> salaryItemListDTOS = SalaryItemBO.convert2ListDTO(salaryItemList, expressFormulas, Collections.emptyList());
//薪资档案引用时不能删除
List<SalaryItemListDTO> 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<Long> salaryItemIds = SalaryEntityUtil.properties(salaryItemList, SalaryItemPO::getId);
salarySobItems = getSalarySobItemService(user).listBySalaryItemIds(salaryItemIds);
if (CollectionUtils.isNotEmpty(salarySobItems)) {
Set<Long> salaryItemIdsUseBySob = SalaryEntityUtil.properties(salarySobItems, SalarySobItemPO::getSalaryItemId);
salaryItemListDTOS.forEach(dto -> {
if (salaryItemIdsUseBySob.contains(dto.getId())) {
dto.setCanDelete(false);
}
});
}
salaryItemListDTOPage.setList(salaryItemListDTOS);
}
return salaryItemListDTOPage;
}

View File

@ -90,7 +90,6 @@ public class SalaryItemWrapper extends Service {
salaryItemListDTOPage.setTotal(page.getTotal());
// 被薪资账套引用的薪资项目
List<SalarySobItemPO> salarySobItems = new ArrayList<>();
if (CollectionUtils.isNotEmpty(salaryItemList)) {
//2填充公式内容
Set<Long> formulaIds = SalaryEntityUtil.properties(salaryItemList, SalaryItemPO::getFormulaId);