From df2ba3fd298fc349433c03290c6390a582b9c8b9 Mon Sep 17 00:00:00 2001
From: gonglilong <328255720@qq.com>
Date: Sat, 14 Sep 2024 16:58:45 +0800
Subject: [PATCH] Merge remote-tracking branch 'origin/jtdev' into jtdev

---
 skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/sg/service/impl/SgProjectInfoServiceImpl.java |  133 +++++++++++++++++++++++++++++++++-----------
 1 files changed, 100 insertions(+), 33 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 d7ce505..702ca96 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
@@ -52,6 +52,7 @@
 	public Object queryPageList(IPage<SgProjectInfoDO> page, ProjectSearchDTO searchDTO) {
 		List<String> sgCodeS = getSgCodeByUser();
 		searchDTO.setSgCodeS(sgCodeS);
+//		setDeptId(searchDTO);
 		Boolean isPage = searchDTO.getIsPage();
 		if (isPage==null) isPage = true;
 		if (isPage ){
@@ -61,6 +62,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 +77,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 +114,18 @@
 			return sgProjectInfoDOS;
 		}
 
+	}
+
+	/**
+	 * 设置百分号
+	 * @param s
+	 */
+	private void setPercentage(SgProjectInfoDO s) {
+		s.setSurfaceProgress(StringUtils.isNotBlank(s.getSurfaceProgress()) ?null:s.getSurfaceProgress()+"%");
+		s.setVideoProgress(StringUtils.isNotBlank(s.getVideoProgress())?null:s.getVideoProgress()+"%");
+		s.setTransProgress(StringUtils.isNotBlank(s.getTransProgress())?null:s.getTransProgress()+"%");
+		s.setSeepageProgress(StringUtils.isNotBlank(s.getSeepageProgress())?null:s.getSeepageProgress()+"%");
+		s.setProjectAddress(StringUtils.isNotBlank(s.getProjectProgress())?null:s.getProjectProgress()+"%");
 	}
 
 	/**
@@ -288,6 +303,7 @@
 	 */
 	@Override
 	public IPage<SgProjectInfoVO> progressPage(IPage<SgProjectInfoVO> page, ProjectSearchDTO searchDTO) {
+//		setDeptId(searchDTO);
 		List<SgProjectInfoVO> list = new ArrayList<>();
 			if(StringUtils.isNotBlank(searchDTO.getAdCode())){
 				list =	sgProjectInfoMapper.progressList1(page, searchDTO);
@@ -295,20 +311,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);
 	}
 
@@ -316,7 +337,20 @@
 	public List<SgProjectInfoDO> listAll(ProjectSearchDTO searchDTO) {
 		List<String> sgCodeS = getSgCodeByUser();
 		searchDTO.setSgCodeS(sgCodeS);
-		return sgProjectInfoMapper.queryPageList(null,searchDTO);
+		setDeptId(searchDTO);
+		List<SgProjectInfoDO> list = sgProjectInfoMapper.queryPageList(null, searchDTO);
+		return list;
+	}
+
+	/**
+	 * setDeptId
+	 * @param searchDTO
+	 */
+	private  void setDeptId(ProjectSearchDTO searchDTO) {
+		String deptId = AuthUtil.getDeptId();
+		if (!deptId.equals("420000000000")){
+			searchDTO.setDeptId(deptId);
+		}
 	}
 
 	/**
@@ -348,21 +382,44 @@
 		//片区
 		if (ywxtAdDetail == null) {
 			sgStatisProVOS = sgProjectInfoMapper.getsgStatisticsZero(code);
-			getDeviceTypes(sgStatisProVOS);
+			setDeviceTypes(sgStatisProVOS);
 //			String getname = sgProjectInfoMapper.getname(code);
 			String getname = code;
 			updateProjectProgress(sgStatisProVOS, code, getname, "2");
 		} else if (ywxtAdDetail.getAdGrad().equals("1")) {//默认
 			sgStatisProVOS = sgProjectInfoMapper.getsgStatisticsOne(code);
 			sgStatisProVOS = getSgStatisProVOS(sgStatisProVOS);
-			getDeviceTypes(sgStatisProVOS);
+			setDeviceTypes(sgStatisProVOS);
 			updateProjectProgress(sgStatisProVOS, ywxtAdDetail.getPAdCode(), ywxtAdDetail.getPAdName(), "0");
 		} else {//区县
 			sgStatisProVOS = sgProjectInfoMapper.getsgStatisticsList(code);
-			getDeviceTypes(sgStatisProVOS);
+			setDeviceTypes(sgStatisProVOS);
 			updateProjectProgress(sgStatisProVOS, ywxtAdDetail.getAdCode(), ywxtAdDetail.getAdName(), "3");
 		}
 		return sgStatisProVOS;
+	}
+
+	/**
+	 * 统计施工进度
+	 * @param sgStatisProVOS
+	 */
+	private void setDeviceTypes(List<SgStatisProVO> sgStatisProVOS) {
+		if (CollectionUtils.isNotEmpty(sgStatisProVOS)){
+			Map<String, SgOperatingRateVO> deviceTypes = getDeviceTypes(sgStatisProVOS.stream().map(SgStatisProVO::getProIds).collect(Collectors.toList()));
+			for (SgStatisProVO vo : sgStatisProVOS) {
+				SgOperatingRateVO sVo = deviceTypes.get(vo.getProIds());
+				if (Objects.nonNull(sVo)){
+					vo.setSurfaceNum(sVo.getSurfaceNum());
+					vo.setSurfaceProgress(sVo.getSurfaceProgress());
+					vo.setVideoNum(sVo.getVideoNum());
+					vo.setVideoProgress(sVo.getVideoProgress());
+					vo.setTransNum(sVo.getTransNum());
+					vo.setTransProgress(sVo.getTransProgress());
+					vo.setSeepageNum(sVo.getSeepageNum());
+					vo.setSeepageProgress(sVo.getSeepageProgress());
+				}
+			}
+		}
 	}
 
 	/**
@@ -394,12 +451,12 @@
 
 	/**
 	 * 统计设备类型开工率
-	 * @param sgStatisProVOS
 	 */
-	private void getDeviceTypes(List<SgStatisProVO> sgStatisProVOS) {
-		if (CollectionUtils.isNotEmpty(sgStatisProVOS)){
-			for (SgStatisProVO vo : sgStatisProVOS) {
-				String proIds = vo.getProIds();
+	public Map<String,SgOperatingRateVO> getDeviceTypes(List<String> projectIds) {
+		Map<String,SgOperatingRateVO> result = new HashMap<>();
+		if (CollectionUtils.isNotEmpty(projectIds)){
+			for (String proIds : projectIds) {
+				SgOperatingRateVO sgOperatingRateVO = new SgOperatingRateVO();
 				if (StringUtils.isNotBlank(proIds)){
 				List<SgStatisDeviceVO> deviceVOS =	sgProjectInfoMapper.getDeviceTypes("("+proIds+")");
 				if(CollectionUtils.isNotEmpty(deviceVOS)){
@@ -409,12 +466,12 @@
 					if (Objects.nonNull(sg108)){
 						Integer deviceCount = sg108.getDeviceCount();
 						Integer deviceStart = sg108.getDeviceStart();
-						vo.setSurfaceNum(deviceCount);
+						sgOperatingRateVO.setSurfaceNum(deviceCount);
 						if (deviceCount != 0){
 							BigDecimal divide = BigDecimal.valueOf(deviceStart).divide(BigDecimal.valueOf(deviceCount), 2, BigDecimal.ROUND_UP);
-							vo.setSeepageProgress(getBigDecimalPercent(divide));
+							sgOperatingRateVO.setSeepageProgress(getBigDecimalPercent(divide));
 						}else {
-							vo.setSeepageProgress("0%");
+							sgOperatingRateVO.setSeepageProgress("0");
 						}
 					}
 					//视频
@@ -422,12 +479,12 @@
 					if (Objects.nonNull(sg104)){
 						Integer deviceCount = sg104.getDeviceCount();
 						Integer deviceStart = sg104.getDeviceStart();
-						vo.setVideoNum(deviceCount);
+						sgOperatingRateVO.setVideoNum(deviceCount);
 						if (deviceCount != 0){
 							BigDecimal divide = BigDecimal.valueOf(deviceStart).divide(BigDecimal.valueOf(deviceCount), 2, BigDecimal.ROUND_UP);
-							vo.setVideoProgress(getBigDecimalPercent(divide));
+							sgOperatingRateVO.setVideoProgress(getBigDecimalPercent(divide));
 						}else {
-							vo.setVideoProgress("0%");
+							sgOperatingRateVO.setVideoProgress("0");
 						}
 					}
 					//渗压
@@ -435,12 +492,12 @@
 					if (Objects.nonNull(sg101)){
 						Integer deviceCount = sg101.getDeviceCount();
 						Integer deviceStart = sg101.getDeviceStart();
-						vo.setTransNum(deviceCount);
+						sgOperatingRateVO.setTransNum(deviceCount);
 						if (deviceCount != 0){
 							BigDecimal divide = BigDecimal.valueOf(deviceStart).divide(BigDecimal.valueOf(deviceCount), 2, BigDecimal.ROUND_UP);
-							vo.setTransProgress(getBigDecimalPercent(divide));
+							sgOperatingRateVO.setTransProgress(getBigDecimalPercent(divide));
 						}else {
-							vo.setTransProgress("0%");
+							sgOperatingRateVO.setTransProgress("0");
 						}
 					}
 					//渗流
@@ -448,18 +505,20 @@
 					if (Objects.nonNull(sg102)){
 						Integer deviceCount = sg102.getDeviceCount();
 						Integer deviceStart = sg102.getDeviceStart();
-						vo.setSeepageNum(deviceCount);
+						sgOperatingRateVO.setSeepageNum(deviceCount);
 						if (deviceCount != 0){
 							BigDecimal divide = BigDecimal.valueOf(deviceStart).divide(BigDecimal.valueOf(deviceCount), 2, BigDecimal.ROUND_UP);
-							vo.setSeepageProgress(getBigDecimalPercent(divide));
+							sgOperatingRateVO.setSeepageProgress(getBigDecimalPercent(divide));
 						}else {
-							vo.setSeepageProgress("0%");
+							sgOperatingRateVO.setSeepageProgress("0");
 						}
 					}
 					}
+					result.put(proIds,sgOperatingRateVO);
 				}
 			}
 		}
+		return result;
 	}
 
 	private void updateProjectProgress(List<SgStatisProVO> sgStatisProVOS, String pcode, String pname, String adGrad) {
@@ -618,6 +677,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