|
|
|
@ -389,55 +389,57 @@ public class CarbonPubProductionResultServiceImpl extends BaseServiceImpl<Carbon |
|
|
|
// 生产消耗与排放 |
|
|
|
List<JSONArray> pmJsonArrayList = carbonTypeDetailMap.get("2"); |
|
|
|
List<PmProcessDetail> pmProcessDetailResult = new ArrayList<>(); |
|
|
|
List<PmProcessDetail> pmProcessDetails = |
|
|
|
pmJsonArrayList.stream() |
|
|
|
.map(arr -> arr.toJavaList(PmProcessDetail.class)) |
|
|
|
.flatMap(Collection::stream) |
|
|
|
.sorted(Comparator.comparing(PmProcessDetail::getOrderNum)) |
|
|
|
.toList(); |
|
|
|
pmProcessDetails.stream() |
|
|
|
.collect( |
|
|
|
Collectors.groupingBy( |
|
|
|
e -> |
|
|
|
e.getProcessName() |
|
|
|
+ "_" |
|
|
|
+ e.getProcessCode() |
|
|
|
+ "_" |
|
|
|
+ e.getEvId())) |
|
|
|
.forEach( |
|
|
|
(k, v) -> { |
|
|
|
Optional<PmProcessDetail> opt = v.stream().reduce(PmProcessDetail::add); |
|
|
|
opt.ifPresent(pmProcessDetailResult::add); |
|
|
|
}); |
|
|
|
if(Objects.nonNull(pmJsonArrayList.get(0))){ |
|
|
|
List<PmProcessDetail> pmProcessDetails = |
|
|
|
pmJsonArrayList.stream() |
|
|
|
.map(arr -> arr.toJavaList(PmProcessDetail.class)) |
|
|
|
.flatMap(Collection::stream) |
|
|
|
.sorted(Comparator.comparing(PmProcessDetail::getOrderNum)) |
|
|
|
.toList(); |
|
|
|
pmProcessDetails.stream() |
|
|
|
.collect( |
|
|
|
Collectors.groupingBy( |
|
|
|
e -> |
|
|
|
e.getProcessName() |
|
|
|
+ "_" |
|
|
|
+ e.getProcessCode() |
|
|
|
+ "_" |
|
|
|
+ e.getEvId())) |
|
|
|
.forEach( |
|
|
|
(k, v) -> { |
|
|
|
Optional<PmProcessDetail> opt = v.stream().reduce(PmProcessDetail::add); |
|
|
|
opt.ifPresent(pmProcessDetailResult::add); |
|
|
|
}); |
|
|
|
} |
|
|
|
res.setProductDetails(pmProcessDetailResult); |
|
|
|
|
|
|
|
// 公摊消耗与排放 |
|
|
|
List<JSONArray> shareJsonArrayList = carbonTypeDetailMap.get("3"); |
|
|
|
List<PIndirectDetail> pIndirectDetailResult = new ArrayList<>(); |
|
|
|
List<PIndirectDetail> pIndirectDetails = |
|
|
|
shareJsonArrayList.stream() |
|
|
|
.map(arr -> arr.toJavaList(PIndirectDetail.class)) |
|
|
|
.flatMap(Collection::stream) |
|
|
|
.sorted(Comparator.comparing(PIndirectDetail::getOrderNum)) |
|
|
|
.toList(); |
|
|
|
pIndirectDetails.stream() |
|
|
|
.collect( |
|
|
|
Collectors.groupingBy( |
|
|
|
e -> |
|
|
|
e.getProcessName() |
|
|
|
+ "_" |
|
|
|
+ e.getProcessCode() |
|
|
|
+ "_" |
|
|
|
+ e.getIeName() |
|
|
|
+ "_" |
|
|
|
+ e.getEvId())) |
|
|
|
.forEach( |
|
|
|
(k, v) -> { |
|
|
|
Optional<PIndirectDetail> opt = v.stream().reduce(PIndirectDetail::add); |
|
|
|
opt.ifPresent(pIndirectDetailResult::add); |
|
|
|
}); |
|
|
|
if(Objects.nonNull(shareJsonArrayList.get(0))){ |
|
|
|
List<PIndirectDetail> pIndirectDetails = |
|
|
|
shareJsonArrayList.stream() |
|
|
|
.map(arr -> arr.toJavaList(PIndirectDetail.class)) |
|
|
|
.flatMap(Collection::stream) |
|
|
|
.sorted(Comparator.comparing(PIndirectDetail::getOrderNum)) |
|
|
|
.toList(); |
|
|
|
pIndirectDetails.stream() |
|
|
|
.collect( |
|
|
|
Collectors.groupingBy( |
|
|
|
e -> |
|
|
|
e.getProcessName() |
|
|
|
+ "_" |
|
|
|
+ e.getProcessCode() |
|
|
|
+ "_" |
|
|
|
+ e.getIeName() |
|
|
|
+ "_" |
|
|
|
+ e.getEvId())) |
|
|
|
.forEach( |
|
|
|
(k, v) -> { |
|
|
|
Optional<PIndirectDetail> opt = v.stream().reduce(PIndirectDetail::add); |
|
|
|
opt.ifPresent(pIndirectDetailResult::add); |
|
|
|
}); |
|
|
|
} |
|
|
|
res.setShareDetails(pIndirectDetailResult); |
|
|
|
|
|
|
|
return res; |
|
|
|
} |
|
|
|
|
|
|
|
|