|
@@ -14,7 +14,6 @@ import (
|
|
|
"github.com/xuri/excelize/v2"
|
|
|
"math"
|
|
|
"os"
|
|
|
- "sort"
|
|
|
"strconv"
|
|
|
"strings"
|
|
|
"sync"
|
|
@@ -551,7 +550,7 @@ func (c *TaskDataController) Check_Asyn() {
|
|
|
|
|
|
List := Task.Read_TaskData_ById_ClassList(Task_r.T_task_id)
|
|
|
|
|
|
- r_jsons := make([]R_JSONS, 0)
|
|
|
+ r_jsons := make([]R_JSONS, len(List))
|
|
|
var limitMaxNum = 10
|
|
|
var chData = make(chan int, limitMaxNum)
|
|
|
var jobGroup sync.WaitGroup
|
|
@@ -625,12 +624,18 @@ func (c *TaskDataController) Check_Asyn() {
|
|
|
}
|
|
|
//使用Wait等待所有任务执行完毕
|
|
|
jobGroup.Wait()
|
|
|
+ jsonsMap := map[string]R_JSONS{}
|
|
|
+ resp := make([]R_JSONS, 0)
|
|
|
|
|
|
- sort.Slice(r_jsons, func(i, j int) bool {
|
|
|
- return r_jsons[i].T_id < r_jsons[j].T_id
|
|
|
- })
|
|
|
+ for _, json := range r_jsons {
|
|
|
+ jsonsMap[json.T_id] = json
|
|
|
+ }
|
|
|
|
|
|
- c.Data["json"] = lib.JSONS{Code: 200, Msg: "ok!", Data: r_jsons}
|
|
|
+ for _, v := range List {
|
|
|
+ resp = append(resp, jsonsMap[v.T_id])
|
|
|
+ }
|
|
|
+
|
|
|
+ c.Data["json"] = lib.JSONS{Code: 200, Msg: "ok!", Data: resp}
|
|
|
c.ServeJSON()
|
|
|
return
|
|
|
}
|
|
@@ -772,6 +777,13 @@ func (c *TaskDataController) TaskData_Up_TaskData_Back() {
|
|
|
c.ServeJSON()
|
|
|
return
|
|
|
}
|
|
|
+
|
|
|
+ if Task_r.T_delivery_state == 2 {
|
|
|
+ c.Data["json"] = lib.JSONS{Code: 200, Msg: "ok!"}
|
|
|
+ c.ServeJSON()
|
|
|
+ return
|
|
|
+ }
|
|
|
+
|
|
|
// 采集中
|
|
|
Task_r.T_delivery_state = 2
|
|
|
err = NatsServer.Update_Task(Task_r)
|
|
@@ -790,5 +802,461 @@ func (c *TaskDataController) TaskData_Up_TaskData_Back() {
|
|
|
|
|
|
c.Data["json"] = lib.JSONS{Code: 200, Msg: "ok!"}
|
|
|
c.ServeJSON()
|
|
|
+ return
|
|
|
+
|
|
|
+}
|
|
|
+
|
|
|
+// CopyFromPosition 数据拷贝
|
|
|
+func (c *TaskDataController) CopyFromPosition() {
|
|
|
+ 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)
|
|
|
+ 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"), "|"), "|")
|
|
|
+
|
|
|
+ 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
|
|
|
+ }
|
|
|
+
|
|
|
+ for _, v := range SN_List {
|
|
|
+ sn_id := strings.Split(v, ",")
|
|
|
+ if len(sn_id) != 2 {
|
|
|
+ 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)
|
|
|
+ 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")
|
|
|
+ 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
|
|
|
+}
|
|
|
+
|
|
|
+// RepairSensorData 数据补漏
|
|
|
+func (c *TaskDataController) RepairSensorData() {
|
|
|
+ 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")
|
|
|
+ _, ok := lib.TimeStrToTime(StartTime)
|
|
|
+ if !ok {
|
|
|
+ c.Data["json"] = lib.JSONS{Code: 202, Msg: "时间格式错误!"}
|
|
|
+ c.ServeJSON()
|
|
|
+ return
|
|
|
+ }
|
|
|
+ EndTime := c.GetString("EndTime")
|
|
|
+ _, ok = lib.TimeStrToTime(EndTime)
|
|
|
+ if !ok {
|
|
|
+ c.Data["json"] = lib.JSONS{Code: 202, Msg: "时间格式错误!"}
|
|
|
+ c.ServeJSON()
|
|
|
+ return
|
|
|
+ }
|
|
|
+ // 时间间隔 秒
|
|
|
+ saveTime, _ := c.GetInt("T_saveT")
|
|
|
+
|
|
|
+ SN_List := strings.Split(strings.Trim(c.GetString("SN_List"), "|"), "|")
|
|
|
+
|
|
|
+ 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
|
|
|
+ }
|
|
|
+
|
|
|
+ num := 0
|
|
|
+ for _, v := range SN_List {
|
|
|
+ sn_id := strings.Split(v, ",")
|
|
|
+ if len(sn_id) != 2 {
|
|
|
+ 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)
|
|
|
+ for i := 0; i < len(list)-1; i++ {
|
|
|
+ current := list[i].T_time
|
|
|
+ next := list[i+1].T_time
|
|
|
+ c, _ := time.Parse("2006-01-02 15:04:05", current)
|
|
|
+ n, _ := time.Parse("2006-01-02 15:04:05", next)
|
|
|
+ interval := n.Unix() - c.Unix()
|
|
|
+ logs.Debug("时间间隔:", interval, "保存时间:", saveTime)
|
|
|
+ fmt.Println("当前:", current, "下一个:", next)
|
|
|
+ if int(interval) > saveTime {
|
|
|
+ ttInterval := list[i+1].T_t - list[i].T_t
|
|
|
+ ttt := list[i].T_t // 温度临时变量
|
|
|
+ trhInterval := list[i+1].T_rh - list[i].T_rh
|
|
|
+ trht := list[i].T_rh //湿度临时变量
|
|
|
+ count := (int(interval) - saveTime) / saveTime
|
|
|
+ if int(interval)%saveTime != 0 {
|
|
|
+ count++
|
|
|
+ }
|
|
|
+ num += count
|
|
|
+ for k := 0; k < count; k++ {
|
|
|
+ t := c.Add(time.Second * time.Duration(saveTime)).Format("2006-01-02 15:04:05") //时间临时变量
|
|
|
+ ttt += ttInterval / float32(count)
|
|
|
+ trht += trhInterval / float32(count)
|
|
|
+ Task.InsertTaskData(Task_r.T_task_id, Task.TaskData_{
|
|
|
+ T_sn: list[i].T_sn,
|
|
|
+ T_id: list[i].T_id,
|
|
|
+ T_t: ttt,
|
|
|
+ T_rh: trht,
|
|
|
+ T_time: t,
|
|
|
+ })
|
|
|
+ c = c.Add(time.Second * time.Duration(saveTime))
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ System.Add_UserLogs_T(T_uuid, "数据补漏", fmt.Sprintf("数据补漏(%s)[%s|%s],时间间隔:%d", T_task_id, StartTime, EndTime, saveTime), SN_List)
|
|
|
+
|
|
|
+ c.Data["json"] = lib.JSONS{200, fmt.Sprintf("补漏完成!共补漏%d条数据", num), nil}
|
|
|
+ c.ServeJSON()
|
|
|
+ return
|
|
|
+}
|
|
|
+
|
|
|
+// DataSensorDataTrend 数据趋势
|
|
|
+func (c *TaskDataController) DataSensorDataTrend() {
|
|
|
+ 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")
|
|
|
+ _, ok := lib.TimeStrToTime(StartTime)
|
|
|
+ if !ok {
|
|
|
+ c.Data["json"] = lib.JSONS{Code: 202, Msg: "时间格式错误!"}
|
|
|
+ c.ServeJSON()
|
|
|
+ return
|
|
|
+ }
|
|
|
+ EndTime := c.GetString("EndTime")
|
|
|
+ _, ok = lib.TimeStrToTime(EndTime)
|
|
|
+ if !ok {
|
|
|
+ c.Data["json"] = lib.JSONS{Code: 202, Msg: "时间格式错误!"}
|
|
|
+ c.ServeJSON()
|
|
|
+ return
|
|
|
+ }
|
|
|
+ // 时间间隔 秒
|
|
|
+ saveTime, _ := c.GetInt("T_saveT")
|
|
|
+
|
|
|
+ SN_List := strings.Split(strings.Trim(c.GetString("SN_List"), "|"), "|")
|
|
|
|
|
|
+ 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
|
|
|
+ }
|
|
|
+
|
|
|
+ for _, v := range SN_List {
|
|
|
+ sn_id := strings.Split(v, ",")
|
|
|
+ if len(sn_id) != 2 {
|
|
|
+ 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)
|
|
|
+ if len(list) == 0 {
|
|
|
+ continue
|
|
|
+ }
|
|
|
+
|
|
|
+ Task.DeleteTaskDataByTimeRange(Task_r.T_task_id, sn, id, StartTime, EndTime)
|
|
|
+ first := list[0]
|
|
|
+ last := list[len(list)-1]
|
|
|
+
|
|
|
+ current, _ := time.Parse("2006-01-02 15:04:05", first.T_time)
|
|
|
+ next, _ := time.Parse("2006-01-02 15:04:05", last.T_time)
|
|
|
+ interval := next.Sub(current).Seconds() / float64(saveTime)
|
|
|
+ ttInterval := (last.T_t - first.T_t) / float32(interval)
|
|
|
+ trhInterval := (last.T_rh - first.T_rh) / float32(interval)
|
|
|
+ tt := first.T_t
|
|
|
+ ttrh := first.T_rh
|
|
|
+
|
|
|
+ for current.Unix() < next.Unix() {
|
|
|
+ tt += ttInterval
|
|
|
+ ttrh += trhInterval
|
|
|
+ ttime := current.Format("2006-01-02 15:04:05")
|
|
|
+
|
|
|
+ Task.InsertTaskData(Task_r.T_task_id, Task.TaskData_{
|
|
|
+ //加保存时间
|
|
|
+ T_sn: first.T_sn,
|
|
|
+ T_id: strconv.Itoa(id),
|
|
|
+ T_t: tt,
|
|
|
+ T_rh: ttrh,
|
|
|
+ T_time: ttime,
|
|
|
+ })
|
|
|
+ current = current.Add(time.Second * time.Duration(saveTime))
|
|
|
+ }
|
|
|
+
|
|
|
+ }
|
|
|
+ System.Add_UserLogs_T(T_uuid, "数据趋势", fmt.Sprintf("数据趋势(%s)[%s|%s],时间间隔:%d", T_task_id, StartTime, EndTime, saveTime), SN_List)
|
|
|
+
|
|
|
+ c.Data["json"] = lib.JSONS{200, "设置趋势操作成功", nil}
|
|
|
+ c.ServeJSON()
|
|
|
+ return
|
|
|
+}
|
|
|
+
|
|
|
+// UpdateRand 数据随机
|
|
|
+func (c *TaskDataController) UpdateRand() {
|
|
|
+ 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")
|
|
|
+ _, ok := lib.TimeStrToTime(StartTime)
|
|
|
+ if !ok {
|
|
|
+ c.Data["json"] = lib.JSONS{Code: 202, Msg: "时间格式错误!"}
|
|
|
+ c.ServeJSON()
|
|
|
+ return
|
|
|
+ }
|
|
|
+ EndTime := c.GetString("EndTime")
|
|
|
+ _, ok = lib.TimeStrToTime(EndTime)
|
|
|
+ if !ok {
|
|
|
+ c.Data["json"] = lib.JSONS{Code: 202, Msg: "时间格式错误!"}
|
|
|
+ c.ServeJSON()
|
|
|
+ return
|
|
|
+ }
|
|
|
+ TemperatureMin, _ := c.GetInt("TemperatureMin") // 温度
|
|
|
+ TemperatureMax, _ := c.GetInt("TemperatureMax")
|
|
|
+ HumidityMax, _ := c.GetInt("HumidityMax") // 湿度
|
|
|
+ HumidityMin, _ := c.GetInt("HumidityMin")
|
|
|
+
|
|
|
+ SN_List := strings.Split(strings.Trim(c.GetString("SN_List"), "|"), "|")
|
|
|
+
|
|
|
+ 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
|
|
|
+ }
|
|
|
+
|
|
|
+ for _, v := range SN_List {
|
|
|
+ sn_id := strings.Split(v, ",")
|
|
|
+ if len(sn_id) != 2 {
|
|
|
+ continue
|
|
|
+ }
|
|
|
+ sn, id := sn_id[0], sn_id[1]
|
|
|
+ Task.UpdateTaskDataTemperatureAndHumidityRandom(Task_r.T_task_id, sn, id, StartTime, EndTime, TemperatureMax, TemperatureMin, HumidityMax, HumidityMin)
|
|
|
+ }
|
|
|
+ System.Add_UserLogs_T(T_uuid, "数据随机", fmt.Sprintf("数据随机(%s)[%s|%s],温度[%d-%d],湿度[%d-%d]", T_task_id, StartTime, EndTime, TemperatureMin, TemperatureMax, HumidityMax, HumidityMin), SN_List)
|
|
|
+
|
|
|
+ //反馈成功
|
|
|
+ c.Data["json"] = lib.JSONS{200, "调整随机偏移值成功!", nil}
|
|
|
+ c.ServeJSON()
|
|
|
+ return
|
|
|
+}
|
|
|
+
|
|
|
+// UpdateFix 更新固定值
|
|
|
+func (c *TaskDataController) UpdateFix() {
|
|
|
+ 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")
|
|
|
+ _, ok := lib.TimeStrToTime(StartTime)
|
|
|
+ if !ok {
|
|
|
+ c.Data["json"] = lib.JSONS{Code: 202, Msg: "时间格式错误!"}
|
|
|
+ c.ServeJSON()
|
|
|
+ return
|
|
|
+ }
|
|
|
+ EndTime := c.GetString("EndTime")
|
|
|
+ _, ok = lib.TimeStrToTime(EndTime)
|
|
|
+ if !ok {
|
|
|
+ c.Data["json"] = lib.JSONS{Code: 202, Msg: "时间格式错误!"}
|
|
|
+ c.ServeJSON()
|
|
|
+ return
|
|
|
+ }
|
|
|
+ FixTemperature := c.GetString("FixTemperature")
|
|
|
+ FixHumidity := c.GetString("FixHumidity")
|
|
|
+ //2.得到数据进行统一设置访问修改
|
|
|
+ humidity, _ := strconv.ParseFloat(FixHumidity, 64)
|
|
|
+ temperature, _ := strconv.ParseFloat(FixTemperature, 64)
|
|
|
+
|
|
|
+ SN_List := strings.Split(strings.Trim(c.GetString("SN_List"), "|"), "|")
|
|
|
+
|
|
|
+ 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
|
|
|
+ }
|
|
|
+
|
|
|
+ //3.循环更新数据
|
|
|
+ for _, v := range SN_List {
|
|
|
+ sn_id := strings.Split(v, ",")
|
|
|
+ if len(sn_id) != 2 {
|
|
|
+ continue
|
|
|
+ }
|
|
|
+ sn, id := sn_id[0], sn_id[1]
|
|
|
+ Task.UpdateTaskDataTemperatureAndHumidity(Task_r.T_task_id, sn, id, StartTime, EndTime, temperature, humidity)
|
|
|
+ }
|
|
|
+ System.Add_UserLogs_T(T_uuid, "更新固定值", fmt.Sprintf("更新固定值(%s)[%s|%s],温度[%f],湿度[%f]", T_task_id, StartTime, EndTime, temperature, humidity), SN_List)
|
|
|
+
|
|
|
+ //4.反馈成功
|
|
|
+ c.Data["json"] = lib.JSONS{200, "调整固定偏移值成功!", nil}
|
|
|
+ c.ServeJSON()
|
|
|
+}
|
|
|
+
|
|
|
+// DataSensorDataSmooth 数据平滑
|
|
|
+func (c *TaskDataController) DataSensorDataSmooth() {
|
|
|
+ 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")
|
|
|
+ _, ok := lib.TimeStrToTime(StartTime)
|
|
|
+ if !ok {
|
|
|
+ c.Data["json"] = lib.JSONS{Code: 202, Msg: "时间格式错误!"}
|
|
|
+ c.ServeJSON()
|
|
|
+ return
|
|
|
+ }
|
|
|
+ EndTime := c.GetString("EndTime")
|
|
|
+ _, ok = lib.TimeStrToTime(EndTime)
|
|
|
+ if !ok {
|
|
|
+ c.Data["json"] = lib.JSONS{Code: 202, Msg: "时间格式错误!"}
|
|
|
+ c.ServeJSON()
|
|
|
+ return
|
|
|
+ }
|
|
|
+ tRange, _ := c.GetFloat("tRange")
|
|
|
+ hRange, _ := c.GetFloat("hRange")
|
|
|
+
|
|
|
+ SN_List := strings.Split(strings.Trim(c.GetString("SN_List"), "|"), "|")
|
|
|
+
|
|
|
+ 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
|
|
|
+ }
|
|
|
+
|
|
|
+ var count int
|
|
|
+ for _, v := range SN_List {
|
|
|
+ sn_id := strings.Split(v, ",")
|
|
|
+ if len(sn_id) != 2 {
|
|
|
+ continue
|
|
|
+ }
|
|
|
+ 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)
|
|
|
+ for i := 1; i < len(list); i++ {
|
|
|
+ n := list[i-1]
|
|
|
+ old := list[i]
|
|
|
+ newO := list[i]
|
|
|
+ //变化差
|
|
|
+ var tInterval = old.T_t - n.T_t
|
|
|
+ var hInterval = old.T_rh - n.T_rh
|
|
|
+ fmt.Println("温度:", n.T_t, "温度next:", old.T_t, "差值:", n.T_t-old.T_t)
|
|
|
+ if tRange != 0 {
|
|
|
+ if tInterval > float32(tRange) {
|
|
|
+ newO.T_t = n.T_t + float32(tRange)
|
|
|
+ } else if tInterval < -float32(tRange) {
|
|
|
+ newO.T_t = n.T_t - float32(tRange)
|
|
|
+ }
|
|
|
+ }
|
|
|
+ if hRange != 0 {
|
|
|
+ if hInterval > float32(hRange) {
|
|
|
+ newO.T_rh = n.T_rh + float32(hRange)
|
|
|
+ } else if hInterval < -float32(hRange) {
|
|
|
+ newO.T_rh = n.T_rh - float32(hRange)
|
|
|
+ }
|
|
|
+ }
|
|
|
+ if old.T_rh != newO.T_rh || old.T_t != newO.T_t {
|
|
|
+ fmt.Println("原始数据:", old, "新数据:", newO)
|
|
|
+ list[i] = newO
|
|
|
+ Task.UpdateTaskData(Task_r.T_task_id, sn, id_str, old, newO)
|
|
|
+ count++
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ System.Add_UserLogs_T(T_uuid, "数据平滑", fmt.Sprintf("数据平滑(%s)[%s|%s],温度[%f],湿度[%f]", T_task_id, StartTime, EndTime, tRange, hRange), SN_List)
|
|
|
+
|
|
|
+ c.Data["json"] = lib.JSONS{200, "操作成功处理" + fmt.Sprint(count) + "条数据", nil}
|
|
|
+ c.ServeJSON()
|
|
|
}
|