From 6712c63bce309ab3a7642b48595b8ff136cf3847 Mon Sep 17 00:00:00 2001
From: jiangshuai <291802688@qq.com>
Date: 星期二, 06 二月 2024 10:15:22 +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