Эх сурвалжийг харах

逻辑删除是否调用jflow结束流程

shiqian 4 жил өмнө
parent
commit
2ddcc33240

+ 9 - 0
boman-api/boman-api-jflow/src/main/java/com/boman/jflow/api/RemoteJflowProcessService.java

@@ -19,4 +19,13 @@ public interface RemoteJflowProcessService {
 
     @PostMapping("/jflow/p/c/process/launch")
     AjaxResult launch(@RequestBody ProcessDto processDto);
+
+    /**
+     * 功能描述: 强制关闭流程
+     *
+     * @param processDto businessCodes=1,2 hardShut=true
+     * @return com.boman.domain.dto.AjaxResult
+     */
+    @PostMapping("/jflow/p/c/process/batch/shut")
+    AjaxResult shut(@RequestBody ProcessDto processDto);
 }

+ 13 - 0
boman-api/boman-domain/src/main/java/com.boman.domain/dto/FormDataDto.java

@@ -93,6 +93,11 @@ public class FormDataDto implements Serializable {
      */
     private String submitSource;
 
+    /**
+     * 逻辑删除时,是否调用jflow接口
+     */
+    private Boolean stopProcess;
+
 
     public int getLimit() {
         try {
@@ -112,6 +117,14 @@ public class FormDataDto implements Serializable {
         }
     }
 
+    public Boolean getStopProcess() {
+        return stopProcess;
+    }
+
+    public void setStopProcess(Boolean stopProcess) {
+        this.stopProcess = stopProcess;
+    }
+
     public static long getSerialVersionUID() {
         return serialVersionUID;
     }

+ 13 - 4
boman-web-core/src/main/java/com/boman/web/core/controller/JFlowProcessController.java

@@ -7,10 +7,7 @@ import io.swagger.annotations.ApiOperation;
 import lombok.extern.slf4j.Slf4j;
 import org.apache.commons.collections4.CollectionUtils;
 import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.web.bind.annotation.RequestBody;
-import org.springframework.web.bind.annotation.RequestMapping;
-import org.springframework.web.bind.annotation.RequestMethod;
-import org.springframework.web.bind.annotation.RestController;
+import org.springframework.web.bind.annotation.*;
 
 /**
  *  流程中心控制器
@@ -37,4 +34,16 @@ public class JFlowProcessController {
     public AjaxResult launch(@RequestBody ProcessDto processDto) {
         return jFlowProcessService.launch(processDto);
     }
+
+    /**
+     * 功能描述: 强制关闭流程
+     *
+     * @param processDto businessCodes=1,2 hardShut=true
+     * @return com.boman.domain.dto.AjaxResult
+     */
+    @ApiOperation(value = "发起工作流流程")
+    @PostMapping("/batch/shut")
+    public AjaxResult shut(@RequestBody ProcessDto processDto) {
+        return jFlowProcessService.shut(processDto);
+    }
 }

+ 22 - 9
boman-web-core/src/main/java/com/boman/web/core/service/TableServiceCmdService.java

@@ -17,10 +17,12 @@ import com.boman.domain.GenTable;
 import com.boman.domain.GenTableColumn;
 import com.boman.domain.SysDictData;
 import com.boman.domain.constant.*;
+import com.boman.domain.dto.ProcessDto;
 import com.boman.domain.dto.RoleMenuDto;
 import com.boman.domain.exception.NoSuchFunctionException;
 import com.boman.gen.api.RemoteGenTableColumnService;
 import com.boman.gen.api.RemoteGenTableService;
+import com.boman.jflow.api.RemoteJflowProcessService;
 import com.boman.jflow.api.RemoteJflowTaskService;
 import com.boman.system.api.RemoteMenuService;
 import com.boman.domain.SysMenu;
@@ -92,7 +94,7 @@ public class TableServiceCmdService {
     @Resource
     private RemoteMenuService remoteMenuService;
     @Resource
-    private RemoteJflowTaskService remoteJflowTaskService;
+    private RemoteJflowProcessService remoteJflowProcessService;
 
     private static final Logger LOGGER = LoggerFactory.getLogger(TableServiceCmdService.class);
 
@@ -210,15 +212,26 @@ public class TableServiceCmdService {
         RowResult rowResult;
         for (Long id : idArr) {
             // 校验权限
-            if (BooleanUtils.isTrue(checkAuthObjectDelete(genTable, id, pkName))) {
-                rowResult = deleteService.objectLogicDelete(new Long[]{id}, dto.getTable(), pkName, jsonObject);
-                if (rowResult.isOk()) {
-                    LOGGER.info("逻辑删除成功, tableName: {}, id: {}, 操作人: {}", tableContext.getTableName(), id, getLoginUser().getUsername());
-                    continue;
-                }
-                LOGGER.info("逻辑删除失败, tableName: {}, id: {}, 操作人: {}", tableContext.getTableName(), id, getLoginUser().getUsername());
-            } else {
+            if (BooleanUtils.isFalse(checkAuthObjectDelete(genTable, id, pkName))) {
                 rowResult = RowResult.create(RowResult.FAIL, "无操作权限");
+                result.add(rowResult);
+                continue;
+            }
+
+            rowResult = deleteService.objectLogicDelete(new Long[]{id}, dto.getTable(), pkName, jsonObject);
+            if (!rowResult.isOk()) {
+                LOGGER.info("逻辑删除失败, tableName: {}, id: {}, 操作人: {}", tableContext.getTableName(), id, getLoginUser().getUsername());
+                result.add(rowResult);
+                continue;
+            }
+
+            LOGGER.info("逻辑删除成功, tableName: {}, id: {}, 操作人: {}", tableContext.getTableName(), id, getLoginUser().getUsername());
+            Boolean stopProcess = dto.getStopProcess();
+            if (BooleanUtils.isTrue(stopProcess)) {
+                ProcessDto processDto = new ProcessDto();
+                processDto.setBusinessCode(id);
+                processDto.setHardShut(Boolean.TRUE);
+                remoteJflowProcessService.shut(processDto);
             }
 
             result.add(rowResult);

+ 9 - 0
boman-web-core/src/main/java/com/boman/web/core/service/jflow/JFlowProcessService.java

@@ -4,5 +4,14 @@ import com.boman.domain.dto.AjaxResult;
 import com.boman.domain.dto.ProcessDto;
 
 public interface JFlowProcessService {
+
     AjaxResult launch(ProcessDto processDto);
+
+    /**
+     * 功能描述: 强制关闭流程
+     *
+     * @param processDto businessCodes=1,2 hardShut=true
+     * @return com.boman.domain.dto.AjaxResult
+     */
+    AjaxResult shut(ProcessDto processDto);
 }

+ 12 - 0
boman-web-core/src/main/java/com/boman/web/core/service/jflow/impl/JFlowProcessServiceImpl.java

@@ -18,4 +18,16 @@ public class JFlowProcessServiceImpl implements JFlowProcessService {
     public AjaxResult launch(ProcessDto processDto) {
         return remoteJflowProcessService.launch(processDto);
     }
+
+
+    /**
+     * 功能描述: 强制关闭流程
+     *
+     * @param processDto businessCodes=1,2 hardShut=true
+     * @return com.boman.domain.dto.AjaxResult
+     */
+    @Override
+    public AjaxResult shut(ProcessDto processDto) {
+        return remoteJflowProcessService.shut(processDto);
+    }
 }