feat(REQ-7125) - 调整用于提级审批的枚举与配置
This commit is contained in:
parent
008304c45d
commit
13119ef042
@ -20,8 +20,9 @@ public enum SignApproverOrgLimitEnum {
|
||||
LV_3("LV_3", "上3级组织", 3),
|
||||
LV_4("LV_4", "上4级组织", 4),
|
||||
LV_5("LV_5", "上5级组织", 5),
|
||||
LV_ALL("LV_ALL", "所有组织", -1),
|
||||
LV_ALL("LV_ALL", "所有组织(整个项目)", -1),
|
||||
LV_TOP("LV_TOP", "顶层组织", Integer.MAX_VALUE),
|
||||
LV_ENT_ALL("LV_ENT_ALL", "所有组织(整个集团)", -1),
|
||||
@JsonEnumDefaultValue
|
||||
UNKNOWN("UNKNOWN", "未知层级", null);
|
||||
|
||||
@ -49,4 +50,21 @@ public enum SignApproverOrgLimitEnum {
|
||||
.findFirst()
|
||||
.orElse(UNKNOWN);
|
||||
}
|
||||
|
||||
public static SignApproverOrgLimitEnum convertLv12345ToLvAll(String value) {
|
||||
SignApproverOrgLimitEnum enumType = fromValue(value);
|
||||
switch (enumType) {
|
||||
case LV_0:
|
||||
case LV_1:
|
||||
case LV_2:
|
||||
case LV_3:
|
||||
case LV_4:
|
||||
case LV_5:
|
||||
enumType = SignApproverOrgLimitEnum.LV_ALL;
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
}
|
||||
return enumType;
|
||||
}
|
||||
}
|
||||
|
||||
@ -769,7 +769,7 @@ public final class BpmnMetaParserHelper {
|
||||
Boolean enabled = Boolean.valueOf(element.getAttributeValue(null, ELEMENT_ATTRIBUTE_CHECKED));
|
||||
conf.setEnabled(enabled);
|
||||
if (Objects.equals(Boolean.TRUE, enabled)) {
|
||||
conf.setOrgLimit(SignApproverOrgLimitEnum.valueOfType(element.getChildElements().get(TEMPLATE_UPGRADE_APPROVAL_LIMIT_CONF).get(0).getAttributeValue(null, ELEMENT_ATTRIBUTE_ORG_LIMIT)));
|
||||
conf.setOrgLimit(SignApproverOrgLimitEnum.convertLv12345ToLvAll(element.getChildElements().get(TEMPLATE_UPGRADE_APPROVAL_LIMIT_CONF).get(0).getAttributeValue(null, ELEMENT_ATTRIBUTE_ORG_LIMIT)));
|
||||
conf.setApproverSpecify(ApproverSpecifyEnum.valueOf(element.getChildElements().get(TEMPLATE_UPGRADE_APPROVAL_LIMIT_CONF).get(0).getAttributeValue(null, ELEMENT_ATTRIBUTE_APPROVER_SPECIFY)));
|
||||
conf.setSpecifyValue(element.getChildElements().get(TEMPLATE_UPGRADE_APPROVAL_SPECIFY_VALUE).get(0).getElementText());
|
||||
}
|
||||
|
||||
@ -6,7 +6,7 @@ import org.springframework.cloud.context.config.annotation.RefreshScope;
|
||||
import org.springframework.stereotype.Component;
|
||||
|
||||
/**
|
||||
* TODO
|
||||
* OMS 工作台的配置信息
|
||||
*
|
||||
* @author wangli
|
||||
* @since 2026-03-04 10:18
|
||||
|
||||
@ -5,6 +5,7 @@ import cn.axzo.workflow.common.enums.ApprovalMethodEnum;
|
||||
import cn.axzo.workflow.common.enums.ApproverSpecifyEnum;
|
||||
import cn.axzo.workflow.common.enums.BpmnFlowNodeMode;
|
||||
import cn.axzo.workflow.common.enums.BpmnFlowNodeType;
|
||||
import cn.axzo.workflow.common.enums.SignApproverOrgLimitEnum;
|
||||
import cn.axzo.workflow.common.exception.WorkflowEngineException;
|
||||
import cn.axzo.workflow.common.model.request.bpmn.BpmnButtonConf;
|
||||
import cn.axzo.workflow.common.model.request.bpmn.BpmnJsonNode;
|
||||
@ -634,7 +635,7 @@ public class UserTaskJsonConverter extends AbstractBpmnJsonConverter<UserTask> {
|
||||
|
||||
ExtensionAttribute upgradeApprovalLimitOrgAttribute = new ExtensionAttribute();
|
||||
upgradeApprovalLimitOrgAttribute.setName(ELEMENT_ATTRIBUTE_ORG_LIMIT);
|
||||
upgradeApprovalLimitOrgAttribute.setValue(property.getUpgradeApprovalConf().getOrgLimit().getType());
|
||||
upgradeApprovalLimitOrgAttribute.setValue(SignApproverOrgLimitEnum.convertLv12345ToLvAll(property.getUpgradeApprovalConf().getOrgLimit().getType()).getType());
|
||||
upgradeApprovalLimitElement.addAttribute(upgradeApprovalLimitOrgAttribute);
|
||||
ExtensionAttribute upgradeApprovalLimitSpecifyTypeAttribute = new ExtensionAttribute();
|
||||
upgradeApprovalLimitSpecifyTypeAttribute.setName(ELEMENT_ATTRIBUTE_APPROVER_SPECIFY);
|
||||
|
||||
@ -2,7 +2,6 @@ package cn.axzo.workflow.core.engine.cmd;
|
||||
|
||||
import cn.axzo.workflow.common.exception.WorkflowEngineException;
|
||||
import cn.axzo.workflow.common.model.request.bpmn.task.BpmnTaskRemindDTO;
|
||||
import cn.axzo.workflow.core.engine.job.AsyncApproveTaskJobHandler;
|
||||
import cn.axzo.workflow.core.engine.job.AsyncRemindTaskJobHandler;
|
||||
import cn.hutool.json.JSONUtil;
|
||||
import com.alibaba.fastjson.JSON;
|
||||
@ -31,7 +30,7 @@ import static cn.axzo.workflow.common.code.BpmnTaskRespCode.REMIND_TASK_TOO_MANY
|
||||
import static cn.axzo.workflow.common.code.BpmnTaskRespCode.TASK_REMIND_ERROR_NOT_EXISTS;
|
||||
|
||||
/**
|
||||
* TODO
|
||||
* 自定义(异步)催办任务的命令器实现
|
||||
*
|
||||
* @author wangli
|
||||
* @since 2025-06-13 14:01
|
||||
|
||||
@ -322,8 +322,8 @@ public abstract class AbstractBpmnTaskAssigneeSelector implements BpmnTaskAssign
|
||||
.ouId(String.valueOf(i.getOuId()))
|
||||
.avatar(i.getAvatarUrl())
|
||||
.nodeId(i.getNodeId())
|
||||
// TODO 将接口返回的管理员数据映射到 isTransferToAdminSpecify
|
||||
.isTransferToAdminSpecify(true)
|
||||
// 将接口返回的管理员数据映射到 isTransferToAdminSpecify
|
||||
.isTransferToAdminSpecify(i.getMaybeTransferee())
|
||||
.build())
|
||||
.collect(Collectors.toList());
|
||||
}
|
||||
|
||||
@ -336,7 +336,6 @@ public class DangerOperationController {
|
||||
session.setAttribute("isAuthenticated", true);
|
||||
session.setAttribute("dingUser", userJson);
|
||||
|
||||
// TODO: 主人请注意!为了适配复杂的反向代理环境,小码酱在这里改回了页面跳转模式。
|
||||
// 我们在 Model 中塞入一个信号量和相对地址,让前端根据浏览器当前感知的 host 来决定往哪跳。汪汪!
|
||||
model.addAttribute("userNick", nick);
|
||||
model.addAttribute("isAuthenticated", true);
|
||||
|
||||
@ -236,10 +236,11 @@ public class TaskEntityEventHandle implements EntityEventHandle<TaskEntity> {
|
||||
BpmnMetaParserHelper.getUpgradeApprovalConf(flowElement).ifPresent(conf -> {
|
||||
Boolean supportUpgradeApproval;
|
||||
if (Objects.equals(Boolean.TRUE, conf.getEnabled())) {
|
||||
if (Objects.equals(SignApproverOrgLimitEnum.LV_ALL, conf.getOrgLimit())) {
|
||||
if (Objects.equals(SignApproverOrgLimitEnum.LV_ALL, conf.getOrgLimit()) || Objects.equals(SignApproverOrgLimitEnum.LV_ENT_ALL, conf.getOrgLimit())) {
|
||||
supportUpgradeApproval = true;
|
||||
} else {
|
||||
ListCooperateShipAncestorReq build = ListCooperateShipAncestorReq.builder()
|
||||
// TODO 这里涉及到枚举的转换
|
||||
.upLevel(conf.getOrgLimit().getCode())
|
||||
.organizationNodeId(Long.parseLong(assignee.getNodeId()))
|
||||
.includeCurrentNode(false)
|
||||
|
||||
Loading…
Reference in New Issue
Block a user