From 2716487d13f3521adeb25a48aa07a89f885d32c7 Mon Sep 17 00:00:00 2001 From: liujiandao <274878379@qq.com> Date: 星期一, 09 十月 2023 09:36:08 +0800 Subject: [PATCH] 仓库功能修改 --- controllers/warehouse.go | 56 +++++++++++++++++++++++++++++++++++++++++++++++--------- 1 files changed, 47 insertions(+), 9 deletions(-) diff --git a/controllers/warehouse.go b/controllers/warehouse.go index 8606ee1..01c1ba3 100644 --- a/controllers/warehouse.go +++ b/controllers/warehouse.go @@ -54,7 +54,36 @@ return } params.LocationId = locationId - if err := models.NewWarehouseSearch().Create(¶ms); err != nil { + err = models.WithTransaction(func(tx *gorm.DB) error { + err := models.NewWarehouseSearch().SetOrm(tx).Create(¶ms) + if err != nil { + return err + } + //鍒涘缓涓変釜榛樿鎿嶄綔绫诲瀷 + var types []*models.OperationType + inType := &models.OperationType{ + Name: params.Name + "-鍏ュ簱", + BaseOperationType: constvar.BaseOperationTypeIncoming, + WarehouseId: params.Id, + } + types = append(types, inType) + outType := &models.OperationType{ + Name: params.Name + "-鍑哄簱", + BaseOperationType: constvar.BaseOperationTypeOutgoing, + WarehouseId: params.Id, + } + types = append(types, outType) + internalType := &models.OperationType{ + Name: params.Name + "-鍐呴儴璋冩嫧", + BaseOperationType: constvar.BaseOperationTypeInternal, + WarehouseId: params.Id, + } + types = append(types, internalType) + err = models.NewOperationTypeSearch().SetOrm(tx).CreateBatch(types) + return err + }) + if err != nil { + _ = models.NewLocationSearch().SetID(locationId).Delete() logx.Errorf("warehouse create err: %v", err) util.ResponseFormat(c, code.SaveFail, "鎻掑叆澶辫触") return @@ -174,22 +203,31 @@ return } - //鍒犻櫎浣嶇疆淇℃伅 first, err := models.NewWarehouseSearch().SetID(id).First() if err != nil { util.ResponseFormat(c, code.RequestParamError, "鑾峰彇浠撳簱淇℃伅澶辫触") return } - err = models.NewLocationSearch().SetID(first.LocationId).Delete() + err = models.WithTransaction(func(tx *gorm.DB) error { + //鍒犻櫎浣嶇疆淇℃伅 + err = models.NewLocationSearch().SetOrm(tx).SetJointName(first.Code).Delete() + if err != nil { + return err + } + //鍒犻櫎鎿嶄綔绫诲瀷 + err = models.NewOperationTypeSearch().SetOrm(tx).SetWarehouseId(first.Id).Delete() + if err != nil { + return err + } + //鍒犻櫎浠撳簱 + err = models.NewWarehouseSearch().SetOrm(tx).SetID(id).Delete() + return err + }) if err != nil { - util.ResponseFormat(c, code.RequestParamError, "鍒犻櫎浣嶇疆淇℃伅澶辫触") + util.ResponseFormat(c, code.RequestParamError, "鍒犻櫎浠撳簱澶辫触") return } - err = models.NewWarehouseSearch().SetID(id).Delete() - if err != nil { - util.ResponseFormat(c, code.RequestParamError, "鍒犻櫎浠撳簱淇℃伅澶辫触") - return - } + util.ResponseFormat(c, code.UpdateSuccess, "鍒犻櫎鎴愬姛") } -- Gitblit v1.8.0