Ver código fonte

【功能评审】Bpm:清理流程

YunaiV 7 meses atrás
pai
commit
70538320c8

+ 1 - 1
yudao-module-bpm/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/controller/admin/definition/BpmModelController.java

@@ -164,7 +164,7 @@ public class BpmModelController {
     @DeleteMapping("/clean")
     @Operation(summary = "清理模型")
     @Parameter(name = "id", description = "编号", required = true, example = "1024")
-    @PreAuthorize("@ss.hasPermission('bpm:model:delete')")
+    @PreAuthorize("@ss.hasPermission('bpm:model:clean')")
     public CommonResult<Boolean> cleanModel(@RequestParam("id") String id) {
         modelService.cleanModel(getLoginUserId(), id);
         return success(true);

+ 1 - 1
yudao-module-bpm/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/service/definition/BpmModelService.java

@@ -89,7 +89,7 @@ public interface BpmModelService {
     void deleteModel(Long userId, String id);
 
     /**
-     * 清理模型
+     * 清理模型,包括流程实例
      *
      * @param userId  用户编号
      * @param id 编号

+ 4 - 1
yudao-module-bpm/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/service/definition/BpmModelServiceImpl.java

@@ -262,7 +262,8 @@ public class BpmModelServiceImpl implements BpmModelService {
         Model model = validateModelManager(id, userId);
 
         // 2. 清理所有流程数据
-        // TODO @芋艿:这里没有找到批量操作的方法,会不会有性能问题~
+        // TODO @芋艿:这里没有找到批量操作的方法,会不会有性能问题~;
+        // TODO @lesan:建议按照顺序?1)List<ProcessInstance> processInstances 循环处理;然后删除删除一个示实例,接着删除它的 history;
         // 2.1 先取消所有正在运行的流程
         List<ProcessInstance> processInstances = runtimeService.createProcessInstanceQuery()
                 .processDefinitionKey(model.getKey()).list();
@@ -276,6 +277,8 @@ public class BpmModelServiceImpl implements BpmModelService {
         historicProcessInstances.forEach(historicProcessInstance -> {
             historyService.deleteHistoricProcessInstance(historicProcessInstance.getId());
         });
+        // TODO @lesan:流程任务,是不是也要清理哈?
+        // TODO @lesan:抄送是不是也要清理;
     }
 
     @Override