Purchase.go 7.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322
  1. package controllers
  2. import (
  3. "ERP_storage/Nats/NatsServer"
  4. "ERP_storage/conf"
  5. "ERP_storage/models/Account"
  6. "ERP_storage/models/Purchase"
  7. "fmt"
  8. "github.com/beego/beego/v2/adapter/orm"
  9. beego "github.com/beego/beego/v2/server/web"
  10. userlibs "gogs.baozhida.cn/zoie/ERP_libs/User"
  11. "gogs.baozhida.cn/zoie/ERP_libs/lib"
  12. "math"
  13. )
  14. type PurchaseController struct {
  15. beego.Controller
  16. User userlibs.User
  17. }
  18. func (c *PurchaseController) Prepare() {
  19. c.User = *Account.User_r
  20. }
  21. // 管理员
  22. func (c *PurchaseController) Purchase_List() {
  23. // 分页参数 初始化
  24. page, _ := c.GetInt("page")
  25. if page < 1 {
  26. page = 1
  27. }
  28. page_z, _ := c.GetInt("page_z")
  29. if page_z < 1 {
  30. page_z = conf.Page_size
  31. }
  32. T_uuid := c.GetString("T_uuid")
  33. T_dept := c.GetString("T_dept")
  34. T_start_date := c.GetString("T_start_date") // 开始时间
  35. T_end_date := c.GetString("T_end_date") // 结束时间
  36. T_state, _ := c.GetInt("T_state")
  37. userList, _ := NatsServer.Read_User_List_All()
  38. Account.Read_User_All_Map(userList)
  39. PurchaseDao := Purchase.NewPurchase(orm.NewOrm())
  40. R_List, R_cnt := PurchaseDao.Read_Purchase_List(T_dept, T_uuid, "", T_state, true, T_start_date, T_end_date, page, page_z)
  41. var r_jsons lib.R_JSONS
  42. r_jsons.Num = R_cnt
  43. r_jsons.Data = R_List
  44. r_jsons.Page = page
  45. r_jsons.Page_size = int(math.Ceil(float64(R_cnt) / float64(page_z)))
  46. c.Data["json"] = lib.JSONS{Code: 200, Msg: "ok!", Data: r_jsons}
  47. c.ServeJSON()
  48. return
  49. }
  50. func (c *PurchaseController) Purchase_Audit_List() {
  51. // 分页参数 初始化
  52. page, _ := c.GetInt("page")
  53. if page < 1 {
  54. page = 1
  55. }
  56. page_z, _ := c.GetInt("page_z")
  57. if page_z < 1 {
  58. page_z = conf.Page_size
  59. }
  60. userList, _ := NatsServer.Read_User_List_All()
  61. Account.Read_User_All_Map(userList)
  62. PurchaseDao := Purchase.NewPurchase(orm.NewOrm())
  63. R_List, R_cnt := PurchaseDao.Read_Purchase_List("", "", c.User.T_uuid, Purchase.WaitAudit, false, "", "", page, page_z)
  64. var r_jsons lib.R_JSONS
  65. r_jsons.Num = R_cnt
  66. r_jsons.Data = R_List
  67. r_jsons.Page = page
  68. r_jsons.Page_size = int(math.Ceil(float64(R_cnt) / float64(page_z)))
  69. c.Data["json"] = lib.JSONS{Code: 200, Msg: "ok!", Data: r_jsons}
  70. c.ServeJSON()
  71. return
  72. }
  73. // 用户采购列表
  74. func (c *PurchaseController) Purchase_User_List() {
  75. // 分页参数 初始化
  76. page, _ := c.GetInt("page")
  77. if page < 1 {
  78. page = 1
  79. }
  80. page_z, _ := c.GetInt("page_z")
  81. if page_z < 1 {
  82. page_z = conf.Page_size
  83. }
  84. T_start_date := c.GetString("T_start_date") // 开始时间
  85. T_end_date := c.GetString("T_end_date") // 结束时间
  86. T_state, _ := c.GetInt("T_state")
  87. userList, _ := NatsServer.Read_User_List_All()
  88. Account.Read_User_All_Map(userList)
  89. PurchaseDao := Purchase.NewPurchase(orm.NewOrm())
  90. R_List, R_cnt := PurchaseDao.Read_Purchase_List("", c.User.T_uuid, "", T_state, false, T_start_date, T_end_date, page, page_z)
  91. var r_jsons lib.R_JSONS
  92. r_jsons.Num = R_cnt
  93. r_jsons.Data = R_List
  94. r_jsons.Page = page
  95. r_jsons.Page_size = int(math.Ceil(float64(R_cnt) / float64(page_z)))
  96. c.Data["json"] = lib.JSONS{Code: 200, Msg: "ok!", Data: r_jsons}
  97. c.ServeJSON()
  98. return
  99. }
  100. func (c *PurchaseController) Purchase_Get() {
  101. // 查询
  102. T_id, _ := c.GetInt("T_id")
  103. o := orm.NewOrm()
  104. PurchaseDao := Purchase.NewPurchase(o)
  105. purchase, err := PurchaseDao.Read_Purchase_ById(T_id)
  106. if err != nil {
  107. c.Data["json"] = lib.JSONS{Code: 202, Msg: "查询失败!"}
  108. c.ServeJSON()
  109. return
  110. }
  111. userList, _ := NatsServer.Read_User_List_All()
  112. Account.Read_User_All_Map(userList)
  113. c.Data["json"] = lib.JSONS{Code: 200, Msg: "ok!", Data: Purchase.PurchaseToPurchase_Detail(purchase)}
  114. c.ServeJSON()
  115. return
  116. }
  117. func (c *PurchaseController) Purchase_Add() {
  118. T_uuid := c.GetString("T_uuid")
  119. T_date := c.GetString("T_date")
  120. T_remark := c.GetString("T_remark")
  121. T_detail := c.GetString("T_detail")
  122. T_approver := c.GetString("T_approver")
  123. T_dept := c.GetString("T_dept")
  124. var_ := Purchase.Purchase{
  125. T_dept: T_dept,
  126. T_uuid: T_uuid,
  127. T_submit: c.User.T_uuid,
  128. T_date: T_date,
  129. T_remark: T_remark,
  130. T_detail: T_detail,
  131. T_approver: T_approver,
  132. T_State: Purchase.WaitAudit,
  133. }
  134. o := orm.NewOrm()
  135. PurchaseDao := Purchase.NewPurchase(o)
  136. id, err := PurchaseDao.Add_Purchase(var_)
  137. if err != nil {
  138. //o.Rollback()
  139. c.Data["json"] = lib.JSONS{Code: 203, Msg: "添加失败"}
  140. c.ServeJSON()
  141. return
  142. }
  143. NatsServer.AddNews(T_approver, fmt.Sprintf("【采购申请】您有一条%s的采购申请待审批", c.User.T_name), conf.PurchaseAuditUrl)
  144. NatsServer.AddUserLogs(c.User.T_uuid, "采购", "添加", var_)
  145. c.Data["json"] = lib.JSONS{Code: 200, Msg: "ok!", Data: id}
  146. c.ServeJSON()
  147. return
  148. }
  149. func (c *PurchaseController) Purchase_Approval() {
  150. T_id, _ := c.GetInt("T_id")
  151. T_State, _ := c.GetInt("T_State")
  152. o := orm.NewOrm()
  153. PurchaseDao := Purchase.NewPurchase(o)
  154. purchase, err := PurchaseDao.Read_Purchase_ById(T_id)
  155. if err != nil {
  156. c.Data["json"] = lib.JSONS{Code: 202, Msg: "T_id Err!"}
  157. c.ServeJSON()
  158. return
  159. }
  160. if purchase.T_State == T_State {
  161. c.Data["json"] = lib.JSONS{Code: 200, Msg: "ok!", Data: T_id}
  162. c.ServeJSON()
  163. return
  164. }
  165. // 1 待采购 2 已采购
  166. purchase.T_State = T_State
  167. _, err = PurchaseDao.Update_Purchase(purchase, "T_State")
  168. if err != nil {
  169. c.Data["json"] = lib.JSONS{Code: 203, Msg: "添加失败"}
  170. c.ServeJSON()
  171. return
  172. }
  173. if T_State == Purchase.PurchaseCompleted {
  174. NatsServer.AddNews(purchase.T_uuid, "【采购审核】您提交的采购申请已采购", conf.MyPurchaseNewsUrl)
  175. }
  176. NatsServer.AddUserLogs(c.User.T_uuid, "采购申请", "采购", purchase)
  177. c.Data["json"] = lib.JSONS{Code: 200, Msg: "ok!", Data: T_id}
  178. c.ServeJSON()
  179. return
  180. }
  181. func (c *PurchaseController) Purchase_Edit() {
  182. T_id, _ := c.GetInt("T_id")
  183. T_uuid := c.GetString("T_uuid")
  184. T_date := c.GetString("T_date")
  185. T_remark := c.GetString("T_remark")
  186. T_State, _ := c.GetInt("T_State")
  187. T_detail := c.GetString("T_detail")
  188. T_approver := c.GetString("T_approver")
  189. T_dept := c.GetString("T_dept")
  190. o := orm.NewOrm()
  191. PurchaseDao := Purchase.NewPurchase(o)
  192. purchase, err := PurchaseDao.Read_Purchase_ById(T_id)
  193. if err != nil {
  194. //o.Rollback()
  195. c.Data["json"] = lib.JSONS{Code: 202, Msg: "T_id Err!"}
  196. c.ServeJSON()
  197. return
  198. }
  199. clos := []string{}
  200. if len(T_uuid) > 0 {
  201. purchase.T_uuid = T_uuid
  202. clos = append(clos, "T_uuid")
  203. }
  204. if len(T_date) > 0 {
  205. purchase.T_date = T_date
  206. clos = append(clos, "T_date")
  207. }
  208. if len(T_dept) > 0 {
  209. purchase.T_dept = T_dept
  210. clos = append(clos, "T_dept")
  211. }
  212. if len(T_remark) > 0 {
  213. purchase.T_remark = T_remark
  214. clos = append(clos, "T_remark")
  215. }
  216. if len(T_detail) > 0 {
  217. purchase.T_detail = T_detail
  218. clos = append(clos, "T_detail")
  219. }
  220. if len(T_approver) > 0 {
  221. purchase.T_approver = T_approver
  222. clos = append(clos, "T_approver")
  223. }
  224. if T_State > 0 {
  225. purchase.T_State = T_State
  226. clos = append(clos, "T_State")
  227. }
  228. _, err = PurchaseDao.Update_Purchase(purchase, clos...)
  229. if err != nil {
  230. c.Data["json"] = lib.JSONS{Code: 203, Msg: "修改失败"}
  231. c.ServeJSON()
  232. return
  233. }
  234. NatsServer.AddUserLogs(c.User.T_uuid, "采购", "修改", purchase)
  235. c.Data["json"] = lib.JSONS{Code: 200, Msg: "ok!", Data: purchase.Id}
  236. c.ServeJSON()
  237. return
  238. }
  239. func (c *PurchaseController) Purchase_Del() {
  240. T_id, _ := c.GetInt("T_id")
  241. o := orm.NewOrm()
  242. PurchaseDao := Purchase.NewPurchase(o)
  243. purchase, err := PurchaseDao.Read_Purchase_ById(T_id)
  244. if err != nil {
  245. //o.Rollback()
  246. c.Data["json"] = lib.JSONS{Code: 202, Msg: "T_id Err!"}
  247. c.ServeJSON()
  248. return
  249. }
  250. if purchase.T_State == 2 {
  251. c.Data["json"] = lib.JSONS{Code: 202, Msg: "已采购,禁止删除!"}
  252. c.ServeJSON()
  253. return
  254. }
  255. _, err = PurchaseDao.Delete_Purchase(purchase)
  256. if err != nil {
  257. c.Data["json"] = lib.JSONS{Code: 202, Msg: "删除失败!"}
  258. c.ServeJSON()
  259. return
  260. }
  261. NatsServer.AddUserLogs(c.User.T_uuid, "采购", "删除", purchase.Id)
  262. c.Data["json"] = lib.JSONS{Code: 200, Msg: "ok!", Data: purchase.Id}
  263. c.ServeJSON()
  264. return
  265. }