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