diff --git a/workflow-engine-common/src/main/java/cn/axzo/workflow/common/enums/ApproverSpecifyEnum.java b/workflow-engine-common/src/main/java/cn/axzo/workflow/common/enums/ApproverSpecifyEnum.java index 8b18cd082..286b3f7c3 100644 --- a/workflow-engine-common/src/main/java/cn/axzo/workflow/common/enums/ApproverSpecifyEnum.java +++ b/workflow-engine-common/src/main/java/cn/axzo/workflow/common/enums/ApproverSpecifyEnum.java @@ -8,23 +8,35 @@ package cn.axzo.workflow.common.enums; */ public enum ApproverSpecifyEnum { - position("position", "指定岗位"), - role("role", "指定角色"), - identity("identity", "指定身份"), - initiatorLeader("initiatorLeader", "发起人主管"), - initiatorLeaderRecursion("initiatorLeaderRecursion", "发起人多级主管"), - fixedPerson("fixedPerson", "固定人员"), - preNodeSpecified("preNodeSpecified", "上级节点指定"), - initiatorSpecified("initiatorSpecified", "发起时指定"), + position("position", "指定岗位", 1), + role("role", "指定角色", 1), + identity("identity", "指定身份", 1), + initiatorLeader("initiatorLeader", "发起人主管", 1), + initiatorLeaderRecursion("initiatorLeaderRecursion", "发起人多级主管", 1), + fixedPerson("fixedPerson", "固定人员", 1), + preNodeSpecified("preNodeSpecified", "上级节点指定", 1), + initiatorSpecified("initiatorSpecified", "发起时指定", 1), // 该枚举,目前主要为了区别签署业务与审批业务的不同配法,选择该项时,意味着该节点是由二方后端自由消费 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 desc; + private Integer version; - ApproverSpecifyEnum(String type, String desc) { + ApproverSpecifyEnum(String type, String desc, Integer version) { this.type = type; this.desc = desc; + this.version = version; } public String getType() { @@ -42,4 +54,12 @@ public enum ApproverSpecifyEnum { public void setDesc(String desc) { this.desc = desc; } + + public Integer getVersion() { + return version; + } + + public void setVersion(Integer version) { + this.version = version; + } } diff --git a/workflow-engine-common/src/main/java/cn/axzo/workflow/common/enums/ApproverSpecifyRangeEnum.java b/workflow-engine-common/src/main/java/cn/axzo/workflow/common/enums/ApproverSpecifyRangeEnum.java new file mode 100644 index 000000000..30083143e --- /dev/null +++ b/workflow-engine-common/src/main/java/cn/axzo/workflow/common/enums/ApproverSpecifyRangeEnum.java @@ -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; + } +} diff --git a/workflow-engine-common/src/main/java/cn/axzo/workflow/common/enums/ApproverSpecifyRangeUnitEnum.java b/workflow-engine-common/src/main/java/cn/axzo/workflow/common/enums/ApproverSpecifyRangeUnitEnum.java new file mode 100644 index 000000000..397e75c42 --- /dev/null +++ b/workflow-engine-common/src/main/java/cn/axzo/workflow/common/enums/ApproverSpecifyRangeUnitEnum.java @@ -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; + } + +} diff --git a/workflow-engine-common/src/main/java/cn/axzo/workflow/common/enums/CooperateShipTypeEnum.java b/workflow-engine-common/src/main/java/cn/axzo/workflow/common/enums/CooperateShipTypeEnum.java new file mode 100644 index 000000000..454e12dde --- /dev/null +++ b/workflow-engine-common/src/main/java/cn/axzo/workflow/common/enums/CooperateShipTypeEnum.java @@ -0,0 +1,42 @@ +package cn.axzo.workflow.common.enums; + +/** + * 参建单位类型枚举 + *

+ * 拷贝自 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; + } +} diff --git a/workflow-engine-common/src/main/java/cn/axzo/workflow/common/enums/InitiatorSpecifiedRangeEnum.java b/workflow-engine-common/src/main/java/cn/axzo/workflow/common/enums/InitiatorSpecifiedRangeEnum.java new file mode 100644 index 000000000..d859ea83b --- /dev/null +++ b/workflow-engine-common/src/main/java/cn/axzo/workflow/common/enums/InitiatorSpecifiedRangeEnum.java @@ -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; + } +} diff --git a/workflow-engine-common/src/main/java/cn/axzo/workflow/common/model/request/bpmn/BpmnJsonNodeProperty.java b/workflow-engine-common/src/main/java/cn/axzo/workflow/common/model/request/bpmn/BpmnJsonNodeProperty.java index 28c72e325..5f13a88ce 100644 --- a/workflow-engine-common/src/main/java/cn/axzo/workflow/common/model/request/bpmn/BpmnJsonNodeProperty.java +++ b/workflow-engine-common/src/main/java/cn/axzo/workflow/common/model/request/bpmn/BpmnJsonNodeProperty.java @@ -4,7 +4,12 @@ import cn.axzo.workflow.common.enums.ApprovalMethodEnum; import cn.axzo.workflow.common.enums.ApproverEmptyHandleTypeEnum; import cn.axzo.workflow.common.enums.ApproverScopeEnum; 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.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 io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModelProperty; @@ -52,6 +57,43 @@ public class BpmnJsonNodeProperty { @NotBlank(message = "审批人指定不能为空") 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 excludeIdentityTypes; + /** + * 需要排查的参建单位类型 + */ + @ApiModelProperty(value = "需要排除的参建单位类型") + private List excludeCooperateShipTypes; + //*************** approverSpecify 为 initiatorSpecified_v2 发起人自选时的一些扩展配置 End **************** + /** * 签署确认节点的审批人限定规则 */ @@ -159,4 +201,16 @@ public class BpmnJsonNodeProperty { @ApiModelProperty(value = "表单字段权限控制") private List fieldPermission; + /** + * 区域过滤开关 + */ + @ApiModelProperty(value = "区域过滤开关", notes = "true: 开启区域过滤, false: 关闭区域过滤") + private Boolean areaFilterEnable; + + /** + * 专业过滤开关 + */ + @ApiModelProperty(value = "专业过滤开关", notes = "true: 开启专业过滤, false: 关闭专业过滤") + private Boolean specialtyFilterEnable; + }