diff --git a/src/com/engine/salary/service/impl/SalaryAcctResultServiceImpl.java b/src/com/engine/salary/service/impl/SalaryAcctResultServiceImpl.java index ea7a59966..b42c9ce8c 100644 --- a/src/com/engine/salary/service/impl/SalaryAcctResultServiceImpl.java +++ b/src/com/engine/salary/service/impl/SalaryAcctResultServiceImpl.java @@ -973,15 +973,22 @@ public class SalaryAcctResultServiceImpl extends Service implements SalaryAcctRe // 9、计算薪资项目的运算优先级 List salarySobItemsWithPriority = sortItems(salarySobItemPOS, salarySobBackItems, salaryItemPOS, expressFormulas); - //核算税后逻辑,去除非税后项目 - List afterTaxItems = new ArrayList<>(); - afterTaxItems.add(1695204436147L); - salarySobItemsWithPriority = salarySobItemsWithPriority.stream().filter(afterTaxItems::contains).collect(Collectors.toList()); - //账套中配置的个税字段,不需要系统算 List salarySobTaxRulePOS = getSalarySobTaxRuleService(user).listBySalarySobId(salaryAcctRecordPO.getSalarySobId()); List taxIds = SalaryEntityUtil.properties(salarySobTaxRulePOS, SalarySobTaxRulePO::getSalaryItemId, Collectors.toList()); + /** + * 计算税后薪资 + */ + int index = salarySobItemsWithPriority.size() - 1; + for (Long id : taxIds) { + int i = salarySobItemsWithPriority.indexOf(id); + if (i != -1 && i < index) { + index = i; + } + } + salarySobItemsWithPriority = salarySobItemsWithPriority.subList(index, salarySobItemsWithPriority.size()); + // 10、根据id查询其他合并计税的薪资核算记录 List otherSalaryAcctRecordPOS = getSalaryAcctRecordService(user).listById4OtherConsolidatedTax(salaryAcctRecordPO.getId()); // 11、查询本次核算人员 @@ -1065,7 +1072,7 @@ public class SalaryAcctResultServiceImpl extends Service implements SalaryAcctRe return; } // 15、处理核算结果临时表数据 - handleSalaryAfterTaxAcctResultTemp(salaryAcctRecordId, calculateKey, afterTaxItems); + handleSalaryAfterTaxAcctResultTemp(salaryAcctRecordId, calculateKey,salarySobItemsWithPriority); // 16、开始运行校验规则 // SalaryAcctCheckParam salaryAcctCheckParam = new SalaryAcctCheckParam() // .setSalaryAcctRecordId(calculateParam.getSalaryAcctRecordId())