Purchase.go 6.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285
  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_start_date := c.GetString("T_start_date") // 开始时间
  34. T_end_date := c.GetString("T_end_date") // 结束时间
  35. T_state, _ := c.GetInt("T_state")
  36. userList, _ := NatsServer.Read_User_List_All()
  37. Account.Read_User_All_Map(userList)
  38. PurchaseDao := Purchase.NewPurchase(orm.NewOrm())
  39. R_List, R_cnt := PurchaseDao.Read_Purchase_List(T_uuid, "", T_state, T_start_date, T_end_date, page, page_z)
  40. var r_jsons lib.R_JSONS
  41. r_jsons.Num = R_cnt
  42. r_jsons.Data = R_List
  43. r_jsons.Page = page
  44. r_jsons.Page_size = int(math.Ceil(float64(R_cnt) / float64(page_z)))
  45. c.Data["json"] = lib.JSONS{Code: 200, Msg: "ok!", Data: r_jsons}
  46. c.ServeJSON()
  47. return
  48. }
  49. // 用户采购列表
  50. func (c *PurchaseController) Purchase_User_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. T_start_date := c.GetString("T_start_date") // 开始时间
  61. T_end_date := c.GetString("T_end_date") // 结束时间
  62. T_state, _ := c.GetInt("T_state")
  63. userList, _ := NatsServer.Read_User_List_All()
  64. Account.Read_User_All_Map(userList)
  65. PurchaseDao := Purchase.NewPurchase(orm.NewOrm())
  66. R_List, R_cnt := PurchaseDao.Read_Purchase_List(c.User.T_uuid, "", T_state, T_start_date, T_end_date, page, page_z)
  67. var r_jsons lib.R_JSONS
  68. r_jsons.Num = R_cnt
  69. r_jsons.Data = R_List
  70. r_jsons.Page = page
  71. r_jsons.Page_size = int(math.Ceil(float64(R_cnt) / float64(page_z)))
  72. c.Data["json"] = lib.JSONS{Code: 200, Msg: "ok!", Data: r_jsons}
  73. c.ServeJSON()
  74. return
  75. }
  76. func (c *PurchaseController) Purchase_Get() {
  77. // 查询
  78. T_id, _ := c.GetInt("T_id")
  79. o := orm.NewOrm()
  80. PurchaseDao := Purchase.NewPurchase(o)
  81. purchase, err := PurchaseDao.Read_Purchase_ById(T_id)
  82. if err != nil {
  83. c.Data["json"] = lib.JSONS{Code: 202, Msg: "查询失败!"}
  84. c.ServeJSON()
  85. return
  86. }
  87. userList, _ := NatsServer.Read_User_List_All()
  88. Account.Read_User_All_Map(userList)
  89. c.Data["json"] = lib.JSONS{Code: 200, Msg: "ok!", Data: Purchase.PurchaseToPurchase_Detail(purchase)}
  90. c.ServeJSON()
  91. return
  92. }
  93. func (c *PurchaseController) Purchase_Add() {
  94. T_uuid := c.GetString("T_uuid")
  95. T_date := c.GetString("T_date")
  96. T_remark := c.GetString("T_remark")
  97. T_detail := c.GetString("T_detail")
  98. T_approver := c.GetString("T_approver")
  99. var_ := Purchase.Purchase{
  100. T_uuid: T_uuid,
  101. T_submit: c.User.T_uuid,
  102. T_date: T_date,
  103. T_remark: T_remark,
  104. T_detail: T_detail,
  105. T_approver: T_approver,
  106. T_State: Purchase.WaitPurchase,
  107. }
  108. o := orm.NewOrm()
  109. PurchaseDao := Purchase.NewPurchase(o)
  110. id, err := PurchaseDao.Add_Purchase(var_)
  111. if err != nil {
  112. //o.Rollback()
  113. c.Data["json"] = lib.JSONS{Code: 203, Msg: "添加失败"}
  114. c.ServeJSON()
  115. return
  116. }
  117. NatsServer.AddNews(T_approver, fmt.Sprintf("【采购申请】您有一条%s的采购申请待审批", c.User.T_name), conf.PurchaseAuditUrl)
  118. NatsServer.AddUserLogs(c.User.T_uuid, "采购", "添加", var_)
  119. c.Data["json"] = lib.JSONS{Code: 200, Msg: "ok!", Data: id}
  120. c.ServeJSON()
  121. return
  122. }
  123. func (c *PurchaseController) Purchase_Approval() {
  124. T_id, _ := c.GetInt("T_id")
  125. T_State, _ := c.GetInt("T_State")
  126. o := orm.NewOrm()
  127. PurchaseDao := Purchase.NewPurchase(o)
  128. purchase, err := PurchaseDao.Read_Purchase_ById(T_id)
  129. if err != nil {
  130. c.Data["json"] = lib.JSONS{Code: 202, Msg: "T_id Err!"}
  131. c.ServeJSON()
  132. return
  133. }
  134. if purchase.T_State == T_State {
  135. c.Data["json"] = lib.JSONS{Code: 200, Msg: "ok!", Data: T_id}
  136. c.ServeJSON()
  137. return
  138. }
  139. // 1 待采购 2 已采购
  140. purchase.T_State = T_State
  141. _, err = PurchaseDao.Update_Purchase(purchase, "T_State")
  142. if err != nil {
  143. c.Data["json"] = lib.JSONS{Code: 203, Msg: "添加失败"}
  144. c.ServeJSON()
  145. return
  146. }
  147. if T_State == Purchase.PurchaseCompleted {
  148. NatsServer.AddNews(purchase.T_uuid, "【采购审核】您提交的采购申请已采购", conf.MyPurchaseNewsUrl)
  149. }
  150. NatsServer.AddUserLogs(c.User.T_uuid, "采购申请", "采购", purchase)
  151. c.Data["json"] = lib.JSONS{Code: 200, Msg: "ok!", Data: T_id}
  152. c.ServeJSON()
  153. return
  154. }
  155. func (c *PurchaseController) Purchase_Edit() {
  156. T_id, _ := c.GetInt("T_id")
  157. T_uuid := c.GetString("T_uuid")
  158. T_date := c.GetString("T_date")
  159. T_remark := c.GetString("T_remark")
  160. T_State, _ := c.GetInt("T_State")
  161. T_detail := c.GetString("T_detail")
  162. T_approver := c.GetString("T_approver")
  163. o := orm.NewOrm()
  164. PurchaseDao := Purchase.NewPurchase(o)
  165. purchase, err := PurchaseDao.Read_Purchase_ById(T_id)
  166. if err != nil {
  167. //o.Rollback()
  168. c.Data["json"] = lib.JSONS{Code: 202, Msg: "T_id Err!"}
  169. c.ServeJSON()
  170. return
  171. }
  172. clos := []string{}
  173. if len(T_uuid) > 0 {
  174. purchase.T_uuid = T_uuid
  175. clos = append(clos, "T_uuid")
  176. }
  177. if len(T_date) > 0 {
  178. purchase.T_date = T_date
  179. clos = append(clos, "T_date")
  180. }
  181. if len(T_remark) > 0 {
  182. purchase.T_remark = T_remark
  183. clos = append(clos, "T_remark")
  184. }
  185. if len(T_detail) > 0 {
  186. purchase.T_detail = T_detail
  187. clos = append(clos, "T_detail")
  188. }
  189. if len(T_approver) > 0 {
  190. purchase.T_approver = T_approver
  191. clos = append(clos, "T_approver")
  192. }
  193. if T_State > 0 {
  194. purchase.T_State = T_State
  195. clos = append(clos, "T_State")
  196. }
  197. _, err = PurchaseDao.Update_Purchase(purchase, clos...)
  198. if err != nil {
  199. c.Data["json"] = lib.JSONS{Code: 203, Msg: "修改失败"}
  200. c.ServeJSON()
  201. return
  202. }
  203. NatsServer.AddUserLogs(c.User.T_uuid, "采购", "修改", purchase)
  204. c.Data["json"] = lib.JSONS{Code: 200, Msg: "ok!", Data: purchase.Id}
  205. c.ServeJSON()
  206. return
  207. }
  208. func (c *PurchaseController) Purchase_Del() {
  209. T_id, _ := c.GetInt("T_id")
  210. o := orm.NewOrm()
  211. PurchaseDao := Purchase.NewPurchase(o)
  212. purchase, err := PurchaseDao.Read_Purchase_ById(T_id)
  213. if err != nil {
  214. //o.Rollback()
  215. c.Data["json"] = lib.JSONS{Code: 202, Msg: "T_id Err!"}
  216. c.ServeJSON()
  217. return
  218. }
  219. if purchase.T_State == 2 {
  220. c.Data["json"] = lib.JSONS{Code: 202, Msg: "已采购,禁止删除!"}
  221. c.ServeJSON()
  222. return
  223. }
  224. _, err = PurchaseDao.Delete_Purchase(purchase)
  225. if err != nil {
  226. c.Data["json"] = lib.JSONS{Code: 202, Msg: "删除失败!"}
  227. c.ServeJSON()
  228. return
  229. }
  230. NatsServer.AddUserLogs(c.User.T_uuid, "采购", "删除", purchase.Id)
  231. c.Data["json"] = lib.JSONS{Code: 200, Msg: "ok!", Data: purchase.Id}
  232. c.ServeJSON()
  233. return
  234. }