From 1444c7c800fc042cd99213e901d6ad3722d0f03f Mon Sep 17 00:00:00 2001 From: jiangshuai <291802688@qq.com> Date: 星期三, 27 九月 2023 16:13:53 +0800 Subject: [PATCH] 1.二期一部分代码 --- controllers/operation.go | 40 ++++++++++++++++++++++++++++++++++++++++ 1 files changed, 40 insertions(+), 0 deletions(-) diff --git a/controllers/operation.go b/controllers/operation.go index 872fb4c..fa8137d 100644 --- a/controllers/operation.go +++ b/controllers/operation.go @@ -6,6 +6,7 @@ "github.com/gin-gonic/gin" "github.com/shopspring/decimal" "gorm.io/gorm" + "sort" "strconv" "time" "wms/constvar" @@ -47,14 +48,43 @@ return } + if CheckDetailsRepeat(params.Details) { + util.ResponseFormat(c, code.RequestParamError, "鏄庣粏涓笉鑳藉瓨鍦ㄩ噸澶嶇殑浜у搧") + return + } + + operationType, err := models.NewOperationTypeSearch().SetID(uint(params.OperationTypeId)).First() + if err != nil { + util.ResponseFormat(c, code.RequestParamError, err.Error()) + return + } + params.Status = constvar.OperationStatus_Ready params.Number = strconv.FormatInt(time.Now().Unix(), 10) + params.BaseOperationType = operationType.BaseOperationType if err := models.NewOperationSearch().Create(¶ms); err != nil { logx.Errorf("Operation create err: %v", err) util.ResponseFormat(c, code.SaveFail, "娣诲姞澶辫触锛�"+err.Error()) return } util.ResponseFormat(c, code.Success, "娣诲姞鎴愬姛") +} + +func CheckDetailsRepeat(details []*models.OperationDetails) bool { + detailIDs := []string{} + var tempID string + for _, v := range details { + detailIDs = append(detailIDs, v.ProductId) + } + sort.Strings(detailIDs) + for _, v := range detailIDs { + if v != tempID { + tempID = v + } else { + return true + } + } + return false } func (slf OperationController) FormatLocation(params *models.Operation) error { @@ -196,6 +226,10 @@ util.ResponseFormat(c, code.RequestParamError, err.Error()) return } + if CheckDetailsRepeat(params.Details) { + util.ResponseFormat(c, code.RequestParamError, "鏄庣粏涓笉鑳藉瓨鍦ㄩ噸澶嶇殑浜у搧") + return + } if err := slf.FormatLocation(¶ms); err != nil { util.ResponseFormat(c, code.RequestParamError, err.Error()) return @@ -323,8 +357,14 @@ if err := tx.Save(listProdt[k]).Error; err != nil { return err } + //TODO:鍑哄叆搴撶殑finish鍜屾姤搴熺殑finish閮借澧炲姞瀵筶ocation_product_amount琛ㄦ暟閲忕殑鏇存柊,鍥犱负姝よ〃鏈塒roductCategory瀛楁锛屾墍浠peration_details琛ㄤ腑瑕佸鍔燩roductCategoryId瀛楁 + //var locAmount models.LocationProductAmount + //if err := models.NewLocationProductAmountSearch().Orm.Table("wms_location_produt_amount").Joins("inner join wms_location_product on wms_location_produt.id=wms_location_produt_amount.location_product_id").Where("wms_location_produt.product_id=? and wms_location_produt.location_id=?",operation.ToLocationID,v.ID).First(&locAmount).Error;err!=nil { + // return err + //} } } + } if operationType.BaseOperationType == constvar.BaseOperationTypeOutgoing { for k, v := range listProdt { -- Gitblit v1.8.0