product_code.go 2.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106
  1. package controllers
  2. import (
  3. "Medical_ERP/common/actions"
  4. "Medical_ERP/common/global"
  5. _ "Medical_ERP/common/response"
  6. "Medical_ERP/conf"
  7. "Medical_ERP/dto"
  8. "Medical_ERP/models"
  9. "Medical_ERP/services"
  10. "encoding/json"
  11. "errors"
  12. "github.com/go-resty/resty/v2"
  13. "gogs.baozhida.cn/zoie/OAuth-core/pkg/jwtauth/beegouser"
  14. )
  15. type ProductCodeController struct {
  16. BaseController
  17. }
  18. // Gen 生成条码
  19. // @Summary 生成条码
  20. // @Description 生成条码
  21. // @Tags 产品条码
  22. // @Param body body dto.BarcodePageReq true "body"
  23. // @Success 200 {object} response.Page "{"code": 200, "data": [...]}"
  24. // @Router /sales/list [post]
  25. // @Security Bearer
  26. func (c ProductCodeController) Gen() {
  27. s := services.ProductCode{}
  28. reqData := dto.GenProductCodePageReq{}
  29. if err := c.ParseAndValidate(&c.Ctx.Input.RequestBody, &reqData); err != nil {
  30. c.Error(global.ParseFormErr, err, err.Error())
  31. return
  32. }
  33. deptId := beegouser.GetDeptId(c.Ctx)
  34. err := s.CreateProductCode(&reqData, deptId)
  35. if err != nil {
  36. c.Error(500, err, err.Error())
  37. return
  38. }
  39. client := resty.New()
  40. resp, err := client.R().
  41. SetBody(map[string]interface{}{
  42. "product_name": reqData.Product,
  43. "enterprise_name": reqData.Enterprise,
  44. "spec_name": reqData.Spec,
  45. "batch_number": reqData.BatchNumber,
  46. "quantity": reqData.Quantity,
  47. }).
  48. Post(conf.BZD_pcodeUrl)
  49. if err != nil {
  50. c.Error(400, err, err.Error())
  51. return
  52. }
  53. type Resp struct {
  54. Code int `json:"Code"`
  55. Msg string `json:"Msg"`
  56. Data string `json:"Data"`
  57. }
  58. var res Resp
  59. if err = json.Unmarshal(resp.Body(), &res); err != nil {
  60. c.Error(400, err, err.Error())
  61. return
  62. }
  63. if res.Code != 200 {
  64. err = errors.New(res.Msg)
  65. c.Error(400, err, err.Error())
  66. }
  67. c.OK(res.Data, "生成成功")
  68. }
  69. // List 通过关键字查询条码信息
  70. // @Summary 生成条码
  71. // @Description 生成条码
  72. // @Tags 产品条码
  73. // @Param body body dto.BarcodePageReq true "body"
  74. // @Success 200 {object} response.Page "{"code": 200, "data": [...]}"
  75. // @Router /sales/list [post]
  76. // @Security Bearer
  77. func (c ProductCodeController) List() {
  78. s := services.ProductCode{}
  79. reqData := dto.ProductCodePageReq{}
  80. if err := c.ParseAndValidate(&c.Ctx.Input.RequestBody, &reqData); err != nil {
  81. c.Error(global.ParseFormErr, err, err.Error())
  82. return
  83. }
  84. list := make([]models.ProductCode, 0)
  85. var count int64
  86. //数据权限检查
  87. p := actions.GetPermissionFromContext(c.Ctx)
  88. err := s.GetPage(&reqData, &list, &count, p)
  89. if err != nil {
  90. c.Error(global.BadRequest, err, err.Error())
  91. return
  92. }
  93. c.PageOK(list, int(count), reqData.GetPageIndex(), reqData.GetPageSize(), "查询成功")
  94. }