From 1ba32f7b79af42830a2a1f2c488675e8bd25f150 Mon Sep 17 00:00:00 2001
From: zhangqian <zhangqian@123.com>
Date: 星期五, 01 九月 2023 17:42:10 +0800
Subject: [PATCH] 获取工艺参数优先从本地数据库获取,没有再尝试从云端获取
---
model/index.go | 1
api/v1/task.go | 69 +++++++++++++++++++++++-----------
2 files changed, 48 insertions(+), 22 deletions(-)
diff --git a/api/v1/task.go b/api/v1/task.go
index d8ebcc7..377ba71 100644
--- a/api/v1/task.go
+++ b/api/v1/task.go
@@ -14,6 +14,7 @@
"apsClient/pkg/plc"
"apsClient/service"
"apsClient/service/plc_address"
+ "encoding/json"
"errors"
"fmt"
"github.com/gin-gonic/gin"
@@ -95,39 +96,63 @@
return
}
- caller := nsq.NewCaller(fmt.Sprintf(constvar.NsqTopicProcessParamsRequest, conf.Conf.NsqConf.NodeId), fmt.Sprintf(constvar.NsqTopicProcessParamsResponse, conf.Conf.NsqConf.NodeId))
- var result common.ResponseProcessParams
-
- err = caller.Call(common.RequestProcessParams{
- WorkOrder: procedure.WorkOrderID,
- OrderId: procedure.OrderID,
- Product: order.ProductName,
- Procedure: procedure.ProceduresInfo.ProcedureName,
- Device: procedure.ProceduresInfo.DeviceName}, &result, time.Second*3)
- if err != nil {
- logx.Errorf("TaskStart GetProcessModel error:%v", err.Error())
- ctx.FailWithMsg(ecode.UnknownErr, "鏈幏鍙栧埌宸ヨ壓鍙傛暟")
- return
- }
- if result.ParamsMap == nil {
- logx.Errorf("TaskStart GetProcessModel response miss process params:%v", result)
+ paramsMap := make(map[string]interface{})
+ var paramsNumber string
+ data, err := model.NewProcessModelSearch().
+ SetWorkOrder(procedure.WorkOrderID).
+ SetDevice(procedure.ProceduresInfo.DeviceName).
+ SetOrderId(procedure.OrderID).
+ SetProcedure(procedure.ProceduresInfo.ProcedureName).
+ SetProduct(order.ProductName).
+ SetOrder("id desc").First()
+ if err == nil {
+ err = json.Unmarshal([]byte(data.Params), &data.ParamsMap)
+ paramsMap = data.ParamsMap
+ paramsNumber = data.Number
+ if err != nil {
+ logx.Errorf("process model json.Unmarshal:%v", err)
+ ctx.FailWithMsg(ecode.UnknownErr, "鏈幏鍙栧埌宸ヨ壓鍙傛暟")
+ return
+ }
+ } else if err == gorm.ErrRecordNotFound { //濡備綍鏁版嵁搴撴病鏈変粠浜戠鑾峰彇
+ caller := nsq.NewCaller(fmt.Sprintf(constvar.NsqTopicProcessParamsRequest, conf.Conf.NsqConf.NodeId), fmt.Sprintf(constvar.NsqTopicProcessParamsResponse, conf.Conf.NsqConf.NodeId))
+ var result common.ResponseProcessParams
+ err = caller.Call(common.RequestProcessParams{
+ WorkOrder: procedure.WorkOrderID,
+ OrderId: procedure.OrderID,
+ Product: order.ProductName,
+ Procedure: procedure.ProceduresInfo.ProcedureName,
+ Device: procedure.ProceduresInfo.DeviceName}, &result, time.Second*3)
+ if err != nil {
+ logx.Errorf("TaskStart GetProcessModel error:%v", err.Error())
+ ctx.FailWithMsg(ecode.UnknownErr, "鏈幏鍙栧埌宸ヨ壓鍙傛暟")
+ return
+ }
+ if result.ParamsMap == nil {
+ logx.Errorf("TaskStart GetProcessModel response miss process params:%v", result)
+ ctx.FailWithMsg(ecode.UnknownErr, "鏈幏鍙栧埌宸ヨ壓鍙傛暟")
+ return
+ }
+ paramsMap = result.ParamsMap
+ paramsNumber = result.Number
+ } else {
+ logx.Errorf("TaskStart GetProcessModel err:%v", err)
ctx.FailWithMsg(ecode.UnknownErr, "鏈幏鍙栧埌宸ヨ壓鍙傛暟")
return
}
- processParamsArr := make([]response.ProcessParams, 0, len(result.ParamsMap))
- for k, v := range result.ParamsMap {
+ processParamsArr := make([]response.ProcessParams, 0, len(paramsMap))
+ for k, v := range data.ParamsMap {
processParamsArr = append(processParamsArr, response.ProcessParams{
Key: k,
Value: v,
})
}
- data := response.ProcessParamsResponse{
- Number: result.Number,
+ resp := response.ProcessParamsResponse{
+ Number: paramsNumber,
Params: processParamsArr,
}
- logx.Infof("TaskStart Notice GetProcessModel: %+v", result)
- ctx.OkWithDetailed(data)
+ ctx.OkWithDetailed(resp)
}
// TaskFinish
diff --git a/model/index.go b/model/index.go
index 6ac0cf7..7828517 100644
--- a/model/index.go
+++ b/model/index.go
@@ -27,6 +27,7 @@
NetConfig{},
PlcBrand{},
DevicePlc{},
+ ProcessModel{},
)
return err
}
--
Gitblit v1.8.0