|
@@ -98,7 +98,7 @@ public class TaskServiceImpl extends BaseServiceImpl<TaskMapper, Task> implement
|
|
//完成/审批当前分支流程
|
|
//完成/审批当前分支流程
|
|
this.newFlowClient.completeApprovalTask(taskId, parallelProcessInstanceId, comment).getData();
|
|
this.newFlowClient.completeApprovalTask(taskId, parallelProcessInstanceId, comment).getData();
|
|
//修改分支状态,改为已完成
|
|
//修改分支状态,改为已完成
|
|
- this.taskParallelService.update(Wrappers.<TaskParallel>lambdaUpdate().set(TaskParallel::getStatus, 2).eq(TaskParallel::getParallelProcessInstanceId, parallelProcessInstanceId));
|
|
|
|
|
|
+ this.taskParallelService.update(Wrappers.<TaskParallel>lambdaUpdate().set(TaskParallel::getStatus, 2).set(TaskParallel::getUpdateTime, new Date()).eq(TaskParallel::getParallelProcessInstanceId, parallelProcessInstanceId));
|
|
|
|
|
|
//最后判断当前分支流程的主流程的其它分支是否都已经完成,如果都已完成则更改主流程状态并执行完成任务
|
|
//最后判断当前分支流程的主流程的其它分支是否都已经完成,如果都已完成则更改主流程状态并执行完成任务
|
|
|
|
|
|
@@ -111,9 +111,9 @@ public class TaskServiceImpl extends BaseServiceImpl<TaskMapper, Task> implement
|
|
String masterTaskId = this.newFlowClient.queryTaskIdByProcessInstanceId(task.getProcessInstanceId());
|
|
String masterTaskId = this.newFlowClient.queryTaskIdByProcessInstanceId(task.getProcessInstanceId());
|
|
if(StringUtils.isNotEmpty(masterTaskId)){
|
|
if(StringUtils.isNotEmpty(masterTaskId)){
|
|
//完成流程
|
|
//完成流程
|
|
- this.newFlowClient.completeApprovalTask(taskId, task.getProcessInstanceId(), "完成任务");
|
|
|
|
|
|
+ this.newFlowClient.completeApprovalTask(taskId, task.getProcessInstanceId(), "审批完成");
|
|
//修改主流程状态为已完成
|
|
//修改主流程状态为已完成
|
|
- this.update(Wrappers.<Task>lambdaUpdate().set(Task::getStatus, 2).eq(Task::getId, task.getId()));
|
|
|
|
|
|
+ this.update(Wrappers.<Task>lambdaUpdate().set(Task::getStatus, 2).set(Task::getUpdateTime, new Date()).eq(Task::getId, task.getId()));
|
|
}
|
|
}
|
|
}
|
|
}
|
|
} else {
|
|
} else {
|
|
@@ -124,9 +124,47 @@ public class TaskServiceImpl extends BaseServiceImpl<TaskMapper, Task> implement
|
|
//完成/审批当前分支流程
|
|
//完成/审批当前分支流程
|
|
this.newFlowClient.completeApprovalTask(taskId, parallelProcessInstanceId, comment).getData();
|
|
this.newFlowClient.completeApprovalTask(taskId, parallelProcessInstanceId, comment).getData();
|
|
//将分支状态更改为已废除
|
|
//将分支状态更改为已废除
|
|
- this.taskParallelService.update(Wrappers.<TaskParallel>lambdaUpdate().set(TaskParallel::getStatus, 3).eq(TaskParallel::getParallelProcessInstanceId, parallelProcessInstanceId));
|
|
|
|
|
|
+ this.taskParallelService.update(Wrappers.<TaskParallel>lambdaUpdate().set(TaskParallel::getStatus, 3).set(TaskParallel::getUpdateTime, new Date()).eq(TaskParallel::getParallelProcessInstanceId, parallelProcessInstanceId));
|
|
//获取除当前分支外的所有分支
|
|
//获取除当前分支外的所有分支
|
|
- List<String> otherLink = this.taskParallelService.queryOtherLinkList(parallelProcessInstanceId);
|
|
|
|
|
|
+ List<TaskParallel> otherLink = this.taskParallelService.queryOtherLinkList(parallelProcessInstanceId);
|
|
|
|
+ //主流程实例ID
|
|
|
|
+ String masterProcessInstanceId;
|
|
|
|
+ if(otherLink != null && otherLink.size() > 0){
|
|
|
|
+ masterProcessInstanceId = otherLink.get(0).getProcessInstanceId();
|
|
|
|
+ for(TaskParallel parallel : otherLink){
|
|
|
|
+ if(parallel.getEVisaStatus() != null && parallel.getEVisaStatus() != -1){
|
|
|
|
+ //不为空说明已经执行电签,需要撤签
|
|
|
|
+ // todo =================== 撤签调用 ===================
|
|
|
|
+ // todo =================== 撤签调用 ===================
|
|
|
|
+ }
|
|
|
|
+ //修改所有状态为已废除
|
|
|
|
+ this.taskParallelService.update(Wrappers.<TaskParallel>lambdaUpdate().set(TaskParallel::getStatus, 3).set(TaskParallel::getUpdateTime, new Date()).eq(TaskParallel::getId, parallel.getId()));
|
|
|
|
+
|
|
|
|
+ if(new Integer("1").equals(parallel.getStatus())){
|
|
|
|
+ //存在未审批的情况,自动执行其分支流程
|
|
|
|
+ //获取流程ID
|
|
|
|
+ String parallelTaskId = this.newFlowClient.queryTaskIdByProcessInstanceId(parallel.getParallelProcessInstanceId());
|
|
|
|
+ if(StringUtils.isNotEmpty(parallelTaskId)){
|
|
|
|
+ //执行流程
|
|
|
|
+ this.newFlowClient.completeApprovalTask(parallelTaskId, parallel.getParallelProcessInstanceId(), "废除");
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ } else {
|
|
|
|
+ //获取主流程数据
|
|
|
|
+ Task task = this.getOne(Wrappers.<Task>lambdaQuery().eq(Task::getIsDeleted, 0).eq(Task::getProcessInstanceId, currentLink.getProcessInstanceId()));
|
|
|
|
+ //找到实例ID
|
|
|
|
+ masterProcessInstanceId = task.getProcessInstanceId();
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ //处理完分支流程后,将主流程结束并设置状态为废除
|
|
|
|
+ //获取主流程的taskId
|
|
|
|
+ String masterTaskId = this.newFlowClient.queryTaskIdByProcessInstanceId(masterProcessInstanceId);
|
|
|
|
+ if(StringUtils.isNotEmpty(masterTaskId)){
|
|
|
|
+ //执行流程
|
|
|
|
+ this.newFlowClient.completeApprovalTask(masterTaskId, masterProcessInstanceId, "废除任务");
|
|
|
|
+ }
|
|
|
|
+ this.update(Wrappers.<Task>lambdaUpdate().set(Task::getStatus, 3).set(Task::getUpdateTime, new Date()).eq(Task::getProcessInstanceId, masterProcessInstanceId));
|
|
}
|
|
}
|
|
|
|
|
|
return true;
|
|
return true;
|