Task.go 11 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437
  1. package controllers
  2. import (
  3. "ColdVerify_server/Nats/NatsServer"
  4. "ColdVerify_server/conf"
  5. "ColdVerify_server/lib"
  6. "ColdVerify_server/models/Account"
  7. "ColdVerify_server/models/Device"
  8. "ColdVerify_server/models/System"
  9. "ColdVerify_server/models/Task"
  10. beego "github.com/beego/beego/v2/server/web"
  11. "math"
  12. )
  13. type TaskController struct {
  14. beego.Controller
  15. }
  16. // 列表 -
  17. func (c *TaskController) List() {
  18. // 验证登录 User_is, User_r
  19. User_r, User_is := Account.Verification_Admin(c.Ctx.GetCookie("User_tokey"), c.GetString("User_tokey"))
  20. if !User_is {
  21. c.Data["json"] = lib.JSONS{Code: 201, Msg: "请重新登录!"}
  22. c.ServeJSON()
  23. return
  24. }
  25. var r_jsons lib.R_JSONS
  26. page, _ := c.GetInt("page")
  27. if page < 1 {
  28. page = 1
  29. }
  30. page_z, _ := c.GetInt("page_z")
  31. if page_z < 1 {
  32. page_z = conf.Page_size
  33. }
  34. T_name := c.GetString("T_name")
  35. T_uuid := c.GetString("T_uuid")
  36. UserMap := Account.UserListToMap(Account.Read_User_List_ALL_1())
  37. AdminMap := Account.AdminListToMap(Account.Read_Admin_List_ALL_1())
  38. var T_admin string
  39. if User_r.T_power > 2 {
  40. T_admin = User_r.T_uuid
  41. }
  42. var cnt int
  43. List, cnt := Task.Read_Task_List(T_uuid, T_admin, T_name, UserMap, AdminMap, page, page_z)
  44. page_size := math.Ceil(float64(cnt) / float64(page_z))
  45. r_jsons.List = List
  46. r_jsons.Page = page
  47. r_jsons.Page_size = int(page_size)
  48. r_jsons.Pages = lib.Func_page(int64(page), int64(page_size))
  49. r_jsons.Num = cnt
  50. c.Data["json"] = lib.JSONS{Code: 200, Msg: "ok!", Data: r_jsons}
  51. c.ServeJSON()
  52. return
  53. }
  54. // 列表 -
  55. func (c *TaskController) UserTaskList() {
  56. // 验证登录 User_is, User_r
  57. User_r, User_is := Account.Verification(c.Ctx.GetCookie("User_tokey"), c.GetString("User_tokey"))
  58. if !User_is {
  59. c.Data["json"] = lib.JSONS{Code: 201, Msg: "请重新登录!"}
  60. c.ServeJSON()
  61. return
  62. }
  63. var r_jsons lib.R_JSONS
  64. page, _ := c.GetInt("page")
  65. if page < 1 {
  66. page = 1
  67. }
  68. page_z, _ := c.GetInt("page_z")
  69. if page_z < 1 {
  70. page_z = conf.Page_size
  71. }
  72. T_name := c.GetString("T_name")
  73. UserMap := Account.UserListToMap(Account.Read_User_List_ALL_1())
  74. AdminMap := Account.AdminListToMap(Account.Read_Admin_List_ALL_1())
  75. var cnt int
  76. List, cnt := Task.Read_UserTask_List(User_r.T_uuid, T_name, UserMap, AdminMap, page, page_z)
  77. page_size := math.Ceil(float64(cnt) / float64(page_z))
  78. r_jsons.List = List
  79. r_jsons.Page = page
  80. r_jsons.Page_size = int(page_size)
  81. r_jsons.Pages = lib.Func_page(int64(page), int64(page_size))
  82. r_jsons.Num = cnt
  83. c.Data["json"] = lib.JSONS{Code: 200, Msg: "ok!", Data: r_jsons}
  84. c.ServeJSON()
  85. return
  86. }
  87. // 获取-
  88. func (c *TaskController) Get() {
  89. // 验证登录 User_is, User_r
  90. _, User_is := Account.Verification_Admin(c.Ctx.GetCookie("User_tokey"), c.GetString("User_tokey"))
  91. if !User_is {
  92. c.Data["json"] = lib.JSONS{Code: 201, Msg: "请重新登录!"}
  93. c.ServeJSON()
  94. return
  95. }
  96. T_task_id := c.GetString("T_task_id")
  97. r, is := Task.Read_Task(T_task_id)
  98. if !is {
  99. c.Data["json"] = lib.JSONS{Code: 202, Msg: "Id 错误!"}
  100. c.ServeJSON()
  101. return
  102. }
  103. // 添加浏览量
  104. _ = Task.Add_Task_Visit(r)
  105. r.T_Visit += 1
  106. c.Data["json"] = lib.JSONS{Code: 200, Msg: "ok!", Data: Task.TaskToTask_R(r)}
  107. c.ServeJSON()
  108. return
  109. }
  110. // 添加-
  111. func (c *TaskController) Add() {
  112. // 验证登录 User_is, User_r
  113. User_r, User_is := Account.Verification_Admin(c.Ctx.GetCookie("User_tokey"), c.GetString("User_tokey"))
  114. if !User_is {
  115. c.Data["json"] = lib.JSONS{Code: 201, Msg: "请重新登录!"}
  116. c.ServeJSON()
  117. return
  118. }
  119. dc := Device.DeviceClass{
  120. T_uuid: User_r.T_uuid,
  121. T_State: 1,
  122. }
  123. T_class_id, is := Device.Add_DeviceClass(dc)
  124. if !is {
  125. c.Data["json"] = lib.JSONS{Code: 202, Msg: "添加分类失败!"}
  126. c.ServeJSON()
  127. return
  128. }
  129. System.Add_UserLogs_T(User_r.T_uuid, "分类管理", "添加", dc)
  130. T_name := c.GetString("T_name")
  131. T_uuid := c.GetString("T_uuid") // 用户uuid
  132. T_VerifyTemplate_class := c.GetString("T_VerifyTemplate_class")
  133. T_VerifyTemplate_id := c.GetString("T_VerifyTemplate_id")
  134. T_deadline := c.GetString("T_deadline")
  135. T_scheme := c.GetString("T_scheme")
  136. T_collection := c.GetString("T_collection")
  137. T_reporting := c.GetString("T_reporting")
  138. T_delivery := c.GetString("T_delivery")
  139. var_ := Task.Task{
  140. T_class: int(T_class_id),
  141. T_uuid: T_uuid,
  142. T_name: T_name,
  143. T_VerifyTemplate_class: T_VerifyTemplate_class,
  144. T_VerifyTemplate_id: T_VerifyTemplate_id,
  145. T_deadline: T_deadline,
  146. T_scheme: T_scheme,
  147. T_collection: T_collection,
  148. T_reporting: T_reporting,
  149. T_delivery: T_delivery,
  150. T_Show: 1,
  151. T_State: 1,
  152. }
  153. T_task_id, is := Task.Add_Task(var_)
  154. if !is {
  155. c.Data["json"] = lib.JSONS{Code: 202, Msg: "添加失败!"}
  156. c.ServeJSON()
  157. return
  158. }
  159. NatsServer.Create_Local_Table(T_task_id)
  160. // 添加任务操作日志
  161. Task.Add_TaskLogs_T(User_r.T_uuid, T_task_id, "任务管理", "添加", var_)
  162. System.Add_UserLogs_T(User_r.T_uuid, "任务管理", "添加", var_)
  163. c.Data["json"] = lib.JSONS{Code: 200, Msg: "ok!", Data: T_task_id}
  164. c.ServeJSON()
  165. return
  166. }
  167. // 添加-
  168. func (c *TaskController) AddData_Tool() {
  169. T_uuid := "3e84dda9-9eec-42b9-9350-0894262fc8a1" // 用户uuid
  170. T_name := c.GetString("T_name")
  171. T_task_id := c.GetString("T_task_id")
  172. r, _ := Task.Read_Task(T_task_id)
  173. if r.T_collection_state == 2 {
  174. c.Data["json"] = lib.JSONS{Code: 200, Msg: "数据采集中..."}
  175. c.ServeJSON()
  176. return
  177. }
  178. if r.Id > 0 {
  179. // 同步1.0数据
  180. NatsServer.Sync1_TaskData(T_task_id)
  181. c.Data["json"] = lib.JSONS{Code: 200, Msg: "ok!", Data: T_task_id}
  182. c.ServeJSON()
  183. return
  184. }
  185. dc := Device.DeviceClass{
  186. T_uuid: T_uuid,
  187. T_State: 1,
  188. }
  189. T_class_id, is := Device.Add_DeviceClass(dc)
  190. if !is {
  191. c.Data["json"] = lib.JSONS{Code: 202, Msg: "添加分类失败!"}
  192. c.ServeJSON()
  193. return
  194. }
  195. var_ := Task.Task{
  196. T_task_id: T_task_id,
  197. T_class: int(T_class_id),
  198. T_uuid: T_uuid,
  199. T_name: T_name,
  200. T_Show: 1,
  201. T_State: 1,
  202. T_collection_state: 2,
  203. }
  204. _, is = Task.Add_Task_Tool(var_)
  205. if !is {
  206. c.Data["json"] = lib.JSONS{Code: 202, Msg: "添加失败!"}
  207. c.ServeJSON()
  208. return
  209. }
  210. // 创建本地表
  211. NatsServer.Create_Local_Table(T_task_id)
  212. // 同步1.0数据
  213. NatsServer.Sync1_TaskData(T_task_id)
  214. c.Data["json"] = lib.JSONS{Code: 200, Msg: "ok!", Data: T_task_id}
  215. c.ServeJSON()
  216. return
  217. }
  218. // 修改-
  219. func (c *TaskController) Up() {
  220. // 验证登录 User_is, User_r
  221. User_r, User_is := Account.Verification_Admin(c.Ctx.GetCookie("User_tokey"), c.GetString("User_tokey"))
  222. if !User_is {
  223. c.Data["json"] = lib.JSONS{Code: 201, Msg: "请重新登录!"}
  224. c.ServeJSON()
  225. return
  226. }
  227. T_name := c.GetString("T_name")
  228. T_Show, T_Show_err := c.GetInt("T_Show")
  229. T_VerifyTemplate_class := c.GetString("T_VerifyTemplate_class")
  230. T_VerifyTemplate_id := c.GetString("T_VerifyTemplate_id")
  231. T_deadline := c.GetString("T_deadline")
  232. T_scheme := c.GetString("T_scheme")
  233. T_collection := c.GetString("T_collection")
  234. T_reporting := c.GetString("T_reporting")
  235. T_delivery := c.GetString("T_delivery")
  236. T_doc1 := c.GetString("T_doc1")
  237. T_pdf1 := c.GetString("T_pdf1")
  238. T_doc2 := c.GetString("T_doc2")
  239. T_pdf2 := c.GetString("T_pdf2")
  240. T_doc3 := c.GetString("T_doc3")
  241. T_pdf3 := c.GetString("T_pdf3")
  242. T_task_id := c.GetString("T_task_id")
  243. r, is := Task.Read_Task(T_task_id)
  244. if !is {
  245. c.Data["json"] = lib.JSONS{Code: 202, Msg: "Id 错误!"}
  246. c.ServeJSON()
  247. return
  248. }
  249. // .......
  250. clos := make([]string, 0)
  251. if len(T_name) > 0 {
  252. r.T_name = T_name
  253. clos = append(clos, "T_name")
  254. }
  255. if T_Show_err == nil {
  256. r.T_Show = T_Show
  257. clos = append(clos, "T_Show")
  258. }
  259. if len(T_VerifyTemplate_class) > 0 {
  260. r.T_VerifyTemplate_class = T_VerifyTemplate_class
  261. clos = append(clos, "T_VerifyTemplate_class")
  262. }
  263. if len(T_VerifyTemplate_id) > 0 {
  264. r.T_VerifyTemplate_id = T_VerifyTemplate_id
  265. clos = append(clos, "T_VerifyTemplate_id")
  266. }
  267. if len(T_deadline) > 0 {
  268. r.T_deadline = T_deadline
  269. clos = append(clos, "T_deadline")
  270. }
  271. if len(T_scheme) > 0 {
  272. r.T_scheme = T_scheme
  273. clos = append(clos, "T_scheme")
  274. }
  275. if len(T_collection) > 0 {
  276. r.T_collection = T_collection
  277. clos = append(clos, "T_collection")
  278. }
  279. if len(T_reporting) > 0 {
  280. r.T_reporting = T_reporting
  281. clos = append(clos, "T_reporting")
  282. }
  283. if len(T_delivery) > 0 {
  284. r.T_delivery = T_delivery
  285. clos = append(clos, "T_delivery")
  286. }
  287. if len(T_doc1) > 0 {
  288. r.T_doc1 = T_doc1
  289. clos = append(clos, "T_doc1")
  290. }
  291. // 验证报告内容T_pdf1 ,上传后将 当前任务 实施方案 标志 为 1
  292. if len(T_pdf1) > 0 {
  293. r.T_pdf1 = T_pdf1
  294. clos = append(clos, "T_pdf1")
  295. r.T_scheme_state = 1
  296. clos = append(clos, "T_scheme_state")
  297. }
  298. if len(T_doc2) > 0 {
  299. r.T_doc2 = T_doc2
  300. clos = append(clos, "T_doc2")
  301. }
  302. // 验证报告内容T_pdf2 ,上传后将 当前任务 报告编写 标志 为 1
  303. if len(T_pdf2) > 0 {
  304. r.T_pdf2 = T_pdf2
  305. clos = append(clos, "T_pdf2")
  306. r.T_reporting_state = 1
  307. clos = append(clos, "T_reporting_state")
  308. }
  309. if len(T_doc3) > 0 {
  310. r.T_doc3 = T_doc3
  311. clos = append(clos, "T_doc3")
  312. }
  313. if len(T_pdf3) > 0 {
  314. r.T_pdf3 = T_pdf3
  315. clos = append(clos, "T_pdf3")
  316. }
  317. // .......
  318. // "T_name", "T_Show", "T_VerifyTemplate_id", "T_deadline",
  319. // "T_collection", "T_reporting", "T_delivery",
  320. // "T_collection_state", "T_reporting_state", "T_delivery_state",
  321. // "T_doc1", "T_pdf1", "T_doc2", "T_pdf2", "T_doc3", "T_pdf3"
  322. if !Task.Update_Task(r, clos...) {
  323. c.Data["json"] = lib.JSONS{Code: 202, Msg: "修改失败!"}
  324. c.ServeJSON()
  325. return
  326. }
  327. // 添加任务操作日志
  328. Task.Add_TaskLogs_T(User_r.T_uuid, T_task_id, "任务管理", "修改", r)
  329. System.Add_UserLogs_T(User_r.T_uuid, "任务管理", "修改", r)
  330. c.Data["json"] = lib.JSONS{Code: 200, Msg: "ok!"}
  331. c.ServeJSON()
  332. return
  333. }
  334. // 删除-
  335. func (c *TaskController) Del() {
  336. // 验证登录 User_is, User_r
  337. User_r, User_is := Account.Verification_Admin(c.Ctx.GetCookie("User_tokey"), c.GetString("User_tokey"))
  338. if !User_is {
  339. c.Data["json"] = lib.JSONS{Code: 201, Msg: "请重新登录!"}
  340. c.ServeJSON()
  341. return
  342. }
  343. T_task_id := c.GetString("T_task_id")
  344. if r, is := Task.Read_Task(T_task_id); is {
  345. if !Task.Delete_Task(r) {
  346. c.Data["json"] = lib.JSONS{Code: 202, Msg: "删除失败!"}
  347. c.ServeJSON()
  348. return
  349. }
  350. // 添加任务操作日志
  351. Task.Add_TaskLogs_T(User_r.T_uuid, T_task_id, "任务管理", "删除", r)
  352. System.Add_UserLogs_T(User_r.T_uuid, "任务管理", "删除", r)
  353. c.Data["json"] = lib.JSONS{Code: 200, Msg: "ok!"}
  354. c.ServeJSON()
  355. return
  356. }
  357. c.Data["json"] = lib.JSONS{Code: 202, Msg: "Id 错误!"}
  358. c.ServeJSON()
  359. return
  360. }
  361. // 列表 -
  362. func (c *TaskController) Logs_List() {
  363. // 验证登录 User_is, User_r
  364. _, User_is := Account.Verification_Admin(c.Ctx.GetCookie("User_tokey"), c.GetString("User_tokey"))
  365. if !User_is {
  366. c.Data["json"] = lib.JSONS{Code: 201, Msg: "请重新登录!"}
  367. c.ServeJSON()
  368. return
  369. }
  370. var r_jsons lib.R_JSONS
  371. page, _ := c.GetInt("page")
  372. if page < 1 {
  373. page = 1
  374. }
  375. page_z, _ := c.GetInt("page_z")
  376. if page_z < 1 {
  377. page_z = conf.Page_size
  378. }
  379. T_task_id := c.GetString("T_task_id")
  380. AdminMap := Account.AdminListToMap(Account.Read_Admin_List_ALL_1())
  381. var cnt int
  382. List, cnt := Task.Read_TaskLogs_List(T_task_id, AdminMap, page, page_z)
  383. page_size := math.Ceil(float64(cnt) / float64(page_z))
  384. r_jsons.List = List
  385. r_jsons.Page = page
  386. r_jsons.Page_size = int(page_size)
  387. r_jsons.Pages = lib.Func_page(int64(page), int64(page_size))
  388. r_jsons.Num = cnt
  389. c.Data["json"] = lib.JSONS{Code: 200, Msg: "ok!", Data: r_jsons}
  390. c.ServeJSON()
  391. return
  392. }