From 2d6875c93b25d0b7336c7fa11e066d213259fe2e Mon Sep 17 00:00:00 2001
From: zhangqian <zhangqian@123.com>
Date: 星期四, 25 四月 2024 10:02:01 +0800
Subject: [PATCH] 更改定时任务时区设置

---
 service/report_work.go |   53 ++++++++++++++++++++++++++++++++++++++---------------
 1 files changed, 38 insertions(+), 15 deletions(-)

diff --git a/service/report_work.go b/service/report_work.go
index 710b490..99d7a82 100644
--- a/service/report_work.go
+++ b/service/report_work.go
@@ -5,8 +5,12 @@
 	"apsClient/constvar"
 	"apsClient/model"
 	"apsClient/model/request"
+	"apsClient/pkg/logx"
 	"apsClient/pkg/snowflake"
+	"encoding/json"
 	"errors"
+	"github.com/jinzhu/gorm"
+	"github.com/spf13/cast"
 	"time"
 )
 
@@ -27,25 +31,24 @@
 	nowTs := time.Now().Unix()
 	var startTs int64
 	var workerName string
-	for _, worker := range procedure.ProceduresInfo.Workers {
-		if params.WorkerID == worker.WorkerID {
-			workerName = worker.WorkerName
-			if worker.StartTime < nowTs {
-				startTs = worker.StartTime
+	if params.WorkerID != "" {
+		for _, worker := range procedure.ProceduresInfo.Workers {
+			if params.WorkerID == worker.WorkerID {
+				workerName = worker.WorkerName
 			}
 		}
 	}
-	if workerName == "" {
-		return errors.New("娌℃湁鎵惧埌褰撳墠鍊肩彮浜哄憳")
-	}
-	if startTs == 0 {
-		return errors.New("娌℃湁鎵惧埌褰撳墠鍊肩彮浜哄憳寮�濮嬫椂闂�")
-	}
+
 	finishAmount := params.ReportAmount
 	lastReportWork, err := GetLastReportWork(params.ProcedureId)
 	if err == nil {
+		if params.ReportAmount < lastReportWork.ReportAmount {
+			return errors.New("鎶ュ伐鏁伴噺涓嶈兘灏戜簬涓婃鎶ュ伐鏁�")
+		}
 		finishAmount = params.ReportAmount - lastReportWork.ReportAmount
 		startTs = lastReportWork.EndTime
+	} else {
+		startTs = procedure.RealStartTime
 	}
 
 	record := &model.ReportWork{
@@ -55,7 +58,6 @@
 		DeviceID:           procedure.DeviceID,
 		DeviceName:         procedure.ProceduresInfo.DeviceName,
 		ProcedureID:        procedure.ProcedureID,
-		Channel:            procedure.Channel,
 		StartTime:          startTs,
 		EndTime:            nowTs,
 		ReportAmount:       params.ReportAmount,
@@ -63,14 +65,35 @@
 		WorkerID:           params.WorkerID,
 		WorkerName:         workerName,
 		WorkerTime:         nowTs - startTs,
-		BarCode:            snowflake.GenerateIdStr(),
+		BarCode:            cast.ToString(snowflake.GenerateID()),
 	}
+	err = model.WithTransaction(func(db *gorm.DB) error {
+		err = model.NewReportWorkSearch(db).Create(record)
+		if err != nil {
+			return err
+		}
 
-	err = model.NewReportWorkSearch(nil).Create(record)
+		content, err := json.Marshal(record)
+		if err != nil {
+			return err
+		}
+		err = model.NewReportsToCloudSearch(db).Create(&model.ReportsToCloud{
+			ReportType: constvar.ReportTypeReportWork,
+			Content:    string(content),
+		})
+		if err != nil {
+			return err
+		}
+
+		return nil
+	})
 	if err != nil {
+		logx.Errorf("save report work transaction error: %v", err)
 		return err
 	}
-	PlcCacheSet(conf.Conf.CurrentDeviceID, procedure.Channel, constvar.PlcCacheKeyFinishNumber, params.ReportAmount)
+
+	err = NewProgressService().UpdateProgressByProceduresId(procedure.ID, params.ReportAmount)
+
 	return nil
 }
 

--
Gitblit v1.8.0