From 46d841d93d20773dd2cf31fa1caa7199c65fe037 Mon Sep 17 00:00:00 2001
From: zhangqian <zhangqian@123.com>
Date: 星期四, 07 九月 2023 11:25:37 +0800
Subject: [PATCH] 定时同步生产进度到云端

---
 service/progress.go |   38 +++++++++++++++++++++++++-------------
 1 files changed, 25 insertions(+), 13 deletions(-)

diff --git a/service/progress.go b/service/progress.go
index bb0d859..5ebd638 100644
--- a/service/progress.go
+++ b/service/progress.go
@@ -30,19 +30,9 @@
 }
 
 func (slf ProgressService) UpdateProgress(finishedQuantity int64) (err error) {
-	var progressCache *model.ProductionProgress
-	progressCache, ok := ProgressCacheGet()
-	if !ok {
-		progressCache, err = model.NewProductionProgressSearch(nil).SetOrder("id desc").First()
-		if err == gorm.ErrRecordNotFound {
-			return errors.New("progress cache not found")
-		}
-		if err != nil {
-			return err
-		}
-		if progressCache.FinishedQuantity < progressCache.TotalQuantity {
-			ProgressCacheSet(progressCache)
-		}
+	progressCache, err := slf.GetCurrentProgress()
+	if err != nil {
+		return err
 	}
 	if progressCache == nil {
 		return errors.New("progress cache not found")
@@ -54,3 +44,25 @@
 	}
 	return nil
 }
+
+func (slf ProgressService) GetCurrentProgress() (progressCache *model.ProductionProgress, err error) {
+	var ok bool
+	progressCache, ok = ProgressCacheGet()
+	if !ok {
+		progressCache, err = model.NewProductionProgressSearch(nil).SetOrder("id desc").First()
+		if err == gorm.ErrRecordNotFound {
+			return nil, errors.New("progress not found")
+		}
+		if err != nil {
+			return nil, err
+		}
+
+		if progressCache.FinishedQuantity >= progressCache.TotalQuantity { //濡傛灉瀹屾垚閲忓ぇ浜庣瓑浜庢�婚噺灏辫鏄庢槸涓婁竴涓凡瀹屾垚鐨勪换鍔★紝涓嶆槸褰撳墠杩涜涓殑浠诲姟銆�
+			progressCache = nil
+		}
+		if progressCache != nil {
+			ProgressCacheSet(progressCache)
+		}
+	}
+	return
+}

--
Gitblit v1.8.0