package com.ld.igds.constant;
|
|
/**
|
* 设备状态枚举
|
*/
|
public enum DeviceStatus {
|
|
// 默认类
|
CLOSE("CLOSE", "关闭"), OPEN("OPEN", "打开"),
|
|
// 风机类设备状态
|
W_CLOSE("W_CLOSE", "风口关"), W_OPEN("W_OPEN", "风口开"), F_OPEN("F_OPEN", "风机正转"), F_OPEN_F(
|
"F_OPEN_F", "风机反转"), F_CLOSE("F_CLOSE", "风机关"), ERROR("ERROR", "故障"), ZERO(
|
"ZERO", "无操作");
|
|
private String code;
|
private String msg;
|
|
DeviceStatus(String code, String msg) {
|
this.code = code;
|
this.msg = msg;
|
}
|
|
public String getCode() {
|
return code;
|
}
|
|
public String getMsg() {
|
return msg;
|
}
|
|
public static String getDeviceStatus(String code) {
|
if (null == code)
|
return "";
|
|
if (DeviceStatus.CLOSE.getCode().equals(code)) {
|
return DeviceStatus.CLOSE.getMsg();
|
}
|
if (DeviceStatus.F_CLOSE.getCode().equals(code)) {
|
return DeviceStatus.F_CLOSE.getMsg();
|
}
|
|
if (DeviceStatus.F_OPEN.getCode().equals(code)) {
|
return DeviceStatus.F_OPEN.getMsg();
|
}
|
if (DeviceStatus.OPEN.getCode().equals(code)) {
|
return DeviceStatus.OPEN.getMsg();
|
}
|
|
if (DeviceStatus.W_CLOSE.getCode().equals(code)) {
|
return DeviceStatus.W_CLOSE.getMsg();
|
}
|
|
if (DeviceStatus.W_OPEN.getCode().equals(code)) {
|
return DeviceStatus.W_OPEN.getMsg();
|
}
|
|
return "";
|
}
|
|
/**
|
* 根据当前通道状态和关联状态获取实际的设备状态
|
*
|
* @param status
|
* @param linkStatus
|
* @param deviceType
|
* @return
|
*/
|
public static String getStatus(String status, String linkStatus,
|
String deviceType) {
|
if (null == status || Constant.EMPTY.equalsIgnoreCase(status))
|
status = ERROR.code;
|
|
if(null == linkStatus) linkStatus = Constant.EMPTY;
|
|
// if (null == linkStatus ||
|
// Constant.EMPTY.equalsIgnoreCase(linkStatus)){
|
// linkStatus = ERROR.code;
|
// }
|
|
//只有轴流风机和混流风机才考虑关联设备,其他忽略关联
|
if(!DeviceType.TYPE_0C.getCode().equals(deviceType) && !DeviceType.TYPE_02.getCode().equals(deviceType)){
|
linkStatus = null;
|
}
|
|
if (ERROR.code.equals(status) && OPEN.getCode().equals(linkStatus)) {
|
return W_OPEN.getCode();
|
}
|
if (ERROR.code.equals(status) && CLOSE.getCode().equals(linkStatus)) {
|
return W_CLOSE.getCode();
|
}
|
// 风机类的设备处理
|
// 风机关 窗口 开
|
if (F_CLOSE.getCode().equals(status)
|
&& OPEN.getCode().equals(linkStatus)) {
|
return W_OPEN.getCode();
|
}
|
|
// 风机关 窗口关
|
if (F_CLOSE.getCode().equals(status)
|
&& CLOSE.getCode().equals(linkStatus)) {
|
return W_CLOSE.getCode();
|
}
|
|
// 风机开 窗口开
|
if (F_OPEN.getCode().equals(status)
|
&& OPEN.getCode().equals(linkStatus)) {
|
return F_OPEN.getCode();
|
}
|
// 风机开 窗口关
|
// if (F_OPEN.getCode().equals(status)
|
// && CLOSE.getCode().equals(linkStatus)) {
|
// return ERROR.getCode();
|
// }
|
if (F_OPEN.getCode().equals(status)) {
|
return F_OPEN.getCode();
|
}
|
|
// 风机反开 窗口开
|
if (F_OPEN_F.getCode().equals(status)
|
&& OPEN.getCode().equals(linkStatus)) {
|
return F_OPEN_F.getCode();
|
}
|
|
// 风机反开 窗口关
|
// if (F_OPEN_F.getCode().equals(status)
|
// && CLOSE.getCode().equals(linkStatus)) {
|
// return ERROR.getCode();
|
// }
|
if (F_OPEN_F.getCode().equals(status)) {
|
return F_OPEN_F.getCode();
|
}
|
|
return status;
|
}
|
|
}
|