From 99bb4c189d4519acda66ab39124d2b793c021a5e Mon Sep 17 00:00:00 2001
From: shenyijian <1178253012@qq.com>
Date: Fri, 27 Sep 2024 11:46:47 +0800
Subject: [PATCH] 湖北水库:施工项目批量删除

---
 skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/sg/service/impl/SgProjectInfoServiceImpl.java |   87 ++++++++++++++++++++++++++++++++++++++-----
 1 files changed, 77 insertions(+), 10 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 f2141b0..030e473 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,6 +7,7 @@
 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;
@@ -14,8 +15,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;
@@ -48,11 +51,14 @@
 	@Autowired
 	private SgGxStepMapper sgGxStepMapper;
 
+	@Autowired
+	private SgProgressReportServiceImpl sgProgressReportService;
+
 	@Override
 	public Object queryPageList(IPage<SgProjectInfoDO> page, ProjectSearchDTO searchDTO) {
 		List<String> sgCodeS = getSgCodeByUser();
 		searchDTO.setSgCodeS(sgCodeS);
-		setDeptId(searchDTO);
+		setAdCode(searchDTO);
 		Boolean isPage = searchDTO.getIsPage();
 		if (isPage==null) isPage = true;
 		if (isPage ){
@@ -303,7 +309,7 @@
 	 */
 	@Override
 	public IPage<SgProjectInfoVO> progressPage(IPage<SgProjectInfoVO> page, ProjectSearchDTO searchDTO) {
-		setDeptId(searchDTO);
+//		setDeptId(searchDTO);
 		List<SgProjectInfoVO> list = new ArrayList<>();
 			if(StringUtils.isNotBlank(searchDTO.getAdCode())){
 				list =	sgProjectInfoMapper.progressList1(page, searchDTO);
@@ -338,7 +344,8 @@
 		List<String> sgCodeS = getSgCodeByUser();
 		searchDTO.setSgCodeS(sgCodeS);
 		setDeptId(searchDTO);
-		return sgProjectInfoMapper.queryPageList(null,searchDTO);
+		List<SgProjectInfoDO> list = sgProjectInfoMapper.queryPageList(null, searchDTO);
+		return list;
 	}
 
 	/**
@@ -347,8 +354,11 @@
 	 */
 	private  void setDeptId(ProjectSearchDTO searchDTO) {
 		String deptId = AuthUtil.getDeptId();
+		boolean b = Objects.nonNull(searchDTO.getIsUnit()) && searchDTO.getIsUnit() == 1;
 		if (!deptId.equals("420000000000")){
-			searchDTO.setDeptId(deptId);
+			if (!b){
+				searchDTO.setDeptId(deptId);
+			}
 		}
 	}
 
@@ -470,7 +480,7 @@
 							BigDecimal divide = BigDecimal.valueOf(deviceStart).divide(BigDecimal.valueOf(deviceCount), 2, BigDecimal.ROUND_UP);
 							sgOperatingRateVO.setSeepageProgress(getBigDecimalPercent(divide));
 						}else {
-							sgOperatingRateVO.setSeepageProgress("0");
+							sgOperatingRateVO.setSeepageProgress("0%");
 						}
 					}
 					//视频
@@ -483,7 +493,7 @@
 							BigDecimal divide = BigDecimal.valueOf(deviceStart).divide(BigDecimal.valueOf(deviceCount), 2, BigDecimal.ROUND_UP);
 							sgOperatingRateVO.setVideoProgress(getBigDecimalPercent(divide));
 						}else {
-							sgOperatingRateVO.setVideoProgress("0");
+							sgOperatingRateVO.setVideoProgress("0%");
 						}
 					}
 					//渗压
@@ -496,7 +506,7 @@
 							BigDecimal divide = BigDecimal.valueOf(deviceStart).divide(BigDecimal.valueOf(deviceCount), 2, BigDecimal.ROUND_UP);
 							sgOperatingRateVO.setTransProgress(getBigDecimalPercent(divide));
 						}else {
-							sgOperatingRateVO.setTransProgress("0");
+							sgOperatingRateVO.setTransProgress("0%");
 						}
 					}
 					//渗流
@@ -509,7 +519,7 @@
 							BigDecimal divide = BigDecimal.valueOf(deviceStart).divide(BigDecimal.valueOf(deviceCount), 2, BigDecimal.ROUND_UP);
 							sgOperatingRateVO.setSeepageProgress(getBigDecimalPercent(divide));
 						}else {
-							sgOperatingRateVO.setSeepageProgress("0");
+							sgOperatingRateVO.setSeepageProgress("0%");
 						}
 					}
 					}
@@ -535,7 +545,11 @@
 				for (String id : ids) {
 					projectSearchDTO.setProjectId(id);
 					List<SgProjectInfoVO> list = sgProjectInfoMapper.queryStepByProject(projectSearchDTO);
-					getProjectProgress(list).forEach(ss -> bigDecimals.add(ss.getProjectProgressNum()));
+					getProjectProgress(list).forEach(ss->{
+						if (Objects.nonNull(ss.getProjectProgressNum())){
+							bigDecimals.add(ss.getProjectProgressNum());
+						}
+					});
 				}
 
 				BigDecimal reduce = bigDecimals.stream().reduce(BigDecimal.ZERO, BigDecimal::add);
@@ -615,6 +629,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);
@@ -674,6 +690,7 @@
 	public List<SgProjectTreeVO> projectTree(ProjectSearchDTO dto) {
 		List<String> sgCodeS = getSgCodeByUser();
 		dto.setSgCodeS(sgCodeS);
+		setAdCode(dto);
 		List<SgProjectTreeVO> list = 	sgProjectInfoMapper.projectTree(dto);
 		if (CollectionUtils.isNotEmpty(list)){
 			list.forEach(x->{
@@ -758,9 +775,59 @@
 					provinceNode.setChildList(provinceChildren);
 					tree.add(provinceNode);
 				}
-				return tree;
+			List<SgProjectTreeVO> childList = tree.get(0).getChildList();
+			List<SgProjectTreeVO> collect = childList.stream()
+				.sorted(Comparator.comparing(s -> {
+					String scode = s.getRegionName();
+					if (scode.equals("第一标段")) {
+						return 1;
+					} else if (scode.equals("第二标段")) {
+						return 2;
+					} else if (scode.equals("第三标段")) {
+						return 3;
+					} else if (scode.equals("第四标段")) {
+						return 4;
+					} else if (scode.equals("第五标段")) {
+						return 5;
+					} else {
+						return Integer.MAX_VALUE;
+					}
+				}))
+				.collect(Collectors.toList());
+			tree.get(0).setChildList(collect);
+			return tree;
+
 		}
 		return new ArrayList<>();
 	}
 
+	private void setAdCode(ProjectSearchDTO dto) {
+		String deptId = AuthUtil.getDeptId();
+		Long roleId = sgProgressReportService.getRoleId();
+		if(roleId.equals(1811657352658042882L)){
+			dto.setAdCode(deptId);
+		}
+	}
+
+	@Override
+	public IPage<ResVO> resList(IPage<ResVO> page, ProjectSearchDTO dto) {
+		List<String> sgCodeByUser = getSgCodeByUser();
+		dto.setSgCodeS(sgCodeByUser);
+		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