Device.go 51 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798991001011021031041051061071081091101111121131141151161171181191201211221231241251261271281291301311321331341351361371381391401411421431441451461471481491501511521531541551561571581591601611621631641651661671681691701711721731741751761771781791801811821831841851861871881891901911921931941951961971981992002012022032042052062072082092102112122132142152162172182192202212222232242252262272282292302312322332342352362372382392402412422432442452462472482492502512522532542552562572582592602612622632642652662672682692702712722732742752762772782792802812822832842852862872882892902912922932942952962972982993003013023033043053063073083093103113123133143153163173183193203213223233243253263273283293303313323333343353363373383393403413423433443453463473483493503513523533543553563573583593603613623633643653663673683693703713723733743753763773783793803813823833843853863873883893903913923933943953963973983994004014024034044054064074084094104114124134144154164174184194204214224234244254264274284294304314324334344354364374384394404414424434444454464474484494504514524534544554564574584594604614624634644654664674684694704714724734744754764774784794804814824834844854864874884894904914924934944954964974984995005015025035045055065075085095105115125135145155165175185195205215225235245255265275285295305315325335345355365375385395405415425435445455465475485495505515525535545555565575585595605615625635645655665675685695705715725735745755765775785795805815825835845855865875885895905915925935945955965975985996006016026036046056066076086096106116126136146156166176186196206216226236246256266276286296306316326336346356366376386396406416426436446456466476486496506516526536546556566576586596606616626636646656666676686696706716726736746756766776786796806816826836846856866876886896906916926936946956966976986997007017027037047057067077087097107117127137147157167177187197207217227237247257267277287297307317327337347357367377387397407417427437447457467477487497507517527537547557567577587597607617627637647657667677687697707717727737747757767777787797807817827837847857867877887897907917927937947957967977987998008018028038048058068078088098108118128138148158168178188198208218228238248258268278288298308318328338348358368378388398408418428438448458468478488498508518528538548558568578588598608618628638648658668678688698708718728738748758768778788798808818828838848858868878888898908918928938948958968978988999009019029039049059069079089099109119129139149159169179189199209219229239249259269279289299309319329339349359369379389399409419429439449459469479489499509519529539549559569579589599609619629639649659669679689699709719729739749759769779789799809819829839849859869879889899909919929939949959969979989991000100110021003100410051006100710081009101010111012101310141015101610171018101910201021102210231024102510261027102810291030103110321033103410351036103710381039104010411042104310441045104610471048104910501051105210531054105510561057105810591060106110621063106410651066106710681069107010711072107310741075107610771078107910801081108210831084108510861087108810891090109110921093109410951096109710981099110011011102110311041105110611071108110911101111111211131114111511161117111811191120112111221123112411251126112711281129113011311132113311341135113611371138113911401141114211431144114511461147114811491150115111521153115411551156115711581159116011611162116311641165116611671168116911701171117211731174117511761177117811791180118111821183118411851186118711881189119011911192119311941195119611971198119912001201120212031204120512061207120812091210121112121213121412151216121712181219122012211222122312241225122612271228122912301231123212331234123512361237123812391240124112421243124412451246124712481249125012511252125312541255125612571258125912601261126212631264126512661267126812691270127112721273127412751276127712781279128012811282128312841285128612871288128912901291129212931294129512961297129812991300130113021303130413051306130713081309131013111312131313141315131613171318131913201321132213231324132513261327132813291330133113321333133413351336133713381339134013411342134313441345134613471348134913501351135213531354135513561357135813591360136113621363136413651366136713681369137013711372137313741375137613771378137913801381138213831384138513861387138813891390139113921393139413951396139713981399140014011402140314041405140614071408140914101411141214131414141514161417141814191420142114221423142414251426142714281429143014311432143314341435143614371438143914401441144214431444144514461447144814491450145114521453145414551456145714581459146014611462146314641465146614671468146914701471147214731474147514761477147814791480148114821483148414851486148714881489149014911492149314941495149614971498149915001501150215031504150515061507150815091510151115121513151415151516151715181519152015211522152315241525152615271528152915301531153215331534153515361537153815391540154115421543154415451546154715481549155015511552155315541555155615571558155915601561156215631564156515661567156815691570157115721573157415751576157715781579158015811582158315841585158615871588158915901591159215931594159515961597159815991600160116021603160416051606160716081609161016111612161316141615161616171618161916201621162216231624162516261627162816291630163116321633163416351636163716381639164016411642164316441645164616471648164916501651165216531654165516561657165816591660166116621663166416651666166716681669167016711672167316741675167616771678167916801681168216831684168516861687168816891690169116921693169416951696169716981699170017011702170317041705170617071708170917101711171217131714171517161717171817191720172117221723172417251726172717281729173017311732173317341735173617371738173917401741174217431744174517461747174817491750175117521753175417551756175717581759176017611762176317641765176617671768176917701771177217731774177517761777177817791780178117821783178417851786178717881789179017911792179317941795179617971798179918001801180218031804180518061807180818091810181118121813181418151816181718181819182018211822182318241825182618271828182918301831183218331834183518361837183818391840184118421843184418451846184718481849185018511852185318541855185618571858185918601861186218631864186518661867186818691870187118721873187418751876187718781879188018811882188318841885188618871888188918901891189218931894189518961897189818991900190119021903190419051906190719081909191019111912
  1. package controllers
  2. import (
  3. "Cold_Api/Nats/NatsServer"
  4. "Cold_Api/conf"
  5. "Cold_Api/controllers/lib"
  6. "Cold_Api/models/Account"
  7. "Cold_Api/models/Company"
  8. "Cold_Api/models/Device"
  9. "Cold_Api/models/System"
  10. "Cold_Api/models/Warning"
  11. "fmt"
  12. beego "github.com/beego/beego/v2/server/web"
  13. "github.com/xuri/excelize/v2"
  14. "math"
  15. "os"
  16. "strconv"
  17. "time"
  18. )
  19. // Handle
  20. type DeviceController struct {
  21. beego.Controller
  22. Admin_r *Account.Admin // 登陆的用户
  23. T_pid int // 公司id
  24. }
  25. func (c *DeviceController) Prepare() {
  26. GetCookie := c.Ctx.GetCookie("User_tokey")
  27. GetString := c.GetString("User_tokey")
  28. User_tokey := GetCookie
  29. if len(User_tokey) == 0 {
  30. User_tokey = GetString
  31. }
  32. c.Admin_r = lib.Admin_r
  33. T_pid := c.Admin_r.T_pid
  34. if T_pid == 0 {
  35. T_pid, _ = Account.Redis_Tokey_T_pid_Get(User_tokey)
  36. }
  37. c.T_pid = T_pid
  38. }
  39. // 设备 ------------------------------------------
  40. func (c *DeviceController) Device_List() {
  41. type R_JSONS struct {
  42. //必须的大写开头
  43. Device_lite []Device.Device_R
  44. Num int64
  45. Page int
  46. Page_size int
  47. }
  48. var r_jsons R_JSONS
  49. page, _ := c.GetInt("page")
  50. if page < 1 {
  51. page = 1
  52. }
  53. page_z, _ := c.GetInt("page_z")
  54. if page_z < 1 {
  55. page_z = conf.Page_size
  56. }
  57. Name := c.GetString("T_name")
  58. T_online := c.GetString("T_online")
  59. T_monitor := c.GetString("T_monitor")
  60. r_jsons.Device_lite, r_jsons.Num = Device.Read_Device_List(c.Admin_r, c.T_pid, Name, T_monitor, T_online, page, page_z)
  61. r_jsons.Page = page
  62. r_jsons.Page_size = int(math.Ceil(float64(r_jsons.Num) / float64(page_z)))
  63. c.Data["json"] = lib.JSONS{Code: 200, Msg: "ok!", Data: r_jsons}
  64. c.ServeJSON()
  65. return
  66. }
  67. func (c *DeviceController) Device_Get() {
  68. var r_jsons lib.R_JSONS
  69. T_sn := c.GetString("T_sn")
  70. Device_r, err := Device.Read_Device_ByT_sn(T_sn)
  71. if err != nil {
  72. c.Data["json"] = lib.JSONS{Code: 303, Msg: "查询失败!"}
  73. c.ServeJSON()
  74. return
  75. }
  76. if Device_r.T_pid != c.T_pid {
  77. c.Data["json"] = lib.JSONS{Code: 303, Msg: "无权查看!"}
  78. c.ServeJSON()
  79. return
  80. }
  81. r_jsons.Data = Device.DeviceToDevice_R(Device_r)
  82. c.Data["json"] = lib.JSONS{Code: 200, Msg: "ok!", Data: r_jsons}
  83. c.ServeJSON()
  84. return
  85. }
  86. func (c *DeviceController) Device_Add() {
  87. var err error
  88. T_sn := c.GetString("T_sn")
  89. var_ := Device.Device{
  90. T_pid: c.T_pid,
  91. T_sn: T_sn,
  92. T_monitor: 1, // 监控状态 已监控
  93. T_State: 1, // 状态 正常
  94. }
  95. if len(T_sn) < 8 {
  96. c.Data["json"] = lib.JSONS{Code: 303, Msg: "SN 太短 必须8个字符以上"}
  97. c.ServeJSON()
  98. return
  99. }
  100. _, err = Device.Read_Device_ByT_sn(T_sn)
  101. if err == nil {
  102. c.Data["json"] = lib.JSONS{Code: 303, Msg: "重复SN!"}
  103. c.ServeJSON()
  104. return
  105. }
  106. var_.T_devName = "等待设备上线.."
  107. // 创建数据库
  108. if !Device.CREATE_DeviceData(T_sn) {
  109. c.Data["json"] = lib.JSONS{Code: 302, Msg: "添加失败!"}
  110. c.ServeJSON()
  111. return
  112. }
  113. err = Device.Add_Device(var_)
  114. if err != nil {
  115. c.Data["json"] = lib.JSONS{Code: 301, Msg: "添加失败!"}
  116. c.ServeJSON()
  117. return
  118. }
  119. System.Add_UserLogs_T(c.Admin_r.T_uuid, "设备管理", "设备添加", var_)
  120. NatsServer.Read_DeviceParameter(T_sn) // 获取主机信息
  121. c.Data["json"] = lib.JSONS{Code: 200, Msg: "ok!"}
  122. c.ServeJSON()
  123. return
  124. }
  125. func (c *DeviceController) Device_Edit() {
  126. T_SN := c.GetString("T_sn")
  127. Device_r, err := Device.Read_Device_ByT_sn(T_SN)
  128. if err != nil {
  129. c.Data["json"] = lib.JSONS{Code: 206, Msg: "T_sn Err!"}
  130. c.ServeJSON()
  131. return
  132. }
  133. clos := make([]string, 0)
  134. // 监控状态 0 未监控 1 监控
  135. T_monitor, T_monitor_err := c.GetInt("T_monitor")
  136. if T_monitor_err == nil {
  137. Device_r.T_monitor = T_monitor
  138. clos = append(clos, "T_monitor")
  139. }
  140. // 温度显示
  141. T_ist, T_ist_err := c.GetInt("T_ist")
  142. if T_ist_err == nil {
  143. Device_r.T_ist = T_ist
  144. clos = append(clos, "T_ist")
  145. }
  146. // 适度显示
  147. T_ish, T_ish_err := c.GetInt("T_ish")
  148. if T_ish_err == nil {
  149. Device_r.T_ish = T_ish
  150. clos = append(clos, "T_ish")
  151. }
  152. // 是否弃用
  153. T_State, T_State_err := c.GetInt("T_State")
  154. if T_State_err == nil {
  155. Device_r.T_State = T_State
  156. clos = append(clos, "T_State")
  157. }
  158. // 验证时间
  159. T_VerifyTime := c.GetString("T_VerifyTime")
  160. VerifyTime, VerifyTime_is := lib.TimeStrToTime(T_VerifyTime)
  161. if VerifyTime_is {
  162. Device_r.T_VerifyTime = VerifyTime
  163. clos = append(clos, "T_VerifyTime")
  164. }
  165. // 校准时间
  166. T_CalibrationTime := c.GetString("T_CalibrationTime")
  167. CalibrationTime, CalibrationTime_is := lib.TimeStrToTime(T_CalibrationTime)
  168. if CalibrationTime_is {
  169. Device_r.T_CalibrationTime = CalibrationTime
  170. clos = append(clos, "T_CalibrationTime")
  171. }
  172. // 巡检时间
  173. T_PatrolTime := c.GetString("T_PatrolTime")
  174. PatrolTime, PatrolTime_is := lib.TimeStrToTime(T_PatrolTime)
  175. if PatrolTime_is {
  176. Device_r.T_PatrolTime = PatrolTime
  177. clos = append(clos, "T_PatrolTime")
  178. }
  179. if is := Device.Update_Device(Device_r, clos...); !is {
  180. c.Data["json"] = lib.JSONS{Code: 200, Msg: "修改失败!"}
  181. c.ServeJSON()
  182. return
  183. }
  184. System.Add_UserLogs_T(c.Admin_r.T_uuid, "设备管理", "修改", Device_r)
  185. if is := Device.Update_Device_To_DeviceSensor(Device_r); is {
  186. System.Add_UserLogs_T(c.Admin_r.T_uuid, "设备管理", "传感器修改", Device_r)
  187. }
  188. c.Data["json"] = lib.JSONS{Code: 200, Msg: "ok!"}
  189. c.ServeJSON()
  190. return
  191. }
  192. // 重启/关机
  193. func (c *DeviceController) Device_RestartShutdown() {
  194. T_sn := c.GetString("T_sn")
  195. T_task := c.GetString("T_task")
  196. NatsServer.Set_RestartShutdown(Device.Device_task{
  197. T_sn: T_sn,
  198. T_task: T_task,
  199. })
  200. System.Add_UserLogs(c.Admin_r.T_uuid, "设备管理", "重启/关机", T_sn+"-"+T_task)
  201. c.Data["json"] = lib.JSONS{Code: 200, Msg: "ok!"}
  202. c.ServeJSON()
  203. return
  204. }
  205. // 版本升级
  206. func (c *DeviceController) Device_ProductUpgrade() {
  207. T_sn := c.GetString("T_sn")
  208. T_version := c.GetString("T_version")
  209. T_file := c.GetString("T_file")
  210. NatsServer.Up_ProductUpgrade(T_sn, T_version, T_file)
  211. System.Add_UserLogs(c.Admin_r.T_uuid, "设备管理", "版本升级", T_sn+"-"+T_version+"-"+T_file)
  212. c.Data["json"] = lib.JSONS{Code: 200, Msg: "ok!"}
  213. c.ServeJSON()
  214. return
  215. }
  216. // 2023-02-02 弃用
  217. //func (c *DeviceController) Device_Del() {
  218. // if admin_r.Id != 1 {
  219. // c.Data["json"] = lib.JSONS{Code: 202, Msg: "没有权限!"}
  220. // c.ServeJSON()
  221. // return
  222. // }
  223. //
  224. // T_sn := c.GetString("T_sn")
  225. //
  226. // Device_r, err := Device.Read_Device_ByT_sn(T_sn)
  227. // if err != nil {
  228. // c.Data["json"] = lib.JSONS{Code: 202, Msg: "T_sn Err!"}
  229. // c.ServeJSON()
  230. // return
  231. // }
  232. //
  233. // Device.Delete_Device(Device_r)
  234. // DeviceSensor_list, _ := Device.Read_DeviceSensor_ByTsn(Device_r.T_sn)
  235. // for _, v := range DeviceSensor_list {
  236. // Device.Delete_DeviceSensor_ById(Device_r.T_sn, v.T_id)
  237. // }
  238. // Device.DELETE_DeviceSensor(Device_r.T_sn)
  239. // Device.DELETE_DeviceDatar(Device_r.T_sn)
  240. // Device.DELETE_DeviceParameter(Device_r.T_sn)
  241. // Device.DELETE_DeviceSensorParameter(Device_r.T_sn)
  242. //
  243. // System.Add_UserLogs(admin_r.T_uuid, "设备管理", "设备删除", T_sn)
  244. // c.Data["json"] = lib.JSONS{Code: 200, Msg: "ok!"}
  245. // c.ServeJSON()
  246. // return
  247. //
  248. //}
  249. // 设备日志
  250. func (c *DeviceController) DeviceLogs() {
  251. type R_JSONS struct {
  252. //必须的大写开头
  253. DeviceLogs []Warning.DeviceLogs
  254. Num int64
  255. Page int
  256. Page_size int
  257. }
  258. var r_jsons R_JSONS
  259. page, _ := c.GetInt("page")
  260. if page < 1 {
  261. page = 1
  262. }
  263. page_z, _ := c.GetInt("page_z")
  264. if page_z < 1 {
  265. page_z = conf.Page_size
  266. }
  267. T_sn := c.GetString("T_sn")
  268. c.Data["T_sn"] = T_sn
  269. r_jsons.DeviceLogs, r_jsons.Num = Warning.Read_DeviceLogs_List(T_sn, page, page_z)
  270. r_jsons.Page = page
  271. r_jsons.Page_size = int(math.Ceil(float64(r_jsons.Num) / float64(page_z)))
  272. c.Data["json"] = lib.JSONS{Code: 200, Msg: "ok!", Data: r_jsons}
  273. c.ServeJSON()
  274. }
  275. // 设备参数 ------------------------------------------
  276. // 设备参数列表
  277. func (c *DeviceController) Device_Parameter_List() {
  278. Sn := c.GetString("T_sn")
  279. page, _ := c.GetInt("page")
  280. if page < 1 {
  281. page = 1
  282. }
  283. page_z, _ := c.GetInt("page_z")
  284. if page_z < 1 {
  285. page_z = conf.Page_size
  286. }
  287. DeviceParameter_lite := Device.Read_DeviceParameter_SN_List(Sn, page, page_z)
  288. c.Data["json"] = lib.JSONS{Code: 200, Msg: "ok!", Data: DeviceParameter_lite}
  289. c.ServeJSON()
  290. return
  291. }
  292. // 获取设备参数
  293. func (c *DeviceController) Device_Parameter_Get() {
  294. Sn := c.GetString("T_sn")
  295. DeviceParameter_lite := Device.Read_DeviceParameter_SN(Sn)
  296. if len(DeviceParameter_lite) == 0 {
  297. NatsServer.Read_DeviceParameter(Sn)
  298. c.Data["json"] = lib.JSONS{Code: 203, Msg: "未同步参数,请检查设备是否正常!"}
  299. c.ServeJSON()
  300. return
  301. }
  302. c.Data["json"] = lib.JSONS{Code: 200, Msg: "ok!", Data: DeviceParameter_lite}
  303. c.ServeJSON()
  304. return
  305. }
  306. // 修改设备参数
  307. func (c *DeviceController) Device_Parameter_Pu() {
  308. //T_SN := c.GetString("T_sn")
  309. //T_name := c.GetString("T_name")
  310. //
  311. //T_saveT, _ := c.GetInt("T_saveT")
  312. //T_overA, _ := c.GetInt("T_overA")
  313. //T_outA, _ := c.GetInt("T_outA")
  314. //T_lostA, _ := c.GetInt("T_lostA")
  315. //T_bat, _ := c.GetInt("T_bat")
  316. //
  317. //T_warn, _ := c.GetInt("T_warn")
  318. //T_warnD, _ := c.GetInt("T_warnD")
  319. //
  320. //T_btname := c.GetString("T_btname")
  321. //T_btsid, _ := c.GetInt("T_btsid")
  322. //T_btchar, _ := c.GetInt("T_btchar")
  323. //
  324. //T_Msid, _ := c.GetInt("T_Msid")
  325. //T_State, _ := c.GetInt("T_State")
  326. //
  327. //Device_r, err := Device.Read_Device_ByT_sn(T_SN)
  328. //if err != nil {
  329. // c.Data["json"] = lib.JSONS{Code: 206, Msg: "T_sn Err!"}
  330. // c.ServeJSON()
  331. // return
  332. //}
  333. //
  334. //Deviceparameter := Device.DeviceParameter{
  335. // T_sn: T_SN,
  336. // T_name: T_name,
  337. // T_saveT: T_saveT,
  338. // T_overA: T_overA,
  339. // T_outA: T_outA,
  340. // T_lostA: T_lostA,
  341. // T_bat: T_bat,
  342. // T_warn: T_warn,
  343. // T_warnD: T_warnD,
  344. // T_btname: T_btname,
  345. // T_btsid: T_btsid,
  346. // T_btchar: T_btchar,
  347. // T_Msid: int64(T_Msid),
  348. // T_uuid: c.Admin_r.T_uuid,
  349. // T_SendState: 0,
  350. // T_State: T_State,
  351. //}
  352. //Deviceparameter, is := Device.Add_DeviceParameter(Deviceparameter)
  353. //if !is {
  354. // c.Data["json"] = lib.JSONS{Code: 203, Msg: "Add_DeviceParameter ERR"}
  355. // c.ServeJSON()
  356. // return
  357. //}
  358. //System.Add_UserLogs_T(c.Admin_r.T_uuid, "设备管理", "设备参数操作", Deviceparameter)
  359. //NatsServer.Pu_DeviceParameter(Deviceparameter)
  360. //
  361. //// 更新名称
  362. //Device_r.T_devName = Deviceparameter.T_name
  363. //Device.Update_Device(Device_r, "T_devName")
  364. //System.Add_UserLogs_T(c.Admin_r.T_uuid, "设备管理", "修改", Device_r)
  365. T_SN := c.GetString("T_sn")
  366. Device_r, err := Device.Read_Device_ByT_sn(T_SN)
  367. if err != nil {
  368. c.Data["json"] = lib.JSONS{Code: 206, Msg: "T_sn Err!"}
  369. c.ServeJSON()
  370. return
  371. }
  372. DeviceParameter_lite := Device.Read_DeviceParameter_SN(T_SN)
  373. if len(DeviceParameter_lite) == 0 {
  374. c.Data["json"] = lib.JSONS{Code: 203, Msg: "未同步参数,请检查设备是否正常!"}
  375. c.ServeJSON()
  376. return
  377. }
  378. DeviceParameter := DeviceParameter_lite[0]
  379. if v, err := c.GetInt("T_saveT"); err == nil {
  380. DeviceParameter.T_saveT = v
  381. }
  382. if v, err := c.GetInt("T_overA"); err == nil {
  383. DeviceParameter.T_overA = v
  384. }
  385. if v, err := c.GetInt("T_outA"); err == nil {
  386. DeviceParameter.T_outA = v
  387. }
  388. if v, err := c.GetInt("T_lostA"); err == nil {
  389. DeviceParameter.T_lostA = v
  390. }
  391. if v, err := c.GetInt("T_bat"); err == nil {
  392. DeviceParameter.T_bat = v
  393. }
  394. if v, err := c.GetInt("T_warn"); err == nil {
  395. DeviceParameter.T_warn = v
  396. }
  397. if v, err := c.GetInt("T_warnD"); err == nil {
  398. DeviceParameter.T_warnD = v
  399. }
  400. if v, err := c.GetInt("T_speed"); err == nil {
  401. DeviceParameter.T_speed = v
  402. }
  403. if v := c.GetString("T_btname"); len(v) > 0 {
  404. DeviceParameter.T_btname = v
  405. }
  406. if v, err := c.GetInt("T_btsid"); err == nil {
  407. DeviceParameter.T_btsid = v
  408. }
  409. if v, err := c.GetInt("T_btchar"); err == nil {
  410. DeviceParameter.T_btchar = v
  411. }
  412. if v, err := c.GetInt("T_Msid"); err == nil {
  413. DeviceParameter.T_Msid = int64(v)
  414. }
  415. if v := c.GetString("T_name"); len(v) > 0 {
  416. DeviceParameter.T_name = v
  417. }
  418. DeviceParameter.Id = 0
  419. DeviceParameter.T_State = 2
  420. DeviceParameter.T_uuid = c.Admin_r.T_uuid
  421. DeviceParameter.T_SendState = 0
  422. Deviceparameter, is := Device.Add_DeviceParameter(DeviceParameter)
  423. if !is {
  424. c.Data["json"] = lib.JSONS{Code: 203, Msg: "Add_DeviceParameter ERR"}
  425. c.ServeJSON()
  426. return
  427. }
  428. System.Add_UserLogs_T(c.Admin_r.T_uuid, "设备管理", "设备参数操作", Deviceparameter)
  429. NatsServer.Pu_DeviceParameter(Deviceparameter)
  430. if v := c.GetString("T_name"); len(v) > 0 {
  431. // 更新名称
  432. Device_r.T_devName = Deviceparameter.T_name
  433. Device.Update_Device(Device_r, "T_devName")
  434. System.Add_UserLogs_T(c.Admin_r.T_uuid, "设备管理", "修改设备名称", Device_r)
  435. }
  436. c.Data["json"] = lib.JSONS{Code: 200, Msg: "ok!"}
  437. c.ServeJSON()
  438. return
  439. }
  440. // 删除设备 传感器
  441. // 2023-02-02 弃用
  442. func (c *DeviceController) Device_Parameter_Del_Device() {
  443. Sn := c.GetString("Sn")
  444. Id, _ := c.GetInt("Id")
  445. System.Add_UserLogs_T(c.Admin_r.T_uuid, "设备管理", "传感器 删除操作", "SN:"+Sn+" ["+strconv.Itoa(Id)+"]")
  446. //c.Data["Device_lite"] = Device.Read_DeviceParameter_SN(Sn)
  447. Device.Delete_DeviceSensor_ById(Sn, Id)
  448. NatsServer.Del_DeviceSensor(Device.DeviceSensor_Del{
  449. T_sn: Sn, T_id: Id,
  450. })
  451. c.Data["json"] = lib.JSONS{Code: 200, Msg: "OK"}
  452. c.ServeJSON()
  453. return
  454. }
  455. // 设备-传感器 ------------------------------------------
  456. // 传感器列表
  457. func (c *DeviceController) DeviceSensor_List() {
  458. type R_JSONS struct {
  459. //必须的大写开头
  460. Data []Device.DeviceSensor_R
  461. Num int64
  462. Page int
  463. Page_size int
  464. }
  465. var r_jsons R_JSONS
  466. page, _ := c.GetInt("page")
  467. if page < 1 {
  468. page = 1
  469. }
  470. page_z, _ := c.GetInt("page_z")
  471. if page_z < 1 {
  472. page_z = conf.Page_size
  473. }
  474. T_sn := c.GetString("T_sn")
  475. Name := c.GetString("T_name") // 包含 T_name、T_sn
  476. T_calss_id, _ := c.GetInt("T_calssid")
  477. T_type, T_type_err := c.GetInt("T_type")
  478. if T_type_err != nil {
  479. T_type = -1
  480. }
  481. T_State, T_State_err := c.GetInt("T_state")
  482. if T_State_err != nil {
  483. T_State = -1
  484. }
  485. T_datashow, T_datashow_err := c.GetInt("T_datashow") //0 屏蔽数据展示 1 正常数据展示
  486. if T_datashow_err != nil {
  487. T_datashow = -1
  488. }
  489. if T_calss_id > 0 {
  490. R_DeviceClass, err := Company.Read_CompanyClass_ById(T_calss_id)
  491. if err != nil {
  492. c.Data["json"] = lib.JSONS{Code: 205, Msg: "T_class_id Err!"}
  493. c.ServeJSON()
  494. return
  495. }
  496. if R_DeviceClass.T_pid != c.T_pid {
  497. c.Data["json"] = lib.JSONS{Code: 205, Msg: "R_DeviceClass.T_pid != T_pid Err!"}
  498. c.ServeJSON()
  499. return
  500. }
  501. }
  502. Device.Read_DeviceSensorParameter_All_Map(T_sn, 0)
  503. r_jsons.Data, r_jsons.Num = Device.Read_DeviceSensorList(c.Admin_r, c.T_pid, T_sn, Name, T_calss_id, T_datashow, T_type, T_State, page, page_z)
  504. r_jsons.Page = page
  505. r_jsons.Page_size = int(math.Ceil(float64(r_jsons.Num) / float64(page_z)))
  506. c.Data["json"] = lib.JSONS{Code: 200, Msg: "ok!", Data: r_jsons}
  507. c.ServeJSON()
  508. return
  509. }
  510. // 修改传感器
  511. func (c *DeviceController) DeviceSensor_Edit() {
  512. Sn := c.GetString("T_sn")
  513. Id, _ := c.GetInt("T_id")
  514. DeviceSensor, is := Device.Read_DeviceSensor_ByT_sn(Sn, Id)
  515. if !is {
  516. c.Data["json"] = lib.JSONS{Code: 203, Msg: "信息错误!"}
  517. c.ServeJSON()
  518. return
  519. }
  520. // 数据视图3D视图订阅
  521. if v, err := c.GetInt("T_type"); err == nil {
  522. DeviceSensor.T_type = v
  523. Device.Update_DeviceSensor(DeviceSensor, "T_type")
  524. System.Add_UserLogs_T(c.Admin_r.T_uuid, "设备管理", "传感器 类型", "SN:"+Sn+" ["+strconv.Itoa(Id)+"]"+strconv.Itoa(v))
  525. }
  526. // 实时数据显示排序
  527. if v, err := c.GetInt("T_sort"); err == nil {
  528. DeviceSensor.T_sort = v
  529. Device.Update_DeviceSensor(DeviceSensor, "T_sort")
  530. System.Add_UserLogs_T(c.Admin_r.T_uuid, "设备管理", "传感器 排序操作", "SN:"+Sn+" ["+strconv.Itoa(Id)+"]"+strconv.Itoa(v))
  531. }
  532. // 屏蔽数据展示
  533. if v, err := c.GetInt("T_datashow"); err == nil {
  534. DeviceSensor.T_datashow = v
  535. Device.Update_DeviceSensor(DeviceSensor, "T_datashow")
  536. System.Add_UserLogs_T(c.Admin_r.T_uuid, "设备管理", "传感器 数据展示", "SN:"+Sn+" ["+strconv.Itoa(Id)+"]"+strconv.Itoa(v))
  537. }
  538. // 数据视图3D视图订阅
  539. if v := c.GetString("T_3dview"); len(v) > 0 {
  540. DeviceSensor.T_3dview = v
  541. Device.Update_DeviceSensor(DeviceSensor, "T_3dview")
  542. System.Add_UserLogs_T(c.Admin_r.T_uuid, "设备管理", "传感器 3D视图订阅", "SN:"+Sn+" ["+strconv.Itoa(Id)+"]"+v)
  543. }
  544. c.Data["json"] = lib.JSONS{Code: 200, Msg: "OK"}
  545. c.ServeJSON()
  546. return
  547. }
  548. // 删除传感器
  549. func (c *DeviceController) DeviceSensor_Del() {
  550. Sn := c.GetString("T_sn")
  551. Id, _ := c.GetInt("T_id")
  552. _, is := Device.Read_DeviceSensor_ByT_sn(Sn, Id)
  553. if !is {
  554. c.Data["json"] = lib.JSONS{Code: 205, Msg: "信息错误!"}
  555. c.ServeJSON()
  556. return
  557. }
  558. // 0默认:从数据库删除 1:从设备删除
  559. T_mode, _ := c.GetInt("T_mode")
  560. if T_mode == 1 {
  561. Device.Delete_DeviceSensor_ById(Sn, Id)
  562. NatsServer.Del_DeviceSensor(Device.DeviceSensor_Del{
  563. T_sn: Sn, T_id: Id,
  564. })
  565. System.Add_UserLogs_T(c.Admin_r.T_uuid, "设备管理", "传感器 删除操作", "SN:"+Sn+" ["+strconv.Itoa(Id)+"]")
  566. } else {
  567. Device.Delete_DeviceSensor_ById(Sn, Id)
  568. System.Add_UserLogs_T(c.Admin_r.T_uuid, "设备管理", "传感器 删除操作", "SN:"+Sn+" ["+strconv.Itoa(Id)+"]")
  569. }
  570. c.Data["json"] = lib.JSONS{Code: 200, Msg: "OK"}
  571. c.ServeJSON()
  572. return
  573. }
  574. // 传感器参数
  575. func (c *DeviceController) DeviceSensor_Parameter_Get() {
  576. Sn := c.GetString("T_sn")
  577. Id, _ := c.GetInt("T_id")
  578. //c.Data["DeviceSensor"], _ = Device.Read_DeviceSensor_ByTsn_Tid(Sn, Id)
  579. DeviceSensorParameter_lite := Device.Read_DeviceSensorParameter_T_sn_T_id(Sn, Id)
  580. if len(DeviceSensorParameter_lite) == 0 {
  581. NatsServer.Read_DeviceSensorParameter(Sn)
  582. c.Data["json"] = lib.JSONS{Code: 203, Msg: "未同步参数,请检查设备是否正常!"}
  583. c.ServeJSON()
  584. return
  585. }
  586. c.Data["json"] = lib.JSONS{Code: 200, Msg: "ok!", Data: DeviceSensorParameter_lite}
  587. c.ServeJSON()
  588. return
  589. }
  590. // 传感器参数列表
  591. func (c *DeviceController) DeviceSensor_Parameter_List() {
  592. Sn := c.GetString("T_sn")
  593. Id, _ := c.GetInt("T_id")
  594. page, _ := c.GetInt("page")
  595. if page < 1 {
  596. page = 1
  597. }
  598. page_z, _ := c.GetInt("page_z")
  599. if page_z < 1 {
  600. page_z = conf.Page_size
  601. }
  602. DeviceSensorParameter_lite := Device.Read_DeviceSensorParameter_List(Sn, Id, 2, page, page_z)
  603. c.Data["json"] = lib.JSONS{Code: 200, Msg: "ok!", Data: DeviceSensorParameter_lite}
  604. c.ServeJSON()
  605. return
  606. }
  607. // 修改传感器参数
  608. func (c *DeviceController) DeviceSensor_Parameter_Pu() {
  609. T_SN := c.GetString("T_sn")
  610. T_id, _ := c.GetInt("T_id")
  611. _, err := Device.Read_Device_ByT_sn(T_SN)
  612. if err != nil {
  613. c.Data["json"] = lib.JSONS{Code: 206, Msg: "T_sn Err!"}
  614. c.ServeJSON()
  615. return
  616. }
  617. DeviceSensor, is := Device.Read_DeviceSensor_ByT_sn(T_SN, T_id)
  618. if !is {
  619. c.Data["json"] = lib.JSONS{Code: 208, Msg: "T_sn T_id Err!"}
  620. c.ServeJSON()
  621. return
  622. }
  623. DeviceSensorParameter, is := Device.Read_DeviceSensorParameter(T_SN, T_id)
  624. if !is {
  625. c.Data["json"] = lib.JSONS{Code: 208, Msg: "T_sn T_id Err!"}
  626. c.ServeJSON()
  627. return
  628. }
  629. T_name := DeviceSensor.T_name
  630. if v := c.GetString("T_name"); len(v) > 0 {
  631. T_name = v
  632. }
  633. T_Tlower := DeviceSensorParameter.T_Tlower
  634. if v, T_Tlower_err := c.GetFloat("T_Tlower"); T_Tlower_err == nil {
  635. T_Tlower = float32(v)
  636. }
  637. T_Tupper := DeviceSensorParameter.T_Tupper
  638. if v, T_Tupper_err := c.GetFloat("T_Tupper"); T_Tupper_err == nil {
  639. T_Tupper = float32(v)
  640. }
  641. T_RHlower := DeviceSensorParameter.T_RHlower
  642. if v, T_RHlower_err := c.GetFloat("T_RHlower"); T_RHlower_err == nil {
  643. T_RHlower = float32(v)
  644. }
  645. T_RHupper := DeviceSensorParameter.T_RHupper
  646. if v, T_RHupper_err := c.GetFloat("T_RHupper"); T_RHupper_err == nil {
  647. T_RHupper = float32(v)
  648. }
  649. T_enprel := DeviceSensorParameter.T_enprel
  650. if v, T_enprel_err := c.GetInt("T_enprel"); T_enprel_err == nil {
  651. T_enprel = v
  652. }
  653. T_tprel := DeviceSensorParameter.T_tprel
  654. if v, T_tprel_err := c.GetInt("T_tprel_err"); T_tprel_err == nil {
  655. T_tprel = float32(v)
  656. }
  657. T_tpreu := DeviceSensorParameter.T_tpreu
  658. if v, T_tpreu_err := c.GetInt("T_tpreu"); T_tpreu_err == nil {
  659. T_tpreu = float32(v)
  660. }
  661. T_hprel := DeviceSensorParameter.T_hprel
  662. if v, T_hprel_err := c.GetInt("T_hprel"); T_hprel_err == nil {
  663. T_hprel = float32(v)
  664. }
  665. T_hpreu := DeviceSensorParameter.T_hpreu
  666. if v, T_hpreu_err := c.GetInt("T_hpreu"); T_hpreu_err == nil {
  667. T_hpreu = float32(v)
  668. }
  669. T_speed := DeviceSensorParameter.T_speed
  670. if v, T_speed_err := c.GetInt("T_speed"); T_speed_err == nil {
  671. T_speed = v
  672. }
  673. T_en := DeviceSensorParameter.T_en
  674. if v, T_en_err := c.GetInt("T_en"); T_en_err == nil {
  675. T_en = v
  676. }
  677. T_free := DeviceSensorParameter.T_free
  678. if v, T_free_err := c.GetInt("T_free"); T_free_err == nil {
  679. T_free = v
  680. }
  681. Devicesensorparameter := Device.DeviceSensorParameter{
  682. T_sn: T_SN,
  683. T_id: T_id,
  684. T_name: T_name,
  685. T_Tlower: T_Tlower,
  686. T_Tupper: T_Tupper,
  687. T_RHlower: T_RHlower,
  688. T_RHupper: T_RHupper,
  689. T_speed: T_speed,
  690. T_en: T_en,
  691. T_free: T_free,
  692. T_enprel: T_enprel,
  693. T_tprel: T_tprel,
  694. T_tpreu: T_tpreu,
  695. T_hprel: T_hprel,
  696. T_hpreu: T_hpreu,
  697. T_uuid: c.Admin_r.T_uuid,
  698. T_SendState: 0,
  699. T_State: 2, // 用户提交
  700. }
  701. Devicesensorparameter, is = Device.Add_DeviceSensorParameter(Devicesensorparameter)
  702. if !is {
  703. c.Data["json"] = lib.JSONS{Code: 209, Msg: "Add_DeviceSensorParameter Err!"}
  704. c.ServeJSON()
  705. return
  706. }
  707. System.Add_UserLogs_T(c.Admin_r.T_uuid, "设备管理", "传感器参数操作", Devicesensorparameter)
  708. // 更新名称
  709. if len(T_name) > 0 {
  710. DeviceSensor.T_name = T_name
  711. if is = Device.Update_DeviceSensor(DeviceSensor, "T_name"); !is {
  712. c.Data["json"] = lib.JSONS{Code: 209, Msg: "Update_DeviceSensor Err!"}
  713. c.ServeJSON()
  714. return
  715. }
  716. System.Add_UserLogs_T(c.Admin_r.T_uuid, "设备管理", "修改传感器名称", DeviceSensor)
  717. }
  718. NatsServer.Pu_DeviceParameter_Sensor(Devicesensorparameter)
  719. c.Data["json"] = lib.JSONS{Code: 200, Msg: "ok!"}
  720. c.ServeJSON()
  721. return
  722. }
  723. // 传感器 实时数据显示排序(未使用)
  724. func (c *DeviceController) UpDeviceSensor_Tsort() {
  725. Sn := c.GetString("Sn")
  726. Id, _ := c.GetInt("Id")
  727. T_sort, _ := c.GetInt("T_sort")
  728. DeviceSensor, is := Device.Read_DeviceSensor_ByT_sn(Sn, Id)
  729. if !is {
  730. c.Data["json"] = lib.JSONS{Code: 201, Msg: "信息错误!"}
  731. c.ServeJSON()
  732. return
  733. }
  734. DeviceSensor.T_sort = T_sort
  735. //c.Data["Device_lite"] = Device.Read_DeviceParameter_SN(Sn)
  736. Device.Update_DeviceSensor(DeviceSensor, "T_sort")
  737. System.Add_UserLogs_T(c.Admin_r.T_uuid, "设备管理", "传感器 排序操作", "SN:"+Sn+" ["+strconv.Itoa(Id)+"]"+strconv.Itoa(T_sort))
  738. c.Data["json"] = lib.JSONS{Code: 200, Msg: "OK"}
  739. c.ServeJSON()
  740. return
  741. }
  742. // 传感器 3D视图 (未使用)
  743. func (c *DeviceController) UpDeviceSensor_T3dview() {
  744. Sn := c.GetString("Sn")
  745. Id, _ := c.GetInt("Id")
  746. T_3dview := c.GetString("T_3dview")
  747. DeviceSensor, is := Device.Read_DeviceSensor_ByT_sn(Sn, Id)
  748. if !is {
  749. c.Data["json"] = lib.JSONS{Code: 201, Msg: "信息错误!"}
  750. c.ServeJSON()
  751. return
  752. }
  753. DeviceSensor.T_3dview = T_3dview
  754. //c.Data["Device_lite"] = Device.Read_DeviceParameter_SN(Sn)
  755. Device.Update_DeviceSensor(DeviceSensor, "T_3dview")
  756. System.Add_UserLogs_T(c.Admin_r.T_uuid, "设备管理", "3D 视图ID操作", "SN:"+Sn+" ["+strconv.Itoa(Id)+"]"+T_3dview)
  757. c.Data["json"] = lib.JSONS{Code: 200, Msg: "OK"}
  758. c.ServeJSON()
  759. return
  760. }
  761. // 传感器 屏蔽数据展示 0 屏蔽数据展示 1 正常数据展示 (未使用)
  762. func (c *DeviceController) UpDeviceSensor_T_datashow() {
  763. Sn := c.GetString("Sn")
  764. Id, _ := c.GetInt("Id")
  765. T_datashow, _ := c.GetInt("T_datashow")
  766. DeviceSensor, is := Device.Read_DeviceSensor_ByT_sn(Sn, Id)
  767. if !is {
  768. c.Data["json"] = lib.JSONS{Code: 201, Msg: "信息错误!"}
  769. c.ServeJSON()
  770. return
  771. }
  772. DeviceSensor.T_datashow = T_datashow
  773. Device.Update_DeviceSensor(DeviceSensor, "T_datashow")
  774. System.Add_UserLogs_T(c.Admin_r.T_uuid, "设备管理", "传感器 数据展示(0 屏蔽数据展示 1 正常数据展示)", "SN:"+Sn+" ["+strconv.Itoa(Id)+"]"+strconv.Itoa(T_datashow))
  775. c.Data["json"] = lib.JSONS{Code: 200, Msg: "OK"}
  776. c.ServeJSON()
  777. return
  778. }
  779. // 传感器管理列表
  780. func (c *DeviceController) DeviceSensor_Manage_List() {
  781. type R_JSONS struct {
  782. //必须的大写开头
  783. Data []Device.DeviceSensor_P
  784. Num int64
  785. Page int
  786. Page_size int
  787. }
  788. var r_jsons R_JSONS
  789. page, _ := c.GetInt("page")
  790. if page < 1 {
  791. page = 1
  792. }
  793. page_z, _ := c.GetInt("page_z")
  794. if page_z < 1 {
  795. page_z = conf.Page_size
  796. }
  797. T_name := c.GetString("T_name") // 包含 T_name、T_sn
  798. T_calss_id, _ := c.GetInt("T_calssid")
  799. if T_calss_id > 0 {
  800. R_DeviceClass, err := Company.Read_CompanyClass_ById(T_calss_id)
  801. if err != nil {
  802. c.Data["json"] = lib.JSONS{Code: 205, Msg: "T_class_id Err!"}
  803. c.ServeJSON()
  804. return
  805. }
  806. if R_DeviceClass.T_pid != c.T_pid {
  807. c.Data["json"] = lib.JSONS{Code: 205, Msg: "CompanyClass.T_pid != T_pid Err!"}
  808. c.ServeJSON()
  809. return
  810. }
  811. }
  812. T_en, T_en_err := c.GetInt("T_en") //启用停用 0 停用 1 启用 空 所有
  813. if T_en_err != nil {
  814. T_en = -1
  815. }
  816. T_free, T_free_err := c.GetInt("T_free") // 空库 0 正常 1 空库 空 所有
  817. if T_free_err != nil {
  818. T_free = -1
  819. }
  820. T_datashow, T_datashow_err := c.GetInt("T_datashow") //数据展示 空 全部 0 屏蔽数据展示 1 正常数据展示
  821. if T_datashow_err != nil {
  822. T_datashow = -1
  823. }
  824. T_sort, T_sort_err := c.GetInt("T_sort") //排序 空 升序 1 降序
  825. if T_sort_err != nil {
  826. T_sort = -1
  827. }
  828. r_jsons.Data, r_jsons.Num = Device.Read_DeviceSensorManageList(c.Admin_r, c.T_pid, T_name, T_calss_id, T_en, T_free, T_datashow, T_sort, page, page_z)
  829. r_jsons.Page = page
  830. r_jsons.Page_size = int(math.Ceil(float64(r_jsons.Num) / float64(page_z)))
  831. c.Data["json"] = lib.JSONS{Code: 200, Msg: "ok!", Data: r_jsons}
  832. c.ServeJSON()
  833. return
  834. }
  835. // 设备任务 ------------------------------------------
  836. // 任务列表
  837. func (c *DeviceController) DeviceTask_List() {
  838. type R_JSONS struct {
  839. //必须的大写开头
  840. Data []Device.DeviceTask
  841. Num int64
  842. Page int
  843. Page_size int
  844. }
  845. var r_jsons R_JSONS
  846. page, _ := c.GetInt("page")
  847. if page < 1 {
  848. page = 1
  849. }
  850. page_z, _ := c.GetInt("page_z")
  851. if page_z < 1 {
  852. page_z = conf.Page_size
  853. }
  854. T_sn := c.GetString("T_sn")
  855. Time_start := c.GetString("Time_start")
  856. Time_end := c.GetString("Time_end")
  857. if len(T_sn) < 6 {
  858. c.Data["json"] = lib.JSONS{Code: 203, Msg: "T_sn!!!"}
  859. c.ServeJSON()
  860. return
  861. }
  862. r_jsons.Data, r_jsons.Num = Device.Read_DeviceTask_List(T_sn, Time_start, Time_end, page, page_z)
  863. r_jsons.Page = page
  864. r_jsons.Page_size = int(math.Ceil(float64(r_jsons.Num) / float64(page_z)))
  865. c.Data["json"] = lib.JSONS{Code: 200, Msg: "ok!", Data: r_jsons}
  866. c.ServeJSON()
  867. return
  868. }
  869. // 任务启停
  870. func (c *DeviceController) DeviceTask_Post() {
  871. T_sn := c.GetString("T_sn")
  872. T_task := c.GetString("T_task")
  873. NatsServer.Set_DeviceTask(Device.Device_task{
  874. T_sn: T_sn,
  875. T_task: T_task,
  876. })
  877. System.Add_UserLogs(c.Admin_r.T_uuid, "设备管理", "远程启停", T_sn+"-"+T_task)
  878. c.Data["json"] = lib.JSONS{Code: 200, Msg: "ok!"}
  879. c.ServeJSON()
  880. return
  881. }
  882. // 设备告警 ------------------------------------------
  883. // 告警列表
  884. func (c *DeviceController) DeviceWarning_List() {
  885. type R_JSONS struct {
  886. //必须的大写开头
  887. Data []Warning.Warning_R
  888. Num int64
  889. Page int
  890. Page_size int
  891. }
  892. var r_jsons R_JSONS
  893. page, _ := c.GetInt("page")
  894. if page < 1 {
  895. page = 1
  896. }
  897. page_z, _ := c.GetInt("page_z")
  898. if page_z < 1 {
  899. page_z = conf.Page_size
  900. }
  901. T_name := c.GetString("T_name")
  902. T_tp := c.GetString("T_tp")
  903. Time_start := c.GetString("Time_start")
  904. Time_end := c.GetString("Time_end")
  905. T_handle, _ := c.GetInt("T_handle")
  906. T_admin, _ := c.GetInt("T_admin")
  907. T_history, _ := c.GetInt("T_history")
  908. var T_year, T_month string
  909. if T_history == 1 {
  910. date, err := time.Parse("2006-01-02 15:04:05", Time_start)
  911. if err != nil {
  912. c.Data["json"] = lib.JSONS{Code: 200, Msg: "时间格式错误"}
  913. c.ServeJSON()
  914. return
  915. }
  916. T_year, T_month = date.Format("2006"), date.Format("01")
  917. }
  918. if T_admin == 1 {
  919. if T_history == 1 {
  920. // 获取备份
  921. r_jsons.Data, r_jsons.Num = Warning.Read_Admin_Warning_Backups(c.Admin_r.T_pids, T_year, T_month, T_tp, T_name, T_handle, Time_start, Time_end, page, page_z)
  922. } else {
  923. // 获取最新
  924. r_jsons.Data, r_jsons.Num = Warning.Read_Admin_Warning_List(c.Admin_r.T_pids, T_tp, T_name, T_handle, Time_start, Time_end, page, page_z)
  925. }
  926. c.Data["json"] = lib.JSONS{Code: 200, Msg: "ok!", Data: r_jsons}
  927. c.ServeJSON()
  928. return
  929. }
  930. if T_history == 1 {
  931. // 获取备份
  932. r_jsons.Data, r_jsons.Num = Warning.Read_Warning_Backups(c.T_pid, T_year, T_month, T_tp, T_name, T_handle, Time_start, Time_end, page, page_z)
  933. } else {
  934. // 获取最新
  935. r_jsons.Data, r_jsons.Num = Warning.Read_Warning_List(c.T_pid, T_tp, T_name, T_handle, Time_start, Time_end, page, page_z)
  936. }
  937. r_jsons.Page = page
  938. r_jsons.Page_size = int(math.Ceil(float64(r_jsons.Num) / float64(page_z)))
  939. c.Data["json"] = lib.JSONS{Code: 200, Msg: "ok!", Data: r_jsons}
  940. c.ServeJSON()
  941. return
  942. }
  943. // 查询告警
  944. func (c *DeviceController) DeviceWarning_Get() {
  945. id, _ := c.GetInt("T_id")
  946. T := Warning.Read_Warning_ById(id)
  947. c.Data["json"] = lib.JSONS{Code: 200, Msg: "ok!", Data: Warning.WarningToWarning_R(T)}
  948. c.ServeJSON()
  949. return
  950. }
  951. // 编辑告警(处理告警)
  952. func (c *DeviceController) DeviceWarning_Post() {
  953. Id, _ := c.GetInt("T_id")
  954. T_Text := c.GetString("T_Text")
  955. T := Warning.Read_Warning_ById(Id)
  956. if T.Id == 0 {
  957. c.Data["json"] = lib.JSONS{Code: 206, Msg: "T_id Err!"}
  958. c.ServeJSON()
  959. return
  960. }
  961. T.T_Text = T_Text
  962. T.T_State = 2
  963. Warning.Update_Warning(T, "T_Text", "T_State")
  964. System.Add_UserLogs(c.Admin_r.T_uuid, "设备管理", "报警处理操作", strconv.Itoa(Id)+"->"+T_Text)
  965. c.Data["json"] = lib.JSONS{Code: 200, Msg: "ok!"}
  966. c.ServeJSON()
  967. return
  968. }
  969. // 删除告警
  970. func (c *DeviceController) DeviceWarning_Del() {
  971. Id, _ := c.GetInt("T_id")
  972. T := Warning.Read_Warning_ById(Id)
  973. if T.Id == 0 {
  974. c.Data["json"] = lib.JSONS{Code: 206, Msg: "T_id Err!"}
  975. c.ServeJSON()
  976. return
  977. }
  978. T.T_State = 0
  979. Warning.Update_Warning(T, "T_State")
  980. System.Add_UserLogs(c.Admin_r.T_uuid, "设备管理", "报警删除操作", strconv.Itoa(Id))
  981. c.Data["json"] = lib.JSONS{Code: 200, Msg: "ok!"}
  982. c.ServeJSON()
  983. return
  984. }
  985. // 导出告警
  986. func (c *DeviceController) DeviceWarning_Data_Excel() {
  987. T_name := c.GetString("T_name")
  988. T_tp := c.GetString("T_tp")
  989. Time_start := c.GetString("Time_start")
  990. Time_end := c.GetString("Time_end")
  991. T_handle, _ := c.GetInt("T_handle")
  992. Device_data, _ := Warning.Read_Warning_List(c.T_pid, T_tp, T_name, T_handle, Time_start, Time_end, 0, 9999)
  993. f := excelize.NewFile() // 设置单元格的值
  994. // 这里设置表头
  995. f.SetCellValue("Sheet1", "A1", "报警类型")
  996. f.SetCellValue("Sheet1", "B1", "Sn")
  997. f.SetCellValue("Sheet1", "C1", "设备名称")
  998. f.SetCellValue("Sheet1", "D1", "传感器")
  999. f.SetCellValue("Sheet1", "E1", "报警内容")
  1000. f.SetCellValue("Sheet1", "F1", "记录时间")
  1001. f.SetCellValue("Sheet1", "G1", "处理")
  1002. f.SetCellValue("Sheet1", "H1", "处理时间")
  1003. // 设置列宽
  1004. f.SetColWidth("Sheet1", "A", "A", 20)
  1005. f.SetColWidth("Sheet1", "B", "B", 25)
  1006. f.SetColWidth("Sheet1", "C", "C", 30)
  1007. f.SetColWidth("Sheet1", "D", "D", 30)
  1008. f.SetColWidth("Sheet1", "G", "E", 30)
  1009. f.SetColWidth("Sheet1", "H", "F", 15)
  1010. f.SetColWidth("Sheet1", "I", "G", 30)
  1011. f.SetColWidth("Sheet1", "J", "H", 15)
  1012. line := 1
  1013. // 循环写入数据
  1014. for _, v := range Device_data {
  1015. line++
  1016. f.SetCellValue("Sheet1", fmt.Sprintf("A%d", line), v.T_tp)
  1017. f.SetCellValue("Sheet1", fmt.Sprintf("B%d", line), v.T_sn+"["+strconv.Itoa(v.Id)+"]")
  1018. f.SetCellValue("Sheet1", fmt.Sprintf("C%d", line), v.T_D_name)
  1019. f.SetCellValue("Sheet1", fmt.Sprintf("D%d", line), v.T_DS_name)
  1020. f.SetCellValue("Sheet1", fmt.Sprintf("E%d", line), v.T_Remark)
  1021. f.SetCellValue("Sheet1", fmt.Sprintf("F%d", line), v.T_Ut)
  1022. f.SetCellValue("Sheet1", fmt.Sprintf("G%d", line), v.T_Text)
  1023. f.SetCellValue("Sheet1", fmt.Sprintf("H%d", line), v.CreateTime)
  1024. }
  1025. timeStr := time.Now().Format("20060102150405")
  1026. // 保存文件
  1027. if err := f.SaveAs("ofile/" + timeStr + ".xlsx"); err != nil {
  1028. fmt.Println(err)
  1029. }
  1030. url, is := NatsServer.Qiniu_UploadFile(lib.GetCurrentDirectory()+"/ofile/"+timeStr+".xlsx", "ofile/"+timeStr+".xlsx")
  1031. if !is {
  1032. c.Data["json"] = lib.JSONS{Code: 203, Msg: "oss!"}
  1033. c.ServeJSON()
  1034. return
  1035. }
  1036. //删除文件
  1037. err := os.Remove("ofile/" + timeStr + ".xlsx")
  1038. if err != nil {
  1039. fmt.Println(err)
  1040. }
  1041. c.Data["json"] = lib.JSONS{Code: 200, Msg: "ok!", Data: url}
  1042. c.ServeJSON()
  1043. return
  1044. }
  1045. // 告警提示列表
  1046. func (c *DeviceController) DeviceWarningList_T_Tips() {
  1047. c.Data["json"] = lib.JSONS{Code: 200, Msg: "ok!", Data: Warning.Read_WarningType_All_T_Notice_mechanism()}
  1048. c.ServeJSON()
  1049. return
  1050. }
  1051. // 告警类型列表
  1052. func (c *DeviceController) WarningType_List_All() {
  1053. c.Data["json"] = lib.JSONS{Code: 200, Msg: "ok!", Data: Warning.Read_WarningType_All()}
  1054. c.ServeJSON()
  1055. return
  1056. }
  1057. // 告警类型列表 - 权限关联列表
  1058. func (c *DeviceController) WarningType_Power_List_All() {
  1059. power, err := Account.Read_Power_ById(c.Admin_r.T_power)
  1060. if err != nil {
  1061. c.Data["json"] = lib.JSONS{Code: 200, Msg: "获取菜单失败"}
  1062. c.ServeJSON()
  1063. return
  1064. }
  1065. c.Data["json"] = lib.JSONS{Code: 200, Msg: "ok!", Data: Warning.Read_WarningType_Power_All(power.T_warning)}
  1066. c.ServeJSON()
  1067. return
  1068. }
  1069. // 设备分类 ------------------------------------------
  1070. func (c *DeviceController) CompanyClass_List() {
  1071. type R_JSONS struct {
  1072. //必须的大写开头
  1073. Data []Company.CompanyClass_R
  1074. Num int64
  1075. Page int
  1076. Page_size int
  1077. }
  1078. var r_jsons R_JSONS
  1079. page, _ := c.GetInt("page")
  1080. if page < 1 {
  1081. page = 1
  1082. }
  1083. page_z, _ := c.GetInt("page_z")
  1084. if page_z < 1 {
  1085. page_z = conf.Page_size
  1086. }
  1087. T_name := c.GetString("T_name")
  1088. r_jsons.Data, r_jsons.Num = Company.Read_CompanyClass_List(c.T_pid, T_name, page, page_z)
  1089. r_jsons.Page = page
  1090. r_jsons.Page_size = int(math.Ceil(float64(r_jsons.Num) / float64(page_z)))
  1091. c.Data["json"] = lib.JSONS{Code: 200, Msg: "ok!", Data: r_jsons}
  1092. c.ServeJSON()
  1093. return
  1094. }
  1095. func (c *DeviceController) CompanyClass_All() {
  1096. type R_JSONS struct {
  1097. //必须的大写开头
  1098. Data []Company.CompanyClass_R
  1099. Num int64
  1100. Page int
  1101. Page_size int
  1102. }
  1103. var r_jsons R_JSONS
  1104. T_name := c.GetString("T_name")
  1105. r_jsons.Data = Company.Read_CompanyClass_All(c.T_pid, T_name)
  1106. c.Data["json"] = lib.JSONS{Code: 200, Msg: "ok!", Data: r_jsons}
  1107. c.ServeJSON()
  1108. return
  1109. }
  1110. func (c *DeviceController) CompanyClass_Get() {
  1111. id, _ := c.GetInt("T_id")
  1112. R_DeviceClass, err := Company.Read_CompanyClass_ById(id)
  1113. if err != nil {
  1114. c.Data["json"] = lib.JSONS{Code: 203, Msg: "T_id Err!"}
  1115. c.ServeJSON()
  1116. return
  1117. }
  1118. if R_DeviceClass.T_pid != c.T_pid {
  1119. c.Data["json"] = lib.JSONS{Code: 203, Msg: "T_pid Err!"}
  1120. c.ServeJSON()
  1121. return
  1122. }
  1123. c.Data["json"] = lib.JSONS{Code: 200, Msg: "ok!", Data: Company.CompanyClassToCompanyClass_R(R_DeviceClass)}
  1124. c.ServeJSON()
  1125. return
  1126. }
  1127. func (c *DeviceController) CompanyClass_Add() {
  1128. T_name := c.GetString("T_name")
  1129. t_c := Company.CompanyClass{
  1130. T_pid: c.T_pid,
  1131. T_name: T_name,
  1132. T_State: 1,
  1133. }
  1134. Id, err := Company.Add_CompanyClass(t_c)
  1135. if err != nil {
  1136. c.Data["json"] = lib.JSONS{Code: 203, Msg: "添加失败"}
  1137. c.ServeJSON()
  1138. return
  1139. }
  1140. System.Add_UserLogs_T(c.Admin_r.T_uuid, "设备管理", "分类添加", t_c)
  1141. c.Data["json"] = lib.JSONS{Code: 200, Msg: "ok!", Data: Id}
  1142. c.ServeJSON()
  1143. return
  1144. }
  1145. func (c *DeviceController) CompanyClass_Edit() {
  1146. T_name := c.GetString("T_name")
  1147. id, _ := c.GetInt("T_id")
  1148. R_DeviceClass, err := Company.Read_CompanyClass_ById(id)
  1149. if err != nil {
  1150. c.Data["json"] = lib.JSONS{Code: 203, Msg: "T_id Err!"}
  1151. c.ServeJSON()
  1152. return
  1153. }
  1154. if R_DeviceClass.T_pid != c.T_pid {
  1155. c.Data["json"] = lib.JSONS{Code: 203, Msg: "T_pid Err!"}
  1156. c.ServeJSON()
  1157. return
  1158. }
  1159. if len(T_name) > 0 {
  1160. R_DeviceClass.T_name = T_name
  1161. }
  1162. if is := Company.Update_CompanyClass(R_DeviceClass, "T_name"); !is {
  1163. c.Data["json"] = lib.JSONS{Code: 203, Msg: "修改失败"}
  1164. c.ServeJSON()
  1165. return
  1166. }
  1167. System.Add_UserLogs_T(c.Admin_r.T_uuid, "设备管理", "分类修改", R_DeviceClass)
  1168. c.Data["json"] = lib.JSONS{Code: 200, Msg: "ok!"}
  1169. c.ServeJSON()
  1170. return
  1171. }
  1172. func (c *DeviceController) CompanyClass_Del() {
  1173. id, _ := c.GetInt("T_id")
  1174. R_DeviceClass, err := Company.Read_CompanyClass_ById(id)
  1175. if err != nil {
  1176. c.Data["json"] = lib.JSONS{Code: 203, Msg: "T_id Err!"}
  1177. c.ServeJSON()
  1178. return
  1179. }
  1180. if R_DeviceClass.T_pid != c.T_pid {
  1181. c.Data["json"] = lib.JSONS{Code: 203, Msg: "T_pid Err!"}
  1182. c.ServeJSON()
  1183. return
  1184. }
  1185. if is := Company.Delete_CompanyClass_ById(id); !is {
  1186. c.Data["json"] = lib.JSONS{Code: 203, Msg: "删除失败"}
  1187. c.ServeJSON()
  1188. return
  1189. }
  1190. // 将传感器T_Class绑定的分类id替换为空字符串
  1191. DeviceSensor_class_list := Device.Read_DeviceSensor_ALL_Class_Id(id)
  1192. for _, v := range DeviceSensor_class_list {
  1193. Device.DeviceSensor_Bind_T_Class_Del(v.T_sn, v.T_id, id)
  1194. }
  1195. System.Add_UserLogs(c.Admin_r.T_uuid, "设备管理", "分类删除", strconv.Itoa(id))
  1196. c.Data["json"] = lib.JSONS{Code: 200, Msg: "ok!"}
  1197. c.ServeJSON()
  1198. return
  1199. }
  1200. // 设备分类绑定
  1201. func (c *DeviceController) DeviceClassBind_List() {
  1202. type R_JSONS struct {
  1203. //必须的大写开头
  1204. DeviceSensor_lite []Device.DeviceSensor_R
  1205. Num int
  1206. Page int
  1207. Page_size int
  1208. Pages []lib.Page_T
  1209. }
  1210. var r_jsons R_JSONS
  1211. page, _ := c.GetInt("page")
  1212. if page < 1 {
  1213. page = 1
  1214. }
  1215. page_z, _ := c.GetInt("page_z")
  1216. if page_z < 1 {
  1217. page_z = conf.Page_size
  1218. }
  1219. T_name := c.GetString("T_name")
  1220. T_sn := c.GetString("T_sn")
  1221. T_class_id, _ := c.GetInt("T_class_id")
  1222. T_type, _ := c.GetInt("T_type")
  1223. R_DeviceClass, err := Company.Read_CompanyClass_ById(T_class_id)
  1224. if err != nil {
  1225. c.Data["json"] = lib.JSONS{Code: 205, Msg: "T_class_id Err!"}
  1226. c.ServeJSON()
  1227. return
  1228. }
  1229. if R_DeviceClass.T_pid != c.T_pid {
  1230. c.Data["json"] = lib.JSONS{Code: 205, Msg: "T_pid Err!"}
  1231. c.ServeJSON()
  1232. return
  1233. }
  1234. var cnt int64
  1235. Device_lite, cnt := Device.Read_DeviceSensor_List_T_Class(c.T_pid, T_class_id, T_sn, T_name, T_type, page, page_z)
  1236. r_jsons.DeviceSensor_lite = Device_lite
  1237. page_size := math.Ceil(float64(cnt) / float64(page_z))
  1238. r_jsons.Page = page
  1239. r_jsons.Page_size = int(page_size)
  1240. r_jsons.Pages = lib.Func_page(int64(page), int64(page_size))
  1241. r_jsons.Num = int(cnt)
  1242. c.Data["json"] = lib.JSONS{Code: 200, Msg: "ok!", Data: r_jsons}
  1243. c.ServeJSON()
  1244. return
  1245. }
  1246. func (c *DeviceController) ClassBind_Add() {
  1247. T_class_id, _ := c.GetInt("T_class_id")
  1248. T_sn := c.GetString("T_sn")
  1249. T_id, _ := c.GetInt("T_id")
  1250. if T_class_id == 0 || T_id == 0 || len(T_sn) == 0 {
  1251. c.Data["json"] = lib.JSONS{Code: 202, Msg: "T_sn T_id T_class_id Err!"}
  1252. c.ServeJSON()
  1253. return
  1254. }
  1255. if _, err := Device.Read_Device_ByT_sn(T_sn); err != nil {
  1256. c.Data["json"] = lib.JSONS{Code: 204, Msg: "T_id Err!"}
  1257. c.ServeJSON()
  1258. return
  1259. }
  1260. R_DeviceClass, err := Company.Read_CompanyClass_ById(T_class_id)
  1261. if err != nil {
  1262. c.Data["json"] = lib.JSONS{Code: 205, Msg: "T_class_id Err!"}
  1263. c.ServeJSON()
  1264. return
  1265. }
  1266. if R_DeviceClass.T_pid != c.T_pid {
  1267. c.Data["json"] = lib.JSONS{Code: 205, Msg: "T_pid Err!"}
  1268. c.ServeJSON()
  1269. return
  1270. }
  1271. DeviceSensor_class_list := Device.Read_DeviceSensor_ALL_T_sn_T_id_T_Class(T_sn, T_id, T_class_id)
  1272. if len(DeviceSensor_class_list) > 0 {
  1273. c.Data["json"] = lib.JSONS{Code: 203, Msg: "重复绑定!"}
  1274. c.ServeJSON()
  1275. return
  1276. }
  1277. if err = Device.DeviceSensor_Bind_T_Class_Add(T_sn, T_id, T_class_id); err != nil {
  1278. c.Data["json"] = lib.JSONS{Code: 200, Msg: "绑定失败"}
  1279. c.ServeJSON()
  1280. return
  1281. }
  1282. System.Add_UserLogs(c.Admin_r.T_uuid, "设备管理", "分类绑定操作", strconv.Itoa(T_class_id)+"+>"+T_sn+"-"+strconv.Itoa(T_id))
  1283. c.Data["json"] = lib.JSONS{Code: 200, Msg: "ok!"}
  1284. c.ServeJSON()
  1285. return
  1286. }
  1287. func (c *DeviceController) ClassBind_Del() {
  1288. T_class_id, _ := c.GetInt("T_class_id")
  1289. T_sn := c.GetString("T_sn")
  1290. T_id, _ := c.GetInt("T_id")
  1291. if T_class_id == 0 || T_id == 0 || len(T_sn) == 0 {
  1292. c.Data["json"] = lib.JSONS{Code: 202, Msg: "T_sn T_id T_class_id Err!"}
  1293. c.ServeJSON()
  1294. return
  1295. }
  1296. if _, err := Device.Read_Device_ByT_sn(T_sn); err != nil {
  1297. c.Data["json"] = lib.JSONS{Code: 204, Msg: "T_id Err!"}
  1298. c.ServeJSON()
  1299. return
  1300. }
  1301. R_DeviceClass, err := Company.Read_CompanyClass_ById(T_class_id)
  1302. if err != nil {
  1303. c.Data["json"] = lib.JSONS{Code: 205, Msg: "T_class_id Err!"}
  1304. c.ServeJSON()
  1305. return
  1306. }
  1307. if R_DeviceClass.T_pid != c.T_pid {
  1308. c.Data["json"] = lib.JSONS{Code: 205, Msg: "T_pid Err!"}
  1309. c.ServeJSON()
  1310. return
  1311. }
  1312. DeviceSensor_class_list := Device.Read_DeviceSensor_ALL_T_sn_T_id_T_Class(T_sn, T_id, T_class_id)
  1313. if len(DeviceSensor_class_list) == 0 {
  1314. c.Data["json"] = lib.JSONS{Code: 200, Msg: "ok!"}
  1315. c.ServeJSON()
  1316. return
  1317. }
  1318. if err = Device.DeviceSensor_Bind_T_Class_Del(T_sn, T_id, T_class_id); err != nil {
  1319. c.Data["json"] = lib.JSONS{Code: 200, Msg: "删除失败"}
  1320. c.ServeJSON()
  1321. return
  1322. }
  1323. System.Add_UserLogs(c.Admin_r.T_uuid, "设备管理", "分类删除绑定操作", strconv.Itoa(T_class_id)+"->"+T_sn+"-"+strconv.Itoa(T_id))
  1324. c.Data["json"] = lib.JSONS{Code: 200, Msg: "ok!"}
  1325. c.ServeJSON()
  1326. return
  1327. }
  1328. // 报警策略 ------------------------------------------
  1329. func (c *DeviceController) CompanyNotice_List() {
  1330. type R_JSONS struct {
  1331. //必须的大写开头
  1332. Data []Company.CompanyNotice_R
  1333. Num int64
  1334. Page int
  1335. Page_size int
  1336. }
  1337. var r_jsons R_JSONS
  1338. page, _ := c.GetInt("page")
  1339. if page < 1 {
  1340. page = 1
  1341. }
  1342. page_z, _ := c.GetInt("page_z")
  1343. if page_z < 1 {
  1344. page_z = conf.Page_size
  1345. }
  1346. T_name := c.GetString("T_name")
  1347. r_jsons.Data, r_jsons.Num = Company.Read_CompanyNotice_List(c.T_pid, T_name, page, page_z)
  1348. r_jsons.Page = page
  1349. r_jsons.Page_size = int(math.Ceil(float64(r_jsons.Num) / float64(page_z)))
  1350. c.Data["json"] = lib.JSONS{Code: 200, Msg: "ok!", Data: r_jsons}
  1351. c.ServeJSON()
  1352. return
  1353. }
  1354. func (c *DeviceController) CompanyNotice_All() {
  1355. type R_JSONS struct {
  1356. //必须的大写开头
  1357. Data []Company.CompanyNotice_R
  1358. Num int64
  1359. Page int
  1360. Page_size int
  1361. }
  1362. var r_jsons R_JSONS
  1363. T_name := c.GetString("T_name")
  1364. r_jsons.Data = Company.Read_CompanyNotice_All(c.T_pid, T_name)
  1365. c.Data["json"] = lib.JSONS{Code: 200, Msg: "ok!", Data: r_jsons}
  1366. c.ServeJSON()
  1367. return
  1368. }
  1369. func (c *DeviceController) CompanyNotice_Get() {
  1370. id, _ := c.GetInt("T_id")
  1371. R_DeviceNotice, err := Company.Read_CompanyNotice_ById(id)
  1372. if err != nil {
  1373. c.Data["json"] = lib.JSONS{Code: 203, Msg: "T_id Err!"}
  1374. c.ServeJSON()
  1375. return
  1376. }
  1377. if R_DeviceNotice.T_pid != c.T_pid {
  1378. c.Data["json"] = lib.JSONS{Code: 203, Msg: "T_pid Err!"}
  1379. c.ServeJSON()
  1380. return
  1381. }
  1382. c.Data["json"] = lib.JSONS{Code: 200, Msg: "ok!", Data: Company.CompanyNoticeToCompanyNotice_R(R_DeviceNotice)}
  1383. c.ServeJSON()
  1384. return
  1385. }
  1386. func (c *DeviceController) CompanyNotice_Add() {
  1387. T_name := c.GetString("T_name")
  1388. t_c := Company.CompanyNotice{
  1389. T_pid: c.T_pid,
  1390. T_name: T_name,
  1391. T_Notice_mechanism: Warning.Read_WarningType_All_T_Notice_mechanism(),
  1392. T_State: 1,
  1393. }
  1394. Id, err := Company.Add_CompanyNotice(t_c)
  1395. if err != nil {
  1396. c.Data["json"] = lib.JSONS{Code: 203, Msg: "添加失败"}
  1397. c.ServeJSON()
  1398. return
  1399. }
  1400. System.Add_UserLogs_T(c.Admin_r.T_uuid, "设备管理", "报警策略添加", t_c)
  1401. c.Data["json"] = lib.JSONS{Code: 200, Msg: "ok!", Data: Id}
  1402. c.ServeJSON()
  1403. return
  1404. }
  1405. func (c *DeviceController) CompanyNotice_Edit() {
  1406. id, _ := c.GetInt("T_id")
  1407. T_name := c.GetString("T_name")
  1408. T_Notice_wx := c.GetString("T_Notice_wx")
  1409. T_Notice_wx2 := c.GetString("T_Notice_wx2")
  1410. T_Notice_phone := c.GetString("T_Notice_phone")
  1411. T_Notice_message := c.GetString("T_Notice_message")
  1412. T_Notice_mailbox := c.GetString("T_Notice_mailbox")
  1413. T_Notice_mechanism := c.GetString("T_Notice_mechanism")
  1414. R_DeviceNotice, err := Company.Read_CompanyNotice_ById(id)
  1415. if err != nil {
  1416. c.Data["json"] = lib.JSONS{Code: 203, Msg: "T_id Err!"}
  1417. c.ServeJSON()
  1418. return
  1419. }
  1420. if R_DeviceNotice.T_pid != c.T_pid {
  1421. c.Data["json"] = lib.JSONS{Code: 203, Msg: "T_pid Err!"}
  1422. c.ServeJSON()
  1423. return
  1424. }
  1425. R_DeviceNotice.Id = id
  1426. if len(T_name) > 0 {
  1427. R_DeviceNotice.T_name = T_name
  1428. }
  1429. if len(T_Notice_wx) > 0 {
  1430. R_DeviceNotice.T_Notice_wx = T_Notice_wx
  1431. }
  1432. if len(T_Notice_wx2) > 0 {
  1433. R_DeviceNotice.T_Notice_wx2 = T_Notice_wx2
  1434. }
  1435. if len(T_Notice_phone) > 0 {
  1436. R_DeviceNotice.T_Notice_phone = T_Notice_phone
  1437. }
  1438. if len(T_Notice_message) > 0 {
  1439. R_DeviceNotice.T_Notice_message = T_Notice_message
  1440. }
  1441. if len(T_Notice_mailbox) > 0 {
  1442. R_DeviceNotice.T_Notice_mailbox = T_Notice_mailbox
  1443. }
  1444. if len(T_Notice_mechanism) > 0 {
  1445. R_DeviceNotice.T_Notice_mechanism = T_Notice_mechanism
  1446. }
  1447. if is := Company.Update_CompanyNotice(R_DeviceNotice, "T_name", "T_Notice_wx", "T_Notice_wx2", "T_Notice_phone", "T_Notice_message", "T_Notice_mailbox", "T_Notice_mechanism"); !is {
  1448. c.Data["json"] = lib.JSONS{Code: 203, Msg: "修改失败"}
  1449. c.ServeJSON()
  1450. return
  1451. }
  1452. System.Add_UserLogs_T(c.Admin_r.T_uuid, "设备管理", "报警策略修改", R_DeviceNotice)
  1453. c.Data["json"] = lib.JSONS{Code: 200, Msg: "ok!"}
  1454. c.ServeJSON()
  1455. return
  1456. }
  1457. func (c *DeviceController) CompanyNotice_Reset_Mechanism() {
  1458. id, _ := c.GetInt("T_id")
  1459. R_DeviceNotice, err := Company.Read_CompanyNotice_ById(id)
  1460. if err != nil {
  1461. c.Data["json"] = lib.JSONS{Code: 203, Msg: "T_id Err!"}
  1462. c.ServeJSON()
  1463. return
  1464. }
  1465. if R_DeviceNotice.T_pid != c.T_pid {
  1466. c.Data["json"] = lib.JSONS{Code: 203, Msg: "T_pid Err!"}
  1467. c.ServeJSON()
  1468. return
  1469. }
  1470. R_DeviceNotice.T_Notice_mechanism = Warning.Read_WarningType_All_T_Notice_mechanism()
  1471. if is := Company.Update_CompanyNotice(R_DeviceNotice, "T_Notice_mechanism"); !is {
  1472. c.Data["json"] = lib.JSONS{Code: 203, Msg: "修改失败"}
  1473. c.ServeJSON()
  1474. return
  1475. }
  1476. System.Add_UserLogs_T(c.Admin_r.T_uuid, "设备管理", "报警策略", R_DeviceNotice)
  1477. c.Data["json"] = lib.JSONS{Code: 200, Msg: "ok!"}
  1478. c.ServeJSON()
  1479. return
  1480. }
  1481. func (c *DeviceController) CompanyNotice_Del() {
  1482. id, _ := c.GetInt("T_id")
  1483. R_DeviceNotice, err := Company.Read_CompanyNotice_ById(id)
  1484. if err != nil {
  1485. c.Data["json"] = lib.JSONS{Code: 203, Msg: "T_id Err!"}
  1486. c.ServeJSON()
  1487. return
  1488. }
  1489. if R_DeviceNotice.T_pid != c.T_pid {
  1490. c.Data["json"] = lib.JSONS{Code: 203, Msg: "T_pid Err!"}
  1491. c.ServeJSON()
  1492. return
  1493. }
  1494. if is := Company.Delete_CompanyNotice_ById(id); !is {
  1495. c.Data["json"] = lib.JSONS{Code: 203, Msg: "删除失败"}
  1496. c.ServeJSON()
  1497. return
  1498. }
  1499. DeviceSensor_class_list := Device.Read_DeviceSensor_ALL_Notice_Id(id)
  1500. for _, v := range DeviceSensor_class_list {
  1501. Device.DeviceSensor_Bind_T_Notice_Del(v.T_sn, v.T_id, id)
  1502. }
  1503. System.Add_UserLogs(c.Admin_r.T_uuid, "设备管理", "报警策略删除", strconv.Itoa(id))
  1504. c.Data["json"] = lib.JSONS{Code: 200, Msg: "ok!"}
  1505. c.ServeJSON()
  1506. return
  1507. }
  1508. // 设备通知绑定
  1509. func (c *DeviceController) DeviceNoticeBind_List() {
  1510. type R_JSONS struct {
  1511. //必须的大写开头
  1512. DeviceSensor_lite []Device.DeviceSensor_R
  1513. Num int
  1514. Page int
  1515. Page_size int
  1516. Pages []lib.Page_T
  1517. }
  1518. var r_jsons R_JSONS
  1519. page, _ := c.GetInt("page")
  1520. if page < 1 {
  1521. page = 1
  1522. }
  1523. page_z, _ := c.GetInt("page_z")
  1524. if page_z < 1 {
  1525. page_z = conf.Page_size
  1526. }
  1527. T_name := c.GetString("T_name")
  1528. T_sn := c.GetString("T_sn")
  1529. T_notice_id, _ := c.GetInt("T_notice_id")
  1530. T_type, _ := c.GetInt("T_type")
  1531. R_DeviceNotice, err := Company.Read_CompanyNotice_ById(T_notice_id)
  1532. if err != nil {
  1533. c.Data["json"] = lib.JSONS{Code: 205, Msg: "T_class_id Err!"}
  1534. c.ServeJSON()
  1535. return
  1536. }
  1537. if R_DeviceNotice.T_pid != c.T_pid {
  1538. c.Data["json"] = lib.JSONS{Code: 205, Msg: "T_pid Err!"}
  1539. c.ServeJSON()
  1540. return
  1541. }
  1542. var cnt int64
  1543. Device_lite, cnt := Device.Read_DeviceSensor_List_T_Notice(c.T_pid, T_notice_id, page, page_z, T_sn, T_name, T_type)
  1544. r_jsons.DeviceSensor_lite = Device_lite
  1545. page_size := math.Ceil(float64(cnt) / float64(page_z))
  1546. r_jsons.Page = page
  1547. r_jsons.Page_size = int(page_size)
  1548. r_jsons.Pages = lib.Func_page(int64(page), int64(page_size))
  1549. r_jsons.Num = int(cnt)
  1550. c.Data["json"] = lib.JSONS{Code: 200, Msg: "ok!", Data: r_jsons}
  1551. c.ServeJSON()
  1552. return
  1553. }
  1554. func (c *DeviceController) NoticeBind_Add() {
  1555. T_notice_id, _ := c.GetInt("T_notice_id")
  1556. T_sn := c.GetString("T_sn")
  1557. T_id, _ := c.GetInt("T_id")
  1558. if T_notice_id == 0 || T_id == 0 || len(T_sn) == 0 {
  1559. c.Data["json"] = lib.JSONS{Code: 202, Msg: "T_sn T_id T_class_id Err!"}
  1560. c.ServeJSON()
  1561. return
  1562. }
  1563. if _, err := Device.Read_Device_ByT_sn(T_sn); err != nil {
  1564. c.Data["json"] = lib.JSONS{Code: 204, Msg: "T_id Err!"}
  1565. c.ServeJSON()
  1566. return
  1567. }
  1568. R_CompanyNotice, err := Company.Read_CompanyNotice_ById(T_notice_id)
  1569. if err != nil {
  1570. c.Data["json"] = lib.JSONS{Code: 205, Msg: "T_class_id Err!"}
  1571. c.ServeJSON()
  1572. return
  1573. }
  1574. if R_CompanyNotice.T_pid != c.T_pid {
  1575. c.Data["json"] = lib.JSONS{Code: 205, Msg: "T_pid Err!"}
  1576. c.ServeJSON()
  1577. return
  1578. }
  1579. DeviceSensor_Notice_list := Device.Read_DeviceSensor_ALL_T_sn_T_id_T_Notice(T_sn, T_id, T_notice_id)
  1580. if len(DeviceSensor_Notice_list) > 0 {
  1581. c.Data["json"] = lib.JSONS{Code: 203, Msg: "重复绑定!"}
  1582. c.ServeJSON()
  1583. return
  1584. }
  1585. if err = Company.Add_T_Notice_bind(T_sn, T_id, T_notice_id); err != nil {
  1586. c.Data["json"] = lib.JSONS{Code: 200, Msg: "通知绑定失败"}
  1587. c.ServeJSON()
  1588. return
  1589. }
  1590. if err = Device.DeviceSensor_Bind_T_Notice_Add(T_sn, T_id, T_notice_id); err != nil {
  1591. c.Data["json"] = lib.JSONS{Code: 200, Msg: "通知绑定失败"}
  1592. c.ServeJSON()
  1593. return
  1594. }
  1595. System.Add_UserLogs(c.Admin_r.T_uuid, "设备管理", "报警策略绑定添加", strconv.Itoa(T_notice_id)+"+>"+T_sn+"-"+strconv.Itoa(T_id))
  1596. c.Data["json"] = lib.JSONS{Code: 200, Msg: "ok!"}
  1597. c.ServeJSON()
  1598. return
  1599. }
  1600. func (c *DeviceController) NoticeBind_Del() {
  1601. T_notice_id, _ := c.GetInt("T_notice_id")
  1602. T_sn := c.GetString("T_sn")
  1603. T_id, _ := c.GetInt("T_id")
  1604. if T_notice_id == 0 || T_id == 0 || len(T_sn) == 0 {
  1605. c.Data["json"] = lib.JSONS{Code: 202, Msg: "T_sn T_id T_class_id Err!"}
  1606. c.ServeJSON()
  1607. return
  1608. }
  1609. if _, err := Device.Read_Device_ByT_sn(T_sn); err != nil {
  1610. c.Data["json"] = lib.JSONS{Code: 204, Msg: "T_id Err!"}
  1611. c.ServeJSON()
  1612. return
  1613. }
  1614. R_DeviceClass, err := Company.Read_CompanyNotice_ById(T_notice_id)
  1615. if err != nil {
  1616. c.Data["json"] = lib.JSONS{Code: 205, Msg: "T_class_id Err!"}
  1617. c.ServeJSON()
  1618. return
  1619. }
  1620. if R_DeviceClass.T_pid != c.T_pid {
  1621. c.Data["json"] = lib.JSONS{Code: 205, Msg: "T_pid Err!"}
  1622. c.ServeJSON()
  1623. return
  1624. }
  1625. DeviceSensor_class_list := Device.Read_DeviceSensor_ALL_T_sn_T_id_T_Notice(T_sn, T_id, T_notice_id)
  1626. if len(DeviceSensor_class_list) == 0 {
  1627. c.Data["json"] = lib.JSONS{Code: 200, Msg: "ok!"}
  1628. c.ServeJSON()
  1629. return
  1630. }
  1631. if err = Company.Delete_T_Notice_bind(T_sn, T_id, T_notice_id); err != nil {
  1632. c.Data["json"] = lib.JSONS{Code: 200, Msg: "通知删除绑定失败"}
  1633. c.ServeJSON()
  1634. return
  1635. }
  1636. if err = Device.DeviceSensor_Bind_T_Notice_Del(T_sn, T_id, T_notice_id); err != nil {
  1637. c.Data["json"] = lib.JSONS{Code: 200, Msg: "通知删除绑定失败"}
  1638. c.ServeJSON()
  1639. return
  1640. }
  1641. System.Add_UserLogs(c.Admin_r.T_uuid, "设备管理", "通知删除绑定删除", strconv.Itoa(T_notice_id)+"->"+T_sn+"-"+strconv.Itoa(T_id))
  1642. c.Data["json"] = lib.JSONS{Code: 200, Msg: "ok!"}
  1643. c.ServeJSON()
  1644. return
  1645. }
  1646. // 设备类型
  1647. func (c *DeviceController) DeviceType_List_All() {
  1648. type R_JSONS struct {
  1649. //必须的大写开头
  1650. Data []Device.DeviceSensorType
  1651. Num int64
  1652. Page int
  1653. Page_size int
  1654. }
  1655. var r_jsons R_JSONS
  1656. r_jsons.Data = Device.Read_DeviceSensorType_List_All()
  1657. c.Data["json"] = lib.JSONS{Code: 200, Msg: "ok!", Data: r_jsons}
  1658. c.ServeJSON()
  1659. return
  1660. }