From fcc5eaccffbbd0980077cf3fc4707566546f879a Mon Sep 17 00:00:00 2001
From: zhangqian <zhangqian@123.com>
Date: 星期四, 17 八月 2023 17:31:18 +0800
Subject: [PATCH] 增加plc pkg, 增加获取任务,完成任务,开始任务接口

---
 nsq/msg_handler.go |   55 +++++++++++++++++++++++++++++++++++--------------------
 1 files changed, 35 insertions(+), 20 deletions(-)

diff --git a/nsq/msg_handler.go b/nsq/msg_handler.go
index 495b6ef..fef9a83 100644
--- a/nsq/msg_handler.go
+++ b/nsq/msg_handler.go
@@ -1,10 +1,13 @@
 package nsq
 
 import (
+	"apsClient/conf"
 	"apsClient/model"
 	"apsClient/pkg/logx"
+	"apsClient/pkg/structx"
 	"encoding/json"
 	"fmt"
+	"gorm.io/gorm"
 )
 
 type MsgHandler interface {
@@ -25,26 +28,38 @@
 		return err
 	}
 	for _, task := range tasks {
-		taskRecord := model.ScheduleTask{
-			Id:          0,
-			OrderId:     task.Order.OrderID,
-			ProductId:   task.Order.ProductID,
-			ProductName: task.Order.ProductName,
-			Amount:      task.Order.Amount,
-			Unit:        task.Order.Unit,
-			StartTime:   task.Order.StartTime,
-			EndTime:     task.Order.EndTime,
-		}
-		jsonStr, err := json.Marshal(task)
-		if err != nil {
-			logx.Errorf("ScheduleTask HandleMessage Marshal err: %v, old: %#v", err.Error(), task)
-			return err
-		}
-		taskRecord.Data = string(jsonStr)
-		err = model.NewScheduleTaskSearch(nil).Create(&taskRecord)
-		if err != nil {
-			logx.Errorf("ScheduleTask HandleMessage Create taskRecord err: %v,  record: %#v", err.Error(), taskRecord)
-			return err
+		for _, procedure := range task.Procedures {
+			if procedure.DeviceID == conf.Conf.System.DeviceId { //鍙瓨鍌ㄦ湰璁惧鐨勫伐搴�
+				err = model.WithTransaction(func(db *gorm.DB) error {
+					_, err := model.NewOrderSearch(db).SetOrderId(task.Order.OrderID).First()
+					if err == gorm.ErrRecordNotFound {
+						var orderRecord model.Order
+						err = structx.AssignTo(task.Order, &orderRecord)
+						orderRecord.Status = model.OrderStatusUnFinished
+						if err != nil {
+							logx.Errorf(" structx.Assign task.Order to orderRecord err: %v", err.Error())
+							return err
+						}
+						if err = model.NewOrderSearch(db).Create(&orderRecord); err != nil {
+							return err
+						}
+					}
+					procedureRecord := model.Procedures{
+						OrderID: task.Order.OrderID,
+						Status:  model.ProcedureStatusUnFinished,
+					}
+					procedureData, err := json.Marshal(procedure)
+					procedureRecord.ProcedureData = string(procedureData)
+					if err != nil {
+						logx.Errorf(" json.Marshal(procedure) err: %v", err.Error())
+						return err
+					}
+					return model.NewProceduresSearch(db).Create(&procedureRecord)
+				})
+				if err != nil {
+					logx.Errorf(" save procedure err: %v", err.Error())
+				}
+			}
 		}
 	}
 	return nil

--
Gitblit v1.8.0