From 1b8c74f3dc3ac98c08ffa157e40c0bd5a9aeb799 Mon Sep 17 00:00:00 2001
From: shenyijian <1178253012@qq.com>
Date: Wed, 26 Jun 2024 18:44:33 +0800
Subject: [PATCH] 湖北水库:施工: 项目新增地区、工序角色配置校验

---
 skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/sg/service/impl/SgGxStepServiceImpl.java |   21 ++++++++++++++++++---
 1 files changed, 18 insertions(+), 3 deletions(-)

diff --git a/skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/sg/service/impl/SgGxStepServiceImpl.java b/skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/sg/service/impl/SgGxStepServiceImpl.java
index 28665ec..61a7e6a 100644
--- a/skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/sg/service/impl/SgGxStepServiceImpl.java
+++ b/skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/sg/service/impl/SgGxStepServiceImpl.java
@@ -2,10 +2,12 @@
 
 import cn.gistack.sm.sg.DO.SgGxRoleDO;
 import cn.gistack.sm.sg.DO.SgGxStepDO;
+import cn.gistack.sm.sg.DO.SgProgressReportDO;
 import cn.gistack.sm.sg.DTO.ProjectSearchDTO;
 import cn.gistack.sm.sg.VO.SgGxRoleVO;
 import cn.gistack.sm.sg.mapper.SgGxRoleMapper;
 import cn.gistack.sm.sg.mapper.SgGxStepMapper;
+import cn.gistack.sm.sg.mapper.SgProgressReportMapper;
 import cn.gistack.sm.sg.service.SgGxStepService;
 import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.baomidou.mybatisplus.core.toolkit.CollectionUtils;
@@ -18,6 +20,7 @@
 
 import java.util.ArrayList;
 import java.util.List;
+import java.util.stream.Collectors;
 
 /**
  * <p>
@@ -33,6 +36,10 @@
 	private SgGxStepMapper sgGxStepMapper;
 	@Autowired
 	private SgGxRoleMapper sgGxRoleMapper;
+
+	@Autowired
+	private SgProgressReportMapper sgProgressReportMapper;
+
 	@Override
 	public void add(SgGxStepDO sgGxStepDO) {
 	List<SgGxStepDO> list= sgGxStepMapper.selectByGxInfoId(sgGxStepDO.getGxInfoId());
@@ -112,9 +119,17 @@
 	@Override
 @Transactional
 public void updateSgGxRole(SgGxRoleVO sgGxRoleVO){
-
-
-	if (sgGxRoleVO.getGxStepId()==null){
+		String gxStepId = sgGxRoleVO.getGxStepId();
+		List<SgProgressReportDO> reportDOS = new LambdaQueryChainWrapper<>(sgProgressReportMapper).eq(s -> s.getGxStepId(), gxStepId).list();
+		List<SgGxRoleDO> list = new LambdaQueryChainWrapper<>(sgGxRoleMapper).eq(SgGxRoleDO::getGxStepId, gxStepId).orderByAsc(SgGxRoleDO::getSgOrder).list();
+		List<String> roles = list.stream().map(SgGxRoleDO::getRoleId).map(Object::toString).collect(Collectors.toList());
+		List<Integer> orders  = list.stream().map(SgGxRoleDO::getSgOrder).collect(Collectors.toList());
+		if (!reportDOS.isEmpty()){
+			if (! roles.equals(sgGxRoleVO.getRoleIds()) || ! orders.equals(sgGxRoleVO.getOrders()))	{
+				throw  new ServiceException("此配置已有上报记录,不允许修改");
+			}
+		}
+		if (sgGxRoleVO.getGxStepId()==null){
 		throw  new ServiceException("工序步骤参数错误");
 	}
 	if (sgGxRoleVO.getGxDeviceType()==null){

--
Gitblit v1.9.3