|
@@ -12,6 +12,15 @@ import (
|
|
"ColdVerify_local/models/Task"
|
|
"ColdVerify_local/models/Task"
|
|
"errors"
|
|
"errors"
|
|
"fmt"
|
|
"fmt"
|
|
|
|
+ "math"
|
|
|
|
+ "net/http"
|
|
|
|
+ "os"
|
|
|
|
+ "sort"
|
|
|
|
+ "strconv"
|
|
|
|
+ "strings"
|
|
|
|
+ "sync"
|
|
|
|
+ "time"
|
|
|
|
+
|
|
"github.com/beego/beego/v2/client/orm"
|
|
"github.com/beego/beego/v2/client/orm"
|
|
beego "github.com/beego/beego/v2/server/web"
|
|
beego "github.com/beego/beego/v2/server/web"
|
|
"github.com/signintech/gopdf"
|
|
"github.com/signintech/gopdf"
|
|
@@ -21,14 +30,6 @@ import (
|
|
"gonum.org/v1/plot/plotter"
|
|
"gonum.org/v1/plot/plotter"
|
|
"gonum.org/v1/plot/vg"
|
|
"gonum.org/v1/plot/vg"
|
|
"gonum.org/v1/plot/vg/draw"
|
|
"gonum.org/v1/plot/vg/draw"
|
|
- "math"
|
|
|
|
- "net/http"
|
|
|
|
- "os"
|
|
|
|
- "sort"
|
|
|
|
- "strconv"
|
|
|
|
- "strings"
|
|
|
|
- "sync"
|
|
|
|
- "time"
|
|
|
|
)
|
|
)
|
|
|
|
|
|
type TaskDataController struct {
|
|
type TaskDataController struct {
|
|
@@ -2209,6 +2210,8 @@ func (c *TaskDataController) CopyFromPositionSN() {
|
|
CopyEndTime := copyTime.Add(endTime.Sub(startTime)).Format("2006-01-02 15:04")
|
|
CopyEndTime := copyTime.Add(endTime.Sub(startTime)).Format("2006-01-02 15:04")
|
|
// 时间间隔 分钟
|
|
// 时间间隔 分钟
|
|
T_saveT, _ := c.GetInt("T_saveT")
|
|
T_saveT, _ := c.GetInt("T_saveT")
|
|
|
|
+ T_switch_t, _ := c.GetBool("T_switch_t", true)
|
|
|
|
+ T_switch_h, _ := c.GetBool("T_switch_h", true)
|
|
|
|
|
|
SN_List := strings.Split(strings.Trim(c.GetString("SN_List"), "|"), "|")
|
|
SN_List := strings.Split(strings.Trim(c.GetString("SN_List"), "|"), "|")
|
|
if len(SN_List) != 1 {
|
|
if len(SN_List) != 1 {
|
|
@@ -2237,11 +2240,31 @@ func (c *TaskDataController) CopyFromPositionSN() {
|
|
}
|
|
}
|
|
sn, id_str := sn_id[0], sn_id[1]
|
|
sn, id_str := sn_id[0], sn_id[1]
|
|
List, _ := Task.Read_TaskData_ById_List_AES(Task_r.T_task_id, sn, id_str, StartTime, EndTime, 0, 9999)
|
|
List, _ := Task.Read_TaskData_ById_List_AES(Task_r.T_task_id, sn, id_str, StartTime, EndTime, 0, 9999)
|
|
|
|
+ // 获取目标位置的原有数据
|
|
|
|
+ CopyList, _ := Task.Read_TaskData_ById_List_AES(Task_r.T_task_id, CopySN, CopyID, CopyTime, CopyEndTime, 0, 9999)
|
|
|
|
+ copyDataMap := make(map[string]Task.TaskData_)
|
|
|
|
+ for _, data := range CopyList {
|
|
|
|
+ copyDataMap[data.T_time] = data
|
|
|
|
+ }
|
|
Task.DeleteTaskDataByTimeRange(Task_r.T_task_id, CopySN, CopyID, CopyTime, CopyEndTime)
|
|
Task.DeleteTaskDataByTimeRange(Task_r.T_task_id, CopySN, CopyID, CopyTime, CopyEndTime)
|
|
ct := copyTime
|
|
ct := copyTime
|
|
var valueStrings []string
|
|
var valueStrings []string
|
|
for _, data := range List {
|
|
for _, data := range List {
|
|
- valueStrings = append(valueStrings, fmt.Sprintf("('%s','%s',%v,%v,'%s')", CopySN, CopyID, data.T_t, data.T_rh, ct.Format("2006-01-02 15:04")))
|
|
|
|
|
|
+ t_t := data.T_t
|
|
|
|
+ t_rh := data.T_rh
|
|
|
|
+ timeKey := ct.Format("2006-01-02 15:04")
|
|
|
|
+ // 如果开关为false,使用目标位置原有的值
|
|
|
|
+ if !T_switch_t {
|
|
|
|
+ if copyData, exists := copyDataMap[timeKey]; exists {
|
|
|
|
+ t_t = copyData.T_t
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ if !T_switch_h {
|
|
|
|
+ if copyData, exists := copyDataMap[timeKey]; exists {
|
|
|
|
+ t_rh = copyData.T_rh
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ valueStrings = append(valueStrings, fmt.Sprintf("('%s','%s',%v,%v,'%s')", CopySN, CopyID, t_t, t_rh, timeKey))
|
|
ct = ct.Add(time.Second * time.Duration(T_saveT))
|
|
ct = ct.Add(time.Second * time.Duration(T_saveT))
|
|
}
|
|
}
|
|
err = Task.Batch_Adds_TaskData(T_task_id, valueStrings)
|
|
err = Task.Batch_Adds_TaskData(T_task_id, valueStrings)
|