From 8324f872ef3a4d0c978a9b1d062800c6a1701c12 Mon Sep 17 00:00:00 2001
From: zhangqian <zhangqian@123.com>
Date: 星期五, 01 十二月 2023 09:58:17 +0800
Subject: [PATCH] fix

---
 api/v1/plc.go |   27 ++++++++++++++++++++-------
 1 files changed, 20 insertions(+), 7 deletions(-)

diff --git a/api/v1/plc.go b/api/v1/plc.go
index c16aba1..c4638dc 100644
--- a/api/v1/plc.go
+++ b/api/v1/plc.go
@@ -34,6 +34,9 @@
 		finishNumber interface{}
 		totalNumber  interface{}
 	)
+
+	resp := new(response.ProductProgress)
+
 	if isConnect {
 		finishNumber, _ = service.PlcCacheGet(conf.Conf.CurrentDeviceID, params.Channel, constvar.PlcCacheKeyFinishNumber)
 		totalNumber, _ = service.PlcCacheGet(conf.Conf.CurrentDeviceID, params.Channel, constvar.PlcCacheKeyTotalNumber)
@@ -41,14 +44,22 @@
 		reportWork, err := service.GetLastReportWork(params.ProcedureId)
 		if err == nil {
 			finishNumber = reportWork.ReportAmount
-		}
-		workOrder, err := model.NewOrderSearch(nil).SetWorkOrderId(reportWork.WorkOrderID).First()
-		if err == nil {
-			totalNumber = workOrder.Amount.IntPart()
+			workOrder, err := model.NewOrderSearch(nil).SetWorkOrderId(reportWork.WorkOrderID).First()
+			if err == nil {
+				totalNumber = workOrder.Amount.IntPart()
+			}
+		} else {
+			procedure, workOrder, _ := service.NewTaskService().GetProcedureAndWorkOrder(params.ProcedureId)
+			if workOrder != nil {
+				totalNumber = workOrder.Amount.IntPart()
+			}
+			if procedure != nil {
+				resp.RealStartTime = procedure.RealStartTime
+				resp.RealEndTime = procedure.RealEndTime
+			}
 		}
 	}
 
-	resp := new(response.ProductProgress)
 	resp.FinishNumber = cast.ToInt(finishNumber)
 	resp.TotalNumber = cast.ToInt(totalNumber)
 
@@ -63,8 +74,10 @@
 	}
 	resp.PlcStatus = plcStatus
 
-	resp.RealStartTime = service.TaskStartTimeGet(conf.Conf.CurrentDeviceID, params.Channel)
-	resp.RealEndTime = service.TaskEndTimeGet(conf.Conf.CurrentDeviceID, params.Channel)
+	if params.ProcedureId == 0 {
+		resp.RealStartTime = service.TaskStartTimeGet(conf.Conf.CurrentDeviceID, params.Channel)
+		resp.RealEndTime = service.TaskEndTimeGet(conf.Conf.CurrentDeviceID, params.Channel)
+	}
 
 	ctx.OkWithDetailed(resp)
 }

--
Gitblit v1.8.0