From bd33bea0f3b44e608fcb4d9aa9d1f51a2f5bcf17 Mon Sep 17 00:00:00 2001 From: zhangqian <zhangqian@123.com> Date: 星期日, 07 四月 2024 19:26:17 +0800 Subject: [PATCH] 新增按仓库分组的发货准备接口 --- api/v1/product.go | 93 ++++++++++++++++++++++++++++++++++++++++++++++ 1 files changed, 93 insertions(+), 0 deletions(-) diff --git a/api/v1/product.go b/api/v1/product.go index a58e4a2..a61ea18 100644 --- a/api/v1/product.go +++ b/api/v1/product.go @@ -97,6 +97,7 @@ productList[k].Unit = v.Unit productList[k].Type = v.Type productList[k].Specs = v.Specs + productList[k].Price = decimal.NewFromFloat(v.SalePrice) } ctx.OkWithDetailed(response.ListResponse{ @@ -155,6 +156,31 @@ ctx.Ok() return } + first, err := model.NewSalesDetailsSearch().SetPreload(true).SetNumber(number).First() + if err != nil { + ctx.FailWithMsg(ecode.DBErr, "鏌ヨ閿�鍞槑缁嗗嚭閿�") + return + } + productInfo := make([]response.SalesDetailsProductInfo, 0) + amountMap := make(map[string]int64) + overMap := make(map[string]int64) + for _, p := range first.Products { + amountMap[p.Number] = 0 + overMap[p.Number] = 0 + var sdpi response.SalesDetailsProductInfo + sdpi.ProductId = p.Number + sdpi.ProductName = p.Name + sdpi.Specs = p.Specs + sdpi.Unit = p.Unit + sdpi.Amount = p.Amount + sdpi.Cost = p.Cost + sdpi.Price = p.Price + sdpi.Total = p.Total + sdpi.Profit = p.Profit + sdpi.Margin = p.Margin + productInfo = append(productInfo, sdpi) + } + client := product.NewProductServiceClient(grpc_init.CrmApsGrpcServiceConn) info, err := client.GetProductOrder(ctx.GetCtx(), &product.GetProductOrderRequest{SalesDetailsNumber: number}) if err != nil { @@ -163,6 +189,7 @@ return } var result response.Info + //鍒堕�犱俊鎭� var list []response.WorkOrderInfo for _, orderInfo := range info.List { var wo response.WorkOrderInfo @@ -173,9 +200,27 @@ wo.WorkOrderStatus = orderInfo.WorkOrderStatus wo.StartTime = orderInfo.StartTime wo.EndTime = orderInfo.EndTime + wo.ProductId = orderInfo.ProductId + wo.Specs = orderInfo.Specs + wo.Unit = orderInfo.Unit + wo.Amount = orderInfo.Amount + wo.FinishAmount = orderInfo.FinishAmount + at := amountMap[orderInfo.ProductId] + orderInfo.Amount + amountMap[orderInfo.ProductId] = at + fat := overMap[orderInfo.ProductId] + orderInfo.FinishAmount + overMap[orderInfo.ProductId] = fat list = append(list, wo) } + for i := 0; i < len(productInfo); i++ { + productInfo[i].MakeAmount = amountMap[productInfo[i].ProductId] + amountMap[productInfo[i].ProductId] = 0 + productInfo[i].MakeFinishAmount = overMap[productInfo[i].ProductId] + productInfo[i].FinishAmount = productInfo[i].FinishAmount + overMap[productInfo[i].ProductId] + overMap[productInfo[i].ProductId] = 0 + } result.MakeInfo = list + + //閲囪喘淇℃伅 var purchaseInfo []response.Purchase for _, pl := range info.PurchaseList { var p response.Purchase @@ -184,8 +229,56 @@ p.PurchaseName = pl.PurchaseName p.PurchaseNumber = pl.PurchaseNumber p.SupplierName = pl.SupplierName + p.ProductId = pl.ProductId + p.ProductName = pl.ProductName + p.Specs = pl.Specs + p.Unit = pl.Unit + p.Amount = pl.Amount + p.FinishAmount = pl.FinishAmount + at := amountMap[pl.ProductId] + pl.Amount + amountMap[pl.ProductId] = at + fat := overMap[pl.ProductId] + pl.FinishAmount + overMap[pl.ProductId] = fat purchaseInfo = append(purchaseInfo, p) } + for i := 0; i < len(productInfo); i++ { + productInfo[i].PurchaseAmount = amountMap[productInfo[i].ProductId] + amountMap[productInfo[i].ProductId] = 0 + productInfo[i].PurchaseFinishAmount = overMap[productInfo[i].ProductId] + productInfo[i].FinishAmount = productInfo[i].FinishAmount + overMap[productInfo[i].ProductId] + overMap[productInfo[i].ProductId] = 0 + } result.PurchaseInfo = purchaseInfo + + //濮斿淇℃伅 + var outsourcingList []response.OutsourcingInfo + for _, outsourcingInfo := range info.OutsourcingList { + var oi response.OutsourcingInfo + oi.OutsourcingId = outsourcingInfo.OutsourcingId + oi.OutsourcingStatus = outsourcingInfo.OutsourcingStatus + oi.ProductId = outsourcingInfo.ProductId + oi.ProductName = outsourcingInfo.ProductName + oi.SupplierName = outsourcingInfo.SupplierName + oi.StartTime = outsourcingInfo.StartTime + oi.EndTime = outsourcingInfo.EndTime + oi.Specs = outsourcingInfo.Specs + oi.Unit = outsourcingInfo.Unit + oi.Amount = outsourcingInfo.Amount + oi.FinishAmount = outsourcingInfo.FinishAmount + at := amountMap[outsourcingInfo.ProductId] + outsourcingInfo.Amount + amountMap[outsourcingInfo.ProductId] = at + fat := overMap[outsourcingInfo.ProductId] + outsourcingInfo.FinishAmount + overMap[outsourcingInfo.ProductId] = fat + outsourcingList = append(outsourcingList, oi) + } + for i := 0; i < len(productInfo); i++ { + productInfo[i].OutsourcingAmount = amountMap[productInfo[i].ProductId] + amountMap[productInfo[i].ProductId] = 0 + productInfo[i].OutsourcingFinishAmount = overMap[productInfo[i].ProductId] + productInfo[i].FinishAmount = productInfo[i].FinishAmount + overMap[productInfo[i].ProductId] + overMap[productInfo[i].ProductId] = 0 + } + result.OutsourcingInfo = outsourcingList + result.ProductInfo = productInfo ctx.OkWithDetailed(result) } -- Gitblit v1.8.0