核算闭环提醒
This commit is contained in:
parent
a52788aa1b
commit
427ce223e7
|
|
@ -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<SalaryCalcItemGraphNode> nodes;
|
||||
private Map<Long, String> 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<Long> 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;
|
||||
}
|
||||
|
|
|
|||
Loading…
Reference in New Issue