Browse Source

冷链报警数据日志类优化(不重要数据 只能查询近40天)

siked 9 months ago
parent
commit
10fa40d1b9
4 changed files with 53 additions and 9 deletions
  1. 12 0
      lib/lib.go
  2. 14 5
      logs/LogPrintln.go
  3. 10 3
      models/Device/DeviceData.go
  4. 17 1
      models/Warning/Warning.go

+ 12 - 0
lib/lib.go

@@ -436,3 +436,15 @@ func Utf8ToGbk(s []byte) ([]byte, error) {
 	}
 	return d, nil
 }
+
+// timea 与当前时间,在  正负 SecondsNun 秒
+func IsWithinMinutesRange(timea time.Time, SecondsNun float64) bool {
+	currentTime := time.Now()
+	timeDifference := currentTime.Sub(timea)
+
+	if timeDifference.Seconds() <= SecondsNun && timeDifference.Seconds() >= -SecondsNun {
+		return true
+	} else {
+		return false
+	}
+}

+ 14 - 5
logs/LogPrintln.go

@@ -10,6 +10,7 @@ import (
 var Test = true
 var logx *logs.BeeLogger
 var logxE *logs.BeeLogger
+var logxWData *logs.BeeLogger
 var logxMqtt *logs.BeeLogger
 var logxData *logs.BeeLogger
 var LogxOrm *logs.BeeLogger
@@ -23,19 +24,22 @@ func init() {
 	}
 
 	logx = logs.NewLogger()
-	logx.SetLogger(logs.AdapterFile, `{"filename":"logs/logx/logx.log"}`)
+	logx.SetLogger(logs.AdapterFile, `{"filename":"logs/logx/logx.log","MaxDays":30}`)
 
 	logxE = logs.NewLogger()
-	logxE.SetLogger(logs.AdapterFile, `{"filename":"logs/logxE/logx.log"}`)
+	logxE.SetLogger(logs.AdapterFile, `{"filename":"logs/logxE/logx.log","MaxDays":180}`)
 
 	logxMqtt = logs.NewLogger()
-	logxMqtt.SetLogger(logs.AdapterFile, `{"filename":"logs/Mqtt/logx.log"}`)
+	logxMqtt.SetLogger(logs.AdapterFile, `{"filename":"logs/Mqtt/logx.log","MaxDays":30}`)
 
 	logxData = logs.NewLogger()
-	logxData.SetLogger(logs.AdapterFile, `{"filename":"logs/Data/logx.log"}`)
+	logxData.SetLogger(logs.AdapterFile, `{"filename":"logs/Data/logx.log","MaxDays":7}`)
+
+	logxWData = logs.NewLogger()
+	logxWData.SetLogger(logs.AdapterFile, `{"filename":"logs/logxWData/logx.log","MaxDays":300}`)
 
 	LogxOrm = logs.NewLogger()
-	LogxOrm.SetLogger(logs.AdapterFile, `{"filename":"logs/Orm/logx.log"}`)
+	LogxOrm.SetLogger(logs.AdapterFile, `{"filename":"logs/Orm/logx.log","MaxDays":7}`)
 	if !Test {
 		orm2.DebugLog = orm2.NewLog(LogxOrm)
 	}
@@ -78,6 +82,11 @@ func PrintlnMqtt(str string) {
 
 }
 
+func PrintlnWData(format string, v ...interface{}) {
+	logx.Info(format, v)
+
+}
+
 func PrintlnData(str string) {
 	if Test {
 		fmt.Println(str)

+ 10 - 3
models/Device/DeviceData.go

@@ -59,11 +59,18 @@ func RedisDeviceData_Set(T_sn string, T_id int, r DeviceData_R) (err error) {
 		if time.Now().Unix() <= r.T_time.Unix() {
 			r.T_time = time.Now()
 		}
-		// 提前最新数据
-		if t.T_time.Unix() > r.T_time.Unix() {
-			// 储存的 是最新数据
+		// 时间在当前时间的正负10分钟范围内
+		if !lib.IsWithinMinutesRange(r.T_time, 600) {
+			// 时间有问题,或者差距太大
 			return
 		}
+		// 提前最新数据
+		//if t.T_time.Unix() > r.T_time.Unix() {
+		//	if lib.IsWithinMinutesRange( t.T_time,600){
+		//		// 储存的 是最新数据
+		//		return
+		//	}
+		//}
 	}
 
 	//json序列化

+ 17 - 1
models/Warning/Warning.go

@@ -162,7 +162,21 @@ func Redis_WarningToAdmin_Num(key string) bool {
 }
 
 // ---------------- 特殊方法 -------------------
-
+//
+//	func Is2Subtable(T_tp int) bool {
+//		//109	市电断电报警	市电断电报警,0,1,0,0,99999,0,0,0,0,0,0,0,0,0,0,0,0|	1
+//		//110	市电已恢复	市电已恢复,0,1,0,0,99999,0,0,0,0,0,0,0,0,0,0,0,0|	1
+//		values := []int{1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 109, 110}
+//
+//		for _, value := range values {
+//			if T_tp == value {
+//
+//				return true
+//			}
+//		}
+//		return false
+//	}
+//
 // 添加
 func Add_Warning(m Warning) (id int64, err error) {
 
@@ -216,6 +230,8 @@ func Add_Warning(m Warning) (id int64, err error) {
 
 	INSERT("warning_"+m.T_Ut.Format("2006_01"), m.Id) // 旧 备份
 
+	logs.PrintlnWData("WData", m.T_pid, m.T_tp, m.T_sn, m.T_Remark) // 记录报警日志
+
 	return id, err
 }