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

---
 crontask/cron_task.go |   50 +++++++++++++++++++-------------------------------
 1 files changed, 19 insertions(+), 31 deletions(-)

diff --git a/crontask/cron_task.go b/crontask/cron_task.go
index ae1ff95..7f559d8 100644
--- a/crontask/cron_task.go
+++ b/crontask/cron_task.go
@@ -20,7 +20,7 @@
 var s *gocron.Scheduler
 
 func init() {
-	s = gocron.NewScheduler(time.UTC)
+	s = gocron.NewScheduler(time.Local)
 }
 func StartTask(isMaster bool) error {
 	finishNumberTimeInterval := conf.Conf.PLC.FinishNumberTimeInterval
@@ -38,33 +38,20 @@
 		}
 		for _, addressItem := range plcConfig.Details {
 			if addressItem.FieldName == constvar.PlcStartAddressTypeFinishNumber {
-				value, err := service.PlcReadDirect(plcConfig, addressItem.StartAddress, addressItem.Length, addressItem.Type)
+				value, err := service.PlcReadDirect(plcConfig, addressItem)
 				if err != nil {
 					logx.Infof("plc read finish number err: %v", err)
 					continue
 				}
-				finishNumber := cast.ToInt64(value)
+				finishNumber := cast.ToInt(value)
 				if finishNumber != 0 {
 					service.PlcCacheSet(conf.Conf.CurrentDeviceID, addressItem.Channel, constvar.PlcCacheKeyFinishNumber, finishNumber)
-					_ = service.NewProgressService().UpdateProgress(conf.Conf.CurrentDeviceID, addressItem.Channel, cast.ToInt64(finishNumber))
+					_ = service.NewProgressService().UpdateProgress(conf.Conf.CurrentDeviceID, addressItem.Channel, finishNumber)
 				}
 				logx.Infof("plc read finish number: %v", finishNumber)
-			}
-		}
-
-	})
-	if err != nil {
-		return err
-	}
-
-	s.Every(totalNumberTimeInterval).Seconds().Do(func() {
-		plcConfig, code := service.NewDevicePlcService().GetDevicePlc()
-		if code != ecode.OK {
-			return
-		}
-		for _, addressItem := range plcConfig.Details {
-			if addressItem.FieldName == constvar.PlcStartAddressTypeTotalNumber {
-				value, err := service.PlcReadDirect(plcConfig, addressItem.StartAddress, addressItem.Length, addressItem.Type)
+				time.Sleep(time.Second * 1)
+			} else if addressItem.FieldName == constvar.PlcStartAddressTypeTotalNumber {
+				value, err := service.PlcReadDirect(plcConfig, addressItem)
 				if err != nil {
 					logx.Infof("plc read total number err: %v", err)
 					continue
@@ -74,10 +61,14 @@
 					service.PlcCacheSet(conf.Conf.CurrentDeviceID, addressItem.Channel, constvar.PlcCacheKeyTotalNumber, totalNumber)
 				}
 				logx.Infof("plc read total number: %v", totalNumber)
+				time.Sleep(time.Second * 1)
 			}
-		}
 
+		}
 	})
+	if err != nil {
+		return err
+	}
 
 	if isMaster {
 		s.Every(20).Seconds().Do(SyncProductionProgress) //鍚屾鐢熶骇鏁版嵁
@@ -100,6 +91,9 @@
 		return
 	}
 	for _, progress := range progressList {
+		if progress.FinishedQuantity == 0 {
+			continue
+		}
 		caller := nsq.NewCaller(fmt.Sprintf(constvar.NsqTopicSyncTaskProgress, conf.Conf.NsqConf.NodeId), "")
 		err = caller.Send(progress)
 		if err != nil {
@@ -115,22 +109,16 @@
 	}
 	syncOkIds := make([]uint, 0, len(records))
 	for _, record := range records {
-		var finishAmount int
-		if record.IsFinish {
-			progress, err := model.NewProductionProgressSearch(nil).SetWorkOrderId(record.WorkOrderId).SetProductProcedureId(record.ProductProcedureID).First()
-			if err == nil {
-				finishAmount = int(progress.FinishedQuantity)
-			}
-		}
 		msg := &common.MsgTaskStatusUpdate{
 			WorkOrderId:        record.WorkOrderId,
 			ProcedureID:        record.ProcedureID,
 			DeviceId:           record.DeviceId,
 			IsProcessing:       record.IsProcessing,
 			IsFinish:           record.IsFinish,
-			FinishAmount:       finishAmount,
+			FinishAmount:       record.FinishedQuantity,
 			ProductProcedureID: record.ProductProcedureID,
-			Ts:                 record.Ts,
+			StartTs:            record.StartTs,
+			FinishTs:           record.FinishTs,
 		}
 		caller := nsq.NewCaller(fmt.Sprintf(constvar.NsqTopicTaskProcedureStatusUpdate, conf.Conf.NsqConf.NodeId), "")
 		err = caller.Send(msg)
@@ -141,7 +129,7 @@
 		syncOkIds = append(syncOkIds, record.ID)
 	}
 	if len(syncOkIds) > 0 {
-		err = service.NewTaskService().RemoveTaskStatusSync(syncOkIds)
+		err = service.NewTaskService().FinishTaskStatusSync(syncOkIds)
 		if err != nil {
 			logx.Errorf("sync task status delete sync ok records error:%v", err)
 		}

--
Gitblit v1.8.0