From 732e1e344addd02a4fa56531c7ffd0319e2d5b6c Mon Sep 17 00:00:00 2001
From: zhangqian <zhangqian@123.com>
Date: 星期二, 28 十一月 2023 17:44:31 +0800
Subject: [PATCH] 进度更改兼容新旧模板

---
 service/progress.go |   43 ++++++++++++++++++++++++++++++++++---------
 1 files changed, 34 insertions(+), 9 deletions(-)

diff --git a/service/progress.go b/service/progress.go
index ee41c05..4205413 100644
--- a/service/progress.go
+++ b/service/progress.go
@@ -14,15 +14,17 @@
 }
 
 func (slf ProgressService) Add(db *gorm.DB, procedure *model.Procedures, order *model.Order) error {
-	_, err := model.NewProductionProgressSearch(db).SetProcedureId(procedure.ProcedureID).SetWorkOrderId(procedure.WorkOrderID).First()
+	_, err := model.NewProductionProgressSearch(db).SetProceduresId(procedure.ID).First()
 	if err == gorm.ErrRecordNotFound {
 		progress := &model.ProductionProgress{
-			WorkOrderID:   procedure.WorkOrderID,
-			OrderID:       procedure.OrderID,
-			ProcedureID:   procedure.ProceduresInfo.ProcedureID,
-			DeviceID:      procedure.DeviceID,
-			TotalQuantity: order.Amount.IntPart(),
-			Channel:       procedure.Channel,
+			ProceduresID:       procedure.ID,
+			WorkOrderID:        procedure.WorkOrderID,
+			OrderID:            procedure.OrderID,
+			ProcedureID:        procedure.ProceduresInfo.ProcedureID,
+			ProductProcedureID: procedure.ProductProcedureID,
+			DeviceID:           procedure.DeviceID,
+			TotalQuantity:      order.Amount.IntPart(),
+			Channel:            procedure.Channel,
 		}
 		err := model.NewProductionProgressSearch(db).Create(progress)
 		if err != nil {
@@ -34,7 +36,7 @@
 	return nil
 }
 
-// UpdateProgress 浠呴檺plc鏁版嵁閲囬泦瀹氭椂浠诲姟鐢�
+// UpdateProgress 浠呴檺plc鏁版嵁閲囬泦瀹氭椂浠诲姟鐢�(缂哄皯宸ュ簭id鍙傛暟)
 func (slf ProgressService) UpdateProgress(deviceID string, channel int32, finishedQuantity int64) (err error) {
 	progressCache, err := slf.GetCurrentProgress(deviceID, channel)
 	if err != nil {
@@ -51,7 +53,7 @@
 	return nil
 }
 
-// GetCurrentProgress 浠呴檺plc鏁版嵁閲囬泦瀹氭椂浠诲姟鐢�
+// GetCurrentProgress 浠呴檺plc鏁版嵁閲囬泦瀹氭椂浠诲姟鐢�(缂哄皯宸ュ簭id鍙傛暟)
 func (slf ProgressService) GetCurrentProgress(deviceID string, channel int32) (progressCache *model.ProductionProgress, err error) {
 	var ok bool
 	progressCache, ok = ProgressCacheGet(deviceID, channel)
@@ -74,6 +76,29 @@
 	return
 }
 
+func (slf ProgressService) UpdateProgressByProceduresId(proceduresId uint, finishedQuantity int64) (err error) {
+	progress, err := slf.GetCurrentProgressByProceduresId(proceduresId)
+	if err != nil {
+		return err
+	}
+	if progress == nil {
+		return errors.New("progress not exists")
+	}
+	if finishedQuantity > progress.FinishedQuantity { //褰撴湁鍙樺寲鏃舵墠鏇存柊
+		progress.FinishedQuantity = finishedQuantity
+		return model.NewProductionProgressSearch(nil).SetId(progress.ID).Save(progress)
+	}
+	return nil
+}
+
+func (slf ProgressService) GetCurrentProgressByProceduresId(proceduresId uint) (progress *model.ProductionProgress, err error) {
+	progress, err = model.NewProductionProgressSearch(nil).SetProceduresId(proceduresId).First()
+	if err != nil {
+		return nil, err
+	}
+	return
+}
+
 // GetProgressList 鑾峰彇寰呭悓姝ヨ繘搴﹀伐搴�
 func (slf ProgressService) GetProgressList() (progressList []*model.ProductionProgress, err error) {
 	progressList, err = model.NewProductionProgressSearch(nil).SetUnFinished().SetOrder("id desc").SetPage(1, 100).FindNotTotal()

--
Gitblit v1.8.0