qryAreaStock.go 8.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218
  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. // @Summary 查询库存申请(出入库记录|库存审核)
  51. // @Produce json
  52. // @Security ApiKeyAuth
  53. // @Param userid query int true "用户ID"
  54. // @Param inouttype query string false "出入库类型(可多项,逗号隔开) 1:采购入库 2:销售出库 3:生产入库 4:生产出库"
  55. // @Param spotcontractid query int false "合同ID"
  56. // @Param wrstandardid query int false "现货商品ID"
  57. // @Param spotgoodsbrandid query int false "品牌ID"
  58. // @Param spotgoodsmodelid query int false "型号ID"
  59. // @Param warehouseinfoid query int false "仓库ID"
  60. // @Param applystatus query string false "申请状态(可多项,逗号隔开)1:待审核 2:审核通过 3:审核拒绝 4:处理失败 5:已撤回"
  61. // @Success 200 {array} QryAreaStockApplyRsp
  62. // @Failure 500 {object} app.Response
  63. // @Router /Ermcp/QueryAreaStockApply [get]
  64. // @Tags 企业风险管理(app)
  65. func QueryAreaStockApply(c *gin.Context) {
  66. a := app.NewGinUtils(c)
  67. req := QryAreaStockApplyReq{}
  68. a.DoBindReq(&req)
  69. m := models.ErmcpAreaStockApply{
  70. USERID: req.USERID,
  71. FilterType: req.INOUTTYPE,
  72. SPOTCONTRACTID: req.SPOTCONTRACTID,
  73. WRSTANDARDID: req.WRSTANDARDID,
  74. SPOTGOODSBRANDID: req.SPOTGOODSBRANDID,
  75. SPOTGOODSMODELID: req.SPOTGOODSMODELID,
  76. WAREHOUSEINFOID: req.WAREHOUSEINFOID,
  77. FilterStatus: req.APPLYSTATUS,
  78. }
  79. a.DoGetDataEx(&m)
  80. }
  81. // QueryAreaStockApplySum 出入库汇总请求
  82. type QueryAreaStockApplySumReq struct {
  83. SPOTCONTRACTID string `form:"spotcontractid"` // 合同ID
  84. }
  85. // QueryAreaStockApplySumRsp 出入库汇总响应
  86. type QueryAreaStockApplySumRsp models.ErmcpAreaStockApplySum
  87. // QueryAreaStockApplySum
  88. // @Summary 查询已登记出入库信息(入库登记/已入库信息 | 出库登记/已出库信息)
  89. // @Produce json
  90. // @Security ApiKeyAuth
  91. // @Param spotcontractid query int false "合同ID"
  92. // @Success 200 {array} QueryAreaStockApplySumRsp
  93. // @Failure 500 {object} app.Response
  94. // @Router /Ermcp/QueryAreaStockApplySum [get]
  95. // @Tags 企业风险管理(app)
  96. func QueryAreaStockApplySum(c *gin.Context) {
  97. a := app.GinUtils{Gin: app.Gin{C: c}}
  98. req := QueryAreaStockApplySumReq{}
  99. a.DoBindReq(&req)
  100. m := models.ErmcpAreaStockApplySum{SPOTCONTRACTID: req.SPOTCONTRACTID}
  101. a.DoGetDataEx(&m)
  102. }
  103. // QueryAreaStockReq 查询库存量请求
  104. type QueryAreaStockReq struct {
  105. USERID int64 `form:"userid" binding:"required"` // 用户id
  106. }
  107. // QueryAreaStock
  108. // @Summary 查询机构库存(库存管理/当前库存)
  109. // @Produce json
  110. // @Security ApiKeyAuth
  111. // @Param userid query int true "用户ID"
  112. // @Success 200 {array} models.ErmcpAreaStock
  113. // @Failure 500 {object} app.Response
  114. // @Router /Ermcp/QueryAreaStock [get]
  115. // @Tags 企业风险管理(app)
  116. func QueryAreaStock(c *gin.Context) {
  117. a := app.GinUtils{Gin: app.Gin{C: c}}
  118. req := QueryAreaStockReq{}
  119. a.DoBindReq(&req)
  120. m := models.ErmcpAreaStock{USERID: req.USERID}
  121. a.DoGetDataEx(&m)
  122. }
  123. type QueryAreaStockReportReq struct {
  124. USERID int64 `form:"userid" binding:"required"` // 用户id
  125. DETAILTYPE int32 `form:"detailtype"` // 明细类型 1:入库明细(采购入库+生产入库) 2:出库明细(销售出库+生产出库)
  126. WRSTANDARDID string `form:"wrstandardid"` // 现货商品ID
  127. SPOTGOODSBRANDID int32 `form:"spotgoodsbrandid"` // 品牌ID
  128. SPOTGOODSMODELID int32 `form:"spotgoodsmodelid"` // 型号ID
  129. WAREHOUSEINFOID string `form:"warehouseinfoid"` // 仓库ID
  130. QUERYTYPE int32 `form:"querytype" binding:"required"` // 查询类型 1-日报表(或明细) 2-月报表(或明细)
  131. QUERYDATE string `form:"querydate" binding:"required"` // 查询日期(格式 日报表YYYYMMDD, 月报表YYYYMM)
  132. }
  133. // QueryAreaStockReport
  134. // @Summary 查询库存报表
  135. // @Produce json
  136. // @Security ApiKeyAuth
  137. // @Param userid query int true "用户ID"
  138. // @Param querytype query int true "查询类型 1-日报表 2-月报表"
  139. // @Param querydate query string true "查询日期(格式 日报表YYYYMMDD, 月报表YYYYMM)"
  140. // @Param wrstandardid query int false "现货商品ID"
  141. // @Param spotgoodsbrandid query int false "品牌ID"
  142. // @Param spotgoodsmodelid query int false "型号ID"
  143. // @Param warehouseinfoid query int false "仓库ID"
  144. // @Success 200 {array} models.ErmcpAreaStockReport
  145. // @Failure 500 {object} app.Response
  146. // @Router /Ermcp/QueryAreaStockReport [get]
  147. // @Tags 企业风险管理(app)
  148. func QueryAreaStockReport(c *gin.Context) {
  149. a := app.GinUtils{Gin: app.Gin{C: c}}
  150. req := QueryAreaStockReportReq{}
  151. a.DoBindReq(&req)
  152. if QueryDate(req.QUERYDATE).IsNumberic(req.QUERYTYPE) {
  153. m := models.ErmcpAreaStockReport{USERID: req.USERID, WRSTANDARDID: req.WRSTANDARDID,
  154. SPOTGOODSBRANDID: req.SPOTGOODSBRANDID, SPOTGOODSMODELID: req.SPOTGOODSMODELID,
  155. WAREHOUSEINFOID: req.WAREHOUSEINFOID, ReportDate: req.QUERYDATE, ReportType: req.QUERYTYPE}
  156. a.DoGetDataEx(&m)
  157. } else {
  158. a.Gin.Response(http.StatusBadRequest, e.INVALID_PARAMS, nil)
  159. }
  160. }
  161. // QueryAreaStockReportDetail
  162. // @Summary 查询库存报表明细
  163. // @Produce json
  164. // @Security ApiKeyAuth
  165. // @Param userid query int true "用户ID"
  166. // @Param querytype query int true "查询类型 1-日报表明细 2-月报表明细"
  167. // @Param detailtype query int true "明细类型 1:入库明细(采购入库+生产入库) 2:出库明细(销售出库+生产出库)"
  168. // @Param querydate query string true "查询日期(格式 日报表YYYYMMDD, 月报表YYYYMM)"
  169. // @Param wrstandardid query int false "现货商品ID"
  170. // @Param spotgoodsbrandid query int false "品牌ID"
  171. // @Param spotgoodsmodelid query int false "型号ID"
  172. // @Param warehouseinfoid query int false "仓库ID"
  173. // @Success 200 {array} models.ErmcpAreaStockApply
  174. // @Failure 500 {object} app.Response
  175. // @Router /Ermcp/QueryAreaStockReportDetail [get]
  176. // @Tags 企业风险管理(app)
  177. func QueryAreaStockReportDetail(c *gin.Context) {
  178. a := app.GinUtils{Gin: app.Gin{C: c}}
  179. req := QueryAreaStockReportReq{}
  180. a.DoBindReq(&req)
  181. if QueryDate(req.QUERYDATE).IsNumberic(req.QUERYTYPE) {
  182. var beginDate, endDate string
  183. if req.QUERYTYPE == 1 {
  184. beginDate = req.QUERYDATE
  185. endDate = beginDate
  186. } else if req.QUERYTYPE == 2 {
  187. beginDate = req.QUERYDATE + "01"
  188. endDate = req.QUERYDATE + "31"
  189. }
  190. m := models.ErmcpAreaStockApply{USERID: req.USERID, WRSTANDARDID: req.WRSTANDARDID,
  191. SPOTGOODSBRANDID: req.SPOTGOODSBRANDID, SPOTGOODSMODELID: req.SPOTGOODSMODELID,
  192. WAREHOUSEINFOID: req.WAREHOUSEINFOID, BeginDate: beginDate, EndDate: endDate, APPLYSTATUS: 2}
  193. // 出入库类型(可多项,逗号隔开) 1:采购入库 2:销售出库 3:生产入库 4:生产出库"
  194. if req.DETAILTYPE == 1 {
  195. m.FilterStatus = "1,3"
  196. } else if req.DETAILTYPE == 2 {
  197. m.FilterStatus = "2,4"
  198. }
  199. a.DoGetDataEx(&m)
  200. } else {
  201. a.Gin.Response(http.StatusBadRequest, e.INVALID_PARAMS, nil)
  202. }
  203. }