feat(REQ-4418) - 调整协助转换逻辑
This commit is contained in:
parent
86add675c2
commit
709a912d1f
@ -846,7 +846,7 @@ public final class BpmnJsonConverterUtil {
|
||||
getSignConfig(bpmnModel.getMainProcess());
|
||||
BpmnJsonModel bpmnJsonModel = convertToJson(bpmnModel);
|
||||
|
||||
FlowElement flowElement = bpmnModel.getFlowElement("node_779068202795_ltht");
|
||||
FlowElement flowElement = bpmnModel.getFlowElement("node_865016003134_707l");
|
||||
Optional<InitiatorSpecifiedRangeEnum> initiatorSpecifyRange = getInitiatorSpecifyRange(flowElement);
|
||||
Optional<Boolean> initiatorSpecifiedFilter = getInitiatorSpecifiedFilter(flowElement);
|
||||
Optional<List<String>> excludeIdentityTypes = getExcludeIdentityTypes(flowElement);
|
||||
|
||||
@ -502,7 +502,7 @@ public final class BpmnMetaParserHelper {
|
||||
|
||||
public static Optional<ApproverSpecifyRangeEnum> getApproverSpecifyRange(UserTask userTask) {
|
||||
Optional<ApproverSpecifyEnum> approverSpecify = getApproverSpecify(userTask);
|
||||
if (approverSpecify.isPresent() && Objects.equals(approverSpecify.get(), ApproverSpecifyEnum.position_v2)) {
|
||||
if (approverSpecify.isPresent()) {
|
||||
return defaultValid(userTask, CONFIG_APPROVER_SPECIFY).map(element -> ApproverSpecifyRangeEnum.valueOf(element.getChildElements()
|
||||
.getOrDefault(CONFIG_APPROVE_SPECIFY_RANGE, Collections.emptyList())
|
||||
.get(0).getAttributeValue(null, ELEMENT_ATTRIBUTE_VALUE)));
|
||||
@ -519,7 +519,7 @@ public final class BpmnMetaParserHelper {
|
||||
|
||||
public static Optional<SignApproverOrgLimitEnum> getApproverSpecifyRangeOrgLimit(UserTask userTask) {
|
||||
Optional<ApproverSpecifyEnum> approverSpecify = getApproverSpecify(userTask);
|
||||
if (approverSpecify.isPresent() && Objects.equals(approverSpecify.get(), ApproverSpecifyEnum.position_v2)) {
|
||||
if (approverSpecify.isPresent()) {
|
||||
return defaultValid(userTask, CONFIG_APPROVER_SPECIFY).flatMap(element -> element.getChildElements()
|
||||
.getOrDefault(CONFIG_APPROVE_SPECIFY_RANGE_ORG_LIMIT, Collections.emptyList())
|
||||
.stream()
|
||||
@ -538,7 +538,7 @@ public final class BpmnMetaParserHelper {
|
||||
|
||||
public static Optional<CooperateShipTypeEnum> getCooperateShipType(UserTask userTask) {
|
||||
Optional<ApproverSpecifyEnum> approverSpecify = getApproverSpecify(userTask);
|
||||
if (approverSpecify.isPresent() && Objects.equals(approverSpecify.get(), ApproverSpecifyEnum.position_v2)) {
|
||||
if (approverSpecify.isPresent()) {
|
||||
return defaultValid(userTask, CONFIG_APPROVER_SPECIFY).flatMap(element -> element.getChildElements()
|
||||
.getOrDefault(CONFIG_APPROVE_SPECIFY_COOPERATE_TYPE, Collections.emptyList())
|
||||
.stream()
|
||||
@ -557,7 +557,7 @@ public final class BpmnMetaParserHelper {
|
||||
|
||||
public static Optional<ApproverSpecifyRangeUnitEnum> getApproverSpecifyRangeUnit(UserTask userTask) {
|
||||
Optional<ApproverSpecifyEnum> approverSpecify = getApproverSpecify(userTask);
|
||||
if (approverSpecify.isPresent() && Objects.equals(approverSpecify.get(), ApproverSpecifyEnum.position_v2)) {
|
||||
if (approverSpecify.isPresent()) {
|
||||
return defaultValid(userTask, CONFIG_APPROVER_SPECIFY).flatMap(element -> element.getChildElements()
|
||||
.getOrDefault(CONFIG_APPROVE_SPECIFY_RANGE_UNIT, Collections.emptyList())
|
||||
.stream()
|
||||
|
||||
@ -16,8 +16,6 @@ import java.util.List;
|
||||
import java.util.Objects;
|
||||
|
||||
import static cn.axzo.workflow.common.code.ConvertorRespCode.CONVERTOR_COMMON_ERROR;
|
||||
import static cn.axzo.workflow.common.constant.BpmnConstants.CONFIG_APPROVAL_METHOD;
|
||||
import static cn.axzo.workflow.common.constant.BpmnConstants.CONFIG_APPROVER_SCOPE;
|
||||
import static cn.axzo.workflow.common.constant.BpmnConstants.CONFIG_APPROVER_SPECIFY;
|
||||
import static cn.axzo.workflow.common.constant.BpmnConstants.CONFIG_APPROVE_SPECIFY_COOPERATE_TYPE;
|
||||
import static cn.axzo.workflow.common.constant.BpmnConstants.CONFIG_APPROVE_SPECIFY_RANGE;
|
||||
@ -236,15 +234,15 @@ public class ServiceTaskJsonConverter extends AbstractBpmnJsonConverter<ServiceT
|
||||
case within_the_project_construction_units:
|
||||
throw new WorkflowEngineException(CONVERTOR_COMMON_ERROR, "身份不支持“项目内参建单位的企业身份”选项");
|
||||
case specified_org:
|
||||
checkCascadeConfig(property, "身份“审批单指定的末级组织”");
|
||||
checkCascadeConfig(property, "身份“审批单指定的末级组织”", false);
|
||||
addCascadeConfig(property, approverSpecifyElement, false);
|
||||
break;
|
||||
case initiator:
|
||||
checkCascadeConfig(property, "身份“审批单发起人”");
|
||||
checkCascadeConfig(property, "身份“审批单发起人”", false);
|
||||
addCascadeConfig(property, approverSpecifyElement, false);
|
||||
break;
|
||||
case pre_node_approver:
|
||||
checkCascadeConfig(property, "身份“上节点审批人”");
|
||||
checkCascadeConfig(property, "身份“上节点审批人”", false);
|
||||
addCascadeConfig(property, approverSpecifyElement, false);
|
||||
break;
|
||||
default:
|
||||
@ -413,10 +411,14 @@ public class ServiceTaskJsonConverter extends AbstractBpmnJsonConverter<ServiceT
|
||||
}
|
||||
|
||||
public static void checkCascadeConfig(BpmnJsonNodeProperty property, String tips) {
|
||||
checkCascadeConfig(property, tips, true);
|
||||
}
|
||||
|
||||
public static void checkCascadeConfig(BpmnJsonNodeProperty property, String tips, boolean containsRangeUnit) {
|
||||
if (Objects.isNull(property.getApproverSpecifyRangeOrgLimit())) {
|
||||
throw new WorkflowEngineException(CONVERTOR_COMMON_ERROR, tips + "缺少级联组织配置");
|
||||
}
|
||||
if (Objects.isNull(property.getApproverSpecifyRangeUnit())) {
|
||||
if (Objects.isNull(property.getApproverSpecifyRangeUnit()) && containsRangeUnit) {
|
||||
throw new WorkflowEngineException(CONVERTOR_COMMON_ERROR, tips + "缺少级联配置");
|
||||
}
|
||||
}
|
||||
|
||||
@ -29,7 +29,7 @@ import java.util.Optional;
|
||||
import java.util.Set;
|
||||
import java.util.stream.Collectors;
|
||||
|
||||
import static cn.axzo.workflow.common.code.FlowableEngineRespCode.ENGINE_ROLE_V2_CONFIG_INVALID;
|
||||
import static cn.axzo.workflow.common.code.FlowableEngineRespCode.ENGINE_IDENTITY_V2_CONFIG_INVALID;
|
||||
import static cn.axzo.workflow.common.code.FlowableEngineRespCode.ENGINE_USER_TASK_TYPE_NOT_SUPPORT;
|
||||
import static cn.axzo.workflow.common.constant.BpmnConstants.BIZ_ORG_RELATION;
|
||||
import static cn.axzo.workflow.common.constant.BpmnConstants.CLOSE_PROCESS_ASSIGNER;
|
||||
@ -63,7 +63,7 @@ public class BasedIdentityV2TaskAssigneeSelector extends AbstractBpmnTaskAssigne
|
||||
public List<BpmnTaskDelegateAssigner> select(FlowElement flowElement, DelegateExecution execution, Boolean throwException) {
|
||||
Optional<ApproverSpecifyRangeEnum> optRange = getApproverSpecifyRange(flowElement);
|
||||
if (!optRange.isPresent()) {
|
||||
throw new WorkflowEngineException(ENGINE_ROLE_V2_CONFIG_INVALID, "级联配置", flowElement.getId());
|
||||
throw new WorkflowEngineException(ENGINE_IDENTITY_V2_CONFIG_INVALID, "级联配置", flowElement.getId());
|
||||
}
|
||||
CooperationOrgDTO orgDTO = (CooperationOrgDTO) execution.getVariables().get(BIZ_ORG_RELATION);
|
||||
|
||||
|
||||
File diff suppressed because one or more lines are too long
File diff suppressed because it is too large
Load Diff
Loading…
Reference in New Issue
Block a user