From 799a22cda35de94ad5658aa6283f1d80db132ba4 Mon Sep 17 00:00:00 2001
From: zhangqian <zhangqian@123.com>
Date: 星期二, 05 九月 2023 17:09:51 +0800
Subject: [PATCH] fix todo

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

diff --git a/api/v1/task.go b/api/v1/task.go
index 0a364f5..74287d5 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"
@@ -32,7 +35,7 @@
 		return
 	}
 	var resp response.TaskCountdown
-	workOrder, err := service.NewTaskService().GetCurrentTask()
+	workOrder, err := service.NewTaskService().GetNextTask()
 	if err == nil {
 		seconds := workOrder.StartTime - time.Now().Unix()
 		resp.CountDownHour = seconds / 3600
@@ -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()
 }
 
@@ -162,12 +180,13 @@
 		return
 	}
 	id := convertx.Atoi(idx)
-	procedure, code := service.NewTaskService().GetProcedureById(id)
+	taskService := service.NewTaskService()
+	procedure, code := taskService.GetProcedureById(id)
 	if code != ecode.OK {
 		ctx.Fail(code)
 		return
 	}
-	order, err := service.NewTaskService().GetOrderByWorkOrderId(procedure.WorkOrderID)
+	order, err := taskService.GetOrderByWorkOrderId(procedure.WorkOrderID)
 	if err != nil {
 		ctx.Fail(ecode.UnknownErr)
 		return
@@ -178,22 +197,22 @@
 		return
 	}
 
-	processModel, err := service.NewTaskService().GetProcessParams(procedure, order)
+	processModel, err := taskService.GetProcessParams(procedure, order)
 	if err != nil || processModel == nil || processModel.ParamsMap == nil {
 		ctx.Fail(ecode.UnknownErr)
 		return
 	}
 
 	err = model.WithTransaction(func(db *gorm.DB) error {
-		err = service.NewTaskService().UpdateProcedureStatus(db, id, model.ProcedureStatusProcessing)
+		err = taskService.UpdateProcedureStatus(db, id, model.ProcedureStatusProcessing)
 		if err != nil {
 			return err
 		}
-		err = service.NewTaskService().UpdateOrderStatus(db, order.ID, model.OrderStatusProcessing)
+		err = taskService.UpdateOrderStatus(db, order.ID, model.OrderStatusProcessing)
 		if err != nil {
 			return err
 		}
-		return nil
+		return service.NewProgressService().AddProgress(db, procedure, order)
 	})
 	if err != nil {
 		logx.Errorf("SendProcessParams update order and procedure status error:%v", err.Error())
@@ -222,6 +241,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