终于搞出来了。
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;
}