From 21c3a18da3d6cc53c7695d795a41dd6bee59f243 Mon Sep 17 00:00:00 2001 From: liujiandao <274878379@qq.com> Date: 星期六, 23 三月 2024 16:31:34 +0800 Subject: [PATCH] 采购单全部合格入库 --- api/v1/purchase/purchase.go | 77 ++++++++++++++++++++++++++++++++++++++ router/purchase/purchase.go | 1 service/purchase/purchase.go | 13 ++++-- 3 files changed, 86 insertions(+), 5 deletions(-) diff --git a/api/v1/purchase/purchase.go b/api/v1/purchase/purchase.go index 188cdb2..ebcaad4 100644 --- a/api/v1/purchase/purchase.go +++ b/api/v1/purchase/purchase.go @@ -526,7 +526,7 @@ response.FailWithMessage("淇濆瓨澶辫触", c) return } - err = server.SavePurchaseQualityInspection(list) + _, err = server.SavePurchaseQualityInspection(list) if err != nil { global.GVA_LOG.Error("淇濆瓨澶辫触!", zap.Error(err)) response.FailWithMessage("淇濆瓨澶辫触", c) @@ -641,3 +641,78 @@ } response.OkWithMessage("璐ㄦ鎴愬姛", c) } + +// AllProductInWarehouse +// @Tags Purchase +// @Summary 鍏ㄩ儴鍚堟牸鍏ュ簱 +// @Security ApiKeyAuth +// @accept application/json +// @Produce application/json +// @Param data body purchaserequest.SaveQualityInspectionInfo true "鍙傛暟" +// @Success 200 {object} response.Response{data=[]purchase.PurchaseProductConfirm} "鑾峰彇纭淇℃伅" +// @Router /purchase/allProductInWarehouse [post] +func (e *PurchaseApi) AllProductInWarehouse(c *gin.Context) { + var params []*purchaserequest.PurchaseProductConfirmInfo + err := c.ShouldBindJSON(¶ms) + if err != nil { + response.FailWithMessage(err.Error(), c) + return + } + + list := make([]*purchase.PurchaseProductConfirm, 0, len(params)) + if err := utils.AssignTo(params, &list); err != nil { + response.FailWithMessage(err.Error(), c) + return + } + + server := service.NewPurchaseService() + err = server.SavePurchaseProductConfirm(list) + + if err != nil { + global.GVA_LOG.Error("淇濆瓨澶辫触!", zap.Error(err)) + response.FailWithMessage("淇濆瓨澶辫触", c) + return + } + inspectionList, err := server.SavePurchaseQualityInspection(list) + if err != nil { + global.GVA_LOG.Error("淇濆瓨澶辫触!", zap.Error(err)) + response.FailWithMessage("淇濆瓨澶辫触", c) + return + } + purchaseData, err := server.GetPurchaseByNumber(list[0].PurchaseNumber) + if err != nil { + global.GVA_LOG.Error("鑾峰彇澶辫触!", zap.Error(err)) + response.FailWithMessage("鑾峰彇澶辫触", c) + return + } + product := make([]*purchase_wms.PurchaseProduct, 0) + ids := make([]int, 0) + for _, inspection := range inspectionList { + var p purchase_wms.PurchaseProduct + p.Id = inspection.ProductId + p.Amount = inspection.Amount.IntPart() + product = append(product, &p) + ids = append(ids, int(inspection.ID)) + } + client := purchase_wms.NewPurchaseServiceClient(purchase_wms.PurchaseConn) + _, err = client.PurchaseToWms(context.Background(), &purchase_wms.PurchaseToWmsRequest{ + Number: purchaseData.Number, + SupplierName: purchaseData.Supplier.Name, + SupplierId: int64(purchaseData.SupplierId), + Product: product, + Source: "SRM_PURCHASE", + WarehouseName: purchaseData.Warehouse, + }) + if err != nil { + global.GVA_LOG.Error("grpc璋冪敤澶辫触!", zap.Error(err)) + response.FailWithMessage("grpc璋冪敤澶辫触", c) + return + } + err = server.UpdatePurchaseQualityInspection(ids, purchase.InWarehouse) + if err != nil { + global.GVA_LOG.Error("璐ㄦ澶辫触!", zap.Error(err)) + response.FailWithMessage("璐ㄦ澶辫触", c) + return + } + response.OkWithMessage("璐ㄦ鎴愬姛", c) +} diff --git a/router/purchase/purchase.go b/router/purchase/purchase.go index 740c698..f582439 100644 --- a/router/purchase/purchase.go +++ b/router/purchase/purchase.go @@ -24,6 +24,7 @@ purchaseRouter.POST("savePurchaseProductConfirm", PurchaseApi.SavePurchaseProductConfirm) // 纭鏀惰揣 purchaseRouter.POST("getPurchaseQualityInspectionInfo", PurchaseApi.GetPurchaseQualityInspectionInfo) // 鑾峰彇閲囪喘璐ㄦ淇℃伅淇℃伅 purchaseRouter.POST("savePurchaseQualityInspectionInfo", PurchaseApi.SavePurchaseQualityInspectionInfo) // 淇濆瓨閲囪喘璐ㄦ淇℃伅淇℃伅 + purchaseRouter.POST("allProductInWarehouse", PurchaseApi.AllProductInWarehouse) // 鍏ㄩ儴鍚堟牸鍏ュ簱 } qualityInspectRouter := Router.Group("purchase") diff --git a/service/purchase/purchase.go b/service/purchase/purchase.go index 1fbe313..045ff67 100644 --- a/service/purchase/purchase.go +++ b/service/purchase/purchase.go @@ -120,6 +120,11 @@ return } +func (slf *PurchaseService) GetPurchaseByNumber(number string) (purchase purchase.Purchase, err error) { + err = global.GVA_DB.Where("number = ?", number).Preload("Supplier").First(&purchase).Error + return +} + //@function: GetPurchaseList //@description: 鍒嗛〉鑾峰彇閲囪喘鍗曞垪琛� //@param: info request.PageInfo @@ -354,9 +359,9 @@ return list, err } -func (slf *PurchaseService) SavePurchaseQualityInspection(list []*purchase.PurchaseProductConfirm) (err error) { +func (slf *PurchaseService) SavePurchaseQualityInspection(list []*purchase.PurchaseProductConfirm) ([]*purchase.PurchaseQualityInspection, error) { if len(list) == 0 { - return errors.New("浜у搧鍒楄〃涓嶈兘涓虹┖") + return nil, errors.New("浜у搧鍒楄〃涓嶈兘涓虹┖") } purchaseNumber := list[0].PurchaseNumber qualityList := make([]*purchase.PurchaseQualityInspection, 0) @@ -374,8 +379,8 @@ pqi.Type = confirm.Type qualityList = append(qualityList, &pqi) } - err = global.GVA_DB.Model(purchase.PurchaseQualityInspection{}).Create(qualityList).Error - return err + err := global.GVA_DB.Model(purchase.PurchaseQualityInspection{}).Create(qualityList).Error + return qualityList, err } func (slf *PurchaseService) GetPurchaseQualityInspection(params purchaserequest.GetQualityInspectionInfo) ([]*purchase.PurchaseQualityInspection, error) { -- Gitblit v1.8.0