From 84d2953e7b641600779e7aecc80bdd35e96d31d6 Mon Sep 17 00:00:00 2001 From: jiangshuai <291802688@qq.com> Date: 星期二, 06 二月 2024 10:13:12 +0800 Subject: [PATCH] 拦截器 --- api/v1/purchase/purchase.go | 60 ++++++++++++++++++++++++++++++++++++++++++++++++------------ 1 files changed, 48 insertions(+), 12 deletions(-) diff --git a/api/v1/purchase/purchase.go b/api/v1/purchase/purchase.go index 0a5c918..e723875 100644 --- a/api/v1/purchase/purchase.go +++ b/api/v1/purchase/purchase.go @@ -1,19 +1,17 @@ package purchase import ( - "fmt" + "context" "github.com/gin-gonic/gin" "go.uber.org/zap" "gorm.io/gorm" "srm/global" - "srm/model/common/request" "srm/model/common/response" "srm/model/purchase" purchaserequest "srm/model/purchase/request" + "srm/proto/purchase_wms" "strconv" "strings" - "time" - //"srm/model/purchase" //"srm/model/purchase" @@ -53,8 +51,8 @@ purchaseRecord.Status = purchase.OrderStatusConfirmed purchaseRecord.HandledBy = "admin" purchaseRecord.Creator = "admin" - purchaseRecord.Number = fmt.Sprintf("CG%v", time.Now().Unix()) purchaseRecord.Principal = "admin" + purchaseRecord.OrderType = "閲囪喘璁㈠崟" if !purchaseRecord.WholeDiscountType.IsValid(purchaseRecord.TotalPrice, purchaseRecord.WholeDiscount) { response.FailWithMessage("鏁村崟鎶樻墸鏁板�间笉姝g‘", c) @@ -193,11 +191,11 @@ // @Security ApiKeyAuth // @accept application/json // @Produce application/json -// @Param data query request.PageInfo true "椤电爜, 姣忛〉澶у皬" +// @Param data query purchaserequest.PurchaseSearch true "鍙傛暟" // @Success 200 {object} response.Response{data=response.PageResult,msg=string} "鍒嗛〉鑾峰彇閲囪喘鍗曞垪琛�,杩斿洖鍖呮嫭鍒楄〃,鎬绘暟,椤电爜,姣忛〉鏁伴噺" // @Router /purchase/purchaseList [get] func (e *PurchaseApi) GetPurchaseList(c *gin.Context) { - var pageInfo request.PageInfo + var pageInfo purchaserequest.PurchaseSearch err := c.ShouldBindQuery(&pageInfo) if err != nil { response.FailWithMessage(err.Error(), c) @@ -230,14 +228,52 @@ // @Produce application/json // @Param id path int true "閲囪喘鍗旾D" // @Success 200 {object} response.Response{msg=string} "鎻愪氦閲囪喘鍗�" -// @Router /purchase/submit/{id} [post] +// @Router /purchase/submit [post] func (e *PurchaseApi) Submit(c *gin.Context) { - id, _ := strconv.Atoi(c.Param("id")) - if id == 0 { - response.FailWithMessage("鍙傛暟缂哄け", c) + var params purchaserequest.SubmitPurchase + err := c.ShouldBindJSON(¶ms) + if err != nil { + global.GVA_LOG.Error("Submit failed", zap.Error(err)) + response.FailWithMessage(err.Error(), c) return } - err := service.NewPurchaseService().Submit(uint(id)) + warehouse := "" + if params.Status == purchase.OrderStatusReceived { + data, err := service.NewPurchaseService().GetPurchase(uint(params.Id)) + if err != nil { + global.GVA_LOG.Error("鑾峰彇澶辫触!", zap.Error(err)) + response.FailWithMessage("鑾峰彇澶辫触", c) + return + } + productList, err := service.NewPurchaseService().GetPurchaseProductList(uint(params.Id)) + if err != nil { + global.GVA_LOG.Error("鑾峰彇澶辫触!", zap.Error(err)) + response.FailWithMessage("鑾峰彇澶辫触", c) + return + } + product := make([]*purchase_wms.PurchaseProduct, 0) + for _, products := range productList { + var p purchase_wms.PurchaseProduct + p.Id = products.Product.Number + p.Amount = products.Amount.IntPart() + product = append(product, &p) + } + client := purchase_wms.NewPurchaseServiceClient(purchase_wms.PurchaseConn) + resp, err := client.PurchaseToWms(context.Background(), &purchase_wms.PurchaseToWmsRequest{ + Number: data.Number, + SupplierName: data.Supplier.Name, + Product: product, + Source: "SRM_PURCHASE", + }) + if err != nil { + global.GVA_LOG.Error("grpc璋冪敤澶辫触!", zap.Error(err)) + response.FailWithMessage("grpc璋冪敤澶辫触", c) + return + } + warehouse = resp.Warehouse + } + + err = service.NewPurchaseService().Submit(params.Id, params.Status, warehouse) if err != nil { global.GVA_LOG.Error("鏇存柊澶辫触!", zap.Error(err)) response.FailWithMessage("鏇存柊澶辫触", c) -- Gitblit v1.8.0