package common import ( "fmt" "strconv" "time" ) // GenerateContractNo 生成 contractNo 规则 YYYY-MM-DD-xxxxx xxxxx 是从 00001 开始 自增 func GenerateContractNo(lastContractNo string) string { prefix := time.Now().Format("2006-01-02") + "-" if lastContractNo == "" { return prefix + "00001" } suffix := lastContractNo[11:] suffixInt, _ := strconv.ParseInt(suffix, 10, 64) if suffixInt >= 99999 { suffixInt = suffixInt + 1 return prefix + strconv.FormatInt(suffixInt, 10) } else { suffixInt = suffixInt + 1 suffix = strconv.FormatInt(suffixInt, 10) suffix = fmt.Sprintf("%05d", suffixInt) return prefix + suffix } }