feat(REQ-5965) - 新增条件字段权限控制属性

This commit is contained in:
wangli 2025-10-28 14:36:16 +08:00
parent 58ad7dfe8b
commit 5c47507f83
2 changed files with 104 additions and 0 deletions

View File

@ -10,6 +10,7 @@ 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.ConditionPermissionMetaInfo;
import cn.axzo.workflow.common.model.request.form.FormPermissionMetaInfo;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
@ -201,6 +202,12 @@ public class BpmnJsonNodeProperty {
@ApiModelProperty(value = "表单字段权限控制")
private List<FormPermissionMetaInfo> fieldPermission;
/**
* 条件字段权限配置
*/
@ApiModelProperty(value = "条件字段权限控制")
private List<ConditionPermissionMetaInfo> conditionPermission;
/**
* 区域过滤开关
*/

View File

@ -0,0 +1,97 @@
package cn.axzo.workflow.common.model.request.form;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
import java.io.Serializable;
/**
* 表单字段权限信息
*
* @author wangli
* @since 2024-11-07 11:09
*/
@Data
@AllArgsConstructor
@NoArgsConstructor
@Builder
public class ConditionPermissionMetaInfo implements Serializable {
private static final long serialVersionUID = 1L;
/**
* 条件标识
*/
private String conditionCode;
/**
* 条件名称
*/
private String conditionName;
/**
* 单选框
* 条件类型(text/number/checkbox/radio)
*/
private String conditionType;
/**
* 可编辑必填
*/
@Builder.Default
private Boolean required = false;
/**
* 可编辑非必填
*/
@Builder.Default
private Boolean editable = false;
/**
* 只读
*/
@Builder.Default
private Boolean readonly = true;
/**
* 隐藏
*/
@Builder.Default
private Boolean hidden = false;
private String value;
// 将对象的属性转换为对应的整数表示
public int toBinary() {
int binaryValue = 0;
binaryValue |= (required ? 1 : 0) << 3;
binaryValue |= (editable ? 1 : 0) << 2;
binaryValue |= (readonly ? 1 : 0) << 1;
binaryValue |= (hidden ? 1 : 0);
return binaryValue;
}
// 从整数表示还原出对象
public static ConditionPermissionMetaInfo fromBinary(String fieldId, String fieldName, int binaryValue) {
boolean required = ((binaryValue >> 3) & 1) == 1;
boolean editable = ((binaryValue >> 2) & 1) == 1;
boolean readonly = ((binaryValue >> 1) & 1) == 1;
boolean hidden = (binaryValue & 1) == 1;
return new ConditionPermissionMetaInfo(fieldId, fieldName, required, editable, readonly, hidden, null);
}
public ConditionPermissionMetaInfo toReadonly() {
if (required || editable || readonly) {
setRequired(false);
setEditable(false);
setReadonly(true);
setHidden(false);
}
return this;
}
public String toBinaryString() {
return String.format("%04d", Integer.parseInt(Integer.toBinaryString(toBinary()), 10));
}
}