From 21e0e02fd465fef04f1834b078c621a0e3594308 Mon Sep 17 00:00:00 2001 From: zhangqian <zhangqian@123.com> Date: 星期六, 02 九月 2023 16:51:48 +0800 Subject: [PATCH] 任务开始和结束都发送消息通知apsserver --- constvar/const.go | 13 +++--- model/common/common.go | 9 ++++ nsq/caller.go | 11 +++++ api/v1/task.go | 35 +++++++++++++++++ 4 files changed, 61 insertions(+), 7 deletions(-) diff --git a/api/v1/task.go b/api/v1/task.go index 0a364f5..1729bc7 100644 --- a/api/v1/task.go +++ b/api/v1/task.go @@ -1,9 +1,12 @@ 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" @@ -130,7 +133,7 @@ return } id := convertx.Atoi(idx) - _, code := service.NewTaskService().GetProcedureById(id) + procedure, code := service.NewTaskService().GetProcedureById(id) if code != ecode.OK { ctx.Fail(code) return @@ -141,6 +144,21 @@ ctx.Fail(ecode.UnknownErr) return } + + msg := &common.MsgTaskStatusUpdate{ + WorkOrderId: procedure.WorkOrderID, + ProcedureID: procedure.ProceduresInfo.ProcedureID, + DeviceId: procedure.ProceduresInfo.DeviceID, + IsProcessing: false, + IsFinish: true, + } + + caller := nsq.NewCaller(fmt.Sprintf(constvar.NsqTopicTaskProcedureStatusUpdate, conf.Conf.NsqConf.NodeId), "") + err = caller.Send(msg) + if err != nil { + logx.Errorf("send task status update msg error:%v", err.Error()) + } + ctx.Ok() } @@ -222,6 +240,21 @@ ctx.FailWithMsg(ecode.NeedConfirmedErr, "绯熺硶锛屽伐鑹轰笅鍙戝け璐ャ��") return } + + msg := &common.MsgTaskStatusUpdate{ + WorkOrderId: procedure.WorkOrderID, + ProcedureID: procedure.ProceduresInfo.ProcedureID, + DeviceId: procedure.ProceduresInfo.DeviceID, + IsProcessing: true, + IsFinish: false, + } + + caller := nsq.NewCaller(fmt.Sprintf(constvar.NsqTopicTaskProcedureStatusUpdate, conf.Conf.NsqConf.NodeId), "") + err = caller.Send(msg) + if err != nil { + logx.Errorf("send task status update msg error:%v", err.Error()) + } + ctx.Ok() } diff --git a/constvar/const.go b/constvar/const.go index 3856612..9f21401 100644 --- a/constvar/const.go +++ b/constvar/const.go @@ -1,12 +1,13 @@ package constvar const ( - NsqTopicScheduleTask = "aps.%v.scheduleTask" //鎺掔▼浠诲姟涓嬪彂 - NsqTopicGetPlcAddress = "aps.%v.getPlcAddress" - NsqTopicSendPlcAddress = "aps.%v.sendPlcAddress" - NsqTopicProcessParamsRequest = "aps.%v.processParams.request" - NsqTopicProcessParamsResponse = "aps.%v.processParams.response" - NsqTopicApsProcessParams = "aps.%v.aps.processParams" //鏈変簡鏂扮殑宸ヨ壓妯″瀷 + NsqTopicScheduleTask = "aps.%v.scheduleTask" //鎺掔▼浠诲姟涓嬪彂 + NsqTopicGetPlcAddress = "aps.%v.getPlcAddress" + NsqTopicSendPlcAddress = "aps.%v.sendPlcAddress" + NsqTopicProcessParamsRequest = "aps.%v.processParams.request" + NsqTopicProcessParamsResponse = "aps.%v.processParams.response" + NsqTopicApsProcessParams = "aps.%v.aps.processParams" //鏈変簡鏂扮殑宸ヨ壓妯″瀷 + NsqTopicTaskProcedureStatusUpdate = "aps.%v.task.procedure.status" //宸ュ簭鐘舵�佹洿鏂� ) type PlcStartAddressType int diff --git a/model/common/common.go b/model/common/common.go index 9331347..a8fc8af 100644 --- a/model/common/common.go +++ b/model/common/common.go @@ -88,3 +88,12 @@ DeviceId string `json:"deviceId" gorm:"-"` //鐢ㄤ簬杩囨护鑾峰彇nsq娑堟伅 } ) + +// MsgTaskStatusUpdate 浠诲姟鐘舵�佹敼鍙� +type MsgTaskStatusUpdate struct { + WorkOrderId string `json:"workOrderId"` //宸ュ崟缂栧彿 + ProcedureID string `json:"procedureId"` // 宸ュ簭 + DeviceId string `json:"deviceId"` //鐢ㄤ簬杩囨护鑾峰彇nsq娑堟伅 + IsProcessing bool //鏄惁澶勭悊涓� + IsFinish bool //鏄惁瀹屾垚 +} diff --git a/nsq/caller.go b/nsq/caller.go index 59c6848..ed0dbdd 100644 --- a/nsq/caller.go +++ b/nsq/caller.go @@ -49,3 +49,14 @@ } } } + +func (caller *DefaultCaller) Send(input interface{}) error { + msg, err := json.Marshal(input) + if err != nil { + return err + } + producer := GetProducer() + err = producer.Publish(caller.RequestTopic, msg) + return err + +} -- Gitblit v1.8.0