From f1cf23864cf5fddfb307ffcadf9f2e4b33b5f8ae Mon Sep 17 00:00:00 2001 From: jiangshuai <291802688@qq.com> Date: 星期四, 28 九月 2023 14:21:12 +0800 Subject: [PATCH] 1.bug修改 --- controllers/location_product_amount.go | 33 ++++++++++++++++++--------------- 1 files changed, 18 insertions(+), 15 deletions(-) diff --git a/controllers/location_product_amount.go b/controllers/location_product_amount.go index 5feaf8b..8d44349 100644 --- a/controllers/location_product_amount.go +++ b/controllers/location_product_amount.go @@ -71,7 +71,7 @@ if params.Page*params.PageSize > 0 { search.Orm = search.Orm.Offset((params.Page - 1) * params.PageSize).Limit(params.PageSize) } - if err := search.Orm.Find(&records).Error; err != nil { + if err := search.Orm.Order("wms_operation.created_at desc").Find(&records).Error; err != nil { util.ResponseFormat(c, code.RequestError, fmt.Errorf("find count err: %v", err)) return } @@ -124,6 +124,11 @@ util.ResponseFormat(c, code.RequestError, "涓嶅瓨鍦ㄨ涓婃灦瑙勫垯锛屾棤娉曡繘琛屽簱瀛樼洏鐐�") return } + existAmount, err := models.NewLocationProductAmountSearch().SetLocationProductId(locProduct.Id).First() + if err != nil { + util.ResponseFormat(c, code.RequestError, err.Error()) + return + } location, err := models.NewLocationSearch().SetType(int(constvar.LocationTypeAdjust)).First() if err != nil { util.ResponseFormat(c, code.RequestParamError, err.Error()) @@ -131,11 +136,15 @@ } //reqParams.AdjustAmount = reqParams.Amount.Sub(reqParams.DifferenceAmount) reqParams.AdjustAmount = reqParams.DifferenceAmount.Sub(reqParams.Amount) - locAmount := models.LocationProductAmount{ - LocationProductId: locProduct.Id, - Amount: decimal.NewFromInt(0), - CreateDate: time.Now().Format("2006-01-02 15:04:05"), + var locAmount models.LocationProductAmount + if existAmount.Id == 0 { + locAmount = models.LocationProductAmount{ + LocationProductId: locProduct.Id, + Amount: decimal.NewFromInt(0), + CreateDate: time.Now().Format("2006-01-02 15:04:05"), + } } + detail := &models.OperationDetails{ ProductId: reqParams.ProductId, Amount: reqParams.AdjustAmount, @@ -151,20 +160,14 @@ ToLocationID: reqParams.LocationId, } - //if reqParams.AdjustAmount.GreaterThanOrEqual(decimal.NewFromInt(0)) { - // operation.FromLocationID = Location.Id - // operation.ToLocationID = reqParams.LocationId - //} else { - // operation.FromLocationID = reqParams.LocationId - // operation.ToLocationID = Location.Id - //} - if err := models.WithTransaction(func(tx *gorm.DB) error { if err := models.NewOperationSearch().SetOrm(tx).Create(&operation); err != nil { return err } - if err := models.NewLocationProductAmountSearch().SetOrm(tx).Create(&locAmount); err != nil { - return err + if existAmount.Id == 0 { + if err := models.NewLocationProductAmountSearch().SetOrm(tx).Create(&locAmount); err != nil { + return err + } } return nil }); err != nil { -- Gitblit v1.8.0