huangyan 4 mesi fa
parent
commit
f7caffa568
4 ha cambiato i file con 67 aggiunte e 14 eliminazioni
  1. 4 5
      Nats/Nats.go
  2. 4 4
      controllers/Task.go
  3. 58 4
      controllers/TaskData.go
  4. 1 1
      controllers/infoCollection.go

+ 4 - 5
Nats/Nats.go

@@ -1,7 +1,6 @@
 package Nats
 
 import (
-	"ColdVerify_server/Nats/NatsServer"
 	"ColdVerify_server/conf"
 	"ColdVerify_server/lib"
 	"ColdVerify_server/logs"
@@ -100,7 +99,7 @@ func NatsInit() {
 			})
 		}
 
-		TaskData_Num := Task.Read_TaskData_Count(Task_r.T_task_id)
+		//TaskData_Num := Task.Read_TaskData_Count(Task_r.T_task_id)
 
 		//if TaskData_Num == 0 {
 		//	Task_r.T_collection_num = 0
@@ -110,8 +109,8 @@ func NatsInit() {
 		//	return
 		//}
 
-		// 导入到本地数据
-		NatsServer.Import_TaskData(resp.T_uuid, Task_r.T_task_id, TaskData_Num)
+		// 导入到本地数据---
+		//NatsServer.Import_TaskData(resp.T_uuid, Task_r.T_task_id, TaskData_Num)
 
 		System.Add_UserLogs_T(resp.T_uuid, "任务", "修改", Task_r)
 
@@ -143,7 +142,7 @@ func NatsInit() {
 			col = append(col, "T_collection_state")
 		}
 		if !Task.Update_Task(t_Req, col...) {
-			logs.Error("Mats", lib.FuncName(), err)
+			logs.Error("Nats", lib.FuncName(), err)
 			t_R.Code = 202
 			t_R.Msg = err.Error()
 			b, _ := msgpack.Marshal(&t_R)

+ 4 - 4
controllers/Task.go

@@ -878,7 +878,7 @@ func (c *TaskController) UpCollectionState() {
 	if T_collection_state == Task.TaskCollectionStateReturn ||
 		T_collection_state == Task.TaskCollectionStatePass {
 		System.Add_News(r.T_collection, fmt.Sprintf("【数据编辑】您提交的数据编辑【%s-%s】审核%s", company_r.T_name, r.T_name, Task.TaskCollectionStateMap[T_collection_state]), "")
-		System.Send_Weichat_News(AdminMap[r.T_collection], fmt.Sprintf("【数据编辑】您提交的数据编辑【%s-%s】审核%s", company_r.T_name, r.T_name, Task.TaskCollectionStateMap[T_collection_state]), "")
+		go System.Send_Weichat_News(AdminMap[r.T_collection], fmt.Sprintf("【数据编辑】您提交的数据编辑【%s-%s】审核%s", company_r.T_name, r.T_name, Task.TaskCollectionStateMap[T_collection_state]), "")
 	}
 
 	// 添加任务操作日志
@@ -1345,12 +1345,12 @@ func (c *TaskController) UpSchemeState() {
 		T_scheme_state == Task.TaskSchemeStatePass ||
 		T_scheme_state == Task.TaskSchemeStateClientPass {
 		System.Add_News(r.T_scheme, fmt.Sprintf("【验证方案】您提交的验证方案【%s-%s】 %s", company_r.T_name, r.T_name, Task.TaskSchemeStateMap[T_scheme_state]), "")
-		System.Send_Weichat_News(AdminMap[r.T_scheme], fmt.Sprintf("【验证方案】您提交的验证方案【%s-%s】 %s", company_r.T_name, r.T_name, Task.TaskSchemeStateMap[T_scheme_state]), "")
+		go System.Send_Weichat_News(AdminMap[r.T_scheme], fmt.Sprintf("【验证方案】您提交的验证方案【%s-%s】 %s", company_r.T_name, r.T_name, Task.TaskSchemeStateMap[T_scheme_state]), "")
 	}
 
 	if T_scheme_state == Task.TaskSchemeStateClientPass {
 		System.Add_News(r.T_collection, fmt.Sprintf("【%s-%s】验证方案客户已通过,可以进场实施,请到平台进行查看验证方案,确认好后选择进场时间", company_r.T_name, r.T_name), "")
-		System.Send_Weichat_News(AdminMap[r.T_collection], fmt.Sprintf("【%s-%s】验证方案客户已通过,可以进场实施,请到平台进行查看验证方案,确认好后选择进场时间", company_r.T_name, r.T_name), "")
+		go System.Send_Weichat_News(AdminMap[r.T_collection], fmt.Sprintf("【%s-%s】验证方案客户已通过,可以进场实施,请到平台进行查看验证方案,确认好后选择进场时间", company_r.T_name, r.T_name), "")
 	}
 
 	// 添加任务操作日志
@@ -1465,7 +1465,7 @@ func (c *TaskController) UpReportingState() {
 		T_reporting_state == Task.TaskSchemeStatePass ||
 		T_reporting_state == Task.TaskSchemeStateClientPass {
 		System.Add_News(r.T_scheme, fmt.Sprintf("【验证报告】您提交的验证报告【%s-%s】 %s", user_r.T_name, r.T_name, Task.TaskReportingStateMap[T_reporting_state]), "")
-		System.Send_Weichat_News(AdminMap[r.T_scheme], fmt.Sprintf("【验证报告】您提交的验证报告【%s-%s】 %s", user_r.T_name, r.T_name, Task.TaskReportingStateMap[T_reporting_state]), "")
+		go System.Send_Weichat_News(AdminMap[r.T_scheme], fmt.Sprintf("【验证报告】您提交的验证报告【%s-%s】 %s", user_r.T_name, r.T_name, Task.TaskReportingStateMap[T_reporting_state]), "")
 	}
 
 	// 添加任务操作日志

+ 58 - 4
controllers/TaskData.go

@@ -13,7 +13,6 @@ import (
 	"fmt"
 	beego "github.com/beego/beego/v2/server/web"
 	"github.com/signintech/gopdf"
-	"github.com/vmihailenco/msgpack/v5"
 	"github.com/xuri/excelize/v2"
 	"log"
 	"math"
@@ -21,6 +20,7 @@ import (
 	"sort"
 	"strconv"
 	"strings"
+	"sync"
 	"time"
 )
 
@@ -121,7 +121,7 @@ func (c *TaskDataController) Extract_TaskData_Back() {
 		return
 	}
 
-	data := Nats.Extract_TaskData_Back{
+	resp := Nats.Extract_TaskData_Back{
 		T_uuid:          user_r.T_uuid,
 		Time_start:      Time_start,
 		Time_end:        Time_end,
@@ -129,9 +129,63 @@ func (c *TaskDataController) Extract_TaskData_Back() {
 		Task:            Task_r,
 	}
 	// 后台执行打包数据
-	b, _ := msgpack.Marshal(&data)
-	_ = lib.Nats.Publish("ColdVerify_Server_Extract_TaskData_Back", b)
+	//b, _ := msgpack.Marshal(&data)
+	//_ = lib.Nats.Publish("ColdVerify_Server_Extract_TaskData_Back", b)
+	go func(resp Nats.Extract_TaskData_Back, Task_r Task.Task) {
+		Task_rname := resp.Task
+		// 清空表
+		Task.Truncate_TaskData(Task_rname.T_task_id)
+
+		//失败重试5次
+		DeviceClassList := new(sync.Map)
+		var count int
+		for _, v := range resp.DeviceClassList {
+			if strings.Contains(v.T_sn, "-") || len(v.T_sn) == 0 {
+				// 从3.0平台导入
+				continue
+			}
+			DeviceClassList.Store(fmt.Sprintf("%s|%s", v.T_sn, v.T_id), 5)
+			//err = Task.Import_TaskData_Back(v.T_sn, v.T_id, resp.Task.T_task_id, resp.Time_start, resp.Time_end)
+			//count++
+			//time.Sleep(5 * time.Second)
+		}
+		DeviceClassList.Range(func(k, v interface{}) bool {
+			count++
+			return true
+		})
+
+		for count > 0 {
+			DeviceClassList.Range(func(k, v any) bool {
+				T_snid := strings.Split(k.(string), "|")
+				T_sn := T_snid[0]
+				T_id := T_snid[1]
+				temp := v.(int)
+				temp--
+				DeviceClassList.Store(k, temp)
+
+				err := Task.Import_TaskData_Back(T_sn, T_id, resp.Task.T_task_id, resp.Time_start, resp.Time_end)
+				if err == nil || strings.Contains(err.Error(), "doesn't exist") {
+					DeviceClassList.Delete(k)
+					count--
+				} else {
+					logs.Error("设备数据同步到任务数据失败", err)
+					DeviceClassList.Delete(k)
+					count--
+				}
+				return true
+			})
+		}
+		// 提取数据后 将 当前任务 数据采集 标志 为 1
+		Task_r.T_collection_state = 1
+		if !Task.Update_Task(Task_r, "T_collection_state") {
+			c.Data["json"] = lib.JSONS{Code: 202, Msg: "修改失败!"}
+			c.ServeJSON()
+			return
+		}
 
+	}(resp, Task_r)
+	System.Add_UserLogs_T(resp.T_uuid, "任务", "修改", Task_r)
+	System.Add_UserLogs(resp.T_uuid, "提取数据", "提取数据"+Task_r.T_name, Task_r.T_task_id+"|"+resp.Time_start+"|"+resp.Time_end)
 	c.Data["json"] = lib.JSONS{Code: 200, Msg: "ok!"}
 	c.ServeJSON()
 	return

+ 1 - 1
controllers/infoCollection.go

@@ -341,7 +341,7 @@ func (c *InfoCollectionController) UpStatus() {
 	AdminMap := Account.AdminListToMap(Account.Read_Admin_List_ALL_1())
 	if T_status == InfoCollection.InfoCollectionStatusReceipt || T_status == InfoCollection.InfoCollectionStatusReturn {
 		System.Add_News(r.T_submit_uuid, fmt.Sprintf("【信息采集】您提交的信息采集【%s-%s】%s", user_r.T_name, r.T_name, InfoCollection.InfoCollectionStatusMap[T_status]), "")
-		System.Send_Weichat_News(AdminMap[r.T_submit_uuid], fmt.Sprintf("【信息采集】您提交的信息采集【%s-%s】%s", user_r.T_name, r.T_name, InfoCollection.InfoCollectionStatusMap[T_status]), "")
+		go System.Send_Weichat_News(AdminMap[r.T_submit_uuid], fmt.Sprintf("【信息采集】您提交的信息采集【%s-%s】%s", user_r.T_name, r.T_name, InfoCollection.InfoCollectionStatusMap[T_status]), "")
 	}
 	System.Add_UserLogs_T(User_r.T_uuid, "信息采集管理", "修改状态", r)
 	c.Data["json"] = lib.JSONS{Code: 200, Msg: "ok!"}