From cab6eea89a0d82710369604ecb51f1cdb122e433 Mon Sep 17 00:00:00 2001
From: zhangqian <zhangqian@123.com>
Date: 星期四, 19 十月 2023 17:26:34 +0800
Subject: [PATCH] fix

---
 crontask/cron_task.go |   45 +++++++++++++++++++++++----------------------
 1 files changed, 23 insertions(+), 22 deletions(-)

diff --git a/crontask/cron_task.go b/crontask/cron_task.go
index 2bdb2c2..cd4e9e6 100644
--- a/crontask/cron_task.go
+++ b/crontask/cron_task.go
@@ -16,7 +16,7 @@
 
 var s *gocron.Scheduler
 
-func StartTask() error {
+func StartTask(isMaster bool) error {
 	finishNumberTimeInterval := conf.Conf.PLC.FinishNumberTimeInterval
 	totalNumberTimeInterval := conf.Conf.PLC.TotalNumberTimeInterval
 	if finishNumberTimeInterval == 0 {
@@ -75,32 +75,21 @@
 
 	})
 
-	s.Every(60).Seconds().Do(SyncProductionProgress) //鍚屾鐢熶骇鏁版嵁
-	s.Every(30).Seconds().Do(SyncTaskStatus)         //鍚屾浠诲姟鐘舵��
+	if isMaster {
+		s.Every(60).Seconds().Do(SyncProductionProgress) //鍚屾鐢熶骇鏁版嵁
+		s.Every(30).Seconds().Do(SyncTaskStatus)         //鍚屾浠诲姟鐘舵��
+	}
 	s.StartAsync()
 	return nil
 }
 
 func SyncProductionProgress() {
-	plcConfig, code := service.NewDevicePlcService().GetDevicePlc()
-	if code != ecode.OK {
+	progressList, err := service.NewProgressService().GetProgressList()
+	if err != nil {
+		logx.Errorf("SyncProductionProgress get records err:%v", err)
 		return
 	}
-	var channels []int32
-	for _, item := range plcConfig.Details {
-		if item.FieldName == constvar.PlcStartAddressTypeFinishNumber {
-			channels = append(channels, item.Channel)
-		}
-	}
-	for _, channel := range channels {
-		progress, err := service.NewProgressService().GetCurrentProgress(channel)
-		if err != nil {
-			return
-		}
-		if progress == nil {
-			return
-		}
-
+	for _, progress := range progressList {
 		caller := nsq.NewCaller(fmt.Sprintf(constvar.NsqTopicSyncTaskProgress, conf.Conf.NsqConf.NodeId), "")
 		err = caller.Send(progress)
 		if err != nil {
@@ -114,6 +103,7 @@
 	if err != nil {
 		logx.Errorf("SyncTaskStatus get records err:%v", err)
 	}
+	syncOkIds := make([]uint, 0, len(records))
 	for _, record := range records {
 		msg := &common.MsgTaskStatusUpdate{
 			WorkOrderId:  record.WorkOrderId,
@@ -127,17 +117,28 @@
 		if err != nil {
 			logx.Errorf("sync task status send msg error:%v", err.Error())
 		}
+		syncOkIds = append(syncOkIds, record.ID)
+	}
+	if len(syncOkIds) > 0 {
+		err = service.NewTaskService().RemoveTaskStatusSync(syncOkIds)
+		if err != nil {
+			logx.Errorf("sync task status delete sync ok records error:%v", err)
+		}
 	}
 }
 
-func StopTask() {
+func RestartTask(isMaster bool) error {
 	if s != nil {
 		s.Stop()
 	}
+	return StartTask(isMaster)
 }
 
 // Once 涓�娆℃�т换鍔�
-func Once() {
+func Once(isMaster bool) {
+	if !isMaster {
+		return
+	}
 	msg := &common.MsgPullDataRequest{DataType: common.PullDataTypeProcessModel}
 	caller := nsq.NewCaller(fmt.Sprintf(constvar.NsqTopicPullDataRequest, conf.Conf.NsqConf.NodeId), constvar.NsqTopicPullDataResponse)
 	err := caller.Send(msg)

--
Gitblit v1.8.0