From 2f32021ab211cd901e36c4cbc5875f0f072385bb Mon Sep 17 00:00:00 2001 From: liujiandao <274878379@qq.com> Date: 星期二, 14 十一月 2023 14:00:39 +0800 Subject: [PATCH] 自动获取物料编码 --- models/db.go | 28 ++++++++++++++++++++++++++++ 1 files changed, 28 insertions(+), 0 deletions(-) diff --git a/models/db.go b/models/db.go index e4c25d0..53e3be6 100644 --- a/models/db.go +++ b/models/db.go @@ -3,11 +3,14 @@ import ( "fmt" "gorm.io/gorm/schema" + "strconv" + "time" "wms/conf" "wms/extend/util" "wms/pkg/logx" "wms/pkg/mysqlx" "wms/pkg/snowflake" + "wms/proto/code" "gorm.io/gorm" ) @@ -55,6 +58,31 @@ return nil } +func GetAutoCode(id int, codeStandard *code.CodeStandard) string { + autoCode := "" + var prefixValue string + if codeStandard.AutoRule.PrefixMethod == 2 { // 鏉ユ簮鍗曟嵁 + prefixValue = "" + } else { // 鍥哄畾鍊� + prefixValue = codeStandard.AutoRule.PrefixValue + } + strMaxAutoIncr := strconv.Itoa(id + 1) + count := int(codeStandard.AutoRule.AutoLength) - len(strMaxAutoIncr) + for i := 0; i < count; i++ { + strMaxAutoIncr = "0" + strMaxAutoIncr + } + + var suffixValue string + if codeStandard.AutoRule.SuffixMethod == 2 { // 骞存湀鏃�+鑷闀� + suffixValue = fmt.Sprintf("%v%v", time.Now().Format("20060102"), strMaxAutoIncr) + } else { // 鑷闀� + suffixValue = strMaxAutoIncr + } + + autoCode = prefixValue + suffixValue + return autoCode +} + func Init() error { fmt.Printf("dsn=%v\n", conf.DbConf.Dsn) if err := mysqlx.Init(conf.DbConf, logx.GetLogger()); err != nil { -- Gitblit v1.8.0