陕西万众审批项目顺序

This commit is contained in:
Harryxzy 2024-01-08 18:10:06 +08:00
parent 8f959cb83b
commit ef7384281e
1 changed files with 34 additions and 9 deletions

View File

@ -1404,16 +1404,41 @@ public class SalaryAcctExcelServiceImpl extends Service implements SalaryAcctExc
throw new SalaryRunTimeException("薪资核算记录不存在,或已被删除");
}
List<SalarySobItemPO> salarySobItemPOS = getSalarySobItemService(user).listBySalarySobId(salaryAcctRecordPO.getSalarySobId());
Map<Long, Integer> sobItemPOMap = SalaryEntityUtil.convert2Map(salarySobItemPOS, SalarySobItemPO::getSalaryItemId, SalarySobItemPO::getShowInWorkflow);
List<Long> salaryItemIds = SalaryEntityUtil.properties(salarySobItemPOS, SalarySobItemPO::getSalaryItemId, Collectors.toList());
List<SalaryItemPO> itemPOList = getSalaryItemService(user).listByIds(salaryItemIds);
List<SalarySobItemPO> sortedSalarySobItemPOS = new ArrayList<>();
Map<Long, List<SalarySobItemPO>> sobItemByGroup = SalaryEntityUtil.group2Map(salarySobItemPOS, SalarySobItemPO::getSalarySobItemGroupId);
// 给薪资项目排序
for (Map.Entry<Long, List<SalarySobItemPO>> entry : sobItemByGroup.entrySet()) {
if (CollectionUtils.isNotEmpty(entry.getValue())) {
entry.setValue(entry.getValue().stream().sorted(Comparator.comparingInt(SalarySobItemPO::getSortedIndex)).collect(Collectors.toList()));
}
}
// 给分组排序
List<SalarySobItemGroupPO> salarySobItemGroupPOS = getSalarySobItemGroupService(user).listBySalarySobId(salaryAcctRecordPO.getSalarySobId());
List<Long> sortedGroupIds = salarySobItemGroupPOS.stream().sorted(Comparator.comparingInt(SalarySobItemGroupPO::getSortedIndex)).map(SalarySobItemGroupPO::getId).collect(Collectors.toList());
sortedGroupIds.stream().forEach(groupId -> {
List<SalarySobItemPO> groupSobItemPOS = sobItemByGroup.get(groupId);
if (CollectionUtils.isNotEmpty(groupSobItemPOS)) {
sortedSalarySobItemPOS.addAll(groupSobItemPOS);
}
});
List<SalarySobItemPO> salarySobItemPOSNoGroup = sobItemByGroup.get(0L);
if (CollectionUtils.isNotEmpty(salarySobItemPOSNoGroup)) {
sortedSalarySobItemPOS.addAll(salarySobItemPOSNoGroup);
}
Map<Long, Integer> sobItemPOMap = SalaryEntityUtil.convert2Map(sortedSalarySobItemPOS, SalarySobItemPO::getSalaryItemId, SalarySobItemPO::getShowInWorkflow);
List<Long> salaryItemIds = SalaryEntityUtil.properties(sortedSalarySobItemPOS, SalarySobItemPO::getSalaryItemId, Collectors.toList());
Map<Long, SalaryItemPO> itemPOMap = SalaryEntityUtil.convert2Map(getSalaryItemService(user).listByIds(salaryItemIds), SalaryItemPO::getId);
List<Map<String, Object>> result = new ArrayList<>();
itemPOList.stream().forEach( po -> {
Map<String, Object> map = new HashMap<>();
map.put("id", po.getId());
map.put("name", po.getName());
map.put("default",sobItemPOMap.get(po.getId()) == null ? 0 : sobItemPOMap.get(po.getId()));
result.add(map);
sortedSalarySobItemPOS.stream().forEach( sobItemPO -> {
SalaryItemPO po = itemPOMap.get(sobItemPO.getSalaryItemId());
if (po != null) {
Map<String, Object> map = new HashMap<>();
map.put("id", po.getId());
map.put("name", po.getName());
map.put("default",sobItemPOMap.get(po.getId()) == null ? 0 : sobItemPOMap.get(po.getId()));
result.add(map);
}
});
return result;