From 0daf60dc7bd51091b64639e656686c611926a86f Mon Sep 17 00:00:00 2001
From: shenyijian <1178253012@qq.com>
Date: Thu, 31 Oct 2024 10:33:41 +0800
Subject: [PATCH] 湖北水库:修复项目进度报错
---
skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/sg/service/impl/SgProjectInfoServiceImpl.java | 14 +++++++++-----
1 files changed, 9 insertions(+), 5 deletions(-)
diff --git a/skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/sg/service/impl/SgProjectInfoServiceImpl.java b/skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/sg/service/impl/SgProjectInfoServiceImpl.java
index d48235a..4edd9b9 100644
--- a/skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/sg/service/impl/SgProjectInfoServiceImpl.java
+++ b/skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/sg/service/impl/SgProjectInfoServiceImpl.java
@@ -162,7 +162,7 @@
public List<SgProjectInfoDO> queryStepByProject(ProjectSearchDTO searchDTO) {
List<PreAcceVO> palist = new ArrayList<>();
List<SgProjectInfoVO> list = sgProjectInfoMapper.queryStepByProject( searchDTO);
- palist.add(handleQuery(25, list.get(0).getId()));
+ palist.add(handleQuery(20, list.get(0).getId()));
palist.add(handleQuery(26, list.get(0).getId()));
List<SgProjectInfoDO> projectProgress = getProjectProgress(list);
projectProgress.forEach(s->{
@@ -180,8 +180,11 @@
*/
@NotNull
public List<SgProjectInfoDO> getProjectProgress(List<SgProjectInfoVO> list) {
+ List<SgProjectInfoVO> sortedList = list.stream()
+ .sorted(Comparator.comparing(SgProjectInfoVO::getSort))
+ .collect(Collectors.toList());
//项目分组
- Map<Long, List<SgProjectInfoVO>> projectMap = list.stream().collect(Collectors.groupingBy(SgProjectInfoVO::getId));
+ Map<Long, List<SgProjectInfoVO>> projectMap = sortedList.stream().collect(Collectors.groupingBy(SgProjectInfoVO::getId));
List<SgProjectInfoDO> result = new ArrayList<>();
for (Map.Entry<Long, List<SgProjectInfoVO>> entry : projectMap.entrySet()) {
List<SgDeviceDO> allDevice = new ArrayList<>();
@@ -210,10 +213,11 @@
if (CollectionUtils.isEmpty(gxList)){
continue;
}
+ gxList = list.stream().sorted(Comparator.comparing(SgProjectInfoVO::getPrice)).collect(Collectors.toList());
SgTypeVO typeVO = SgTypeVO.builder().typeName(gxList.get(0).getTypeName()).build();
List<SgDeviceDO> deviceDOS = new ArrayList<>();
//设备分组
- Map<Long, List<SgProjectInfoVO>> dMap = gxList.stream().collect(Collectors.groupingBy(SgProjectInfoVO::getDId));
+ Map<Long, List<SgProjectInfoVO>> dMap = gxList.stream().filter(s->s.getDId()!=null).collect(Collectors.groupingBy(SgProjectInfoVO::getDId));
for (Map.Entry<Long, List<SgProjectInfoVO>> device : dMap.entrySet()) {
Long dId = device.getKey();
List<SgProjectInfoVO> deList = device.getValue();
@@ -240,7 +244,7 @@
double sum = deviceDOS.stream().mapToDouble(s -> Double.parseDouble(s.getProgress())).sum();
BigDecimal deviceOver = BigDecimal.valueOf(sum);
BigDecimal divideDevice = deviceOver.divide(deviceSize, 2, RoundingMode.HALF_UP);
- List<SgDeviceDO> sortDeviceDOs = deviceDOS.stream().sorted(Comparator.comparing(SgDeviceDO::getPrice)).collect(Collectors.toList());
+ List<SgDeviceDO> sortDeviceDOs = deviceDOS.stream().filter(s->s.getPrice()!=null).sorted(Comparator.comparing(SgDeviceDO::getPrice)).collect(Collectors.toList());
typeVO.setDeviceDOS(sortDeviceDOs);
typeVO.setTypeProgress(getBigDecimalPercent(divideDevice));
typeVO.setProgress(divideDevice.toString());
@@ -676,7 +680,7 @@
SgGxStepDO sgGxStepDO = sgGxStepMapper.selectById(stepIdForNull);
preAcceVO.setName(sgGxStepDO.getGxStepName());
preAcceVO.setProgramId(programId);
- preAcceVO.setGxDeviceId(stepIdForNull != 25? (long)998:(long)999);
+ preAcceVO.setGxDeviceId(stepIdForNull != 20? (long)998:(long)999);
preAcceVO.setGxStepId(sgGxStepDO.getId());
}
--
Gitblit v1.9.3