From a2302df7ce372249b617e483d83a75f3312fbac2 Mon Sep 17 00:00:00 2001 From: liujiandao <274878379@qq.com> Date: 星期一, 18 三月 2024 16:09:07 +0800 Subject: [PATCH] crm查询采购信息3 --- api/v1/purchase/purchase.go | 101 +++++++++++++++++++++++++++++++++++++++++++++----- 1 files changed, 91 insertions(+), 10 deletions(-) diff --git a/api/v1/purchase/purchase.go b/api/v1/purchase/purchase.go index c037be0..c847f43 100644 --- a/api/v1/purchase/purchase.go +++ b/api/v1/purchase/purchase.go @@ -2,20 +2,16 @@ import ( "context" - "fmt" "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" @@ -55,8 +51,6 @@ 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) { @@ -196,11 +190,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) @@ -242,6 +236,7 @@ response.FailWithMessage(err.Error(), c) return } + warehouse := "" if params.Status == purchase.OrderStatusReceived { data, err := service.NewPurchaseService().GetPurchase(uint(params.Id)) if err != nil { @@ -263,19 +258,21 @@ product = append(product, &p) } client := purchase_wms.NewPurchaseServiceClient(purchase_wms.PurchaseConn) - _, err = client.PurchaseToWms(context.Background(), &purchase_wms.PurchaseToWmsRequest{ + 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) + err = service.NewPurchaseService().Submit(params.Id, params.Status, warehouse) if err != nil { global.GVA_LOG.Error("鏇存柊澶辫触!", zap.Error(err)) response.FailWithMessage("鏇存柊澶辫触", c) @@ -334,3 +331,87 @@ } response.OkWithDetailed(list, "鑾峰彇鎴愬姛", c) } + +// GetWarehouseInfo +// @Tags Purchase +// @Summary 鑾峰彇浠撳簱鍒楄〃 +// @Security ApiKeyAuth +// @accept application/json +// @Produce application/json +// @Success 200 {object} response.Response{data=[]purchase_wms.SrmGetWarehouseInfoResponse} "鑾峰彇閲囪喘绫诲瀷鍒楄〃" +// @Router /purchase/getWarehouseInfo [get] +func (e *PurchaseApi) GetWarehouseInfo(c *gin.Context) { + client := purchase_wms.NewPurchaseServiceClient(purchase_wms.PurchaseConn) + info, err := client.SrmGetWarehouseInfo(context.Background(), &purchase_wms.SrmGetWarehouseInfoRequest{}) + if err != nil { + global.GVA_LOG.Error("grpc璋冪敤澶辫触!", zap.Error(err)) + response.FailWithMessage("grpc璋冪敤澶辫触", c) + return + } + response.OkWithData(info, c) +} + +// GetOperationInfo +// @Tags Purchase +// @Summary 鑾峰彇鎿嶄綔淇℃伅 +// @Security ApiKeyAuth +// @accept application/json +// @Produce application/json +// @Success 200 {object} response.Response{data=[]purchaseRes.OperationInfo} "鑾峰彇鎿嶄綔淇℃伅" +// @Router /purchase/getOperationInfo/{id} [get] +func (e *PurchaseApi) GetOperationInfo(c *gin.Context) { + id, _ := strconv.Atoi(c.Param("id")) + if id == 0 { + response.FailWithMessage("鍙傛暟缂哄け", c) + return + } + data, err := service.NewPurchaseService().GetPurchase(uint(id)) + if err != nil { + global.GVA_LOG.Error("鑾峰彇澶辫触!", zap.Error(err)) + response.FailWithMessage("鑾峰彇澶辫触", c) + return + } + productList, err := service.NewPurchaseService().GetPurchaseProductList(uint(id)) + if err != nil { + global.GVA_LOG.Error("鑾峰彇澶辫触!", zap.Error(err)) + response.FailWithMessage("鑾峰彇澶辫触", c) + return + } + client := purchase_wms.NewPurchaseServiceClient(purchase_wms.PurchaseConn) + info, err := client.SrmGetOperationInfo(context.Background(), &purchase_wms.SrmGetOperationInfoRequest{Number: data.Number}) + if err != nil { + global.GVA_LOG.Error("grpc璋冪敤澶辫触!", zap.Error(err)) + response.FailWithMessage("grpc璋冪敤澶辫触", c) + return + } + + operationInfos := make([]purchaseRes.OperationInfo, 0) + for _, operation := range info.Operations { + var oi purchaseRes.OperationInfo + oi.Number = operation.ProductId + oi.Name = operation.ProductName + oi.OperationNumber = operation.Number + oi.Status = operation.Status + oi.Principal = data.Principal + oi.WarehouseName = data.Warehouse + if operation.OverTime != "" { + oi.OverTime = operation.OverTime + oi.OverAmount = operation.Amount + } else { + oi.SendAmount = operation.Amount + } + for _, products := range productList { + if products.Product.Number == operation.ProductId { + oi.Amount = products.Amount + oi.PurchasePrice = products.Price + oi.Total = products.Total + oi.Unit = products.Product.Unit + oi.Specifications = products.Product.Specifications + oi.ModelNumber = products.Product.ModelNumber + break + } + } + operationInfos = append(operationInfos, oi) + } + response.OkWithData(operationInfos, c) +} -- Gitblit v1.8.0