123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162 |
- package models
- import (
- "Cold_Data/conf"
- "Cold_Data/logs"
- "encoding/json"
- "fmt"
- "github.com/astaxie/beego/cache"
- _ "github.com/astaxie/beego/cache/redis"
- "strconv"
- "time"
- )
- var redisCache_DeviceSensor cache.Cache
- func init() {
- config := fmt.Sprintf(`{"key":"%s","conn":"%s","dbNum":"%s","password":"%s"}`,
- "ColdDataV_Company", conf.Redis_address, conf.Redis_dbNum, conf.Redis_password)
- logs.Println(config)
- var err error
- redisCache_DeviceSensor, err = cache.NewCache("redis", config)
- if err != nil || redisCache_DeviceSensor == nil {
- errMsg := "failed to init redis"
- logs.Println(errMsg, err)
- panic(any(errMsg))
- }
- }
- // ---------------- Redis -------------------
- // Redis_Set(m.T_sn,m) // Redis 更新缓存
- func Redis_DeviceSensor_Set(T_id int, r Company_Project) (err error) {
- key := strconv.Itoa(T_id)
- //json序列化
- str, err := json.Marshal(r)
- if err != nil {
- logs.PrintlnError("Redis_DeviceSensor_Set", err)
- return
- }
- err = redisCache_DeviceSensor.Put(key, str, 24*time.Hour)
- if err != nil {
- logs.Println("set key:", key, ",value:", str, err)
- }
- return
- }
- func Redis_DeviceSensor_Get(key string) (r Company_Project, is bool) {
- if redisCache_DeviceSensor.IsExist(key) {
- //println("找到key:",key)
- v := redisCache_DeviceSensor.Get(key)
- json.Unmarshal(v.([]byte), &r)
- return r, true
- }
- //println("没有 找到key:",key)
- return Company_Project{}, false
- }
- //////////////////////////
- // 设备列表类
- type DeviceList_Project struct {
- T_sn string // 设备序列号 KF开头,环境监测主机。 YD开头,温途监测主机
- T_id int // 传感器编号
- T_name string // 标题
- T_sort int // 排序
- T_3dview string //3D 视图ID
- T_type int // 0:未知类型 1库房 2移动
- T_link int // 0:断开/故障 1连接 :实时数据
- // 实时数据
- T_t float32 // 温度
- T_rh float32 // 湿度
- T_Tlower float32 // 温度下限
- T_Tupper float32 // 温度上限
- T_RHlower float32 // 湿度下限
- T_RHupper float32 // 湿度上限
- T_time string // 采集时间
- // 设备同步参数
- T_Dattery int // 电量
- T_Site string // GPS :实时数据
- T_monitor int // 监控状态 0 未监控 1 监控 :记录数据(=0) 下线(=0)
- T_online int // 在线状态 0 未启用 1 在线 2 离线 :上下线
- T_online_s int // 在线状态-备用 0 未启用 1 在线 2 离线 :上下线
- }
- // 设备类
- type Device_Project struct {
- T_库房总数 int
- T_移动总数 int
- T_移动离线总数 int
- T_移动监控总数 int
- //DeviceList []DeviceList_Project
- }
- // 报警类
- type Warning_Project struct {
- //T_库房报警总数 int
- T_库房未处理总数 int
- T_库房设备报警数_今天 int
- T_库房报警设备数_今天 int
- //T_库房设备报警数_昨天 int
- //T_库房设备报警数_近7天 int
- //T_库房设备报警数_本月 int
- //T_库房设备报警数_上一月 int
- T_库房报警类型统计 map[string]int
- //T_库房报警设备数_近7天 map[string]int
- //T_移动警数总数 int
- T_移动未处理总数 int
- T_移动设备报警数_今天 int
- T_移动报警设备数_今天 int
- T_移动报警类型统计 map[string]int
- //T_移动设备报警数_昨天 int
- //T_移动设备报警数_近7天 int
- //T_移动设备报警数_本月 int
- //T_移动设备报警数_上一月 int
- //T_移动报警设备数_近7天 map[string]int
- T_报警设备数_近7天 map[string]int
- T_报警设备数_近30天 map[string]int
- T_报警设备数_近90天 map[string]int
- T_探头报警类型统计 map[string]int
- T_探头报警类型统计_30天 map[string]int
- T_探头报警类型统计_90天 map[string]int
- }
- // 任务类
- type Task_Project struct {
- T_任务总数_今天 int
- //T_任务总数_昨天 int
- //T_任务总数_近7天 int
- //T_任务总数_本月 int
- //T_任务总数_上一月 int
- //T_任务总数_近一年 map[string]int
- T_任务总数_近7天 map[string]int
- T_任务设备数_今天 int
- //T_任务设备数_昨天 int
- //T_任务设备数_近7天 int
- //T_任务设备数_本月 int
- //T_任务设备数_上一月 int
- }
- // 公司类
- type Company_Project struct {
- Company_Id int
- Company_name string
- Company_key string
- Company_plan string
- Company_data string
- Company_v3d string
- Company_Address string
- Company_coordinate string
- Company_mid int
- Company_path string
- Device Device_Project
- Warning Warning_Project
- Task Task_Project
- Children []*Company_Project
- }
|