From 040cd381f2e8475e9b4eb336b704ad878f56f4fa Mon Sep 17 00:00:00 2001
From: zhangqian <zhangqian@123.com>
Date: 星期四, 14 九月 2023 20:42:01 +0800
Subject: [PATCH] 适应性改动

---
 crontask/cron_task.go |   59 +++++++++++++++++++++++++++++++++++++++++------------------
 1 files changed, 41 insertions(+), 18 deletions(-)

diff --git a/crontask/cron_task.go b/crontask/cron_task.go
index 28301bf..505156d 100644
--- a/crontask/cron_task.go
+++ b/crontask/cron_task.go
@@ -29,12 +29,16 @@
 		if code != ecode.OK {
 			return
 		}
-		finishNumber, err := service.PlcRead(plcConfig, constvar.PlcStartAddressTypeFinishNumber)
-		if err == nil && finishNumber != 0 {
-			service.PlcCacheSet(constvar.PlcCacheKeyFinishNumber, finishNumber)
-			_ = service.NewProgressService().UpdateProgress(cast.ToInt64(finishNumber))
+		for _, addressItem := range plcConfig.Details {
+			if addressItem.FieldName == constvar.PlcStartAddressTypeFinishNumber {
+				finishNumber, err := service.PlcReadDirect(plcConfig, addressItem.StartAddress, addressItem.Position)
+				if err == nil && finishNumber != 0 {
+					service.PlcCacheSet(addressItem.Position, constvar.PlcCacheKeyFinishNumber, finishNumber)
+					_ = service.NewProgressService().UpdateProgress(addressItem.Position, cast.ToInt64(finishNumber))
+				}
+				logx.Infof("plc read finish number:%v, err:%v", finishNumber, err)
+			}
 		}
-		logx.Infof("plc read finish number:%v, err:%v", finishNumber, err)
 
 	})
 	if err != nil {
@@ -46,11 +50,17 @@
 		if code != ecode.OK {
 			return
 		}
-		totalNumber, err := service.PlcRead(plcConfig, constvar.PlcStartAddressTypeTotalNumber)
-		if err == nil && totalNumber != 0 {
-			service.PlcCacheSet(constvar.PlcCacheKeyTotalNumber, totalNumber)
+		for _, addressItem := range plcConfig.Details {
+			if addressItem.FieldName == constvar.PlcStartAddressTypeTotalNumber {
+				totalNumber, err := service.PlcReadDirect(plcConfig, addressItem.StartAddress, addressItem.Position)
+				if err == nil && totalNumber != 0 {
+					service.PlcCacheSet(addressItem.Position, constvar.PlcCacheKeyTotalNumber, totalNumber)
+					_ = service.NewProgressService().UpdateProgress(addressItem.Position, cast.ToInt64(totalNumber))
+				}
+				logx.Infof("plc read total number:%v, err:%v", totalNumber, err)
+			}
 		}
-		logx.Infof("plc read total number:%v, err:%v", totalNumber, err)
+
 	})
 
 	s.Every(60).Seconds().StartImmediately().Do(SyncProductionProgress) //鍚屾鐢熶骇鏁版嵁
@@ -59,17 +69,30 @@
 }
 
 func SyncProductionProgress() {
-	progress, err := service.NewProgressService().GetCurrentProgress()
-	if err != nil {
+	plcConfig, code := service.NewDevicePlcService().GetDevicePlc()
+	if code != ecode.OK {
 		return
 	}
-	if progress == nil {
-		return
+	var positions []int
+	for _, item := range plcConfig.Details {
+		if item.FieldName == constvar.PlcStartAddressTypeFinishNumber {
+			positions = append(positions, item.Position)
+		}
+	}
+	for _, position := range positions {
+		progress, err := service.NewProgressService().GetCurrentProgress(position)
+		if err != nil {
+			return
+		}
+		if progress == nil {
+			return
+		}
+
+		caller := nsq.NewCaller(fmt.Sprintf(constvar.NsqTopicSyncTaskProgress, conf.Conf.NsqConf.NodeId), "")
+		err = caller.Send(progress)
+		if err != nil {
+			logx.Errorf("SyncProductionProgress error:%v", err.Error())
+		}
 	}
 
-	caller := nsq.NewCaller(fmt.Sprintf(constvar.NsqTopicSyncTaskProgress, conf.Conf.NsqConf.NodeId), "")
-	err = caller.Send(progress)
-	if err != nil {
-		logx.Errorf("SyncProductionProgress error:%v", err.Error())
-	}
 }

--
Gitblit v1.8.0