|
@@ -12,20 +12,26 @@ import com.github.xiaoymin.knife4j.annotations.ApiOperationSupport;
|
|
import lombok.AllArgsConstructor;
|
|
import lombok.AllArgsConstructor;
|
|
import org.apache.commons.lang.StringUtils;
|
|
import org.apache.commons.lang.StringUtils;
|
|
import org.jetbrains.annotations.NotNull;
|
|
import org.jetbrains.annotations.NotNull;
|
|
|
|
+import org.springblade.business.entity.ArchiveFile;
|
|
import org.springblade.business.entity.TaskParallel;
|
|
import org.springblade.business.entity.TaskParallel;
|
|
|
|
+import org.springblade.business.service.IArchiveFileService;
|
|
import org.springblade.business.service.ITaskParallelService;
|
|
import org.springblade.business.service.ITaskParallelService;
|
|
|
|
+import org.springblade.business.utils.FileUtils;
|
|
import org.springblade.business.vo.BatchTaskVO;
|
|
import org.springblade.business.vo.BatchTaskVO;
|
|
import org.springblade.business.vo.TaskApprovalVO;
|
|
import org.springblade.business.vo.TaskApprovalVO;
|
|
import org.springblade.business.vo.TaskQueryVO;
|
|
import org.springblade.business.vo.TaskQueryVO;
|
|
import org.springblade.common.utils.CommonUtil;
|
|
import org.springblade.common.utils.CommonUtil;
|
|
|
|
+import org.springblade.common.utils.SnowFlakeUtil;
|
|
import org.springblade.core.mp.support.Condition;
|
|
import org.springblade.core.mp.support.Condition;
|
|
import org.springblade.core.mp.support.Query;
|
|
import org.springblade.core.mp.support.Query;
|
|
|
|
+import org.springblade.core.oss.model.BladeFile;
|
|
import org.springblade.core.secure.utils.AuthUtil;
|
|
import org.springblade.core.secure.utils.AuthUtil;
|
|
import org.springblade.core.sms.model.SmsResponse;
|
|
import org.springblade.core.sms.model.SmsResponse;
|
|
import org.springblade.core.tool.api.R;
|
|
import org.springblade.core.tool.api.R;
|
|
import org.springblade.core.tool.jackson.JsonUtil;
|
|
import org.springblade.core.tool.jackson.JsonUtil;
|
|
import org.springblade.flow.core.entity.BladeFlow;
|
|
import org.springblade.flow.core.entity.BladeFlow;
|
|
import org.springblade.flow.core.feign.NewFlowClient;
|
|
import org.springblade.flow.core.feign.NewFlowClient;
|
|
|
|
+import org.springblade.resource.feign.NewIOSSClient;
|
|
import org.springblade.resource.feign.NewISmsClient;
|
|
import org.springblade.resource.feign.NewISmsClient;
|
|
import org.springblade.system.entity.DictBiz;
|
|
import org.springblade.system.entity.DictBiz;
|
|
import org.springblade.system.feign.IDictBizClient;
|
|
import org.springblade.system.feign.IDictBizClient;
|
|
@@ -36,7 +42,6 @@ import org.springblade.business.entity.Task;
|
|
import org.springblade.business.vo.TaskVO;
|
|
import org.springblade.business.vo.TaskVO;
|
|
import org.springblade.business.service.ITaskService;
|
|
import org.springblade.business.service.ITaskService;
|
|
import org.springblade.core.boot.ctrl.BladeController;
|
|
import org.springblade.core.boot.ctrl.BladeController;
|
|
-
|
|
|
|
import java.util.*;
|
|
import java.util.*;
|
|
import java.util.stream.Collectors;
|
|
import java.util.stream.Collectors;
|
|
|
|
|
|
@@ -62,6 +67,44 @@ public class TaskController extends BladeController {
|
|
|
|
|
|
private final NewISmsClient newSmsClient;
|
|
private final NewISmsClient newSmsClient;
|
|
|
|
|
|
|
|
+ private final IArchiveFileService archiveFileService;
|
|
|
|
+
|
|
|
|
+ private final NewIOSSClient newIOSSClient;
|
|
|
|
+
|
|
|
|
+ /**
|
|
|
|
+ * 批量审批详情
|
|
|
|
+ */
|
|
|
|
+ @GetMapping
|
|
|
|
+ @ApiOperationSupport(order = 11)
|
|
|
|
+ @ApiOperation(value = "批量页详情")
|
|
|
|
+ @ApiImplicitParams({
|
|
|
|
+ @ApiImplicitParam(name = "formDataId", value = "数据源", required = true),
|
|
|
|
+ @ApiImplicitParam(name = "approvalType", value = "上报类型", required = true)
|
|
|
|
+ })
|
|
|
|
+ public R<TaskApprovalVO> getBatchApprovalTaskParameter(@RequestParam String formDataId, @RequestParam Integer approvalType){
|
|
|
|
+ TaskApprovalVO result = new TaskApprovalVO();
|
|
|
|
+ result.setFormDataId(formDataId);
|
|
|
|
+ result.setApprovalType(approvalType);
|
|
|
|
+
|
|
|
|
+ TaskApprovalVO vo = this.queryBusinessData(result);
|
|
|
|
+ //所有文件集合
|
|
|
|
+ List<String> urlList = new ArrayList<>();
|
|
|
|
+ if(vo != null && vo.getApprovalFileList().size() > 0){
|
|
|
|
+ vo.getApprovalFileList().forEach(file -> urlList.add(file.getFileUrl()));
|
|
|
|
+ String fileName = SnowFlakeUtil.getId() + ".pdf";
|
|
|
|
+ String localImgUrl = "D:/project/file/" + fileName;
|
|
|
|
+ //合并方法
|
|
|
|
+ FileUtils.mergePdfPublicMethods(urlList, localImgUrl);
|
|
|
|
+
|
|
|
|
+ BladeFile bladeFile = this.newIOSSClient.uploadFile(fileName, localImgUrl);
|
|
|
|
+ if(bladeFile != null && StringUtils.isNotEmpty(bladeFile.getLink())){
|
|
|
|
+ result.setApprovalFileList(fileName, bladeFile.getLink());
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ return R.data(result);
|
|
|
|
+ }
|
|
|
|
+
|
|
/**
|
|
/**
|
|
* 短信验证
|
|
* 短信验证
|
|
*/
|
|
*/
|
|
@@ -163,6 +206,12 @@ public class TaskController extends BladeController {
|
|
approvalVO.setParallelProcessInstanceId(parallelProcessInstanceIdArray[i]);
|
|
approvalVO.setParallelProcessInstanceId(parallelProcessInstanceIdArray[i]);
|
|
approvalVO.setFlag(batchTaskVO.getFlag());
|
|
approvalVO.setFlag(batchTaskVO.getFlag());
|
|
approvalVO.setComment(batchTaskVO.getComment());
|
|
approvalVO.setComment(batchTaskVO.getComment());
|
|
|
|
+ //查询业务数据
|
|
|
|
+// TaskApprovalVO vo = this.queryBusinessData(formDataIds[i]);
|
|
|
|
+// if(vo != null){
|
|
|
|
+// //设置文件集合
|
|
|
|
+// approvalVO.setApprovalFileList(vo.getApprovalFileList());
|
|
|
|
+// }
|
|
|
|
|
|
//批量审批
|
|
//批量审批
|
|
this.taskService.completeApprovalTask(approvalVO);
|
|
this.taskService.completeApprovalTask(approvalVO);
|
|
@@ -224,9 +273,15 @@ public class TaskController extends BladeController {
|
|
@GetMapping("/query-approval-parameter")
|
|
@GetMapping("/query-approval-parameter")
|
|
@ApiOperationSupport(order = 4)
|
|
@ApiOperationSupport(order = 4)
|
|
@ApiOperation(value = "审批页详情(单任务时)")
|
|
@ApiOperation(value = "审批页详情(单任务时)")
|
|
- public R<TaskApprovalVO> getApprovalTaskParameter(String parallelProcessInstanceId){
|
|
|
|
|
|
+ public R<TaskApprovalVO> getApprovalTaskParameter(@RequestParam String parallelProcessInstanceId, @RequestParam String formDataId, @RequestParam Integer approvalType){
|
|
|
|
+ TaskApprovalVO vo = new TaskApprovalVO();
|
|
|
|
+ vo.setFormDataId(formDataId);
|
|
|
|
+ vo.setApprovalType(approvalType);
|
|
|
|
|
|
- return R.data(null);
|
|
|
|
|
|
+ ////获取具体业务数据
|
|
|
|
+ vo = this.queryBusinessData(vo);
|
|
|
|
+
|
|
|
|
+ return R.data(vo);
|
|
}
|
|
}
|
|
|
|
|
|
/**
|
|
/**
|
|
@@ -379,6 +434,13 @@ public class TaskController extends BladeController {
|
|
@ApiOperationSupport(order = 2)
|
|
@ApiOperationSupport(order = 2)
|
|
@ApiOperation(value = "完成/审批任务")
|
|
@ApiOperation(value = "完成/审批任务")
|
|
public R<Boolean> completeApprovalTask(@RequestBody TaskApprovalVO taskApprovalVO){
|
|
public R<Boolean> completeApprovalTask(@RequestBody TaskApprovalVO taskApprovalVO){
|
|
|
|
+ //工程文件
|
|
|
|
+ TaskApprovalVO archiveFileVO = this.queryBusinessData(taskApprovalVO);
|
|
|
|
+ if(archiveFileVO != null){
|
|
|
|
+ //获取相关联的pdf
|
|
|
|
+ taskApprovalVO.setApprovalFileList(archiveFileVO.getApprovalFileList());
|
|
|
|
+ }
|
|
|
|
+
|
|
return R.data(this.taskService.completeApprovalTask(taskApprovalVO));
|
|
return R.data(this.taskService.completeApprovalTask(taskApprovalVO));
|
|
}
|
|
}
|
|
|
|
|
|
@@ -389,7 +451,40 @@ public class TaskController extends BladeController {
|
|
@ApiOperationSupport(order = 1)
|
|
@ApiOperationSupport(order = 1)
|
|
@ApiOperation(value = "上报", notes = "taskVO对象")
|
|
@ApiOperation(value = "上报", notes = "taskVO对象")
|
|
public R<Boolean> startApproval(@RequestBody TaskVO taskVO){
|
|
public R<Boolean> startApproval(@RequestBody TaskVO taskVO){
|
|
- return R.data(this.taskService.startApproval(taskVO));
|
|
|
|
|
|
+ return this.taskService.startApproval(taskVO) ? R.data(200, true, "操作成功") : R.data(200, false, "操作失败,请联系管理员");
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ /**
|
|
|
|
+ * 查询业务数据对外接口
|
|
|
|
+ * @param taskApprovalVO 上报信息
|
|
|
|
+ */
|
|
|
|
+ private TaskApprovalVO queryBusinessData(TaskApprovalVO taskApprovalVO){
|
|
|
|
+ switch (taskApprovalVO.getApprovalType()){
|
|
|
|
+ case 1:
|
|
|
|
+ //填报数据
|
|
|
|
+ return null;
|
|
|
|
+ case 2:
|
|
|
|
+ //工程文件
|
|
|
|
+ return this.queryArchiveFileBusinessData(taskApprovalVO.getFormDataId());
|
|
|
|
+ default:
|
|
|
|
+ return null;
|
|
|
|
+ }
|
|
}
|
|
}
|
|
-
|
|
|
|
|
|
+
|
|
|
|
+ /**
|
|
|
|
+ * 查询工程文件
|
|
|
|
+ */
|
|
|
|
+ private TaskApprovalVO queryArchiveFileBusinessData(String formDataId){
|
|
|
|
+ List<ArchiveFile> archiveFileList = this.archiveFileService.list(Wrappers.<ArchiveFile>lambdaQuery().in(ArchiveFile::getId, Arrays.asList(formDataId.split(","))).eq(ArchiveFile::getIsDeleted, 0));
|
|
|
|
+ if(archiveFileList != null && archiveFileList.size() > 0){
|
|
|
|
+ //转换数据
|
|
|
|
+ TaskApprovalVO vo = new TaskApprovalVO();
|
|
|
|
+ for(ArchiveFile archiveFile : archiveFileList){
|
|
|
|
+ vo.setApprovalFileList(archiveFile.getFileName(), archiveFile.getPdfFileUrl());
|
|
|
|
+ }
|
|
|
|
+ return vo;
|
|
|
|
+ }
|
|
|
|
+ return null;
|
|
|
|
+ }
|
|
|
|
+
|
|
}
|
|
}
|