fix: 制修订流程其他起草人上传节点
This commit is contained in:
+36
-24
@@ -180,6 +180,8 @@ public class EsRevisionServiceImpl extends ServiceImpl<EsRevisionMapper, Process
|
||||
actFlowCommonService.updateApprovalInfo(commonVO, taskId, true);
|
||||
// 自动完成第一个任务
|
||||
actFlowCommonService.completeTask(taskId, userId);
|
||||
// 处理其他起草人上传节点
|
||||
this.processOtherDraftUploadTask(processInstanceId);
|
||||
}
|
||||
|
||||
private Map<String, Object> setVariables(ESRevisionDataVO revisionData) {
|
||||
@@ -337,30 +339,8 @@ public class EsRevisionServiceImpl extends ServiceImpl<EsRevisionMapper, Process
|
||||
// 某些节点需要对数据进行特殊处理
|
||||
switch (xmlNodeId) {
|
||||
case OTHER_DRAFT_USER_UPLOAD:
|
||||
boolean findFlag = false;
|
||||
otherDraftUserVOS.forEach(o -> o.setOperateType(null));
|
||||
for (OtherDraftUserVO o : otherDraftUserVOS) {
|
||||
if (findFlag) {
|
||||
o.setOperateType(OperateTypeEnum.CANNOT_OPERATE.getValue());
|
||||
continue;
|
||||
}
|
||||
if (o.getUser().equals(userId)) {
|
||||
if (StrUtil.isBlank(o.getTaskId())) {
|
||||
o.setOperateType(OperateTypeEnum.UPLOAD.getValue());
|
||||
o.setTaskId(taskId);
|
||||
findFlag = true;
|
||||
} else {
|
||||
if (!taskId.equals(o.getTaskId())) {
|
||||
o.setOperateType(OperateTypeEnum.CANNOT_OPERATE.getValue());
|
||||
}
|
||||
}
|
||||
} else {
|
||||
o.setOperateType(OperateTypeEnum.CANNOT_OPERATE.getValue());
|
||||
}
|
||||
}
|
||||
data.setOtherDraftUserVOS(otherDraftUserVOS);
|
||||
data.setOtherDrafterUploadFileJson(otherDraftUserVOS);
|
||||
updateById(data);
|
||||
otherDraftUserVOS = otherDraftUserVOS.stream()
|
||||
.filter(o -> o.getTaskId().equals(taskId)).collect(Collectors.toList());
|
||||
break;
|
||||
case CONTACT_USER_DISTRIBUTE:
|
||||
if (pass) {
|
||||
@@ -680,6 +660,38 @@ public class EsRevisionServiceImpl extends ServiceImpl<EsRevisionMapper, Process
|
||||
runtimeService.setVariable(processInstanceId, "pass", pass);
|
||||
// 审批节点
|
||||
actFlowCommonService.completeTask(taskId, userId);
|
||||
if (xmlNodeId.equals(MAIN_DRAFT_USER_DISTRIBUTE)) {
|
||||
this.processOtherDraftUploadTask(processInstanceId);
|
||||
}
|
||||
}
|
||||
|
||||
private void processOtherDraftUploadTask(String prcId) {
|
||||
LambdaQueryWrapper<ProcessEsRevision> queryWrapper = new LambdaQueryWrapper<>();
|
||||
queryWrapper.eq(ProcessEsRevision::getProcessInstanceId, prcId);
|
||||
ProcessEsRevision data = getOne(queryWrapper);
|
||||
// 判断是否分发 设置流程变量
|
||||
List<OtherDraftUserVO> otherDraftUserVOS = data.parseOtherDraftUserVOS();
|
||||
if (otherDraftUserVOS == null || otherDraftUserVOS.isEmpty()) {
|
||||
return;
|
||||
}
|
||||
// 获取所有分发节点
|
||||
LambdaQueryWrapper<ProcessApprovalRecord> parWrapper = new LambdaQueryWrapper<>();
|
||||
parWrapper.eq(ProcessApprovalRecord::getProcessInstanceId, prcId);
|
||||
parWrapper.eq(ProcessApprovalRecord::getNodeId, OTHER_DRAFT_USER_UPLOAD);
|
||||
List<ProcessApprovalRecord> processApprovalRecords = parService.list(parWrapper);
|
||||
Map<String, List<ProcessApprovalRecord>> map =
|
||||
processApprovalRecords.stream().collect(Collectors.groupingBy(ProcessApprovalRecord::getUserId));
|
||||
otherDraftUserVOS.forEach(o -> {
|
||||
List<ProcessApprovalRecord> list = map.get(o.getUser());
|
||||
if (list != null && !list.isEmpty()) {
|
||||
o.setTaskId(list.get(0).getTaskId());
|
||||
list.remove(0);
|
||||
}
|
||||
map.put(o.getUser(), list);
|
||||
});
|
||||
data.setOtherDraftUserVOS(otherDraftUserVOS);
|
||||
data.setOtherDrafterUploadFileJson(otherDraftUserVOS);
|
||||
updateById(data);
|
||||
}
|
||||
|
||||
private void replaceAutoStartDraft(ESRevisionDataVO revisionData, String processInstanceId) {
|
||||
|
||||
Reference in New Issue
Block a user