Browse Source

2023-04-28

zoie 2 years ago
parent
commit
6b258e6ec9
4 changed files with 43 additions and 19 deletions
  1. 2 2
      Nats/Nats.go
  2. 39 15
      controllers/TaskData.go
  3. 1 1
      models/Task/TaskData.go
  4. 1 1
      routers/TaskData.go

+ 2 - 2
Nats/Nats.go

@@ -35,7 +35,7 @@ type Up_TaskData_Back struct {
 
 func NatsInit() {
 
-	// 获取微信二维码 打包本地数据
+	// 打包本地数据
 	_, _ = lib.Nats.Subscribe("ColdVerify_Local_Import_TaskData", func(m *nats.Msg) {
 		logs.Debug("ColdVerify_Local_Import_TaskData message: ", string(m.Data))
 		logs.Info(lib.FuncName(), "任务数据-打包本地数据 开始打包数据...!")
@@ -183,7 +183,7 @@ func NatsInit() {
 	//
 	//})
 
-	// 获取微信二维码 更新线上数据
+	// 更新线上数据
 	_, _ = lib.Nats.Subscribe("ColdVerify_Local_Up_TaskData", func(m *nats.Msg) {
 		logs.Debug("ColdVerify_Local_Up_TaskData message: ", string(m.Data))
 		logs.Info(lib.FuncName(), "任务数据-打包本地数据 更新线上数据...!")

+ 39 - 15
controllers/TaskData.go

@@ -53,6 +53,11 @@ func (c *TaskDataController) TaskData_List() {
 		c.ServeJSON()
 		return
 	}
+	if Task_r.T_collection_state == 2 {
+		c.Data["json"] = lib.JSONS{Code: 202, Msg: "数据采集中,请稍后!"}
+		c.ServeJSON()
+		return
+	}
 
 	var cnt int64
 	List, cnt := Task.Read_TaskData_ById_List(Task_r.T_task_id, T_sn, T_id, Time_start, Time_end, page, page_z)
@@ -86,6 +91,12 @@ func (c *TaskDataController) TaskDataClass_List() {
 		return
 	}
 
+	if Task_r.T_collection_state == 2 {
+		c.Data["json"] = lib.JSONS{Code: 202, Msg: "数据采集中,请稍后!"}
+		c.ServeJSON()
+		return
+	}
+
 	List := Task.Read_TaskData_ById_ClassList(Task_r.T_task_id)
 
 	c.Data["json"] = lib.JSONS{Code: 200, Msg: "ok!", Data: List}
@@ -356,6 +367,12 @@ func (c *TaskDataController) Export_Data_Excel() {
 		return
 	}
 
+	if Task_r.T_collection_state == 2 {
+		c.Data["json"] = lib.JSONS{Code: 202, Msg: "数据采集中,请稍后!"}
+		c.ServeJSON()
+		return
+	}
+
 	T_sn_list := strings.Split(T_sn_str, ",")
 	DeviceSensor_data_list := []Task.TaskData_{}
 	for _, v := range T_sn_list {
@@ -418,6 +435,11 @@ func (c *TaskDataController) Export_Data_Excel() {
 func (c *TaskDataController) Check() {
 	T_task_id := c.GetString("T_task_id")
 	Task_r, err := NatsServer.Read_Task(T_task_id)
+	if Task_r.T_collection_state == 2 {
+		c.Data["json"] = lib.JSONS{Code: 202, Msg: "数据采集中,请稍后!"}
+		c.ServeJSON()
+		return
+	}
 	if err != nil {
 		c.Data["json"] = lib.JSONS{Code: 202, Msg: "T_task_id 错误!"}
 		c.ServeJSON()
@@ -441,7 +463,7 @@ func (c *TaskDataController) Check() {
 	for _, v := range List {
 		var r_json R_JSONS
 		r_json.T_sn = v.T_sn
-
+		r_json.T_id = v.T_id
 		r_json.Result = 200
 
 		DeviceSensor_data := Task.Read_TaskData_ById_List_(Task_r.T_task_id, v.T_sn)
@@ -504,6 +526,11 @@ func (c *TaskDataController) Check() {
 func (c *TaskDataController) Check_Asyn() {
 	T_task_id := c.GetString("T_task_id")
 	Task_r, err := NatsServer.Read_Task(T_task_id)
+	if Task_r.T_collection_state == 2 {
+		c.Data["json"] = lib.JSONS{Code: 202, Msg: "数据采集中,请稍后!"}
+		c.ServeJSON()
+		return
+	}
 	if err != nil {
 		c.Data["json"] = lib.JSONS{Code: 202, Msg: "T_task_id 错误!"}
 		c.ServeJSON()
@@ -521,23 +548,23 @@ func (c *TaskDataController) Check_Asyn() {
 		Result_Time_start  string //  2022-8-05 21:01
 		Result_Time_defect int64  //  缺失时间间隔
 	}
-	var r_jsons []R_JSONS
 
 	List := Task.Read_TaskData_ById_ClassList(Task_r.T_task_id)
 
+	r_jsons := make([]R_JSONS, 0)
 	var limitMaxNum = 10
 	var chData = make(chan int, limitMaxNum)
 	var jobGroup sync.WaitGroup
 	var tasknum = len(List)
 
-	//处理任务,最多同时有10个协程
 	for i := 0; i < tasknum; i++ {
 		chData <- 1
-		go func(index int, r_jsons *[]R_JSONS) {
-			defer jobGroup.Done()
-			jobGroup.Add(1)
+		jobGroup.Add(1)
+		go func(index int, wg *sync.WaitGroup, res *[]R_JSONS) {
+			defer wg.Done()
 			var r_json R_JSONS
 			r_json.T_sn = List[index].T_sn
+			r_json.T_id = List[index].T_id
 
 			r_json.Result = 200
 
@@ -545,10 +572,6 @@ func (c *TaskDataController) Check_Asyn() {
 			r_json.T_unm = len(DeviceSensor_data)
 
 			if r_json.T_unm > 2 {
-				if List[index].T_sn == "000000000000004" {
-					fmt.Println("-------------", List[index].T_sn)
-
-				}
 				r_json.T_id = DeviceSensor_data[0].T_id
 				r_json.Time_end = DeviceSensor_data[len(DeviceSensor_data)-1].T_time
 				r_json.Time_start = DeviceSensor_data[0].T_time
@@ -561,10 +584,11 @@ func (c *TaskDataController) Check_Asyn() {
 				if formatTime_x > 60*30 || formatTime_x < 60 {
 					r_json.Result = 202
 					r_json.Result_str = "数据异常(数据的第一个时间与第二个时间相差 " + strconv.FormatInt(formatTime_x, 10) + "秒),必须大于60秒,小于30分钟"
-					*r_jsons = append(*r_jsons, r_json)
+					*res = append(*res, r_json)
 					<-chData
 					return
 				}
+
 				for data_i := 2; data_i < len(DeviceSensor_data); data_i++ {
 					formatTime_a = formatTime_b
 					formatTime_b, _ = time.Parse("2006-1-2 15:04", DeviceSensor_data[data_i].T_time)
@@ -582,7 +606,7 @@ func (c *TaskDataController) Check_Asyn() {
 							r_json.Result_str = "开始时间:" + DeviceSensor_data[data_i-1].T_time + "  离下一条时间间隔:" + strconv.FormatInt(formatTime_, 10) + "秒,相差时间大于30分钟,不能自动补充"
 							break
 						}
-						r_json.Result = 201
+						r_json.Result = 202
 						r_json.Result_str = "开始时间:" + DeviceSensor_data[data_i-1].T_time + "  离下一条时间间隔:" + strconv.FormatInt(formatTime_, 10) + "秒"
 						r_json.Result_Time_start = DeviceSensor_data[data_i-1].T_time
 						r_json.Result_Time_defect = formatTime_
@@ -590,14 +614,14 @@ func (c *TaskDataController) Check_Asyn() {
 						break
 					}
 				}
+
 			} else {
 				r_json.Result = 202
 				r_json.Result_str = "数据量太少 必须大于 2条以上!"
 			}
-
-			*r_jsons = append(*r_jsons, r_json)
+			*res = append(*res, r_json)
 			<-chData
-		}(i, &r_jsons)
+		}(i, &jobGroup, &r_jsons)
 	}
 	//使用Wait等待所有任务执行完毕
 	jobGroup.Wait()

+ 1 - 1
models/Task/TaskData.go

@@ -215,7 +215,7 @@ func Read_TaskData_sn(T_task_id string) []TaskDataClass_ {
 func Update_TaskData_ByT_sn(T_task_id, T_sn, T_id string) error {
 	o := orm.NewOrm()
 	// 修改id
-	sql := "UPDATE z_task_data_" + T_task_id + " SET `t_id` = '" + T_id + "' WHERE `t_sn` = " + T_sn
+	sql := "UPDATE z_task_data_" + T_task_id + " SET `t_id` = '" + T_id + "' WHERE `t_sn` = '" + T_sn + "'"
 	logs.Println(sql)
 	_, err := o.Raw(sql).Exec()
 	if err != nil {

+ 1 - 1
routers/TaskData.go

@@ -21,7 +21,7 @@ func init() {
 	beego.Router("/TaskData/Export_Data_Excel", &controllers.TaskDataController{}, "*:Export_Data_Excel") // 设置 设备参数
 
 	// 数据校验
-	//beego.Router("/TaskData/Check", &controllers.TaskDataController{}, "*:Check")           // 设置 设备参数
+	//beego.Router("/TaskData/Check", &controllers.TaskDataController{}, "*:Check") // 设置 设备参数
 	beego.Router("/TaskData/Check", &controllers.TaskDataController{}, "*:Check_Asyn") // 设置 设备参数
 
 	beego.Router("/TaskData/Import_TaskData", &controllers.TaskDataController{}, "*:TaskData_Import_TaskData") // 打包本地数据