Selaa lähdekoodia

sop创建工作步骤

车车 4 kuukautta sitten
vanhempi
sitoutus
239752733a

+ 2 - 2
yudao-module-iscs/src/main/java/cn/iocoder/yudao/module/iscs/controller/admin/sop/SopWorkflowStepController.java

@@ -34,8 +34,8 @@ public class SopWorkflowStepController {
     @PostMapping("/insertSopWorkflowStep")
     @Operation(summary = "创建工作流步骤")
     @PreAuthorize("@ss.hasPermission('iscs:sop-workflow-step:create')")
-    public CommonResult<Long> insertSopWorkflowStep(@Valid @RequestBody SopWorkflowStepSaveReqVO createReqVO) {
-        return success(sopWorkflowStepService.createSopWorkflowStep(createReqVO));
+    public CommonResult<Boolean> insertSopWorkflowStep(@Valid @RequestBody List<SopWorkflowStepSaveReqVO> list) {
+        return success(sopWorkflowStepService.createSopWorkflowStep(list));
     }
 
     @PutMapping("/updateSopWorkflowStep")

+ 15 - 0
yudao-module-iscs/src/main/java/cn/iocoder/yudao/module/iscs/dal/mysql/sop/SopWorkflowStepMapper.java

@@ -5,7 +5,11 @@ import cn.iocoder.yudao.framework.mybatis.core.mapper.BaseMapperX;
 import cn.iocoder.yudao.framework.mybatis.core.query.LambdaQueryWrapperX;
 import cn.iocoder.yudao.module.iscs.controller.admin.sop.vo.SopWorkflowStepPageReqVO;
 import cn.iocoder.yudao.module.iscs.dal.dataobject.sop.SopWorkflowStepDO;
+import org.apache.ibatis.annotations.Delete;
 import org.apache.ibatis.annotations.Mapper;
+import org.apache.ibatis.annotations.Param;
+
+import java.util.List;
 
 /**
  * 工作流步骤 Mapper
@@ -43,4 +47,15 @@ public interface SopWorkflowStepMapper extends BaseMapperX<SopWorkflowStepDO> {
                 .orderByDesc(SopWorkflowStepDO::getId));
     }
 
+    @Delete({
+            "<script>",
+            "DELETE FROM isc_sop_workflow_step",
+            "WHERE id IN",
+            "<foreach item='id' collection='ids' open='(' separator=',' close=')'>",
+            "#{id}",
+            "</foreach>",
+            "</script>"
+    })
+    Boolean physicalDeleteByIds(@Param(value = "ids") List<Long> ids);
+
 }

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

@@ -19,10 +19,10 @@ public interface SopWorkflowStepService extends IService<SopWorkflowStepDO> {
     /**
      * 创建工作流步骤
      *
-     * @param createReqVO 创建信息
+     * @param list 创建信息
      * @return 编号
      */
-    Long createSopWorkflowStep(@Valid SopWorkflowStepSaveReqVO createReqVO);
+    Boolean createSopWorkflowStep(@Valid List<SopWorkflowStepSaveReqVO> list);
 
     /**
      * 更新工作流步骤

+ 25 - 7
yudao-module-iscs/src/main/java/cn/iocoder/yudao/module/iscs/service/sop/SopWorkflowStepServiceImpl.java

@@ -1,17 +1,22 @@
 package cn.iocoder.yudao.module.iscs.service.sop;
 
+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.SopWorkflowStepPageReqVO;
 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;
 import org.springframework.validation.annotation.Validated;
 
 import java.util.List;
+import java.util.Objects;
+import java.util.Set;
+import java.util.stream.Collectors;
 
 /**
  * 工作流步骤 Service 实现类
@@ -26,17 +31,30 @@ public class SopWorkflowStepServiceImpl extends ServiceImpl<SopWorkflowStepMappe
     private SopWorkflowStepMapper sopWorkflowStepMapper;
 
     @Override
-    public Long createSopWorkflowStep(SopWorkflowStepSaveReqVO createReqVO) {
-        // 插入
-        SopWorkflowStepDO sopWorkflowStep = BeanUtils.toBean(createReqVO, SopWorkflowStepDO.class);
-        sopWorkflowStepMapper.insert(sopWorkflowStep);
-
+    public Boolean createSopWorkflowStep(List<SopWorkflowStepSaveReqVO> list) {
+        Assert.isTrue(list.isEmpty(), "请输入要新增的步骤!");
+        // 检查是否存在重复序号
+        Set<Integer> collect = list.stream().map(SopWorkflowStepSaveReqVO::getStepIndex).filter(Objects::nonNull).collect(Collectors.toSet());
+        Assert.isFalse(collect.size() < list.size(), "存在序号缺失或重复序号!");
+        for (SopWorkflowStepSaveReqVO vo : list) {
+            Assert.notNull(vo.getSopId(), "请告知我sopId");
+            Assert.notNull(vo.getStepId(), "请告知我步骤ID");
+            // 检查序号是否重复
+            List<SopWorkflowStepDO> list1 = list(Wrappers.<SopWorkflowStepDO>lambdaQuery()
+                    .eq(SopWorkflowStepDO::getSopId, vo.getSopId())
+                    .eq(SopWorkflowStepDO::getStepIndex, vo.getStepIndex()));
+            Assert.isTrue(list1.isEmpty(), "存在重复序号[" + vo.getStepIndex() + "]!");
+            // 插入
+            SopWorkflowStepDO sopWorkflowStep = BeanUtils.toBean(vo, SopWorkflowStepDO.class);
+            sopWorkflowStepMapper.insert(sopWorkflowStep);
+        }
         // 返回
-        return sopWorkflowStep.getId();
+        return true;
     }
 
     @Override
     public void updateSopWorkflowStep(SopWorkflowStepSaveReqVO updateReqVO) {
+        Assert.notNull(updateReqVO.getId(), "主键id不可为空!");
         // 更新
         SopWorkflowStepDO updateObj = BeanUtils.toBean(updateReqVO, SopWorkflowStepDO.class);
         sopWorkflowStepMapper.updateById(updateObj);
@@ -46,7 +64,7 @@ public class SopWorkflowStepServiceImpl extends ServiceImpl<SopWorkflowStepMappe
     @Override
         public void deleteSopWorkflowStepListByIds(List<Long> ids) {
         // 删除
-        sopWorkflowStepMapper.deleteByIds(ids);
+        sopWorkflowStepMapper.physicalDeleteByIds(ids);
         }
 
     @Override