| | |
| | | "apsClient/pkg/plc" |
| | | "apsClient/service" |
| | | "apsClient/service/plc_address" |
| | | "encoding/json" |
| | | "errors" |
| | | "fmt" |
| | | "github.com/gin-gonic/gin" |
| | |
| | | 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 |