1.在数据库中新建一张排序表格,每执行一次任务,数据库中值+1.查询时进行倒叙排序.
public String newOutsourceStaffId() throws Exception {
String maxOutsourceStaffId = (String)dao.findForObject("StaffMapper.maxOutsourceStaffId", null);
//获取流水号
int index = maxOutsourceStaffId.indexOf(OUTSOURCE_STAFF_ID_PREFIX) + OUTSOURCE_STAFF_ID_PREFIX.length();
int maxOutsoureStaffNum = Integer.valueOf(maxOutsourceStaffId.substring(index, maxOutsourceStaffId.length()));
//不足3位时补零
return maxOutsoureStaffNum < 99 ?
OUTSOURCE_STAFF_ID_PREFIX + "0" + (maxOutsoureStaffNum + 1) :
OUTSOURCE_STAFF_ID_PREFIX + (maxOutsoureStaffNum + 1);
}
缺点:不支持分布式
2.从数据库中查询当天已生成的记录数量 结果值+1
select count(*) "zs"
from CHECK_CHECKORDER
where to_char(to_date(CREATE_TIME,'yyyy-mm-dd hh24:mi:ss'),'dd')=to_char(sysdate,'dd')