|
@@ -1212,22 +1212,33 @@ func Read_DeviceSensor_List_For_Data(bindSN []string, T_pid int, T_name string,
|
|
|
var DeviceSensor_unusual []DeviceSensor_R
|
|
var DeviceSensor_unusual []DeviceSensor_R
|
|
|
var DeviceSensor_monitor []DeviceSensor_R
|
|
var DeviceSensor_monitor []DeviceSensor_R
|
|
|
var DeviceSensor_monitor2 []DeviceSensor_R
|
|
var DeviceSensor_monitor2 []DeviceSensor_R
|
|
|
|
|
+ var DeviceSensor_not_online []DeviceSensor_R
|
|
|
for _, v := range r {
|
|
for _, v := range r {
|
|
|
v_r := DeviceSensorToDeviceSensor_R(v)
|
|
v_r := DeviceSensorToDeviceSensor_R(v)
|
|
|
data := v_r.T_DeviceSensorData
|
|
data := v_r.T_DeviceSensorData
|
|
|
// 状态在监控中,温度或者湿度不在正常区间,排在最前面
|
|
// 状态在监控中,温度或者湿度不在正常区间,排在最前面
|
|
|
- if (data.T_t > data.T_tu || data.T_t < data.T_tl || data.T_rh > data.T_rhu || data.T_rh < data.T_rhl) && v.T_monitor == 1 && v.T_link == 1 && v_r.T_DeviceSensorParameter.T_free == 0 {
|
|
|
|
|
|
|
+ if (data.T_t > data.T_tu || data.T_t < data.T_tl || data.T_rh > data.T_rhu || data.T_rh < data.T_rhl) && v.T_monitor == 1 && v.T_link == 1 &&
|
|
|
|
|
+ v_r.T_DeviceSensorParameter.T_free == 0 && (v.T_online == 1 || v.T_online_s == 1) {
|
|
|
DeviceSensor_unusual = append(DeviceSensor_unusual, v_r)
|
|
DeviceSensor_unusual = append(DeviceSensor_unusual, v_r)
|
|
|
- } else if v.T_monitor == 1 && v.T_link == 1 && v_r.T_DeviceSensorParameter.T_free == 0 {
|
|
|
|
|
|
|
+
|
|
|
|
|
+ } else if v.T_monitor == 1 && v.T_link == 1 && v_r.T_DeviceSensorParameter.T_free == 0 && (v.T_online == 1 || v.T_online_s == 1) {
|
|
|
|
|
+ // 监控中,不是空库排第二
|
|
|
DeviceSensor_monitor = append(DeviceSensor_monitor, v_r)
|
|
DeviceSensor_monitor = append(DeviceSensor_monitor, v_r)
|
|
|
} else if v.T_monitor == 1 {
|
|
} else if v.T_monitor == 1 {
|
|
|
- DeviceSensor_monitor2 = append(DeviceSensor_monitor2, v_r)
|
|
|
|
|
|
|
+ // 状态在监控中,但是不在线,排在第四
|
|
|
|
|
+ if v.T_online == 0 && v.T_online_s == 0 {
|
|
|
|
|
+ DeviceSensor_not_online = append(DeviceSensor_not_online, v_r)
|
|
|
|
|
+ } else {
|
|
|
|
|
+ // 其他监控中状态排第三
|
|
|
|
|
+ DeviceSensor_monitor2 = append(DeviceSensor_monitor2, v_r)
|
|
|
|
|
+ }
|
|
|
} else {
|
|
} else {
|
|
|
DeviceSensor_r = append(DeviceSensor_r, v_r)
|
|
DeviceSensor_r = append(DeviceSensor_r, v_r)
|
|
|
}
|
|
}
|
|
|
}
|
|
}
|
|
|
DeviceSensor_unusual = append(DeviceSensor_unusual, DeviceSensor_monitor...)
|
|
DeviceSensor_unusual = append(DeviceSensor_unusual, DeviceSensor_monitor...)
|
|
|
DeviceSensor_unusual = append(DeviceSensor_unusual, DeviceSensor_monitor2...)
|
|
DeviceSensor_unusual = append(DeviceSensor_unusual, DeviceSensor_monitor2...)
|
|
|
|
|
+ DeviceSensor_unusual = append(DeviceSensor_unusual, DeviceSensor_not_online...)
|
|
|
DeviceSensor_unusual = append(DeviceSensor_unusual, DeviceSensor_r...)
|
|
DeviceSensor_unusual = append(DeviceSensor_unusual, DeviceSensor_r...)
|
|
|
return DeviceSensor_unusual[offset:offset_z], cnt
|
|
return DeviceSensor_unusual[offset:offset_z], cnt
|
|
|
}
|
|
}
|
|
@@ -1244,114 +1255,6 @@ func Read_DeviceSensor_List_For_Data(bindSN []string, T_pid int, T_name string,
|
|
|
return DeviceSensor_r, cnt
|
|
return DeviceSensor_r, cnt
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
-// 与Read_DeviceSensor_List_For_Data功能一样(优化前)
|
|
|
|
|
-func Read_DeviceSensor_List_For_Data1(bindSN []string, T_pid int, T_name string, T_Class_id, T_type, T_RealTime, T_MapShow int,
|
|
|
|
|
- page int, page_z int) (DeviceSensor_r []DeviceSensor_R, cnt int64) {
|
|
|
|
|
-
|
|
|
|
|
- o := orm.NewOrm()
|
|
|
|
|
- var maps_z []orm2.ParamsList
|
|
|
|
|
-
|
|
|
|
|
- // 也可以直接使用 Model 结构体作为表名
|
|
|
|
|
-
|
|
|
|
|
- var offset int
|
|
|
|
|
- if page <= 1 {
|
|
|
|
|
- offset = 0
|
|
|
|
|
- } else {
|
|
|
|
|
- offset = (page - 1) * page_z
|
|
|
|
|
- }
|
|
|
|
|
-
|
|
|
|
|
- var r []DeviceSensor_RealTime
|
|
|
|
|
- sql_WHERE := "t_pid = " + strconv.Itoa(T_pid)
|
|
|
|
|
- if len(bindSN) > 0 {
|
|
|
|
|
- sql_WHERE += fmt.Sprintf(" AND t_sn in (%s) ", lib.StringListToDotStr(bindSN))
|
|
|
|
|
-
|
|
|
|
|
- }
|
|
|
|
|
-
|
|
|
|
|
- if T_Class_id > 0 {
|
|
|
|
|
- T_calss := "C" + strconv.Itoa(T_Class_id) + "|"
|
|
|
|
|
- sql_WHERE += " AND t__class like '%" + T_calss + "%'"
|
|
|
|
|
- }
|
|
|
|
|
-
|
|
|
|
|
- if T_type > 0 {
|
|
|
|
|
- sql_WHERE += " AND t_type = " + strconv.Itoa(T_type)
|
|
|
|
|
- }
|
|
|
|
|
-
|
|
|
|
|
- if len(T_name) >= 16 {
|
|
|
|
|
- sql_WHERE += " AND t_sn = '" + T_name + "'"
|
|
|
|
|
- } else if len(T_name) > 0 && len(T_name) < 16 {
|
|
|
|
|
- sql_WHERE += " AND (ds.t_sn like '%" + T_name + "%' OR ds.t_name like '%" + T_name + "%') AND ds.t__state = 1 AND t_datashow = 1"
|
|
|
|
|
-
|
|
|
|
|
- } else {
|
|
|
|
|
- sql_WHERE += " AND ds.t__state = 1 AND t_datashow = 1"
|
|
|
|
|
- }
|
|
|
|
|
-
|
|
|
|
|
- if T_MapShow == 1 {
|
|
|
|
|
- sql_WHERE += " AND t__site is not null"
|
|
|
|
|
- }
|
|
|
|
|
- // -------------
|
|
|
|
|
- sql := "SELECT COUNT(*) FROM " + "device_sensor ds WHERE " + sql_WHERE
|
|
|
|
|
- logs.Debug(sql)
|
|
|
|
|
- _, err := o.Raw(sql).ValuesList(&maps_z)
|
|
|
|
|
- if err != nil {
|
|
|
|
|
- logs.Error(lib.FuncName(), err)
|
|
|
|
|
- return DeviceSensor_r, 0
|
|
|
|
|
- }
|
|
|
|
|
- if len(maps_z) == 0 {
|
|
|
|
|
- return DeviceSensor_r, 0
|
|
|
|
|
- }
|
|
|
|
|
- cnt, _ = strconv.ParseInt(maps_z[0][0].(string), 10, 64)
|
|
|
|
|
-
|
|
|
|
|
- sql = "SELECT *,ds.t_sn as t_sn,ds.t_id as t_id,ds.t_name as t_name,ds.t__state as t__state FROM device_sensor ds " +
|
|
|
|
|
- "LEFT JOIN device_sensor_parameter dsp " +
|
|
|
|
|
- "ON ds.t_sp=dsp.id " +
|
|
|
|
|
- "WHERE " + sql_WHERE + " ORDER BY ds.t_sort, ds.id ASC"
|
|
|
|
|
- realTimeSql := sql
|
|
|
|
|
- if page_z != 9999 {
|
|
|
|
|
- sql = sql + " LIMIT " + strconv.Itoa(offset) + "," + strconv.Itoa(page_z)
|
|
|
|
|
- }
|
|
|
|
|
-
|
|
|
|
|
- logs.Debug(sql)
|
|
|
|
|
- _, err = o.Raw(sql).QueryRows(&r)
|
|
|
|
|
- if err != nil {
|
|
|
|
|
- logs.Error(lib.FuncName(), err)
|
|
|
|
|
- return
|
|
|
|
|
- }
|
|
|
|
|
-
|
|
|
|
|
- if T_RealTime == 1 {
|
|
|
|
|
- offset_z := offset + page_z
|
|
|
|
|
- if cnt < int64(offset_z) {
|
|
|
|
|
- offset_z = int(cnt)
|
|
|
|
|
- }
|
|
|
|
|
- if offset > offset_z {
|
|
|
|
|
- offset = offset_z
|
|
|
|
|
- }
|
|
|
|
|
- _, err = o.Raw(realTimeSql).QueryRows(&r)
|
|
|
|
|
- if err != nil {
|
|
|
|
|
- logs.Error(lib.FuncName(), err)
|
|
|
|
|
- return
|
|
|
|
|
- }
|
|
|
|
|
- var DeviceSensor_unusual []DeviceSensor_R
|
|
|
|
|
- for _, v := range r {
|
|
|
|
|
- v_r := DeviceSensorRealTimeToDeviceSensor_R(v)
|
|
|
|
|
- data := v_r.T_DeviceSensorData
|
|
|
|
|
- // 温度或者湿度不在正常区间,排在最前面
|
|
|
|
|
- if (data.T_t > data.T_tu || data.T_t < data.T_tl || data.T_rh > data.T_rhu || data.T_rh < data.T_rhl) && v.T_monitor == 1 && v_r.T_DeviceSensorParameter.T_free == 0 {
|
|
|
|
|
- DeviceSensor_unusual = append(DeviceSensor_unusual, v_r)
|
|
|
|
|
- } else {
|
|
|
|
|
- DeviceSensor_r = append(DeviceSensor_r, v_r)
|
|
|
|
|
- }
|
|
|
|
|
- }
|
|
|
|
|
- DeviceSensor_unusual = append(DeviceSensor_unusual, DeviceSensor_r...)
|
|
|
|
|
- return DeviceSensor_unusual[offset:offset_z], cnt
|
|
|
|
|
- }
|
|
|
|
|
-
|
|
|
|
|
- for _, v := range r {
|
|
|
|
|
- DeviceSensor_r = append(DeviceSensor_r, DeviceSensorRealTimeToDeviceSensor_R(v))
|
|
|
|
|
- }
|
|
|
|
|
-
|
|
|
|
|
- return DeviceSensor_r, cnt
|
|
|
|
|
-}
|
|
|
|
|
-
|
|
|
|
|
// 公司管理 实时数据
|
|
// 公司管理 实时数据
|
|
|
// 查询当前公司及其下面所有子公司的传感器列表
|
|
// 查询当前公司及其下面所有子公司的传感器列表
|
|
|
func Read_CompanyDeviceSensor_List_For_Data(T_pids []int, T_name string, T_Class_id, T_type, T_RealTime, T_MapShow int, page int, page_z int) (DeviceSensor_r []DeviceSensor_R, cnt int64) {
|
|
func Read_CompanyDeviceSensor_List_For_Data(T_pids []int, T_name string, T_Class_id, T_type, T_RealTime, T_MapShow int, page int, page_z int) (DeviceSensor_r []DeviceSensor_R, cnt int64) {
|
|
@@ -1411,19 +1314,38 @@ func Read_CompanyDeviceSensor_List_For_Data(T_pids []int, T_name string, T_Class
|
|
|
logs.Error(lib.FuncName(), err)
|
|
logs.Error(lib.FuncName(), err)
|
|
|
return
|
|
return
|
|
|
}
|
|
}
|
|
|
|
|
+
|
|
|
var DeviceSensor_unusual []DeviceSensor_R
|
|
var DeviceSensor_unusual []DeviceSensor_R
|
|
|
|
|
+ var DeviceSensor_monitor []DeviceSensor_R
|
|
|
|
|
+ var DeviceSensor_monitor2 []DeviceSensor_R
|
|
|
|
|
+ var DeviceSensor_not_online []DeviceSensor_R
|
|
|
for _, v := range r {
|
|
for _, v := range r {
|
|
|
v_r := DeviceSensorToDeviceSensor_R(v)
|
|
v_r := DeviceSensorToDeviceSensor_R(v)
|
|
|
data := v_r.T_DeviceSensorData
|
|
data := v_r.T_DeviceSensorData
|
|
|
- // 温度或者湿度不在正常区间,排在最前面
|
|
|
|
|
- if (data.T_t > data.T_tu || data.T_t < data.T_tl || data.T_rh > data.T_rhu || data.T_rh < data.T_rhl) && v.T_monitor == 1 && v_r.T_DeviceSensorParameter.T_free == 0 {
|
|
|
|
|
|
|
+ // 状态在监控中,温度或者湿度不在正常区间,排在最前面
|
|
|
|
|
+ if (data.T_t > data.T_tu || data.T_t < data.T_tl || data.T_rh > data.T_rhu || data.T_rh < data.T_rhl) && v.T_monitor == 1 && v.T_link == 1 &&
|
|
|
|
|
+ v_r.T_DeviceSensorParameter.T_free == 0 && (v.T_online == 1 || v.T_online_s == 1) {
|
|
|
DeviceSensor_unusual = append(DeviceSensor_unusual, v_r)
|
|
DeviceSensor_unusual = append(DeviceSensor_unusual, v_r)
|
|
|
|
|
+
|
|
|
|
|
+ } else if v.T_monitor == 1 && v.T_link == 1 && v_r.T_DeviceSensorParameter.T_free == 0 && (v.T_online == 1 || v.T_online_s == 1) {
|
|
|
|
|
+ // 监控中,不是空库排第二
|
|
|
|
|
+ DeviceSensor_monitor = append(DeviceSensor_monitor, v_r)
|
|
|
|
|
+ } else if v.T_monitor == 1 {
|
|
|
|
|
+ // 状态在监控中,但是不在线,排在第四
|
|
|
|
|
+ if v.T_online == 0 && v.T_online_s == 0 {
|
|
|
|
|
+ DeviceSensor_not_online = append(DeviceSensor_not_online, v_r)
|
|
|
|
|
+ } else {
|
|
|
|
|
+ // 其他监控中状态排第三
|
|
|
|
|
+ DeviceSensor_monitor2 = append(DeviceSensor_monitor2, v_r)
|
|
|
|
|
+ }
|
|
|
} else {
|
|
} else {
|
|
|
DeviceSensor_r = append(DeviceSensor_r, v_r)
|
|
DeviceSensor_r = append(DeviceSensor_r, v_r)
|
|
|
}
|
|
}
|
|
|
}
|
|
}
|
|
|
|
|
+ DeviceSensor_unusual = append(DeviceSensor_unusual, DeviceSensor_monitor...)
|
|
|
|
|
+ DeviceSensor_unusual = append(DeviceSensor_unusual, DeviceSensor_monitor2...)
|
|
|
|
|
+ DeviceSensor_unusual = append(DeviceSensor_unusual, DeviceSensor_not_online...)
|
|
|
DeviceSensor_unusual = append(DeviceSensor_unusual, DeviceSensor_r...)
|
|
DeviceSensor_unusual = append(DeviceSensor_unusual, DeviceSensor_r...)
|
|
|
-
|
|
|
|
|
return DeviceSensor_unusual[offset:offset_z], cnt
|
|
return DeviceSensor_unusual[offset:offset_z], cnt
|
|
|
}
|
|
}
|
|
|
|
|
|
|
@@ -1438,116 +1360,6 @@ func Read_CompanyDeviceSensor_List_For_Data(T_pids []int, T_name string, T_Class
|
|
|
}
|
|
}
|
|
|
return DeviceSensor_r, cnt
|
|
return DeviceSensor_r, cnt
|
|
|
}
|
|
}
|
|
|
-func Read_CompanyDeviceSensor_List_For_Data1(T_pids []int, T_name string, T_Class_id, T_type, T_RealTime, T_MapShow int,
|
|
|
|
|
- page int, page_z int) (DeviceSensor_r []DeviceSensor_R, cnt int64) {
|
|
|
|
|
-
|
|
|
|
|
- o := orm.NewOrm()
|
|
|
|
|
- var maps_z []orm2.ParamsList
|
|
|
|
|
-
|
|
|
|
|
- // 也可以直接使用 Model 结构体作为表名
|
|
|
|
|
-
|
|
|
|
|
- var offset int
|
|
|
|
|
- if page <= 1 {
|
|
|
|
|
- offset = 0
|
|
|
|
|
- } else {
|
|
|
|
|
- offset = (page - 1) * page_z
|
|
|
|
|
- }
|
|
|
|
|
-
|
|
|
|
|
- var r []DeviceSensor_RealTime
|
|
|
|
|
- sql_WHERE := ""
|
|
|
|
|
- if len(T_pids) == 1 {
|
|
|
|
|
- sql_WHERE += " AND t_pid = " + strconv.Itoa(T_pids[0])
|
|
|
|
|
- } else if len(T_pids) > 1 {
|
|
|
|
|
- sql_WHERE += fmt.Sprintf(" AND t_pid in (%s) ", lib.IntListToDotStr(T_pids))
|
|
|
|
|
-
|
|
|
|
|
- }
|
|
|
|
|
-
|
|
|
|
|
- if T_Class_id > 0 {
|
|
|
|
|
- T_calss := "C" + strconv.Itoa(T_Class_id) + "|"
|
|
|
|
|
- sql_WHERE += " AND t__class like '%" + T_calss + "%'"
|
|
|
|
|
- }
|
|
|
|
|
-
|
|
|
|
|
- if T_type > 0 {
|
|
|
|
|
- sql_WHERE += " AND t_type = " + strconv.Itoa(T_type)
|
|
|
|
|
- }
|
|
|
|
|
-
|
|
|
|
|
- if len(T_name) >= 16 {
|
|
|
|
|
- sql_WHERE += " AND t_sn = '" + T_name + "'"
|
|
|
|
|
- } else if len(T_name) > 0 && len(T_name) < 16 {
|
|
|
|
|
- sql_WHERE += " AND (ds.t_sn like '%" + T_name + "%' OR ds.t_name like '%" + T_name + "%') AND ds.t__state = 1 AND t_datashow = 1"
|
|
|
|
|
-
|
|
|
|
|
- } else {
|
|
|
|
|
- sql_WHERE += " AND ds.t__state = 1 AND t_datashow = 1"
|
|
|
|
|
- }
|
|
|
|
|
-
|
|
|
|
|
- if T_MapShow == 1 {
|
|
|
|
|
- sql_WHERE += " AND t__site is not null"
|
|
|
|
|
- }
|
|
|
|
|
- sql_WHERE = strings.TrimLeft(sql_WHERE, " AND")
|
|
|
|
|
- // -------------
|
|
|
|
|
- sql := "SELECT COUNT(*) FROM " + "device_sensor ds WHERE " + sql_WHERE
|
|
|
|
|
- logs.Debug(sql)
|
|
|
|
|
- _, err := o.Raw(sql).ValuesList(&maps_z)
|
|
|
|
|
- if err != nil {
|
|
|
|
|
- logs.Error(lib.FuncName(), err)
|
|
|
|
|
- return DeviceSensor_r, 0
|
|
|
|
|
- }
|
|
|
|
|
- if len(maps_z) == 0 {
|
|
|
|
|
- return DeviceSensor_r, 0
|
|
|
|
|
- }
|
|
|
|
|
- cnt, _ = strconv.ParseInt(maps_z[0][0].(string), 10, 64)
|
|
|
|
|
-
|
|
|
|
|
- sql = "SELECT *,ds.t_sn as t_sn,ds.t_id as t_id,ds.t_name as t_name,ds.t__state as t__state FROM device_sensor ds " +
|
|
|
|
|
- "LEFT JOIN device_sensor_parameter dsp " +
|
|
|
|
|
- "ON ds.t_sp=dsp.id " +
|
|
|
|
|
- "WHERE " + sql_WHERE + " ORDER BY ds.t_sort, ds.id ASC"
|
|
|
|
|
- realTimeSql := sql
|
|
|
|
|
- if page_z != 9999 {
|
|
|
|
|
- sql = sql + " LIMIT " + strconv.Itoa(offset) + "," + strconv.Itoa(page_z)
|
|
|
|
|
- }
|
|
|
|
|
-
|
|
|
|
|
- logs.Debug(sql)
|
|
|
|
|
- _, err = o.Raw(sql).QueryRows(&r)
|
|
|
|
|
- if err != nil {
|
|
|
|
|
- logs.Error(lib.FuncName(), err)
|
|
|
|
|
- return
|
|
|
|
|
- }
|
|
|
|
|
-
|
|
|
|
|
- if T_RealTime == 1 {
|
|
|
|
|
- offset_z := offset + page_z
|
|
|
|
|
- if cnt < int64(offset_z) {
|
|
|
|
|
- offset_z = int(cnt)
|
|
|
|
|
- }
|
|
|
|
|
- if offset > offset_z {
|
|
|
|
|
- offset = offset_z
|
|
|
|
|
- }
|
|
|
|
|
- _, err = o.Raw(realTimeSql).QueryRows(&r)
|
|
|
|
|
- if err != nil {
|
|
|
|
|
- logs.Error(lib.FuncName(), err)
|
|
|
|
|
- return
|
|
|
|
|
- }
|
|
|
|
|
- var DeviceSensor_unusual []DeviceSensor_R
|
|
|
|
|
- for _, v := range r {
|
|
|
|
|
- v_r := DeviceSensorRealTimeToDeviceSensor_R(v)
|
|
|
|
|
- data := v_r.T_DeviceSensorData
|
|
|
|
|
- // 温度或者湿度不在正常区间,排在最前面
|
|
|
|
|
- if (data.T_t > data.T_tu || data.T_t < data.T_tl || data.T_rh > data.T_rhu || data.T_rh < data.T_rhl) && v.T_monitor == 1 && v_r.T_DeviceSensorParameter.T_free == 0 {
|
|
|
|
|
- DeviceSensor_unusual = append(DeviceSensor_unusual, v_r)
|
|
|
|
|
- } else {
|
|
|
|
|
- DeviceSensor_r = append(DeviceSensor_r, v_r)
|
|
|
|
|
- }
|
|
|
|
|
- }
|
|
|
|
|
- DeviceSensor_unusual = append(DeviceSensor_unusual, DeviceSensor_r...)
|
|
|
|
|
- return DeviceSensor_unusual[offset:offset_z], cnt
|
|
|
|
|
- }
|
|
|
|
|
-
|
|
|
|
|
- for _, v := range r {
|
|
|
|
|
- DeviceSensor_r = append(DeviceSensor_r, DeviceSensorRealTimeToDeviceSensor_R(v))
|
|
|
|
|
- }
|
|
|
|
|
-
|
|
|
|
|
- return DeviceSensor_r, cnt
|
|
|
|
|
-}
|
|
|
|
|
-
|
|
|
|
|
func Read_CompanyDeviceSensor_List_For_Data_ByKey(T_pids []int, T_sn string) (DeviceSensor_r []DeviceSensor_R, cnt int64) {
|
|
func Read_CompanyDeviceSensor_List_For_Data_ByKey(T_pids []int, T_sn string) (DeviceSensor_r []DeviceSensor_R, cnt int64) {
|
|
|
|
|
|
|
|
o := orm.NewOrm()
|
|
o := orm.NewOrm()
|