From a8914a16b23e93f6bfd12bcfd5cbe8b24cf7eb84 Mon Sep 17 00:00:00 2001 From: zhangqian <zhangqian@123.com> Date: 星期日, 07 四月 2024 21:49:01 +0800 Subject: [PATCH] 发货支持仓库传参 --- proto/purchase_wms/server.go | 55 ++++++++++++++++++++++++++++++++++++++++++++++++++++++- 1 files changed, 54 insertions(+), 1 deletions(-) diff --git a/proto/purchase_wms/server.go b/proto/purchase_wms/server.go index 4416273..ede24f6 100644 --- a/proto/purchase_wms/server.go +++ b/proto/purchase_wms/server.go @@ -2,9 +2,11 @@ import ( "context" + "errors" "github.com/shopspring/decimal" "gorm.io/gorm" "strconv" + "strings" "time" "wms/constvar" "wms/models" @@ -23,8 +25,11 @@ operation.Number = strconv.FormatInt(time.Now().Unix(), 10) operation.Status = constvar.OperationStatus_Ready operation.CompanyName = req.SupplierName + operation.CompanyID = int(req.SupplierId) operation.Source = req.Source - warehouse, err := models.NewWarehouseSearch().First() + operation.OperationSource = constvar.OperationSource(req.OperationSource) + operation.SalesDetailsNumber = req.SalesDetailsNumber + warehouse, err := models.NewWarehouseSearch().SetName(req.WarehouseName).First() if err != nil { return nil, err } @@ -70,3 +75,51 @@ resp.Warehouse = warehouse.Name return resp, nil } + +func (s *Server) SrmGetWarehouseInfo(c context.Context, req *SrmGetWarehouseInfoRequest) (*SrmGetWarehouseInfoResponse, error) { + warehouses, err := models.NewWarehouseSearch().FindNotTotal() + resp := new(SrmGetWarehouseInfoResponse) + if err != nil { + return resp, err + } + for _, warehouse := range warehouses { + var info SrmWarehouseInfo + info.Name = warehouse.Name + info.Address = warehouse.Address + info.Principal = warehouse.Contacts + resp.Info = append(resp.Info, &info) + } + return resp, nil +} + +func (s *Server) SrmGetOperationInfo(c context.Context, req *SrmGetOperationInfoRequest) (*SrmGetOperationInfoResponse, error) { + if req.Number == "" && req.SalesDetailsNumber == "" && req.OperationSource == 0 { + return nil, errors.New("鍙傛暟缂哄け") + } + operations, err := models.NewOperationSearch().SetSourceNumber(req.Number). + SetOperationSource(constvar.OperationSource(req.OperationSource)). + SetSalesDetailsNumber(req.SalesDetailsNumber). + SetPreload(true).FindNotTotal() + if err != nil { + return nil, err + } + srm := make([]*SrmOperation, 0) + for _, operation := range operations { + var so SrmOperation + so.Number = operation.Number + index := strings.LastIndex(operation.OperationTypeName, "-") + so.WarehouseName = operation.OperationTypeName[:index] + so.Status = int64(operation.Status) + so.OverTime = operation.CreateTime + for _, detail := range operation.Details { + s := so + s.ProductId = detail.ProductId + s.Amount = detail.Amount.IntPart() + s.ProductName = detail.Product.Name + srm = append(srm, &s) + } + } + var resp = new(SrmGetOperationInfoResponse) + resp.Operations = srm + return resp, nil +} -- Gitblit v1.8.0