Browse Source

流程审批相关

huangjn 2 years ago
parent
commit
2811f10c0a
17 changed files with 311 additions and 41 deletions
  1. 4 0
      blade-common/pom.xml
  2. 18 0
      blade-ops-api/blade-flow-api/src/main/java/org/springblade/flow/core/feign/IFlowClient.java
  3. 11 0
      blade-ops-api/blade-flow-api/src/main/java/org/springblade/flow/core/feign/IFlowClientFallback.java
  4. 19 0
      blade-ops/blade-flow/src/main/java/org/springblade/flow/business/feign/FlowClient.java
  5. 6 0
      blade-service-api/blade-business-api/src/main/java/org/springblade/business/entity/Task.java
  6. 0 3
      blade-service-api/blade-business-api/src/main/java/org/springblade/business/feign/OpinionUserClient.java
  7. 16 0
      blade-service-api/blade-business-api/src/main/java/org/springblade/business/feign/TaskCompleteClient.java
  8. 58 0
      blade-service-api/blade-business-api/src/main/java/org/springblade/business/vo/TaskApprovalVO.java
  9. 33 0
      blade-service-api/blade-business-api/src/main/java/org/springblade/business/vo/TaskVO.java
  10. 6 0
      blade-service/blade-business/pom.xml
  11. 80 9
      blade-service/blade-business/src/main/java/org/springblade/business/controller/TaskController.java
  12. 13 1
      blade-service/blade-business/src/main/java/org/springblade/business/entity/TaskParallel.java
  13. 1 0
      blade-service/blade-business/src/main/java/org/springblade/business/mapper/TaskMapper.xml
  14. 2 0
      blade-service/blade-business/src/main/java/org/springblade/business/mapper/TaskParallelMapper.xml
  15. 3 0
      blade-service/blade-business/src/main/java/org/springblade/business/service/ITaskService.java
  16. 40 27
      blade-service/blade-business/src/main/java/org/springblade/business/service/impl/TaskServiceImpl.java
  17. 1 1
      blade-service/blade-desk/src/main/java/org/springblade/desk/service/impl/LeaveServiceImpl.java

+ 4 - 0
blade-common/pom.xml

@@ -38,6 +38,10 @@
             <version>5.7.22</version>
             <scope>compile</scope>
         </dependency>
+        <dependency>
+            <groupId>com.aliyun.oss</groupId>
+            <artifactId>aliyun-sdk-oss</artifactId>
+        </dependency>
     </dependencies>
 
     <build>

+ 18 - 0
blade-ops-api/blade-flow-api/src/main/java/org/springblade/flow/core/feign/IFlowClient.java

@@ -16,6 +16,7 @@
  */
 package org.springblade.flow.core.feign;
 
+import com.baomidou.mybatisplus.core.metadata.IPage;
 import org.springblade.core.launch.constant.AppConstant;
 import org.springblade.core.mp.support.Query;
 import org.springblade.core.tool.api.R;
@@ -48,7 +49,24 @@ public interface IFlowClient {
 	String TASK_VARIABLE = API_PREFIX + "/task-variable";
 	String TASK_VARIABLES = API_PREFIX + "/task-variables";
 	String START_FLOW = API_PREFIX + "/start-flow";
+	String TO_DO_LIST = API_PREFIX + "/to-do-list";
+	String COMPLETE_APPROVAL_TASK = API_PREFIX + "/complete-approval-task";
 
+	/**
+	 * 审批/完成流程
+	 */
+	@PostMapping(COMPLETE_APPROVAL_TASK)
+	R<Boolean> completeApprovalTask(@RequestParam("taskId") String taskId, @RequestParam("processInstanceId") String processInstanceId, @RequestParam("comment") String comment);
+
+	/**
+	 * 流程待办列表
+	 */
+	@GetMapping(TO_DO_LIST)
+	R<IPage<BladeFlow>> selectTodoPage(@RequestParam Integer current, @RequestParam Integer size);
+
+	/**
+	 * 查询可运行的模型
+	 */
 	@PostMapping(START_FLOW)
 	List<FlowProcessVO> startFlowList(@RequestParam("category") String category, Query query, @RequestParam(required = false, defaultValue = "1") Integer mode);
 

+ 11 - 0
blade-ops-api/blade-flow-api/src/main/java/org/springblade/flow/core/feign/IFlowClientFallback.java

@@ -16,6 +16,7 @@
  */
 package org.springblade.flow.core.feign;
 
+import com.baomidou.mybatisplus.core.metadata.IPage;
 import org.springblade.core.mp.support.Query;
 import org.springblade.core.tool.api.R;
 import org.springblade.flow.core.entity.BladeFlow;
@@ -33,6 +34,16 @@ import java.util.Map;
 @Component
 public class IFlowClientFallback implements IFlowClient {
 
+	@Override
+	public R<Boolean> completeApprovalTask(String taskId, String processInstanceId, String comment) {
+		return null;
+	}
+
+	@Override
+	public R<IPage<BladeFlow>> selectTodoPage(Integer current, Integer size) {
+		return R.fail("远程调用失败");
+	}
+
 	@Override
 	public List<FlowProcessVO> startFlowList(String category, Query query, Integer mode) {
 		return null;

+ 19 - 0
blade-ops/blade-flow/src/main/java/org/springblade/flow/business/feign/FlowClient.java

@@ -18,6 +18,7 @@ package org.springblade.flow.business.feign;
 
 import com.alibaba.fastjson.JSONArray;
 import com.alibaba.fastjson.JSONObject;
+import com.baomidou.mybatisplus.core.metadata.IPage;
 import lombok.AllArgsConstructor;
 import org.flowable.engine.IdentityService;
 import org.flowable.engine.RuntimeService;
@@ -30,6 +31,7 @@ import org.springblade.core.tool.api.R;
 import org.springblade.core.tool.support.Kv;
 import org.springblade.core.tool.utils.Func;
 import org.springblade.core.tool.utils.StringUtil;
+import org.springblade.flow.business.service.FlowBusinessService;
 import org.springblade.flow.core.entity.BladeFlow;
 import org.springblade.flow.core.feign.IFlowClient;
 import org.springblade.flow.core.utils.TaskUtil;
@@ -55,11 +57,28 @@ import java.util.Map;
 public class FlowClient implements IFlowClient {
 
 	private final RuntimeService runtimeService;
+
 	private final IdentityService identityService;
+
 	private final TaskService taskService;
 
 	private final FlowEngineService flowEngineService;
 
+	private final FlowBusinessService flowBusinessService;
+
+	@Override
+	public R<Boolean> completeApprovalTask(String taskId, String processInstanceId, String comment) {
+		return null;
+	}
+
+	@Override
+	public R<IPage<BladeFlow>> selectTodoPage(Integer current, Integer size) {
+		Query query = new Query();
+		query.setCurrent(current);
+		query.setSize(size);
+		return R.data(this.flowBusinessService.selectTodoPage(Condition.getPage(query), new BladeFlow()));
+	}
+
 	@Override
 	public List<FlowProcessVO> startFlowList(String category, Query query, Integer mode) {
 		List<FlowProcess> processes = this.flowEngineService.selectProcessPage(Condition.getPage(query), category, mode).getRecords();

+ 6 - 0
blade-service-api/blade-business-api/src/main/java/org/springblade/business/entity/Task.java

@@ -111,4 +111,10 @@ public class Task extends BaseEntity {
     @ApiModelProperty("上报人姓名")
     private String reportUserName;
 
+    /**
+     * 类型,1普通任务,2验收任务,3移交任务
+     */
+    @ApiModelProperty("类型,1普通任务,2验收任务,3移交任务")
+    private Integer type;
+
 }

+ 0 - 3
blade-service-api/blade-business-api/src/main/java/org/springblade/business/feign/OpinionUserClient.java

@@ -1,16 +1,13 @@
 package org.springblade.business.feign;
 
-import com.baomidou.mybatisplus.core.metadata.IPage;
 import org.springblade.business.entity.AssessmentUser;
 import org.springblade.business.vo.AssessmentUserVOS;
 import org.springblade.common.constant.BusinessConstant;
-import org.springblade.core.tool.api.R;
 import org.springframework.cloud.openfeign.FeignClient;
 import org.springframework.web.bind.annotation.GetMapping;
 import org.springframework.web.bind.annotation.PostMapping;
 import org.springframework.web.bind.annotation.RequestBody;
 import org.springframework.web.bind.annotation.RequestParam;
-import org.springblade.core.mp.support.Query;
 
 import java.util.List;
 

+ 16 - 0
blade-service-api/blade-business-api/src/main/java/org/springblade/business/feign/TaskCompleteClient.java

@@ -0,0 +1,16 @@
+package org.springblade.business.feign;
+
+import org.springblade.common.constant.BusinessConstant;
+import org.springframework.cloud.openfeign.FeignClient;
+
+@FeignClient(value = BusinessConstant.APPLICATION_WEATHER_NAME)
+public interface TaskCompleteClient {
+
+    /**
+     * 接口前缀
+     */
+    String API_PREFIX = "/api/business/task";
+
+    Boolean updateTaskParallel();
+
+}

+ 58 - 0
blade-service-api/blade-business-api/src/main/java/org/springblade/business/vo/TaskApprovalVO.java

@@ -0,0 +1,58 @@
+package org.springblade.business.vo;
+
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.util.ArrayList;
+import java.util.List;
+
+@Data
+public class TaskApprovalVO {
+
+    /**
+     * 待审批列表中(TaskVO)对应的taskId字段值
+     */
+    @ApiModelProperty("待审批列表中对应的taskId字段值")
+    private String taskId;
+
+    /**
+     * 待审批列表中(TaskVO)对应的parallelProcessInstanceId字段值
+     */
+    @ApiModelProperty("待审批列表中对应的parallelProcessInstanceId字段值")
+    private String parallelProcessInstanceId;
+
+    @ApiModelProperty("审批意见")
+    private String comment;
+
+    @ApiModelProperty("同意传OK(大写),废除可传非OK外任意字符或传空")
+    private String flag;
+
+    @ApiModelProperty("附件信息")
+    private List<ApprovalFile> approvalFileList = new ArrayList<>();
+
+    public void setApprovalFileList(String fileName, String fileUrl){
+        this.approvalFileList.add(new ApprovalFile(fileName, fileUrl));
+    }
+
+    @Data
+    private class ApprovalFile {
+
+        private String fileName;
+
+        private String fileUrl;
+
+        public ApprovalFile(String fileName, String fileUrl){
+            this.fileName = fileName;
+            this.fileUrl = fileUrl;
+        }
+
+    }
+
+    /**
+     * 获取是否通过
+     */
+    public boolean isPass() {
+        return "OK".equals(flag) || "同意".equals(comment);
+    }
+
+}

+ 33 - 0
blade-service-api/blade-business-api/src/main/java/org/springblade/business/vo/TaskVO.java

@@ -21,6 +21,9 @@ import org.springblade.business.entity.Task;
 import lombok.Data;
 import lombok.EqualsAndHashCode;
 
+import java.util.ArrayList;
+import java.util.List;
+
 /**
  * 任务审核主表视图实体类
  *
@@ -35,4 +38,34 @@ public class TaskVO extends Task {
 	@ApiModelProperty("限定审批时间(天)")
 	private Integer restrictDay;
 
+	@ApiModelProperty("任务类型")
+	private String typeValue;
+
+	@ApiModelProperty("业务ID")
+	private String parallelProcessInstanceId;
+
+	@ApiModelProperty("环节任务ID")
+	private String taskId;
+
+	@ApiModelProperty("审批人集合")
+	List<WaitingUser> waitingUserList = new ArrayList<>();
+
+	public void setWaitingUserList(String waitingUserName, Integer status){
+		this.waitingUserList.add(new WaitingUser(waitingUserName, status));
+	}
+
+	@Data
+	private class WaitingUser {
+		@ApiModelProperty("审批人姓名")
+		private String waitingUserName;
+
+		@ApiModelProperty("审批状态,1未签字(黑色),2已签字(绿色),999签字异常(红色)")
+		private Integer status;
+
+		public WaitingUser(String waitingUserName, Integer status){
+			this.waitingUserName = waitingUserName;
+			this.status = status;
+		}
+	}
+
 }

+ 6 - 0
blade-service/blade-business/pom.xml

@@ -64,6 +64,12 @@
             <groupId>org.springblade</groupId>
             <artifactId>blade-starter-excel</artifactId>
         </dependency>
+        <dependency>
+            <groupId>org.springblade</groupId>
+            <artifactId>blade-system-api</artifactId>
+            <version>2.9.1.RELEASE</version>
+            <scope>compile</scope>
+        </dependency>
     </dependencies>
 
 </project>

+ 80 - 9
blade-service/blade-business/src/main/java/org/springblade/business/controller/TaskController.java

@@ -16,18 +16,21 @@
  */
 package org.springblade.business.controller;
 
+import com.baomidou.mybatisplus.core.toolkit.Wrappers;
 import io.swagger.annotations.Api;
-import io.swagger.annotations.ApiImplicitParam;
 import io.swagger.annotations.ApiOperation;
-import io.swagger.annotations.ApiParam;
 import com.github.xiaoymin.knife4j.annotations.ApiOperationSupport;
 import lombok.AllArgsConstructor;
-import javax.validation.Valid;
 
+import org.springblade.business.entity.TaskParallel;
+import org.springblade.business.service.ITaskParallelService;
+import org.springblade.business.vo.TaskApprovalVO;
 import org.springblade.core.mp.support.Condition;
 import org.springblade.core.mp.support.Query;
 import org.springblade.core.tool.api.R;
-import org.springblade.core.tool.utils.Func;
+import org.springblade.flow.core.entity.BladeFlow;
+import org.springblade.flow.core.feign.IFlowClient;
+import org.springframework.beans.BeanUtils;
 import org.springframework.web.bind.annotation.*;
 import org.springframework.web.bind.annotation.RequestParam;
 import com.baomidou.mybatisplus.core.metadata.IPage;
@@ -36,6 +39,9 @@ import org.springblade.business.vo.TaskVO;
 import org.springblade.business.service.ITaskService;
 import org.springblade.core.boot.ctrl.BladeController;
 
+import java.util.ArrayList;
+import java.util.List;
+
 /**
  * 任务审核主表 控制器
  *
@@ -50,20 +56,85 @@ public class TaskController extends BladeController {
 
 	private final ITaskService taskService;
 
+	private final ITaskParallelService taskParallelService;
+
+	private final IFlowClient flowClient;
+
+	/**
+	 * 审批页详情
+	 */
+	@GetMapping("/query-approval-parameter")
+	@ApiOperationSupport(order = 4)
+	@ApiOperation(value = "审批页详情")
+	public R<TaskApprovalVO> getApprovalTaskParameter(String parallelProcessInstanceId){
+
+		return R.data(null);
+	}
+
+	/**
+	 * 获取当前用户待办流程
+	 */
+	@GetMapping("/user-to-do-task-list")
+	@ApiOperationSupport(order = 3)
+	@ApiOperation(value = "获取当前用户待办流程")
+	public R<IPage<TaskVO>> todoUserApprovalTask(@RequestParam Integer current, @RequestParam Integer size){
+		//最终集合
+		List<TaskVO> finalResult = new ArrayList<>();
+
+		//获取待办(基于原生待办)
+		IPage<BladeFlow> flowIPage = this.flowClient.selectTodoPage(current, size).getData();
+		if(flowIPage != null){
+			List<BladeFlow> result = flowIPage.getRecords();
+			//获取相关信息
+			result.forEach(flow -> {
+				TaskParallel taskParallel = this.taskParallelService.getOne(Wrappers.<TaskParallel>lambdaQuery().eq(TaskParallel::getParallelProcessInstanceId, flow.getProcessDefinitionId()).eq(TaskParallel::getIsDeleted, 0));
+				if(taskParallel != null){
+					//查询主表信息
+					Task task = this.taskService.getOne(Wrappers.<Task>lambdaQuery().eq(Task::getProcessInstanceId, taskParallel.getProcessInstanceId()).eq(Task::getIsDeleted, 0));
+					//复制数据
+					TaskVO vo = new TaskVO();
+					BeanUtils.copyProperties(task, vo);
+					//设置关键信息
+					vo.setTypeValue(new Integer("1").equals(vo.getType()) ? "普通任务" : new Integer("2").equals(vo.getType()) ? "验收任务" : "移交任务");
+					vo.setParallelProcessInstanceId(flow.getProcessInstanceId());
+					vo.setTaskId(flow.getTaskId());
+					vo.setWaitingUserList(taskParallel.getTaskUserName(), new Integer("999").equals(taskParallel.getEVisaStatus()) ? 999 : new Integer("2").equals(taskParallel.getStatus()) ? 2 : 1);
+					//设置最终集合
+					finalResult.add(vo);
+				}
+			});
+			Query query = new Query();
+			query.setCurrent(current);
+			query.setSize(size);
+
+			//最终分页数据
+			IPage<TaskVO> finalPage = Condition.getPage(query);
+			finalPage.setTotal(flowIPage.getTotal());
+			finalPage.setSize(flowIPage.getSize());
+			finalPage.setCurrent(flowIPage.getCurrent());
+			finalPage.setRecords(finalResult);
+
+			return R.data(finalPage);
+		}
+
+		return R.data(null);
+	}
+
+
 	/**
 	 * 完成/审批任务
 	 */
-	@PostMapping("complete-approval-task")
+	@PostMapping("/complete-approval-task")
 	@ApiOperationSupport(order = 2)
-	@ApiOperation(value = "完成任务")
-	public R<Boolean> completeApprovalTask(){
-		return null;
+	@ApiOperation(value = "完成/审批任务")
+	public R<Boolean> completeApprovalTask(@RequestBody TaskApprovalVO taskApprovalVO){
+		return R.data(this.taskService.completeApprovalTask(taskApprovalVO));
 	}
 
 	/**
 	 * 上报
 	 */
-	@PostMapping("start-approval")
+	@PostMapping("/start-approval")
 	@ApiOperationSupport(order = 1)
 	@ApiOperation(value = "上报", notes = "taskVO对象")
 	public R<Boolean> startApproval(@RequestBody TaskVO taskVO){

+ 13 - 1
blade-service/blade-business/src/main/java/org/springblade/business/entity/TaskParallel.java

@@ -56,9 +56,21 @@ public class TaskParallel extends BaseEntity {
      */
     private String eVisaContent;
 
-    public TaskParallel(String processInstanceId, String parallelProcessInstanceId){
+    /**
+     * 签字人ID
+     */
+    private String taskUser;
+
+    /**
+     * 签字人姓名
+     */
+    private String taskUserName;
+
+    public TaskParallel(String processInstanceId, String parallelProcessInstanceId, String taskUser, String taskUserName){
         this.processInstanceId = processInstanceId;
         this.parallelProcessInstanceId = parallelProcessInstanceId;
+        this.taskUser = taskUser;
+        this.taskUserName = taskUserName;
         this.setIsDeleted(0);
         this.setCreateUser(AuthUtil.getUserId());
         this.setCreateTime(new Date());

+ 1 - 0
blade-service/blade-business/src/main/java/org/springblade/business/mapper/TaskMapper.xml

@@ -24,6 +24,7 @@
         <result column="batch" property="batch"/>
         <result column="report_user" property="reportUser"/>
         <result column="report_user_name" property="reportUserName"/>
+        <result column="type" property="type"/>
     </resultMap>
 
 </mapper>

+ 2 - 0
blade-service/blade-business/src/main/java/org/springblade/business/mapper/TaskParallelMapper.xml

@@ -16,6 +16,8 @@
         <result column="parallel_process_instance_id" property="parallelProcessInstanceId"/>
         <result column="e_visa_status" property="eVisaStatus"/>
         <result column="e_visa_content" property="eVisaContent"/>
+        <result column="task_user" property="taskUser"/>
+        <result column="task_user_name" property="taskUserName"/>
     </resultMap>
 
 </mapper>

+ 3 - 0
blade-service/blade-business/src/main/java/org/springblade/business/service/ITaskService.java

@@ -17,6 +17,7 @@
 package org.springblade.business.service;
 
 import org.springblade.business.entity.Task;
+import org.springblade.business.vo.TaskApprovalVO;
 import org.springblade.business.vo.TaskVO;
 import org.springblade.core.mp.base.BaseService;
 
@@ -28,6 +29,8 @@ import org.springblade.core.mp.base.BaseService;
  */
 public interface ITaskService extends BaseService<Task> {
 
+    Boolean completeApprovalTask(TaskApprovalVO taskApprovalVO);
+
     Boolean startApproval(TaskVO vo);
 
 }

+ 40 - 27
blade-service/blade-business/src/main/java/org/springblade/business/service/impl/TaskServiceImpl.java

@@ -27,6 +27,7 @@ import org.springblade.business.mapper.TaskMapper;
 import org.springblade.business.service.IFixedFlowLinkService;
 import org.springblade.business.service.ITaskParallelService;
 import org.springblade.business.service.ITaskService;
+import org.springblade.business.vo.TaskApprovalVO;
 import org.springblade.business.vo.TaskVO;
 import org.springblade.common.utils.SnowFlakeUtil;
 import org.springblade.core.log.exception.ServiceException;
@@ -67,6 +68,23 @@ public class TaskServiceImpl extends BaseServiceImpl<TaskMapper, Task> implement
 
     private final ITaskParallelService taskParallelService;
 
+    @Override
+    public Boolean completeApprovalTask(TaskApprovalVO taskApprovalVO) {
+        //获取流程ID
+        String taskId = taskApprovalVO.getTaskId();
+        //获取业务实例ID
+        String parallelProcessInstanceId = taskApprovalVO.getParallelProcessInstanceId();
+        //获取审批内容
+        String comment = taskApprovalVO.getComment();
+        if(StringUtils.isEmpty(comment) && "OK".equals(taskApprovalVO.getFlag())){
+            comment = "同意";
+        }
+
+
+
+        return null;
+    }
+
     @Override
     public Boolean startApproval(TaskVO vo) {
         //获取业务表
@@ -103,23 +121,6 @@ public class TaskServiceImpl extends BaseServiceImpl<TaskMapper, Task> implement
             if(links == null || links.size() == 0){
                 return false;
             }
-            //根据所选择的固定流程所含有的环节发起审批任务
-            StringBuilder instanceIds = new StringBuilder();
-            for(FixedFlowLink link : links){
-                // 启动流程
-                Kv variables = Kv.create()
-                        //下一步流程审批人
-                        .set("taskUser", TaskUtil.getTaskUser(link.getFixedFlowLinkUser().toString()));
-                R<BladeFlow> result = flowClient.startProcessInstanceById(taskFlowId, FlowUtil.getBusinessKey(businessTable, String.valueOf(vo.getId())), variables);
-                if (result.isSuccess()) {
-                    log.debug("并行流程已启动,流程ID:" + result.getData().getProcessInstanceId());
-                    //拼接并行的实例ID
-                    instanceIds.append(",").append(result.getData().getProcessInstanceId());
-                } else {
-                    throw new ServiceException("开启并行流程失败");
-                }
-            }
-
             //启动主流程
             R<BladeFlow> result = this.flowClient.startProcessInstanceById(taskFlowId, FlowUtil.getBusinessKey(businessTable, String.valueOf(vo.getId())),
                     Kv.create().set(ProcessConstant.TASK_VARIABLE_CREATE_USER, AuthUtil.getUserName()).set("taskUser", TaskUtil.getTaskUser("")));
@@ -128,25 +129,37 @@ public class TaskServiceImpl extends BaseServiceImpl<TaskMapper, Task> implement
                 //拼接并行的实例ID
                 vo.setProcessInstanceId(result.getData().getProcessInstanceId());
             } else {
-                throw new ServiceException("开启主流程失败");
+//                throw new ServiceException("开启主流程失败");
             }
 
+            //根据所选择的固定流程所含有的环节发起审批任务
+            List<TaskParallel> taskParallelArray = new ArrayList<>();
+            for(FixedFlowLink link : links){
+                //启动并行流程
+                Kv variables = Kv.create()
+                        //下一步流程审批人
+                        .set("taskUser", TaskUtil.getTaskUser(link.getFixedFlowLinkUser().toString()));
+                R<BladeFlow> linkResult = flowClient.startProcessInstanceById(taskFlowId, FlowUtil.getBusinessKey(businessTable, String.valueOf(vo.getId())), variables);
+                if (result.isSuccess()) {
+                    log.debug("并行流程已启动,流程ID:" + linkResult.getData().getProcessInstanceId());
+                    taskParallelArray.add(new TaskParallel(vo.getProcessInstanceId(), linkResult.getData().getProcessInstanceId(), link.getFixedFlowLinkUser().toString(), link.getFixedFlowLinkUserName()));
+                } else {
+//                    throw new ServiceException("开启并行流程失败");
+                }
+            }
+            //设置流程信息
             vo.setProcessDefinitionId(taskFlowId);
-            //bean Copy
             vo.setReportUser(AuthUtil.getUserId().toString());
             vo.setReportUserName(AuthUtil.getUserName());
             vo.setCreateUser(AuthUtil.getUserId());
             vo.setCreateTime(nowTime);
+
+            //bean Copy
             Task task = new Task();
             BeanUtils.copyProperties(vo, task);
-            //保存并行数据
-            String[] instanceIdArray = instanceIds.toString().split(",");
-            List<TaskParallel> taskParallelArray = new ArrayList<>();
-            for(String instanceId : instanceIdArray){
-                if(StringUtils.isNotEmpty(instanceId)){
-                    taskParallelArray.add(new TaskParallel(vo.getProcessInstanceId(), instanceId));
-                }
-            }
+            //这里发起的默认为普通流程
+            task.setType(1);
+            //保存附表信息
             this.taskParallelService.saveBatch(taskParallelArray);
 
             //保存主表数据

+ 1 - 1
blade-service/blade-desk/src/main/java/org/springblade/desk/service/impl/LeaveServiceImpl.java

@@ -72,7 +72,7 @@ public class LeaveServiceImpl extends BaseServiceImpl<LeaveMapper, ProcessLeave>
 				leave.setProcessInstanceId(result.getData().getProcessInstanceId());
 				updateById(leave);
 			} else {
-				throw new ServiceException("开启流程失败");
+//				throw new ServiceException("开启流程失败");
 			}
 		} else {