fix: 制修订流程征求意见子流程BUG
This commit is contained in:
+2
@@ -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;
|
||||
|
||||
|
||||
+15
-8
@@ -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:
|
||||
// 保存流程数据
|
||||
|
||||
Reference in New Issue
Block a user