RepairWorkOrder.go 12 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421
  1. package controllers
  2. import (
  3. "ERP_storage/Nats/NatsServer"
  4. "ERP_storage/conf"
  5. "ERP_storage/models/Account"
  6. "ERP_storage/models/RepairWorkOrder"
  7. beego "github.com/beego/beego/v2/server/web"
  8. userlibs "gogs.baozhida.cn/zoie/ERP_libs/User"
  9. "gogs.baozhida.cn/zoie/ERP_libs/lib"
  10. "math"
  11. "strconv"
  12. "time"
  13. )
  14. type RepairWorkOrderController struct {
  15. beego.Controller
  16. User userlibs.User
  17. }
  18. func (c *RepairWorkOrderController) Prepare() {
  19. c.User = *Account.User_r
  20. }
  21. func (c *RepairWorkOrderController) RepairWorkOrder_List() {
  22. // 分页参数 初始化
  23. page, _ := c.GetInt("page")
  24. if page < 1 {
  25. page = 1
  26. }
  27. page_z, _ := c.GetInt("page_z")
  28. if page_z < 1 {
  29. page_z = conf.Page_size
  30. }
  31. // 查询
  32. T_name := c.GetString("T_name")
  33. T_state, _ := c.GetInt("T_state")
  34. R_List, R_cnt := RepairWorkOrder.Read_RepairWorkOrder_List(T_state, T_name, page, page_z)
  35. var r_jsons lib.R_JSONS
  36. r_jsons.Num = R_cnt
  37. r_jsons.Data = R_List
  38. r_jsons.Page = page
  39. r_jsons.Page_size = int(math.Ceil(float64(R_cnt) / float64(page_z)))
  40. c.Data["json"] = lib.JSONS{Code: 200, Msg: "ok!", Data: r_jsons}
  41. c.ServeJSON()
  42. return
  43. }
  44. func (c *RepairWorkOrderController) RepairWorkOrder_User_List() {
  45. // 分页参数 初始化
  46. page, _ := c.GetInt("page")
  47. if page < 1 {
  48. page = 1
  49. }
  50. page_z, _ := c.GetInt("page_z")
  51. if page_z < 1 {
  52. page_z = conf.Page_size
  53. }
  54. // 查询
  55. T_name := c.GetString("T_name")
  56. T_state, _ := c.GetInt("T_state")
  57. R_List, R_cnt := RepairWorkOrder.Read_RepairWorkOrder_user_List(c.User.T_uuid, T_state, T_name, page, page_z)
  58. var r_jsons lib.R_JSONS
  59. r_jsons.Num = R_cnt
  60. r_jsons.Data = R_List
  61. r_jsons.Page = page
  62. r_jsons.Page_size = int(math.Ceil(float64(R_cnt) / float64(page_z)))
  63. c.Data["json"] = lib.JSONS{Code: 200, Msg: "ok!", Data: r_jsons}
  64. c.ServeJSON()
  65. return
  66. }
  67. // 下发工单
  68. func (c *RepairWorkOrderController) RepairWorkOrder_Add() {
  69. T_product := c.GetString("T_product")
  70. T_repair_num, _ := c.GetInt("T_repair_num")
  71. T_model := c.GetString("T_model")
  72. T_source := c.GetString("T_source") // 设备来源
  73. T_repair_reason := c.GetString("T_repair_reason") // 维修原因
  74. T_receive := c.GetString("T_receive") //接收人
  75. T_picture := c.GetString("T_picture") //图片
  76. var_ := RepairWorkOrder.RepairWorkOrder{
  77. T_delivery: c.User.T_uuid,
  78. T_product: T_product,
  79. T_repair_num: T_repair_num,
  80. T_model: T_model,
  81. T_source: T_source,
  82. T_repair_reason: T_repair_reason,
  83. T_receive: T_receive,
  84. T_picture: T_picture,
  85. T_state: 1,
  86. T_order_date: time.Now().Format("2006-01-02 15:04:05"),
  87. }
  88. Id, err := RepairWorkOrder.Add_RepairWorkOrder(var_)
  89. if err != nil {
  90. c.Data["json"] = lib.JSONS{Code: 203, Msg: "添加失败"}
  91. c.ServeJSON()
  92. return
  93. }
  94. NatsServer.AddUserLogs(c.User.T_uuid, "维修工单", "添加", var_)
  95. c.Data["json"] = lib.JSONS{Code: 200, Msg: "ok!", Data: Id}
  96. c.ServeJSON()
  97. return
  98. }
  99. func (c *RepairWorkOrderController) RepairWorkOrder_Edit() {
  100. T_id, _ := c.GetInt("T_id")
  101. T_product := c.GetString("T_product")
  102. T_repair_num, _ := c.GetInt("T_repair_num")
  103. T_model := c.GetString("T_model")
  104. T_source := c.GetString("T_source") // 设备来源
  105. T_repair_reason := c.GetString("T_repair_reason") // 维修原因
  106. T_receive := c.GetString("T_receive") //接收人
  107. T_picture := c.GetString("T_picture")
  108. T_return_product := c.GetString("T_return_product")
  109. T_return_model := c.GetString("T_return_model")
  110. T_return_num, _ := c.GetInt("T_return_num")
  111. T_staging_num, _ := c.GetInt("T_staging_num")
  112. T_scrap_num, _ := c.GetInt("T_scrap_num")
  113. T_malfunction_reason := c.GetString("T_malfunction_reason")
  114. T_remark := c.GetString("T_remark")
  115. T_sn := c.GetString("T_sn")
  116. T_state, _ := c.GetInt("T_state")
  117. RepairWorkOrder_r, err := RepairWorkOrder.Read_RepairWorkOrder_ById(T_id)
  118. if err != nil {
  119. c.Data["json"] = lib.JSONS{Code: 203, Msg: "T_id Err!"}
  120. c.ServeJSON()
  121. return
  122. }
  123. var cols []string
  124. if T_state > 0 {
  125. RepairWorkOrder_r.T_state = T_state
  126. cols = append(cols, "T_state")
  127. }
  128. if len(T_product) > 0 {
  129. RepairWorkOrder_r.T_product = T_product
  130. cols = append(cols, "T_product")
  131. }
  132. if T_repair_num > 0 {
  133. RepairWorkOrder_r.T_repair_num = T_repair_num
  134. cols = append(cols, "T_repair_num")
  135. }
  136. if len(T_model) > 0 {
  137. RepairWorkOrder_r.T_model = T_model
  138. cols = append(cols, "T_model")
  139. }
  140. if len(T_source) > 0 {
  141. RepairWorkOrder_r.T_source = T_source
  142. cols = append(cols, "T_source")
  143. }
  144. if len(T_repair_reason) > 0 {
  145. RepairWorkOrder_r.T_repair_reason = T_repair_reason
  146. cols = append(cols, "T_repair_reason")
  147. }
  148. if len(T_receive) > 0 {
  149. RepairWorkOrder_r.T_receive = T_receive
  150. cols = append(cols, "T_receive")
  151. }
  152. if len(T_picture) > 0 {
  153. RepairWorkOrder_r.T_picture = T_picture
  154. cols = append(cols, "T_picture")
  155. }
  156. if len(T_return_product) > 0 {
  157. RepairWorkOrder_r.T_return_product = T_return_product
  158. cols = append(cols, "T_return_product")
  159. }
  160. if len(T_return_model) > 0 {
  161. RepairWorkOrder_r.T_return_model = T_return_model
  162. cols = append(cols, "T_return_model")
  163. }
  164. if T_return_num > 0 {
  165. RepairWorkOrder_r.T_return_num = T_return_num
  166. cols = append(cols, "T_return_num")
  167. }
  168. if T_staging_num > 0 {
  169. RepairWorkOrder_r.T_staging_num = T_staging_num
  170. cols = append(cols, "T_staging_num")
  171. }
  172. if T_scrap_num > 0 {
  173. RepairWorkOrder_r.T_scrap_num = T_scrap_num
  174. cols = append(cols, "T_scrap_num")
  175. }
  176. if len(T_malfunction_reason) > 0 {
  177. RepairWorkOrder_r.T_malfunction_reason = T_malfunction_reason
  178. cols = append(cols, "T_malfunction_reason")
  179. }
  180. if len(T_remark) > 0 {
  181. RepairWorkOrder_r.T_remark = T_remark
  182. cols = append(cols, "T_remark")
  183. }
  184. if len(T_sn) > 0 {
  185. RepairWorkOrder_r.T_sn = T_sn
  186. cols = append(cols, "T_sn")
  187. }
  188. if err = RepairWorkOrder.Update_RepairWorkOrder(RepairWorkOrder_r, cols...); err != nil {
  189. c.Data["json"] = lib.JSONS{Code: 203, Msg: "修改失败"}
  190. c.ServeJSON()
  191. return
  192. }
  193. NatsServer.AddUserLogs(c.User.T_uuid, "维修工单", "修改", RepairWorkOrder_r)
  194. c.Data["json"] = lib.JSONS{Code: 200, Msg: "ok!"}
  195. c.ServeJSON()
  196. return
  197. }
  198. func (c *RepairWorkOrderController) RepairWorkOrder_Del() {
  199. T_id, _ := c.GetInt("T_id")
  200. RepairWorkOrder_r, err := RepairWorkOrder.Read_RepairWorkOrder_ById(T_id)
  201. if err != nil {
  202. c.Data["json"] = lib.JSONS{Code: 203, Msg: "T_id Err!"}
  203. c.ServeJSON()
  204. return
  205. }
  206. if err = RepairWorkOrder.Delete_RepairWorkOrder(RepairWorkOrder_r); err != nil {
  207. c.Data["json"] = lib.JSONS{Code: 202, Msg: "删除失败!"}
  208. c.ServeJSON()
  209. return
  210. }
  211. NatsServer.AddUserLogs(c.User.T_uuid, "维修工单", "删除", strconv.Itoa(T_id))
  212. c.Data["json"] = lib.JSONS{Code: 200, Msg: "ok!"}
  213. c.ServeJSON()
  214. return
  215. }
  216. // 归还
  217. func (c *RepairWorkOrderController) RepairWorkOrder_Return() {
  218. T_id, _ := c.GetInt("T_id")
  219. T_return_product := c.GetString("T_return_product")
  220. T_return_model := c.GetString("T_return_model")
  221. T_return_num, _ := c.GetInt("T_return_num")
  222. T_staging_num, _ := c.GetInt("T_staging_num")
  223. T_scrap_num, _ := c.GetInt("T_scrap_num")
  224. T_malfunction_reason := c.GetString("T_malfunction_reason")
  225. T_remark := c.GetString("T_remark")
  226. T_sn := c.GetString("T_sn")
  227. RepairWorkOrder_r, err := RepairWorkOrder.Read_RepairWorkOrder_ById(T_id)
  228. if err != nil {
  229. c.Data["json"] = lib.JSONS{Code: 203, Msg: "T_id Err!"}
  230. c.ServeJSON()
  231. return
  232. }
  233. var cols []string
  234. RepairWorkOrder_r.T_state = RepairWorkOrder.RepairWorkOrderReturn
  235. cols = append(cols, "T_state")
  236. RepairWorkOrder_r.T_return = c.User.T_uuid
  237. cols = append(cols, "T_return")
  238. RepairWorkOrder_r.T_return_date = time.Now().Format("2006-01-02 15:04:05")
  239. if len(T_return_product) > 0 {
  240. RepairWorkOrder_r.T_return_product = T_return_product
  241. cols = append(cols, "T_return_product")
  242. }
  243. if len(T_return_model) > 0 {
  244. RepairWorkOrder_r.T_return_model = T_return_model
  245. cols = append(cols, "T_return_model")
  246. }
  247. if T_return_num > 0 {
  248. RepairWorkOrder_r.T_return_num = T_return_num
  249. cols = append(cols, "T_return_num")
  250. }
  251. if T_staging_num > 0 {
  252. RepairWorkOrder_r.T_staging_num = T_staging_num
  253. cols = append(cols, "T_staging_num")
  254. }
  255. if T_scrap_num > 0 {
  256. RepairWorkOrder_r.T_scrap_num = T_scrap_num
  257. cols = append(cols, "T_scrap_num")
  258. }
  259. if len(T_malfunction_reason) > 0 {
  260. RepairWorkOrder_r.T_malfunction_reason = T_malfunction_reason
  261. cols = append(cols, "T_malfunction_reason")
  262. }
  263. if len(T_remark) > 0 {
  264. RepairWorkOrder_r.T_remark = T_remark
  265. cols = append(cols, "T_remark")
  266. }
  267. if len(T_sn) > 0 {
  268. RepairWorkOrder_r.T_sn = T_sn
  269. cols = append(cols, "T_sn")
  270. }
  271. if err = RepairWorkOrder.Update_RepairWorkOrder(RepairWorkOrder_r, cols...); err != nil {
  272. c.Data["json"] = lib.JSONS{Code: 203, Msg: "修改失败"}
  273. c.ServeJSON()
  274. return
  275. }
  276. NatsServer.AddUserLogs(c.User.T_uuid, "维修工单", "修改", RepairWorkOrder_r)
  277. c.Data["json"] = lib.JSONS{Code: 200, Msg: "ok!"}
  278. c.ServeJSON()
  279. return
  280. }
  281. // 转派
  282. func (c *RepairWorkOrderController) RepairWorkOrder_Redeploy() {
  283. T_id, _ := c.GetInt("T_id")
  284. T_receive := c.GetString("T_receive")
  285. RepairWorkOrder_r, err := RepairWorkOrder.Read_RepairWorkOrder_ById(T_id)
  286. if err != nil {
  287. c.Data["json"] = lib.JSONS{Code: 203, Msg: "T_id Err!"}
  288. c.ServeJSON()
  289. return
  290. }
  291. var cols []string
  292. if RepairWorkOrder_r.T_state != RepairWorkOrder.RepairWorkOrderOrder && RepairWorkOrder_r.T_state != RepairWorkOrder.RepairWorkOrderRepair {
  293. c.Data["json"] = lib.JSONS{Code: 203, Msg: "该状态不可转派!"}
  294. c.ServeJSON()
  295. return
  296. }
  297. if len(T_receive) > 0 {
  298. RepairWorkOrder_r.T_receive = T_receive
  299. cols = append(cols, "T_receive")
  300. }
  301. if err = RepairWorkOrder.Update_RepairWorkOrder(RepairWorkOrder_r, cols...); err != nil {
  302. c.Data["json"] = lib.JSONS{Code: 203, Msg: "修改失败"}
  303. c.ServeJSON()
  304. return
  305. }
  306. NatsServer.AddUserLogs(c.User.T_uuid, "维修工单", "转派", RepairWorkOrder_r)
  307. c.Data["json"] = lib.JSONS{Code: 200, Msg: "ok!"}
  308. c.ServeJSON()
  309. return
  310. }
  311. // 开始维修
  312. func (c *RepairWorkOrderController) RepairWorkOrder_Start_Repair() {
  313. T_id, _ := c.GetInt("T_id")
  314. RepairWorkOrder_r, err := RepairWorkOrder.Read_RepairWorkOrder_ById(T_id)
  315. if err != nil {
  316. c.Data["json"] = lib.JSONS{Code: 203, Msg: "T_id Err!"}
  317. c.ServeJSON()
  318. return
  319. }
  320. if RepairWorkOrder_r.T_state != 1 && RepairWorkOrder_r.T_state != 2 {
  321. c.Data["json"] = lib.JSONS{Code: 203, Msg: "该状态不可开始维修!"}
  322. c.ServeJSON()
  323. return
  324. }
  325. RepairWorkOrder_r.T_repair_date = time.Now().Format("2006-01-02 15:04:05")
  326. RepairWorkOrder_r.T_state = RepairWorkOrder.RepairWorkOrderRepair
  327. if err = RepairWorkOrder.Update_RepairWorkOrder(RepairWorkOrder_r, "T_repair_date", "T_state"); err != nil {
  328. c.Data["json"] = lib.JSONS{Code: 203, Msg: "修改失败"}
  329. c.ServeJSON()
  330. return
  331. }
  332. NatsServer.AddUserLogs(c.User.T_uuid, "维修工单", "修改", RepairWorkOrder_r)
  333. c.Data["json"] = lib.JSONS{Code: 200, Msg: "ok!"}
  334. c.ServeJSON()
  335. return
  336. }
  337. func (c *RepairWorkOrderController) RepairWorkOrder_Finish() {
  338. T_id, _ := c.GetInt("T_id")
  339. RepairWorkOrder_r, err := RepairWorkOrder.Read_RepairWorkOrder_ById(T_id)
  340. if err != nil {
  341. c.Data["json"] = lib.JSONS{Code: 203, Msg: "T_id Err!"}
  342. c.ServeJSON()
  343. return
  344. }
  345. if RepairWorkOrder_r.T_state == RepairWorkOrder.RepairWorkOrderFinish {
  346. c.Data["json"] = lib.JSONS{Code: 200, Msg: "ok!"}
  347. c.ServeJSON()
  348. return
  349. }
  350. if RepairWorkOrder_r.T_state != RepairWorkOrder.RepairWorkOrderOrder &&
  351. RepairWorkOrder_r.T_state != RepairWorkOrder.RepairWorkOrderRepair {
  352. c.Data["json"] = lib.JSONS{Code: 203, Msg: "该状态不可提交完结!"}
  353. c.ServeJSON()
  354. return
  355. }
  356. RepairWorkOrder_r.T_finish_date = time.Now().Format("2006-01-02 15:04:05")
  357. RepairWorkOrder_r.T_state = RepairWorkOrder.RepairWorkOrderFinish
  358. if err = RepairWorkOrder.Update_RepairWorkOrder(RepairWorkOrder_r, "T_finish_date", "T_state"); err != nil {
  359. c.Data["json"] = lib.JSONS{Code: 203, Msg: "修改失败"}
  360. c.ServeJSON()
  361. return
  362. }
  363. NatsServer.AddUserLogs(c.User.T_uuid, "维修工单", "修改", RepairWorkOrder_r)
  364. c.Data["json"] = lib.JSONS{Code: 200, Msg: "ok!"}
  365. c.ServeJSON()
  366. return
  367. }