Эх сурвалжийг харах

ADD:nats添加设备、编辑设备

zoie 1 жил өмнө
parent
commit
4eda035521
2 өөрчлөгдсөн 190 нэмэгдсэн , 6 устгасан
  1. 184 0
      Nats/Nats.go
  2. 6 6
      controllers/DeviceClass.go

+ 184 - 0
Nats/Nats.go

@@ -6,6 +6,7 @@ import (
 	"ColdVerify_server/lib"
 	"ColdVerify_server/logs"
 	"ColdVerify_server/models/Account"
+	"ColdVerify_server/models/Certificate"
 	"ColdVerify_server/models/Device"
 	"ColdVerify_server/models/System"
 	"ColdVerify_server/models/Task"
@@ -220,4 +221,187 @@ func NatsInit() {
 
 	})
 
+	_, _ = lib.Nats.QueueSubscribe("ColdVerify_Server_Add_DeviceClassList", "Add_DeviceClassList", func(m *nats.Msg) {
+
+		type T_Req struct {
+			T_task_id string `xml:"T_task_id"` // 任务主键id
+			T_sn      string `xml:"T_sn"`
+			T_id      string `xml:"T_id"`
+		}
+
+		var t_Req T_Req
+		var t_R lib.JSONS
+		err := msgpack.Unmarshal(m.Data, &t_Req)
+		if err != nil {
+			logs.Error("Mats", lib.FuncName(), err)
+			t_R.Code = 202
+			t_R.Msg = err.Error()
+			b, _ := msgpack.Marshal(&t_R)
+			_ = lib.Nats.Publish(m.Reply, b)
+			return
+		}
+		fmt.Printf("ColdVerify_Server_Add_DeviceClassList message: %+v\n", t_Req)
+
+		Task_r, is := Task.Read_Task(t_Req.T_task_id)
+		if !is {
+			logs.Error("Mats", lib.FuncName())
+			t_R.Code = 202
+			t_R.Msg = "T_task_id 错误!"
+			b, _ := msgpack.Marshal(&t_R)
+			_ = lib.Nats.Publish(m.Reply, b)
+			return
+		}
+		// 判断是否已存在sn
+		dc, is := Device.Read_DeviceClassList_T_class_T_sn(Task_r.T_class, t_Req.T_sn)
+		// 添加的id和数据库已存在id相同
+		if is && dc.T_id == t_Req.T_id {
+			t_R.Code = 200
+			t_R.Msg = "ok"
+			b, _ := msgpack.Marshal(&t_R)
+			_ = lib.Nats.Publish(m.Reply, b)
+			return
+		}
+		// 相同sn 添加的id和数据库已存在id不同
+		if is && dc.T_id != t_Req.T_id {
+			_, is = Device.Read_DeviceClassList_T_class_T_id(Task_r.T_class, t_Req.T_id)
+			if is {
+				logs.Error("Mats", lib.FuncName())
+				t_R.Code = 202
+				t_R.Msg = t_Req.T_id + "编号已存在!"
+				b, _ := msgpack.Marshal(&t_R)
+				_ = lib.Nats.Publish(m.Reply, b)
+				return
+			}
+			dc.T_id = t_Req.T_id
+			if !Device.Update_DeviceClassList(dc, "T_id") {
+				logs.Error("Mats", lib.FuncName())
+				t_R.Code = 202
+				t_R.Msg = "修改编号失败!"
+				b, _ := msgpack.Marshal(&t_R)
+				_ = lib.Nats.Publish(m.Reply, b)
+				return
+			}
+		}
+
+		var pdf Certificate.CertificatePdf
+		//pdfList, _ := Certificate.Read_CertificatePdf_Newest(T_sn)
+		pdfList, _ := Certificate.Read_CertificatePdf_T_layout_no(t_Req.T_id, "")
+		if len(pdfList) > 0 {
+			pdf = pdfList[0]
+		}
+
+		var_ := Device.DeviceClassList{
+			T_class:          Task_r.T_class,
+			T_id:             t_Req.T_id,
+			T_sn:             t_Req.T_sn,
+			T_failure_time:   pdf.T_failure_time,
+			T_pdf:            pdf.T_pdf,
+			T_Certificate_sn: pdf.T_Certificate_sn,
+			T_remark:         "",
+			T_State:          1,
+		}
+
+		_, is = Device.Add_DeviceClassList(var_)
+
+		if !is {
+			logs.Error("Mats", lib.FuncName(), err)
+			t_R.Code = 202
+			t_R.Msg = err.Error()
+			b, _ := msgpack.Marshal(&t_R)
+			_ = lib.Nats.Publish(m.Reply, b)
+			return
+		}
+
+		t_R.Code = 200
+		t_R.Msg = "ok"
+
+		b, _ := msgpack.Marshal(&t_R)
+		_ = lib.Nats.Publish(m.Reply, b)
+
+		Task.Add_TaskLogs_T("nats", t_Req.T_task_id, "任务管理", "修改", t_Req)
+		System.Add_UserLogs_T("nats", "任务管理", "修改", t_Req)
+
+	})
+
+	_, _ = lib.Nats.QueueSubscribe("ColdVerify_Server_Edit_DeviceClassList", "Edit_DeviceClassList", func(m *nats.Msg) {
+
+		type T_Req struct {
+			T_task_id string `xml:"T_task_id"` // 任务主键id
+			T_sn      string `xml:"T_sn"`
+			T_id      string `xml:"T_id"`
+		}
+
+		var t_Req T_Req
+		var t_R lib.JSONS
+		err := msgpack.Unmarshal(m.Data, &t_Req)
+		if err != nil {
+			logs.Error("Mats", lib.FuncName(), err)
+			t_R.Code = 202
+			t_R.Msg = err.Error()
+			b, _ := msgpack.Marshal(&t_R)
+			_ = lib.Nats.Publish(m.Reply, b)
+			return
+		}
+		fmt.Printf("ColdVerify_Server_Edit_DeviceClassList message: %+v\n", t_Req)
+
+		Task_r, is := Task.Read_Task(t_Req.T_task_id)
+		if !is {
+			logs.Error("Mats", lib.FuncName())
+			t_R.Code = 202
+			t_R.Msg = "T_task_id 错误!"
+			b, _ := msgpack.Marshal(&t_R)
+			_ = lib.Nats.Publish(m.Reply, b)
+			return
+		}
+		// 判断是否已存在sn
+		dc, is := Device.Read_DeviceClassList_T_class_T_sn(Task_r.T_class, t_Req.T_sn)
+		// 添加的id和数据库已存在id相同
+		if is && dc.T_id == t_Req.T_id {
+			t_R.Code = 200
+			t_R.Msg = "ok"
+			b, _ := msgpack.Marshal(&t_R)
+			_ = lib.Nats.Publish(m.Reply, b)
+			return
+		}
+		// 相同sn 添加的id和数据库已存在id不同
+		if is && dc.T_id != t_Req.T_id {
+			_, is = Device.Read_DeviceClassList_T_class_T_id(Task_r.T_class, t_Req.T_id)
+			if is {
+				logs.Error("Mats", lib.FuncName())
+				t_R.Code = 202
+				t_R.Msg = t_Req.T_id + "编号已存在!"
+				b, _ := msgpack.Marshal(&t_R)
+				_ = lib.Nats.Publish(m.Reply, b)
+				return
+			}
+			var pdf Certificate.CertificatePdf
+			pdfList, _ := Certificate.Read_CertificatePdf_T_layout_no(t_Req.T_id, "")
+			if len(pdfList) > 0 {
+				pdf = pdfList[0]
+			}
+			dc.T_id = t_Req.T_id
+			dc.T_failure_time = pdf.T_failure_time
+			dc.T_pdf = pdf.T_pdf
+			dc.T_Certificate_sn = pdf.T_Certificate_sn
+			if !Device.Update_DeviceClassList(dc, "T_id", "T_failure_time", "T_pdf", "T_Certificate_sn") {
+				logs.Error("Mats", lib.FuncName())
+				t_R.Code = 202
+				t_R.Msg = "修改编号失败!"
+				b, _ := msgpack.Marshal(&t_R)
+				_ = lib.Nats.Publish(m.Reply, b)
+				return
+			}
+		}
+
+		t_R.Code = 200
+		t_R.Msg = "ok"
+
+		b, _ := msgpack.Marshal(&t_R)
+		_ = lib.Nats.Publish(m.Reply, b)
+
+		Task.Add_TaskLogs_T("nats", t_Req.T_task_id, "任务管理", "修改设备列表", t_Req)
+		System.Add_UserLogs_T("nats", "任务管理", "修改", t_Req)
+
+	})
+
 }

+ 6 - 6
controllers/DeviceClass.go

@@ -424,6 +424,12 @@ func (c *DeviceClassController) List_Add() {
 		}
 		// 添加的id和数据库已存在id不同
 		if is && dc.T_id != T_id {
+			_, is = Device.Read_DeviceClassList_T_class_T_id(T_class, T_id)
+			if is {
+				errList2 = append(errList2, sn_id)
+				continue
+			}
+
 			dc.T_id = T_id
 			dc.T_remark = T_remark
 			if !Device.Update_DeviceClassList(dc, "T_id", "T_remark") {
@@ -434,12 +440,6 @@ func (c *DeviceClassController) List_Add() {
 			continue
 		}
 
-		_, is = Device.Read_DeviceClassList_T_class_T_id(T_class, T_id)
-		if is {
-			errList2 = append(errList2, sn_id)
-			continue
-		}
-
 		var pdf Certificate.CertificatePdf
 		//pdfList, _ := Certificate.Read_CertificatePdf_Newest(T_sn)
 		pdfList, _ := Certificate.Read_CertificatePdf_T_layout_no(T_id, "")