|
@@ -178,13 +178,14 @@ func (c *TaskDataController) TaskData_AddS() {
|
|
|
println(len(T_Data_list), "len(T_Data_list)")
|
|
|
var T_Data_list_x = 0
|
|
|
for _, v := range T_Data_list {
|
|
|
- // 2022-08-09 14:25:00|27.7|55.2
|
|
|
+ // 132|132|23.9|72.1|2023-04-30 07:03:00
|
|
|
if len(v) < 5 {
|
|
|
println(v, "len(v) < 5")
|
|
|
continue
|
|
|
}
|
|
|
v_list := strings.Split(v, "|")
|
|
|
- is := Task.Add_TaskData(Task_r.T_task_id, v_list[0], v_list[1], v_list[2], v_list[3], v_list[4])
|
|
|
+ t, _ := lib.ReplaceSeconds(v_list[4])
|
|
|
+ is := Task.Add_TaskData(Task_r.T_task_id, v_list[0], v_list[1], v_list[2], v_list[3], t)
|
|
|
if is {
|
|
|
T_Data_list_x += 1
|
|
|
}
|
|
@@ -1444,3 +1445,295 @@ func (c *TaskDataController) CopyFromPositionSN() {
|
|
|
c.ServeJSON()
|
|
|
return
|
|
|
}
|
|
|
+
|
|
|
+// 数据偏移到区间内
|
|
|
+func (c *TaskDataController) DataSkewingInterval() {
|
|
|
+ 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.GetFloat("TemperatureMin") // 温度
|
|
|
+ TemperatureMax, _ := c.GetFloat("TemperatureMax")
|
|
|
+ Tmin, Tmax := TemperatureMin, TemperatureMax
|
|
|
+
|
|
|
+ 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
|
|
|
+ }
|
|
|
+ errMsg := []string{}
|
|
|
+
|
|
|
+ for _, v := range SN_List {
|
|
|
+ sn_id := strings.Split(v, ",")
|
|
|
+ if len(sn_id) != 2 {
|
|
|
+ continue
|
|
|
+ }
|
|
|
+ sn, id := sn_id[0], sn_id[1]
|
|
|
+ min, max := Task.Read_TaskData_T_Min_Max(Task_r.T_task_id, sn, id, StartTime, EndTime)
|
|
|
+ if min < Tmin && max > Tmax {
|
|
|
+ errMsg = append(errMsg, fmt.Sprintf("【%s】最低温度[%.2f]低于给定的最低温度[%.2f],并且最高温度[%.2f]高于给定的最高温度[%.2f],无法偏移!", id, min, Tmin, max, Tmax))
|
|
|
+ continue
|
|
|
+ }
|
|
|
+ if min > Tmin && max < Tmax {
|
|
|
+ continue
|
|
|
+ //errMsg = append(errMsg, fmt.Sprintf("【%s】最低温度[%.2f]高于给定最低温度[%.2f],并且最高温度[%.2f]低于给定最高温度[%.2f],无须偏移!", id, min, Tmin, max, Tmax))
|
|
|
+ }
|
|
|
+
|
|
|
+ // 判断是否能向上偏移
|
|
|
+ if min < Tmin && max < Tmax && (Tmin-min+max) > Tmax {
|
|
|
+ errMsg = append(errMsg, fmt.Sprintf("【%s】偏移后最高温度[%.2f]将高于给定的最高温度[%.2f],无法偏移!", id, Tmin-min+max, Tmax))
|
|
|
+ continue
|
|
|
+ }
|
|
|
+
|
|
|
+ if max > Tmax && min > Tmin && (min-(max-Tmax)) < Tmin {
|
|
|
+ errMsg = append(errMsg, fmt.Sprintf("【%s】偏移后最低温度[%.2f]将低于给定的最低温度[%.2f],无法偏移!", id, min-(max-Tmax), Tmin))
|
|
|
+ continue
|
|
|
+ }
|
|
|
+ // 向上偏移
|
|
|
+ if min < Tmin && max < Tmax && (Tmin-min+max) <= Tmax {
|
|
|
+ Task.UpdateTaskDataTemperatureAndHumidity(Task_r.T_task_id, sn, id, StartTime, EndTime, Tmin-min, 0)
|
|
|
+ continue
|
|
|
+ }
|
|
|
+ // 向下偏移
|
|
|
+ if max > Tmax && min > Tmin && (min-(max-Tmax)) >= Tmin {
|
|
|
+ Task.UpdateTaskDataTemperatureAndHumidity(Task_r.T_task_id, sn, id, StartTime, EndTime, -(max - Tmax), 0)
|
|
|
+ continue
|
|
|
+ }
|
|
|
+
|
|
|
+ }
|
|
|
+ System.Add_UserLogs_T(T_uuid, "数据偏移到给定范围", fmt.Sprintf("数据偏移到给定范围(%s)[%s|%s],温度[%f-%f]", T_task_id, StartTime, EndTime, TemperatureMin, TemperatureMax), SN_List)
|
|
|
+ if len(errMsg) > 0 {
|
|
|
+ c.Data["json"] = lib.JSONS{202, "", errMsg}
|
|
|
+ c.ServeJSON()
|
|
|
+ return
|
|
|
+ }
|
|
|
+ //反馈成功
|
|
|
+ c.Data["json"] = lib.JSONS{200, "调整区间偏移值成功!", nil}
|
|
|
+ c.ServeJSON()
|
|
|
+ return
|
|
|
+}
|
|
|
+
|
|
|
+// 等比缩放
|
|
|
+func (c *TaskDataController) DataGeometricScale() {
|
|
|
+ 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
|
|
|
+ }
|
|
|
+ Temperature, _ := c.GetFloat("Temperature") // 温度比列
|
|
|
+ Humidity, _ := c.GetFloat("Humidity") // 适度比列
|
|
|
+
|
|
|
+ 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
|
|
|
+ }
|
|
|
+ errMsg := []string{}
|
|
|
+
|
|
|
+ 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.UpdateTaskDataTemperatureAndHumidityByGeometric(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)
|
|
|
+ if len(errMsg) > 0 {
|
|
|
+ c.Data["json"] = lib.JSONS{202, "", errMsg}
|
|
|
+ c.ServeJSON()
|
|
|
+ return
|
|
|
+ }
|
|
|
+ //反馈成功
|
|
|
+ c.Data["json"] = lib.JSONS{200, "数据等比缩放成功!", nil}
|
|
|
+ c.ServeJSON()
|
|
|
+ return
|
|
|
+}
|
|
|
+
|
|
|
+// 存档列表
|
|
|
+func (c *TaskDataController) TaskDataCopy_List() {
|
|
|
+
|
|
|
+ var r_jsons lib.R_JSONS
|
|
|
+ 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_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 cnt int64
|
|
|
+ List, cnt := Task.Read_TaskCopy_List(Task_r.T_task_id, page, page_z)
|
|
|
+ page_size := math.Ceil(float64(cnt) / float64(page_z))
|
|
|
+ r_jsons.List = List
|
|
|
+ r_jsons.Page = page
|
|
|
+ r_jsons.Page_size = int(page_size)
|
|
|
+ r_jsons.Pages = lib.Func_page(int64(page), int64(page_size))
|
|
|
+ r_jsons.Num = int(cnt)
|
|
|
+
|
|
|
+ c.Data["json"] = lib.JSONS{Code: 200, Msg: "ok!", Data: r_jsons}
|
|
|
+ c.ServeJSON()
|
|
|
+ return
|
|
|
+}
|
|
|
+
|
|
|
+// 添加存档
|
|
|
+func (c *TaskDataController) TaskDataCopy_Add() {
|
|
|
+
|
|
|
+ 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_ := Task.TaskCopy{
|
|
|
+ T_task_id: T_task_id,
|
|
|
+ T_time: time.Now().Format("2006-01-02 15:04:05"),
|
|
|
+ T_State: 1,
|
|
|
+ }
|
|
|
+
|
|
|
+ T_copy_id, is := Task.Add_TaskCopy(var_)
|
|
|
+ if !is {
|
|
|
+ c.Data["json"] = lib.JSONS{Code: 202, Msg: "添加失败!"}
|
|
|
+ c.ServeJSON()
|
|
|
+ return
|
|
|
+ }
|
|
|
+ // 创建数据表
|
|
|
+ Task.CREATE_TaskDataCopy(conf.Local_AliasName, T_copy_id)
|
|
|
+ // 将数据表存档
|
|
|
+ Task.TaskData_Arhiving(T_task_id, T_copy_id)
|
|
|
+
|
|
|
+ c.Data["json"] = lib.JSONS{Code: 200, Msg: "ok!", Data: T_copy_id}
|
|
|
+ c.ServeJSON()
|
|
|
+ return
|
|
|
+
|
|
|
+}
|
|
|
+
|
|
|
+// 删除存档
|
|
|
+func (c *TaskDataController) TaskDataCopy_Del() {
|
|
|
+
|
|
|
+ T_copy_id := c.GetString("T_copy_id")
|
|
|
+ r, err := Task.Read_TaskCopy(T_copy_id)
|
|
|
+ if err != nil {
|
|
|
+ c.Data["json"] = lib.JSONS{Code: 202, Msg: "T_copy_id 错误!"}
|
|
|
+ c.ServeJSON()
|
|
|
+ return
|
|
|
+ }
|
|
|
+
|
|
|
+ is := Task.Delete_TaskCopy(r)
|
|
|
+ if !is {
|
|
|
+ c.Data["json"] = lib.JSONS{Code: 202, Msg: "删除失败!"}
|
|
|
+ c.ServeJSON()
|
|
|
+ return
|
|
|
+ }
|
|
|
+
|
|
|
+ c.Data["json"] = lib.JSONS{Code: 200, Msg: "ok!", Data: T_copy_id}
|
|
|
+ c.ServeJSON()
|
|
|
+ return
|
|
|
+
|
|
|
+}
|
|
|
+
|
|
|
+// 存档恢复
|
|
|
+func (c *TaskDataController) TaskDataCopy_Recover() {
|
|
|
+ T_task_id := c.GetString("T_task_id")
|
|
|
+ T_copy_id := c.GetString("T_copy_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
|
|
|
+ }
|
|
|
+ _, err = Task.Read_TaskCopy(T_copy_id)
|
|
|
+ if err != nil {
|
|
|
+ c.Data["json"] = lib.JSONS{Code: 202, Msg: "T_copy_id 错误!"}
|
|
|
+ c.ServeJSON()
|
|
|
+ return
|
|
|
+ }
|
|
|
+
|
|
|
+ is := Task.TaskData_Recover(T_task_id, T_copy_id)
|
|
|
+ if !is {
|
|
|
+ c.Data["json"] = lib.JSONS{Code: 202, Msg: "删除失败!"}
|
|
|
+ c.ServeJSON()
|
|
|
+ return
|
|
|
+ }
|
|
|
+
|
|
|
+ c.Data["json"] = lib.JSONS{Code: 200, Msg: "ok!", Data: T_copy_id}
|
|
|
+ c.ServeJSON()
|
|
|
+ return
|
|
|
+
|
|
|
+}
|