From 69f0410081da54e6cea8a04a07fd0119a8edc623 Mon Sep 17 00:00:00 2001
From: liujiandao <274878379@qq.com>
Date: 星期六, 30 三月 2024 11:38:42 +0800
Subject: [PATCH] 采购单修改
---
api/v1/purchase/purchase.go | 86 ++++++++++++++++++++++++++----------------
1 files changed, 53 insertions(+), 33 deletions(-)
diff --git a/api/v1/purchase/purchase.go b/api/v1/purchase/purchase.go
index e571258..b81fe5a 100644
--- a/api/v1/purchase/purchase.go
+++ b/api/v1/purchase/purchase.go
@@ -394,59 +394,75 @@
return
}
- operationInfos := make([]purchaseRes.OperationInfo, 0)
+ var operationInfos purchaseRes.OperationInfo
+ productInfos := make([]purchaseRes.ProductInfo, 0)
+ inWarehouseInfos := make([]purchaseRes.InWarehouseInfo, 0)
+ productMap := make(map[string]*purchaseRes.ProductInfo)
if len(info.Operations) > 0 {
for _, operation := range info.Operations {
- var oi purchaseRes.OperationInfo
- oi.Number = operation.ProductId
- oi.Name = operation.ProductName
- oi.OperationNumber = operation.Number
- oi.Status = operation.Status
- oi.Principal = data.Principal
- oi.WarehouseName = data.Warehouse
+ var pi purchaseRes.ProductInfo
+ var iwi purchaseRes.InWarehouseInfo
+ if p, ok := productMap[operation.ProductId]; ok {
+ pi = *p
+ }
+ pi.Number = operation.ProductId
+ pi.Name = operation.ProductName
+ iwi.Number = operation.ProductId
+ iwi.Name = operation.ProductName
+ iwi.OperationNumber = operation.Number
+ iwi.Status = operation.Status
+ iwi.Principal = data.Principal
+ iwi.WarehouseName = data.Warehouse
if operation.OverTime != "" {
- oi.OverTime = operation.OverTime
- oi.OverAmount = operation.Amount
+ iwi.OverTime = operation.OverTime
+ iwi.OverAmount = operation.Amount
+ pi.OverAmount = pi.OverAmount + operation.Amount
}
for _, products := range productList {
if products.Product.Number == operation.ProductId {
- oi.Amount = products.Amount
- oi.PurchasePrice = products.Price
- oi.Total = products.Total
- oi.Unit = products.Product.Unit
- oi.Specifications = products.Product.Specifications
- oi.ModelNumber = products.Product.ModelNumber
+ pi.Amount = products.Amount
+ pi.PurchasePrice = products.Price
+ pi.Total = products.Total
+ pi.Unit = products.Product.Unit
+ pi.Specifications = products.Product.Specifications
+ pi.ModelNumber = products.Product.ModelNumber
break
}
}
for _, confirm := range confirmInfo {
if operation.ProductId == confirm.ProductId {
- oi.SendAmount = confirm.OverReceiveAmount.IntPart()
+ pi.SendAmount = confirm.OverReceiveAmount.IntPart()
break
}
}
- operationInfos = append(operationInfos, oi)
+ inWarehouseInfos = append(inWarehouseInfos, iwi)
+ productMap[operation.ProductId] = &pi
}
} else {
for _, products := range productList {
- var oi purchaseRes.OperationInfo
- oi.Number = products.Product.Number
- oi.Name = products.Product.Name
- oi.Amount = products.Amount
- oi.PurchasePrice = products.Price
- oi.Total = products.Total
- oi.Unit = products.Product.Unit
- oi.Specifications = products.Product.Specifications
- oi.ModelNumber = products.Product.ModelNumber
+ var pi purchaseRes.ProductInfo
+ pi.Number = products.Product.Number
+ pi.Name = products.Product.Name
+ pi.Amount = products.Amount
+ pi.PurchasePrice = products.Price
+ pi.Total = products.Total
+ pi.Unit = products.Product.Unit
+ pi.Specifications = products.Product.Specifications
+ pi.ModelNumber = products.Product.ModelNumber
for _, confirm := range confirmInfo {
if products.Product.Number == confirm.ProductId {
- oi.SendAmount = confirm.OverReceiveAmount.IntPart()
+ pi.SendAmount = confirm.OverReceiveAmount.IntPart()
break
}
}
- operationInfos = append(operationInfos, oi)
+ productMap[pi.Number] = &pi
}
}
+ for _, productInfo := range productMap {
+ productInfos = append(productInfos, *productInfo)
+ }
+ operationInfos.InWarehouseInfos = inWarehouseInfos
+ operationInfos.ProductInfos = productInfos
response.OkWithData(operationInfos, c)
}
@@ -739,13 +755,17 @@
}
product := make([]*purchase_wms.PurchaseProduct, 0)
ids := make([]int, 0)
+ productMap := make(map[string]int64)
for _, inspection := range inspectionList {
- var p purchase_wms.PurchaseProduct
- p.Id = inspection.ProductId
- p.Amount = inspection.Amount.IntPart()
- product = append(product, &p)
+ productMap[inspection.ProductId] = inspection.Amount.IntPart()
ids = append(ids, int(inspection.ID))
}
+ for k, v := range productMap {
+ var p purchase_wms.PurchaseProduct
+ p.Id = k
+ p.Amount = v
+ product = append(product, &p)
+ }
client := purchase_wms.NewPurchaseServiceClient(purchase_wms.PurchaseConn)
_, err = client.PurchaseToWms(context.Background(), &purchase_wms.PurchaseToWmsRequest{
Number: purchaseData.Number,
--
Gitblit v1.8.0