java的spring mvc有规则的订单号

终于搞出来了。

public String setOrderId()
{
SimpleDateFormat sdf=new SimpleDateFormat("yyyyMMdd"); //日期格式化
String date =sdf.format(new Date()); //将当天的日期格式化
String orderIdString=""; //返回的序列号
List<Order> order = new ArrayList<Order>(); //按日期排序
order.add(Order.desc("createTime"));
Page page=new Page();
page.setNowPage(1); //获取1条数据
page.setPageSize(1);
MachineOrder machineOrder=getSingle(null,order,page);//取到最新的一条数据
if(order!=null)
{
Calendar current = Calendar.getInstance(); //用来计算的日期
Calendar today = Calendar.getInstance(); //今天
today.set(Calendar.YEAR, current.get(Calendar.YEAR));
today.set(Calendar.MONTH, current.get(Calendar.MONTH));
today.set(Calendar.DAY_OF_MONTH,current.get(Calendar.DAY_OF_MONTH));
// Calendar.HOUR——12小时制的小时数 Calendar.HOUR_OF_DAY——24小时制的小时数
today.set( Calendar.HOUR_OF_DAY, 0);
today.set( Calendar.MINUTE, 0);
today.set(Calendar.SECOND, 0);
current.setTime(machineOrder.getCreateTime()); //取到的最新那条数据
if(current.after(today)){ //如果最新的数据是今天的
List<Criterion> conditions = new ArrayList<Criterion>();
Date day=null; //存放今天的日期
Date tomorrow=null; //获取明天的日期
try {

day=sdf.parse(date); //转换回来
tomorrow=sdf.parse((ConvertTool.toInt(date)+1)+"");
} catch (ParseException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
conditions.add(Restrictions.between("createTime",day,tomorrow)); //根据今天的日期和明天的日期获取当天的数据
int count =getList(conditions, null, null).size(); //取出当天数据的总条数
String sequ = new DecimalFormat("00000").format(count+1); //拼接序号
orderIdString= "PW"+date+sequ; //组装成序列号
}
else {

String sequ = new DecimalFormat("00000").format(1); //如果最新的数据不是当天的数据则序号重排
orderIdString= "PW"+date+sequ; //组装成序列号
}
}
return orderIdString;
}

郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。