diff --git a/src/com/engine/salary/entity/salaryacct/bo/SalaryCalcItem.java b/src/com/engine/salary/entity/salaryacct/bo/SalaryCalcItem.java index 576e14dc9..4636d3276 100644 --- a/src/com/engine/salary/entity/salaryacct/bo/SalaryCalcItem.java +++ b/src/com/engine/salary/entity/salaryacct/bo/SalaryCalcItem.java @@ -3,7 +3,6 @@ package com.engine.salary.entity.salaryacct.bo; import com.engine.salary.entity.salaryformula.ExpressFormula; import com.engine.salary.enums.SalaryRoundingModeEnum; import com.engine.salary.enums.salaryitem.SalaryDataTypeEnum; -import lombok.Data; import lombok.experimental.Accessors; /** @@ -13,7 +12,6 @@ import lombok.experimental.Accessors; * @date: Created in 2023/5/19 16:00 * @version:v1.0 */ -@Data @Accessors(chain = true) public class SalaryCalcItem { @@ -54,4 +52,82 @@ public class SalaryCalcItem { */ private ExpressFormula expressFormula; + + public Long getSalaryItemId() { + return salaryItemId; + } + + public void setSalaryItemId(Long salaryItemId) { + this.salaryItemId = salaryItemId; + } + + public String getSalaryItemCode() { + return salaryItemCode; + } + + public void setSalaryItemCode(String salaryItemCode) { + this.salaryItemCode = salaryItemCode; + } + + public String getIncomeCategory() { + return incomeCategory; + } + + public void setIncomeCategory(String incomeCategory) { + this.incomeCategory = incomeCategory; + } + + public Integer getUseInEmployeeSalary() { + return useInEmployeeSalary; + } + + public void setUseInEmployeeSalary(Integer useInEmployeeSalary) { + this.useInEmployeeSalary = useInEmployeeSalary; + } + + public String getDataType() { + return dataType; + } + + public void setDataType(String dataType) { + this.dataType = dataType; + } + + public Integer getRoundingMode() { + return roundingMode; + } + + public void setRoundingMode(Integer roundingMode) { + this.roundingMode = roundingMode; + } + + public Integer getPattern() { + return pattern; + } + + public void setPattern(Integer pattern) { + this.pattern = pattern; + } + + public ExpressFormula getExpressFormula() { + return expressFormula; + } + + public void setExpressFormula(ExpressFormula expressFormula) { + this.expressFormula = expressFormula; + } + + @Override + public String toString() { + return "SalaryCalcItem{" + + "salaryItemId=" + salaryItemId + + ", salaryItemCode='" + salaryItemCode + '\'' + + ", incomeCategory='" + incomeCategory + '\'' + + ", useInEmployeeSalary=" + useInEmployeeSalary + + ", dataType='" + dataType + '\'' + + ", roundingMode=" + roundingMode + + ", pattern=" + pattern + + ", expressFormula=" + expressFormula + + '}'; + } } diff --git a/src/com/engine/salary/entity/salaryacct/bo/SalaryCalcItemGraph.java b/src/com/engine/salary/entity/salaryacct/bo/SalaryCalcItemGraph.java index a78bdfacf..42d522bd7 100644 --- a/src/com/engine/salary/entity/salaryacct/bo/SalaryCalcItemGraph.java +++ b/src/com/engine/salary/entity/salaryacct/bo/SalaryCalcItemGraph.java @@ -30,10 +30,8 @@ public class SalaryCalcItemGraph { * @param expressFormulas 公式详情 */ public SalaryCalcItemGraph(List salarySobItems, List expressFormulas) { - Map salaryItemMap = SalaryEntityUtil.convert2Map(salarySobItems, - SalarySobItemPO::getSalaryItemCode); - Map expressFormulaMap = SalaryEntityUtil.convert2Map(expressFormulas, - ExpressFormula::getId); + Map salaryItemMap = SalaryEntityUtil.convert2Map(salarySobItems, SalarySobItemPO::getSalaryItemCode); + Map expressFormulaMap = SalaryEntityUtil.convert2Map(expressFormulas, ExpressFormula::getId); Map> formulaVarMap = ExpressFormulaBO.buildFormulaVar(expressFormulas); Map nodeMap = new HashMap<>(); @@ -42,7 +40,7 @@ public class SalaryCalcItemGraph { SalaryCalcItemGraphNode node = nodeMap.computeIfAbsent(salarySobItem.getSalaryItemId(), key -> new SalaryCalcItemGraphNode(salarySobItem, expressFormula)); List formulaVars = expressFormula == null ? Collections.emptyList() : formulaVarMap.getOrDefault(expressFormula.getId(), Collections.emptyList()); for (FormulaVar formulaVar : formulaVars) { - if ( StringUtils.isNotEmpty(formulaVar.getFieldId())) { + if (StringUtils.isNotEmpty(formulaVar.getFieldId())) { String salaryItemCode = formulaVar.getFieldId().split(SalaryConstant.FORMULA_VAR_SEPARATOR)[1]; SalarySobItemPO subSalarySobItem = salaryItemMap.get(salaryItemCode); if (subSalarySobItem == null) { @@ -150,15 +148,16 @@ public class SalaryCalcItemGraph { private List destNodes; public SalaryCalcItemGraphNode(SalarySobItemPO salarySobItem, ExpressFormula expressFormula) { - this.salaryCalcItem = new SalaryCalcItem() - .setSalaryItemId(salarySobItem.getSalaryItemId()) - .setSalaryItemCode(salarySobItem.getSalaryItemCode()) - .setIncomeCategory(salarySobItem.getIncomeCategory()) -// .setUseInEmployeeSalary(salarySobItem.getUseInEmployeeSalary()) -// .setDataType(salarySobItem.getDataType()) - .setRoundingMode(salarySobItem.getRoundingMode()) - .setPattern(salarySobItem.getPattern()) - .setExpressFormula(expressFormula); + SalaryCalcItem salaryCalcItem = new SalaryCalcItem(); + salaryCalcItem.setSalaryItemId(salarySobItem.getSalaryItemId()); + salaryCalcItem.setSalaryItemCode(salarySobItem.getSalaryItemCode()); + salaryCalcItem.setIncomeCategory(salarySobItem.getIncomeCategory()); +// salaryCalcItem.setUseInEmployeeSalary(salarySobItem.getUseInEmployeeSalary()); +// salaryCalcItem.setDataType(salarySobItem.getDataType()); + salaryCalcItem.setRoundingMode(salarySobItem.getRoundingMode()); + salaryCalcItem.setPattern(salarySobItem.getPattern()); + salaryCalcItem.setExpressFormula(expressFormula); + this.salaryCalcItem = salaryCalcItem; this.inDegree = 0; this.visited = false; this.destNodes = new ArrayList<>(); diff --git a/src/com/engine/salary/service/impl/SalaryAcctResultServiceImpl.java b/src/com/engine/salary/service/impl/SalaryAcctResultServiceImpl.java index ab3612b8c..5daa95397 100644 --- a/src/com/engine/salary/service/impl/SalaryAcctResultServiceImpl.java +++ b/src/com/engine/salary/service/impl/SalaryAcctResultServiceImpl.java @@ -733,12 +733,12 @@ public class SalaryAcctResultServiceImpl extends Service implements SalaryAcctRe // 本次运算的回算薪资项目所涉及的变量 Set issuedFieldIds = new HashSet<>(); // 9、计算薪资项目的运算优先级 -// List> salarySobItemsWithPriority = SalaryAcctCalculatePriorityBO.calculatePriority(salarySobItemPOS, salaryItemPOS, expressFormulas, salarySobBackItems, issuedFieldIds); - List> salarySobItemsWithPriority = new ArrayList<>(); - SalaryCalcItemGraph salaryCalcItemGraph = new SalaryCalcItemGraph(salarySobItemPOS, expressFormulas); - List salaryCalcItems = salaryCalcItemGraph.sort(); - List properties = SalaryEntityUtil.properties(salaryCalcItems, SalaryCalcItem::getSalaryItemId, Collectors.toList()); - salarySobItemsWithPriority.add(properties); + List> salarySobItemsWithPriority = SalaryAcctCalculatePriorityBO.calculatePriority(salarySobItemPOS, salaryItemPOS, expressFormulas, salarySobBackItems, issuedFieldIds); +// List> salarySobItemsWithPriority = new ArrayList<>(); +// SalaryCalcItemGraph salaryCalcItemGraph = new SalaryCalcItemGraph(salarySobItemPOS, expressFormulas); +// List salaryCalcItems = salaryCalcItemGraph.sort(); +// List properties = SalaryEntityUtil.properties(salaryCalcItems, SalaryCalcItem::getSalaryItemId, Collectors.toList()); +// salarySobItemsWithPriority.add(properties); // 10、根据id查询其他合并计税的薪资核算记录 List otherSalaryAcctRecordPOS = getSalaryAcctRecordService(user).listById4OtherConsolidatedTax(salaryAcctRecordPO.getId());