liuyc 1 жил өмнө
parent
commit
dee9d99ad8

+ 31 - 15
blade-service/blade-business/src/main/java/org/springblade/business/service/impl/TaskServiceImpl.java

@@ -597,7 +597,7 @@ public class TaskServiceImpl extends BaseServiceImpl<TaskMapper, Task> implement
                 }
 
                 Boolean aBoolean = RedisTemplate.hasKey("sign-" + taskApprovalVO.getFormDataId());
-                System.out.println(taskApprovalVO.getFormDataId()+"---"+aBoolean);
+                System.out.println(taskApprovalVO.getFormDataId() + "---" + aBoolean);
                 if (aBoolean) {
                     istrue = false;
                 }
@@ -606,7 +606,7 @@ public class TaskServiceImpl extends BaseServiceImpl<TaskMapper, Task> implement
                     if (wtask >= 200) {
                         break;
                     }
-                    taskBatchService.update(Wrappers.<TaskBatch>update().set("is_deleted",2).eq("id",taskBatchId));
+                    taskBatchService.update(Wrappers.<TaskBatch>update().set("is_deleted", 2).eq("id", taskBatchId));
                     RedisTemplate.opsForValue().set("sign-" + taskApprovalVO.getFormDataId(), "1", 66, TimeUnit.SECONDS);
                     CompletableFuture<Void> runAsync = CompletableFuture.runAsync(() -> {
                         try {
@@ -687,7 +687,7 @@ public class TaskServiceImpl extends BaseServiceImpl<TaskMapper, Task> implement
             } else if ("success".equals(eVisaStatus) || eVisaStatus.contains("success")) {
                 //审批通过会返回签章成功的文件,需要设置替换
                 //完成/审批当前分支流程
-            //    this.newFlowClient.completeApprovalTask(taskId, parallelProcessInstanceId, comment).getData();
+                //    this.newFlowClient.completeApprovalTask(taskId, parallelProcessInstanceId, comment).getData();
                 //修改分支状态,改为已完成
                 this.taskParallelService.update(Wrappers.<TaskParallel>lambdaUpdate()
                         .set(TaskParallel::getStatus, 2)
@@ -727,11 +727,19 @@ public class TaskServiceImpl extends BaseServiceImpl<TaskMapper, Task> implement
                     //修改对应的业务数据状态为已审批
                     this.updateBusinessDataByFormDataId(masterTask, 2, finalPdfUrl, taskApprovalVO.getUserId());
                     //  }
+
+                    //return前先删除合同段树redis缓存
+                    informationQueryService.delAsyncWbsTree(masterTask.getContractId());
+
                     //返回电签成功的pdf路径,给试验用
                     return finalPdfUrl;
                 } else {
                     //只更新PDF路径
                     this.updateBusinessDataByFormDataId(masterTask, 1, eVisaStatus.contains("@@@@") ? eVisaStatus.split("@@@@")[1] : null, taskApprovalVO.getUserId());
+
+                    //return前先删除合同段树redis缓存
+                    informationQueryService.delAsyncWbsTree(masterTask.getContractId());
+
                     return eVisaStatus.contains("@@@@") ? eVisaStatus.split("@@@@")[1] : null;
                 }
             } else if ("eVisaError".equals(eVisaStatus) || eVisaStatus.contains("eVisaError")) {
@@ -759,12 +767,16 @@ public class TaskServiceImpl extends BaseServiceImpl<TaskMapper, Task> implement
                 );
                 this.taskBatchService.deletedById(taskApprovalVO.getId());
             }
+
         } else {
             //废除,遵循只要某一个分支流程废除,则主流程废除、其它分支流程均自动结束
             //完成/审批当前分支流程
             this.newFlowClient.completeApprovalTask(taskId, parallelProcessInstanceId, comment).getData();
             //将分支状态更改为已废除
-            this.taskParallelService.update(Wrappers.<TaskParallel>lambdaUpdate().set(TaskParallel::getStatus, 3).set(TaskParallel::getUpdateUser, AuthUtil.getUserId()).set(TaskParallel::getUpdateTime, new Date()).eq(TaskParallel::getParallelProcessInstanceId, parallelProcessInstanceId));
+            this.taskParallelService.update(Wrappers.<TaskParallel>lambdaUpdate().set(TaskParallel::getStatus, 3)
+                    .set(TaskParallel::getUpdateUser, taskApprovalVO.getUserId())
+                    .set(TaskParallel::getUpdateTime, new Date())
+                    .eq(TaskParallel::getParallelProcessInstanceId, parallelProcessInstanceId));
 
             //获取除当前分支外的所有分支
             List<TaskParallel> otherLink = this.taskParallelService.queryOtherLinkList(parallelProcessInstanceId);
@@ -776,7 +788,10 @@ public class TaskServiceImpl extends BaseServiceImpl<TaskMapper, Task> implement
                 for (TaskParallel parallel : otherLink) {
                     if (!new Integer("2").equals(parallel.getStatus())) {
                         //修改所有状态为已废除
-                        this.taskParallelService.update(Wrappers.<TaskParallel>lambdaUpdate().set(TaskParallel::getInitiative, 2).set(TaskParallel::getUpdateUser, AuthUtil.getUserId()).set(TaskParallel::getUpdateTime, new Date()).eq(TaskParallel::getId, parallel.getId()));
+                        this.taskParallelService.update(Wrappers.<TaskParallel>lambdaUpdate().set(TaskParallel::getInitiative, 2)
+                                .set(TaskParallel::getUpdateUser, taskApprovalVO.getUserId())
+                                .set(TaskParallel::getUpdateTime, new Date())
+                                .eq(TaskParallel::getId, parallel.getId()));
 
                         if (new Integer("1").equals(parallel.getStatus())) {
                             //存在未审批的情况,自动执行其分支流程
@@ -806,18 +821,19 @@ public class TaskServiceImpl extends BaseServiceImpl<TaskMapper, Task> implement
             this.updateBusinessDataByFormDataId(this.getOne(Wrappers.<Task>lambdaQuery().eq(Task::getProcessInstanceId, masterProcessInstanceId)), 3, null, taskApprovalVO.getUserId());
 
             //任务废除通知
-            this.abolishMessage(masterTask, currentLink, comment);
-
-            //删除合同段树redis缓存 TODO 不清楚updateBusinessDataByFormDataId为什么没生效,在外层再次删除
-            informationQueryService.delAsyncWbsTree(masterTask.getContractId());
+            this.abolishMessage(masterTask, currentLink, comment, taskApprovalVO.getNickName());
         }
+
+        //return前先删除合同段树redis缓存
+        informationQueryService.delAsyncWbsTree(masterTask.getContractId());
+
         return "";
     }
 
     /**
      * 任务废除通知
      */
-    private void abolishMessage(Task masterTask, TaskParallel currentLink, String comment) {
+    private void abolishMessage(Task masterTask, TaskParallel currentLink, String comment,String nickName) {
         //查询合同段及项目名称
         ProjectInfo projectInfo = this.projectClient.queryProjectList(Func.toStrList(masterTask.getProjectId())).get(0);
         String projectName = StringUtils.isNotEmpty(projectInfo.getProjectAlias()) ? projectInfo.getProjectAlias() : projectInfo.getProjectName();
@@ -837,7 +853,7 @@ public class TaskServiceImpl extends BaseServiceImpl<TaskMapper, Task> implement
                             Long.parseLong(masterTask.getProjectId()),
                             Long.parseLong(masterTask.getContractId()),
                             3,
-                            "【" + projectName + "-" + contractName + "】的用户【" + AuthUtil.getNickName() + "】废除了【" + masterTask.getTaskName() + "】,废除原因为【" + comment + "】,请及时查看",
+                            "【" + projectName + "-" + contractName + "】的用户【" + nickName + "】废除了【" + masterTask.getTaskName() + "】,废除原因为【" + comment + "】,请及时查看",
                             Long.parseLong(parallel.getTaskUser()),
                             0
                     ));
@@ -851,7 +867,7 @@ public class TaskServiceImpl extends BaseServiceImpl<TaskMapper, Task> implement
                     Long.parseLong(masterTask.getProjectId()),
                     Long.parseLong(masterTask.getContractId()),
                     3,
-                    "【" + projectName + "-" + contractName + "】的用户【" + AuthUtil.getNickName() + "】废除了【" + masterTask.getTaskName() + "】,废除原因为【" + comment + "】,请及时查看",
+                    "【" + projectName + "-" + contractName + "】的用户【" + nickName + "】废除了【" + masterTask.getTaskName() + "】,废除原因为【" + comment + "】,请及时查看",
                     masterTask.getCreateUser(),
                     0
             ));
@@ -878,7 +894,7 @@ public class TaskServiceImpl extends BaseServiceImpl<TaskMapper, Task> implement
                                             Long.parseLong(masterTask.getProjectId()),
                                             Long.parseLong(masterTask.getContractId()),
                                             3,
-                                            "【" + projectName + "-" + contractName + "】的用户【" + AuthUtil.getNickName() + "】废除了【" + masterTask.getTaskName() + "】,废除原因为【" + comment + "】,请及时查看",
+                                            "【" + projectName + "-" + contractName + "】的用户【" + nickName + "】废除了【" + masterTask.getTaskName() + "】,废除原因为【" + comment + "】,请及时查看",
                                             Long.parseLong(strs[0]),
                                             0
                                     ));
@@ -896,7 +912,7 @@ public class TaskServiceImpl extends BaseServiceImpl<TaskMapper, Task> implement
                                     Long.parseLong(masterTask.getProjectId()),
                                     Long.parseLong(masterTask.getContractId()),
                                     3,
-                                    "【" + projectName + "-" + contractName + "】的用户【" + AuthUtil.getNickName() + "】废除了【" + json.getString("fileName") + "】,废除原因为【" + comment + "】,请及时查看",
+                                    "【" + projectName + "-" + contractName + "】的用户【" + nickName + "】废除了【" + json.getString("fileName") + "】,废除原因为【" + comment + "】,请及时查看",
                                     Long.parseLong(fillUser),
                                     0
                             ));
@@ -1141,7 +1157,7 @@ public class TaskServiceImpl extends BaseServiceImpl<TaskMapper, Task> implement
                         .set(InformationQuery::getBusinessTime, dateInfo)
                         .in(InformationQuery::getId, Arrays.asList(formDataId.split(","))));
 
-                //如果是废除任务,那么删除合同段节点树缓存 TODO 不清楚为什么没生效,在外层删除
+                //如果是废除任务,那么删除合同段节点树缓存
                 if (status == 3) {
                     informationQueryService.delAsyncWbsTree(queryinfo.getContractId().toString());
                 }