|
@@ -1430,4 +1430,48 @@ public class KwcContractLogisticsService {
|
|
|
}
|
|
}
|
|
|
return kwcContractLogisticsRepository.updateLogistics(updateLogistics);
|
|
return kwcContractLogisticsRepository.updateLogistics(updateLogistics);
|
|
|
}
|
|
}
|
|
|
|
|
+
|
|
|
|
|
+ public ContractStatusCountResp queryLogisticContractStatusCount() {
|
|
|
|
|
+
|
|
|
|
|
+ log.info("查询物流合同订单状态统计");
|
|
|
|
|
+ List<KwcContractLogistics> contractLogistics = kwcContractLogisticsRepository.queryByEntId(LoginUserHolder.getEntId());
|
|
|
|
|
+
|
|
|
|
|
+ List<ContractStatusEnum> statusEnums = Arrays.stream(ContractStatusEnum.values())
|
|
|
|
|
+ .sorted(Comparator.comparing(ContractStatusEnum::getCode))
|
|
|
|
|
+ .collect(Collectors.toList());
|
|
|
|
|
+ ContractStatusCountResp contractStatusCountResp = new ContractStatusCountResp();
|
|
|
|
|
+ contractStatusCountResp.setTotalNum(String.valueOf(contractLogistics.size()));
|
|
|
|
|
+
|
|
|
|
|
+ if (CollectionUtils.isEmpty(contractLogistics)){
|
|
|
|
|
+ Map<Integer, List<KwcContractLogistics>> statusAndLogOrdersMap = new HashMap<>();
|
|
|
|
|
+ List<ContractStatusCountResp.ContractStatusCount> statusCounts = statusEnums.stream()
|
|
|
|
|
+ .map(x -> getContractStatusCount(x, statusAndLogOrdersMap))
|
|
|
|
|
+ .collect(Collectors.toList());
|
|
|
|
|
+ contractStatusCountResp.setContractStatusInfo(statusCounts);
|
|
|
|
|
+ return contractStatusCountResp;
|
|
|
|
|
+ }
|
|
|
|
|
+ Map<Integer, List<KwcContractLogistics>> statusAndLogOrdersMap = contractLogistics.stream().collect(Collectors.groupingBy(KwcContractLogistics::getStatus));
|
|
|
|
|
+ return getContractStatusCountResp(statusEnums, statusAndLogOrdersMap, contractStatusCountResp, contractLogistics);
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ @NotNull
|
|
|
|
|
+ private static ContractStatusCountResp getContractStatusCountResp(List<ContractStatusEnum> statusEnums,
|
|
|
|
|
+ Map<Integer, List<KwcContractLogistics>> statusAndLogOrdersMap,
|
|
|
|
|
+ ContractStatusCountResp contractStatusCountResp,
|
|
|
|
|
+ List<KwcContractLogistics> kwcContractLogistics) {
|
|
|
|
|
+ List<ContractStatusCountResp.ContractStatusCount> statusCounts = statusEnums.stream()
|
|
|
|
|
+ .map(x -> getContractStatusCount(x, statusAndLogOrdersMap))
|
|
|
|
|
+ .collect(Collectors.toList());
|
|
|
|
|
+ contractStatusCountResp.setContractStatusInfo(statusCounts);
|
|
|
|
|
+ contractStatusCountResp.setTotalNum(String.valueOf(kwcContractLogistics.size()));
|
|
|
|
|
+ return contractStatusCountResp;
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ private static ContractStatusCountResp.ContractStatusCount getContractStatusCount(ContractStatusEnum statusEnum, Map<Integer, List<KwcContractLogistics>> finalStatusAndLogOrdersMap1) {
|
|
|
|
|
+ ContractStatusCountResp.ContractStatusCount contractStatusCount = new ContractStatusCountResp.ContractStatusCount();
|
|
|
|
|
+ contractStatusCount.setOrderStatus(String.valueOf(statusEnum.getCode()));
|
|
|
|
|
+ contractStatusCount.setOrderStatusDesc(statusEnum.getName());
|
|
|
|
|
+ contractStatusCount.setOrderNum(String.valueOf(finalStatusAndLogOrdersMap1.getOrDefault(statusEnum.getCode(), new ArrayList<>()).size()));
|
|
|
|
|
+ return contractStatusCount;
|
|
|
|
|
+ }
|
|
|
}
|
|
}
|