.gitignore | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
api/v1/task.go | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
constvar/const.go | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
model/common/common.go | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
nsq/caller.go | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
nsq/consumer.go | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
nsq/msg_handler.go | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
nsq/nsq.go | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 |
.gitignore
@@ -24,4 +24,5 @@ apsClient aps.db .idea logs logs datafile api/v1/task.go
@@ -76,31 +76,52 @@ ctx.Fail(ecode.UnknownErr) return } params := service.GetProcessModelParams{ //params := service.GetProcessModelParams{ // WorkOrder: procedure.WorkOrderID, // OrderId: procedure.OrderID, // Product: order.ProductName, // Procedure: procedure.ProceduresInfo.ProcedureName, // Device: procedure.ProceduresInfo.DeviceName, //} //resp, err := service.ProcessModel{}.GetProcessModel(params) //if err != nil { // logx.Errorf("TaskStart GetProcessModel error: %v", err.Error()) // ctx.FailWithMsg(ecode.UnknownErr, "未获取到工艺参数") // 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, } resp, err := service.ProcessModel{}.GetProcessModel(params) Device: procedure.ProceduresInfo.DeviceName}, &result, time.Second*5) if err != nil { logx.Errorf("TaskStart Notice GetProcessModel error: %v", err.Error()) logx.Errorf("TaskStart GetProcessModel error:%v", err.Error()) ctx.FailWithMsg(ecode.UnknownErr, "未获取到工艺参数") return } processParamsArr := make([]response.ProcessParams, 0, len(resp.ParamsMap)) for k, v := range resp.ParamsMap { if result.ParamsMap == nil { logx.Errorf("TaskStart GetProcessModel response miss process params:%v", result) ctx.FailWithMsg(ecode.UnknownErr, "未获取到工艺参数") return } processParamsArr := make([]response.ProcessParams, 0, len(result.ParamsMap)) for k, v := range result.ParamsMap { processParamsArr = append(processParamsArr, response.ProcessParams{ Key: k, Value: v, }) } data := response.ProcessParamsResponse{ Number: resp.Number, Number: result.Number, Params: processParamsArr, } logx.Infof("TaskStart Notice GetProcessModel: %+v", resp) logx.Infof("TaskStart Notice GetProcessModel: %+v", result) ctx.OkWithDetailed(data) } constvar/const.go
@@ -1,9 +1,11 @@ package constvar const ( NsqTopicScheduleTask = "aps.%v.scheduleTask" //排程任务下发 NsqTopicGetPlcAddress = "aps.%v.getPlcAddress" NsqTopicSendPlcAddress = "aps.%v.sendPlcAddress" NsqTopicScheduleTask = "aps.%v.scheduleTask" //排程任务下发 NsqTopicGetPlcAddress = "aps.%v.getPlcAddress" NsqTopicSendPlcAddress = "aps.%v.sendPlcAddress" NsqTopicProcessParamsRequest = "aps.%v.processParams.request" NsqTopicProcessParamsResponse = "aps.%v.processParams.response" ) type PlcStartAddressType string model/common/common.go
@@ -65,3 +65,23 @@ AddressData []byte } ) // 工艺参数 type ( RequestProcessParams struct { WorkOrder string `json:"workOrder,omitempty" form:"workOrder"` //工序编号 OrderId string `json:"orderId"` // 订单号 Product string `json:"password"` // 产品 Procedure string `json:"procedure"` // 工序 Device string `json:"device"` // 设备 } ResponseProcessParams struct { Number string `json:"number"` //工艺模型编号 OrderId string `json:"orderId"` //订单id Product string `json:"product"` //产品名称 Procedure string `json:"procedure"` //工序 WorkOrder string `json:"workOrder"` //工单 Device string `json:"device"` //设备 ParamsMap map[string]interface{} `json:"paramsMap"` } ) nsq/caller.go
@@ -42,6 +42,9 @@ case data := <-ReceivedMessageChan: if data.Topic == caller.ResponseTopic { return json.Unmarshal(data.Message, &output) } else { //把消息放回去 ReceivedMessageChan <- data } } } nsq/consumer.go
@@ -22,6 +22,8 @@ handler = new(ScheduleTask) case fmt.Sprintf(constvar.NsqTopicSendPlcAddress, conf.Conf.NsqConf.NodeId): handler = &PlcAddress{Topic: topic} case fmt.Sprintf(constvar.NsqTopicProcessParamsResponse, conf.Conf.NsqConf.NodeId): handler = &ProcessParams{Topic: topic} } c.AddHandler(handler.HandleMessage) nsq/msg_handler.go
@@ -126,3 +126,23 @@ } return nil } type ProcessParams struct { Topic string } func (slf *ProcessParams) HandleMessage(data []byte) (err error) { logx.Infof("get an process params message :%s", data) var resp = new(common.ResponseProcessParams) err = json.Unmarshal(data, &resp) if err != nil { logx.Errorf("ScheduleTask HandleMessage Unmarshal json err: %v", err.Error()) return err } //通知回复收到 ReceivedMessageChan <- &ReceivedMessage{ Topic: slf.Topic, Message: data, } return nil } nsq/nsq.go
@@ -37,5 +37,9 @@ _ = Consume(fmt.Sprintf(constvar.NsqTopicSendPlcAddress, conf.Conf.NsqConf.NodeId), conf.Conf.System.DeviceId) }) safe.Go(func() { _ = Consume(fmt.Sprintf(constvar.NsqTopicProcessParamsResponse, conf.Conf.NsqConf.NodeId), conf.Conf.System.DeviceId) }) return nil }