qryAreaStock.go 5.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158
  1. /**
  2. * @Author: zou.yingbin
  3. * @Create : 2021/3/10 15:30
  4. * @Modify : 2021/3/10 15:30
  5. */
  6. package ermcp
  7. import (
  8. "github.com/gin-gonic/gin"
  9. "mtp2_if/global/app"
  10. "mtp2_if/global/e"
  11. "mtp2_if/models"
  12. "net/http"
  13. "strconv"
  14. )
  15. // 查询日期
  16. type QueryDate string
  17. // IsNumberic 判断是否为数字,
  18. func (v QueryDate) IsNumberic(queryType int32) bool {
  19. if queryType == 1 {
  20. // 日报表 日期长度YYYYMMDD
  21. if len(v) != 8 {
  22. return false
  23. }
  24. } else if queryType == 2 {
  25. // 月报表 日期长度YYYYMM
  26. if len(v) != 6 {
  27. return false
  28. }
  29. }
  30. // 判断是否为数字
  31. if _, err := strconv.ParseInt(string(v), 10, 32); err != nil {
  32. return false
  33. }
  34. return true
  35. }
  36. // QryAreaStockApplyReq 查询库存申请请求
  37. type QryAreaStockApplyReq struct {
  38. USERID int64 `form:"userid" binding:"required"` // 用户id
  39. INOUTTYPE string `form:"inouttype"` // 出入库类型 - 1:采购入库 2:销售出库 3:生产入库 4:生产出库
  40. SPOTCONTRACTID string `form:"spotcontractid"` // 合同ID
  41. WRSTANDARDID string `form:"wrstandardid"` // 现货商品ID
  42. SPOTGOODSBRANDID int32 `form:"spotgoodsbrandid"` // 品牌ID
  43. SPOTGOODSMODELID int32 `form:"spotgoodsmodelid"` // 型号ID
  44. WAREHOUSEINFOID string `form:"warehouseinfoid"` // 仓库ID
  45. APPLYSTATUS string `form:"applystatus"` // 申请状态 - 1:待审核 2:审核通过 3:审核拒绝 4:处理失败 5:已撤回
  46. }
  47. // QryAreaStockApplyRsp 查询库存申请响应
  48. type QryAreaStockApplyRsp models.ErmcpAreaStockApply
  49. // QueryAreaStockApply
  50. func QueryAreaStockApply(c *gin.Context) {
  51. a := app.NewGinUtils(c)
  52. req := QryAreaStockApplyReq{}
  53. a.DoBindReq(&req)
  54. m := models.ErmcpAreaStockApply{
  55. USERID: req.USERID,
  56. FilterType: req.INOUTTYPE,
  57. SPOTCONTRACTID: req.SPOTCONTRACTID,
  58. WRSTANDARDID: req.WRSTANDARDID,
  59. SPOTGOODSBRANDID: req.SPOTGOODSBRANDID,
  60. SPOTGOODSMODELID: req.SPOTGOODSMODELID,
  61. WAREHOUSEINFOID: req.WAREHOUSEINFOID,
  62. FilterStatus: req.APPLYSTATUS,
  63. }
  64. a.DoGetDataEx(&m)
  65. }
  66. // QueryAreaStockApplySum 出入库汇总请求
  67. type QueryAreaStockApplySumReq struct {
  68. SPOTCONTRACTID string `form:"spotcontractid"` // 合同ID
  69. }
  70. // QueryAreaStockApplySumRsp 出入库汇总响应
  71. type QueryAreaStockApplySumRsp models.ErmcpAreaStockApplySum
  72. // QueryAreaStockApplySum
  73. func QueryAreaStockApplySum(c *gin.Context) {
  74. a := app.GinUtils{Gin: app.Gin{C: c}}
  75. req := QueryAreaStockApplySumReq{}
  76. a.DoBindReq(&req)
  77. m := models.ErmcpAreaStockApplySum{SPOTCONTRACTID: req.SPOTCONTRACTID}
  78. a.DoGetDataEx(&m)
  79. }
  80. // QueryAreaStockReq 查询库存量请求
  81. type QueryAreaStockReq struct {
  82. USERID int64 `form:"userid" binding:"required"` // 用户id
  83. }
  84. // QueryAreaStock
  85. func QueryAreaStock(c *gin.Context) {
  86. a := app.GinUtils{Gin: app.Gin{C: c}}
  87. req := QueryAreaStockReq{}
  88. a.DoBindReq(&req)
  89. m := models.ErmcpAreaStock{USERID: req.USERID}
  90. a.DoGetDataEx(&m)
  91. }
  92. type QueryAreaStockReportReq struct {
  93. USERID int64 `form:"userid" binding:"required"` // 用户id
  94. DETAILTYPE int32 `form:"detailtype"` // 明细类型 1:入库明细(采购入库+生产入库) 2:出库明细(销售出库+生产出库)
  95. WRSTANDARDID string `form:"wrstandardid"` // 现货商品ID
  96. SPOTGOODSBRANDID int32 `form:"spotgoodsbrandid"` // 品牌ID
  97. SPOTGOODSMODELID int32 `form:"spotgoodsmodelid"` // 型号ID
  98. WAREHOUSEINFOID string `form:"warehouseinfoid"` // 仓库ID
  99. QUERYTYPE int32 `form:"querytype" binding:"required"` // 查询类型 1-日报表(或明细) 2-月报表(或明细)
  100. QUERYDATE string `form:"querydate" binding:"required"` // 查询日期(格式 日报表YYYYMMDD, 月报表YYYYMM)
  101. }
  102. // QueryAreaStockReport
  103. func QueryAreaStockReport(c *gin.Context) {
  104. a := app.GinUtils{Gin: app.Gin{C: c}}
  105. req := QueryAreaStockReportReq{}
  106. a.DoBindReq(&req)
  107. if QueryDate(req.QUERYDATE).IsNumberic(req.QUERYTYPE) {
  108. m := models.ErmcpAreaStockReport{USERID: req.USERID, WRSTANDARDID: req.WRSTANDARDID,
  109. SPOTGOODSBRANDID: req.SPOTGOODSBRANDID, SPOTGOODSMODELID: req.SPOTGOODSMODELID,
  110. WAREHOUSEINFOID: req.WAREHOUSEINFOID, ReportDate: req.QUERYDATE, ReportType: req.QUERYTYPE}
  111. a.DoGetDataEx(&m)
  112. } else {
  113. a.Gin.Response(http.StatusBadRequest, e.INVALID_PARAMS, nil)
  114. }
  115. }
  116. // QueryAreaStockReportDetail
  117. func QueryAreaStockReportDetail(c *gin.Context) {
  118. a := app.GinUtils{Gin: app.Gin{C: c}}
  119. req := QueryAreaStockReportReq{}
  120. a.DoBindReq(&req)
  121. if QueryDate(req.QUERYDATE).IsNumberic(req.QUERYTYPE) {
  122. var beginDate, endDate string
  123. if req.QUERYTYPE == 1 {
  124. beginDate = req.QUERYDATE
  125. endDate = beginDate
  126. } else if req.QUERYTYPE == 2 {
  127. beginDate = req.QUERYDATE + "01"
  128. endDate = req.QUERYDATE + "31"
  129. }
  130. m := models.ErmcpAreaStockApply{USERID: req.USERID, WRSTANDARDID: req.WRSTANDARDID,
  131. SPOTGOODSBRANDID: req.SPOTGOODSBRANDID, SPOTGOODSMODELID: req.SPOTGOODSMODELID,
  132. WAREHOUSEINFOID: req.WAREHOUSEINFOID, BeginDate: beginDate, EndDate: endDate, APPLYSTATUS: 2}
  133. // 出入库类型(可多项,逗号隔开) 1:采购入库 2:销售出库 3:生产入库 4:生产出库"
  134. if req.DETAILTYPE == 1 {
  135. m.FilterStatus = "1,3"
  136. } else if req.DETAILTYPE == 2 {
  137. m.FilterStatus = "2,4"
  138. }
  139. a.DoGetDataEx(&m)
  140. } else {
  141. a.Gin.Response(http.StatusBadRequest, e.INVALID_PARAMS, nil)
  142. }
  143. }