From 001d1f605c0a275a139f5c8fa66e631eb998e3b9 Mon Sep 17 00:00:00 2001
From: zhangqian <zhangqian@123.com>
Date: 星期六, 02 九月 2023 14:35:10 +0800
Subject: [PATCH] 存储全部设备的工序和订单&代码优化

---
 api/v1/task.go |   77 +++++---------------------------------
 1 files changed, 10 insertions(+), 67 deletions(-)

diff --git a/api/v1/task.go b/api/v1/task.go
index d07c123..0a364f5 100644
--- a/api/v1/task.go
+++ b/api/v1/task.go
@@ -1,12 +1,9 @@
 package v1
 
 import (
-	"apsClient/conf"
 	"apsClient/constvar"
 	"apsClient/model"
-	"apsClient/model/common"
 	"apsClient/model/response"
-	"apsClient/nsq"
 	"apsClient/pkg/contextx"
 	"apsClient/pkg/convertx"
 	"apsClient/pkg/ecode"
@@ -14,7 +11,6 @@
 	"apsClient/pkg/plc"
 	"apsClient/service"
 	"apsClient/service/plc_address"
-	"encoding/json"
 	"errors"
 	"fmt"
 	"github.com/gin-gonic/gin"
@@ -96,60 +92,21 @@
 		return
 	}
 
-	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, "鏈幏鍙栧埌宸ヨ壓鍙傛暟")
+	processModel, err := service.NewTaskService().GetProcessParams(procedure, order)
+	if err != nil || processModel == nil || processModel.ParamsMap == nil {
+		ctx.Fail(ecode.UnknownErr)
 		return
 	}
 
-	processParamsArr := make([]response.ProcessParams, 0, len(paramsMap))
-	for k, v := range paramsMap {
+	processParamsArr := make([]response.ProcessParams, 0, len(processModel.ParamsMap))
+	for k, v := range processModel.ParamsMap {
 		processParamsArr = append(processParamsArr, response.ProcessParams{
 			Key:   k,
 			Value: v,
 		})
 	}
 	resp := response.ProcessParamsResponse{
-		Number: paramsNumber,
+		Number: processModel.Number,
 		Params: processParamsArr,
 	}
 	ctx.OkWithDetailed(resp)
@@ -221,23 +178,9 @@
 		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("SendProcessParams GetProcessModel error:%v", err.Error())
-		ctx.FailWithMsg(ecode.UnknownErr, "鏈幏鍙栧埌宸ヨ壓鍙傛暟")
-		return
-	}
-	if result.ParamsMap == nil {
-		logx.Errorf("SendProcessParams GetProcessModel response miss process params:%v", result)
-		ctx.FailWithMsg(ecode.UnknownErr, "鏈幏鍙栧埌宸ヨ壓鍙傛暟")
+	processModel, err := service.NewTaskService().GetProcessParams(procedure, order)
+	if err != nil || processModel == nil || processModel.ParamsMap == nil {
+		ctx.Fail(ecode.UnknownErr)
 		return
 	}
 
@@ -263,7 +206,7 @@
 		return
 	}
 	plcConfig.MaxTryTimes = 2
-	err = SendParams(result.ParamsMap, plcConfig)
+	err = SendParams(processModel.ParamsMap, plcConfig)
 	if err != nil {
 		logx.Errorf("SendProcessParams: %v", err.Error())
 		ctx.FailWithMsg(ecode.NeedConfirmedErr, "绯熺硶锛屽伐鑹轰笅鍙戝け璐ャ��")

--
Gitblit v1.8.0