feat(REQ-5965) - 新增条件字段权限控制属性
This commit is contained in:
parent
58ad7dfe8b
commit
5c47507f83
@ -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;
|
||||
|
||||
/**
|
||||
* 区域过滤开关
|
||||
*/
|
||||
|
||||
@ -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));
|
||||
}
|
||||
}
|
||||
Loading…
Reference in New Issue
Block a user