Browse Source

修改删除前判断

车车 4 months ago
parent
commit
4e5684e843
19 changed files with 197 additions and 146 deletions
  1. 2 2
      yudao-module-iscs/src/main/java/cn/iocoder/yudao/module/iscs/controller/admin/jobticket/JobTicketStepController.java
  2. 5 3
      yudao-module-iscs/src/main/java/cn/iocoder/yudao/module/iscs/service/jobcard/JobCardServiceImpl.java
  3. 15 13
      yudao-module-iscs/src/main/java/cn/iocoder/yudao/module/iscs/service/jobticket/JobTicketGroupServiceImpl.java
  4. 3 1
      yudao-module-iscs/src/main/java/cn/iocoder/yudao/module/iscs/service/jobticket/JobTicketKeyServiceImpl.java
  5. 3 1
      yudao-module-iscs/src/main/java/cn/iocoder/yudao/module/iscs/service/jobticket/JobTicketLockServiceImpl.java
  6. 20 18
      yudao-module-iscs/src/main/java/cn/iocoder/yudao/module/iscs/service/jobticket/JobTicketPointsServiceImpl.java
  7. 1 0
      yudao-module-iscs/src/main/java/cn/iocoder/yudao/module/iscs/service/jobticket/JobTicketServiceImpl.java
  8. 1 1
      yudao-module-iscs/src/main/java/cn/iocoder/yudao/module/iscs/service/jobticket/JobTicketStepService.java
  9. 24 7
      yudao-module-iscs/src/main/java/cn/iocoder/yudao/module/iscs/service/jobticket/JobTicketStepServiceImpl.java
  10. 15 13
      yudao-module-iscs/src/main/java/cn/iocoder/yudao/module/iscs/service/jobticket/JobTicketUserServiceImpl.java
  11. 19 17
      yudao-module-iscs/src/main/java/cn/iocoder/yudao/module/iscs/service/sop/SopGroupServiceImpl.java
  12. 16 14
      yudao-module-iscs/src/main/java/cn/iocoder/yudao/module/iscs/service/sop/SopPointsServiceImpl.java
  13. 34 31
      yudao-module-iscs/src/main/java/cn/iocoder/yudao/module/iscs/service/sop/SopServiceImpl.java
  14. 3 1
      yudao-module-iscs/src/main/java/cn/iocoder/yudao/module/iscs/service/sop/SopUserServiceImpl.java
  15. 4 2
      yudao-module-iscs/src/main/java/cn/iocoder/yudao/module/iscs/service/sop/SopWorkflowStepServiceImpl.java
  16. 12 10
      yudao-module-iscs/src/main/java/cn/iocoder/yudao/module/iscs/service/workflow/WorkflowModeServiceImpl.java
  17. 6 2
      yudao-module-iscs/src/main/java/cn/iocoder/yudao/module/iscs/service/workflow/WorkflowStepServiceImpl.java
  18. 4 2
      yudao-module-iscs/src/main/java/cn/iocoder/yudao/module/iscs/service/workflow/WorkflowStepTemplateServiceImpl.java
  19. 10 8
      yudao-module-system/src/main/java/cn/iocoder/yudao/module/system/service/attribute/AttributeServiceImpl.java

+ 2 - 2
yudao-module-iscs/src/main/java/cn/iocoder/yudao/module/iscs/controller/admin/jobticket/JobTicketStepController.java

@@ -33,8 +33,8 @@ public class JobTicketStepController {
     @PostMapping("/insertJobTicketStep")
     @Operation(summary = "创建作业票执行步骤")
     @PreAuthorize("@ss.hasPermission('iscs:job-ticket-step:create')")
-    public CommonResult<Long> insertJobTicketStep(@Valid @RequestBody JobTicketStepSaveReqVO createReqVO) {
-        return success(jobTicketStepService.createJobTicketStep(createReqVO));
+    public CommonResult<Boolean> insertJobTicketStep(@Valid @RequestBody List<JobTicketStepSaveReqVO> list) {
+        return success(jobTicketStepService.createJobTicketStep(list));
     }
 
     @PutMapping("/updateJobTicketStep")

+ 5 - 3
yudao-module-iscs/src/main/java/cn/iocoder/yudao/module/iscs/service/jobcard/JobCardServiceImpl.java

@@ -43,7 +43,6 @@ public class JobCardServiceImpl extends ServiceImpl<JobCardMapper, JobCardDO> im
     private AdminUserService adminUserService;
 
 
-
     @Override
     public Long createJobCard(JobCardSaveReqVO createReqVO) {
         // 插入
@@ -72,13 +71,16 @@ public class JobCardServiceImpl extends ServiceImpl<JobCardMapper, JobCardDO> im
     }
 
     @Override
-        public void deleteJobCardListByIds(List<Long> ids) {
+    public void deleteJobCardListByIds(List<Long> ids) {
         // 校验存在
         validateJobCardExists(ids);
         // 删除
-        jobCardMapper.physicalDeleteByIds(ids);
+        if (!ids.isEmpty()) {
+            jobCardMapper.physicalDeleteByIds(ids);
         }
 
+    }
+
     private void validateJobCardExists(List<Long> ids) {
         List<JobCardDO> list = jobCardMapper.selectByIds(ids);
         if (CollUtil.isEmpty(list) || list.size() != ids.size()) {

+ 15 - 13
yudao-module-iscs/src/main/java/cn/iocoder/yudao/module/iscs/service/jobticket/JobTicketGroupServiceImpl.java

@@ -62,19 +62,21 @@ public class JobTicketGroupServiceImpl extends ServiceImpl<JobTicketGroupMapper,
         // 校验存在
         validateJobTicketGroupExists(ids);
         // 删除
-        jobTicketGroupMapper.physicalDeleteByIds(ids);
-        // 同时需要删除分组下的人员信息和点位信息
-        List<JobTicketUserDO> list = jobTicketUserService.list(Wrappers.<JobTicketUserDO>lambdaQuery()
-                .in(JobTicketUserDO::getGroupId, ids));
-        if (!list.isEmpty()) {
-            List<Long> ticketUserIds = list.stream().map(JobTicketUserDO::getId).toList();
-            jobTicketUserService.deleteJobTicketUserListByIds(ticketUserIds);
-        }
-        List<JobTicketPointsDO> list1 = jobTicketPointsService.list(Wrappers.<JobTicketPointsDO>lambdaQuery()
-                .in(JobTicketPointsDO::getGroupId, ids));
-        if (!list1.isEmpty()) {
-            List<Long> ticketPointsIds = list1.stream().map(JobTicketPointsDO::getId).toList();
-            jobTicketPointsService.deleteJobTicketPointsListByIds(ticketPointsIds);
+        if (!ids.isEmpty()) {
+            jobTicketGroupMapper.physicalDeleteByIds(ids);
+            // 同时需要删除分组下的人员信息和点位信息
+            List<JobTicketUserDO> list = jobTicketUserService.list(Wrappers.<JobTicketUserDO>lambdaQuery()
+                    .in(JobTicketUserDO::getGroupId, ids));
+            if (!list.isEmpty()) {
+                List<Long> ticketUserIds = list.stream().map(JobTicketUserDO::getId).toList();
+                jobTicketUserService.deleteJobTicketUserListByIds(ticketUserIds);
+            }
+            List<JobTicketPointsDO> list1 = jobTicketPointsService.list(Wrappers.<JobTicketPointsDO>lambdaQuery()
+                    .in(JobTicketPointsDO::getGroupId, ids));
+            if (!list1.isEmpty()) {
+                List<Long> ticketPointsIds = list1.stream().map(JobTicketPointsDO::getId).toList();
+                jobTicketPointsService.deleteJobTicketPointsListByIds(ticketPointsIds);
+            }
         }
     }
 

+ 3 - 1
yudao-module-iscs/src/main/java/cn/iocoder/yudao/module/iscs/service/jobticket/JobTicketKeyServiceImpl.java

@@ -48,7 +48,9 @@ public class JobTicketKeyServiceImpl extends ServiceImpl<JobTicketKeyMapper, Job
     @Override
     public void deleteJobTicketKeyListByIds(List<Long> ids) {
         // 删除
-        jobTicketKeyMapper.physicalDeleteByIds(ids);
+        if (!ids.isEmpty()) {
+            jobTicketKeyMapper.physicalDeleteByIds(ids);
+        }
     }
 
     private void validateJobTicketKeyExists(Long id) {

+ 3 - 1
yudao-module-iscs/src/main/java/cn/iocoder/yudao/module/iscs/service/jobticket/JobTicketLockServiceImpl.java

@@ -47,7 +47,9 @@ public class JobTicketLockServiceImpl extends ServiceImpl<JobTicketLockMapper, J
     @Override
     public void deleteJobTicketLockListByIds(List<Long> ids) {
         // 删除
-        jobTicketLockMapper.physicalDeleteByIds(ids);
+        if (!ids.isEmpty()) {
+            jobTicketLockMapper.physicalDeleteByIds(ids);
+        }
     }
 
     private void validateJobTicketLockExists(Long id) {

+ 20 - 18
yudao-module-iscs/src/main/java/cn/iocoder/yudao/module/iscs/service/jobticket/JobTicketPointsServiceImpl.java

@@ -53,28 +53,30 @@ public class JobTicketPointsServiceImpl extends ServiceImpl<JobTicketPointsMappe
     @Transactional
     @Override
     public void deleteJobTicketPointsListByIds(List<Long> ids) {
-        // 删除点位的同时删除isc_job_ticket_lock其中一条
-        List<JobTicketPointsDO> jobTicketPointsDOS = listByIds(ids);
-        for (JobTicketPointsDO jobTicketPointsDO : jobTicketPointsDOS) {
-            ArrayList<Long> longs = new ArrayList<>();
-            JobTicketLockDO one = jobTicketLockService.getOne(Wrappers.<JobTicketLockDO>lambdaQuery()
-                    .eq(JobTicketLockDO::getTicketId, jobTicketPointsDO.getTicketId())
-                    .eq(JobTicketLockDO::getIsolationPointId, jobTicketPointsDO.getPointId()));
-            if (one != null) {
-                longs.add(one.getId());
-            } else {
-                JobTicketLockDO one1 = jobTicketLockService.getOne(Wrappers.<JobTicketLockDO>lambdaQuery()
+        if (!ids.isEmpty()) {
+            // 删除点位的同时删除isc_job_ticket_lock其中一条
+            List<JobTicketPointsDO> jobTicketPointsDOS = listByIds(ids);
+            for (JobTicketPointsDO jobTicketPointsDO : jobTicketPointsDOS) {
+                ArrayList<Long> longs = new ArrayList<>();
+                JobTicketLockDO one = jobTicketLockService.getOne(Wrappers.<JobTicketLockDO>lambdaQuery()
                         .eq(JobTicketLockDO::getTicketId, jobTicketPointsDO.getTicketId())
-                        .eq(JobTicketLockDO::getLockStatus, "0"));
-                if (one1 != null) {
-                    longs.add(one1.getId());
+                        .eq(JobTicketLockDO::getIsolationPointId, jobTicketPointsDO.getPointId()));
+                if (one != null) {
+                    longs.add(one.getId());
+                } else {
+                    JobTicketLockDO one1 = jobTicketLockService.getOne(Wrappers.<JobTicketLockDO>lambdaQuery()
+                            .eq(JobTicketLockDO::getTicketId, jobTicketPointsDO.getTicketId())
+                            .eq(JobTicketLockDO::getLockStatus, "0"));
+                    if (one1 != null) {
+                        longs.add(one1.getId());
+                    }
                 }
+                jobTicketLockService.deleteJobTicketLockListByIds(longs);
             }
-            jobTicketLockService.deleteJobTicketLockListByIds(longs);
-        }
 
-        // 删除
-        jobTicketPointsMapper.physicalDeleteByIds(ids);
+            // 删除
+            jobTicketPointsMapper.physicalDeleteByIds(ids);
+        }
     }
 
 

+ 1 - 0
yudao-module-iscs/src/main/java/cn/iocoder/yudao/module/iscs/service/jobticket/JobTicketServiceImpl.java

@@ -141,6 +141,7 @@ public class JobTicketServiceImpl extends ServiceImpl<JobTicketMapper, JobTicket
                 .in(JobTicketGroupDO::getTicketId, ids));
         if (!ticketGroupDOList.isEmpty()) {
             List<Long> deletedIds = ticketGroupDOList.stream().map(JobTicketGroupDO::getId).toList();
+            // 删除分组的时候会帮忙删除人员和点位
             jobTicketGroupService.deleteJobTicketGroupListByIds(deletedIds);
         }
         // 删除isc_job_ticket_key

+ 1 - 1
yudao-module-iscs/src/main/java/cn/iocoder/yudao/module/iscs/service/jobticket/JobTicketStepService.java

@@ -22,7 +22,7 @@ public interface JobTicketStepService extends IService<JobTicketStepDO> {
      * @param createReqVO 创建信息
      * @return 编号
      */
-    Long createJobTicketStep(@Valid JobTicketStepSaveReqVO createReqVO);
+    Boolean createJobTicketStep(@Valid List<JobTicketStepSaveReqVO> list);
 
     /**
      * 更新作业票执行步骤

+ 24 - 7
yudao-module-iscs/src/main/java/cn/iocoder/yudao/module/iscs/service/jobticket/JobTicketStepServiceImpl.java

@@ -1,11 +1,13 @@
 package cn.iocoder.yudao.module.iscs.service.jobticket;
 
+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.jobticket.vo.JobTicketStepPageReqVO;
 import cn.iocoder.yudao.module.iscs.controller.admin.jobticket.vo.JobTicketStepSaveReqVO;
 import cn.iocoder.yudao.module.iscs.dal.dataobject.jobticket.JobTicketStepDO;
 import cn.iocoder.yudao.module.iscs.dal.mysql.jobticket.JobTicketStepMapper;
+import com.baomidou.mybatisplus.core.toolkit.Wrappers;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import jakarta.annotation.Resource;
 import org.springframework.stereotype.Service;
@@ -26,19 +28,32 @@ public class JobTicketStepServiceImpl extends ServiceImpl<JobTicketStepMapper, J
     private JobTicketStepMapper jobTicketStepMapper;
 
     @Override
-    public Long createJobTicketStep(JobTicketStepSaveReqVO createReqVO) {
-        // 插入
-        JobTicketStepDO jobTicketStep = BeanUtils.toBean(createReqVO, JobTicketStepDO.class);
-        jobTicketStepMapper.insert(jobTicketStep);
-
+    public Boolean createJobTicketStep(List<JobTicketStepSaveReqVO> list) {
+        Assert.isFalse(list.isEmpty(), "新增数据不能为空");
+        for (JobTicketStepSaveReqVO createReqVO : list) {
+            // 检查名称重复
+            List<JobTicketStepDO> list1 = list(Wrappers.<JobTicketStepDO>lambdaQuery()
+                    .eq(JobTicketStepDO::getTicketId, createReqVO.getTicketId())
+                    .eq(JobTicketStepDO::getStepName, createReqVO.getStepName()));
+            Assert.isTrue(list1.isEmpty(), "步骤名称重复!");
+            // 插入
+            JobTicketStepDO jobTicketStep = BeanUtils.toBean(createReqVO, JobTicketStepDO.class);
+            jobTicketStepMapper.insert(jobTicketStep);
+        }
         // 返回
-        return jobTicketStep.getId();
+        return true;
     }
 
     @Override
     public void updateJobTicketStep(JobTicketStepSaveReqVO updateReqVO) {
         // 校验存在
         validateJobTicketStepExists(updateReqVO.getId());
+        // 检查名称重复
+        List<JobTicketStepDO> list1 = list(Wrappers.<JobTicketStepDO>lambdaQuery()
+                .eq(JobTicketStepDO::getTicketId, updateReqVO.getTicketId())
+                .eq(JobTicketStepDO::getStepName, updateReqVO.getStepName())
+                .ne(JobTicketStepDO::getId, updateReqVO.getId()));
+        Assert.isTrue(list1.isEmpty(), "步骤名称重复!");
         // 更新
         JobTicketStepDO updateObj = BeanUtils.toBean(updateReqVO, JobTicketStepDO.class);
         jobTicketStepMapper.updateById(updateObj);
@@ -47,7 +62,9 @@ public class JobTicketStepServiceImpl extends ServiceImpl<JobTicketStepMapper, J
     @Override
     public void deleteJobTicketStepListByIds(List<Long> ids) {
         // 删除
-        jobTicketStepMapper.physicalDeleteByIds(ids);
+        if (!ids.isEmpty()) {
+            jobTicketStepMapper.physicalDeleteByIds(ids);
+        }
     }
 
     private void validateJobTicketStepExists(Long id) {

+ 15 - 13
yudao-module-iscs/src/main/java/cn/iocoder/yudao/module/iscs/service/jobticket/JobTicketUserServiceImpl.java

@@ -57,22 +57,24 @@ public class JobTicketUserServiceImpl extends ServiceImpl<JobTicketUserMapper, J
     @Override
     public void deleteJobTicketUserListByIds(List<Long> ids) {
         // 每删除一个人员,需要判断这个人员是不是上锁人,如果是上锁人,就需要删除isc_job_ticket_key的初始化数据
-        List<JobTicketUserDO> jobTicketUserDOS = listByIds(ids);
-        String sysAttrValue = attributeService.getAttributeByKey("role.jtlocker").getSysAttrValue();
-        for (JobTicketUserDO jobTicketUserDO : jobTicketUserDOS) {
-            if (jobTicketUserDO.getUserRole().equals(sysAttrValue)) {
-                JobTicketKeyDO one = jobTicketKeyService.getOne(Wrappers.<JobTicketKeyDO>lambdaQuery()
-                        .eq(JobTicketKeyDO::getTicketId, jobTicketUserDO.getTicketId())
-                        .eq(JobTicketKeyDO::getKeyStatus, "0"));
-                if (one != null) {
-                    List<Long> objects = new ArrayList<>();
-                    objects.add(one.getId());
-                    jobTicketKeyService.deleteJobTicketKeyListByIds(objects);
+        if (!ids.isEmpty()) {
+            List<JobTicketUserDO> jobTicketUserDOS = listByIds(ids);
+            String sysAttrValue = attributeService.getAttributeByKey("role.jtlocker").getSysAttrValue();
+            for (JobTicketUserDO jobTicketUserDO : jobTicketUserDOS) {
+                if (jobTicketUserDO.getUserRole().equals(sysAttrValue)) {
+                    JobTicketKeyDO one = jobTicketKeyService.getOne(Wrappers.<JobTicketKeyDO>lambdaQuery()
+                            .eq(JobTicketKeyDO::getTicketId, jobTicketUserDO.getTicketId())
+                            .eq(JobTicketKeyDO::getKeyStatus, "0"));
+                    if (one != null) {
+                        List<Long> objects = new ArrayList<>();
+                        objects.add(one.getId());
+                        jobTicketKeyService.deleteJobTicketKeyListByIds(objects);
+                    }
                 }
             }
+            // 删除
+            jobTicketUserMapper.physicalDeleteByIds(ids);
         }
-        // 删除
-        jobTicketUserMapper.physicalDeleteByIds(ids);
     }
 
     private void validateJobTicketUserExists(Long id) {

+ 19 - 17
yudao-module-iscs/src/main/java/cn/iocoder/yudao/module/iscs/service/sop/SopGroupServiceImpl.java

@@ -74,24 +74,26 @@ public class SopGroupServiceImpl extends ServiceImpl<SopGroupMapper, SopGroupDO>
 
     @Transactional
     @Override
-        public void deleteSopGroupListByIds(List<Long> ids) {
-        // 1.同时将sop的隔离点清除分组
-        List<SopPointsDO> list1 = sopPointsService.list(Wrappers.<SopPointsDO>lambdaQuery()
-                .in(SopPointsDO::getGroupId, ids));
-        if (!list1.isEmpty()) {
-            List<Long> sopPointIds = list1.stream().map(SopPointsDO::getId).toList();
-            sopPointsService.deleteSopPointsListByIds(sopPointIds);
-        }
-        // 2.同时将sop的人员清除分组
-        List<SopUserDO> list2 = sopUserService.list(Wrappers.<SopUserDO>lambdaQuery()
-                .in(SopUserDO::getGroupId, ids));
-        if (!list2.isEmpty()) {
-            List<Long> sopUserIds = list2.stream().map(SopUserDO::getId).toList();
-            sopUserService.deleteSopUserListByIds(sopUserIds);
-        }
-        // 3.删除
-        sopGroupMapper.physicalDeleteByIds(ids);
+    public void deleteSopGroupListByIds(List<Long> ids) {
+        if (!ids.isEmpty()) {
+            // 1.同时将sop的隔离点清除分组
+            List<SopPointsDO> list1 = sopPointsService.list(Wrappers.<SopPointsDO>lambdaQuery()
+                    .in(SopPointsDO::getGroupId, ids));
+            if (!list1.isEmpty()) {
+                List<Long> sopPointIds = list1.stream().map(SopPointsDO::getId).toList();
+                sopPointsService.deleteSopPointsListByIds(sopPointIds);
+            }
+            // 2.同时将sop的人员清除分组
+            List<SopUserDO> list2 = sopUserService.list(Wrappers.<SopUserDO>lambdaQuery()
+                    .in(SopUserDO::getGroupId, ids));
+            if (!list2.isEmpty()) {
+                List<Long> sopUserIds = list2.stream().map(SopUserDO::getId).toList();
+                sopUserService.deleteSopUserListByIds(sopUserIds);
+            }
+            // 3.删除
+            sopGroupMapper.physicalDeleteByIds(ids);
         }
+    }
 
     @Override
     public SopGroupDO getSopGroup(Long id) {

+ 16 - 14
yudao-module-iscs/src/main/java/cn/iocoder/yudao/module/iscs/service/sop/SopPointsServiceImpl.java

@@ -66,20 +66,22 @@ public class SopPointsServiceImpl extends ServiceImpl<SopPointsMapper, SopPoints
     @Transactional
     @Override
     public void deleteSopPointsListByIds(List<Long> ids) {
-        // 校验存在
-        List<SopPointsDO> sopPointsDOS = validateSopPointsExists(ids);
-        SopDO byId = sopService.getById(sopPointsDOS.get(0).getSopId());
-        // 删除
-        sopPointsMapper.physicalDeleteByIds(ids);
-        // 校验sop生效有没有影响
-        // 如果一开始是生效的,检验修改以后是否还生效
-        if (byId.getSopStatus().equals("1")) {
-            try {
-                sopService.sopEffectiveRules(byId.getId());
-            } catch (Exception e) {
-                sopService.update(Wrappers.<SopDO>lambdaUpdate()
-                        .eq(SopDO::getId, byId.getId())
-                        .set(SopDO::getSopStatus, "0"));
+        if (!ids.isEmpty()) {
+            // 校验存在
+            List<SopPointsDO> sopPointsDOS = validateSopPointsExists(ids);
+            SopDO byId = sopService.getById(sopPointsDOS.get(0).getSopId());
+            // 删除
+            sopPointsMapper.physicalDeleteByIds(ids);
+            // 校验sop生效有没有影响
+            // 如果一开始是生效的,检验修改以后是否还生效
+            if (byId.getSopStatus().equals("1")) {
+                try {
+                    sopService.sopEffectiveRules(byId.getId());
+                } catch (Exception e) {
+                    sopService.update(Wrappers.<SopDO>lambdaUpdate()
+                            .eq(SopDO::getId, byId.getId())
+                            .set(SopDO::getSopStatus, "0"));
+                }
             }
         }
     }

+ 34 - 31
yudao-module-iscs/src/main/java/cn/iocoder/yudao/module/iscs/service/sop/SopServiceImpl.java

@@ -137,37 +137,39 @@ public class SopServiceImpl extends ServiceImpl<SopMapper, SopDO> implements Sop
     @Transactional
     @Override
     public void deleteSopListByIds(List<Long> ids) {
-        // 校验存在
-        validateSopExists(ids);
-        // 删除
-        sopMapper.physicalDeleteByIds(ids);
-        // 删除isc_sop_group
-        List<SopGroupDO> sopGroupList = sopGroupService.list(Wrappers.<SopGroupDO>lambdaQuery()
-                .in(SopGroupDO::getSopId, ids));
-        if (!sopGroupList.isEmpty()) {
-            List<Long> idList = sopGroupList.stream().map(SopGroupDO::getId).toList();
-            sopGroupService.deleteSopGroupListByIds(idList);
-        }
-        // 删除isc_sop_points
-        List<SopPointsDO> sopPointList = sopPointsService.list(Wrappers.<SopPointsDO>lambdaQuery()
-                .in(SopPointsDO::getSopId, ids));
-        if (!sopPointList.isEmpty()) {
-            List<Long> idList = sopPointList.stream().map(SopPointsDO::getId).toList();
-            sopPointsService.deleteSopPointsListByIds(idList);
-        }
-        // 删除isc_sop_user
-        List<SopUserDO> sopUserList = sopUserService.list(Wrappers.<SopUserDO>lambdaQuery()
-                .in(SopUserDO::getSopId, ids));
-        if (!sopUserList.isEmpty()) {
-            List<Long> idList = sopUserList.stream().map(SopUserDO::getId).toList();
-            sopUserService.deleteSopUserListByIds(idList);
-        }
-        // 删除isc_sop_workflow_step
-        List<SopWorkflowStepDO> sopWorkflowStepList = sopWorkflowStepService.list(Wrappers.<SopWorkflowStepDO>lambdaQuery()
-                .in(SopWorkflowStepDO::getSopId, ids));
-        if (!sopWorkflowStepList.isEmpty()) {
-            List<Long> idList = sopWorkflowStepList.stream().map(SopWorkflowStepDO::getId).toList();
-            sopWorkflowStepService.deleteSopWorkflowStepListByIds(idList);
+        if (!ids.isEmpty()) {
+            // 校验存在
+            validateSopExists(ids);
+            // 删除
+            sopMapper.physicalDeleteByIds(ids);
+            // 删除isc_sop_group
+            List<SopGroupDO> sopGroupList = sopGroupService.list(Wrappers.<SopGroupDO>lambdaQuery()
+                    .in(SopGroupDO::getSopId, ids));
+            if (!sopGroupList.isEmpty()) {
+                List<Long> idList = sopGroupList.stream().map(SopGroupDO::getId).toList();
+                sopGroupService.deleteSopGroupListByIds(idList);
+            }
+            // 删除isc_sop_points
+            List<SopPointsDO> sopPointList = sopPointsService.list(Wrappers.<SopPointsDO>lambdaQuery()
+                    .in(SopPointsDO::getSopId, ids));
+            if (!sopPointList.isEmpty()) {
+                List<Long> idList = sopPointList.stream().map(SopPointsDO::getId).toList();
+                sopPointsService.deleteSopPointsListByIds(idList);
+            }
+            // 删除isc_sop_user
+            List<SopUserDO> sopUserList = sopUserService.list(Wrappers.<SopUserDO>lambdaQuery()
+                    .in(SopUserDO::getSopId, ids));
+            if (!sopUserList.isEmpty()) {
+                List<Long> idList = sopUserList.stream().map(SopUserDO::getId).toList();
+                sopUserService.deleteSopUserListByIds(idList);
+            }
+            // 删除isc_sop_workflow_step
+            List<SopWorkflowStepDO> sopWorkflowStepList = sopWorkflowStepService.list(Wrappers.<SopWorkflowStepDO>lambdaQuery()
+                    .in(SopWorkflowStepDO::getSopId, ids));
+            if (!sopWorkflowStepList.isEmpty()) {
+                List<Long> idList = sopWorkflowStepList.stream().map(SopWorkflowStepDO::getId).toList();
+                sopWorkflowStepService.deleteSopWorkflowStepListByIds(idList);
+            }
         }
     }
 
@@ -232,6 +234,7 @@ public class SopServiceImpl extends ServiceImpl<SopMapper, SopDO> implements Sop
 
     /**
      * 检测是否生效
+     *
      * @param sopId
      */
     @Override

+ 3 - 1
yudao-module-iscs/src/main/java/cn/iocoder/yudao/module/iscs/service/sop/SopUserServiceImpl.java

@@ -92,7 +92,9 @@ public class SopUserServiceImpl extends ServiceImpl<SopUserMapper, SopUserDO> im
     @Override
     public void deleteSopUserListByIds(List<Long> ids) {
         // 删除
-        sopUserMapper.physicalDeleteByIds(ids);
+        if (!ids.isEmpty()) {
+            sopUserMapper.physicalDeleteByIds(ids);
+        }
     }
 
     @Override

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

@@ -65,10 +65,12 @@ public class SopWorkflowStepServiceImpl extends ServiceImpl<SopWorkflowStepMappe
 
 
     @Override
-        public void deleteSopWorkflowStepListByIds(List<Long> ids) {
+    public void deleteSopWorkflowStepListByIds(List<Long> ids) {
         // 删除
-        sopWorkflowStepMapper.physicalDeleteByIds(ids);
+        if (!ids.isEmpty()) {
+            sopWorkflowStepMapper.physicalDeleteByIds(ids);
         }
+    }
 
     @Override
     public SopWorkflowStepDO getSopWorkflowStep(Long id) {

+ 12 - 10
yudao-module-iscs/src/main/java/cn/iocoder/yudao/module/iscs/service/workflow/WorkflowModeServiceImpl.java

@@ -86,17 +86,19 @@ public class WorkflowModeServiceImpl extends ServiceImpl<WorkflowModeMapper, Wor
 
     @Transactional
     @Override
-        public void deleteWorkflowModeListByIds(List<Long> ids) {
-        // 删除的时候同时删除步骤
-        List<WorkflowStepDO> list = workflowStepService.list(Wrappers.<WorkflowStepDO>lambdaQuery()
-                .in(WorkflowStepDO::getModeId, ids));
-        if (!list.isEmpty()) {
-            List<Long> list1 = list.stream().map(WorkflowStepDO::getId).toList();
-            workflowStepService.deleteWorkflowStepListByIds(list1);
-        }
-        // 删除
-        workflowModeMapper.physicalDeleteByIds(ids);
+    public void deleteWorkflowModeListByIds(List<Long> ids) {
+        if (!ids.isEmpty()) {
+            // 删除的时候同时删除步骤
+            List<WorkflowStepDO> list = workflowStepService.list(Wrappers.<WorkflowStepDO>lambdaQuery()
+                    .in(WorkflowStepDO::getModeId, ids));
+            if (!list.isEmpty()) {
+                List<Long> list1 = list.stream().map(WorkflowStepDO::getId).toList();
+                workflowStepService.deleteWorkflowStepListByIds(list1);
+            }
+            // 删除
+            workflowModeMapper.physicalDeleteByIds(ids);
         }
+    }
 
 
     @Override

+ 6 - 2
yudao-module-iscs/src/main/java/cn/iocoder/yudao/module/iscs/service/workflow/WorkflowStepServiceImpl.java

@@ -103,7 +103,9 @@ public class WorkflowStepServiceImpl extends ServiceImpl<WorkflowStepMapper, Wor
     @Override
     public void deleteWorkflowStepListByIds(List<Long> ids) {
         // 删除
-        workflowStepMapper.physicalDeleteByIds(ids);
+        if (!ids.isEmpty()) {
+            workflowStepMapper.physicalDeleteByIds(ids);
+        }
     }
 
     @Override
@@ -113,7 +115,9 @@ public class WorkflowStepServiceImpl extends ServiceImpl<WorkflowStepMapper, Wor
 
     @Override
     public void deleteWorkflowStepList(List<Long> ids) {
-        workflowStepMapper.physicalDeleteByIds(ids);
+        if (!ids.isEmpty()) {
+            workflowStepMapper.physicalDeleteByIds(ids);
+        }
     }
 
     @Override

+ 4 - 2
yudao-module-iscs/src/main/java/cn/iocoder/yudao/module/iscs/service/workflow/WorkflowStepTemplateServiceImpl.java

@@ -84,10 +84,12 @@ public class WorkflowStepTemplateServiceImpl extends ServiceImpl<WorkflowStepTem
     }
 
     @Override
-        public void deleteWorkflowStepTemplateListByIds(List<Long> ids) {
+    public void deleteWorkflowStepTemplateListByIds(List<Long> ids) {
         // 删除
-        workflowStepTemplateMapper.physicalDeleteByIds(ids);
+        if (!ids.isEmpty()) {
+            workflowStepTemplateMapper.physicalDeleteByIds(ids);
         }
+    }
 
 
     @Override

+ 10 - 8
yudao-module-system/src/main/java/cn/iocoder/yudao/module/system/service/attribute/AttributeServiceImpl.java

@@ -78,15 +78,17 @@ public class AttributeServiceImpl extends ServiceImpl<AttributeMapper, Attribute
     }
 
     @Override
-        public void deleteAttributeListByIds(List<Long> ids) {
-        // 开始清理缓存
-        List<AttributeDO> attributeDOList = attributeMapper.selectByIds(ids);
-        for (AttributeDO attributeDO : attributeDOList) {
-            redisCacheUtil.deleteObject(ATTRIBUTE + attributeDO.getSysAttrKey());
-        }
-        // 删除
-        attributeMapper.physicalDeleteByIds(ids);
+    public void deleteAttributeListByIds(List<Long> ids) {
+        if (!ids.isEmpty()) {
+            // 开始清理缓存
+            List<AttributeDO> attributeDOList = attributeMapper.selectByIds(ids);
+            for (AttributeDO attributeDO : attributeDOList) {
+                redisCacheUtil.deleteObject(ATTRIBUTE + attributeDO.getSysAttrKey());
+            }
+            // 删除
+            attributeMapper.physicalDeleteByIds(ids);
         }
+    }
 
 
     @Override