Task.go 11 KB

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