package com.cabletech.business.wplan.patrolitem.model;
import org.apache.commons.lang.ArrayUtils;
import org.apache.commons.lang.StringUtils;
/**
* 巡检项EXCEL解析临时对象 非持久化
*
* @author wangjie
* @author 杨隽 2011-10-25 添加导入巡检项目的“值域范围”和“默认值”字段
* @author 杨隽 2011-11-02 添加导入巡检项目的“异常值”字段
*/
public class PatrolItemTemp {
private static final int MAX_PATROL_OBJ_NAME_LENGTH = 20;
private static final int MAX_PATROL_ITEM_NAME_LENGTH = 30;
private static final String VALUE_SCOPE_SEPR = ",";
private String itemName;// ITEM_NAME VARCHAR2(100) Y 项目名称
private String businessType;// BUSINESS_TYPE VARCHAR2(20) Y 专业类型
private String partenId;// PARTEN_ID VARCHAR2(12) Y 上级编号
private String regionId;// REMARK VARCHAR2(1000) Y 区域
private String itemRemark;// ITEM_REMARK VARCHAR2(1000) Y 备注
private String itemId;// ITEM_ID VARCHAR2(100) Y 巡检项目编号
private String subitemName;// SUBITEM_NAME VARCHAR2(20) Y 子项名称
private String inputType;// INPUT_TYPE VARCHAR2(12) Y 输入类型
private String cycle;// VARCHAR2(3) Y
// year:年,quarter:季,month:月份,week:周,custom:按需
private String qualityStandard;// QUALITY_STANDARD VARCHAR2(2000) Y 维护指标说明
private String remark;// REMARK VARCHAR2(1000) Y 备注
private String state;// STATE VARCHAR2(3) Y 标记当前在用状态,1为在用,2为删除。
private String cycleText;// ITEM_ID VARCHAR2(100) Y 巡检项目编号
private String inputTypeText;// INPUT_TYPE VARCHAR2(12) Y 输入类型
private String valueScope;// VALUE_SCOPE VARCHAR2(1024) 值域范围
private String defaultValue;// DEFAULT_VALUE VARCHAR2(20) 默认值
private String exceptionValue;// EXCEPTION_VALUE VARCHAR2(20) 异常值
private boolean flag = true;//
private String errorMsg = "";//
public String getItemName() {
return itemName;
}
/**
* 检查子项名称并给子项名称赋值
*
* @param itemName
* String
*/
public void setItemName(String itemName) {
if (StringUtils.isBlank(itemName)) {
flag = false;
errorMsg += "维护对象不能为空!";
}
if (flag && itemName.length() > MAX_PATROL_OBJ_NAME_LENGTH) {
flag = false;
errorMsg += "维护对象超过20个汉字!";
}
this.itemName = itemName;
}
public String getBusinessType() {
return businessType;
}
public void setBusinessType(String businessType) {
this.businessType = businessType;
}
public String getPartenId() {
return partenId;
}
public void setPartenId(String partenId) {
this.partenId = partenId;
}
public String getItemRemark() {
return itemRemark;
}
public void setItemRemark(String itemRemark) {
this.itemRemark = itemRemark;
}
public String getItemId() {
return itemId;
}
public void setItemId(String itemId) {
this.itemId = itemId;
}
public String getSubitemName() {
return subitemName;
}
/**
* 检查维护检测项目名称并给维护检测项目名称赋值
*
* @param subitemName
* String
*/
public void setSubitemName(String subitemName) {
if (StringUtils.isBlank(subitemName)) {
flag = false;
errorMsg += "维护检测项目不能为空!";
}
if (flag && subitemName.length() > MAX_PATROL_ITEM_NAME_LENGTH) {
flag = false;
errorMsg += "维护检测项目名称超过30个汉字!";
}
this.subitemName = subitemName;
}
public String getInputType() {
return inputType;
}
public void setInputType(String inputType) {
this.inputType = inputType;
}
public String getRemark() {
return remark;
}
public void setRemark(String remark) {
this.remark = remark;
}
public boolean isFlag() {
return flag;
}
public void setFlag(boolean flag) {
this.flag = flag;
}
public String getErrorMsg() {
return errorMsg;
}
public void setErrorMsg(String errorMsg) {
this.errorMsg = errorMsg;
}
public String getRegionId() {
return regionId;
}
public void setRegionId(String regionId) {
this.regionId = regionId;
}
public String getCycle() {
return cycle;
}
public void setCycle(String cycle) {
this.cycle = cycle;
}
public String getQualityStandard() {
return qualityStandard;
}
public void setQualityStandard(String qualityStandard) {
this.qualityStandard = qualityStandard;
}
public String getState() {
return state;
}
public void setState(String state) {
this.state = state;
}
public String getCycleText() {
return cycleText;
}
/**
* 检查周期并给周期赋值
*
* @param cycleText
* String
*/
public void setCycleText(String cycleText) {
if (StringUtils.isBlank(cycleText)) {
flag = false;
errorMsg += "周期不能为空!";
}
this.cycleText = cycleText;
setCycle(getConstantValue(cycleText));
}
public String getInputTypeText() {
return inputTypeText;
}
/**
* 检查输入类型并给输入类型赋值
*
* @param inputTypeText
* String
*/
public void setInputTypeText(String inputTypeText) {
String value = "";
if (StringUtils.isBlank(inputTypeText)) {
flag = false;
errorMsg += "输入类型不能为空!";
} else {
value = getConstantValue(inputTypeText);
if (StringUtils.isBlank(value)) {
flag = false;
errorMsg += "输入类型不合法!";
}
}
setInputType(value);
this.inputTypeText = inputTypeText;
}
public String getValueScope() {
return valueScope;
}
/**
* 检查值域范围并给值域范围赋值
*
* @param valueScope
* String
*/
public void setValueScope(String valueScope) {
if ("单选".equals(getInputTypeText())) {
if (StringUtils.isBlank(valueScope)) {
flag = false;
errorMsg += "值域范围不能为空!";
}
if (flag && valueScope.indexOf(VALUE_SCOPE_SEPR) == -1) {
flag = false;
errorMsg += "值域范围至少需要两项数据(数据之间以“,”分割)!";
}
}
this.valueScope = valueScope;
}
public String getDefaultValue() {
return defaultValue;
}
/**
* 检查默认值范围并给默认值赋值
*
* @param defaultValue
* String
*/
public void setDefaultValue(String defaultValue) {
if ("单选".equals(getInputTypeText())) {
if (flag && !valueInScope(defaultValue, getValueScope())) {
flag = false;
errorMsg += "默认值不在值域范围内!";
}
}
this.defaultValue = defaultValue;
}
public String getExceptionValue() {
return exceptionValue;
}
/**
* 检查异常状态范围并给异常状态赋值
*
* @param exceptionValue
* String
*/
public void setExceptionValue(String exceptionValue) {
if ("单选".equals(getInputTypeText())) {
if (flag && !valueInScope(exceptionValue, getValueScope())) {
flag = false;
errorMsg += "异常状态不在值域范围内!";
}
}
this.exceptionValue = exceptionValue;
}
/**
* 判断值是否在值域范围内
*
* @param value
* String 值
* @param valueScope
* String 值域范围
* @return boolean 值是否在值域范围内
*/
public static boolean valueInScope(String value, String valueScope) {
// TODO Auto-generated method stub
String[] values = valueScope.split(VALUE_SCOPE_SEPR);
if (StringUtils.isBlank(value)) {
return true;
}
return ArrayUtils.contains(values, value);
}
/**
* 获取输入文本对应的常量值
*
* @param name
* String 输入文本
* @return String 输入文本对应的常量值
*/
public static String getConstantValue(String name) {
String v = "";
if ("年".equals(name)) {
v = "year";
}
if ("季".equals(name)) {
v = "quarter";
}
if ("月".equals(name)) {
v = "month";
}
if ("周".equals(name)) {
v = "week";
}
if ("数值".equals(name)) {
v = "NUM";
}
if ("文本".equals(name)) {
v = "TEXT";
}
if ("单选".equals(name)) {
v = "CHOOSE";
}
if ("多选".equals(name)) {
v = "GROUP";
}
if ("蓄电池测试".equals(name)) {
v = "BATTERY";
}
if ("天线测量".equals(name)) {
v = "STATION_ANTENNA";
}
if ("天线信号测试".equals(name)) {
v = "INDOOR_COVERAGE";
}
if ("WLAN天线信号测试".equals(name)) {
v = "WLAN";
}
return v;
}
}