From 80dfacf568cff028357ab140fa56e739475745ca Mon Sep 17 00:00:00 2001
From: shenyijian <1178253012@qq.com>
Date: Thu, 31 Oct 2024 18:20:44 +0800
Subject: [PATCH] 湖北水库:项目上报问题

---
 skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/sg/service/impl/SgProjectInfoServiceImpl.java |   19 ++++++++++++-------
 1 files changed, 12 insertions(+), 7 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..91c2359 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<>();
@@ -200,7 +203,7 @@
 				if (CollectionUtils.isEmpty(ptyValue)){
 					continue;
 				}
-				PtypeVO ptypeVO = PtypeVO.builder().pTypeName(ptyValue.get(0).getPtypeName()).build();
+				PtypeVO ptypeVO = PtypeVO.builder().pTypeName(ptyValue.get(0).getPtypeName()).sort(ptyValue.get(0).getSort()).build();
 				List<SgTypeVO> sgGxDOS = new ArrayList<>();
 				//类型分组
 				Map<String, List<SgProjectInfoVO>> GxMap = ptyValue.stream().filter(s->s.getDeviceType()!=null).collect(Collectors.groupingBy(SgProjectInfoVO::getDeviceType));
@@ -210,10 +213,11 @@
 					if (CollectionUtils.isEmpty(gxList)){
 						continue;
 					}
+					gxList = gxList.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());
@@ -259,7 +263,8 @@
 				double sum = allDevice.stream().mapToDouble(s -> Double.parseDouble(s.getProgress())).sum();
 				BigDecimal allDeviceOver = BigDecimal.valueOf(sum);
 				BigDecimal allDivideDevice = allDeviceOver.divide(allDeviceSize, 2, RoundingMode.HALF_UP);
-				sgProjectInfoDO.setPtypeVOS(pTypes);
+				List<PtypeVO> sortPtpes = pTypes.stream().sorted(Comparator.comparing(PtypeVO::getSort)).collect(Collectors.toList());
+				sgProjectInfoDO.setPtypeVOS(sortPtpes);
 				sgProjectInfoDO.setProjectProgress( getBigDecimalPercent(allDivideDevice));
 				sgProjectInfoDO.setProjectProgressNum(allDivideDevice);
 			}
@@ -676,7 +681,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