From 4eeae3848f43be6e17113f67de351c51f435b57a Mon Sep 17 00:00:00 2001
From: zhangqian <zhangqian@123.com>
Date: 星期六, 02 九月 2023 17:20:21 +0800
Subject: [PATCH] fix

---
 api/v1/task.go |   85 +++++++++++++++++++++---------------------
 1 files changed, 43 insertions(+), 42 deletions(-)

diff --git a/api/v1/task.go b/api/v1/task.go
index d8ebcc7..1729bc7 100644
--- a/api/v1/task.go
+++ b/api/v1/task.go
@@ -95,39 +95,24 @@
 		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)
-		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(result.ParamsMap))
-	for k, v := range result.ParamsMap {
+	processParamsArr := make([]response.ProcessParams, 0, len(processModel.ParamsMap))
+	for k, v := range processModel.ParamsMap {
 		processParamsArr = append(processParamsArr, response.ProcessParams{
 			Key:   k,
 			Value: v,
 		})
 	}
-	data := response.ProcessParamsResponse{
-		Number: result.Number,
+	resp := response.ProcessParamsResponse{
+		Number: processModel.Number,
 		Params: processParamsArr,
 	}
-	logx.Infof("TaskStart Notice GetProcessModel: %+v", result)
-	ctx.OkWithDetailed(data)
+	ctx.OkWithDetailed(resp)
 }
 
 // TaskFinish
@@ -148,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
@@ -159,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()
 }
 
@@ -196,23 +196,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
 	}
 
@@ -238,7 +224,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, "绯熺硶锛屽伐鑹轰笅鍙戝け璐ャ��")
@@ -254,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()
 }
 

--
Gitblit v1.8.0