清除公式

This commit is contained in:
钱涛 2023-02-16 09:16:00 +08:00
parent 53c767b239
commit 1bdc304ddf
9 changed files with 85 additions and 15 deletions

View File

@ -57,4 +57,6 @@ public interface FormulaMapper {
int delete(FormulaPO formula);
List<FormulaPO> listByIds(@Param("ids")Collection<Long> ids);
void deleteNotIn(@Param("ids")List<Long> ids);
}

View File

@ -286,5 +286,18 @@
</foreach>
</select>
<!-- 根据主键删除记录 -->
<delete id="deleteNotIn">
UPDATE hrsa_formula
SET delete_type=1
WHERE
delete_type = 0
AND id not IN
<foreach collection="ids" open="(" item="id" separator="," close=")">
#{id}
</foreach>
</delete>
</mapper>

View File

@ -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<Long> formulaIds);
}

View File

@ -176,7 +176,6 @@
</insert>
<!-- 更新不为NULL的字段 -->
<update id="updateIgnoreNull" parameterType="com.engine.salary.entity.salaryformula.po.FormulaVar">
UPDATE hrsa_formula_var
@ -226,4 +225,14 @@
AND delete_type = 0
</delete>
<delete id="deleteNotInFormulaIds">
UPDATE hrsa_formula_var
SET delete_type=1
WHERE delete_type = 0
AND formula_id not IN
<foreach collection="formulaIds" open="(" item="formulaId" separator="," close=")">
#{formulaId}
</foreach>
</delete>
</mapper>

View File

@ -42,4 +42,6 @@ public interface SalaryFormulaService {
* 初始化函数
*/
void initFunction();
void deleteNotIn(List<Long> formulaIds);
}

View File

@ -53,4 +53,6 @@ public interface SysSalaryItemService {
* @param ids
*/
void add2SalaryItem(Collection<Long> ids);
List<SysSalaryItemPO> listAll();
}

View File

@ -359,4 +359,18 @@ public class SalaryFormulaServiceImpl extends Service implements SalaryFormulaSe
}
@Override
public void deleteNotIn(List<Long> formulaIds) {
if (CollectionUtils.isNotEmpty(formulaIds)) {
List<List<Long>> partition = Lists.partition(formulaIds, 1000);
partition.forEach(list -> {
getFormulaMapper().deleteNotIn(list);
getFormulaVarMapper().deleteNotInFormulaIds(list);
});
}
}
}

View File

@ -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<SysSalaryItemPO> listAll() {
return getSysSalaryItemMapper().listAll();
}
}

View File

@ -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<SalaryItemListDTO> listPage(SalaryItemSearchParam searchParam) {
//清除未被引用的公式
List<SalaryItemPO> salaryItemPOList = getSalaryItemService(user).listAll();
// List<SysSalaryItemPO> sysItems = getSysSalaryItemService(user).listAll();
// List<Long> sysItemFormulaIds = SalaryEntityUtil.properties(sysItems, SysSalaryItemPO::getFormulaId, Collectors.toList());
// List<SalaryItemPO> items = getSalaryItemService(user).listAll();
// List<Long> itemFormulaIds = SalaryEntityUtil.properties(items, SalaryItemPO::getFormulaId, Collectors.toList());
// List<SalarySobItemPO> sobItems = getSalarySobItemService(user).list();
// List<Long> sobItemFormulaIds = SalaryEntityUtil.properties(sobItems, SalarySobItemPO::getFormulaId, Collectors.toList());
// List<SalarySobBackItemPO> backItems = getSalarySobBackItemService(user).listAll();
// List<Long> backItemFormulaIds = SalaryEntityUtil.properties(backItems, SalarySobBackItemPO::getFormulaId, Collectors.toList());
//
// List<Long> 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<SalaryItemListDTO> 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);
}
});