薪资账套修改回算公式后不生效问题

This commit is contained in:
Harryxzy 2022-12-14 22:34:12 +08:00
parent 5f37281757
commit 4ed3f47b36
3 changed files with 15 additions and 6 deletions

View File

@ -401,10 +401,10 @@ public class SalaryAcctResultBO {
.filter(salarySobItemPO -> salarySobItemPO.getFormulaId() <= 0)
.map(salarySobItemPO -> convert2SalaryAcctResultDetailItemDTO(salarySobItemPO, salaryItemMap.get(salarySobItemPO.getSalaryItemId()), resultValueMap))
.collect(Collectors.toList());
// TODO 临时处理后续删除将已发补发加入输入导入
formulaItems.addAll(salarySobBackItemPOS.stream()
.map(salarySobBackItemPO -> backItemConvert2SalaryAcctResultDetailItemDTO(salarySobBackItemPO, salaryBackItemMap.get(salarySobBackItemPO.getSalaryItemId()), resultValueMap, salaryBackItemFormula))
.collect(Collectors.toList()));
// // TODO 临时处理后续删除将已发补发加入输入导入
// formulaItems.addAll(salarySobBackItemPOS.stream()
// .map(salarySobBackItemPO -> backItemConvert2SalaryAcctResultDetailItemDTO(salarySobBackItemPO, salaryBackItemMap.get(salarySobBackItemPO.getSalaryItemId()), resultValueMap, salaryBackItemFormula))
// .collect(Collectors.toList()));
// 已发/补发项目的值
List<SalaryAcctResultDetailDTO.SalaryAcctResultDetailItemDTO> issuedAndReissueItems = salarySobBackItemPOS.stream()
.map(salarySobBackItemPO -> backItemConvert2SalaryAcctResultDetailItemDTO(salarySobBackItemPO, salaryBackItemMap.get(salarySobBackItemPO.getSalaryItemId()), resultValueMap, salaryBackItemFormula))

View File

@ -178,11 +178,19 @@ public class SalaryAcctCalculateServiceImpl extends Service implements SalaryAcc
for (List<Long> salaryItemIds : salaryAcctCalculateBO.getSalaryItemIdWithPriorityList()) {
// 同一运算优先级下的薪资项目逐个独立运算
for (Long salaryItemId : salaryItemIds) {
if(salaryItemId.equals(1670393570190L)){
System.out.println("00");
}
String resultValue;
SalaryItemPO salaryItemPO = salaryItemMap.get(salaryItemId);
ExpressFormula expressFormula;
// 如果薪资账套下重新定义了薪资项目的公式则使用薪资账套下的公式否则使用薪资项目本身的公式
if (salaryItemIdKeySalarySobItemPOMap.containsKey(salaryItemId)) {
if (salarySobBackItemMap.containsKey(salaryItemId)){
// 如果薪资账套的回算项目中重新定义了回算项目公式则使用薪资账套下的公式
SalarySobBackItemPO salarySobBackItemPO = salarySobBackItemMap.get(salaryItemId);
expressFormula = expressFormulaMap.get(salarySobBackItemPO.getFormulaId());
}
else if (salaryItemIdKeySalarySobItemPOMap.containsKey(salaryItemId)) {
// 如果薪资账套下重新定义了薪资项目的公式则使用薪资账套下的公式否则使用薪资项目本身的公式
SalarySobItemPO salarySobItemPO = salaryItemIdKeySalarySobItemPOMap.get(salaryItemId);
expressFormula = expressFormulaMap.get(salarySobItemPO.getFormulaId());
} else {

View File

@ -641,6 +641,7 @@ public class SalaryAcctResultServiceImpl extends Service implements SalaryAcctRe
// 8查询公式详情
Set<Long> formulaIds = SalaryEntityUtil.properties(salarySobItemPOS, SalarySobItemPO::getFormulaId);
formulaIds.addAll(SalaryEntityUtil.properties(salaryItemPOS, SalaryItemPO::getFormulaId));
formulaIds.addAll(SalaryEntityUtil.properties(salarySobBackItems,SalarySobBackItemPO::getFormulaId));
List<ExpressFormula> expressFormulas = getSalaryFormulaService(user).listExpressFormula(formulaIds);
// 本次运算的回算薪资项目所涉及的变量
Set<String> issuedFieldIds = new HashSet<>();