DeviceTask.go 2.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081
  1. package Device
  2. import (
  3. "Cold_Data/conf"
  4. "Cold_Data/lib"
  5. "Cold_Data/logs"
  6. "github.com/beego/beego/v2/adapter/orm"
  7. orm2 "github.com/beego/beego/v2/client/orm"
  8. _ "github.com/go-sql-driver/mysql"
  9. "time"
  10. )
  11. // 模板
  12. type DeviceTask struct {
  13. Id int `orm:"column(ID);size(11);auto;pk"`
  14. T_sn string `orm:"size(256);null"` // 设备序列号 KF开头,环境监测主机。 YD开头,温途监测主机
  15. T_Ut_start time.Time `orm:"type(timestamp);null;"` // 开始时间
  16. T_Ut_end time.Time `orm:"type(timestamp);null;"` // 结束时间
  17. T_Ut time.Time `orm:"type(timestamp);null;"` // 采集时间
  18. T_State int `orm:"size(2);default(1)"`
  19. // 1 start:开始监测任务,
  20. // 2 stop:结束监测任务,
  21. // 3 print:中途打印任务
  22. }
  23. // 模板
  24. type DeviceTask_R struct {
  25. T_Ut_start string // 开始时间
  26. T_Ut_end string // 结束时间
  27. T_State int
  28. // 1 start:开始监测任务,
  29. // 2 stop:结束监测任务,
  30. // 3 print:中途打印任务
  31. }
  32. func (t *DeviceTask) TableName() string {
  33. return "device_task" // 数据库名称 // ************** 替换 FormulaList **************
  34. }
  35. func init() {
  36. //注册模型
  37. orm.RegisterModel(new(DeviceTask))
  38. }
  39. // 获取全部
  40. func Read_DeviceTask_List(T_sn string) (r_l []DeviceTask) {
  41. o := orm.NewOrm()
  42. qs := o.QueryTable(new(DeviceTask))
  43. cond := orm.NewCondition()
  44. cond1 := cond.And("T_sn", T_sn)
  45. _, err := qs.Limit(10).SetCond((*orm2.Condition)(cond1)).OrderBy("-Id").All(&r_l)
  46. if err != nil {
  47. logs.PrintlnError(lib.FuncName(), err)
  48. return
  49. }
  50. return
  51. }
  52. func Read_Task_任务总数(t_pid int, Wtime string) int {
  53. o := orm.NewOrm()
  54. var maps []orm2.Params
  55. sql := "SELECT COUNT(1) FROM device_task WHERE " + Wtime + " AND t_sn IN (SELECT DISTINCT t_sn FROM device_sensor WHERE t_pid = ? AND t_type IN " + conf.YD + ")"
  56. o.Raw(sql, t_pid).Values(&maps)
  57. return lib.To_int(maps[0]["COUNT(1)"])
  58. }
  59. func Read_Task_任务设备数(t_pid int, Wtime string) int {
  60. o := orm.NewOrm()
  61. var maps []orm2.Params
  62. sql := "SELECT COUNT(DISTINCT t_sn) AS COUNT FROM device_task WHERE " + Wtime + " AND t_sn IN (SELECT DISTINCT t_sn FROM device_sensor WHERE t_pid = ? AND t_type IN " + conf.YD + ")"
  63. o.Raw(sql, t_pid).Values(&maps)
  64. return lib.To_int(maps[0]["COUNT"])
  65. }