|
@@ -31,11 +31,14 @@ func (c *DataController) Prepare() {
|
|
|
if len(User_tokey) == 0 {
|
|
|
User_tokey = GetString
|
|
|
}
|
|
|
-
|
|
|
+ if Account.Admin_r == nil {
|
|
|
+ return
|
|
|
+ }
|
|
|
c.Admin_r = *Account.Admin_r
|
|
|
T_pid := c.Admin_r.T_pid
|
|
|
- if T_pid == 0 {
|
|
|
- T_pid, _ = Account.Redis_Tokey_T_pid_Get(User_tokey)
|
|
|
+ EntryPid, _ := Account.Redis_Tokey_T_pid_Get(User_tokey)
|
|
|
+ if EntryPid > 0 {
|
|
|
+ T_pid = EntryPid
|
|
|
}
|
|
|
c.T_pid = T_pid
|
|
|
}
|
|
@@ -104,7 +107,7 @@ func (c *DataController) Device_Sensor_List() {
|
|
|
r_jsons.DeviceSensor_lite, cnt = Device.Read_DeviceSensor_List_For_Data(c.T_pid, T_name, T_Class_id, T_type, T_RealTime, T_MapShow, page, page_z)
|
|
|
|
|
|
page_size := math.Ceil(float64(cnt) / float64(page_z))
|
|
|
- r_jsons.Page = int(page)
|
|
|
+ r_jsons.Page = page
|
|
|
r_jsons.Page_size = int(page_size)
|
|
|
r_jsons.Pages = lib.Func_page(int64(page), int64(page_size))
|
|
|
r_jsons.Num = int(cnt)
|
|
@@ -241,19 +244,19 @@ func (c *DataController) Device_Sensor_Data_Excel() {
|
|
|
|
|
|
if v.T_ist == 1 {
|
|
|
f.SetCellValue("Sheet1", fmt.Sprintf("C%d", line), v.T_t)
|
|
|
+ f.SetCellValue("Sheet1", fmt.Sprintf("E%d", line), strconv.FormatFloat(float64(v.T_tl), 'f', 2, 64)+"~"+strconv.FormatFloat(float64(v.T_tu), 'f', 2, 64))
|
|
|
if v.T_t < v.T_tl || v.T_t > v.T_tu {
|
|
|
f.SetCellStyle("Sheet1", fmt.Sprintf("A%d", line), fmt.Sprintf("G%d", line), headStyleLower)
|
|
|
}
|
|
|
}
|
|
|
if v.T_ish == 1 {
|
|
|
f.SetCellValue("Sheet1", fmt.Sprintf("D%d", line), v.T_rh)
|
|
|
+ f.SetCellValue("Sheet1", fmt.Sprintf("F%d", line), strconv.FormatFloat(float64(v.T_rhl), 'f', 2, 64)+"~"+strconv.FormatFloat(float64(v.T_rhu), 'f', 2, 64))
|
|
|
if v.T_rh < v.T_rhl || v.T_rh > v.T_rhu {
|
|
|
f.SetCellStyle("Sheet1", fmt.Sprintf("A%d", line), fmt.Sprintf("G%d", line), headStyleUpper)
|
|
|
}
|
|
|
}
|
|
|
|
|
|
- f.SetCellValue("Sheet1", fmt.Sprintf("E%d", line), strconv.FormatFloat(float64(v.T_tl), 'f', 2, 64)+"~"+strconv.FormatFloat(float64(v.T_tu), 'f', 2, 64))
|
|
|
- f.SetCellValue("Sheet1", fmt.Sprintf("F%d", line), strconv.FormatFloat(float64(v.T_rhl), 'f', 2, 64)+"~"+strconv.FormatFloat(float64(v.T_rhu), 'f', 2, 64))
|
|
|
f.SetCellValue("Sheet1", fmt.Sprintf("G%d", line), v.T_time)
|
|
|
//if v.T_ist == 1 && (v.T_t < v.T_tl || v.T_t > v.T_tu) {
|
|
|
// f.SetCellStyle("Sheet1", fmt.Sprintf("A%d", line), fmt.Sprintf("G%d", line), headStyleLower)
|
|
@@ -406,11 +409,10 @@ func (c *DataController) Device_Sensor_Data_Excel_m() {
|
|
|
return
|
|
|
}
|
|
|
|
|
|
-// 列表 - 接口
|
|
|
+// 小程序 - 打印
|
|
|
func (c *DataController) DeviceSensor_Data_Print() {
|
|
|
|
|
|
SN := c.GetString("T_sn")
|
|
|
- T_id, _ := c.GetInt("T_id")
|
|
|
Time_start := c.GetString("Time_start")
|
|
|
Time_end := c.GetString("Time_end")
|
|
|
|
|
@@ -425,25 +427,58 @@ func (c *DataController) DeviceSensor_Data_Print() {
|
|
|
|
|
|
r_jsons := make(map[string]R_JSONS)
|
|
|
|
|
|
+ type JSONS struct {
|
|
|
+ //必须的大写开头
|
|
|
+ Code int16
|
|
|
+ Msg string
|
|
|
+ DeviceSensorNum int
|
|
|
+ DeviceSensor Device.DeviceSensor_Applet
|
|
|
+ AdminNane string
|
|
|
+ Data interface{} // 泛型
|
|
|
+ }
|
|
|
+
|
|
|
GROUP_BY_t_time := Device.Read_DeviceData_List_GROUP_BY_t_time(SN, Time_start, Time_end)
|
|
|
// 时间 MAP
|
|
|
for _, vt := range GROUP_BY_t_time {
|
|
|
- tt := lib.To_string(vt[0])
|
|
|
- r_jsons[tt] = R_JSONS{T_time: tt, T1: nil, T2: nil, T3: nil, T4: nil}
|
|
|
+ stamp, _ := time.Parse("2006-1-02 15:04:05", lib.To_string(vt[0]))
|
|
|
+ T_time := stamp.Format("2006-01-02 15:04:05")
|
|
|
+ r_jsons[T_time] = R_JSONS{T_time: T_time, T1: nil, T2: nil, T3: nil, T4: nil}
|
|
|
}
|
|
|
- // 记录传感器
|
|
|
- Device.Read_DeviceSensorParameter_All_Map(SN, T_id)
|
|
|
- maps, num := Device.Read_DeviceData_ById_List(SN, T_id, Time_start, Time_end, 1, 9999)
|
|
|
- if num > 0 {
|
|
|
- for _, v_map := range maps {
|
|
|
- ws, ok := r_jsons[v_map.T_time] /*如果确定是真实的,则存在,否则不存在 */
|
|
|
- if ok {
|
|
|
- ws.T1 = v_map
|
|
|
- r_jsons[v_map.T_time] = ws
|
|
|
+
|
|
|
+ dsList := Device.Read_DeviceSensor_List_T_sn_T_datashow(SN)
|
|
|
+ if len(dsList) == 0 {
|
|
|
+ c.Data["json"] = JSONS{Code: 200, Msg: "ok!", DeviceSensorNum: len(dsList), Data: r_jsons}
|
|
|
+ c.ServeJSON()
|
|
|
+ return
|
|
|
+ }
|
|
|
+
|
|
|
+ company, _ := Account.Read_Company_ById(c.T_pid)
|
|
|
+ for i, v := range dsList {
|
|
|
+ if i >= 4 {
|
|
|
+ break
|
|
|
+ }
|
|
|
+ // 记录传感器
|
|
|
+ maps, num := Device.Read_DeviceData_ById_List(SN, v.T_id, Time_start, Time_end, 1, 9999)
|
|
|
+ if num > 0 {
|
|
|
+ for _, v_map := range maps {
|
|
|
+ ws, ok := r_jsons[v_map.T_time]
|
|
|
+ if ok {
|
|
|
+ switch i {
|
|
|
+ case 0:
|
|
|
+ ws.T1 = v_map
|
|
|
+ case 1:
|
|
|
+ ws.T2 = v_map
|
|
|
+ case 2:
|
|
|
+ ws.T3 = v_map
|
|
|
+ case 3:
|
|
|
+ ws.T4 = v_map
|
|
|
+ }
|
|
|
+ r_jsons[v_map.T_time] = ws
|
|
|
+ }
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
- c.Data["json"] = lib.JSONS{Code: 200, Msg: "ok!", Data: r_jsons}
|
|
|
+ c.Data["json"] = JSONS{Code: 200, Msg: "ok!", DeviceSensorNum: len(dsList), DeviceSensor: Device.DeviceSensorToDeviceSensor_Applet(dsList[0]), AdminNane: company.T_name, Data: r_jsons}
|
|
|
c.ServeJSON()
|
|
|
return
|
|
|
}
|
|
@@ -520,8 +555,14 @@ func (c *DataController) Device_Sensor_Data_PDF() {
|
|
|
c.ServeJSON()
|
|
|
return
|
|
|
}
|
|
|
+
|
|
|
+ var s_time, e_time string
|
|
|
+ if len(DeviceSensor_data) > 0 {
|
|
|
+ s_time = fmt.Sprintf("%s", DeviceSensor_data[0].T_time)
|
|
|
+ e_time = fmt.Sprintf("%s", DeviceSensor_data[len(DeviceSensor_data)-1].T_time)
|
|
|
+ }
|
|
|
//fmt.Sprintf(" %.1f ", v.T_t)
|
|
|
- lib.RectFillColor(pdf, "历史数据["+Time_start+" / "+Time_end+"]", 14, 22, 80, 550, 40, 255, 255, 255, lib.AlignCenter, lib.ValignMiddle)
|
|
|
+ lib.RectFillColor(pdf, "历史数据["+e_time+" / "+s_time+"]", 14, 22, 80, 550, 40, 255, 255, 255, lib.AlignCenter, lib.ValignMiddle)
|
|
|
|
|
|
lib.RectFillColor(pdf, "序号", 12, 22, 120, 30, 20, 255, 255, 255, lib.AlignCenter, lib.ValignMiddle)
|
|
|
lib.RectFillColor(pdf, "传感器名称", 12, 52, 120, 100, 20, 255, 255, 255, lib.AlignCenter, lib.ValignMiddle)
|
|
@@ -562,14 +603,23 @@ func (c *DataController) Device_Sensor_Data_PDF() {
|
|
|
// T_Rlu = "-"
|
|
|
//}
|
|
|
|
|
|
+ if v.T_ist == 1 {
|
|
|
+ lib.RectFillColor(pdf, T_t, 10, 152, y, 60, 20, 255, 255, 255, lib.AlignCenter, lib.ValignMiddle)
|
|
|
+ lib.RectFillColor(pdf, T_Tlu, 10, 272, y, 90, 20, 255, 255, 255, lib.AlignCenter, lib.ValignMiddle)
|
|
|
+ } else {
|
|
|
+ lib.RectFillColor(pdf, "", 10, 152, y, 60, 20, 255, 255, 255, lib.AlignCenter, lib.ValignMiddle)
|
|
|
+ lib.RectFillColor(pdf, "", 10, 272, y, 90, 20, 255, 255, 255, lib.AlignCenter, lib.ValignMiddle)
|
|
|
+ }
|
|
|
+ if v.T_ish == 1 {
|
|
|
+ lib.RectFillColor(pdf, T_rh, 10, 212, y, 60, 20, 255, 255, 255, lib.AlignCenter, lib.ValignMiddle)
|
|
|
+ lib.RectFillColor(pdf, T_Rlu, 10, 362, y, 90, 20, 255, 255, 255, lib.AlignCenter, lib.ValignMiddle)
|
|
|
+ } else {
|
|
|
+ lib.RectFillColor(pdf, "", 10, 212, y, 60, 20, 255, 255, 255, lib.AlignCenter, lib.ValignMiddle)
|
|
|
+ lib.RectFillColor(pdf, "", 10, 362, y, 90, 20, 255, 255, 255, lib.AlignCenter, lib.ValignMiddle)
|
|
|
+ }
|
|
|
+
|
|
|
lib.RectFillColor(pdf, text, 10, 22, y, 30, 20, 255, 255, 255, lib.AlignCenter, lib.ValignMiddle)
|
|
|
lib.RectFillColor(pdf, v.T_name, 10, 52, y, 100, 20, 255, 255, 255, lib.AlignCenter, lib.ValignMiddle)
|
|
|
- lib.RectFillColor(pdf, T_t, 10, 152, y, 60, 20, 255, 255, 255, lib.AlignCenter, lib.ValignMiddle)
|
|
|
- lib.RectFillColor(pdf, T_rh, 10, 212, y, 60, 20, 255, 255, 255, lib.AlignCenter, lib.ValignMiddle)
|
|
|
-
|
|
|
- lib.RectFillColor(pdf, T_Tlu, 10, 272, y, 90, 20, 255, 255, 255, lib.AlignCenter, lib.ValignMiddle)
|
|
|
-
|
|
|
- lib.RectFillColor(pdf, T_Rlu, 10, 362, y, 90, 20, 255, 255, 255, lib.AlignCenter, lib.ValignMiddle)
|
|
|
|
|
|
lib.RectFillColor(pdf, T_time, 10, 452, y, 120, 20, 255, 255, 255, lib.AlignCenter, lib.ValignMiddle)
|
|
|
y += 20
|
|
@@ -728,8 +778,13 @@ func (c *DataController) Device_Sensor_Data_BackUp_PDF() {
|
|
|
c.ServeJSON()
|
|
|
return
|
|
|
}
|
|
|
+ var s_time, e_time string
|
|
|
+ if len(DeviceSensor_data) > 0 {
|
|
|
+ s_time = fmt.Sprintf("%s", DeviceSensor_data[0].T_time)
|
|
|
+ e_time = fmt.Sprintf("%s", DeviceSensor_data[len(DeviceSensor_data)-1].T_time)
|
|
|
+ }
|
|
|
//fmt.Sprintf(" %.1f ", v.T_t)
|
|
|
- lib.RectFillColor(pdf, "历史数据["+Time_start+" / "+Time_end+"]", 14, 22, 80, 550, 40, 255, 255, 255, lib.AlignCenter, lib.ValignMiddle)
|
|
|
+ lib.RectFillColor(pdf, "历史数据["+e_time+" / "+s_time+"]", 14, 22, 80, 550, 40, 255, 255, 255, lib.AlignCenter, lib.ValignMiddle)
|
|
|
|
|
|
lib.RectFillColor(pdf, "序号", 12, 22, 120, 30, 20, 255, 255, 255, lib.AlignCenter, lib.ValignMiddle)
|
|
|
lib.RectFillColor(pdf, "传感器名称", 12, 52, 120, 100, 20, 255, 255, 255, lib.AlignCenter, lib.ValignMiddle)
|
|
@@ -785,7 +840,7 @@ func (c *DataController) Device_Sensor_Data_BackUp_PDF() {
|
|
|
|
|
|
deviceSensor, _ := Device.Read_DeviceSensor_ByT_sn(T_sn, T_id)
|
|
|
rand_x := int64(lib.Random(0, 10000))
|
|
|
- filenameStr := fmt.Sprintf("backup/sn/%s_%s_%s.pdf", lib.GetRandstring(8, "ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789", rand_x), date.Format("2006_01_02"), deviceSensor.T_name)
|
|
|
+ filenameStr := fmt.Sprintf("backup/sn/%s_%s(%s).pdf", lib.GetRandstring(8, "0123456789", rand_x), deviceSensor.T_name, date.Format("2006-01-02"))
|
|
|
|
|
|
err = pdf.WritePdf(filenameStr)
|
|
|
if err != nil {
|