| 
					
				 | 
			
			
				@@ -857,9 +857,8 @@ func (c *TaskDataController) CopyFromPosition() { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 			continue 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 		} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 		sn, id_str := sn_id[0], sn_id[1] 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-		id, _ := strconv.Atoi(id_str) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-		Task.DeleteTaskDataByTimeRange(Task_r.T_task_id, sn, id, CopyTime, CopyEndTime) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-		List, _ := Task.Read_TaskData_ById_List_AES(Task_r.T_task_id, sn, id, StartTime, EndTime, 0, 9999) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		Task.DeleteTaskDataByTimeRange(Task_r.T_task_id, sn, id_str, CopyTime, CopyEndTime) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		List, _ := Task.Read_TaskData_ById_List_AES(Task_r.T_task_id, sn, id_str, StartTime, EndTime, 0, 9999) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 		ct := copyTime 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 		go func(TaskDataList []Task.TaskData_, task_id string, T_saveT int) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 			for _, taskData := range TaskDataList { 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -923,8 +922,7 @@ func (c *TaskDataController) RepairSensorData() { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 			continue 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 		} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 		sn, id_str := sn_id[0], sn_id[1] 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-		id, _ := strconv.Atoi(id_str) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-		list, _ := Task.Read_TaskData_ById_List_AES(Task_r.T_task_id, sn, id, StartTime, EndTime, 0, 9999) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		list, _ := Task.Read_TaskData_ById_List_AES(Task_r.T_task_id, sn, id_str, StartTime, EndTime, 0, 9999) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 		for i := 0; i < len(list)-1; i++ { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 			current := list[i].T_time 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 			next := list[i+1].T_time 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -1013,13 +1011,12 @@ func (c *TaskDataController) DataSensorDataTrend() { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 			continue 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 		} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 		sn, id_str := sn_id[0], sn_id[1] 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-		id, _ := strconv.Atoi(id_str) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-		list, _ := Task.Read_TaskData_ById_List_AES(Task_r.T_task_id, sn, id, StartTime, EndTime, 0, 9999) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		list, _ := Task.Read_TaskData_ById_List_AES(Task_r.T_task_id, sn, id_str, StartTime, EndTime, 0, 9999) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 		if len(list) == 0 { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 			continue 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 		} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-		Task.DeleteTaskDataByTimeRange(Task_r.T_task_id, sn, id, StartTime, EndTime) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		Task.DeleteTaskDataByTimeRange(Task_r.T_task_id, sn, id_str, StartTime, EndTime) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 		first := list[0] 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 		last := list[len(list)-1] 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -1039,7 +1036,7 @@ func (c *TaskDataController) DataSensorDataTrend() { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 			Task.InsertTaskData(Task_r.T_task_id, Task.TaskData_{ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 				//加保存时间 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 				T_sn:   first.T_sn, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-				T_id:   strconv.Itoa(id), 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+				T_id:   id_str, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 				T_t:    tt, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 				T_rh:   ttrh, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 				T_time: ttime, 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -1220,8 +1217,7 @@ func (c *TaskDataController) DataSensorDataSmooth() { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 		} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 		sn := sn_id[0] 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 		id_str := sn_id[1] 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-		id, _ := strconv.Atoi(id_str) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-		list, _ := Task.Read_TaskData_ById_List_AES(Task_r.T_task_id, sn, id, StartTime, EndTime, 0, 9999) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		list, _ := Task.Read_TaskData_ById_List_AES(Task_r.T_task_id, sn, id_str, StartTime, EndTime, 0, 9999) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 		for i := 1; i < len(list); i++ { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 			n := list[i-1] 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 			old := list[i] 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -1257,3 +1253,186 @@ func (c *TaskDataController) DataSensorDataSmooth() { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 	c.Data["json"] = lib.JSONS{200, "操作成功处理" + fmt.Sprint(count) + "条数据", nil} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 	c.ServeJSON() 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+// CopyFromPosition 数据拷贝平均值 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+func (c *TaskDataController) CopyFromPositionAverageSN() { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	T_uuid, _ := lib.GetAdminT_Uuid(c.Ctx.GetCookie("User_tokey"), c.GetString("User_tokey")) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	//if !b_ { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	//	c.Data["json"] = lib.JSONS{Code: 201, Msg: "User_tokey Err!"} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	//	c.ServeJSON() 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	//	return 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	//} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	StartTime := c.GetString("StartTime") 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	startTime, ok := lib.TimeStrToTime(StartTime) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	if !ok { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		c.Data["json"] = lib.JSONS{Code: 202, Msg: "时间格式错误!"} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		c.ServeJSON() 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		return 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	EndTime := c.GetString("EndTime") 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	endTime, ok := lib.TimeStrToTime(EndTime) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	if !ok { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		c.Data["json"] = lib.JSONS{Code: 202, Msg: "时间格式错误!"} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		c.ServeJSON() 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		return 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	CopyTime := c.GetString("CopyTime") 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	CopySN := c.GetString("CopySN") 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	CopyID := c.GetString("CopyID") 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	copyTime, ok := lib.TimeStrToTime(CopyTime) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	// 时间间隔 s 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	T_saveT, _ := c.GetInt("T_saveT") 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	if !ok { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		c.Data["json"] = lib.JSONS{Code: 202, Msg: "时间格式错误!"} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		c.ServeJSON() 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		return 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	CopyEndTime := copyTime.Add(endTime.Sub(startTime)).Format("2006-01-02 15:04:05") 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	SN_List := strings.Split(strings.Trim(c.GetString("SN_List"), "|"), "|") 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	if len(SN_List) != 2 { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		c.Data["json"] = lib.JSONS{Code: 202, Msg: "SN_List Err!"} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		c.ServeJSON() 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		return 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	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 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	if Task_r.T_collection_state == 2 { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		c.Data["json"] = lib.JSONS{Code: 202, Msg: "数据采集中,请稍后!"} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		c.ServeJSON() 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		return 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	sn_id1 := strings.Split(SN_List[0], ",") 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	if len(sn_id1) != 2 { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		c.Data["json"] = lib.JSONS{Code: 202, Msg: "SN_List Err!"} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		c.ServeJSON() 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		return 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	sn1, id_str1 := sn_id1[0], sn_id1[1] 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	sn_id2 := strings.Split(SN_List[1], ",") 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	if len(sn_id2) != 2 { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		c.Data["json"] = lib.JSONS{Code: 202, Msg: "SN_List Err!"} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		c.ServeJSON() 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		return 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	sn2, id_str2 := sn_id2[0], sn_id2[1] 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	List1, _ := Task.Read_TaskData_ById_List_AES(Task_r.T_task_id, sn1, id_str1, StartTime, EndTime, 0, 9999) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	List2, _ := Task.Read_TaskData_ById_List_AES(Task_r.T_task_id, sn2, id_str2, StartTime, EndTime, 0, 9999) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	var list []Task.TaskData_ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	ct := copyTime 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	for i := 0; i < len(List1); i++ { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		if List1[i].T_time != List2[i].T_time { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+			ct = ct.Add(time.Second * time.Duration(T_saveT)) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+			continue 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		T_t := (List1[i].T_t + List2[i].T_t) / 2 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		T_rh := (List1[i].T_rh + List2[i].T_rh) / 2 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		list = append(list, Task.TaskData_{ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+			T_sn:   CopySN, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+			T_id:   CopyID, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+			T_t:    T_t, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+			T_rh:   T_rh, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+			T_time: ct.Format("2006-01-02 15:04:05"), 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		}) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		ct = ct.Add(time.Second * time.Duration(T_saveT)) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	Task.DeleteTaskDataByTimeRange(Task_r.T_task_id, CopySN, CopyID, CopyTime, CopyEndTime) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	go func(TaskDataList []Task.TaskData_, task_id string) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		for _, taskData := range TaskDataList { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+			Task.InsertTaskData(task_id, taskData) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	}(list, Task_r.T_task_id) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	System.Add_UserLogs_T(T_uuid, "数据复制平均值", fmt.Sprintf("数据复制(%s)[%s|%s],复制时间:%s,,时间间隔:%d", T_task_id, StartTime, EndTime, CopyTime, T_saveT), SN_List) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	c.Data["json"] = lib.JSONS{200, "数据复制已提交后台处理!", nil} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	c.ServeJSON() 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	return 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+// CopyFromPosition 数据拷贝 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+func (c *TaskDataController) CopyFromPositionSN() { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	T_uuid, _ := lib.GetAdminT_Uuid(c.Ctx.GetCookie("User_tokey"), c.GetString("User_tokey")) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	//if !b_ { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	//	c.Data["json"] = lib.JSONS{Code: 201, Msg: "User_tokey Err!"} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	//	c.ServeJSON() 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	//	return 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	//} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	StartTime := c.GetString("StartTime") 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	startTime, ok := lib.TimeStrToTime(StartTime) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	if !ok { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		c.Data["json"] = lib.JSONS{Code: 202, Msg: "时间格式错误!"} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		c.ServeJSON() 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		return 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	EndTime := c.GetString("EndTime") 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	endTime, ok := lib.TimeStrToTime(EndTime) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	if !ok { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		c.Data["json"] = lib.JSONS{Code: 202, Msg: "时间格式错误!"} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		c.ServeJSON() 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		return 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	CopyTime := c.GetString("CopyTime") 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	copyTime, ok := lib.TimeStrToTime(CopyTime) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	CopySN := c.GetString("CopySN") 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	CopyID := c.GetString("CopyID") 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	if !ok { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		c.Data["json"] = lib.JSONS{Code: 202, Msg: "时间格式错误!"} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		c.ServeJSON() 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		return 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	CopyEndTime := copyTime.Add(endTime.Sub(startTime)).Format("2006-01-02 15:04:05") 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	// 时间间隔 分钟 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	T_saveT, _ := c.GetInt("T_saveT") 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	SN_List := strings.Split(strings.Trim(c.GetString("SN_List"), "|"), "|") 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	if len(SN_List) != 1 { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		c.Data["json"] = lib.JSONS{202, "SN_List Err!", nil} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		c.ServeJSON() 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		return 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	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 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	if Task_r.T_collection_state == 2 { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		c.Data["json"] = lib.JSONS{Code: 202, Msg: "数据采集中,请稍后!"} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		c.ServeJSON() 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		return 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	sn_id := strings.Split(SN_List[0], ",") 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	if len(sn_id) != 2 { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		c.Data["json"] = lib.JSONS{202, "SN_List Err!", nil} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		c.ServeJSON() 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		return 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	sn, id_str := sn_id[0], sn_id[1] 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	Task.DeleteTaskDataByTimeRange(Task_r.T_task_id, CopySN, CopyID, CopyTime, CopyEndTime) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	List, _ := Task.Read_TaskData_ById_List_AES(Task_r.T_task_id, sn, id_str, StartTime, EndTime, 0, 9999) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	ct := copyTime 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	go func(TaskDataList []Task.TaskData_, task_id string, T_saveT int) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		for _, taskData := range TaskDataList { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+			taskData.T_time = ct.Format("2006-01-02 15:04:05") 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+			taskData.T_sn = CopySN 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+			taskData.T_id = CopyID 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+			Task.InsertTaskData(task_id, taskData) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+			ct = ct.Add(time.Second * time.Duration(T_saveT)) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	}(List, Task_r.T_task_id, T_saveT) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	System.Add_UserLogs_T(T_uuid, "数据复制", fmt.Sprintf("数据复制(%s)[%s|%s],复制时间:%s,,时间间隔:%d", T_task_id, StartTime, EndTime, CopyTime, T_saveT), SN_List) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	c.Data["json"] = lib.JSONS{200, "数据复制已提交后台处理!", nil} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	c.ServeJSON() 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	return 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+} 
			 |