Task.go 11 KB

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