| 
					
				 | 
			
			
				@@ -4,9 +4,9 @@ import ( 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 	"Cold_Api/Nats/NatsServer" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 	"Cold_Api/conf" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 	"Cold_Api/controllers/lib" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	"Cold_Api/logs" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 	"Cold_Api/models/Account" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 	"Cold_Api/models/Device" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-	"Cold_Api/models/RawSql" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 	"fmt" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 	beego "github.com/beego/beego/v2/server/web" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 	"github.com/signintech/gopdf" 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -14,7 +14,6 @@ import ( 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 	"math" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 	"os" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 	"strconv" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-	"strings" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 	"time" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 ) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -449,7 +448,7 @@ func (c *DataController) Device_Sensor_Data_PDF() { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 	Time_end := c.GetString("Time_end") 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 	if len(T_snid) < 10 { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-		c.Data["json"] = lib.JSONS{Code: 200, Msg: "ok!"} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		c.Data["json"] = lib.JSONS{Code: 202, Msg: "T_snid Err!"} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 		c.ServeJSON() 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 		return 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 	} 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -490,10 +489,12 @@ func (c *DataController) Device_Sensor_Data_PDF() { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 	//use path 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 	//pdf.Image("logo.png", 100, 50, &gopdf.Rect{W: 50, H: 50}) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-	textw, _ := pdf.MeasureTextWidth(c.Admin_r.T_name) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	company, _ := Account.Read_Company_ById(c.T_pid) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	textw, _ := pdf.MeasureTextWidth(company.T_name) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 	pdf.SetX((595 / 2) - (textw / 2)) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 	pdf.SetY(40) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-	pdf.Text(c.Admin_r.T_name) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	pdf.Text(company.T_name) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 	// 线 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 	pdf.SetLineWidth(2) 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -594,50 +595,211 @@ func (c *DataController) Device_Sensor_Data_PDF() { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-// 大数据平台 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-func (c *DataController) Raw() { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-	admin_r := c.Admin_r 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-	T_SQL := c.GetString("T_SQL") 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-	T_SQL_ := strings.ToLower(T_SQL) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-	if strings.Contains(T_SQL_, ";") || 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-		//strings.Contains(T_SQL, "Admin")|| 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-		//strings.Contains(T_SQL, "Device ")|| 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-		//strings.Contains(T_SQL, "DeviceParameter")|| 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-		//strings.Contains(T_SQL, "DeviceSensor")|| 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-		//strings.Contains(T_SQL, "DeviceSnOld")|| 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-		//strings.Contains(T_SQL, "DeviceTask")|| 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-		//strings.Contains(T_SQL, "DeviceWarning")|| 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-		strings.Contains(T_SQL, "Logs") || 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-		strings.Contains(T_SQL, "SqlLogs") || 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-		strings.Contains(T_SQL, "Tokey") || 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-		strings.Contains(T_SQL, "UserLogs") || 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-		strings.Contains(T_SQL_, "show") || 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-		strings.Contains(T_SQL_, "create") || 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-		strings.Contains(T_SQL_, "drop") || 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-		strings.Contains(T_SQL_, "desc") || 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-		strings.Contains(T_SQL_, "alter") || 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-		strings.Contains(T_SQL_, "insert") || 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-		strings.Contains(T_SQL_, "update") || 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-		strings.Contains(T_SQL_, "delete") { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-		RawSql.Add_SqlLogs(admin_r.T_uuid, "Err:"+admin_r.T_user, T_SQL) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-		c.Data["json"] = lib.JSONS{Code: 201, Msg: "Err SQL!", Data: admin_r.T_name + " :你的行为 也被记录"} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+// 数据备份 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+func (c *DataController) Device_Sensor_Data_BackUp() { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	page, _ := c.GetInt("page") 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	if page < 1 { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		page = 1 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	page_z, _ := c.GetInt("page_z") 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	if page_z < 1 { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		page_z = conf.Page_size 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	T_snid := c.GetString("T_snid") 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	Time_start := c.GetString("Time_start") 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	Time_end := c.GetString("Time_end") 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	if len(T_snid) < 10 { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		c.Data["json"] = lib.JSONS{Code: 202, Msg: "T_snid Err!"} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		c.ServeJSON() 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		return 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	if _, is := lib.DateStrToDate(Time_start); !is { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		c.Data["json"] = lib.JSONS{Code: 202, Msg: "日期格式错误!"} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		c.ServeJSON() 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		return 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	if _, is := lib.DateStrToDate(Time_end); !is { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		c.Data["json"] = lib.JSONS{Code: 202, Msg: "日期格式错误!"} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		c.ServeJSON() 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		return 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	Time_start += " 00:00:00" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	Time_end += " 23:59:59" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	var r_jsons lib.R_JSONS 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	r_jsons.Data, r_jsons.Num = Device.Read_DeviceData_BackUp_List(T_snid, Time_start, Time_end, page, page_z) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	r_jsons.Page = page 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	r_jsons.Page_size = int(math.Ceil(float64(r_jsons.Num) / float64(page_z))) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	c.Data["json"] = lib.JSONS{Code: 200, Msg: "ok!", Data: r_jsons} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	c.ServeJSON() 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	return 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+// 数据备份pdf 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+func (c *DataController) Device_Sensor_Data_BackUp_PDF() { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	T_sn := c.GetString("T_sn") 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	T_id, _ := c.GetInt("T_id") 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	T_date := c.GetString("T_date") 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	T_snid := fmt.Sprintf("%s,%d", T_sn, T_id) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	date, is := lib.DateStrToDate(T_date) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	if !is { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		c.Data["json"] = lib.JSONS{Code: 202, Msg: "日期格式错误!"} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		c.ServeJSON() 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		return 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	Time_start := T_date + " 00:00:00" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	Time_end := T_date + " 23:59:59" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	var DeviceSensor_data []Device.DeviceData_R 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	DeviceSensor_data, _ = Device.Read_DeviceData_By_T_snid_List(T_snid, Time_start, Time_end, 0, 9999) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	var err error 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	pdf := &gopdf.GoPdf{} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	pdf.Start(gopdf.Config{PageSize: gopdf.Rect{W: 595.28, H: 841.89}}) //595.28, 841.89 = A4 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	//err = GetFont(pdf, "LiberationSerif-Regular.ttf") 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	//if err != nil { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	//	log.Fatalln(err) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	//} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	//err = pdf.SetFont("Ubuntu-L", "", 14) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	//if err != nil { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	//	log.Fatalln(err) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	//} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	err = pdf.AddTTFFont("simsun", "static/fonts/三极行楷简体-粗.ttf") 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	if err != nil { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		c.Data["json"] = lib.JSONS{Code: 204, Msg: "ok!", Data: err} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		c.ServeJSON() 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		return 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	err = pdf.SetFont("simsun", "", 24) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	if err != nil { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		c.Data["json"] = lib.JSONS{Code: 205, Msg: "ok!", Data: err} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		c.ServeJSON() 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		return 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	pdf.SetGrayFill(0.5) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	pdf.SetMargins(0, 20, 0, 20) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	pdf.AddPage() 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	//use path 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	//pdf.Image("logo.png", 100, 50, &gopdf.Rect{W: 50, H: 50}) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	company, _ := Account.Read_Company_ById(c.T_pid) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	textw, _ := pdf.MeasureTextWidth(company.T_name) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	pdf.SetX((595 / 2) - (textw / 2)) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	pdf.SetY(40) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	pdf.Text(company.T_name) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	// 线 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	pdf.SetLineWidth(2) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	pdf.SetLineType("dashed") 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	pdf.Line(10, 60, 585, 60) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	err = pdf.AddTTFFont("wts", "static/fonts/MiSans-Medium.ttf") 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	if err != nil { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		c.Data["json"] = lib.JSONS{Code: 206, Msg: "ok!", Data: err} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 		c.ServeJSON() 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 		return 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 	} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	err = pdf.SetFont("wts", "", 12) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	if err != nil { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		c.Data["json"] = lib.JSONS{Code: 207, Msg: "ok!", Data: err} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		c.ServeJSON() 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		return 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	//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) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-	if //!strings.Contains(T_SQL, "z_device_data_") || 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-	!strings.Contains(T_SQL_, "select") { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-		RawSql.Add_SqlLogs(admin_r.T_uuid, "Err:"+admin_r.T_user, T_SQL) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-		c.Data["json"] = lib.JSONS{Code: 201, Msg: "Err SQL!", Data: admin_r.T_name + " :你的行为 也被记录"} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	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, 60, 20, 255, 255, 255, lib.AlignCenter, lib.ValignMiddle) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	lib.RectFillColor(pdf, "湿度%", 12, 212, 120, 60, 20, 255, 255, 255, lib.AlignCenter, lib.ValignMiddle) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	lib.RectFillColor(pdf, "温度范围", 12, 272, 120, 100, 20, 255, 255, 255, lib.AlignCenter, lib.ValignMiddle) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	lib.RectFillColor(pdf, "湿度范围", 12, 362, 120, 100, 20, 255, 255, 255, lib.AlignCenter, lib.ValignMiddle) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	lib.RectFillColor(pdf, "记录时间", 12, 452, 120, 120, 20, 255, 255, 255, lib.AlignCenter, lib.ValignMiddle) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	var y float64 = 140 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	err = pdf.SetFont("wts", "", 10) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	if err != nil { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		c.Data["json"] = lib.JSONS{Code: 207, Msg: "ok!", Data: err} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 		c.ServeJSON() 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 		return 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 	} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	for i, v := range DeviceSensor_data { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		text := fmt.Sprintf(" %d ", i+1) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		var textH float64 = 25 // if text height is 25px. 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		pdf.SetNewY(y, textH) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		y = pdf.GetY() 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		//pdf.SetX(x) // must after pdf.SetNewY() called. 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		//err = pdf.Text(text) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		//if err != nil { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		//	log.Fatalln(err) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		//} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		T_t := fmt.Sprintf(" %.1f ", v.T_t) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		T_rh := fmt.Sprintf(" %.1f ", v.T_rh) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		T_Tlu := fmt.Sprintf(" %.1f ~ %.1f ", v.T_tl, v.T_tu) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		T_Rlu := fmt.Sprintf(" %.1f ~ %.1f ", v.T_rhl, v.T_rhu) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		T_time := fmt.Sprintf("%s", v.T_time) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		//if user_r.Admin_rh == 0 && strings.Contains(v.T_sn, "YD") { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		//	T_rh = "-" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		//	T_Rlu = "-" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		//} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		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) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-	RawSql.Add_SqlLogs(admin_r.T_uuid, "ok", T_SQL) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		lib.RectFillColor(pdf, T_time, 10, 452, y, 120, 20, 255, 255, 255, lib.AlignCenter, lib.ValignMiddle) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		y += 20 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-	c.Data["json"] = lib.JSONS{Code: 200, Msg: "ok!", Data: Device.Read_SqlRaw(T_SQL)} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	deviceSensor, _ := Device.Read_DeviceSensor_ByT_sn(T_sn, T_id) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	filenameStr := fmt.Sprintf("backup/sn/%s_%s_%s.pdf", lib.GetRandstring(8, "0123456789", 0), date.Format("2006_01_02"), deviceSensor.T_name) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	err = pdf.WritePdf(filenameStr) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	if err != nil { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		c.Data["json"] = lib.JSONS{Code: 207, Msg: "ok!", Data: err} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		c.ServeJSON() 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		return 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	// 上传 OSS 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	url, is := NatsServer.Qiniu_UploadFile(lib.GetCurrentDirectory()+"/"+filenameStr, filenameStr) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	if !is { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		c.Data["json"] = lib.JSONS{Code: 203, Msg: "oss!"} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		c.ServeJSON() 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		return 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	//删除目录 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	err = os.Remove(filenameStr) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	if err != nil { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		logs.Error(lib.FuncName(), err) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	c.Data["json"] = lib.JSONS{Code: 200, Msg: "ok!", Data: url} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 	c.ServeJSON() 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 	return 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 } 
			 |