feat(REQ-4418) - 调整节点配置模型

This commit is contained in:
wangli 2025-08-13 15:34:44 +08:00
parent 916c47a3a6
commit 3da15cb8e4
6 changed files with 226 additions and 10 deletions

View File

@ -8,23 +8,35 @@ package cn.axzo.workflow.common.enums;
*/ */
public enum ApproverSpecifyEnum { public enum ApproverSpecifyEnum {
position("position", "指定岗位"), position("position", "指定岗位", 1),
role("role", "指定角色"), role("role", "指定角色", 1),
identity("identity", "指定身份"), identity("identity", "指定身份", 1),
initiatorLeader("initiatorLeader", "发起人主管"), initiatorLeader("initiatorLeader", "发起人主管", 1),
initiatorLeaderRecursion("initiatorLeaderRecursion", "发起人多级主管"), initiatorLeaderRecursion("initiatorLeaderRecursion", "发起人多级主管", 1),
fixedPerson("fixedPerson", "固定人员"), fixedPerson("fixedPerson", "固定人员", 1),
preNodeSpecified("preNodeSpecified", "上级节点指定"), preNodeSpecified("preNodeSpecified", "上级节点指定", 1),
initiatorSpecified("initiatorSpecified", "发起时指定"), initiatorSpecified("initiatorSpecified", "发起时指定", 1),
// 该枚举目前主要为了区别签署业务与审批业务的不同配法选择该项时意味着该节点是由二方后端自由消费 BpmnSignApproverLimit 配置 // 该枚举目前主要为了区别签署业务与审批业务的不同配法选择该项时意味着该节点是由二方后端自由消费 BpmnSignApproverLimit 配置
signerRelated("signerRelated", "签署人相关组织"), signerRelated("signerRelated", "签署人相关组织", 1),
// 新配置规则的审批人指定方式
position_v2("position_v2", "指定岗位", 2),
role_v2("role_v2", "指定角色", 2),
identity_v2("identity_v2", "指定身份", 2),
initiatorSpecified_v2("initiatorSpecified_v2", "发起人自选", 2),
initiator_v2("initiator_v2", "发起人自己", 2),
initiatorLeader_v2("initiatorLeader_v2", "发起人主管", 2),
fixedPerson_v2("fixedPerson_v2", "固定人员", 2),
; ;
private String type; private String type;
private String desc; private String desc;
private Integer version;
ApproverSpecifyEnum(String type, String desc) { ApproverSpecifyEnum(String type, String desc, Integer version) {
this.type = type; this.type = type;
this.desc = desc; this.desc = desc;
this.version = version;
} }
public String getType() { public String getType() {
@ -42,4 +54,12 @@ public enum ApproverSpecifyEnum {
public void setDesc(String desc) { public void setDesc(String desc) {
this.desc = desc; this.desc = desc;
} }
public Integer getVersion() {
return version;
}
public void setVersion(Integer version) {
this.version = version;
}
} }

View File

@ -0,0 +1,41 @@
package cn.axzo.workflow.common.enums;
/**
* 审批人指定的二次范围限定枚举
*
* @author wangli
* @since 2025-08-13 14:32
*/
public enum ApproverSpecifyRangeEnum {
positions_within_the_project("positions_within_the_project", "项目内岗位"),
positions_within_the_project_construction_units("positions_within_the_project_construction_units", "项目内参建单位的企业岗位"),
specified_org("specified_org", "审批单指定的末级组织"),
initiator("initiator", "审批单发起人"),
pre_node_approver("pre_node_approver", "上节点审批人"),
;
private String type;
private String desc;
ApproverSpecifyRangeEnum(String type, String desc) {
this.type = type;
this.desc = desc;
}
public String getType() {
return type;
}
public void setType(String type) {
this.type = type;
}
public String getDesc() {
return desc;
}
public void setDesc(String desc) {
this.desc = desc;
}
}

View File

@ -0,0 +1,29 @@
package cn.axzo.workflow.common.enums;
/**
* 审批人指定的范围单位枚举
*
* @author wangli
* @since 2025-08-13 15:05
*/
public enum ApproverSpecifyRangeUnitEnum {
in_project("in_project", "项目内"),
in_ent("in_ent", "企业内"),
;
private final String type;
private final String desc;
ApproverSpecifyRangeUnitEnum(String type, String desc) {
this.type = type;
this.desc = desc;
}
public String getType() {
return type;
}
public String getDesc() {
return desc;
}
}

View File

@ -0,0 +1,42 @@
package cn.axzo.workflow.common.enums;
/**
* 参建单位类型枚举
* <p>
* 拷贝自 cn.axzo.orgmanax.dto.cooperateship.enums.CooperateShipTypeEnum
*
* @author wangli
* @since 2025-08-13 14:51
*/
public enum CooperateShipTypeEnum {
PROJ_PRIMARY_CONTRACTING_UNIT(1, "施工总承包"),
PROJ_CONSTRUCTION_UNIT(2, "建设单位"),
PROJ_SUPERVISION_UNIT(3, "监理单位"),
PROJ_LABOR_SUBCONTRACTING(4, "劳务分包"),
PROJ_PROFESSIONAL_SUBCONTRACTING(5, "专业承包"),
OMS(6, "OMS"),
ENT_COMMON(7, "企业通用"),
ENT_TEAM(8, "企业内班组"),
PROJ_TEAM(9, "项目内班组"),
ENT_GROUP(10, "企业内小组"),
PROJ_GROUP(11, "项目内小组"),
SURVEY_UNIT(12, "地勘单位"),
DESIGN_UNIT(13, "设计单位"),
OTHER(30, "其他");
private final Integer code;
private final String desc;
CooperateShipTypeEnum(Integer code, String desc) {
this.code = code;
this.desc = desc;
}
public Integer getCode() {
return code;
}
public String getDesc() {
return desc;
}
}

View File

@ -0,0 +1,30 @@
package cn.axzo.workflow.common.enums;
/**
* TODO
*
* @author wangli
* @since 2025-08-13 15:13
*/
public enum InitiatorSpecifiedRangeEnum {
SelfAndChildrenInProject("SelfAndChildrenInProject", "项目内本组织及其下属组织所有成员"),
SelfInProject("SelfInProject", "项目内本组织所有成员"),
inProject("inProject", "项目内所有成员"),
inEnt("inEnt", "企业内所有成员"),
;
private final String type;
private final String desc;
InitiatorSpecifiedRangeEnum(String type, String desc) {
this.type = type;
this.desc = desc;
}
public String getType() {
return type;
}
public String getDesc() {
return desc;
}
}

View File

@ -4,7 +4,12 @@ import cn.axzo.workflow.common.enums.ApprovalMethodEnum;
import cn.axzo.workflow.common.enums.ApproverEmptyHandleTypeEnum; import cn.axzo.workflow.common.enums.ApproverEmptyHandleTypeEnum;
import cn.axzo.workflow.common.enums.ApproverScopeEnum; import cn.axzo.workflow.common.enums.ApproverScopeEnum;
import cn.axzo.workflow.common.enums.ApproverSpecifyEnum; import cn.axzo.workflow.common.enums.ApproverSpecifyEnum;
import cn.axzo.workflow.common.enums.ApproverSpecifyRangeEnum;
import cn.axzo.workflow.common.enums.ApproverSpecifyRangeUnitEnum;
import cn.axzo.workflow.common.enums.BpmnFlowNodeMode; import cn.axzo.workflow.common.enums.BpmnFlowNodeMode;
import cn.axzo.workflow.common.enums.CooperateShipTypeEnum;
import cn.axzo.workflow.common.enums.InitiatorSpecifiedRangeEnum;
import cn.axzo.workflow.common.enums.SignApproverOrgLimitEnum;
import cn.axzo.workflow.common.model.request.form.FormPermissionMetaInfo; import cn.axzo.workflow.common.model.request.form.FormPermissionMetaInfo;
import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty; import io.swagger.annotations.ApiModelProperty;
@ -52,6 +57,43 @@ public class BpmnJsonNodeProperty {
@NotBlank(message = "审批人指定不能为空") @NotBlank(message = "审批人指定不能为空")
private ApproverSpecifyEnum approverSpecify; private ApproverSpecifyEnum approverSpecify;
//*************** 针对新配置中的岗位角色身份的扩展配置 Start ****************
@ApiModelProperty(value = "任务节点:对选择的 approverSpecify 做的二次范围限定配置")
private ApproverSpecifyRangeEnum approverSpecifyRange;
/**
* cn.axzo.orgmanax.dto.cooperateship.enums.CooperateShipTypeEnum
*/
@ApiModelProperty(value = "任务节点: 当选择approverSpecifyRange的值为positions_within_the_project_construction_units做的二次范围限定配置的级联选择")
private CooperateShipTypeEnum cooperateShipType;
@ApiModelProperty(value = "任务节点: 当选择approverSpecifyRange的值为specified_org做的二次范围限定配置的级联选择的值")
private SignApproverOrgLimitEnum approverSpecifyRangeOrgLimit;
/**
* 该属性 approverSpecify = initiatorLeader_v2 也会被应用为限定单位内主管还是项目内主管
*/
@ApiModelProperty(value = "任务节点: 当选择approverSpecifyRange的值为specified_org做的二次范围限定配置的级联选择的值")
private ApproverSpecifyRangeUnitEnum approverSpecifyRangeUnit;
//*************** 针对新配置中的岗位角色身份的扩展配置 End ****************
//*************** approverSpecify initiatorSpecified_v2 发起人自选时的一些扩展配置 Start ****************
@ApiModelProperty(value = "任务节点: 当选择approverSpecify的值为 initiatorSpecified_v2做的范围选择的值")
private InitiatorSpecifiedRangeEnum initiatorSpecifyRange;
@ApiModelProperty(value = "是否开起发起人的筛选策略")
private Boolean InitiatorSpecifiedFilter;
/**
* 需要排除的身份类型
*/
@ApiModelProperty(value = "需要排除的身份类型")
private List<String> excludeIdentityTypes;
/**
* 需要排查的参建单位类型
*/
@ApiModelProperty(value = "需要排除的参建单位类型")
private List<String> excludeCooperateShipTypes;
//*************** approverSpecify initiatorSpecified_v2 发起人自选时的一些扩展配置 End ****************
/** /**
* 签署确认节点的审批人限定规则 * 签署确认节点的审批人限定规则
*/ */
@ -159,4 +201,16 @@ public class BpmnJsonNodeProperty {
@ApiModelProperty(value = "表单字段权限控制") @ApiModelProperty(value = "表单字段权限控制")
private List<FormPermissionMetaInfo> fieldPermission; private List<FormPermissionMetaInfo> fieldPermission;
/**
* 区域过滤开关
*/
@ApiModelProperty(value = "区域过滤开关", notes = "true: 开启区域过滤, false: 关闭区域过滤")
private Boolean areaFilterEnable;
/**
* 专业过滤开关
*/
@ApiModelProperty(value = "专业过滤开关", notes = "true: 开启专业过滤, false: 关闭专业过滤")
private Boolean specialtyFilterEnable;
} }