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 |   32 +++++++++++++++++++++++++++-----
 1 files changed, 27 insertions(+), 5 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 47aa7d1..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;
@@ -88,6 +89,22 @@
 		QueryWrapper<SgProgressReportDO> wrappers = new QueryWrapper<>();
 		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) {
@@ -159,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) {
@@ -176,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