浏览代码

update:任务输入sn自动同步3.0校准时间

zoie 9 月之前
父节点
当前提交
6ea9564272
共有 2 个文件被更改,包括 79 次插入0 次删除
  1. 63 0
      Nats/NatsServer/NatsColdApi.go
  2. 16 0
      controllers/Task.go

+ 63 - 0
Nats/NatsServer/NatsColdApi.go

@@ -8,6 +8,42 @@ import (
 	"time"
 )
 
+
+type Device struct {
+	T_sn              string    // 设备序列号
+	T_pid             int       // Account.Company 绑定公司
+	T_devName         string    // 设备名称  20字
+	T_protocol        int       // 冷链通讯协议 1 :1.0协议   2 :2.0协议    3 :3.0协议
+	T_mqttid          string    // MQTT 服务ID
+	T_VerifyTime      time.Time // 验证时间
+	T_CalibrationTime time.Time // 校准时间
+	T_PatrolTime      time.Time // 巡检时间
+	T_abandonTime     time.Time // 弃用时间
+	T_ist             int       // 温度   1开启   2关闭
+	T_ish             int       // 湿度   1开启   2关闭
+
+	T_State int // 0 屏蔽   1 正常  (屏蔽后 只有内部管理员才能看到,用户 输入SN\名称 搜索时 也能看到)
+
+	// 设备同步参数
+	T_Dattery  int    // 电量
+	T_Site     string // GPS
+	T_monitor  int    // 监控状态 0 未监控 1 监控  停止记录
+	T_online   int    // 在线状态 0 未启用  1 在线  2 离线
+	T_online_s int    // 在线状态-备用  0 未启用  1 在线  2 离线
+
+	// 硬件信息
+	T_model string // KF200BG  设备型号
+	T_sver  string // "1.0.0",//软件版本
+	T_hver  string // "1.0.0",//硬件版本
+	T_imei  string // "867387060327718",//模组imei
+	T_iccid string // "89860477102170049750",//sim卡号
+	T_rssi  string // "80",//信号强度
+
+	CreateTime time.Time //auto_now_add 第一次保存时才设置时间
+	UpdateTime time.Time //auto_now 每次 model 保存时都会对时间自动更新
+}
+
+
 func Cold_UpdateDevice_CalibrationTime(T_sn, T_CalibrationExpirationTime string) error {
 	logs.Println("Nats =>", lib.FuncName(), T_sn, T_CalibrationExpirationTime)
 
@@ -47,3 +83,30 @@ func Cold_UpdateDevice_CalibrationTime(T_sn, T_CalibrationExpirationTime string)
 	}
 	return nil
 }
+
+func Cold_ReadDeviceByT_sn(T_sn string) (data Device, err error) {
+
+	msg, err := lib.Nats.Request("Cold_ReadDeviceByT_sn", []byte(T_sn), 3*time.Second)
+	if err != nil {
+		return
+	}
+
+	type T_R struct {
+		Code int16  `xml:"Code"`
+		Msg  string `xml:"Msg"`
+		Data Device `xml:"Data"` // 泛型
+	}
+	var t_R T_R
+
+	err = msgpack.Unmarshal(msg.Data, &t_R)
+	if err != nil {
+		return
+	}
+	if t_R.Code != 200 {
+		err = errors.New(t_R.Msg)
+		return
+	}
+	data = t_R.Data
+
+	return data, nil
+}

+ 16 - 0
controllers/Task.go

@@ -9,6 +9,7 @@ import (
 	"ColdVerify_server/models/Device"
 	"ColdVerify_server/models/System"
 	"ColdVerify_server/models/Task"
+	"errors"
 	"fmt"
 	beego "github.com/beego/beego/v2/server/web"
 	"gonum.org/v1/plot"
@@ -480,6 +481,21 @@ func (c *TaskController) Up() {
 		}
 	}
 
+	// 从3.0获取校准时间
+	if len(T_sn) > 0 && len(T_CalibrationExpirationTime) == 0 {
+		device, err := NatsServer.Cold_ReadDeviceByT_sn(T_sn)
+		if err != nil {
+			err = errors.New("获取SN信息失败,请检查SN是否正确!")
+			c.Data["json"] = lib.JSONS{Code: 202, Msg: err.Error()}
+			c.ServeJSON()
+			return
+		}
+		if !device.T_CalibrationTime.IsZero() {
+			r.T_CalibrationExpirationTime = device.T_CalibrationTime.Format("2006-01-02")
+			clos = append(clos, "T_CalibrationExpirationTime")
+		}
+	}
+
 	// .......
 	// "T_name", "T_Show", "T_VerifyTemplate_id", "T_deadline",
 	//		"T_collection", "T_reporting", "T_delivery",