ProjectFiling.go 6.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244
  1. package controllers
  2. import (
  3. "ERP_storage/Nats/NatsServer"
  4. "ERP_storage/conf"
  5. "ERP_storage/models/Account"
  6. "ERP_storage/models/ProjectFiling"
  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. "strconv"
  14. )
  15. type ProjectFilingController struct {
  16. beego.Controller
  17. User userlibs.User
  18. }
  19. func (c *ProjectFilingController) Prepare() {
  20. c.User = *Account.User_r
  21. }
  22. // 项目备案
  23. func (c *ProjectFilingController) ProjectFiling_List() {
  24. // 分页参数 初始化
  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. // 查询
  34. T_sales_personnel := c.GetString("T_sales_personnel")
  35. T_customers := c.GetString("T_customers")
  36. R_List, R_cnt := ProjectFiling.Read_ProjectFiling_List("", T_sales_personnel, T_customers, page, page_z)
  37. var r_jsons lib.R_JSONS
  38. r_jsons.Num = R_cnt
  39. r_jsons.Data = R_List
  40. r_jsons.Page = page
  41. r_jsons.Page_size = int(math.Ceil(float64(R_cnt) / float64(page_z)))
  42. c.Data["json"] = lib.JSONS{Code: 200, Msg: "ok!", Data: r_jsons}
  43. c.ServeJSON()
  44. return
  45. }
  46. func (c *ProjectFilingController) ProjectFiling_User_List() {
  47. // 分页参数 初始化
  48. page, _ := c.GetInt("page")
  49. if page < 1 {
  50. page = 1
  51. }
  52. page_z, _ := c.GetInt("page_z")
  53. if page_z < 1 {
  54. page_z = conf.Page_size
  55. }
  56. // 查询
  57. T_sales_personnel := c.GetString("T_sales_personnel")
  58. T_customers := c.GetString("T_customers")
  59. R_List, R_cnt := ProjectFiling.Read_ProjectFiling_List(c.User.T_uuid, T_sales_personnel, T_customers, page, page_z)
  60. var r_jsons lib.R_JSONS
  61. r_jsons.Num = R_cnt
  62. r_jsons.Data = R_List
  63. r_jsons.Page = page
  64. r_jsons.Page_size = int(math.Ceil(float64(R_cnt) / float64(page_z)))
  65. c.Data["json"] = lib.JSONS{Code: 200, Msg: "ok!", Data: r_jsons}
  66. c.ServeJSON()
  67. return
  68. }
  69. func (c *ProjectFilingController) ProjectFiling_Add() {
  70. T_date := c.GetString("T_date")
  71. T_sales_personnel := c.GetString("T_sales_personnel")
  72. T_customers := c.GetString("T_customers")
  73. T_customers_type := c.GetString("T_customers_type")
  74. T_service_type := c.GetString("T_service_type")
  75. T_content := c.GetString("T_content")
  76. T_estimate_contract_amount := c.GetString("T_estimate_contract_amount")
  77. T_sign_bill_time := c.GetString("T_sign_bill_time")
  78. T_prepare_content := c.GetString("T_prepare_content")
  79. T_remark := c.GetString("T_remark")
  80. var_ := ProjectFiling.ProjectFiling{
  81. T_date: T_date,
  82. T_sales_personnel: T_sales_personnel,
  83. T_customers: T_customers,
  84. T_customers_type: T_customers_type,
  85. T_service_type: T_service_type,
  86. T_content: T_content,
  87. T_estimate_contract_amount: T_estimate_contract_amount,
  88. T_sign_bill_time: T_sign_bill_time,
  89. T_prepare_content: T_prepare_content,
  90. T_remark: T_remark,
  91. T_state: 1,
  92. T_uuid: c.User.T_uuid,
  93. }
  94. ProjectFiling_r, err := ProjectFiling.Read_ProjectFiling_ByT_customers(T_customers)
  95. if err != nil && err.Error() != orm.ErrNoRows.Error() {
  96. c.Data["json"] = lib.JSONS{Code: 203, Msg: "添加失败"}
  97. c.ServeJSON()
  98. return
  99. }
  100. if ProjectFiling_r.Id > 0 {
  101. c.Data["json"] = lib.JSONS{Code: 203, Msg: fmt.Sprintf("【%s】客户已存在", T_customers)}
  102. c.ServeJSON()
  103. return
  104. }
  105. Id, err := ProjectFiling.Add_ProjectFiling(var_)
  106. if err != nil {
  107. c.Data["json"] = lib.JSONS{Code: 203, Msg: "添加失败"}
  108. c.ServeJSON()
  109. return
  110. }
  111. NatsServer.AddUserLogs(c.User.T_uuid, "项目备案", "添加", var_)
  112. c.Data["json"] = lib.JSONS{Code: 200, Msg: "ok!", Data: Id}
  113. c.ServeJSON()
  114. return
  115. }
  116. func (c *ProjectFilingController) ProjectFiling_Edit() {
  117. T_id, _ := c.GetInt("T_id")
  118. T_date := c.GetString("T_date")
  119. T_sales_personnel := c.GetString("T_sales_personnel")
  120. T_customers := c.GetString("T_customers")
  121. T_customers_type := c.GetString("T_customers_type")
  122. T_service_type := c.GetString("T_service_type")
  123. T_content := c.GetString("T_content")
  124. T_estimate_contract_amount := c.GetString("T_estimate_contract_amount")
  125. T_sign_bill_time := c.GetString("T_sign_bill_time")
  126. T_prepare_content := c.GetString("T_prepare_content")
  127. T_remark := c.GetString("T_remark")
  128. ProjectFiling_r, err := ProjectFiling.Read_ProjectFiling_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. ProjectFiling_r2, err := ProjectFiling.Read_ProjectFiling_ByT_customers(T_customers)
  135. if err != nil && err.Error() != orm.ErrNoRows.Error() {
  136. c.Data["json"] = lib.JSONS{Code: 203, Msg: "修改失败"}
  137. c.ServeJSON()
  138. return
  139. }
  140. if ProjectFiling_r2.Id != ProjectFiling_r.Id && ProjectFiling_r2.Id > 0 {
  141. c.Data["json"] = lib.JSONS{Code: 203, Msg: fmt.Sprintf("【%s】客户已存在", T_customers)}
  142. c.ServeJSON()
  143. return
  144. }
  145. cols := []string{}
  146. if len(T_date) > 0 {
  147. ProjectFiling_r.T_date = T_date
  148. cols = append(cols, "T_date")
  149. }
  150. if len(T_sales_personnel) > 0 {
  151. ProjectFiling_r.T_sales_personnel = T_sales_personnel
  152. cols = append(cols, "T_sales_personnel")
  153. }
  154. if len(T_customers) > 0 {
  155. ProjectFiling_r.T_customers = T_customers
  156. cols = append(cols, "T_customers")
  157. }
  158. if len(T_customers_type) > 0 {
  159. ProjectFiling_r.T_customers_type = T_customers_type
  160. cols = append(cols, "T_customers_type")
  161. }
  162. if len(T_service_type) > 0 {
  163. ProjectFiling_r.T_service_type = T_service_type
  164. cols = append(cols, "T_service_type")
  165. }
  166. if len(T_content) > 0 {
  167. ProjectFiling_r.T_content = T_content
  168. cols = append(cols, "T_content")
  169. }
  170. if len(T_estimate_contract_amount) > 0 {
  171. ProjectFiling_r.T_estimate_contract_amount = T_estimate_contract_amount
  172. cols = append(cols, "T_estimate_contract_amount")
  173. }
  174. if len(T_sign_bill_time) > 0 {
  175. ProjectFiling_r.T_sign_bill_time = T_sign_bill_time
  176. cols = append(cols, "T_sign_bill_time")
  177. }
  178. if len(T_prepare_content) > 0 {
  179. ProjectFiling_r.T_prepare_content = T_prepare_content
  180. cols = append(cols, "T_prepare_content")
  181. }
  182. if len(T_remark) > 0 {
  183. ProjectFiling_r.T_remark = T_remark
  184. cols = append(cols, "T_remark")
  185. }
  186. if err = ProjectFiling.Update_ProjectFiling(ProjectFiling_r, cols...); err != nil {
  187. c.Data["json"] = lib.JSONS{Code: 203, Msg: "修改失败"}
  188. c.ServeJSON()
  189. return
  190. }
  191. NatsServer.AddUserLogs(c.User.T_uuid, "项目备案", "修改", ProjectFiling_r)
  192. c.Data["json"] = lib.JSONS{Code: 200, Msg: "ok!"}
  193. c.ServeJSON()
  194. return
  195. }
  196. func (c *ProjectFilingController) ProjectFiling_Del() {
  197. T_id, _ := c.GetInt("T_id")
  198. ProjectFiling_r, err := ProjectFiling.Read_ProjectFiling_ById(T_id)
  199. if err != nil {
  200. c.Data["json"] = lib.JSONS{Code: 203, Msg: "T_id Err!"}
  201. c.ServeJSON()
  202. return
  203. }
  204. if err = ProjectFiling.Delete_ProjectFiling(ProjectFiling_r); err != nil {
  205. c.Data["json"] = lib.JSONS{Code: 202, Msg: "删除失败!"}
  206. c.ServeJSON()
  207. return
  208. }
  209. NatsServer.AddUserLogs(c.User.T_uuid, "项目备案", "删除", strconv.Itoa(T_id))
  210. c.Data["json"] = lib.JSONS{Code: 200, Msg: "ok!"}
  211. c.ServeJSON()
  212. return
  213. }