Browse Source

电签相关

huangjn 2 years ago
parent
commit
8060559108

+ 2 - 0
blade-service/blade-business/src/main/java/org/springblade/BusinessApplication.java

@@ -4,10 +4,12 @@ import org.springblade.common.constant.BusinessConstant;
 import org.springblade.core.cloud.feign.EnableBladeFeign;
 import org.springblade.core.launch.BladeApplication;
 import org.springframework.cloud.client.SpringCloudApplication;
+import org.springframework.scheduling.annotation.EnableAsync;
 
 /**
  * 客户端启动类
  */
+@EnableAsync
 @EnableBladeFeign
 @SpringCloudApplication
 public class BusinessApplication {

+ 24 - 21
blade-service/blade-business/src/main/java/org/springblade/business/controller/TaskController.java

@@ -252,8 +252,8 @@ public class TaskController extends BladeController {
 
 				taskApprovalVOS.add(approvalVO);
 			}
-
-			return R.data(this.taskService.batchCompleteApprovalTask(taskApprovalVOS));
+			this.taskService.batchCompleteApprovalTask(taskApprovalVOS);
+			return R.data(true);
 		}
 		return R.data(false);
 	}
@@ -301,7 +301,7 @@ public class TaskController extends BladeController {
 		//获取已办(基于原生已办)
 		R<Object> rObject = this.newFlowClient.selectDonePage(queryVO.getCurrent(), queryVO.getSize(), String.join(",", parallelProcessInstanceIds));
 		//处理参数
-		return this.integrationMethod(queryVO, rObject, masterTaskMap, parallelMap);
+		return this.integrationMethod(queryVO, rObject, masterTaskMap, parallelMap, false);
 	}
 
 	/**
@@ -335,7 +335,7 @@ public class TaskController extends BladeController {
 		//获取待办(基于原生待办)
 		R<Object> rObject = this.newFlowClient.selectTodoPage(queryVO.getCurrent(), queryVO.getSize(), String.join(",", parallelProcessInstanceIds));
 		//处理参数
-		return this.integrationMethod(queryVO, rObject, masterTaskMap, parallelMap);
+		return this.integrationMethod(queryVO, rObject, masterTaskMap, parallelMap, true);
 	}
 
 	/**
@@ -390,7 +390,7 @@ public class TaskController extends BladeController {
 	/**
 	 * 统合处理方法
 	 */
-	private R<IPage<TaskVO>> integrationMethod(TaskQueryVO queryVO, R<Object> rObject, Map<String,Task> masterTaskMap, Map<String,TaskParallel> parallelMap){
+	private R<IPage<TaskVO>> integrationMethod(TaskQueryVO queryVO, R<Object> rObject, Map<String,Task> masterTaskMap, Map<String,TaskParallel> parallelMap, boolean isToDo){
 		Query query = new Query();
 		query.setCurrent(queryVO.getCurrent());
 		query.setSize(queryVO.getSize());
@@ -434,18 +434,23 @@ public class TaskController extends BladeController {
 					}
 				});
 
-				//result是一个总的集合,需要手动进行分组分页
-				List<List<TaskVO>> groupResult = CommonUtil.getBatchSize(finalResult, query.getSize());
-				//获取当前页数据
-				List<TaskVO> finalFlowList;
-				if(groupResult.size() > 0){
-					finalFlowList = groupResult.get(query.getCurrent() - 1);
-				} else {
-					finalFlowList = new ArrayList<>();
-				}
-
-				//最终分页数据
-				return this.getIPageR(query, flowIPage, finalFlowList);
+//				//待办的原生方法并没有对数据做分页,所以需要在这里进行手动分页,而已办的原生方法已经做了分页处理
+//				if(!isToDo){
+//					//result是一个总的集合,需要手动进行分组分页
+//					List<List<TaskVO>> groupResult = CommonUtil.getBatchSize(finalResult, query.getSize());
+//					//获取当前页数据
+//					List<TaskVO> finalFlowList;
+//					if(groupResult.size() > 0){
+//						finalFlowList = groupResult.get(query.getCurrent() - 1);
+//					} else {
+//						finalFlowList = new ArrayList<>();
+//					}
+//					//最终分页数据
+//					return this.getIPageR(query, flowIPage, finalFlowList);
+//				} else {
+					//最终分页数据
+					return this.getIPageR(query, flowIPage, finalResult);
+//				}
 			}
 		}
 		return R.data(null);
@@ -489,10 +494,8 @@ public class TaskController extends BladeController {
 			//生成等待批次,任务完成后删除
 			List<TaskApprovalVO> taskApprovalVOS = new ArrayList<>();
 			taskApprovalVOS.add(taskApprovalVO);
-
-			this.taskBatchService.save(new TaskBatch(taskApprovalVO.getParallelProcessInstanceId(), JSONObject.toJSONString(taskApprovalVOS)));
-
-			return R.data(this.taskService.batchCompleteApprovalTask(taskApprovalVOS));
+			this.taskService.batchCompleteApprovalTask(taskApprovalVOS);
+			return R.data(true, "提交成功");
 		}
 	}
 

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

@@ -48,7 +48,7 @@ public interface ITaskService extends BaseService<Task> {
     /**
      * 批量审批
      */
-    Boolean batchCompleteApprovalTask(List<TaskApprovalVO> taskApprovalVOS);
+    void batchCompleteApprovalTask(List<TaskApprovalVO> taskApprovalVOS);
 
     /**
      * 启动流程

+ 18 - 12
blade-service/blade-business/src/main/java/org/springblade/business/service/impl/TaskServiceImpl.java

@@ -42,6 +42,7 @@ import org.springblade.manager.feign.ProjectClient;
 import org.springframework.beans.BeanUtils;
 import org.springframework.scheduling.annotation.Async;
 import org.springframework.stereotype.Service;
+import org.springframework.transaction.annotation.Transactional;
 
 import java.util.ArrayList;
 import java.util.Arrays;
@@ -153,7 +154,7 @@ public class TaskServiceImpl extends BaseServiceImpl<TaskMapper, Task> implement
          return taskApprovalVO;
      }
 
-     @Override
+    @Override
     public TaskApprovalVO queryBusinessData(TaskApprovalVO taskApprovalVO) {
         switch (taskApprovalVO.getApprovalType()){
             case 1:
@@ -282,33 +283,35 @@ public class TaskServiceImpl extends BaseServiceImpl<TaskMapper, Task> implement
         return this.baseMapper.queryBatchList(projectId, contract);
     }
 
+    @Async
     @Override
-    public Boolean batchCompleteApprovalTask(List<TaskApprovalVO> taskApprovalVOS) {
+    public void batchCompleteApprovalTask(List<TaskApprovalVO> taskApprovalVOS) {
+        List<String> taskIds = taskApprovalVOS.stream().map(TaskApprovalVO::getParallelProcessInstanceId).distinct().collect(Collectors.toList());
+
         long batch = this.taskBatchService.count(Wrappers.<TaskBatch>lambdaQuery().eq(TaskBatch::getCreateUser, AuthUtil.getUserId()));
         if(batch > 0){
-            List<String> taskIds = taskApprovalVOS.stream().map(TaskApprovalVO::getParallelProcessInstanceId).distinct().collect(Collectors.toList());
-
             //修改电签状态
             this.taskParallelService.update(Wrappers.<TaskParallel>lambdaUpdate()
                     .set(TaskParallel::getEVisaContent, "当前等待电签的批次较多,请等待几分钟后刷新页面查看........")
                     .in(TaskParallel::getParallelProcessInstanceId, taskIds));
             //保存批次
             this.taskBatchService.save(new TaskBatch(null, JSONObject.toJSONString(taskApprovalVOS)));
-
-            return true;
         } else {
+            //修改电签状态
+            this.taskParallelService.update(Wrappers.<TaskParallel>lambdaUpdate()
+                    .set(TaskParallel::getEVisaContent, "正在电签,请稍后查看........")
+                    .in(TaskParallel::getParallelProcessInstanceId, taskIds));
+
             //保存批次
             TaskBatch taskBatch = new TaskBatch(null, JSONObject.toJSONString(taskApprovalVOS));
             this.taskBatchService.save(taskBatch);
 
             //执行电签,结束后检查在执行是否有新的等待批次
             this.checkIsExsitTaskBatch(taskApprovalVOS, taskBatch.getId().toString());
-            return true;
         }
     }
 
-    @Async
-    public void checkIsExsitTaskBatch(List<TaskApprovalVO> taskApprovalVOS, String batchId){
+    private void checkIsExsitTaskBatch(List<TaskApprovalVO> taskApprovalVOS, String batchId){
         boolean isContinue = true;
         while (isContinue){
             logger.info("【任务审核】当前批次开始电签。批次ID:" + batchId);
@@ -748,7 +751,8 @@ public class TaskServiceImpl extends BaseServiceImpl<TaskMapper, Task> implement
     /**
      * 施工日志等
      */
-    private void updateContractLogBusinessDataStatus(String formDataId, Integer status, String newFileUrl){
+    @Transactional
+    public void updateContractLogBusinessDataStatus(String formDataId, Integer status, String newFileUrl){
         this.contractLogService.update(Wrappers.<ContractLog>lambdaUpdate().set(ContractLog::getStatus, status)
                 .set(ContractLog::getEVisaPdfUrl, newFileUrl)
                 .set(ContractLog::getAuditUserIdAndName, null)
@@ -761,7 +765,8 @@ public class TaskServiceImpl extends BaseServiceImpl<TaskMapper, Task> implement
     /**
      * 资料填报
      */
-    private void updateWriteBusinessDataStatus(String formDataId, Integer status, String newFileUrl){
+    @Transactional
+    public void updateWriteBusinessDataStatus(String formDataId, Integer status, String newFileUrl){
         this.informationQueryService.update(Wrappers.<InformationQuery>lambdaUpdate().set(InformationQuery::getStatus, status)
                 .set(InformationQuery::getEVisaPdfUrl, newFileUrl)
                 .set(InformationQuery::getReportNumber, null)
@@ -774,7 +779,8 @@ public class TaskServiceImpl extends BaseServiceImpl<TaskMapper, Task> implement
     /**
      * 工程文件
      */
-    private void updateArchiveFileBusinessDataStatus(String formDataId, Integer status, String newFileUrl){
+    @Transactional
+    public void updateArchiveFileBusinessDataStatus(String formDataId, Integer status, String newFileUrl){
         LambdaUpdateWrapper<ArchiveFile> wrapper = Wrappers.lambdaUpdate();
         //更改状态,更改电签文件信息
         wrapper.set(ArchiveFile::getStatus, status)