|
@@ -636,6 +636,51 @@ func (c *DataController) Device_Sensor_Data_PDF() {
|
|
|
c.ServeJSON()
|
|
|
return
|
|
|
}
|
|
|
+ //T_ist // 温度 1开启 2关闭
|
|
|
+ //T_ish // 湿度 1开启 2关闭
|
|
|
+ T_ist_list := make([]int, 0)
|
|
|
+ T_ish_list := make([]int, 0)
|
|
|
+ T_snid_list := strings.Split(strings.Trim(T_snid, "|"), "|")
|
|
|
+ for _, v := range T_snid_list {
|
|
|
+ sn_id := strings.Split(v, ",")
|
|
|
+ if len(sn_id) == 2 {
|
|
|
+ device, _ := Device.Read_Device_ByT_sn(sn_id[0])
|
|
|
+ T_ist_list = append(T_ist_list, device.T_ist)
|
|
|
+ T_ish_list = append(T_ish_list, device.T_ish)
|
|
|
+ }
|
|
|
+ }
|
|
|
+ istHasOne := false
|
|
|
+ istHasTwo := false
|
|
|
+ T_ist := 1
|
|
|
+ for _, v := range T_ist_list {
|
|
|
+ if v == 1 {
|
|
|
+ istHasOne = true
|
|
|
+ }
|
|
|
+ if v == 2 {
|
|
|
+ istHasTwo = true
|
|
|
+ }
|
|
|
+ }
|
|
|
+ // 全部都为2 则不显示温度
|
|
|
+ if !istHasOne && istHasTwo {
|
|
|
+ T_ist = 2
|
|
|
+ }
|
|
|
+
|
|
|
+ ishHasOne := false
|
|
|
+ ishHasTwo := false
|
|
|
+ T_ish := 1
|
|
|
+ for _, v := range T_ish_list {
|
|
|
+ if v == 1 {
|
|
|
+ ishHasOne = true
|
|
|
+ }
|
|
|
+ if v == 2 {
|
|
|
+ ishHasTwo = true
|
|
|
+ }
|
|
|
+ }
|
|
|
+ // 全部都为2 则不显示湿度
|
|
|
+ if !ishHasOne && ishHasTwo {
|
|
|
+ T_ish = 2
|
|
|
+ }
|
|
|
+
|
|
|
var DeviceSensor_data []Device.DeviceData_R
|
|
|
|
|
|
DeviceSensor_data, _ = Device.Read_DeviceData_By_T_snid_List(T_snid, Time_start, Time_end, 0, 9999)
|
|
@@ -656,6 +701,99 @@ func (c *DataController) Device_Sensor_Data_PDF() {
|
|
|
// return DeviceSensor_data[i].T_time > DeviceSensor_data[j].T_time
|
|
|
//})
|
|
|
|
|
|
+ // -------------------获取最高温湿度、最低温湿度、平均温湿度
|
|
|
+ // 最高温度、最低温度
|
|
|
+ var maxTemp, minTemp, maxRH, minRH float32
|
|
|
+ // 最高温度时间、最低温度时间
|
|
|
+ var maxTempTime, minTempTime, maxRHTime, minRHTime string
|
|
|
+ // 总温度
|
|
|
+ var totalTemp, totalRH float32
|
|
|
+ // 平均温度
|
|
|
+ var avgTemp, avgRH float32
|
|
|
+ var TempCount, RHCount int
|
|
|
+ if len(DeviceSensor_data) > 0 {
|
|
|
+ // 最高温度及时刻
|
|
|
+ firstTempFlag := false
|
|
|
+ //var maxTemp,minTemp float32
|
|
|
+ //var maxTempTime,minTempTime string
|
|
|
+ //maxTemp = DeviceSensor_data[0].T_t
|
|
|
+ //maxTempTime = DeviceSensor_data[0].T_time
|
|
|
+ //// 最低温度及时刻
|
|
|
+ //minTemp = DeviceSensor_data[0].T_t
|
|
|
+ //minTempTime = DeviceSensor_data[0].T_time
|
|
|
+
|
|
|
+ // 最高湿度度及时刻
|
|
|
+ firstRHFlag := false
|
|
|
+ //maxRH = DeviceSensor_data[0].T_rh
|
|
|
+ //maxRHTime = DeviceSensor_data[0].T_time
|
|
|
+ //// 最低湿度及时刻
|
|
|
+ //minRH = DeviceSensor_data[0].T_rh
|
|
|
+ //minRHTime = DeviceSensor_data[0].T_time
|
|
|
+
|
|
|
+ for _, data := range DeviceSensor_data {
|
|
|
+ if data.T_ist == 1 {
|
|
|
+ if firstTempFlag {
|
|
|
+ if data.T_t > maxTemp {
|
|
|
+ maxTemp = data.T_t
|
|
|
+ maxTempTime = data.T_time
|
|
|
+ }
|
|
|
+ if data.T_t < minTemp {
|
|
|
+ minTemp = data.T_t
|
|
|
+ minTempTime = data.T_time
|
|
|
+ }
|
|
|
+ totalTemp += data.T_t
|
|
|
+ TempCount++
|
|
|
+ } else {
|
|
|
+ maxTemp = data.T_t
|
|
|
+ maxTempTime = data.T_time
|
|
|
+ // 最低温度及时刻
|
|
|
+ minTemp = data.T_t
|
|
|
+ minTempTime = data.T_time
|
|
|
+ firstTempFlag = true
|
|
|
+ totalTemp += data.T_t
|
|
|
+ TempCount = 1
|
|
|
+ }
|
|
|
+
|
|
|
+ }
|
|
|
+
|
|
|
+ if data.T_ish == 1 {
|
|
|
+ if firstRHFlag {
|
|
|
+ if data.T_rh > maxRH {
|
|
|
+ maxRH = data.T_rh
|
|
|
+ maxRHTime = data.T_time
|
|
|
+ }
|
|
|
+ if data.T_rh < minRH {
|
|
|
+ minRH = data.T_rh
|
|
|
+ minRHTime = data.T_time
|
|
|
+ }
|
|
|
+ totalRH += data.T_rh
|
|
|
+ RHCount++
|
|
|
+ } else {
|
|
|
+ maxRH = data.T_rh
|
|
|
+ maxRHTime = data.T_time
|
|
|
+ // 最低温度及时刻
|
|
|
+ minRH = data.T_rh
|
|
|
+ minRHTime = data.T_time
|
|
|
+ firstRHFlag = true
|
|
|
+ totalRH += data.T_rh
|
|
|
+ RHCount = 1
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ if TempCount > 0 {
|
|
|
+ // 平均温度
|
|
|
+ avgTemp = totalTemp / float32(TempCount)
|
|
|
+ }
|
|
|
+ // 平均湿度
|
|
|
+ if RHCount > 0 {
|
|
|
+ avgRH = totalRH / float32(RHCount)
|
|
|
+ }
|
|
|
+ }
|
|
|
+ // -------------------获取最高温湿度、最低温湿度、平均温湿度结束
|
|
|
+ maxTempTime = maxTempTime
|
|
|
+ minTempTime = minTempTime
|
|
|
+ maxRHTime = maxRHTime
|
|
|
+ minRHTime = minRHTime
|
|
|
var err error
|
|
|
pdf := &gopdf.GoPdf{}
|
|
|
pdf.Start(gopdf.Config{PageSize: gopdf.Rect{W: 595.28, H: 841.89}}) //595.28, 841.89 = A4
|
|
@@ -716,21 +854,33 @@ func (c *DataController) Device_Sensor_Data_PDF() {
|
|
|
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, "历史数据["+e_time+" / "+s_time+"]", 14, 22, 80, 550, 40, 255, 255, 255, lib.AlignCenter, lib.ValignMiddle)
|
|
|
+ var y float64 = 120
|
|
|
+ if T_ist == 1 {
|
|
|
+ lib.RectFillColor(pdf, fmt.Sprintf("最高温度: %.1f ", maxTemp), 12, 22, y, 183, 20, 255, 255, 255, lib.AlignCenter, lib.ValignMiddle)
|
|
|
+ lib.RectFillColor(pdf, fmt.Sprintf("最低温度: %.1f ", minTemp), 12, 205, y, 183, 20, 255, 255, 255, lib.AlignCenter, lib.ValignMiddle)
|
|
|
+ lib.RectFillColor(pdf, fmt.Sprintf("平均温度: %.1f ", avgTemp), 12, 388, y, 184, 20, 255, 255, 255, lib.AlignCenter, lib.ValignMiddle)
|
|
|
+ y += 20
|
|
|
+ }
|
|
|
+ if T_ish == 1 {
|
|
|
+ lib.RectFillColor(pdf, fmt.Sprintf("最高湿度: %.1f ", maxRH), 12, 22, y, 183, 20, 255, 255, 255, lib.AlignCenter, lib.ValignMiddle)
|
|
|
+ lib.RectFillColor(pdf, fmt.Sprintf("最低湿度: %.1f ", minRH), 12, 205, y, 183, 20, 255, 255, 255, lib.AlignCenter, lib.ValignMiddle)
|
|
|
+ lib.RectFillColor(pdf, fmt.Sprintf("平均湿度: %.1f ", avgRH), 12, 388, y, 184, 20, 255, 255, 255, lib.AlignCenter, lib.ValignMiddle)
|
|
|
+ y += 20
|
|
|
+ }
|
|
|
+ y += 5
|
|
|
+ lib.RectFillColor(pdf, "序号", 12, 22, y, 30, 20, 255, 255, 255, lib.AlignCenter, lib.ValignMiddle)
|
|
|
+ lib.RectFillColor(pdf, "传感器名称", 12, 52, y, 100, 20, 255, 255, 255, lib.AlignCenter, lib.ValignMiddle)
|
|
|
+ lib.RectFillColor(pdf, "温度℃", 12, 152, y, 50, 20, 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)
|
|
|
- lib.RectFillColor(pdf, "温度℃", 12, 152, 120, 50, 20, 255, 255, 255, lib.AlignCenter, lib.ValignMiddle)
|
|
|
-
|
|
|
- lib.RectFillColor(pdf, "湿度%", 12, 202, 120, 50, 20, 255, 255, 255, lib.AlignCenter, lib.ValignMiddle)
|
|
|
+ lib.RectFillColor(pdf, "湿度%", 12, 202, y, 50, 20, 255, 255, 255, lib.AlignCenter, lib.ValignMiddle)
|
|
|
|
|
|
- lib.RectFillColor(pdf, "温度范围", 12, 252, 120, 80, 20, 255, 255, 255, lib.AlignCenter, lib.ValignMiddle)
|
|
|
- lib.RectFillColor(pdf, "湿度范围", 12, 332, 120, 80, 20, 255, 255, 255, lib.AlignCenter, lib.ValignMiddle)
|
|
|
- lib.RectFillColor(pdf, "记录时间", 12, 412, 120, 120, 20, 255, 255, 255, lib.AlignCenter, lib.ValignMiddle)
|
|
|
- lib.RectFillColor(pdf, "备注", 12, 532, 120, 40, 20, 255, 255, 255, lib.AlignCenter, lib.ValignMiddle)
|
|
|
+ lib.RectFillColor(pdf, "温度范围", 12, 252, y, 80, 20, 255, 255, 255, lib.AlignCenter, lib.ValignMiddle)
|
|
|
+ lib.RectFillColor(pdf, "湿度范围", 12, 332, y, 80, 20, 255, 255, 255, lib.AlignCenter, lib.ValignMiddle)
|
|
|
+ lib.RectFillColor(pdf, "记录时间", 12, 412, y, 120, 20, 255, 255, 255, lib.AlignCenter, lib.ValignMiddle)
|
|
|
+ lib.RectFillColor(pdf, "备注", 12, 532, y, 40, 20, 255, 255, 255, lib.AlignCenter, lib.ValignMiddle)
|
|
|
|
|
|
- var y float64 = 140
|
|
|
+ y += 20
|
|
|
|
|
|
err = pdf.SetFont("wts", "", 10)
|
|
|
if err != nil {
|
|
@@ -910,7 +1060,7 @@ func Device_Sensor_Data_ChartShow_PDF1(companyName, T_snid, Time_start, Time_end
|
|
|
return
|
|
|
}
|
|
|
|
|
|
- // -------------------获取最高温湿度、温蒂温湿度、平均温湿度
|
|
|
+ // -------------------获取最高温湿度、最低温湿度、平均温湿度
|
|
|
// 最高温度、最低温度
|
|
|
var maxTemp, minTemp float32
|
|
|
// 最高温度时间、最低温度时间
|
|
@@ -943,7 +1093,7 @@ func Device_Sensor_Data_ChartShow_PDF1(companyName, T_snid, Time_start, Time_end
|
|
|
// 平均湿度
|
|
|
//avgHumidity = totalHumidity / float32(len(DeviceSensor_data))
|
|
|
}
|
|
|
- // -------------------获取最高温湿度、温蒂温湿度、平均温湿度结束
|
|
|
+ // -------------------获取最高温湿度、最低温湿度、平均温湿度结束
|
|
|
|
|
|
pdf := &gopdf.GoPdf{}
|
|
|
pdf.Start(gopdf.Config{PageSize: gopdf.Rect{W: 595.28, H: 841.89}}) //595.28, 841.89 = A4
|