Bladeren bron

巡检模块-审批流程-批量审批

chenshudong 2 maanden geleden
bovenliggende
commit
eb4fd6d428

+ 21 - 0
airport-admin/src/main/java/com/sundot/airport/web/controller/check/CheckCorrectionController.java

@@ -5,6 +5,7 @@ import java.util.List;
5 5
 import javax.servlet.http.HttpServletResponse;
6 6
 
7 7
 import cn.hutool.core.collection.CollUtil;
8
+import com.sundot.airport.common.core.domain.ApprovalWorkflowBatchDto;
8 9
 import com.sundot.airport.common.core.domain.DataPermissionResult;
9 10
 import com.sundot.airport.web.core.utils.DataPermissionUtils;
10 11
 import org.springframework.security.access.prepost.PreAuthorize;
@@ -172,4 +173,24 @@ public class CheckCorrectionController extends BaseController {
172 173
     public AjaxResult rejectTask(@RequestBody CheckCorrection checkCorrection) {
173 174
         return success(checkCorrectionService.rejectTask(checkCorrection));
174 175
     }
176
+
177
+    /**
178
+     * 批量审批任务(同意)
179
+     */
180
+    @PreAuthorize("@ss.hasPermi('check:checkCorrection:edit')")
181
+    @Log(title = "批量审批任务(同意)", businessType = BusinessType.UPDATE)
182
+    @PostMapping("/approveTaskBatch")
183
+    public AjaxResult approveTaskBatch(@RequestBody ApprovalWorkflowBatchDto approvalWorkflowBatchDto) {
184
+        return success(checkCorrectionService.approveTaskBatch(approvalWorkflowBatchDto));
185
+    }
186
+
187
+    /**
188
+     * 批量审批任务(驳回)
189
+     */
190
+    @PreAuthorize("@ss.hasPermi('check:checkCorrection:edit')")
191
+    @Log(title = "批量审批任务(驳回)", businessType = BusinessType.UPDATE)
192
+    @PostMapping("/rejectTaskBatch")
193
+    public AjaxResult rejectTaskBatch(@RequestBody ApprovalWorkflowBatchDto approvalWorkflowBatchDto) {
194
+        return success(checkCorrectionService.rejectTaskBatch(approvalWorkflowBatchDto));
195
+    }
175 196
 }

+ 17 - 0
airport-check/src/main/java/com/sundot/airport/check/service/ICheckCorrectionService.java

@@ -4,6 +4,7 @@ import java.util.List;
4 4
 
5 5
 import com.baomidou.mybatisplus.extension.service.IService;
6 6
 import com.sundot.airport.check.domain.CheckCorrection;
7
+import com.sundot.airport.common.core.domain.ApprovalWorkflowBatchDto;
7 8
 
8 9
 /**
9 10
  * 问题整改Service接口
@@ -75,4 +76,20 @@ public interface ICheckCorrectionService extends IService<CheckCorrection> {
75 76
      * @return 结果
76 77
      */
77 78
     public int rejectTask(CheckCorrection checkCorrection);
79
+
80
+    /**
81
+     * 批量审批任务(同意)
82
+     *
83
+     * @param approvalWorkflowBatchDto 批量审批参数
84
+     * @return 结果
85
+     */
86
+    public int approveTaskBatch(ApprovalWorkflowBatchDto approvalWorkflowBatchDto);
87
+
88
+    /**
89
+     * 批量审批任务(驳回)
90
+     *
91
+     * @param approvalWorkflowBatchDto 批量审批参数
92
+     * @return 结果
93
+     */
94
+    public int rejectTaskBatch(ApprovalWorkflowBatchDto approvalWorkflowBatchDto);
78 95
 }

+ 52 - 0
airport-check/src/main/java/com/sundot/airport/check/service/impl/CheckCorrectionServiceImpl.java

@@ -13,6 +13,7 @@ import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
13 13
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
14 14
 import com.sundot.airport.check.domain.CheckProjectItem;
15 15
 import com.sundot.airport.check.domain.CheckUser;
16
+import com.sundot.airport.common.core.domain.ApprovalWorkflowBatchDto;
16 17
 import com.sundot.airport.check.service.ICheckProjectItemService;
17 18
 import com.sundot.airport.check.service.ICheckUserService;
18 19
 import com.sundot.airport.common.constant.Constants;
@@ -29,6 +30,9 @@ import com.sundot.airport.common.utils.DateUtils;
29 30
 import com.sundot.airport.common.utils.SecurityUtils;
30 31
 import com.sundot.airport.common.utils.StringUtils;
31 32
 import com.sundot.airport.system.domain.approval.ApprovalInstance;
33
+import com.sundot.airport.system.domain.approval.ApprovalTask;
34
+import com.sundot.airport.system.mapper.approval.ApprovalInstanceMapper;
35
+import com.sundot.airport.system.mapper.approval.ApprovalTaskMapper;
32 36
 import com.sundot.airport.system.service.approval.IApprovalEngineService;
33 37
 import com.sundot.airport.system.service.approval.ICheckApprovalService;
34 38
 import lombok.SneakyThrows;
@@ -63,6 +67,10 @@ public class CheckCorrectionServiceImpl extends ServiceImpl<CheckCorrectionMappe
63 67
     private ICheckApprovalService checkApprovalService;
64 68
     @Autowired
65 69
     private IApprovalEngineService approvalEngineService;
70
+    @Autowired
71
+    private ApprovalTaskMapper taskMapper;
72
+    @Autowired
73
+    private ApprovalInstanceMapper instanceMapper;
66 74
 
67 75
     /**
68 76
      * 查询问题整改
@@ -407,4 +415,48 @@ public class CheckCorrectionServiceImpl extends ServiceImpl<CheckCorrectionMappe
407 415
             throw new ServiceException("被检查级别数据异常");
408 416
         }
409 417
     }
418
+
419
+    /**
420
+     * 批量审批任务(同意)
421
+     *
422
+     * @param approvalWorkflowBatchDto 批量审批参数
423
+     * @return 结果
424
+     */
425
+    @SneakyThrows
426
+    @Transactional(rollbackFor = Exception.class)
427
+    @Override
428
+    public int approveTaskBatch(ApprovalWorkflowBatchDto approvalWorkflowBatchDto) {
429
+        approvalWorkflowBatchDto.getTaskIdList().forEach(taskId -> {
430
+            ApprovalTask task = taskMapper.selectApprovalTaskById(taskId);
431
+            ApprovalInstance instance = instanceMapper.selectApprovalInstanceById(task.getInstanceId());
432
+            CheckCorrection checkCorrection = selectCheckCorrectionById(instance.getBusinessId());
433
+            Map<String, Object> formData = BeanUtil.beanToMap(checkCorrection);
434
+            try {
435
+                checkApprovalService.approveTask(taskId, approvalWorkflowBatchDto.getComment(), formData, SecurityUtils.getLoginUser().getUserId(), SecurityUtils.getLoginUser().getUsername());
436
+            } catch (Exception e) {
437
+                throw new ServiceException("审批失败");
438
+            }
439
+        });
440
+        return 1;
441
+    }
442
+
443
+    /**
444
+     * 批量审批任务(驳回)
445
+     *
446
+     * @param approvalWorkflowBatchDto 批量审批参数
447
+     * @return 结果
448
+     */
449
+    @SneakyThrows
450
+    @Transactional(rollbackFor = Exception.class)
451
+    @Override
452
+    public int rejectTaskBatch(ApprovalWorkflowBatchDto approvalWorkflowBatchDto) {
453
+        approvalWorkflowBatchDto.getTaskIdList().forEach(taskId -> {
454
+            try {
455
+                checkApprovalService.rejectTask(taskId, approvalWorkflowBatchDto.getComment(), SecurityUtils.getLoginUser().getUserId(), SecurityUtils.getLoginUser().getUsername());
456
+            } catch (Exception e) {
457
+                throw new ServiceException("审批失败");
458
+            }
459
+        });
460
+        return 1;
461
+    }
410 462
 }

+ 26 - 0
airport-common/src/main/java/com/sundot/airport/common/core/domain/ApprovalWorkflowBatchDto.java

@@ -0,0 +1,26 @@
1
+package com.sundot.airport.common.core.domain;
2
+
3
+import lombok.Data;
4
+
5
+import java.util.List;
6
+
7
+/**
8
+ * 批量审批参数
9
+ *
10
+ * @author ruoyi
11
+ * @date 2025-09-07
12
+ */
13
+@Data
14
+public class ApprovalWorkflowBatchDto {
15
+
16
+    /**
17
+     * 任务ID列表
18
+     */
19
+    private List<Long> taskIdList;
20
+
21
+    /**
22
+     * 审批意见
23
+     */
24
+    private String comment;
25
+
26
+}