package com.norteksoft.acs.entity.authority; import java.io.Serializable; import javax.persistence.Entity; import javax.persistence.EnumType; import javax.persistence.Enumerated; import javax.persistence.JoinColumn; import javax.persistence.ManyToOne; import javax.persistence.Table; import javax.persistence.Transient; import org.apache.commons.lang.StringUtils; import com.norteksoft.acs.base.enumeration.ConditionValueType; import com.norteksoft.acs.base.enumeration.FieldOperator; import com.norteksoft.acs.base.enumeration.LeftBracket; import com.norteksoft.acs.base.enumeration.LogicOperator; import com.norteksoft.acs.base.enumeration.RightBracket; import com.norteksoft.acs.service.authority.PermissionItemManager; import com.norteksoft.mms.form.enumeration.DataType; import com.norteksoft.product.orm.IdEntity; import com.norteksoft.product.util.ContextUtils; /** * 数据规则条件 * @author Administrator * */ @Entity @Table(name="ACS_CONDITION") public class Condition extends IdEntity implements Serializable{ private static final long serialVersionUID = 1L; private String fieldName;//字段名 @Enumerated(EnumType.STRING) private FieldOperator operator;//比较符号 @Transient private String conditionValue;//条件值 @Transient private String conditionName;//条件值对应的名称 @Enumerated(EnumType.STRING) private LogicOperator lgicOperator;//条件连接类型 private String field;//数据表字段;当是标准字段时,该值格式~~creatorId,~~departmentId,~~roleId,~~workgroupId @Enumerated(EnumType.STRING) private DataType dataType;//字段数据类型 private String enumPath;//当dataType值为枚举类型时,该值有用 private String keyValue;//保存枚举类型,选项组和key:Value形式的值设置 @ManyToOne @JoinColumn(name="FK_DATA_RULE_ID") private DataRule dataRule; // private ConditionType relativeType;//条件为相对条件时,此字段有值,表示相对值 private LeftBracket leftBracket;//左括号 private RightBracket rightBracket;//右括号 private Integer displayIndex;//显示顺序 public String getFieldName() { return fieldName; } public void setFieldName(String fieldName) { this.fieldName = fieldName; } public FieldOperator getOperator() { return operator; } public void setOperator(FieldOperator operator) { this.operator = operator; } public String getConditionValue() { if(getId()==null)return null; if(StringUtils.isNotEmpty(conditionValue))return conditionValue; PermissionItemManager permissionItemManager = (PermissionItemManager)ContextUtils.getBean("permissionItemManager"); return permissionItemManager.getPermissionItemConditionValueByItem(getId(),ConditionValueType.DATA_RULE).toString().replace("[", "").replace("]", ""); } public void setConditionValue(String conditionValue) { this.conditionValue = conditionValue; } public String getConditionName() { if(getId()==null)return null; if(StringUtils.isNotEmpty(conditionName))return conditionName; PermissionItemManager permissionItemManager = (PermissionItemManager)ContextUtils.getBean("permissionItemManager"); return permissionItemManager.getPermissionItemConditionNameByItem(getId(),ConditionValueType.DATA_RULE).toString().replace("[", "").replace("]", ""); } public void setConditionName(String conditionName) { this.conditionName = conditionName; } public LogicOperator getLgicOperator() { return lgicOperator; } public void setLgicOperator(LogicOperator lgicOperator) { this.lgicOperator = lgicOperator; } public DataRule getDataRule() { return dataRule; } public void setDataRule(DataRule dataRule) { this.dataRule = dataRule; } public DataType getDataType() { return dataType; } public void setDataType(DataType dataType) { this.dataType = dataType; } public String getField() { return field; } public void setField(String field) { this.field = field; } public String getEnumPath() { return enumPath; } public void setEnumPath(String enumPath) { this.enumPath = enumPath; } public LeftBracket getLeftBracket() { return leftBracket; } public void setLeftBracket(LeftBracket leftBracket) { this.leftBracket = leftBracket; } public RightBracket getRightBracket() { return rightBracket; } public void setRightBracket(RightBracket rightBracket) { this.rightBracket = rightBracket; } public Integer getDisplayIndex() { return displayIndex; } public void setDisplayIndex(Integer displayIndex) { this.displayIndex = displayIndex; } public String getKeyValue() { return keyValue; } public void setKeyValue(String keyValue) { this.keyValue = keyValue; } @Override public boolean equals(Object obj) { if((Condition)obj!=null&&((Condition)obj).getId()!=null&&((Condition)obj).getId().equals(this.getId())){ return true; } return false; } }