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 ++++++++++++++++++++++++++++++++++++++
 1 files changed, 76 insertions(+), 1 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(&params)
+	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)
+}

--
Gitblit v1.8.0