From 2a29572ab5b4fcd6f49d258a6dedd8cf2394daed Mon Sep 17 00:00:00 2001
From: shenyijian <1178253012@qq.com>
Date: Wed, 11 Sep 2024 11:44:07 +0800
Subject: [PATCH] 湖北水库:项目进度排序

---
 skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/sg/service/impl/SgProjectInfoServiceImpl.java |   29 +++++++++++++++++------------
 skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/sg/mapper/SgProjectInfoMapper.xml             |   12 ++++++++----
 2 files changed, 25 insertions(+), 16 deletions(-)

diff --git a/skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/sg/mapper/SgProjectInfoMapper.xml b/skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/sg/mapper/SgProjectInfoMapper.xml
index b030e6f..60b2705 100644
--- a/skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/sg/mapper/SgProjectInfoMapper.xml
+++ b/skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/sg/mapper/SgProjectInfoMapper.xml
@@ -70,7 +70,7 @@
             ORDER BY info.status desc ,info.project_progress desc
         </if>
         <if test="dto.projectSort ==1">
-            ORDER BY info.project_progress desc
+            ORDER BY info.project_progress desc NULLS LAST
         </if>
         <if test="dto.projectSort != null and dto.projectSort ==2">
             ORDER BY info.sk_id asc
@@ -167,6 +167,7 @@
      <if test="dto.buildStage != null and dto.buildStage != ''">
          and pro.build_stage like CONCAT(CONCAT('%',#{dto.buildStage}),'%')
      </if>
+        ORDER BY pro.project_progress desc NULLS LAST
     </select>
     <select id="getSgstatiss" resultType="cn.gistack.sm.sg.VO.SgStatisticsVO">
         SELECT
@@ -323,10 +324,11 @@
         select DISTINCT  "bas_guid"  from SJZT_DW."dim_res_info_a" where "bas_name" = #{code}
     </select>
     <select id="progressList1" resultType="cn.gistack.sm.sg.VO.SgProjectInfoVO">
-        select pro.id,
+        select DISTINCT pro.id,
         pro.project_name,
         pro.lon_lat,
-        pro.status
+        pro.status,
+        pro.project_progress
         from
         (SELECT
         pro.id,
@@ -337,7 +339,8 @@
         pro.build_stage,
         dria."county_cd" AS countyCode,
         att."guid" AS cityCode,
-        ad."ad_code" AS provinceCode
+        ad."ad_code" AS provinceCode,
+        pro.project_progress
         FROM
         ywxt.sg_project_info pro
         LEFT JOIN SJZT_DW."dim_res_info_a" dria ON dria."res_cd" = pro.sk_id
@@ -361,6 +364,7 @@
         <if test="dto.buildStage != null and dto.buildStage != ''">
             and pro.build_stage like CONCAT(CONCAT('%',#{dto.buildStage}),'%')
         </if>
+        order by pro.project_progress desc NULLS LAST
     </select>
     <select id="queryStepByProject1" resultType="cn.gistack.sm.sg.VO.SgProjectInfoVO">
     select
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 d7ce505..868e1a8 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
@@ -295,20 +295,25 @@
 				list = sgProjectInfoMapper.progressList(page, searchDTO);
 			}
 
-		List<Long> ids = list.stream().map(SgProjectInfoVO::getId).collect(Collectors.toList());
-		searchDTO.setProjectIds(ids);
-		List<SgProjectInfoDO> projectProgress = new ArrayList<>();
-		if(StringUtils.isNotBlank(searchDTO.getAdCode())){
-			projectProgress = getProjectProgress(sgProjectInfoMapper.queryStepByProject1(searchDTO));
-		}else {
-			projectProgress = getProjectProgress(sgProjectInfoMapper.queryStepByProject(searchDTO));
-		}
+//		List<Long> ids = list.stream().map(SgProjectInfoVO::getId).collect(Collectors.toList());
+//		searchDTO.setProjectIds(ids);
+//		List<SgProjectInfoDO> projectProgress = new ArrayList<>();
+//		if(StringUtils.isNotBlank(searchDTO.getAdCode())){
+//			projectProgress = getProjectProgress(sgProjectInfoMapper.queryStepByProject1(searchDTO));
+//		}else {
+//			projectProgress = getProjectProgress(sgProjectInfoMapper.queryStepByProject(searchDTO));
+//		}
 
-		if (CollectionUtils.isNotEmpty(projectProgress)){
-		Map<Long, String> progressMap = projectProgress.stream().filter(s->s!=null && s.getProjectProgress() !=null).collect(Collectors.toMap(SgProjectInfoDO::getId, SgProjectInfoDO::getProjectProgress));
+//		if (CollectionUtils.isNotEmpty(projectProgress)){
+		//Map<Long, String> progressMap = projectProgress.stream().filter(s->s!=null && s.getProjectProgress() !=null).collect(Collectors.toMap(SgProjectInfoDO::getId, SgProjectInfoDO::getProjectProgress));
 		list.forEach(s->{
-			s.setProjectProgress(progressMap.get(s.getId()));
-		});}
+			if (StringUtils.isNotBlank(s.getProjectProgress())){
+				s.setProjectProgress(s.getProjectProgress()+"%");
+			}else {
+				s.setProjectProgress("0%");
+			}
+		});
+//		}
 		return page.setRecords(list);
 	}
 

--
Gitblit v1.9.3