From 201be38fd71ee487d887e686cf07773ec750a8de Mon Sep 17 00:00:00 2001 From: liujiandao <274878379@qq.com> Date: 星期四, 26 十月 2023 17:56:50 +0800 Subject: [PATCH] Merge branch 'master' of http://192.168.5.5:10010/r/aps/WMS --- controllers/operation.go | 23 +++++++++++++++++++---- 1 files changed, 19 insertions(+), 4 deletions(-) diff --git a/controllers/operation.go b/controllers/operation.go index c53ead6..3b435f6 100644 --- a/controllers/operation.go +++ b/controllers/operation.go @@ -1,11 +1,13 @@ package controllers import ( + "encoding/json" "errors" "fmt" "github.com/gin-gonic/gin" "github.com/shopspring/decimal" "gorm.io/gorm" + "os" "sort" "strconv" "time" @@ -13,6 +15,7 @@ "wms/extend/code" "wms/extend/util" "wms/models" + "wms/opa" "wms/pkg/logx" "wms/pkg/structx" "wms/request" @@ -366,7 +369,7 @@ operationTransfer := &models.Operation{ Number: operation.Number, SourceNumber: operation.SourceNumber, - OperationTypeId: operation.OperationTypeId, + OperationTypeId: 0, OperationTypeName: operation.OperationTypeName, Status: constvar.OperationStatus_Finish, FromLocationID: locationRule.AreaId, @@ -377,7 +380,7 @@ CompanyID: operation.CompanyID, CompanyName: operation.CompanyName, Comment: operation.Comment, - BaseOperationType: operation.BaseOperationType, + BaseOperationType: constvar.BaseOperationTypeInternal, Details: []*models.OperationDetails{ &models.OperationDetails{ ProductId: v.ID, @@ -448,8 +451,20 @@ if !ok { return errors.New("浜у搧绉嶇被寮傚父") } - if v.Amount.LessThan(value) { - return errors.New(fmt.Sprintf("浜у搧锛�%v,搴撳瓨锛�%v,鍑哄簱锛�%v,鏁伴噺涓嶅锛屾棤娉曞畬鎴愬嚭搴撴搷浣�", v.Name, v.Amount.String(), value.String())) + //todo 婕旂ず娴嬭瘯鏁版嵁 + data, err := os.ReadFile("conf/input.json") + if err != nil { + return errors.New("鏂囦欢璇诲彇澶辫触") + } + m := make(map[string]interface{}) + err = json.Unmarshal(data, &m) + if err != nil { + return errors.New("鏍煎紡杞崲澶辫触") + } + if opa.OpaCheck(c, m, "operation") { + if v.Amount.LessThan(value) { + return errors.New(fmt.Sprintf("浜у搧锛�%v,搴撳瓨锛�%v,鍑哄簱锛�%v,鏁伴噺涓嶅锛屾棤娉曞畬鎴愬嚭搴撴搷浣�", v.Name, v.Amount.String(), value.String())) + } } listProdt[k].Amount = listProdt[k].Amount.Sub(value) if err := tx.Save(listProdt[k]).Error; err != nil { -- Gitblit v1.8.0