diff --git a/src/com/engine/salary/entity/salaryacct/bo/SalaryAcctCalculatePriorityBO.java b/src/com/engine/salary/entity/salaryacct/bo/SalaryAcctCalculatePriorityBO.java index bc5ee6d93..2296b157e 100644 --- a/src/com/engine/salary/entity/salaryacct/bo/SalaryAcctCalculatePriorityBO.java +++ b/src/com/engine/salary/entity/salaryacct/bo/SalaryAcctCalculatePriorityBO.java @@ -185,7 +185,7 @@ public class SalaryAcctCalculatePriorityBO { if (Objects.equals(pre.getSalaryItemId(), current.getSalaryItemId())) { SalaryItemPO preSalaryItemPO = salaryItemPOMap.get(pre.getSalaryItemId()); SalaryItemPO currentSalaryItemPO = salaryItemPOMap.get(current.getSalaryItemId()); - String errMsg = SalaryI18nUtil.getI18nLabel(101426, "{0}和{1}的公式中存在相互引用") + String errMsg = SalaryI18nUtil.getI18nLabel(101426, "{0} {1}的公式中存在相互引用") .replace("{0}", Optional.ofNullable(preSalaryItemPO).map(SalaryItemPO::getName).orElse(StringUtils.EMPTY)) .replace("{1}", Optional.ofNullable(currentSalaryItemPO).map(SalaryItemPO::getName).orElse(StringUtils.EMPTY)); throw new SalaryRunTimeException(errMsg); diff --git a/src/com/engine/salary/service/SalarySobItemService.java b/src/com/engine/salary/service/SalarySobItemService.java index 8106f4561..609d07341 100644 --- a/src/com/engine/salary/service/SalarySobItemService.java +++ b/src/com/engine/salary/service/SalarySobItemService.java @@ -141,4 +141,6 @@ public interface SalarySobItemService { * @return */ SalaryItemTopologyDTO topology(SalaryItemTopologyQueryParam param); + + void checkLoop(Long salarySobId); } diff --git a/src/com/engine/salary/service/impl/SalarySobItemServiceImpl.java b/src/com/engine/salary/service/impl/SalarySobItemServiceImpl.java index f717c1850..e076c8e42 100644 --- a/src/com/engine/salary/service/impl/SalarySobItemServiceImpl.java +++ b/src/com/engine/salary/service/impl/SalarySobItemServiceImpl.java @@ -7,6 +7,7 @@ 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.salaryacct.bo.SalaryAcctCalculatePriorityBO; import com.engine.salary.entity.salaryacct.po.SalaryAcctResultPO; import com.engine.salary.entity.salaryformula.ExpressFormula; import com.engine.salary.entity.salaryformula.po.FormulaVar; @@ -850,6 +851,19 @@ public class SalarySobItemServiceImpl extends Service implements SalarySobItemSe return salaryItemTopologyDTO; } + @Override + public void checkLoop(Long salarySobId) { + // 查询薪资项目副本 + List salarySobItemPOS = listBySalarySobId(salarySobId); + // 查询薪资项目 + List salaryItemIds = SalaryEntityUtil.properties(salarySobItemPOS, SalarySobItemPO::getSalaryItemId,Collectors.toList()); + List salaryItems = getSalaryItemService(user).listByIds(salaryItemIds); + // 查询公式详情 + List formulaIds = SalaryEntityUtil.properties(salaryItems, SalaryItemPO::getFormulaId,Collectors.toList()); + List expressFormulas = getSalaryFormulaService(user).listExpressFormula(formulaIds); + SalaryAcctCalculatePriorityBO.calculatePriority(salarySobItemPOS,salaryItems,expressFormulas,new ArrayList<>(),new HashSet<>()); + } + /** * 递归拓扑 * diff --git a/src/com/engine/salary/web/SalarySobController.java b/src/com/engine/salary/web/SalarySobController.java index 951553ad0..c7c4255e1 100644 --- a/src/com/engine/salary/web/SalarySobController.java +++ b/src/com/engine/salary/web/SalarySobController.java @@ -401,6 +401,14 @@ public class SalarySobController { return new ResponseResult(user).run(getSalarySobItemWrapper(user)::topology, param); } + @GET + @Path("/item/checkLoop") + @Produces(MediaType.APPLICATION_JSON) + public String checkLoop(@Context HttpServletRequest request, @Context HttpServletResponse response, @QueryParam(value = "salarySobId") Long salarySobId) { + User user = HrmUserVarify.getUser(request, response); + return new ResponseResult(user).run(getSalarySobItemWrapper(user)::checkLoop, salarySobId); + } + /**********************************薪资账套的薪资项目 end*********************************/ diff --git a/src/com/engine/salary/wrapper/SalarySobItemWrapper.java b/src/com/engine/salary/wrapper/SalarySobItemWrapper.java index 8cc48d6fb..55436194d 100644 --- a/src/com/engine/salary/wrapper/SalarySobItemWrapper.java +++ b/src/com/engine/salary/wrapper/SalarySobItemWrapper.java @@ -190,4 +190,8 @@ public class SalarySobItemWrapper extends Service { return getSalarySobItemService(user).topology(param); } + + public void checkLoop(Long salarySobId) { + getSalarySobItemService(user).checkLoop(salarySobId); + } }