From 62c8530fbf44749c7fe709bf8897a791bc7f0ef4 Mon Sep 17 00:00:00 2001
From: yxm <zhp1521624>
Date: Tue, 16 Jul 2024 11:36:53 +0800
Subject: [PATCH] 项目进度上报逻辑优化和待办添加区域条件筛选v0.8

---
 skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/sg/service/impl/SgProgressReportServiceImpl.java |   44 +++++++++++++++++++++++++++++++++++++-------
 1 files changed, 37 insertions(+), 7 deletions(-)

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 d0a31ae..b29be03 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
@@ -4,6 +4,7 @@
 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.mapper.*;
@@ -23,7 +24,7 @@
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
-
+import java.lang.Long;
 import java.util.*;
 import java.util.concurrent.ExecutorService;
 import java.util.concurrent.Executors;
@@ -89,6 +90,22 @@
 		wrappers.eq("profram_id", sgProgressReportDO.getProframId()).ne("status", 4).eq("gx_step_name", "施工准备");
 		List<SgProgressReportDO> sgProgressReportDOS1 = sgProgressReportMapper.selectList(wrappers);
 
+		if(sgProgressReportDO.getGxDeviceId()==998){
+			ProjectSearchDTO search = new ProjectSearchDTO();
+			search.setProjectId(sgProgressReportDO.getProframId().toString());
+			List<SgProjectInfoVO> sgProjectInfoVOS = sgProjectInfoMapper.queryStepByProject(search);
+			if(sgProjectInfoVOS != null){
+				sgProjectInfoVOS.forEach(s ->{
+					if(!s.getProjectStatus().equals(2)){
+						throw new ServiceException("请完成所有设备工序审批!");
+					}
+				});
+			}else{
+				throw new ServiceException("无设备审批数据!");
+			}
+
+		}
+
 		if (sgProgressReportDOS1!= null && sgProgressReportDOS1.size() > 0) {
 			for (SgProgressReportDO sgProgressReportDO1 : sgProgressReportDOS1) {
 				if (sgProgressReportDO1.getStatus()!= 2) {
@@ -122,8 +139,16 @@
 		}
 		sgProgressReportDO.setStatus(0);
 		sgProgressReportMapper.insert(sgProgressReportDO);
-		SgDeviceDO sgDeviceDO = sgDeviceMapper.selectById(gxDeviceId);
-		String deviceType = sgDeviceDO.getDeviceType();
+		String deviceType ="";
+		SgDeviceDO sgDeviceDO = new SgDeviceDO();
+		if (gxDeviceId == 999){
+			 deviceType = "sgzb";
+		}else if(gxDeviceId == 998){
+			deviceType = "sgys";
+		}else {
+			 sgDeviceDO = sgDeviceMapper.selectById(gxDeviceId);
+			deviceType = sgDeviceDO.getDeviceType();
+		}
 		List<SgGxConfigDO> sgGxConfigDOS = new LambdaQueryChainWrapper<>(sgGxConfigMapper)
 			.eq(SgGxConfigDO::getGxDeviceType, deviceType).eq(SgGxConfigDO::getGxStepId, gxStepId).orderByAsc(SgGxConfigDO::getSgOrder).list();
 		List<String> roIds = sgGxConfigDOS.stream().map(SgGxConfigDO::getRoleId).collect(Collectors.toList());
@@ -151,9 +176,11 @@
 		}
 
 		//加个项目及设备的状态判断 方便统计计算
-		if (sgDeviceDO != null && sgDeviceDO.getStatus() == 0) {
-			sgDeviceDO.setStatus(1);
-			sgDeviceMapper.updateById(sgDeviceDO);
+		if(gxStepId != 25 && gxStepId != 26 ) {
+			if (sgDeviceDO != null && sgDeviceDO.getStatus() == 0) {
+				sgDeviceDO.setStatus(1);
+				sgDeviceMapper.updateById(sgDeviceDO);
+			}
 		}
 		SgProjectInfoDO sgProjectInfoDO = sgProjectInfoMapper.selectById(sgProgressReportDO.getProframId());
 		if (sgProjectInfoDO != null && sgProjectInfoDO.getStatus() == 0) {
@@ -168,7 +195,10 @@
 		SgDeviceDO sgDeviceDO = sgDeviceMapper.selectById(sgProgressReportVO.getGxDeviceId());
 		SgGxStepDO sgGxStepDO = sgGxStepMapper.selectById(sgProgressReportVO.getGxStepId());
 		sgProgressReportVO.setStepRemark(sgGxStepDO.getRemark());
-		sgProgressReportVO.setDeviceName(sgDeviceDO.getDeviceName());
+		if(sgProgressReportVO.getGxDeviceId() !=999 && sgProgressReportVO.getGxDeviceId() !=998){
+			sgProgressReportVO.setDeviceName(sgDeviceDO.getDeviceName());
+		}else {
+		sgProgressReportVO.setDeviceName("");}
 		List<SgReportUserDO> list = new LambdaQueryChainWrapper<>(sgReportUserMapper).eq(SgReportUserDO::getReportId, id).orderByAsc(SgReportUserDO::getId).list();
 		List<Long> ids = list.stream().map(s -> s.getUserId()).collect(Collectors.toList());
 		List<Map<String,Object>> users = sgProgressReportMapper.getUserByIds(ids);

--
Gitblit v1.9.3