Procházet zdrojové kódy

工程文件批量上报,分成多个任务

qianxb před 2 roky
rodič
revize
1047e7edc9

+ 57 - 0
blade-service/blade-business/src/main/java/org/springblade/business/controller/ArchiveFileController.java

@@ -314,6 +314,63 @@ public class ArchiveFileController extends BladeController {
 		return R.data(false);
 		return R.data(false);
 	}
 	}
 
 
+	/**
+	 * 批量上报2,每行数据单独上报
+	 */
+	@PostMapping("/batchApproval2")
+	@ApiOperationSupport(order = 6)
+	@ApiOperation(value = "批量上报")
+	public R<Boolean> batchApproval2(@RequestBody StartTaskVO startTaskVO) throws IOException {
+		String archiveTaskIds = startTaskVO.getIds();
+		if(StringUtils.isNotEmpty(archiveTaskIds)){
+			String[] ids = archiveTaskIds.split(",");
+			for (String id : ids) {
+
+				//生成流程实体
+				TaskVO taskVO = new TaskVO();
+				BeanUtils.copyProperties(startTaskVO, taskVO);
+				if (taskVO.getUserTasks() != null && taskVO.getUserTasks().size() > 0) {
+					//标记为自定义流程
+					taskVO.setFixedFlowId(Long.parseLong("0"));
+				}
+
+				taskVO.setFormDataId(id);
+				taskVO.setApprovalType(2);
+				ArchiveFile archiveFile = this.archiveFileService.getBaseMapper().selectById(id);
+				taskVO.setTaskName(archiveFile.getFileName());
+				//启动流程
+				this.taskClient.startTask(taskVO);
+				//修改状态为待审批
+				String[] archiveTaskIdArray = id.split(",");
+				boolean update = this.archiveFileService.update(Wrappers.<ArchiveFile>lambdaUpdate().set(ArchiveFile::getStatus, 1).in(ArchiveFile::getId, Arrays.asList(archiveTaskIdArray)));
+				if (update) {
+					//通过WebSocket推送数量条数
+					if (ObjectUtil.isNotEmpty(startTaskVO.getUserTasks())) {
+						for (StartTaskVO.CustomUserTask userTask : startTaskVO.getUserTasks()) {
+							Map<String, String> stringMap = iTaskService.getTaskCount(startTaskVO.getProjectId(), startTaskVO.getContractId(), userTask.getUserId());
+							webSocket.sendMessageByUserId(userTask.getUserId(), JSON.toJSONString(stringMap));
+						}
+					}
+				}
+			}
+			List<ArchiveFile> archiveFiles = this.archiveFileService.getBaseMapper().selectBatchIds(Arrays.asList(archiveTaskIds.split(",")));
+			StringBuilder builder = new StringBuilder();
+			if (archiveFiles != null && archiveFiles.size() > 0) {
+				for (ArchiveFile archiveFile : archiveFiles) {
+					builder.append(archiveFile.getFileName()+"-");
+				}
+			}
+			String title = builder.toString();
+			//新增操作日志
+			JSONObject json = new JSONObject();
+			json.put("operationObjIds", Func.toStrList(archiveTaskIds));
+			json.put("operationObjName", title.substring(0,title.length()-1));
+			this.operationLogClient.saveUserOperationLog(25, "其它文件", "工程文件", json);
+			return R.data(true);
+		}
+		return R.data(false);
+	}
+
 	/**
 	/**
 	 * 批量编辑
 	 * 批量编辑
 	 */
 	 */