| 
					
				 | 
			
			
				@@ -14,8 +14,10 @@ import ( 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 	"github.com/xuri/excelize/v2" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 	"math" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 	"os" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	"sort" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 	"strconv" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 	"strings" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	"sync" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 	"time" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 ) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -91,6 +93,58 @@ func (c *TaskDataController) TaskDataClass_List() { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 	return 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+func (c *TaskDataController) TaskDataClass_Edit() { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	T_uuid, _ := lib.GetAdminT_Uuid(c.Ctx.GetCookie("User_tokey"), c.GetString("User_tokey")) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	T_task_id := c.GetString("T_task_id") 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	T_sn := c.GetString("T_sn") 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	T_id := c.GetString("T_id") 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	Task_r, err := NatsServer.Read_Task(T_task_id) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	if err != nil { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		c.Data["json"] = lib.JSONS{Code: 202, Msg: "T_task_id 错误!"} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		c.ServeJSON() 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		return 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	err = Task.Update_TaskData_ByT_sn(Task_r.T_task_id, T_sn, T_id) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	if err != nil { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		c.Data["json"] = lib.JSONS{Code: 202, Msg: "修改失败!"} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		c.ServeJSON() 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		return 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	System.Add_UserLogs_T(T_uuid, "本地版-任务分裂", "修改分类数据"+Task_r.T_name, Task_r.T_task_id+"|"+T_sn+"|"+T_id) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	c.Data["json"] = lib.JSONS{Code: 200, Msg: "ok!"} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	c.ServeJSON() 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	return 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+func (c *TaskDataController) TaskDataClass_Del() { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	T_uuid, _ := lib.GetAdminT_Uuid(c.Ctx.GetCookie("User_tokey"), c.GetString("User_tokey")) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	T_task_id := c.GetString("T_task_id") 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	T_sn := c.GetString("T_sn") 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	Task_r, err := NatsServer.Read_Task(T_task_id) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	if err != nil { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		c.Data["json"] = lib.JSONS{Code: 202, Msg: "T_task_id 错误!"} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		c.ServeJSON() 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		return 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	err = Task.Delete_TaskData_ByT_sn(Task_r.T_task_id, T_sn) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	if err != nil { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		c.Data["json"] = lib.JSONS{Code: 202, Msg: "删除失败!"} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		c.ServeJSON() 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		return 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	System.Add_UserLogs_T(T_uuid, "本地版-任务分裂", "删除分类数据"+Task_r.T_name, Task_r.T_task_id+"|"+T_sn) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	c.Data["json"] = lib.JSONS{Code: 200, Msg: "ok!"} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	c.ServeJSON() 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	return 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 // 添加- 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 func (c *TaskDataController) TaskData_AddS() { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 	// 获取登录用户的uuid 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -129,7 +183,7 @@ func (c *TaskDataController) TaskData_AddS() { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 		} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 	} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-	System.Add_UserLogs_T(T_uuid, "任务数据", "添加数据"+Task_r.T_name, Task_r.T_task_id+"结果:"+string(len(T_Data_list))+"/"+string(T_Data_list_x)+"|=> "+T_Data) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	System.Add_UserLogs_T(T_uuid, "本地版-任务数据", "添加数据"+Task_r.T_name, Task_r.T_task_id+"结果:"+string(len(T_Data_list))+"/"+string(T_Data_list_x)+"|=> "+T_Data) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 	c.Data["json"] = lib.JSONS{Code: 200, Msg: "ok!", Data: strconv.Itoa(T_Data_list_x)} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 	c.ServeJSON() 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -162,7 +216,7 @@ func (c *TaskDataController) TaskData_Add() { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 		return 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 	} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-	System.Add_UserLogs_T(T_uuid, "任务数据", "添加数据"+Task_r.T_name, Task_r.T_task_id+"|"+T_sn+"|"+strconv.Itoa(T_id)+"|"+fmt.Sprintf("%.2f", T_t)+"|"+fmt.Sprintf("%.2f", T_rh)+T_time) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	System.Add_UserLogs_T(T_uuid, "本地版-任务数据", "添加数据"+Task_r.T_name, Task_r.T_task_id+"|"+T_sn+"|"+strconv.Itoa(T_id)+"|"+fmt.Sprintf("%.2f", T_t)+"|"+fmt.Sprintf("%.2f", T_rh)+T_time) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 	c.Data["json"] = lib.JSONS{Code: 200, Msg: "ok!"} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 	c.ServeJSON() 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -209,7 +263,7 @@ func (c *TaskDataController) TaskData_Up() { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 		return 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 	} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-	System.Add_UserLogs_T(T_uuid, "任务数据", "修改数据"+Task_r.T_name, Task_r.T_task_id+"|"+strconv.Itoa(Id)+"|"+fmt.Sprintf("%.2f", T_t)+"|"+fmt.Sprintf("%.2f", T_rh)+T_time) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	System.Add_UserLogs_T(T_uuid, "本地版-任务数据", "修改数据"+Task_r.T_name, Task_r.T_task_id+"|"+strconv.Itoa(Id)+"|"+fmt.Sprintf("%.2f", T_t)+"|"+fmt.Sprintf("%.2f", T_rh)+T_time) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 	c.Data["json"] = lib.JSONS{Code: 200, Msg: "ok!"} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 	c.ServeJSON() 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -242,7 +296,7 @@ func (c *TaskDataController) TaskData_Del() { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 		c.ServeJSON() 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 		return 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 	} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-	System.Add_UserLogs_T(T_uuid, "任务数据", "删除"+Task_r.T_name, Task_r.T_task_id+"|"+strconv.Itoa(Id)) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	System.Add_UserLogs_T(T_uuid, "本地版-任务数据", "删除"+Task_r.T_name, Task_r.T_task_id+"|"+strconv.Itoa(Id)) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 	c.Data["json"] = lib.JSONS{Code: 200, Msg: "ok!"} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 	c.ServeJSON() 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -275,7 +329,7 @@ func (c *TaskDataController) TaskData_Del_t_id() { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 		c.ServeJSON() 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 		return 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 	} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-	System.Add_UserLogs_T(T_uuid, "任务数据", "删除"+Task_r.T_name, Task_r.T_task_id+"|"+strconv.Itoa(Id)) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	System.Add_UserLogs_T(T_uuid, "本地版-任务数据", "删除"+Task_r.T_name, Task_r.T_task_id+"|"+strconv.Itoa(Id)) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 	c.Data["json"] = lib.JSONS{Code: 200, Msg: "ok!"} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 	c.ServeJSON() 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -371,7 +425,7 @@ func (c *TaskDataController) Check() { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 	} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 	type R_JSONS struct { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 		T_sn               string // SN 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-		T_id               int    // 编号 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		T_id               string // 编号 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 		T_unm              int    // 数据量 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 		T_time_interval    int64  // 时间间隔 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 		Time_start         string // 开始 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -387,14 +441,14 @@ func (c *TaskDataController) Check() { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 	for _, v := range List { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 		var r_json R_JSONS 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 		r_json.T_sn = v.T_sn 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-		r_json.T_id = v.T_id 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 		r_json.Result = 200 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-		DeviceSensor_data := Task.Read_TaskData_ById_List_(Task_r.T_task_id, v.T_sn, v.T_id) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		DeviceSensor_data := Task.Read_TaskData_ById_List_(Task_r.T_task_id, v.T_sn) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 		r_json.T_unm = len(DeviceSensor_data) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 		if r_json.T_unm > 2 { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+			r_json.T_id = DeviceSensor_data[0].T_id 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 			r_json.Time_end = DeviceSensor_data[len(DeviceSensor_data)-1].T_time 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 			r_json.Time_start = DeviceSensor_data[0].T_time 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -447,6 +501,116 @@ func (c *TaskDataController) Check() { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 	return 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+func (c *TaskDataController) Check_Asyn() { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	T_task_id := c.GetString("T_task_id") 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	Task_r, err := NatsServer.Read_Task(T_task_id) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	if err != nil { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		c.Data["json"] = lib.JSONS{Code: 202, Msg: "T_task_id 错误!"} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		c.ServeJSON() 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		return 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	type R_JSONS struct { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		T_sn               string // SN 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		T_id               string // 编号 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		T_unm              int    // 数据量 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		T_time_interval    int64  // 时间间隔 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		Time_start         string // 开始 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		Time_end           string //  结束 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		Result             int    //  200 OK, 201 可以补 , 202 不能补 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		Result_str         string //  提示内容 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		Result_Time_start  string //  2022-8-05 21:01 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		Result_Time_defect int64  //  缺失时间间隔 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	var r_jsons []R_JSONS 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	List := Task.Read_TaskData_ById_ClassList(Task_r.T_task_id) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	var limitMaxNum = 10 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	var chData = make(chan int, limitMaxNum) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	var jobGroup sync.WaitGroup 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	var tasknum = len(List) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	//处理任务,最多同时有10个协程 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	for i := 0; i < tasknum; i++ { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		chData <- 1 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		go func(index int, r_jsons *[]R_JSONS) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+			defer jobGroup.Done() 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+			jobGroup.Add(1) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+			var r_json R_JSONS 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+			r_json.T_sn = List[index].T_sn 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+			r_json.Result = 200 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+			DeviceSensor_data := Task.Read_TaskData_ById_List_(Task_r.T_task_id, List[index].T_sn) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+			r_json.T_unm = len(DeviceSensor_data) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+			if r_json.T_unm > 2 { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+				if List[index].T_sn == "000000000000004" { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+					fmt.Println("-------------", List[index].T_sn) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+				} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+				r_json.T_id = DeviceSensor_data[0].T_id 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+				r_json.Time_end = DeviceSensor_data[len(DeviceSensor_data)-1].T_time 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+				r_json.Time_start = DeviceSensor_data[0].T_time 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+				formatTime_a, _ := time.Parse("2006-1-2 15:04", DeviceSensor_data[0].T_time) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+				formatTime_b, _ := time.Parse("2006-1-2 15:04", DeviceSensor_data[1].T_time) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+				formatTime_x := formatTime_b.Unix() - formatTime_a.Unix() 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+				r_json.T_time_interval = formatTime_x 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+				println("formatTime_x:", List[index].T_id, List[index].T_sn, formatTime_x) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+				if formatTime_x > 60*30 || formatTime_x < 60 { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+					r_json.Result = 202 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+					r_json.Result_str = "数据异常(数据的第一个时间与第二个时间相差 " + strconv.FormatInt(formatTime_x, 10) + "秒),必须大于60秒,小于30分钟" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+					*r_jsons = append(*r_jsons, r_json) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+					<-chData 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+					return 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+				} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+				for data_i := 2; data_i < len(DeviceSensor_data); data_i++ { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+					formatTime_a = formatTime_b 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+					formatTime_b, _ = time.Parse("2006-1-2 15:04", DeviceSensor_data[data_i].T_time) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+					formatTime_ := formatTime_b.Unix() - formatTime_a.Unix() 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+					if formatTime_ < formatTime_x { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+						println("formatTime_x-:", formatTime_) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+						r_json.Result = 202 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+						r_json.Result_str = "开始时间:" + DeviceSensor_data[data_i-1].T_time + "  离下一条时间间隔:" + strconv.FormatInt(formatTime_, 10) + "秒,间隔小于时间间隔,不能自动补充" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+						break 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+					} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+					if formatTime_x != formatTime_ { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+						if formatTime_ > 60*30 { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+							println("formatTime_x-:", formatTime_) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+							r_json.Result = 202 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+							r_json.Result_str = "开始时间:" + DeviceSensor_data[data_i-1].T_time + "  离下一条时间间隔:" + strconv.FormatInt(formatTime_, 10) + "秒,相差时间大于30分钟,不能自动补充" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+							break 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+						} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+						r_json.Result = 201 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+						r_json.Result_str = "开始时间:" + DeviceSensor_data[data_i-1].T_time + "  离下一条时间间隔:" + strconv.FormatInt(formatTime_, 10) + "秒" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+						r_json.Result_Time_start = DeviceSensor_data[data_i-1].T_time 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+						r_json.Result_Time_defect = formatTime_ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+						println(r_json.Result_str) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+						break 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+					} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+				} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+			} else { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+				r_json.Result = 202 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+				r_json.Result_str = "数据量太少 必须大于 2条以上!" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+			} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+			*r_jsons = append(*r_jsons, r_json) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+			<-chData 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		}(i, &r_jsons) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	//使用Wait等待所有任务执行完毕 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	jobGroup.Wait() 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	sort.Slice(r_jsons, func(i, j int) bool { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		return r_jsons[i].T_id < r_jsons[j].T_id 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	}) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	c.Data["json"] = lib.JSONS{Code: 200, Msg: "ok!", Data: r_jsons} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	c.ServeJSON() 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	return 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 // 打包数据本地数据 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 func (c *TaskDataController) TaskData_Import_TaskData() { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 	// 获取登录用户的uuid 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -469,7 +633,7 @@ func (c *TaskDataController) TaskData_Import_TaskData() { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 		c.ServeJSON() 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 		return 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 	} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-	System.Add_UserLogs_T(T_uuid, "任务数据-打包本地数据", "导出线上数据Z_TaskData_"+T_task_id, org) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	System.Add_UserLogs_T(T_uuid, "本地版-任务数据-打包本地数据", "导出线上数据Z_TaskData_"+T_task_id, org) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 	i := 0 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 	flag := false 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -481,7 +645,7 @@ func (c *TaskDataController) TaskData_Import_TaskData() { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 			logs.Println("任务数据-打包本地数据", "线下导入数据Z_TaskData_"+T_task_id, err.Error()) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 		} else { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 			if Task.Check_TaskData_Num(T_task_id) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-				System.Add_UserLogs_T(T_uuid, "任务数据-打包本地数据", "线下导入数据Z_TaskData_"+T_task_id, org) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+				System.Add_UserLogs_T(T_uuid, "本地版-任务数据-打包本地数据", "线下导入数据Z_TaskData_"+T_task_id, org) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 				flag = true 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 				break 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 			} 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -527,7 +691,7 @@ func (c *TaskDataController) TaskData_Up_TaskData() { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 		c.ServeJSON() 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 		return 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 	} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-	System.Add_UserLogs_T(T_uuid, "任务数据-更新线上数据", "线上导入数据Z_TaskData_"+T_task_id, org) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	System.Add_UserLogs_T(T_uuid, "本地版-任务数据-更新线上数据", "线上导入数据Z_TaskData_"+T_task_id, org) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 	i := 0 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 	flag := false 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -538,7 +702,7 @@ func (c *TaskDataController) TaskData_Up_TaskData() { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 			logs.Println(T_uuid, "任务数据-更新线上数据", "线上导入数据Z_TaskData_"+T_task_id, err.Error()) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 		} else { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 			if Task.Check_TaskData_Num(T_task_id) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-				System.Add_UserLogs_T(T_uuid, "任务数据-更新线上数据", "线上导入数据Z_TaskData_"+T_task_id, org) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+				System.Add_UserLogs_T(T_uuid, "本地版-任务数据-更新线上数据", "线上导入数据Z_TaskData_"+T_task_id, org) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 				flag = true 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 				break 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 			} 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -564,7 +728,7 @@ func (c *TaskDataController) TaskData_Up_TaskData() { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 		return 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 	} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 	// 向线上用户日志表写入数据 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-	System.Add_UserLogs_T(T_uuid, "任务", "修改", Task_r) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	System.Add_UserLogs_T(T_uuid, "本地版-任务", "修改", Task_r) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 	c.Data["json"] = lib.JSONS{Code: 200, Msg: "ok!"} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 	c.ServeJSON() 
			 |