fix: 制修订流程征求意见子流程BUG

This commit is contained in:
2023-12-26 14:09:40 +08:00
parent d0b91ac4d5
commit 1dd917bf35
2 changed files with 17 additions and 8 deletions
@@ -7,6 +7,7 @@ import com.baomidou.mybatisplus.annotation.TableName;
import java.io.Serializable;
import java.util.Date;
import com.jero.common.aspect.annotation.Dict;
import io.swagger.annotations.ApiModelProperty;
import lombok.AllArgsConstructor;
import lombok.Data;
@@ -91,6 +92,7 @@ public class EsRevisionAdvice implements Serializable {
/**
* 意见提出人
*/
@Dict(dictTable = "sys_user", dicText = "CONCAT(realname, '(', username, ')')", dicCode = "id")
@ApiModelProperty(value = "意见提出人")
private String createUserId;
@@ -216,13 +216,10 @@ public class EsRevisionServiceImpl extends ServiceImpl<EsRevisionMapper, Process
LambdaQueryWrapper<ProcessEsRevision> wrapper = new LambdaQueryWrapper<>();
LambdaQueryWrapper<EsRevisionAdvice> advicesWrapper = new LambdaQueryWrapper<>();
advicesWrapper.eq(EsRevisionAdvice::getProcessInstanceId, processInstanceId);
advicesWrapper.eq(EsRevisionAdvice::getExecutionId, executionId);
List<EsRevisionAdvice> adviceList = adviceService.list(advicesWrapper);
wrapper.eq(ProcessEsRevision::getProcessInstanceId, processInstanceId);
ProcessEsRevision data = getOne(wrapper);
List<OtherDraftUserVO> otherDraftUserVOS = data.parseOtherDraftUserVOS();
List<InspectContentVO> inspectContentVOS = data.parseInspectContents();
data.setAdvices(adviceList);
String xmlNodeId = record.getNodeId();
// 某些节点需要对数据进行特殊处理
switch (xmlNodeId) {
@@ -239,10 +236,14 @@ public class EsRevisionServiceImpl extends ServiceImpl<EsRevisionMapper, Process
}
o.setOperateType(OperateTypeEnum.CANNOT_OPERATE.getValue());
}
break;
case CONTACT_USER_COLLECT:
case CONTACT_USER_LEADER_APPROVAL:
advicesWrapper.eq(EsRevisionAdvice::getExecutionId, executionId);
break;
}
List<EsRevisionAdvice> adviceList = adviceService.list(advicesWrapper);
data.setAdvices(adviceList);
data.setOtherDraftUserVOS(otherDraftUserVOS);
data.setInspectContents(inspectContentVOS);
revisionDataVO.setData(data);
@@ -279,6 +280,7 @@ public class EsRevisionServiceImpl extends ServiceImpl<EsRevisionMapper, Process
List<EsRevisionAdvice> advices;
ProcessEsRevision data;
Map<String, Object> flowUser;
String contactUser = (String) runtimeService.getVariable(executionId, "contactUser");
switch (xmlNodeId) {
case MAIN_DRAFT_USER_DISTRIBUTE:
// 判断是否分发 设置流程变量
@@ -350,8 +352,8 @@ public class EsRevisionServiceImpl extends ServiceImpl<EsRevisionMapper, Process
reviewMeetingDetailsDb = new ArrayList<>();
}
reviewMeetingDetailsDb.addAll(reviewMeetingDetails);
data.setReviewMeetingDetailJson(reviewMeetingDetailsDb);
saveOrUpdate(data);
revisionDb.setReviewMeetingDetailJson(reviewMeetingDetailsDb);
saveOrUpdate(revisionDb);
break;
case CONFIRM_ADVISE:
// 判断是否开启征求意见子流程 设置流程变量
@@ -376,6 +378,7 @@ public class EsRevisionServiceImpl extends ServiceImpl<EsRevisionMapper, Process
List<String> adviceUserList = Arrays.asList(adviceUsers.split(","));
runtimeService.setVariable(executionId, "adviceUserList", adviceUserList);
runtimeService.setVariable(executionId, "adviceDeadline", data.getAdviceDeadline());
runtimeService.setVariable(executionId, contactUser + "-ExecutionId", executionId);
userMap.put("adviceUserList", adviceUsers);
processNodeLinkService.incrementSaveNodeUserLink(processDefinitionId, processInstanceId, userMap);
// 设置截止时间
@@ -386,12 +389,16 @@ public class EsRevisionServiceImpl extends ServiceImpl<EsRevisionMapper, Process
advices = data.getAdvices();
advices.forEach(advice -> advice.setCreateUserId(userId));
advices.forEach(advice -> advice.setProcessInstanceId(processInstanceId));
advices.forEach(advice -> advice.setExecutionId(executionId));
String contactUserExecutionId = (String) runtimeService.getVariable(executionId, contactUser + "-ExecutionId");
advices.forEach(advice -> advice.setExecutionId(contactUserExecutionId));
adviceService.saveBatch(advices);
break;
case CONTACT_USER_COLLECT:
data = revisionData.getData();
runtimeService.setVariable(executionId, "contactUserLeader", data.getContactUserLeader());
userMap.put("contactUserLeader", data.getContactUserLeader());
advices = data.getAdvices();
adviceService.saveOrUpdateBatch(advices);
processNodeLinkService.incrementSaveNodeUserLink(processDefinitionId, processInstanceId, userMap);
case CONTACT_USER_LEADER_APPROVAL:
// 保存流程数据