diff --git a/src/com/engine/salary/entity/salaryacct/bo/SalaryAcctResultBO.java b/src/com/engine/salary/entity/salaryacct/bo/SalaryAcctResultBO.java index 366eaebcc..259f213e5 100644 --- a/src/com/engine/salary/entity/salaryacct/bo/SalaryAcctResultBO.java +++ b/src/com/engine/salary/entity/salaryacct/bo/SalaryAcctResultBO.java @@ -404,16 +404,32 @@ public class SalaryAcctResultBO { List itemsByGroup = new ArrayList<>(); for(SalarySobItemGroupPO groupPO : salarySobItemGroupPOS){ List groupItems = salarySobItemPOMap.getOrDefault(groupPO.getId(),Collections.emptyList()); - List items = groupItems.stream() + if(CollectionUtils.isNotEmpty(groupItems)){ + List items = groupItems.stream() + .map(salarySobItemPO -> convert2SalaryAcctResultDetailItemDTO(salarySobItemPO, salaryItemMap.get(salarySobItemPO.getSalaryItemId()), resultValueMap, formulaContentMap)) + .collect(Collectors.toList()); + itemsByGroup.add(SalaryAcctResultDetailDTO.SalaryAcctResultDetailItemByGroupDTO.builder() + .salarySobItemGroupId(groupPO.getId()) + .salarySobItemGroupName(groupPO.getName()) + .salaryItems(items) + .sortedIndex(groupPO.getSortedIndex()).build() ); + } + } + // 未分类 + List noGroupItems = salarySobItemPOMap.getOrDefault(0L, Collections.emptyList()); + if(CollectionUtils.isNotEmpty(noGroupItems)){ + List items = noGroupItems.stream() .map(salarySobItemPO -> convert2SalaryAcctResultDetailItemDTO(salarySobItemPO, salaryItemMap.get(salarySobItemPO.getSalaryItemId()), resultValueMap, formulaContentMap)) .collect(Collectors.toList()); itemsByGroup.add(SalaryAcctResultDetailDTO.SalaryAcctResultDetailItemByGroupDTO.builder() - .salarySobItemGroupId(groupPO.getId()) - .salarySobItemGroupName(groupPO.getName()) + .salarySobItemGroupId(0L) + .salarySobItemGroupName("未分类") .salaryItems(items) - .sortedIndex(groupPO.getSortedIndex()).build() ); + .sortedIndex(itemsByGroup.size()).build()); } + + // // 公式项的值(不根据salaryItemPO的valueType判断是因为薪资项目的valueType属性改变后并不会同步更新薪资账套中的薪资项目的formulaId字段) // List formulaItems = salarySobItemPOS.stream() // .filter(salarySobItemPO -> salarySobItemPO.getFormulaId() > 0) diff --git a/src/com/engine/salary/service/impl/SalaryAcctResultServiceImpl.java b/src/com/engine/salary/service/impl/SalaryAcctResultServiceImpl.java index a1d5c7b7e..a226e0f59 100644 --- a/src/com/engine/salary/service/impl/SalaryAcctResultServiceImpl.java +++ b/src/com/engine/salary/service/impl/SalaryAcctResultServiceImpl.java @@ -601,9 +601,13 @@ public class SalaryAcctResultServiceImpl extends Service implements SalaryAcctRe List editItems = new ArrayList<>(); Map oldResutMap = SalaryEntityUtil.convert2Map(salaryAcctResultPOSOld, SalaryAcctResultPO::getSalaryItemId); salaryAcctResultPOS.stream().forEach(PO -> { - String oldValue = oldResutMap.get(PO.getSalaryItemId()).getResultValue(); - if(!StringUtils.equals(oldValue,PO.getResultValue())){ + if(oldResutMap.get(PO.getSalaryItemId()) == null){ editItems.add(PO); + }else{ + String oldValue = oldResutMap.get(PO.getSalaryItemId()).getResultValue(); + if(!StringUtils.equals(oldValue,PO.getResultValue())){ + editItems.add(PO); + } } }); List needInsertList = SalaryAcctResultLogBO.buildSalaryAcctResultLog(editItems, Long.valueOf(user.getUID()), SalaryAcctResultDataSourceEnum.EDIT);