From f8c80586bfc419db594673b8ea0524a246d596ca Mon Sep 17 00:00:00 2001
From: shenyijian <1178253012@qq.com>
Date: Fri, 13 Sep 2024 21:44:02 +0800
Subject: [PATCH] 湖北水库:审核流修改

---
 skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/sg/service/impl/SgGxServiceImpl.java             |    6 +++
 skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/sg/service/impl/SgProgressReportServiceImpl.java |   28 ++++++++------
 skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/sg/service/impl/SgProjectInfoServiceImpl.java    |   31 +++++++++++++--
 skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/sg/mapper/SgGxMapper.java                        |    2 +
 skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/sg/mapper/SgGxMapper.xml                         |    9 ++++
 skjcmanager/skjcmanager-service-api/skjcmanager-sm-api/src/main/java/cn/gistack/sm/sg/DTO/ProjectSearchDTO.java             |    5 ++
 skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/sg/mapper/SgProjectInfoMapper.xml                |   25 +++++++++---
 7 files changed, 83 insertions(+), 23 deletions(-)

diff --git a/skjcmanager/skjcmanager-service-api/skjcmanager-sm-api/src/main/java/cn/gistack/sm/sg/DTO/ProjectSearchDTO.java b/skjcmanager/skjcmanager-service-api/skjcmanager-sm-api/src/main/java/cn/gistack/sm/sg/DTO/ProjectSearchDTO.java
index a14260f..5a87ab9 100644
--- a/skjcmanager/skjcmanager-service-api/skjcmanager-sm-api/src/main/java/cn/gistack/sm/sg/DTO/ProjectSearchDTO.java
+++ b/skjcmanager/skjcmanager-service-api/skjcmanager-sm-api/src/main/java/cn/gistack/sm/sg/DTO/ProjectSearchDTO.java
@@ -129,4 +129,9 @@
 	 */
 	private String buildStage;
 
+	/**
+	 * 子类型
+	 */
+	private List<String> childTypeList;
+
 }
diff --git a/skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/sg/mapper/SgGxMapper.java b/skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/sg/mapper/SgGxMapper.java
index dfb9ddb..e0917b3 100644
--- a/skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/sg/mapper/SgGxMapper.java
+++ b/skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/sg/mapper/SgGxMapper.java
@@ -28,4 +28,6 @@
 	SgGxDO selectByGxType(@Param("gxType") String gxType);
 
 	SgGxVO getById(@Param("id") Long id);
+
+	List<String> childType(@Param("gxType") String gxType);
 }
diff --git a/skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/sg/mapper/SgGxMapper.xml b/skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/sg/mapper/SgGxMapper.xml
index 751e458..3e481e7 100644
--- a/skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/sg/mapper/SgGxMapper.xml
+++ b/skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/sg/mapper/SgGxMapper.xml
@@ -10,6 +10,12 @@
         <if test="dto.gxName != null and dto.gxName != ''">
             and gx.gx_name LIKE CONCAT('%', #{dto.gxName}, '%')
         </if>
+        <if test="dto.childTypeList>0 and dto.childTypeList != null">
+            and gx.gx_type in
+            <foreach collection="dto.childTypeList" open="(" close=")" separator="," item="id">
+                #{id}
+            </foreach>
+        </if>
     </select>
     <select id="queryStepByIds" resultType="cn.gistack.sm.sg.DO.SgGxStepDO">
         select * from YWXT.SG_GX_STEP step where 1=1
@@ -26,4 +32,7 @@
     <select id="getById" resultType="cn.gistack.sm.sg.VO.SgGxVO">
         select * from  YWXT.SG_GX  where id = #{id}
     </select>
+    <select id="childType" resultType="java.lang.String">
+        select id from "YWXT"."BLADE_DICT_BIZ" where parent_id = (select id from "YWXT"."BLADE_DICT_BIZ" where dict_key = #{gxType});
+    </select>
 </mapper>
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 44aca3e..9cb5afb 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
@@ -66,14 +66,27 @@
                 #{id}
             </foreach>)
         </if>
-        <if test="dto.projectSort == null or dto.projectSort ==0">
-            ORDER BY info.status desc ,info.project_progress desc
+       <if test="dto.projectSort == null">
+            ORDER BY info.status desc ,info.project_progress desc NULLS LAST
         </if>
-        <if test="dto.projectSort ==1">
-            ORDER BY info.project_progress desc NULLS LAST
+        <!--
+       <if test="dto.projectSort ==1">
+           ORDER BY info.project_progress desc NULLS LAST
+       </if>
+       <if test="dto.projectSort != null and dto.projectSort ==2">
+           ORDER BY info.sk_id asc
+       </if>-->
+        <if test="dto.projectSort != null and dto.projectSort ==3">
+            ORDER BY info.surface_progress desc NULLS LAST
         </if>
-        <if test="dto.projectSort != null and dto.projectSort ==2">
-            ORDER BY info.sk_id asc
+        <if test="dto.projectSort != null and dto.projectSort ==4">
+            ORDER BY info.video_progress desc NULLS LAST
+        </if>
+        <if test="dto.projectSort != null and dto.projectSort ==5">
+            ORDER BY info.trans_progress desc NULLS LAST
+        </if>
+        <if test="dto.projectSort != null and dto.projectSort ==6">
+            ORDER BY info.seepage_progress desc NULLS LAST
         </if>
     </select>
 
diff --git a/skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/sg/service/impl/SgGxServiceImpl.java b/skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/sg/service/impl/SgGxServiceImpl.java
index 1e0ec2d..7d1c0cd 100644
--- a/skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/sg/service/impl/SgGxServiceImpl.java
+++ b/skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/sg/service/impl/SgGxServiceImpl.java
@@ -12,6 +12,7 @@
 import cn.gistack.sm.sg.service.SgGxStepService;
 import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.baomidou.mybatisplus.core.toolkit.CollectionUtils;
+import com.baomidou.mybatisplus.core.toolkit.StringUtils;
 import com.baomidou.mybatisplus.extension.conditions.query.LambdaQueryChainWrapper;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import org.springblade.core.log.exception.ServiceException;
@@ -46,7 +47,12 @@
 	private SgProgressReportMapper sgProgressReportMapper;
 	@Override
 	public IPage<SgGxVO> queryPageList(IPage<SgGxVO> page, ProjectSearchDTO searchDTO) {
+		if (StringUtils.isNotBlank(searchDTO.getGxType())){
+			List<String> childType = sgGxMapper.childType(searchDTO.getGxType());
+			searchDTO.setChildTypeList(childType);
+		}
 		List<SgGxVO> list = sgGxMapper.queryPageList(page,searchDTO);
+
 		if (CollectionUtils.isNotEmpty(list)){
 			List<Long> ids = list.stream().map(SgGxDO::getId).collect(Collectors.toList());
 			List<Long> userIds = list.stream().map(SgGxDO::getCreateUser).collect(Collectors.toList());
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 0aabb1c..29f564b 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
@@ -3,10 +3,7 @@
 import cn.gistack.sm.sg.DO.*;
 import cn.gistack.sm.sg.DTO.ApprovalDTO;
 import cn.gistack.sm.sg.DTO.ProjectSearchDTO;
-import cn.gistack.sm.sg.VO.SgProgressReportVO;
-import cn.gistack.sm.sg.VO.SgProjectInfoVO;
-import cn.gistack.sm.sg.VO.SgReportVO;
-import cn.gistack.sm.sg.VO.SgStepReportVO;
+import cn.gistack.sm.sg.VO.*;
 import cn.gistack.sm.sg.mapper.*;
 import cn.gistack.sm.sg.service.SgProgressReportService;
 import cn.gistack.sm.sg.service.SgProjectInfoService;
@@ -223,10 +220,10 @@
 			} catch (InterruptedException e) {
 				throw new RuntimeException(e);
 			}
-//			if (sgGxConfigDO.getSgOrder() == 1) {
-//				sgProgressReportDO.setAuditPerson(String.valueOf(sgGxConfigDO.getUser()));
-//				sgProgressReportMapper.updateById(sgProgressReportDO);
-//			}
+			if (sgGxConfigDO.getSgOrder() == 1) {
+				sgProgressReportDO.setAuditPerson(String.valueOf(sgGxConfigDO.getRoleId()));
+				sgProgressReportMapper.updateById(sgProgressReportDO);
+			}
 		}
 
 		//加个项目及设备的状态判断 方便统计计算
@@ -303,7 +300,7 @@
 		if (isReject==1){
 			sgReportUserDO = sgReportUserDOS.get(0);
 		}else {
-			sgReportUserDO = sgReportUserDOS.stream().filter(s -> s.getUserId().equals(Long.parseLong(sgProgressReportDO.getAuditPerson()))).findFirst().get();
+			sgReportUserDO = sgReportUserDOS.stream().filter(s -> s.getRoleId().equals(Long.parseLong(sgProgressReportDO.getAuditPerson()))).findFirst().get();
 		}
 		Date date = new Date();
 		LambdaUpdateChainWrapper<SgProgressReportDO> updateChainWrapper = new LambdaUpdateChainWrapper<>(sgProgressReportMapper).eq(SgProgressReportDO::getId, id);
@@ -311,12 +308,12 @@
 			.eq(SgReportUserDO::getId, sgReportUserDO.getId()).set(SgReportUserDO::getApprovalContent,approvalDTO.getApprovalContent()).set(SgReportUserDO::getApprovalTime,date);
 		if (approvalDTO.getStatus()==1){
 			Integer approvalOrder = sgReportUserDO.getApprovalOrder();
-			userUpdate.set(SgReportUserDO::getApprovalStatus,1).update();
+			userUpdate.set(SgReportUserDO::getApprovalStatus,1).set(SgReportUserDO::getUserId,userId).update();
 		Optional<SgReportUserDO> next = sgReportUserDOS.stream().filter(s -> s.getApprovalOrder() == approvalOrder + 1).findFirst();
 		//如果存在下一个审批人,则继续审批
 		if (next.isPresent()){
 			SgReportUserDO nextUser = next.get();
-			updateChainWrapper.set(SgProgressReportDO::getStatus,1).set(SgProgressReportDO::getAuditPerson,nextUser.getUserId()).update();
+			updateChainWrapper.set(SgProgressReportDO::getStatus,1).set(SgProgressReportDO::getAuditPerson,nextUser.getRoleId()).update();
 		}else {
 			updateChainWrapper.set(SgProgressReportDO::getStatus,2).set(SgProgressReportDO::getAuditPerson,null).update();
 			Long proframId = sgProgressReportMapper.selectById(approvalDTO.getId()).getProframId();
@@ -435,7 +432,14 @@
 						sgProjectInfoMapper.updateById(project);
 					}
 				}
-
+				Map<String, SgOperatingRateVO> deviceTypes = sgProjectInfoService.getDeviceTypes(Arrays.asList(projectId.toString()));
+				SgOperatingRateVO vo = deviceTypes.get(projectId.toString());
+				if (Objects.nonNull(vo)){
+					project.setSurfaceProgress(vo.getSurfaceProgress());
+					project.setVideoProgress(vo.getVideoProgress());
+					project.setTransProgress(vo.getTransProgress());
+					project.setSeepageProgress(vo.getSeepageProgress());
+				}
 			}
 		}
 
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 275f281..1fb2f5e 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
@@ -61,6 +61,7 @@
 				Map<Long, String> progressMap = projectProgress.stream().filter(s->s.getProjectProgress()!=null).collect(Collectors.toMap(SgProjectInfoDO::getId, SgProjectInfoDO::getProjectProgress));
 				sgProjectInfoDOS.forEach(s->{
 					s.setProjectProgress(progressMap.get(s.getId()));
+					setPercentage(s);
 				});
 			}
 			return page.setRecords(sgProjectInfoDOS);
@@ -75,6 +76,7 @@
 				Map<Long, String> progressMap = projectProgress.stream().filter(s->s.getProjectProgress()!=null).collect(Collectors.toMap(SgProjectInfoDO::getId, SgProjectInfoDO::getProjectProgress));
 				sgProjectInfoDOS.forEach(s->{
 					s.setProjectProgress(progressMap.get(s.getId()));
+					setPercentage(s);
 				});
 			}
 			sgProjectInfoDOS.forEach(s->{
@@ -111,6 +113,17 @@
 			return sgProjectInfoDOS;
 		}
 
+	}
+
+	/**
+	 * 设置百分号
+	 * @param s
+	 */
+	private void setPercentage(SgProjectInfoDO s) {
+		s.setSurfaceProgress(s.getSurfaceProgress()==null?null:s.getSurfaceProgress()+"%");
+		s.setVideoProgress(s.getVideoProgress()==null?null:s.getVideoProgress()+"%");
+		s.setTransProgress(s.getTransProgress()==null?null:s.getTransProgress()+"%");
+		s.setSeepageProgress(s.getSeepageProgress()==null?null:s.getSeepageProgress()+"%");
 	}
 
 	/**
@@ -381,13 +394,13 @@
 				SgOperatingRateVO sVo = deviceTypes.get(vo.getProIds());
 				if (Objects.nonNull(sVo)){
 					vo.setSurfaceNum(sVo.getSurfaceNum());
-					vo.setSurfaceProgress(sVo.getSurfaceProgress()+"%");
+					vo.setSurfaceProgress(sVo.getSurfaceProgress()==null?null:sVo.getSurfaceProgress()+"%");
 					vo.setVideoNum(sVo.getVideoNum());
-					vo.setVideoProgress(sVo.getVideoProgress()+"%");
+					vo.setVideoProgress(sVo.getVideoProgress()==null?null:sVo.getVideoProgress()+"%");
 					vo.setTransNum(sVo.getTransNum());
-					vo.setTransProgress(sVo.getTransProgress()+"%");
+					vo.setTransProgress(sVo.getTransProgress()==null?null:sVo.getTransProgress()+"%");
 					vo.setSeepageNum(sVo.getSeepageNum());
-					vo.setSeepageProgress(sVo.getSeepageProgress()+"%");
+					vo.setSeepageProgress(sVo.getSeepageProgress()==null?null:sVo.getSeepageProgress()+"%");
 				}
 			}
 		}
@@ -423,7 +436,7 @@
 	/**
 	 * 统计设备类型开工率
 	 */
-	private Map<String,SgOperatingRateVO> getDeviceTypes(List<String> projectIds) {
+	public Map<String,SgOperatingRateVO> getDeviceTypes(List<String> projectIds) {
 		Map<String,SgOperatingRateVO> result = new HashMap<>();
 		if (CollectionUtils.isNotEmpty(projectIds)){
 			for (String proIds : projectIds) {
@@ -648,6 +661,14 @@
 		dto.setSgCodeS(sgCodeS);
 		List<SgProjectTreeVO> list = 	sgProjectInfoMapper.projectTree(dto);
 		if (CollectionUtils.isNotEmpty(list)){
+			list.forEach(x->{
+				if (StringUtils.isBlank(x.getCountyNm())){
+					x.setCountyNm(x.getCityNm());
+				}
+				if (StringUtils.isBlank(x.getTownNm())){
+					x.setTownNm(x.getCountyNm());
+				}
+			});
 			// 按省、片区、市、县、乡镇分组
 			Map<String, Map<String, Map<String, Map<String, Map<String, List<SgProjectTreeVO>>>>>> groupedProjects = list.stream()
 				.collect(

--
Gitblit v1.9.3