From 427ce223e72dfc92610b721c822190a28d9cf9d3 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=92=B1=E6=B6=9B?= <15850646081@163.com> Date: Thu, 7 Mar 2024 09:43:22 +0800 Subject: [PATCH 1/4] =?UTF-8?q?=E6=A0=B8=E7=AE=97=E9=97=AD=E7=8E=AF?= =?UTF-8?q?=E6=8F=90=E9=86=92?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../salaryacct/bo/SalaryCalcItemGraph.java | 18 +++++++++++++++++- 1 file changed, 17 insertions(+), 1 deletion(-) diff --git a/src/com/engine/salary/entity/salaryacct/bo/SalaryCalcItemGraph.java b/src/com/engine/salary/entity/salaryacct/bo/SalaryCalcItemGraph.java index 52baba1db..ecfad44da 100644 --- a/src/com/engine/salary/entity/salaryacct/bo/SalaryCalcItemGraph.java +++ b/src/com/engine/salary/entity/salaryacct/bo/SalaryCalcItemGraph.java @@ -5,6 +5,7 @@ import com.engine.salary.entity.salaryformula.po.FormulaVar; import com.engine.salary.entity.salaryitem.po.SalaryItemPO; import com.engine.salary.entity.salarysob.po.SalarySobItemPO; import com.engine.salary.enums.salaryformula.SalaryFormulaReferenceEnum; +import com.engine.salary.exception.SalaryRunTimeException; import com.engine.salary.report.common.constant.SalaryConstant; import com.engine.salary.util.SalaryEntityUtil; import com.google.common.collect.Lists; @@ -13,6 +14,7 @@ import org.apache.commons.lang3.StringUtils; import java.util.*; import java.util.concurrent.LinkedTransferQueue; +import java.util.stream.Collectors; /** * 对薪资核算时涉及的薪资项目进行排序 @@ -25,6 +27,7 @@ import java.util.concurrent.LinkedTransferQueue; public class SalaryCalcItemGraph { private List nodes; + private Map items; /** * 根据薪资账套的薪资项目、公式详情构建实例 @@ -51,7 +54,7 @@ public class SalaryCalcItemGraph { SalaryItemPO salaryItemPO = salaryItemMap.get(salaryItemCode); if (salaryItemPO == null) { continue; - }else { + } else { subSalarySobItem = SalarySobItemPO.builder().salaryItemId(salaryItemPO.getId()).salaryItemCode(salaryItemPO.getCode()).build(); } } @@ -63,6 +66,7 @@ public class SalaryCalcItemGraph { } } this.nodes = Lists.newArrayList(nodeMap.values()); + this.items = SalaryEntityUtil.convert2Map(salaryItemPOS, SalaryItemPO::getId, SalaryItemPO::getName); } /** @@ -130,6 +134,18 @@ public class SalaryCalcItemGraph { // 倒序 Collections.reverse(result); + if (!Objects.equals(result.size(), nodes.size())) { + + List resultIds = SalaryEntityUtil.properties(result, SalaryCalcItem::getSalaryItemId, Collectors.toList()); + String errItemName = nodes.stream() + .map(SalaryCalcItemGraphNode::getSalaryCalcItem) + .map(SalaryCalcItem::getSalaryItemId) + .filter(itemId -> !resultIds.contains(itemId)) + .map(itemId -> items.getOrDefault(itemId, "")) + .collect((Collectors.joining(",", "[", "]"))); + + throw new SalaryRunTimeException("薪资项目:" + errItemName + "存在闭环!"); + } // 返回结果列表 return result; } From e187ee57e0304a143ffb52da108794573f0392aa Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=92=B1=E6=B6=9B?= <15850646081@163.com> Date: Thu, 7 Mar 2024 09:52:21 +0800 Subject: [PATCH 2/4] =?UTF-8?q?=E8=8E=B7=E5=8F=96=E6=89=80=E6=9C=89?= =?UTF-8?q?=E8=B4=A6=E5=A5=97=E5=88=97=E8=A1=A8=E6=8E=A5=E5=8F=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/com/engine/salary/web/SalarySobController.java | 12 ++++++++++++ src/com/engine/salary/wrapper/SalarySobWrapper.java | 10 ++++++++++ 2 files changed, 22 insertions(+) diff --git a/src/com/engine/salary/web/SalarySobController.java b/src/com/engine/salary/web/SalarySobController.java index 8ed4f0ebb..505d0a051 100644 --- a/src/com/engine/salary/web/SalarySobController.java +++ b/src/com/engine/salary/web/SalarySobController.java @@ -85,6 +85,18 @@ public class SalarySobController { return new ResponseResult>(user).run(getSalarySobWrapper(user)::listPage, queryParam); } + /** + * 薪资账套列表 + */ + @POST + @Path("/listAll") + @Produces(MediaType.APPLICATION_JSON) + public String listAll(@Context HttpServletRequest request, @Context HttpServletResponse response) { + User user = HrmUserVarify.getUser(request, response); + return new ResponseResult>(user).run(getSalarySobWrapper(user)::listAll); + } + + /** * 薪资账套基本信息表单 */ diff --git a/src/com/engine/salary/wrapper/SalarySobWrapper.java b/src/com/engine/salary/wrapper/SalarySobWrapper.java index e8259d52a..d86ea9b26 100644 --- a/src/com/engine/salary/wrapper/SalarySobWrapper.java +++ b/src/com/engine/salary/wrapper/SalarySobWrapper.java @@ -94,6 +94,16 @@ public class SalarySobWrapper extends Service { return dtoPage; } + + /** + * 薪资账套列表 + * + * @return + */ + public List listAll() { + return getSalarySobService(user).listAll(); + } + private void handleSalarySobBackItemHistory(SalarySobListQueryParam queryParam) { queryParam.setPageSize(100000); List list = getSalarySobService(user).listPageByParam(queryParam).getList(); From 3b1edddf00b40802c746e480d08c3e285e934758 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=92=B1=E6=B6=9B?= <15850646081@163.com> Date: Thu, 7 Mar 2024 10:21:06 +0800 Subject: [PATCH 3/4] =?UTF-8?q?=E4=BC=98=E5=8C=96=E8=96=AA=E8=B5=84?= =?UTF-8?q?=E8=B4=A6=E5=A5=97=E9=A1=B9=E7=9B=AE=E4=BF=9D=E5=AD=98=E9=80=BB?= =?UTF-8?q?=E8=BE=91?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../impl/SalarySobItemServiceImpl.java | 29 ++++--------------- 1 file changed, 5 insertions(+), 24 deletions(-) diff --git a/src/com/engine/salary/service/impl/SalarySobItemServiceImpl.java b/src/com/engine/salary/service/impl/SalarySobItemServiceImpl.java index 93de141bc..2729bf81f 100644 --- a/src/com/engine/salary/service/impl/SalarySobItemServiceImpl.java +++ b/src/com/engine/salary/service/impl/SalarySobItemServiceImpl.java @@ -255,10 +255,6 @@ public class SalarySobItemServiceImpl extends Service implements SalarySobItemSe // 校验 validSaveParam(saveParam); - - //清除原数据 - cleanOldData(salarySobId); - //保存 saveSobItem(saveParam); @@ -311,34 +307,17 @@ public class SalarySobItemServiceImpl extends Service implements SalarySobItemSe } - /** - * 清楚原相关数据 - * - * @param salarySobId - */ - private void cleanOldData(Long salarySobId) { - // 删除薪资账套的员工信息字段 -// getSalarySobEmpFieldService(user).deleteBySalarySobIds(Collections.singleton(salarySobId)); - // 删除薪资账套的薪资项目副本 -// deleteBySalarySobIds(Collections.singleton(salarySobId)); - // 删除薪资账套的薪资项目分类 -// getSalarySobItemGroupService(user).deleteBySalarySobIds(Collections.singleton(salarySobId)); - // 删除薪资项目是否显示 - deleteItemShowBySalarySobIds(Collections.singleton(salarySobId)); - - } - /** * 保存项目信息 * * @param saveParam */ private void saveSobItem(SalarySobItemSaveParam saveParam) { - //处理人员信息字段 - handleEmpField(saveParam); - //分组和薪资项 handleGroupAndItem(saveParam); + + //处理人员信息字段 + handleEmpField(saveParam); } private void handleGroupAndItem(SalarySobItemSaveParam saveParam) { @@ -646,6 +625,8 @@ public class SalarySobItemServiceImpl extends Service implements SalarySobItemSe // 保存薪资账套的薪资项目副本 batchSave(salarySobItems); + // 删除原薪资项目是否显示 + deleteItemShowBySalarySobIds(Collections.singleton(salarySobId)); // 保存薪资账套的薪资项目隐藏信息 batchSaveShow(needInsertItemShow); } From e851944e8f39f92062f93fe2e4e858fad1bb13a8 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=92=B1=E6=B6=9B?= <15850646081@163.com> Date: Thu, 7 Mar 2024 11:11:24 +0800 Subject: [PATCH 4/4] =?UTF-8?q?=E4=BC=98=E5=8C=96=E8=96=AA=E8=B5=84?= =?UTF-8?q?=E8=B4=A6=E5=A5=97=E9=A1=B9=E7=9B=AE=E4=BF=9D=E5=AD=98=E9=80=BB?= =?UTF-8?q?=E8=BE=91?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../engine/salary/service/impl/SalarySobItemServiceImpl.java | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/src/com/engine/salary/service/impl/SalarySobItemServiceImpl.java b/src/com/engine/salary/service/impl/SalarySobItemServiceImpl.java index 53ec67638..584a8425f 100644 --- a/src/com/engine/salary/service/impl/SalarySobItemServiceImpl.java +++ b/src/com/engine/salary/service/impl/SalarySobItemServiceImpl.java @@ -8,9 +8,9 @@ import com.engine.salary.biz.SalarySobItemGroupBiz; import com.engine.salary.biz.SalarySobItemHideBiz; import com.engine.salary.config.SalaryElogConfig; import com.engine.salary.constant.SalaryDefaultTenantConstant; +import com.engine.salary.elog.entity.dto.LoggerContext; import com.engine.salary.entity.salaryacct.bo.SalaryAcctCalculatePriorityBO; import com.engine.salary.entity.salaryacct.po.SalaryAcctResultPO; -import com.engine.salary.elog.entity.dto.LoggerContext; import com.engine.salary.entity.salaryformula.ExpressFormula; import com.engine.salary.entity.salaryformula.po.FormulaVar; import com.engine.salary.entity.salaryitem.po.SalaryItemPO; @@ -36,7 +36,6 @@ import com.engine.salary.util.SalaryI18nUtil; import com.engine.salary.util.db.IdGenerator; import com.engine.salary.util.db.MapperProxyFactory; import com.engine.salary.util.valid.ValidUtil; -import com.engine.salary.util.db.IdGenerator; import lombok.Data; import lombok.extern.slf4j.Slf4j; import org.apache.commons.collections4.CollectionUtils;