From 49f56cee1e2285fd32c43f35e3622d2ed6c5fec3 Mon Sep 17 00:00:00 2001 From: zhangqian <zhangqian@123.com> Date: 星期六, 26 八月 2023 20:09:07 +0800 Subject: [PATCH] plc tag --- api/v1/task.go | 51 ++++++++++++++++++++++++++++++++++++++------------- 1 files changed, 38 insertions(+), 13 deletions(-) diff --git a/api/v1/task.go b/api/v1/task.go index e817874..d545b26 100644 --- a/api/v1/task.go +++ b/api/v1/task.go @@ -23,6 +23,28 @@ type TaskApi struct{} +// TaskCountdown +// @Tags Task +// @Summary 鏂颁换鍔″�掕鏃� +// @Produce application/json +// @Success 200 {object} contextx.Response{data=response.TaskCountdown} "鎴愬姛" +// @Router /v1/task/countdown [get] +func (slf *TaskApi) TaskCountdown(c *gin.Context) { + ctx, ok := contextx.NewContext(c, nil) + if !ok { + return + } + var resp response.TaskCountdown + workOrder, err := service.NewTaskService().GetComingTask() + if err == nil { + seconds := workOrder.StartTime - time.Now().Unix() + resp.CountDownHour = seconds / 3600 + resp.CountDownMinute = seconds % 3600 / 60 + resp.ShowCountDown = true + } + ctx.OkWithDetailed(resp) +} + // TaskGet // @Tags Task // @Summary 鑾峰彇浠诲姟 @@ -98,7 +120,7 @@ OrderId: procedure.OrderID, Product: order.ProductName, Procedure: procedure.ProceduresInfo.ProcedureName, - Device: procedure.ProceduresInfo.DeviceName}, &result, time.Second*5) + Device: procedure.ProceduresInfo.DeviceName}, &result, time.Second*3) if err != nil { logx.Errorf("TaskStart GetProcessModel error:%v", err.Error()) ctx.FailWithMsg(ecode.UnknownErr, "鏈幏鍙栧埌宸ヨ壓鍙傛暟") @@ -186,18 +208,23 @@ return } - params := service.GetProcessModelParams{ + 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, - } - - resp, err := service.ProcessModel{}.GetProcessModel(params) + Device: procedure.ProceduresInfo.DeviceName}, &result, time.Second*3) if err != nil { - logx.Errorf("SendProcessModel GetProcessModel err: %v", err.Error()) - ctx.Fail(ecode.UnknownErr) + 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, "鏈幏鍙栧埌宸ヨ壓鍙傛暟") return } @@ -216,7 +243,7 @@ //} safe.Go(func() { - err = SendParams2(resp.ParamsMap, 0) + err = SendParams2(result.ParamsMap, 0) if err != nil { logx.Errorf("SendProcessParams: %v", err.Error()) return @@ -238,11 +265,10 @@ if code != ecode.OK { return errors.New("璇峰厛閰嶇疆PLC") } - conn, err := plc.NewModbusConnection(fmt.Sprintf("%s:%v", plcConfig.Address, plcConfig.Port)) + conn, err := plc.GetModbusConnection(fmt.Sprintf("%s:%v", plcConfig.Address, plcConfig.Port)) if err != nil { return errors.New(fmt.Sprintf("杩炴帴plc澶辫触: %v", err.Error())) } - defer conn.Close() logx.Info("----------------寮�濮嬩笅鍙戝伐鑹哄弬鏁�-----------------") for k, v := range paramsMap { @@ -270,11 +296,10 @@ if code != ecode.OK { return errors.New("璇峰厛閰嶇疆PLC") } - conn, err := plc.NewModbusConnection(fmt.Sprintf("%s:%v", plcConfig.Address, plcConfig.Port)) + conn, err := plc.GetModbusConnection(fmt.Sprintf("%s:%v", plcConfig.Address, plcConfig.Port)) if err != nil { return errors.New(fmt.Sprintf("杩炴帴plc澶辫触: %v", err.Error())) } - defer conn.Close() logx.Info("----------------寮�濮嬩笅鍙戝伐鑹哄弬鏁�-----------------") var missNumbers int -- Gitblit v1.8.0