From fecd8ff508b33715cbe24ca892fc19a2d1ad1ef5 Mon Sep 17 00:00:00 2001
From: zhangqian <zhangqian@123.com>
Date: 星期一, 06 十一月 2023 16:34:05 +0800
Subject: [PATCH] 加锁解决同时读串口时报的资源不可用和超时报错

---
 api/v1/task.go |   19 ++++++++++++-------
 1 files changed, 12 insertions(+), 7 deletions(-)

diff --git a/api/v1/task.go b/api/v1/task.go
index d700a97..553b76d 100644
--- a/api/v1/task.go
+++ b/api/v1/task.go
@@ -10,7 +10,6 @@
 	"apsClient/pkg/ecode"
 	"apsClient/pkg/logx"
 	"apsClient/service"
-	"apsClient/service/plc_address"
 	"errors"
 	"github.com/gin-gonic/gin"
 	"github.com/jinzhu/gorm"
@@ -235,7 +234,7 @@
 	}
 
 	service.TaskFlagUnset(procedure.Channel)
-
+	service.TaskEndTimeSet(procedure.Channel, time.Now().Unix()) //璁剧疆宸ュ簭杩愯缁撴潫鏃堕棿
 	ctx.Ok()
 }
 
@@ -322,7 +321,9 @@
 		return
 	}
 
-	service.TaskFlagSet(procedure.Channel)
+	service.TaskFlagSet(procedure.Channel, int(procedure.ID))
+	service.TaskStartTimeSet(procedure.Channel, time.Now().Unix()) //璁剧疆宸ュ簭杩愯寮�濮嬫椂闂�
+	service.TaskEndTimeSet(procedure.Channel, 0)                   //璁剧疆宸ュ簭杩愯缁撴潫鏃堕棿
 	ctx.Ok()
 }
 
@@ -390,8 +391,12 @@
 		logx.Info("----------------寮�濮嬩笅鍙戝伐鑹哄弬鏁�-----------------")
 	}
 	var failedNumbers int
+	processModelAddress, err := service.GetProcessModelAddress(conf.Conf.CurrentDeviceID)
+	if err != nil {
+		return err
+	}
 	for k, v := range paramsMap {
-		address, ok := plc_address.Get(k)
+		address, ok := processModelAddress[k]
 		if !ok {
 			logx.Errorf("miss param address, k:%v, v:%v", k, v)
 			continue
@@ -418,9 +423,9 @@
 // @Tags      Task
 // @Summary   鑾峰彇浠诲姟鍒楄〃2
 // @Produce   application/json
-// @Param     object  query    request.SimpleTaskList true  "鏌ヨ鍙傛暟"
-// @Success   200   {object}  contextx.Response{data=map[int32]response.taskResponse}  "鎴愬姛"
-// @Router    /v1/task/listByChannel [get]
+// @Param     object  query    request.TaskListByChannel true  "鏌ヨ鍙傛暟"
+// @Success   200   {object}  contextx.Response{data=map[int32]response.TaskResponse}  "鎴愬姛"
+// @Router    /v1/task/list [get]
 func (slf *TaskApi) TaskListByChannel(c *gin.Context) {
 	var params request.TaskListByChannel
 	ctx, ok := contextx.NewContext(c, &params)

--
Gitblit v1.8.0