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