package utils import ( "fmt" "srm/proto/code" "strconv" "time" ) 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 }