java如何根本生成10位号(比如订单号)
java代码生成规则
/** * <p> * 根据编码类型获取最新编码 * </p> * * @param codeType 类型枚举 * @param baseCodeService BaseCodeService * @return 最新编码 */ public static String getCode(CodeType codeType,BaseCodeService baseCodeService){ BaseCode baseCode=baseCodeService.findByType(codeType.getType()); StringBuffer codeBuff=new StringBuffer(); codeBuff.append(codeType.getHeadCode()); int num=codeBuff.length(); int codeNum=1; String FORMAT="%0"+(10-num)+"d"; if(baseCode==null){ codeBuff.append(String.format(FORMAT, codeNum)); baseCode=new BaseCode(); baseCode.setUuid(ROUtils.getSequence()); baseCode.setName(codeType.getName()); baseCode.setHeadCode(codeType.getHeadCode()); baseCode.setType(codeType.getType()); baseCode.setCurrentCode(codeBuff.toString()); baseCodeService.save(baseCode); }else{ String code=baseCode.getCurrentCode().substring(num, 10); codeNum=Integer.parseInt(code)+1; codeBuff.append(String.format(FORMAT, codeNum)); baseCode.setCurrentCode(codeBuff.toString()); baseCodeService.update(baseCode); } return codeBuff.toString(); }枚举类型
public enum CodeType { /** * 采购申请 */ SQ01("SQ01","11","采购申请"), /** * 采购 */ CG01("CG01","21","采购"), /** * 采购(退货) */ TH01("TH01","22","采购(退货)"), /** * 收货 */ SH01("SH01","41","收货"), /** * 配送申请 */ PS01("PS01","31","配送申请"), /** * 配送 */ PS02("PS02","32","配送"), /** * 配送(主配) */ PS03("PS03","33","配送(主配)"), /** * 盘点全盘 */ PDQP("PDQP","51","盘点全盘"), /** * 盘点局盘 */ PDJP("PDJP","52","盘点局盘"), /** * 盘点清单 */ PDQD("PDQD","53","盘点清单"), /** * 盘点明细 */ PDMX("PDMX","54","盘点明细"), /** * 领用 */ LY01("LY01","61","领用"), /** * 报损 */ BS01("BS01","71","报损"), /** * 借用 */ JY01("JY01","81","借用"), /** * 供应商(经营) */ GY01("GY01","00031","供应商(经营)"), /** * 供应商(生产) */ GY02("GY02","00032","供应商(生产)"), /** * 供应商(一次性) */ GY03("GY03","00033","供应商(一次性)"), /** * 供应商联系人 */ GY04("GY04","00034","供应商联系人"), /** * 办公用品类 */ Z001("Z001","0001","办公用品类"), /** * 装修材料类 */ Z002("Z002","0002","装修材料类"), /** * 广告促销费 */ Z003("Z003","0003","广告促销费"), /** * 包装费类 */ Z004("Z004","0004","包装费类"), /** * 亲情茶类 */ Z005("Z005","0005","亲情茶类"), /** * 书籍类 */ Z006("Z006","0006","书籍类"), /** * 服装 */ Z007("Z007","0007","服装"), /** * 烟酒 */ Z008("Z008","0008","烟酒"), /** * 福利费类 */ Z009("Z009","0009","福利费类"), /** * 通用名 */ Z011("Z011","0011","通用名"), /** * 物品类型之类生成 */ WPLX("","1","物品类型"); /** * * @param type 类型 * @param headCode 头信息前缀 * @param name 名称 */ private CodeType(String type,String headCode,String name){ this.type=type; this.headCode=headCode; this.name=name; } private String type; private String headCode; private String name; public String getType() { return type; } public void setType(String type) { this.type = type; } public String getHeadCode() { return headCode; } public void setHeadCode(String headCode) { this.headCode = headCode; } public String getName() { return name; } public void setName(String name) { this.name = name; } }
数据库表设计
/** * 主键UUID */ private String uuid; /** * 类型 */ private String type; /** * 名称 */ private String name; /** * 起始编码(枚举中的头信息前缀) */ private String headCode; /** * 当前编码 */ private String currentCode;
以上实体就是表设计,跟枚举对应起来看就明白
声明:该文观点仅代表作者本人,牛骨文系教育信息发布平台,牛骨文仅提供信息存储空间服务。