实体
public class XLH implements Serializable {
private static final long serialVersionUID = 6317524958696720460L;
/**
* 名称
*/
private String mc;
/**
* 前缀
*/
private String qz;
/**
* 流水长度
*/
private Integer lscd;
/**
* 流水号
*/
private Integer lsh;
/**
* 日期
*/
private String rq;
/**
* 备注
*/
private String bz;
public String getMc() {
return mc;
}
public void setMc(String mc) {
this.mc = mc;
}
public String getQz() {
return qz;
}
public void setQz(String qz) {
this.qz = qz;
}
public Integer getLscd() {
return lscd;
}
public void setLscd(Integer lscd) {
this.lscd = lscd;
}
public Integer getLsh() {
return lsh;
}
public void setLsh(Integer lsh) {
this.lsh = lsh;
}
public String getRq() {
return rq;
}
public void setRq(String rq) {
this.rq = rq;
}
public String getBz() {
return bz;
}
public void setBz(String bz) {
this.bz = bz;
}
}
工具
public class SerialNumberUtil {
/**
* 根据对应序列号
*/
public XLH getSerialNumberByType(String type){
//数据库查询
XLH xlh = new XLH();
return xlh;
}
/**
* 保存序列号
*/
public XLH saveXLH(XLH xlh){
//更新数据库
return xlh;
}
public String generateSerialNumber(String type){
XLH xlh =this.getSerialNumberByType(type);
//测试用
xlh.setMc("CS");
xlh.setBz("测试");
xlh.setLsh(100);
xlh.setLscd(6);
xlh.setRq(new SimpleDateFormat("yyyyMMdd").format(new Date()));
xlh.setQz("CS_");
Calendar calendar=Calendar.getInstance();
calendar.setTime(new Date());
//获得流水号值
int value=0;
//计算补位的位数
int count=0;
//当前时间的八位数(yyyyMMdd)
//String date=""+calendar.get(Calendar.YEAR)+(calendar.get(Calendar.MARCH)+1)+calendar.get(Calendar.DATE);
String date = new SimpleDateFormat("yyyyMMdd").format(new Date());
if(date.equals(xlh.getRq())){
value = xlh.getLsh()+1;
count = xlh.getLscd() - (""+value).length();
}else{
value=1;
count = xlh.getLscd() - (""+value).length();
xlh.setRq(date);
}
//补位的值
StringBuilder zero= new StringBuilder();
zero.append("0".repeat(Math.max(0, count)));
xlh.setLsh(value);
this.saveXLH(xlh);
String qz="";
if(xlh.getQz()!=null){
qz=xlh.getQz();
}
return qz+date+zero+value;
}
public static void main(String[] args) throws IOException {
SerialNumberUtil util = new SerialNumberUtil();
System.out.println(util.generateSerialNumber("11"));
}
}