From a10d59528a36dc5a1fbe4d9caa6b4abf25ab828c Mon Sep 17 00:00:00 2001 From: zhangqian <zhangqian@123.com> Date: 星期五, 12 一月 2024 10:49:08 +0800 Subject: [PATCH] Merge branch 'master' of http://192.168.5.5:10010/r/aps/WMS --- proto/purchase_wms/server.go | 26 ++++++++++++++++++++++---- 1 files changed, 22 insertions(+), 4 deletions(-) diff --git a/proto/purchase_wms/server.go b/proto/purchase_wms/server.go index 173e7db..4416273 100644 --- a/proto/purchase_wms/server.go +++ b/proto/purchase_wms/server.go @@ -3,6 +3,7 @@ import ( "context" "github.com/shopspring/decimal" + "gorm.io/gorm" "strconv" "time" "wms/constvar" @@ -22,6 +23,7 @@ operation.Number = strconv.FormatInt(time.Now().Unix(), 10) operation.Status = constvar.OperationStatus_Ready operation.CompanyName = req.SupplierName + operation.Source = req.Source warehouse, err := models.NewWarehouseSearch().First() if err != nil { return nil, err @@ -36,19 +38,35 @@ if err != nil { return nil, err } - operation.ToLocationID = location.Id first, err := models.NewLocationSearch().SetType(int(constvar.LocationTypeVendor)).First() if err != nil { return nil, err } - operation.FromLocationID = first.Id + operation.LocationID = location.Id operation.BaseOperationType = constvar.BaseOperationTypeIncoming for _, product := range req.Product { var detail models.OperationDetails detail.ProductId = product.Id detail.Amount = decimal.NewFromInt(product.Amount) + detail.FromLocationID = first.Id + detail.ToLocationID = location.Id details = append(details, &detail) } - err = models.NewOperationSearch().Create(&operation) - return new(PurchaseToWmsResponse), err + err = models.WithTransaction(func(db *gorm.DB) error { + err := models.NewOperationSearch().SetOrm(db).Create(&operation) + if err != nil { + return err + } + for _, detail := range details { + detail.OperationID = operation.Id + } + err = models.NewOperationDetailsSearch().SetOrm(db).CreateBatch(details) + return err + }) + if err != nil { + return nil, err + } + resp := new(PurchaseToWmsResponse) + resp.Warehouse = warehouse.Name + return resp, nil } -- Gitblit v1.8.0