Validation.go 7.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249
  1. package controllers
  2. import (
  3. "ERP_storage/conf"
  4. "ERP_storage/models/Account"
  5. "ERP_storage/models/Stock"
  6. "ERP_storage/models/validationtool"
  7. "encoding/json"
  8. "errors"
  9. "fmt"
  10. "github.com/beego/beego/v2/adapter/orm"
  11. beego "github.com/beego/beego/v2/server/web"
  12. userlibs "gogs.baozhida.cn/zoie/ERP_libs/User"
  13. "gogs.baozhida.cn/zoie/ERP_libs/lib"
  14. "math"
  15. "strings"
  16. )
  17. type ValidationController struct {
  18. beego.Controller
  19. User userlibs.User
  20. }
  21. func (c *ValidationController) Prepare() {
  22. c.User = *Account.User_r
  23. }
  24. // AddValidation 查询设备是否存在在库存中,如果存在则修改设备状态为待使用,否则直接添加设备
  25. func (c *ValidationController) AddValidation() {
  26. var ValidationList []validationtool.AddValidationTool
  27. err := json.Unmarshal(c.Ctx.Input.RequestBody, &ValidationList)
  28. if err != nil {
  29. c.Data["json"] = lib.JSONS{Code: 201, Msg: "json 序列化失败!", Data: nil}
  30. c.ServeJSON()
  31. return
  32. }
  33. vali := validationtool.NewValidationTool(orm.NewOrm())
  34. for _, tool := range ValidationList {
  35. if len(tool.T_sn) <= 0 {
  36. c.Data["json"] = lib.JSONS{Code: 201, Msg: "T_sn不能为空!", Data: nil}
  37. c.ServeJSON()
  38. return
  39. }
  40. r, err := vali.ReadValidationBytSn(tool.T_sn)
  41. if err != nil {
  42. if errors.Is(err, orm.ErrNoRows) {
  43. var validataiontool validationtool.ValidationTool
  44. user := Stock.Read_MqttUser(tool.T_sn)
  45. validataiontool.T_iccid = user.Iccid
  46. validataiontool.T_imei = user.Imei
  47. validataiontool.T_uuid = c.User.T_uuid
  48. validataiontool.Validationnumber = tool.Validationnumber
  49. validataiontool.T_sn = tool.T_sn
  50. validataiontool.T_remark = tool.T_remark
  51. validataiontool.T_state = 2
  52. _, err := vali.ADDValidationTool(validataiontool)
  53. if err != nil {
  54. c.Data["json"] = lib.JSONS{Code: 201, Msg: "入库失败!", Data: nil}
  55. c.ServeJSON()
  56. return
  57. }
  58. }
  59. } else {
  60. //修改设备
  61. con := make(map[string]string)
  62. if len(tool.Validationnumber) != 0 {
  63. con["validationnumber"] = tool.Validationnumber
  64. }
  65. if r.T_state != 2 {
  66. con["t_state"] = "2" // 待使用
  67. }
  68. con["t_remark"] = tool.T_remark
  69. con["t_project"] = ""
  70. con["lend_user"] = ""
  71. err = vali.UpdateValidationTool(r.T_sn, con)
  72. if err != nil {
  73. c.Data["json"] = lib.JSONS{Code: 201, Msg: "入库失败!", Data: nil}
  74. c.ServeJSON()
  75. return
  76. }
  77. }
  78. }
  79. c.Data["json"] = lib.JSONS{Code: 200, Msg: "入库成功!", Data: nil}
  80. c.ServeJSON()
  81. return
  82. }
  83. func (c *ValidationController) ValidationList() {
  84. // 分页参数 初始化
  85. page, _ := c.GetInt("page")
  86. if page < 1 {
  87. page = 1
  88. }
  89. page_z, _ := c.GetInt("page_z")
  90. if page_z < 1 {
  91. page_z = conf.Page_size
  92. }
  93. T_state := c.GetString("T_state")
  94. validationnumber := c.GetString("validationnumber")
  95. T_sn := c.GetString("T_sn")
  96. t_iccid := c.GetString("t_iccid")
  97. t_imei := c.GetString("t_imei")
  98. LendUser := c.GetString("LendUser")
  99. T_project := c.GetString("T_project")
  100. vali := validationtool.NewValidationTool(orm.NewOrm())
  101. R_List, R_cnt := vali.Read_Validation_List(validationnumber, T_sn, t_iccid, t_imei, T_state, LendUser, T_project, page, page_z)
  102. var r_jsons lib.R_JSONS
  103. r_jsons.Num = R_cnt
  104. r_jsons.Data = R_List
  105. r_jsons.Page = page
  106. r_jsons.Page_size = int(math.Ceil(float64(R_cnt) / float64(page_z)))
  107. c.Data["json"] = lib.JSONS{Code: 200, Msg: "ok!", Data: r_jsons}
  108. c.ServeJSON()
  109. return
  110. }
  111. func (c *ValidationController) DeleteValidationTool() {
  112. id := c.GetString("t_sn")
  113. if len(id) <= 0 {
  114. c.Data["json"] = lib.JSONS{Code: 201, Msg: "t_sn不能为空!", Data: nil}
  115. c.ServeJSON()
  116. return
  117. }
  118. vali := validationtool.NewValidationTool(orm.NewOrm())
  119. err := vali.DeleteValidationTool(id)
  120. if err != nil {
  121. c.Data["json"] = lib.JSONS{Code: 201, Msg: "删除失败!", Data: nil}
  122. c.ServeJSON()
  123. return
  124. }
  125. c.Data["json"] = lib.JSONS{Code: 200, Msg: "删除成功!", Data: nil}
  126. c.ServeJSON()
  127. }
  128. func (c *ValidationController) UpdateValidationTool() {
  129. var lendValidationList []validationtool.LendValidationTool
  130. err := json.Unmarshal(c.Ctx.Input.RequestBody, &lendValidationList)
  131. if err != nil {
  132. c.Data["json"] = lib.JSONS{Code: 201, Msg: "json 序列化失败!", Data: nil}
  133. c.ServeJSON()
  134. return
  135. }
  136. vali := validationtool.NewValidationTool(orm.NewOrm())
  137. for _, tool := range lendValidationList {
  138. if len(tool.T_sn) <= 0 {
  139. c.Data["json"] = lib.JSONS{Code: 201, Msg: "T_sn不能为空!", Data: nil}
  140. c.ServeJSON()
  141. return
  142. }
  143. r, err := vali.ReadValidationBytSn(tool.T_sn)
  144. sprintf := fmt.Sprintf("当前sn:%v 未入库", tool.T_sn)
  145. if err != nil || r.T_state != 2 {
  146. c.Data["json"] = lib.JSONS{Code: 201, Msg: sprintf, Data: nil}
  147. c.ServeJSON()
  148. return
  149. }
  150. //修改设备状态
  151. con := make(map[string]string)
  152. if len(tool.T_remark) != 0 {
  153. con["t_remark"] = tool.T_remark
  154. }
  155. if len(tool.Validationnumber) != 0 {
  156. con["validationnumber"] = tool.Validationnumber
  157. }
  158. con["t_state"] = "1"
  159. if len(tool.LendUser) != 0 {
  160. con["lend_user"] = tool.LendUser
  161. }
  162. if len(tool.T_project) != 0 {
  163. con["t_project"] = tool.T_project
  164. }
  165. err = vali.UpdateValidationTool(tool.T_sn, con)
  166. if err != nil {
  167. c.Data["json"] = lib.JSONS{Code: 201, Msg: "修改失败!", Data: nil}
  168. c.ServeJSON()
  169. return
  170. }
  171. }
  172. c.Data["json"] = lib.JSONS{Code: 200, Msg: "修改成功!", Data: nil}
  173. c.ServeJSON()
  174. return
  175. }
  176. // GetValidationToolBySn 根据sn获取设备信息
  177. func (c *ValidationController) GetValidationToolBySn() {
  178. sn := c.GetString("sn")
  179. if len(sn) <= 0 {
  180. c.Data["json"] = lib.JSONS{Code: 201, Msg: "sn不能为空!", Data: nil}
  181. c.ServeJSON()
  182. return
  183. }
  184. vali := validationtool.NewValidationTool(orm.NewOrm())
  185. r, err := vali.ReadValidationBytSn(sn)
  186. if err != nil {
  187. c.Data["json"] = lib.JSONS{Code: 201, Msg: "当前设备不存在!", Data: nil}
  188. c.ServeJSON()
  189. return
  190. }
  191. c.Data["json"] = lib.JSONS{Code: 200, Msg: "成功!", Data: r}
  192. c.ServeJSON()
  193. }
  194. // UpdateValidationToolBySn 根据sn修改设备信息
  195. func (c *ValidationController) UpdateValidationToolBySn() {
  196. sn := c.GetString("T_sn")
  197. Id := c.GetString("Id")
  198. Validationnumber := c.GetString("Validationnumber")
  199. T_remark := c.GetString("T_remark")
  200. T_state := c.GetString("T_state")
  201. if len(sn) <= 0 {
  202. c.Data["json"] = lib.JSONS{Code: 201, Msg: "sn不能为空!", Data: nil}
  203. c.ServeJSON()
  204. return
  205. }
  206. if len(Id) <= 0 {
  207. c.Data["json"] = lib.JSONS{Code: 201, Msg: "Id不能为空!", Data: nil}
  208. c.ServeJSON()
  209. return
  210. }
  211. con := make(map[string]string)
  212. if len(Validationnumber) > 0 {
  213. con["validationnumber"] = Validationnumber
  214. }
  215. if len(T_remark) > 0 {
  216. con["t_remark"] = T_remark
  217. }
  218. if len(T_state) > 0 {
  219. con["t_state"] = T_state
  220. }
  221. vali := validationtool.NewValidationTool(orm.NewOrm())
  222. r, err := vali.ReadValidationById(Id)
  223. if !strings.EqualFold(r.T_sn, sn) {
  224. con["t_sn"] = sn
  225. user := Stock.Read_MqttUser(sn)
  226. con["t_iccid"] = user.Iccid
  227. con["t_imei"] = user.Imei
  228. }
  229. err = vali.UpdateValidationToolById(Id, con)
  230. if err != nil {
  231. c.Data["json"] = lib.JSONS{Code: 201, Msg: "当前设备不存在!", Data: nil}
  232. c.ServeJSON()
  233. return
  234. }
  235. c.Data["json"] = lib.JSONS{Code: 200, Msg: "成功!", Data: nil}
  236. c.ServeJSON()
  237. }