From 57c1d91e82ec4085ccedf099063cd14e609a301f Mon Sep 17 00:00:00 2001
From: jiangshuai <291802688@qq.com>
Date: 星期三, 15 十一月 2023 16:36:50 +0800
Subject: [PATCH] Merge branch 'master' of http://192.168.5.5:10010/r/aps/WMS

---
 controllers/reorder_rule_controller.go |   53 +++++++++++++++++++++++++++++++++++++++++++++++------
 1 files changed, 47 insertions(+), 6 deletions(-)

diff --git a/controllers/reorder_rule_controller.go b/controllers/reorder_rule_controller.go
index a2b1dbe..4eeaa18 100644
--- a/controllers/reorder_rule_controller.go
+++ b/controllers/reorder_rule_controller.go
@@ -17,6 +17,7 @@
 	"wms/pkg/logx"
 	"wms/pkg/timex"
 	"wms/proto/inventory_order"
+	"wms/proto/purchase_wms"
 	"wms/request"
 )
 
@@ -289,6 +290,16 @@
 		util.ResponseFormat(c, code.RequestParamError, "鍙傛暟瑙f瀽澶辫触锛屾暟鎹被鍨嬮敊璇�")
 		return
 	}
+	if params.Route == "閲囪喘" {
+		client := purchase_wms.NewPurchaseServiceClient(PurchaseServiceConn)
+		resp, err := client.GetSupplierListByProductId(c, &purchase_wms.GetSupplierListByProductIdRequest{ProductId: params.ProductId})
+		if err != nil {
+			util.ResponseFormat(c, code.RequestParamError, "grpc璋冪敤澶辫触")
+			return
+		}
+		util.ResponseFormat(c, code.Success, resp.List)
+		return
+	}
 	client := inventory_order.NewInventoryOrderServiceClient(InventoryOrderServiceConn)
 	order, err := client.CreateNewOrder(c, &inventory_order.CreateNewOrderRequest{
 		OrderNumber: params.OrderNumber.IntPart(),
@@ -300,18 +311,25 @@
 		util.ResponseFormat(c, code.RequestParamError, "grpc璋冪敤澶辫触")
 		return
 	}
+	err = orderAgain(params, order.OrderId)
+	if err != nil {
+		util.ResponseFormat(c, code.RequestParamError, "閲嶈澶辫触")
+		return
+	}
+	util.ResponseFormat(c, code.Success, "閲嶈鎴愬姛")
+}
+
+func orderAgain(params models.ReorderRule, SourceNumber string) error {
 	location, err := models.NewLocationSearch().SetID(params.LocationId).First()
 	if err != nil {
-		util.ResponseFormat(c, code.RequestParamError, "鏌ヨ浣嶇疆淇℃伅澶辫触")
-		return
+		return err
 	}
 	houseCode := strings.Split(location.JointName, "/")[0]
 	var operationType models.OperationType
 	err = models.NewOperationTypeSearch().Orm.Model(&models.OperationType{}).Joins("left join wms_warehouse on wms_job_type.warehouse_id = wms_warehouse.id").
 		Where("wms_job_type.base_operation_type = 1 and wms_warehouse.code = ?", houseCode).First(&operationType).Error
 	if err != nil {
-		util.ResponseFormat(c, code.RequestParamError, "鏌ヨ浣嶇疆淇℃伅澶辫触")
-		return
+		return err
 	}
 	var operation models.Operation
 	var details models.OperationDetails
@@ -327,7 +345,7 @@
 	operation.FromLocationID = 1
 	operation.Number = strconv.FormatInt(time.Now().Unix(), 10)
 	operation.ToLocationID = params.LocationId
-	operation.SourceNumber = order.OrderId
+	operation.SourceNumber = SourceNumber
 
 	err = models.WithTransaction(func(db *gorm.DB) error {
 		if err = models.NewOperationSearch().SetOrm(db).Create(&operation); err != nil {
@@ -337,9 +355,32 @@
 		err = models.NewReorderRuleSearch().SetOrm(db).SetID(params.Id).Update(&params)
 		return err
 	})
+
+	return err
+}
+
+// SubmitOrder
+// @Tags      閲嶈璐ц鍒�
+// @Summary   鍐嶈涓�娆�
+// @Produce   application/json
+// @Param     object  body  models.ReorderRule true  "鍙傛暟"
+// @Success   200 {object} util.Response "鎴愬姛"
+// @Router    /api-wms/v1/reorderRule/submitOrder [post]
+func (slf ReorderRuleController) SubmitOrder(c *gin.Context) {
+	var params models.ReorderRule
+	client := purchase_wms.NewPurchaseServiceClient(PurchaseServiceConn)
+	resp, err := client.CreatePurchaseByWms(c, &purchase_wms.CreatePurchaseByWmsRequest{
+		SupplierId: params.SupplierId,
+		ProductId:  params.ProductId,
+		Amount:     params.OrderNumber.IntPart(),
+	})
+	if err != nil {
+		util.ResponseFormat(c, code.RequestParamError, "grpc璋冪敤澶辫触")
+		return
+	}
+	err = orderAgain(params, resp.PurchaseNumber)
 	if err != nil {
 		util.ResponseFormat(c, code.RequestParamError, "閲嶈澶辫触")
 		return
 	}
-	util.ResponseFormat(c, code.Success, "閲嶈鎴愬姛")
 }

--
Gitblit v1.8.0