From 0aa9af7bc8e34d539c990c5d714e24092a2d53e7 Mon Sep 17 00:00:00 2001
From: shenyijian <1178253012@qq.com>
Date: Fri, 20 Sep 2024 17:35:24 +0800
Subject: [PATCH] 湖北水库:水库分页接口

---
 skjcmanager/skjcmanager-service-api/skjcmanager-sm-api/src/main/java/cn/gistack/sm/sg/DO/SgReportUserDO.java                |    2 
 skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/sg/mapper/SgProgressReportMapper.java            |    2 
 skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/sg/service/impl/SgProgressReportServiceImpl.java |   45 ++++----------
 skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/sg/service/impl/SgProjectInfoServiceImpl.java    |    9 +++
 skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/sg/mapper/SgProjectInfoMapper.java               |    4 +
 skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/sg/service/SgProjectInfoService.java             |    2 
 skjcmanager/skjcmanager-service-api/skjcmanager-sm-api/src/main/java/cn/gistack/sm/sg/VO/ResVO.java                         |   35 +++++++++++
 skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/sg/mapper/SgProjectInfoMapper.xml                |   38 ++++++++++++
 skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/sg/controller/SgProjectInfoController.java       |   10 +++
 skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/sg/mapper/SgProgressReportMapper.xml             |    9 +++
 10 files changed, 122 insertions(+), 34 deletions(-)

diff --git a/skjcmanager/skjcmanager-service-api/skjcmanager-sm-api/src/main/java/cn/gistack/sm/sg/DO/SgReportUserDO.java b/skjcmanager/skjcmanager-service-api/skjcmanager-sm-api/src/main/java/cn/gistack/sm/sg/DO/SgReportUserDO.java
index d562576..c9a93de 100644
--- a/skjcmanager/skjcmanager-service-api/skjcmanager-sm-api/src/main/java/cn/gistack/sm/sg/DO/SgReportUserDO.java
+++ b/skjcmanager/skjcmanager-service-api/skjcmanager-sm-api/src/main/java/cn/gistack/sm/sg/DO/SgReportUserDO.java
@@ -44,6 +44,8 @@
 	 * 角色ID
 	 */
 	private Long roleId;
+	@TableField(exist = false)
+	private String roleName;
 
 
 	/**
diff --git a/skjcmanager/skjcmanager-service-api/skjcmanager-sm-api/src/main/java/cn/gistack/sm/sg/VO/ResVO.java b/skjcmanager/skjcmanager-service-api/skjcmanager-sm-api/src/main/java/cn/gistack/sm/sg/VO/ResVO.java
new file mode 100644
index 0000000..524b3f7
--- /dev/null
+++ b/skjcmanager/skjcmanager-service-api/skjcmanager-sm-api/src/main/java/cn/gistack/sm/sg/VO/ResVO.java
@@ -0,0 +1,35 @@
+package cn.gistack.sm.sg.VO;
+
+import lombok.Data;
+
+/**
+ * 水库实体类
+ */
+@Data
+public class ResVO {
+	/**
+	 * 主键
+	 */
+	private  String guid;
+	/**
+	 * 市
+	 */
+	private  String cityNm;
+
+	/**
+	 * 县
+	 */
+	private  String countyNm;
+	/**
+	 * 水库
+	 */
+	private  String resNm;
+	/**
+	 * 注册登记号
+	 */
+	private  String othRegCd;
+	/**
+	 * 工程规模
+	 */
+	private  String engScal;
+}
diff --git a/skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/sg/controller/SgProjectInfoController.java b/skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/sg/controller/SgProjectInfoController.java
index 3c63867..0c89efa 100644
--- a/skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/sg/controller/SgProjectInfoController.java
+++ b/skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/sg/controller/SgProjectInfoController.java
@@ -156,4 +156,14 @@
 	List<SgProjectTreeVO> tree = sgProjectInfoService.projectTree(dto);
 		return R.data(tree);
 	}
+
+
+	/**
+	 * 水库列表
+	 */
+	@GetMapping("res_list")
+	public R resList(ProjectSearchDTO dto,Query query) {
+		IPage<ResVO> page= sgProjectInfoService.resList(Condition.getPage(query),dto);
+		return R.data(page);
+	}
 }
diff --git a/skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/sg/mapper/SgProgressReportMapper.java b/skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/sg/mapper/SgProgressReportMapper.java
index 59beb62..cb4bc8b 100644
--- a/skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/sg/mapper/SgProgressReportMapper.java
+++ b/skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/sg/mapper/SgProgressReportMapper.java
@@ -42,4 +42,6 @@
 	Long selectProframId(Long deviceId);
 
 	List<SgReportUserDO> selectProcessUserByProjectId(@Param("programId") Long programId);
+
+	List<Map<String, Object>> getRoleByIds(@Param("ids")List<Long> rids);
 }
diff --git a/skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/sg/mapper/SgProgressReportMapper.xml b/skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/sg/mapper/SgProgressReportMapper.xml
index 63c4feb..416a840 100644
--- a/skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/sg/mapper/SgProgressReportMapper.xml
+++ b/skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/sg/mapper/SgProgressReportMapper.xml
@@ -231,4 +231,13 @@
         select  u.* from ywxt.sg_report_user u left join  ywxt.sg_progresss_report r on u.report_id = r.id
         where 1=1 and r.profram_id = #{programId}
     </select>
+    <select id="getRoleByIds" resultType="java.util.Map">
+        select id,role_name as roleName from "YWXT"."BLADE_ROLE" WHERE 1=1
+        <if test="ids != null and ids.size>0">
+            AND id in
+            <foreach collection="ids" item="item" index="index" open="(" separator="," close=")">
+                #{item}
+            </foreach>
+        </if>
+    </select>
 </mapper>
diff --git a/skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/sg/mapper/SgProjectInfoMapper.java b/skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/sg/mapper/SgProjectInfoMapper.java
index c2c1a0a..ae67c04 100644
--- a/skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/sg/mapper/SgProjectInfoMapper.java
+++ b/skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/sg/mapper/SgProjectInfoMapper.java
@@ -59,6 +59,8 @@
 
     List<String> getUserS(String controlUnit);
 
+	List<ResVO> resList(IPage<ResVO> page, @Param("dto") ProjectSearchDTO dto);
 
-    //List<String> getProjectIds(String code,@Param("grad") String grad );
+
+	//List<String> getProjectIds(String code,@Param("grad") String grad );
 }
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 26becd3..fa38d0e 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 @@
             and (info.control_unit = #{dto.deptId} or info.construction_unit = #{dto.deptId})
         </if>
        <if test="dto.projectSort == null">
-            ORDER BY info.status desc ,info.project_progress desc NULLS LAST
+            ORDER BY TO_NUMBER(info.project_progress) desc NULLS LAST,info.status desc
         </if>
         <!--
        <if test="dto.projectSort ==1">
@@ -130,6 +130,7 @@
         re.resubmit
         FROM
         ywxt.sg_project_info pro
+        LEFT JOIN SJZT_DW."dim_res_info_a" dria ON dria."res_cd" = pro.sk_id
         LEFT JOIN ywxt.sg_device d ON pro.id = d.program_id
         LEFT JOIN YWXT."BLADE_DICT_BIZ" AS dict ON d.device_type = dict.DICT_KEY AND dict.CODE = 'SG_DEVICE_TYPE'
         LEFT JOIN YWXT."BLADE_DICT_BIZ" Pdict on dict.parent_id = Pdict.id
@@ -159,6 +160,7 @@
         <if test="dto.buildStage != null and dto.buildStage != ''">
             and pro.build_stage like CONCAT(CONCAT('%',#{dto.buildStage}),'%')
         </if>
+        <include refid="queryBySgCodeS"></include>
        ORDER BY pro.status desc ,pro.project_progress desc
 
     </select>
@@ -445,7 +447,10 @@
         LEFT JOIN SJZT_DW."dim_res_info_a" dria ON dria."res_cd" = pro.sk_id
         LEFT JOIN YWXT."att_ad_base" att ON att."ad_code" = dria."city_cd"
         LEFT JOIN YWXT."att_ad_base" ad ON att."p_ad_code" = ad."ad_code"
-        LEFT JOIN YWXT."att_ad_base" aad ON aad."ad_code" = ad."p_ad_code") pro
+        LEFT JOIN YWXT."att_ad_base" aad ON aad."ad_code" = ad."p_ad_code"
+        where 1=1
+        <include refid="queryBySgCodeS"></include>
+        ) pro
         LEFT JOIN YWXT."att_ad_base" a ON (
         ( pro.countyCode = a."guid" )
         OR ( pro.cityCode = a."guid" )
@@ -474,6 +479,28 @@
         </if>
         ORDER BY pro.projectStatus desc ,pro.project_progress desc
     </select>
+
+    <sql id="queryBySgCodeS">
+        <if test="dto.sgCodeS != null and dto.sgCodeS.size > 0">
+            and (dria."province_cd" in
+            <foreach collection="dto.sgCodeS" item="id" separator="," open="(" close=")">
+                #{id}
+            </foreach>
+            or dria."city_cd" in
+            <foreach collection="dto.sgCodeS" item="id" separator="," open="(" close=")">
+                #{id}
+            </foreach>
+            or dria."county_cd" in
+            <foreach collection="dto.sgCodeS" item="id" separator="," open="(" close=")">
+                #{id}
+            </foreach>
+            or dria."town_cd" in
+            <foreach collection="dto.sgCodeS" item="id" separator="," open="(" close=")">
+                #{id}
+            </foreach>)
+        </if>
+    </sql>
+
     <select id="selectVOById" resultType="cn.gistack.sm.sg.VO.SgProjectInfoVO">
         select * from  ywxt.sg_project_info pro where pro.id = #{proframId}
     </select>
@@ -554,4 +581,11 @@
 
 
     </select>
+    <select id="resList" resultType="cn.gistack.sm.sg.VO.ResVO">
+        select dria.* from "SJZT_DW"."dim_res_info_a" dria where 1=1
+        <if test="dto.adCode != null and dto.adCode != ''">
+           and (dria."province_cd" = #{dto.adCode} or dria."city_cd" = #{dto.adCode} or dria."county_cd" = #{dto.adCode})
+        </if>
+        <include refid="queryBySgCodeS"></include>
+    </select>
 </mapper>
diff --git a/skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/sg/service/SgProjectInfoService.java b/skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/sg/service/SgProjectInfoService.java
index 80e179b..5c28f2e 100644
--- a/skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/sg/service/SgProjectInfoService.java
+++ b/skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/sg/service/SgProjectInfoService.java
@@ -41,4 +41,6 @@
 	List<SgStatistccVO> getsgStatisticscc(String code);
 
 	List<SgProjectTreeVO> projectTree(ProjectSearchDTO dto);
+
+	IPage<ResVO> resList(IPage<ResVO> page, ProjectSearchDTO dto);
 }
diff --git a/skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/sg/service/impl/SgProgressReportServiceImpl.java b/skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/sg/service/impl/SgProgressReportServiceImpl.java
index ebf9695..83ef140 100644
--- a/skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/sg/service/impl/SgProgressReportServiceImpl.java
+++ b/skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/sg/service/impl/SgProgressReportServiceImpl.java
@@ -299,14 +299,24 @@
 			sgProgressReportVO.setDeviceName(sgDeviceDO.getDeviceName());
 		}else {
 		sgProgressReportVO.setDeviceName("");}
-		List<SgReportUserDO> list =  new LambdaQueryChainWrapper<>(sgReportUserMapper).eq(SgReportUserDO::getReportId,id).orderByAsc(SgReportUserDO::getApprovalTime).list();
-		List<Long> ids = list.stream().map(s -> s.getUserId()).collect(Collectors.toList());
+		List<SgReportUserDO> list =  new LambdaQueryChainWrapper<>(sgReportUserMapper).eq(SgReportUserDO::getReportId,id).orderByAsc(SgReportUserDO::getApprovalOrder).list();
+		List<Long> ids = list.stream().map(SgReportUserDO::getUserId).collect(Collectors.toList());
+		List<Long> rids = list.stream().map(SgReportUserDO::getRoleId).collect(Collectors.toList());
 		List<Map<String,Object>> users = sgProgressReportMapper.getUserByIds(ids);
+		List<Map<String,Object>> roles = sgProgressReportMapper.getRoleByIds(rids);
+
 		for (Map<String, Object> user : users) {
 			for (SgReportUserDO sgReportUserDO : list) {
 				if (user.get("ID").equals(sgReportUserDO.getUserId())){
 					sgReportUserDO.setUserName(user.get("REAL_NAME").toString());
 					sgReportUserDO.setDeptName(user.get("DEPTNAME").toString());
+				}
+			}
+		}
+		for (Map<String, Object> r : roles) {
+			for (SgReportUserDO sgReportUserDO : list) {
+				if (r.get("ID").equals(sgReportUserDO.getRoleId())){
+					sgReportUserDO.setRoleName(r.get("ROLENAME").toString());
 				}
 			}
 		}
@@ -367,7 +377,8 @@
 		//审批者
 		SgReportUserDO sgReportUserDO = new SgReportUserDO();
 		if (isReject==1){
-			sgReportUserDO = sgReportUserDOS.get(0);
+			sgReportUserDO = SgReportUserDO.builder().reportId(approvalDTO.getId()).approvalOrder(sgReportUserDOS.get(sgReportUserDOS.size() - 1).getApprovalOrder()+1).roleId(Long.valueOf(roleId)).build();
+			sgReportUserMapper.insert(sgReportUserDO);
 		}else {
 			sgReportUserDO = sgReportUserDOS.stream().filter(s -> s.getRoleId().equals(Long.parseLong(sgProgressReportDO.getAuditPerson()))).findFirst().get();
 		}
@@ -402,35 +413,7 @@
 			updateChainWrapper.set(SgProgressReportDO::getResubmit,0);
 			userUpdate.set(SgReportUserDO::getApprovalStatus,2);
 			userUpdate.set(SgReportUserDO::getUserId,userId);
-			if (isReject==1){
-				userUpdate.set(SgReportUserDO::getUserId,userId);
-			}
 			userUpdate.update();
-			/*for (SgReportUserDO reportUserDO : sgReportUserDOS) {
-				if (reportUserDO.getApprovalOrder()<=sgReportUserDO.getApprovalOrder()&&reportUserDO.getApprovalOrder()!=0){
-					//更新为历史数据
-					new LambdaUpdateChainWrapper<>(sgReportUserMapper).eq(SgReportUserDO::getId,reportUserDO.getId()).set(SgReportUserDO::getIsHis,1).update();
-					setReportUser(date, reportUserDO);
-					sgReportUserMapper.insert(reportUserDO);
-					try {
-						Thread.sleep(100);
-					} catch (InterruptedException e) {
-						throw new RuntimeException(e);
-					}
-				}else if (reportUserDO.getApprovalOrder()>sgReportUserDO.getApprovalOrder()){
-					sgReportUserMapper.deleteById(reportUserDO.getId());
-					setReportUser(date, reportUserDO);
-					sgReportUserMapper.insert(reportUserDO);
-					try {
-						Thread.sleep(100);
-					} catch (InterruptedException e) {
-						throw new RuntimeException(e);
-					}
-				}
-				if (reportUserDO.getApprovalOrder()==1){
-					updateChainWrapper.set(SgProgressReportDO::getAuditPerson,reportUserDO.getUserId());
-				}
-			}*/
 			updateChainWrapper.update();
 		}
 
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 b8bfbde..a33dc27 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
@@ -623,6 +623,8 @@
 
 	@Override
 	public Map<String, Object> projectCount(ProjectSearchDTO searchDTO) {
+		List<String> sgCodeS = getSgCodeByUser();
+		searchDTO.setSgCodeS(sgCodeS);
 		Map<String, Object> map  = new HashMap<>();
 		List<SgProjectInfoVO> progressList = progressList(searchDTO);
 		BigDecimal reduce = progressList.stream().filter(s->s.getProjectProgressNum()!=null).map(SgProjectInfoDO::getProjectProgressNum).reduce(BigDecimal.ZERO, BigDecimal::add);
@@ -771,4 +773,11 @@
 		return new ArrayList<>();
 	}
 
+	@Override
+	public IPage<ResVO> resList(IPage<ResVO> page, ProjectSearchDTO dto) {
+		List<String> sgCodeByUser = getSgCodeByUser();
+		dto.setSgCodeS(sgCodeByUser);
+		return page.setRecords(baseMapper.resList(page,dto));
+	}
+
 }

--
Gitblit v1.9.3