From a8914a16b23e93f6bfd12bcfd5cbe8b24cf7eb84 Mon Sep 17 00:00:00 2001 From: zhangqian <zhangqian@123.com> Date: 星期日, 07 四月 2024 21:49:01 +0800 Subject: [PATCH] 发货支持仓库传参 --- proto/product_inventory/server.go | 16 ++++++++++++++-- 1 files changed, 14 insertions(+), 2 deletions(-) diff --git a/proto/product_inventory/server.go b/proto/product_inventory/server.go index 41a6b6e..4bf5368 100644 --- a/proto/product_inventory/server.go +++ b/proto/product_inventory/server.go @@ -234,7 +234,7 @@ "wms_operation.number,wms_operation.waybill_number, logistic_company.name, wms_operation.base_operation_type, wms_operation.status, wms_operation.created_at"). Joins("left join wms_operation on wms_operation.id = wms_operation_details.operation_id"). Joins("left join logistic_company on logistic_company.id = wms_operation.logistic_company_id"). - Where("wms_operation.source_number = ?", req.Number). + Where("wms_operation.sales_details_number = ?", req.Number). Where("wms_operation.base_operation_type in ?", []constvar.BaseOperationType{ constvar.BaseOperationTypeIncoming, constvar.BaseOperationTypeOutgoing}). Where("wms_operation.status in ?", []constvar.OperationStatus{constvar.OperationStatus_Ready, constvar.OperationStatus_Finish}) @@ -351,6 +351,9 @@ inputLocationAmountMap := make(map[int64]map[string]decimal.Decimal) outputLocationAmountMap := make(map[int64]map[string]decimal.Decimal) for _, v := range outputList { + if req.WarehouseId != 0 && v.WareHouseID != req.WarehouseId { + continue + } if outputProductMap[v.Number] == nil { simpleInfo := &OutputSimpleInfo{ Number: v.Number, @@ -364,6 +367,9 @@ } } for _, v := range inputList { + if req.WarehouseId != 0 && v.WareHouseID != req.WarehouseId { + continue + } if inputProductMap[v.Number] == nil { storeInfo := &StoreInfo{ Number: v.Number, @@ -402,6 +408,9 @@ LocationIDWarehouseIDMap := make(map[int64]int64) for _, output := range outputList { + if req.WarehouseId != 0 && output.WareHouseID != req.WarehouseId { + continue + } if outputLocationAmountMap[output.LocationID] == nil { outputLocationAmountMap[output.LocationID] = make(map[string]decimal.Decimal) } @@ -409,6 +418,9 @@ outputLocationAmountMap[output.LocationID][output.Number] = outputAmount } for _, input := range inputList { + if req.WarehouseId != 0 && input.WareHouseID != req.WarehouseId { + continue + } LocationIDWarehouseIDMap[input.LocationID] = input.WareHouseID if inputLocationAmountMap[input.LocationID] == nil { @@ -473,7 +485,7 @@ return nil, errors.New("鍙傛暟涓嶈兘涓虹┖") } result := new(GetOutputOperationInfoResponse) - first, err := models.NewOperationSearch().SetSourceNumber(req.Number).SetStatus(constvar.OperationStatus_Finish).First() + first, err := models.NewOperationSearch().SetSourceNumber(req.Number).SetBaseOperationType(constvar.BaseOperationTypeOutgoing).SetStatus(constvar.OperationStatus_Finish).First() if err != nil { if err == gorm.ErrRecordNotFound { return result, nil -- Gitblit v1.8.0