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