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;
以上实体就是表设计,跟枚举对应起来看就明白