From f281cfdc37b58493644175046abf6008016bf8cd Mon Sep 17 00:00:00 2001
From: zhangqian <zhangqian@123.com>
Date: 星期二, 19 三月 2024 14:44:15 +0800
Subject: [PATCH] fix
---
api/v1/salesDetails.go | 74 ++++++++++++++++++++++++++++++++++++-
1 files changed, 72 insertions(+), 2 deletions(-)
diff --git a/api/v1/salesDetails.go b/api/v1/salesDetails.go
index b57b78d..9386b24 100644
--- a/api/v1/salesDetails.go
+++ b/api/v1/salesDetails.go
@@ -254,7 +254,7 @@
}
number := c.Param("number")
client := product_inventory.NewProductInventoryServiceClient(grpc_init.ProductInventoryServiceConn)
- info, err := client.GetInventoryProductInfo(ctx.GetCtx(), &product_inventory.GetInventoryProductInfoRequest{Number: number})
+ info, err := client.GetOrderInputAndOutputInfo(ctx.GetCtx(), &product_inventory.GetOrderInputAndOutputInfoRequest{Number: number})
if err != nil {
if strings.Contains(err.Error(), "record not found") {
ctx.Ok()
@@ -265,11 +265,25 @@
return
}
var list []response.ProductInfo
- err = structx.AssignTo(info.ProductList, &list)
+ err = structx.AssignTo(info.OutputList, &list)
if err != nil {
ctx.FailWithMsg(ecode.UnknownErr, "杞崲閿欒")
return
}
+
+ products, err := salesDetailsService.GetProducts(number)
+ m := make(map[string]*model.Product)
+
+ for _, product := range products {
+ m[product.Number] = product
+ }
+ for k, v := range list {
+ if m[v.Number] == nil {
+ continue
+ }
+ list[k].OrderAmount = m[v.Number].Amount.String()
+ }
+
ctx.OkWithDetailed(list)
}
@@ -322,6 +336,9 @@
inputProductMap := make(map[string]*response.StoreInfo)
outputProductMap := make(map[string]*response.OutputSimpleInfo)
for _, v := range grpcOutputList {
+ if productMap[v.Number] == nil {
+ continue
+ }
if outputProductMap[v.Number] == nil {
simpleInfo := &response.OutputSimpleInfo{
Number: v.Number,
@@ -335,6 +352,9 @@
}
}
for _, v := range grpcInputList {
+ if productMap[v.Number] == nil {
+ continue
+ }
if inputProductMap[v.Number] == nil {
storeInfo := &response.StoreInfo{
Number: v.Number,
@@ -376,6 +396,56 @@
ctx.OkWithDetailed(storeList)
}
+// ConfirmOutput
+// @Tags SalesDetails
+// @Summary 纭鍙戣揣
+// @Produce application/json
+// @Param object body request.ConfirmOutput true "鏄庣粏缂栫爜"
+// @Success 200 {object} response.ListResponse
+// @Router /api/salesDetails/confirmOutput [post]
+func (s *SalesDetailsApi) ConfirmOutput(c *gin.Context) {
+ var params request.ConfirmOutput
+ ctx, ok := contextx.NewContext(c, ¶ms)
+ if !ok {
+ return
+ }
+ if len(params.Products) == 0 || params.SaleDetailNumber == "" {
+ ctx.FailWithMsg(ecode.ParamsErr, "鍙傛暟缂哄け")
+ return
+ }
+ var flag bool
+ for _, p := range params.Products {
+ if p.OutputAmount.GreaterThan(decimal.Zero) {
+ flag = true
+ }
+ }
+ if !flag {
+ ctx.FailWithMsg(ecode.ParamsErr, "鍙戣揣鏁伴噺缂哄け")
+ return
+ }
+
+ products := make([]*product_inventory.OutputProduct, 0, len(params.Products))
+ for _, product := range params.Products {
+ products = append(products, &product_inventory.OutputProduct{
+ Number: product.Number,
+ Amount: product.OutputAmount.String(),
+ })
+ }
+ client := product_inventory.NewProductInventoryServiceClient(grpc_init.ProductInventoryServiceConn)
+ _, err := client.OrderProductOutput(ctx.GetCtx(), &product_inventory.OrderProductOutputRequest{
+ OrderNumber: params.SaleDetailNumber,
+ Products: products,
+ })
+
+ if err != nil {
+ logx.Errorf("product_inventory.OrderProductOutput err:%v, params:%v", err, params)
+ ctx.FailWithMsg(ecode.UnknownErr, "鍙戣揣澶辫触"+err.Error())
+ return
+ }
+
+ ctx.OkWithDetailed(nil)
+}
+
// GetDeliveryList
// @Tags SalesDetails
// @Summary 鍙戣揣鏄庣粏
--
Gitblit v1.8.0