From 1bdc304ddf9db6ec8df783c6b9e58e28fc187a9a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=92=B1=E6=B6=9B?= <15850646081@163.com> Date: Thu, 16 Feb 2023 09:16:00 +0800 Subject: [PATCH] =?UTF-8?q?=E6=B8=85=E9=99=A4=E5=85=AC=E5=BC=8F?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../salary/mapper/formula/FormulaMapper.java | 2 + .../salary/mapper/formula/FormulaMapper.xml | 13 ++++++ .../mapper/formula/FormulaVarMapper.java | 3 ++ .../mapper/formula/FormulaVarMapper.xml | 11 ++++- .../salary/service/SalaryFormulaService.java | 2 + .../salary/service/SysSalaryItemService.java | 2 + .../impl/SalaryFormulaServiceImpl.java | 14 +++++++ .../impl/SysSalaryItemServiceImpl.java | 11 +++++ .../salary/wrapper/SalaryItemWrapper.java | 42 ++++++++++++------- 9 files changed, 85 insertions(+), 15 deletions(-) diff --git a/src/com/engine/salary/mapper/formula/FormulaMapper.java b/src/com/engine/salary/mapper/formula/FormulaMapper.java index 322e7e20a..ef4f27a63 100644 --- a/src/com/engine/salary/mapper/formula/FormulaMapper.java +++ b/src/com/engine/salary/mapper/formula/FormulaMapper.java @@ -57,4 +57,6 @@ public interface FormulaMapper { int delete(FormulaPO formula); List listByIds(@Param("ids")Collection ids); + + void deleteNotIn(@Param("ids")List ids); } \ No newline at end of file diff --git a/src/com/engine/salary/mapper/formula/FormulaMapper.xml b/src/com/engine/salary/mapper/formula/FormulaMapper.xml index d679a967d..7413462d4 100644 --- a/src/com/engine/salary/mapper/formula/FormulaMapper.xml +++ b/src/com/engine/salary/mapper/formula/FormulaMapper.xml @@ -286,5 +286,18 @@ + + + UPDATE hrsa_formula + SET delete_type=1 + WHERE + delete_type = 0 + AND id not IN + + #{id} + + + + \ No newline at end of file diff --git a/src/com/engine/salary/mapper/formula/FormulaVarMapper.java b/src/com/engine/salary/mapper/formula/FormulaVarMapper.java index ca25e4752..6e6f2e63d 100644 --- a/src/com/engine/salary/mapper/formula/FormulaVarMapper.java +++ b/src/com/engine/salary/mapper/formula/FormulaVarMapper.java @@ -1,6 +1,7 @@ package com.engine.salary.mapper.formula; import com.engine.salary.entity.salaryformula.po.FormulaVar; +import org.apache.ibatis.annotations.Param; import java.util.List; @@ -46,4 +47,6 @@ public interface FormulaVarMapper { int updateIgnoreNull(FormulaVar formulaVar); void deleteByFormulaId(Long formulaId); + + void deleteNotInFormulaIds(@Param("formulaIds") List formulaIds); } \ No newline at end of file diff --git a/src/com/engine/salary/mapper/formula/FormulaVarMapper.xml b/src/com/engine/salary/mapper/formula/FormulaVarMapper.xml index 0bcc16a41..ac9434f34 100644 --- a/src/com/engine/salary/mapper/formula/FormulaVarMapper.xml +++ b/src/com/engine/salary/mapper/formula/FormulaVarMapper.xml @@ -176,7 +176,6 @@ - UPDATE hrsa_formula_var @@ -226,4 +225,14 @@ AND delete_type = 0 + + UPDATE hrsa_formula_var + SET delete_type=1 + WHERE delete_type = 0 + AND formula_id not IN + + #{formulaId} + + + \ No newline at end of file diff --git a/src/com/engine/salary/service/SalaryFormulaService.java b/src/com/engine/salary/service/SalaryFormulaService.java index 55ef4f31c..555254c89 100644 --- a/src/com/engine/salary/service/SalaryFormulaService.java +++ b/src/com/engine/salary/service/SalaryFormulaService.java @@ -42,4 +42,6 @@ public interface SalaryFormulaService { * 初始化函数 */ void initFunction(); + + void deleteNotIn(List formulaIds); } diff --git a/src/com/engine/salary/service/SysSalaryItemService.java b/src/com/engine/salary/service/SysSalaryItemService.java index 018162672..6ba457fa1 100644 --- a/src/com/engine/salary/service/SysSalaryItemService.java +++ b/src/com/engine/salary/service/SysSalaryItemService.java @@ -53,4 +53,6 @@ public interface SysSalaryItemService { * @param ids */ void add2SalaryItem(Collection ids); + + List listAll(); } diff --git a/src/com/engine/salary/service/impl/SalaryFormulaServiceImpl.java b/src/com/engine/salary/service/impl/SalaryFormulaServiceImpl.java index 0e7ce6deb..16c9af034 100644 --- a/src/com/engine/salary/service/impl/SalaryFormulaServiceImpl.java +++ b/src/com/engine/salary/service/impl/SalaryFormulaServiceImpl.java @@ -359,4 +359,18 @@ public class SalaryFormulaServiceImpl extends Service implements SalaryFormulaSe } + @Override + public void deleteNotIn(List formulaIds) { + + if (CollectionUtils.isNotEmpty(formulaIds)) { + List> partition = Lists.partition(formulaIds, 1000); + partition.forEach(list -> { + getFormulaMapper().deleteNotIn(list); + getFormulaVarMapper().deleteNotInFormulaIds(list); + }); + } + + + } + } diff --git a/src/com/engine/salary/service/impl/SysSalaryItemServiceImpl.java b/src/com/engine/salary/service/impl/SysSalaryItemServiceImpl.java index f31d37dcc..068b06a52 100644 --- a/src/com/engine/salary/service/impl/SysSalaryItemServiceImpl.java +++ b/src/com/engine/salary/service/impl/SysSalaryItemServiceImpl.java @@ -8,9 +8,11 @@ import com.engine.salary.entity.salaryitem.po.SalaryItemPO; import com.engine.salary.entity.salaryitem.po.SysSalaryItemPO; import com.engine.salary.enums.SalarySystemTypeEnum; import com.engine.salary.exception.SalaryRunTimeException; +import com.engine.salary.mapper.salaryitem.SysSalaryItemMapper; import com.engine.salary.service.SysSalaryItemService; import com.engine.salary.util.SalaryEntityUtil; import com.engine.salary.util.SalaryI18nUtil; +import com.engine.salary.util.db.MapperProxyFactory; import org.apache.commons.collections4.CollectionUtils; import org.apache.commons.lang3.StringUtils; @@ -31,6 +33,10 @@ public class SysSalaryItemServiceImpl extends Service implements SysSalaryItemSe private SysSalaryItemBiz sysSalaryItemMapper = new SysSalaryItemBiz(); private SalaryItemBiz salaryItemService = new SalaryItemBiz(); + + private SysSalaryItemMapper getSysSalaryItemMapper() { + return MapperProxyFactory.getProxy(SysSalaryItemMapper.class); + } // @Autowired // private LoggerTemplate salaryItemLoggerTemplate; @@ -95,4 +101,9 @@ public class SysSalaryItemServiceImpl extends Service implements SysSalaryItemSe // salaryItemLoggerTemplate.write(loggerContext); // }); } + + @Override + public List listAll() { + return getSysSalaryItemMapper().listAll(); + } } diff --git a/src/com/engine/salary/wrapper/SalaryItemWrapper.java b/src/com/engine/salary/wrapper/SalaryItemWrapper.java index e58caabeb..de58bcf5b 100644 --- a/src/com/engine/salary/wrapper/SalaryItemWrapper.java +++ b/src/com/engine/salary/wrapper/SalaryItemWrapper.java @@ -16,14 +16,8 @@ import com.engine.salary.entity.salarysob.po.SalarySobItemPO; import com.engine.salary.enums.*; import com.engine.salary.enums.salaryitem.SalaryDataTypeEnum; 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.service.*; +import com.engine.salary.service.impl.*; import com.engine.salary.util.SalaryEntityUtil; import com.engine.salary.util.SalaryI18nUtil; import com.engine.salary.util.page.PageInfo; @@ -47,20 +41,24 @@ import java.util.*; public class SalaryItemWrapper extends Service { private SalaryItemService getSalaryItemService(User user) { - return ServiceUtil.getService(SalaryItemServiceImpl.class, user); + return ServiceUtil.getService(SalaryItemServiceImpl.class, user); } private SysSalaryItemService getSysSalaryItemService(User user) { - return (SysSalaryItemService) ServiceUtil.getService(SysSalaryItemServiceImpl.class, user); + return ServiceUtil.getService(SysSalaryItemServiceImpl.class, user); } private SalaryFormulaService getSalaryFormulaService(User user) { - return (SalaryFormulaService) ServiceUtil.getService(SalaryFormulaServiceImpl.class, user); + return ServiceUtil.getService(SalaryFormulaServiceImpl.class, user); } private SalarySobItemService getSalarySobItemService(User user) { - return (SalarySobItemService) ServiceUtil.getService(SalarySobItemServiceImpl.class, user); + return ServiceUtil.getService(SalarySobItemServiceImpl.class, user); + } + + private SalarySobBackItemService getSalarySobBackItemService(User user) { + return ServiceUtil.getService(SalarySobBackItemServiceImpl.class, user); } /** @@ -72,7 +70,23 @@ public class SalaryItemWrapper extends Service { public PageInfo listPage(SalaryItemSearchParam searchParam) { //清除未被引用的公式 - List salaryItemPOList = getSalaryItemService(user).listAll(); +// List sysItems = getSysSalaryItemService(user).listAll(); +// List sysItemFormulaIds = SalaryEntityUtil.properties(sysItems, SysSalaryItemPO::getFormulaId, Collectors.toList()); +// List items = getSalaryItemService(user).listAll(); +// List itemFormulaIds = SalaryEntityUtil.properties(items, SalaryItemPO::getFormulaId, Collectors.toList()); +// List sobItems = getSalarySobItemService(user).list(); +// List sobItemFormulaIds = SalaryEntityUtil.properties(sobItems, SalarySobItemPO::getFormulaId, Collectors.toList()); +// List backItems = getSalarySobBackItemService(user).listAll(); +// List backItemFormulaIds = SalaryEntityUtil.properties(backItems, SalarySobBackItemPO::getFormulaId, Collectors.toList()); +// +// List formulaIds = new ArrayList<>(); +// formulaIds.addAll(sysItemFormulaIds); +// formulaIds.addAll(itemFormulaIds); +// formulaIds.addAll(sobItemFormulaIds); +// formulaIds.addAll(backItemFormulaIds); +// +// //删除无用公式 +// getSalaryFormulaService(user).deleteNotIn(formulaIds); @@ -103,7 +117,7 @@ public class SalaryItemWrapper extends Service { List salaryItemListDTOS = SalaryItemBO.convert2ListDTO(salaryItemList, expressFormulas, sysSalaryItemPOS); //薪资档案引用时不能删除 salaryItemListDTOS.forEach(dto -> { - if (dto.getUseInEmployeeSalary() == 1|| StringUtils.isNotBlank(dto.getSystemName())) { + if (dto.getUseInEmployeeSalary() == 1 || StringUtils.isNotBlank(dto.getSystemName())) { dto.setCanDelete(false); } });