소스 검색

修改sop生成业务bug

车车 3 달 전
부모
커밋
5a3b0874a2

+ 5 - 1
yudao-module-iscs/src/main/java/cn/iocoder/yudao/module/iscs/service/sop/SopExecutionPlanServiceImpl.java

@@ -243,7 +243,11 @@ public class SopExecutionPlanServiceImpl extends ServiceImpl<SopExecutionPlanMap
     public SopExecutionPlanRespVO selectSopExecutionPlanBySopId(Long sopId) {
         SopExecutionPlanDO sopExecutionPlanDO = getOne(Wrappers.<SopExecutionPlanDO>lambdaQuery()
                 .eq(SopExecutionPlanDO::getSopId, sopId));
-        Assert.isFalse(sopExecutionPlanDO == null, "该sop尚未创建执行计划!");
+        // Assert.isFalse(sopExecutionPlanDO == null, "该sop尚未创建执行计划!");
+        // 如果是空直接返回
+        if (sopExecutionPlanDO == null) {
+            return null;
+        }
         SopExecutionPlanRespVO bean = BeanUtils.toBean(sopExecutionPlanDO, SopExecutionPlanRespVO.class);
         // sop数据
         SopRespVO sopDetailById = sopService.getSopDetailById(bean.getSopId());

+ 74 - 2
yudao-module-iscs/src/main/java/cn/iocoder/yudao/module/iscs/service/sop/SopServiceImpl.java

@@ -5,10 +5,14 @@ import cn.hutool.core.lang.Assert;
 import cn.iocoder.yudao.framework.common.pojo.PageResult;
 import cn.iocoder.yudao.framework.common.util.object.BeanUtils;
 import cn.iocoder.yudao.module.iscs.controller.admin.sop.vo.*;
+import cn.iocoder.yudao.module.iscs.dal.dataobject.machinerypoints.MachineryPointsDO;
 import cn.iocoder.yudao.module.iscs.dal.dataobject.sop.*;
 import cn.iocoder.yudao.module.iscs.dal.dataobject.workflow.WorkflowModeDO;
+import cn.iocoder.yudao.module.iscs.dal.dataobject.workflow.WorkflowStepDO;
 import cn.iocoder.yudao.module.iscs.dal.mysql.sop.SopMapper;
+import cn.iocoder.yudao.module.iscs.service.machinerypoints.MachineryPointsService;
 import cn.iocoder.yudao.module.iscs.service.workflow.WorkflowModeService;
+import cn.iocoder.yudao.module.iscs.service.workflow.WorkflowStepService;
 import com.baomidou.mybatisplus.core.toolkit.Wrappers;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
@@ -19,6 +23,7 @@ import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
 import org.springframework.validation.annotation.Validated;
 
+import java.util.ArrayList;
 import java.util.List;
 
 import static cn.iocoder.yudao.framework.common.exception.util.ServiceExceptionUtil.exception;
@@ -45,6 +50,10 @@ public class SopServiceImpl extends ServiceImpl<SopMapper, SopDO> implements Sop
     private SopGroupService sopGroupService;
     @Resource
     private WorkflowModeService workflowModeService;
+    @Resource
+    private WorkflowStepService workflowStepService;
+    @Resource
+    private MachineryPointsService machineryPointsService;
     @Lazy
     @Resource
     private SopExecutionPlanService sopExecutionPlanService;
@@ -67,7 +76,7 @@ public class SopServiceImpl extends ServiceImpl<SopMapper, SopDO> implements Sop
         sopGroupDO.setSopId(sop.getId());
         sopGroupDO.setGroupName("默认分组");
         sopGroupService.save(sopGroupDO);
-        // 新增人员信息
+        /*// 新增人员信息
         if (vo.getSopUserList() != null && !vo.getSopUserList().isEmpty()) {
             vo.getSopUserList().forEach(o -> o.setSopId(sop.getId()));
             sopUserService.createSopUser(vo.getSopUserList());
@@ -78,14 +87,77 @@ public class SopServiceImpl extends ServiceImpl<SopMapper, SopDO> implements Sop
             sopPointsService.createSopPoints(vo.getSopPointsList());
         }
         // 新增流程步骤信息
-        /*if (vo.getSopStepList() != null && !vo.getSopStepList().isEmpty()) {
+        if (vo.getSopStepList() != null && !vo.getSopStepList().isEmpty()) {
             vo.getSopStepList().forEach(o -> o.setSopId(sop.getId()));
             sopWorkflowStepService.createSopWorkflowStep(vo.getSopStepList());
         }*/
+        // 新增隔离点
+        if (vo.getMachineryId() != null) {
+            List<MachineryPointsDO> machineryPointsDOS = machineryPointsService.list(Wrappers.<MachineryPointsDO>lambdaQuery()
+                    .eq(MachineryPointsDO::getMachineryId, vo.getMachineryId()));
+            ArrayList<SopPointsSaveReqVO> sopPointsSaveReqVOS = getSopPointsSaveReqVOS(machineryPointsDOS, sop, sopGroupDO);
+            if (!sopPointsSaveReqVOS.isEmpty()) {
+                sopPointsService.createSopPoints(sopPointsSaveReqVOS);
+            }
+        }
+        // 新增流程步骤信息
+        if (vo.getModeId() != null) {
+            List<WorkflowStepDO> workflowStepDOS = workflowStepService.list(Wrappers.<WorkflowStepDO>lambdaQuery()
+                    .eq(WorkflowStepDO::getModeId, vo.getModeId()));
+            if (!workflowStepDOS.isEmpty()) {
+                ArrayList<SopWorkflowStepSaveReqVO> sopWorkflowStepSaveReqVOS = getSopWorkflowStepSaveReqVOS(workflowStepDOS, sop);
+                sopWorkflowStepService.createSopWorkflowStep(sopWorkflowStepSaveReqVOS);
+            }
+        }
         // 返回
         return sop.getId();
     }
 
+    private static ArrayList<SopWorkflowStepSaveReqVO> getSopWorkflowStepSaveReqVOS(List<WorkflowStepDO> workflowStepDOS, SopDO sop) {
+        ArrayList<SopWorkflowStepSaveReqVO> sopWorkflowStepSaveReqVOS = new ArrayList<>();
+        for (WorkflowStepDO workflowStepDO : workflowStepDOS) {
+            SopWorkflowStepSaveReqVO vo1 = new SopWorkflowStepSaveReqVO();
+            vo1.setSopId(sop.getId());
+            vo1.setStepId(workflowStepDO.getId());
+            vo1.setStepIndex(workflowStepDO.getStepIndex());
+            vo1.setStepName(workflowStepDO.getStepName());
+            vo1.setStepIcon(workflowStepDO.getStepIcon());
+            vo1.setStepTitle(workflowStepDO.getStepTitle());
+            vo1.setStepTitleShort(workflowStepDO.getStepTitleShort());
+            vo1.setStepDescription(workflowStepDO.getStepDescription());
+            vo1.setConfirmType(workflowStepDO.getConfirmType());
+            vo1.setConfirmRoleCode(workflowStepDO.getConfirmRoleCode());
+            vo1.setConfirmUser(workflowStepDO.getConfirmUser());
+            vo1.setEnableCancelJob(workflowStepDO.getEnableCancelJob());
+            vo1.setEnableSetLocker(workflowStepDO.getEnableSetLocker());
+            vo1.setEnableSetColocker(workflowStepDO.getEnableSetColocker());
+            vo1.setEnableAddColocker(workflowStepDO.getEnableAddColocker());
+            vo1.setGotoStepAfterAddingColocker(workflowStepDO.getGotoStepAfterAddingColocker());
+            vo1.setEnableReduceColocker(workflowStepDO.getEnableReduceColocker());
+            vo1.setEnableLock(workflowStepDO.getEnableLock());
+            vo1.setEnableColock(workflowStepDO.getEnableColock());
+            vo1.setEnableReleaseColock(workflowStepDO.getEnableReleaseColock());
+            vo1.setEnableUnlock(workflowStepDO.getEnableUnlock());
+            vo1.setEnableEndJob(workflowStepDO.getEnableEndJob());
+            sopWorkflowStepSaveReqVOS.add(vo1);
+        }
+        return sopWorkflowStepSaveReqVOS;
+    }
+
+    private static ArrayList<SopPointsSaveReqVO> getSopPointsSaveReqVOS(List<MachineryPointsDO> machineryPointsDOS, SopDO sop, SopGroupDO sopGroupDO) {
+        ArrayList<SopPointsSaveReqVO> sopPointsSaveReqVOS = new ArrayList<>();
+        if (!machineryPointsDOS.isEmpty()) {
+            for (MachineryPointsDO machineryPointsDO : machineryPointsDOS) {
+                SopPointsSaveReqVO vo1 = new SopPointsSaveReqVO();
+                vo1.setSopId(sop.getId());
+                vo1.setGroupId(sopGroupDO.getId());
+                vo1.setPointId(machineryPointsDO.getPointId());
+                sopPointsSaveReqVOS.add(vo1);
+            }
+        }
+        return sopPointsSaveReqVOS;
+    }
+
     @Override
     public void updateSop(SopSaveReqVO updateReqVO) {
         Assert.notNull(updateReqVO.getId(), "ID不可为空!");

+ 2 - 3
yudao-module-iscs/src/main/java/cn/iocoder/yudao/module/iscs/service/sop/SopWorkflowStepServiceImpl.java

@@ -8,7 +8,6 @@ import cn.iocoder.yudao.module.iscs.controller.admin.sop.vo.SopWorkflowStepRespV
 import cn.iocoder.yudao.module.iscs.controller.admin.sop.vo.SopWorkflowStepSaveReqVO;
 import cn.iocoder.yudao.module.iscs.dal.dataobject.sop.SopWorkflowStepDO;
 import cn.iocoder.yudao.module.iscs.dal.mysql.sop.SopWorkflowStepMapper;
-import com.baomidou.mybatisplus.core.toolkit.Wrappers;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import jakarta.annotation.Resource;
 import org.springframework.stereotype.Service;
@@ -43,10 +42,10 @@ public class SopWorkflowStepServiceImpl extends ServiceImpl<SopWorkflowStepMappe
             Assert.notNull(vo.getSopId(), "请告知我sopId");
             Assert.notNull(vo.getStepId(), "请告知我步骤ID");
             // 检查序号是否重复
-            List<SopWorkflowStepDO> list1 = list(Wrappers.<SopWorkflowStepDO>lambdaQuery()
+           /* List<SopWorkflowStepDO> list1 = list(Wrappers.<SopWorkflowStepDO>lambdaQuery()
                     .eq(SopWorkflowStepDO::getSopId, vo.getSopId())
                     .eq(SopWorkflowStepDO::getStepIndex, vo.getStepIndex()));
-            Assert.isTrue(list1.isEmpty(), "存在重复序号[" + vo.getStepIndex() + "]!");
+            Assert.isTrue(list1.isEmpty(), "存在重复序号[" + vo.getStepIndex() + "]!");*/
             // 插入
             SopWorkflowStepDO sopWorkflowStep = BeanUtils.toBean(vo, SopWorkflowStepDO.class);
             sopWorkflowStepMapper.insert(sopWorkflowStep);