Device.go 53 KB

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