|
@@ -58,6 +58,13 @@ type DeviceData_R struct {
|
|
|
T_remark string // 备注
|
|
|
}
|
|
|
|
|
|
+type DeviceData_Pdf struct {
|
|
|
+ T_time string // sn
|
|
|
+ T_id1 *float32 // 传感器id1温度
|
|
|
+ T_id2 *float32 // 传感器id2温度
|
|
|
+
|
|
|
+}
|
|
|
+
|
|
|
type DeviceData_BackUp struct {
|
|
|
T_sn string
|
|
|
T_id int // 传感器id
|
|
@@ -296,7 +303,7 @@ func Read_DeviceData_ById_List(SN string, T_id int, Time_start_ string, Time_end
|
|
|
}
|
|
|
//fmt.Println("maps_z;",maps_z[0][0])
|
|
|
//t_tl,t_tu,t_rhl,t_rhu,
|
|
|
- sql = "SELECT t_id,t_sp,t_t,t_rh,t_site,DATE_FORMAT(t_time,'%Y-%m-%d %H:%i:%s') AS t_time,t_time AS t_time1 FROM z_device_data_" + SN + " WHERE " + sql_time + " t_id = " + strconv.Itoa(T_id) + " ORDER BY t_time1 DESC "
|
|
|
+ sql = "SELECT t_id,t_sp,t_t,t_rh,t_site,DATE_FORMAT(t_time,'%Y-%m-%d %H:%i:%s') AS t_time,t_time AS t_time1 FROM z_device_data_" + SN + " WHERE " + sql_time + " t_id = " + strconv.Itoa(T_id) + " ORDER BY t_time1,t_id DESC "
|
|
|
if page_z != 9999 {
|
|
|
sql = sql + " LIMIT " + strconv.Itoa(offset) + "," + strconv.Itoa(page_z)
|
|
|
}
|
|
@@ -321,6 +328,104 @@ func Read_DeviceData_ById_List(SN string, T_id int, Time_start_ string, Time_end
|
|
|
return r, key
|
|
|
}
|
|
|
|
|
|
+func Read_DeviceData_ByIds(SN string, ids []int, Time_start_ string, Time_end_ string, page int, page_z int) ([]DeviceData_R, int) {
|
|
|
+ o := orm.NewOrm()
|
|
|
+ var maps []DeviceData_
|
|
|
+ var maps_z []orm2.ParamsList
|
|
|
+ var r []DeviceData_R
|
|
|
+ var offset int
|
|
|
+ if page_z == 0 {
|
|
|
+ page_z = conf.Page_size
|
|
|
+ }
|
|
|
+
|
|
|
+ if page <= 1 {
|
|
|
+ offset = 0
|
|
|
+ } else {
|
|
|
+ offset = (page - 1) * page_z
|
|
|
+ }
|
|
|
+ sql_time := ""
|
|
|
+
|
|
|
+ if len(Time_start_) > 1 {
|
|
|
+ sql_time += " t_time >= '" + Time_start_ + "' AND "
|
|
|
+ }
|
|
|
+
|
|
|
+ if len(Time_end_) > 1 {
|
|
|
+ sql_time += " t_time <= '" + Time_end_ + "' AND "
|
|
|
+ }
|
|
|
+
|
|
|
+ sql := "SELECT COUNT(t_id) FROM z_device_data_" + SN + " WHERE " + sql_time + " t_id in (" + lib.IntListToDotStr(ids) + ")"
|
|
|
+ fmt.Println(sql)
|
|
|
+ _, err := o.Raw(sql).ValuesList(&maps_z)
|
|
|
+ if err != nil {
|
|
|
+ logs.Error(lib.FuncName(), err)
|
|
|
+ return r, 0
|
|
|
+ }
|
|
|
+ if len(maps_z) == 0 {
|
|
|
+ return r, 0
|
|
|
+ }
|
|
|
+ //fmt.Println("maps_z;",maps_z[0][0])
|
|
|
+ //t_tl,t_tu,t_rhl,t_rhu,
|
|
|
+ sql = "SELECT t_id,t_sp,t_t,t_rh,t_site,DATE_FORMAT(t_time,'%Y-%m-%d %H:%i:%s') AS t_time,t_time AS t_time1 FROM z_device_data_" + SN + " WHERE " + sql_time + " t_id in (" + lib.IntListToDotStr(ids) + ") ORDER BY t_time1,t_id DESC "
|
|
|
+ if page_z != 9999 {
|
|
|
+ sql = sql + " LIMIT " + strconv.Itoa(offset) + "," + strconv.Itoa(page_z)
|
|
|
+ }
|
|
|
+
|
|
|
+ fmt.Println(sql)
|
|
|
+ _, err = o.Raw(sql).QueryRows(&maps)
|
|
|
+ if err != nil {
|
|
|
+ logs.Error(lib.FuncName(), err)
|
|
|
+ return r, 0
|
|
|
+ }
|
|
|
+
|
|
|
+ key, _ := strconv.Atoi(maps_z[0][0].(string))
|
|
|
+ device, err := Read_Device_ByT_sn(SN)
|
|
|
+ if err != nil {
|
|
|
+ logs.Error(lib.FuncName(), err)
|
|
|
+ }
|
|
|
+ for _, v := range maps {
|
|
|
+ r = append(r, DeviceData_ToDeviceData_R(device, v))
|
|
|
+ }
|
|
|
+
|
|
|
+ return r, key
|
|
|
+}
|
|
|
+func Read_DeviceData_ByIds_ForPDF(SN string, ids []int, Time_start_ string, Time_end_ string) []DeviceData_Pdf {
|
|
|
+ o := orm.NewOrm()
|
|
|
+ var r []DeviceData_Pdf
|
|
|
+ if len(ids) == 0 || len(ids) > 2 {
|
|
|
+ return r
|
|
|
+ }
|
|
|
+
|
|
|
+ sql_time := ""
|
|
|
+
|
|
|
+ if len(Time_start_) > 1 {
|
|
|
+ sql_time += " t_time >= '" + Time_start_ + "' AND "
|
|
|
+ }
|
|
|
+
|
|
|
+ if len(Time_end_) > 1 {
|
|
|
+ sql_time += " t_time <= '" + Time_end_ + "' AND "
|
|
|
+ }
|
|
|
+
|
|
|
+ //fmt.Println("maps_z;",maps_z[0][0])
|
|
|
+ //t_tl,t_tu,t_rhl,t_rhu,
|
|
|
+
|
|
|
+ selectSql := ""
|
|
|
+ for i, v := range ids {
|
|
|
+ selectSql += fmt.Sprintf("MAX(CASE WHEN t_id = %d THEN t_t END) AS t_id%d,", v, i+1)
|
|
|
+ }
|
|
|
+ selectSql = strings.Trim(selectSql, ",")
|
|
|
+
|
|
|
+ sql := "SELECT DATE_FORMAT(t_time,'%Y-%m-%d %H:%i:%s') AS t_time," + selectSql + " FROM z_device_data_" + SN + " WHERE " + sql_time + " t_id in (" + lib.IntListToDotStr(ids) + ") GROUP BY t_time ORDER BY t_time"
|
|
|
+
|
|
|
+ fmt.Println(sql)
|
|
|
+ _, err := o.Raw(sql).QueryRows(&r)
|
|
|
+ if err != nil {
|
|
|
+ logs.Error(lib.FuncName(), err)
|
|
|
+ return r
|
|
|
+ }
|
|
|
+
|
|
|
+ return r
|
|
|
+}
|
|
|
+
|
|
|
func Read_SqlRawL(T_SQL string, T_data []string) (string, []orm2.Params) {
|
|
|
o := orm.NewOrm()
|
|
|
var lists []orm2.Params
|
|
@@ -335,7 +440,7 @@ func Read_SqlRawL(T_SQL string, T_data []string) (string, []orm2.Params) {
|
|
|
}
|
|
|
|
|
|
func Read_DeviceData_By_T_snid_List(T_snid string, Time_start_ string, Time_end_ string, page int, page_z int) ([]DeviceData_R, int64) {
|
|
|
- T_snid_list := strings.Split(T_snid, "|")
|
|
|
+ T_snid_list := strings.Split(strings.Trim(T_snid, "|"), "|")
|
|
|
var maps []DeviceData_R
|
|
|
var maps_num int64
|
|
|
var offset, offset_z int
|