From e794991424c6ca580c275bfda86c3c36e64152f2 Mon Sep 17 00:00:00 2001
From: shenyijian <1178253012@qq.com>
Date: Wed, 09 Oct 2024 17:57:10 +0800
Subject: [PATCH] 湖北水库:项目统计返回修改

---
 skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/sg/service/impl/SgProjectInfoServiceImpl.java |   75 ++++++++++++++++++++++---------------
 1 files changed, 44 insertions(+), 31 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 bf264d3..22eb2ba 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
@@ -7,7 +7,6 @@
 import cn.gistack.sm.sg.mapper.SgGxStepMapper;
 import cn.gistack.sm.sg.mapper.SgProgressReportMapper;
 import cn.gistack.sm.sg.mapper.SgProjectInfoMapper;
-import cn.gistack.sm.sg.service.SgProgressReportService;
 import cn.gistack.sm.sg.service.SgProjectInfoService;
 import cn.gistack.sm.sjztmd.entity.AttAdBase;
 import cn.gistack.sm.sjztmd.service.IAttAdBaseService;
@@ -15,8 +14,10 @@
 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.jetbrains.annotations.NotNull;
+import org.springblade.core.log.exception.ServiceException;
 import org.springblade.core.secure.utils.AuthUtil;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
@@ -86,34 +87,25 @@
 			}
 			sgProjectInfoDOS.forEach(s->{
 				//土建
-				if (StringUtils.isNotBlank(s.getConstructionUnit())){
-					s.setConstructionUnit(deptMap.get(Long.valueOf(s.getConstructionUnit())));
-				}
-				s.setConstructionPerson(getUserNames(userMap, s.getConstructionPerson()));
+				String constructionUnit = s.getConstructionUnit();
+				s.setConstructionUnit(getUserOrDeptNames(deptMap,s.getConstructionUnit()));
+				s.setConstructionPerson(getUserOrDeptNames(userMap, s.getConstructionPerson()));
 
 				//设备
-				if (StringUtils.isNotBlank(s.getSelfUnit())){
-					s.setSelfUnit(deptMap.get(Long.valueOf(s.getSelfUnit())));
-				}
-				s.setSelfPerson(getUserNames(userMap, s.getSelfPerson()));
+				s.setSelfUnit(getUserOrDeptNames(deptMap,s.getSelfUnit()));
+				s.setSelfPerson(getUserOrDeptNames(userMap, s.getSelfPerson()));
 
 				//设计
-				if (StringUtils.isNotBlank(s.getDesignUnit())){
-					s.setDesignUnit(deptMap.get(Long.valueOf(s.getDesignUnit())));
-				}
-				s.setDesignPerson(getUserNames(userMap, s.getDesignPerson()));
+				s.setDesignUnit(getUserOrDeptNames(deptMap, s.getDesignUnit()));
+				s.setDesignPerson(getUserOrDeptNames(userMap, s.getDesignPerson()));
 
 				//监理
-				if (StringUtils.isNotBlank(s.getControlUnit())){
-					s.setControlUnit(deptMap.get(Long.valueOf(s.getControlUnit())));
-				}
-				s.setControlPerson(getUserNames(userMap, s.getControlPerson()));
+				s.setControlUnit(getUserOrDeptNames(deptMap, s.getControlUnit()));
+				s.setControlPerson(getUserOrDeptNames(userMap, s.getControlPerson()));
 
 				//检测
-				if (StringUtils.isNotBlank(s.getAcceptanceUnit())){
-					s.setAcceptanceUnit(deptMap.get(Long.valueOf(s.getAcceptanceUnit())));
-				}
-				s.setAcceptancePerson(getUserNames(userMap, s.getAcceptancePerson()));
+				s.setAcceptanceUnit(getUserOrDeptNames(deptMap, s.getAcceptanceUnit()));
+				s.setAcceptancePerson(getUserOrDeptNames(userMap, s.getAcceptancePerson()));
 			});
 			return sgProjectInfoDOS;
 		}
@@ -133,21 +125,20 @@
 	}
 
 	/**
-	 * 获取用户姓名
-	 * @param userMap
+	 * 获取用户或者部门姓名
 	 * @return
 	 */
-	private  String getUserNames(Map<Long, String> userMap,String person ) {
-		String userNames = "";
-		if (StringUtils.isNotBlank(person)){
+	private  String getUserOrDeptNames(Map<Long, String> map, String param ) {
+		String result = "";
+		if (StringUtils.isNotBlank(param)){
 			// 使用Stream API来处理分割和映射
-			 userNames = Arrays.stream(person.split(",")) // 将字符串按逗号分割成数组,并转为Stream
+			result = Arrays.stream(param.split(",")) // 将字符串按逗号分割成数组,并转为Stream
 				.map(Long::valueOf) // 将每个字符串元素转换为Long
-				.map(userMap::get) // 使用userMap将Long映射为对应的用户名
+				.map(map::get) // 使用userMap将Long映射为对应的用户名
 				.collect(Collectors.joining(",")); // 使用逗号将用户名拼接成一个字符串
-			return userNames;
+			return result;
 		}
-		return userNames;
+		return result;
 	}
 
 	/**
@@ -417,12 +408,16 @@
 				SgOperatingRateVO sVo = deviceTypes.get(vo.getProIds());
 				if (Objects.nonNull(sVo)){
 					vo.setSurfaceNum(sVo.getSurfaceNum());
+					vo.setSurfaceStartNum(sVo.getSurfaceStartNum());
 					vo.setSurfaceProgress(sVo.getSurfaceProgress());
 					vo.setVideoNum(sVo.getVideoNum());
+					vo.setVideoStartNum(sVo.getVideoStartNum());
 					vo.setVideoProgress(sVo.getVideoProgress());
 					vo.setTransNum(sVo.getTransNum());
+					vo.setTransStartNum(sVo.getTransStartNum());
 					vo.setTransProgress(sVo.getTransProgress());
 					vo.setSeepageNum(sVo.getSeepageNum());
+					vo.setSeepageStartNum(sVo.getSeepageStartNum());
 					vo.setSeepageProgress(sVo.getSeepageProgress());
 				}
 			}
@@ -474,6 +469,7 @@
 						Integer deviceCount = sg108.getDeviceCount();
 						Integer deviceStart = sg108.getDeviceStart();
 						sgOperatingRateVO.setSurfaceNum(deviceCount);
+						sgOperatingRateVO.setSurfaceStartNum(deviceStart);
 						if (deviceCount != 0){
 							BigDecimal divide = BigDecimal.valueOf(deviceStart).divide(BigDecimal.valueOf(deviceCount), 2, BigDecimal.ROUND_UP);
 							sgOperatingRateVO.setSeepageProgress(getBigDecimalPercent(divide));
@@ -487,6 +483,7 @@
 						Integer deviceCount = sg104.getDeviceCount();
 						Integer deviceStart = sg104.getDeviceStart();
 						sgOperatingRateVO.setVideoNum(deviceCount);
+						sgOperatingRateVO.setVideoStartNum(deviceStart);
 						if (deviceCount != 0){
 							BigDecimal divide = BigDecimal.valueOf(deviceStart).divide(BigDecimal.valueOf(deviceCount), 2, BigDecimal.ROUND_UP);
 							sgOperatingRateVO.setVideoProgress(getBigDecimalPercent(divide));
@@ -500,6 +497,7 @@
 						Integer deviceCount = sg101.getDeviceCount();
 						Integer deviceStart = sg101.getDeviceStart();
 						sgOperatingRateVO.setTransNum(deviceCount);
+						sgOperatingRateVO.setTransStartNum(deviceStart);
 						if (deviceCount != 0){
 							BigDecimal divide = BigDecimal.valueOf(deviceStart).divide(BigDecimal.valueOf(deviceCount), 2, BigDecimal.ROUND_UP);
 							sgOperatingRateVO.setTransProgress(getBigDecimalPercent(divide));
@@ -513,6 +511,7 @@
 						Integer deviceCount = sg102.getDeviceCount();
 						Integer deviceStart = sg102.getDeviceStart();
 						sgOperatingRateVO.setSeepageNum(deviceCount);
+						sgOperatingRateVO.setSeepageStartNum(deviceStart);
 						if (deviceCount != 0){
 							BigDecimal divide = BigDecimal.valueOf(deviceStart).divide(BigDecimal.valueOf(deviceCount), 2, BigDecimal.ROUND_UP);
 							sgOperatingRateVO.setSeepageProgress(getBigDecimalPercent(divide));
@@ -802,7 +801,7 @@
 	private void setAdCode(ProjectSearchDTO dto) {
 		String deptId = AuthUtil.getDeptId();
 		Long roleId = sgProgressReportService.getRoleId();
-		if(!roleId.equals(1811657352658042882L)){
+		if(roleId.equals(1811657352658042882L)){
 			dto.setAdCode(deptId);
 		}
 	}
@@ -814,4 +813,18 @@
 		return page.setRecords(baseMapper.resList(page,dto));
 	}
 
+	@Override
+	@Transactional
+	public void delete(String ids) {
+		List<String> list = Arrays.asList(ids.split(","));
+		list.forEach(id->{
+			List<SgProgressReportDO> reportDOS = new LambdaQueryChainWrapper<>(sgProgressReportMapper).eq(SgProgressReportDO::getProframId, id).list();
+			if (CollectionUtils.isNotEmpty(reportDOS)){
+				SgProjectInfoDO sgProjectInfoDO = sgProjectInfoMapper.selectById(id);
+				throw new ServiceException(sgProjectInfoDO.getProjectName() + "存在施工审批,无法删除!");
+			}
+			sgProjectInfoMapper.deleteById(id);
+		});
+	}
+
 }

--
Gitblit v1.9.3