Explorar el Código

流程删除支持历史

hubin hace 1 año
padre
commit
c1432a1bed

+ 13 - 2
src/main/java/com/aizuda/boot/modules/flw/service/impl/FlwProcessServiceImpl.java

@@ -267,16 +267,27 @@ public class FlwProcessServiceImpl extends ServiceImpl<FlwProcessMapper, FlwProc
     public boolean removeProcessInfo(Long id) {
         // 检查流程定义操作权限
         this.checkOperateApproval(id);
+        FlwProcess flwProcess = this.checkById(id);
+        if (Objects.equals(1, flwProcess.getProcessVersion())) {
+            this.cascadeRemoveById(flwProcess.getId());
+        } else {
+            // 存在历史全部删除
+            baseMapper.selectListByProcessKey(null,
+                    flwProcess.getProcessKey()).forEach(t -> this.cascadeRemoveById(t.getId()));
+        }
+        return true;
+    }
+
+    private void cascadeRemoveById(Long id) {
         // 删除相关流程定义信息
         flwProcessActorService.removeByProcessId(id);
         flwProcessPermissionService.removeByProcessId(id);
         flwProcessConfigureService.removeByProcessId(id);
         // 级联删除相关信息
         flowLongEngine.processService().cascadeRemove(id);
-        return true;
     }
 
-    protected void checkOperateApproval(Long processId) {
+    private void checkOperateApproval(Long processId) {
         UserSession userSession = UserSession.getLoginInfo();
         if (null == userSession || !UserSession.isAdmin(userSession.getId())) {
             FlwProcessPermission fpp = getFlwProcessPermissionByProcessId(userSession, processId);