spring開啟定時(shí)任務(wù),每分鐘掃描一次,根據(jù)下單時(shí)間和系統(tǒng)當(dāng)前時(shí)間判定處理
10年積累的成都網(wǎng)站設(shè)計(jì)、做網(wǎng)站、成都外貿(mào)網(wǎng)站建設(shè)公司經(jīng)驗(yàn),可以快速應(yīng)對(duì)客戶對(duì)網(wǎng)站的新想法和需求。提供各種問題對(duì)應(yīng)的解決方案。讓選擇我們的客戶得到更好、更有力的網(wǎng)絡(luò)服務(wù)。我雖然不認(rèn)識(shí)你,你也不認(rèn)識(shí)我。但先做網(wǎng)站設(shè)計(jì)后付款的網(wǎng)站建設(shè)流程,更有金城江免費(fèi)網(wǎng)站建設(shè)讓你可以放心的選擇與我們合作。
/**
* 得到一個(gè)新的訂單代碼
* 說明,此函數(shù)還沒有進(jìn)行過多線程測(cè)試,更新數(shù)據(jù)庫(kù)時(shí)未加鎖
* @return 新的訂單代碼
*/
public String getOrderCode(){
//getParameter這個(gè)方法就是從數(shù)據(jù)庫(kù)取2個(gè)參數(shù)的值 ORDER_CODE_DATE 和
//ORDER_CODE_NO是數(shù)據(jù)庫(kù)字段名
BasParameters orderCodeDate = getParameter(ORDER_CODE_DATE);
BasParameters orderCodeNo = getParameter(ORDER_CODE_NO);
//當(dāng)前日期
String currDate=new SimpleDateFormat("yyyyMMdd").format(new Date(System.currentTimeMillis()));
//每天的起始數(shù)
int orderNo = 100;
//表里存的日期和當(dāng)前日期相同,順序號(hào)累加
if (currDate.equals(orderCodeDate.getValue())){
orderCodeNo.setValue(""+(Integer.parseInt(orderCodeNo.getValue())+1));
orderNo = (Integer.parseInt(orderCodeNo.getValue()));
//save 就是保存ORDER_CODE_DATE 和 ORDER_CODE_NO當(dāng)前值到數(shù)據(jù)庫(kù)
save(orderCodeNo);
} else {
//表里存的日期和當(dāng)前日期不同,順序號(hào)重新開始,更新參數(shù)表的日期
orderCodeDate.setValue(currDate);
save(orderCodeDate);
orderCodeNo.setValue(orderNo);
save(orderCodeNo);
}
return currDate + new DecimalFormat("000000").format(orderNo);
}
package beans.excel;
import java.io.IOException;
import java.io.OutputStream;
import jxl.Workbook;
import jxl.write.Label;
import jxl.write.WritableSheet;
import jxl.write.WritableWorkbook;
import jxl.write.WriteException;
public class SimpleExcelWrite {
public void createExcel(OutputStream os) throws WriteException,IOException{
//創(chuàng)建工作薄
WritableWorkbook workbook = Workbook.createWorkbook(os);
//創(chuàng)建新的一頁(yè)
WritableSheet sheet = workbook.createSheet("First Sheet",0);
//創(chuàng)建要顯示的內(nèi)容,創(chuàng)建一個(gè)單元格,第一個(gè)參數(shù)為列坐標(biāo),第二個(gè)參數(shù)為行坐標(biāo),第三個(gè)參數(shù)為內(nèi)容
Label xuexiao = new Label(0,0,"學(xué)校");
sheet.addCell(xuexiao);
Label zhuanye = new Label(1,0,"專業(yè)");
sheet.addCell(zhuanye);
Label jingzhengli = new Label(2,0,"專業(yè)競(jìng)爭(zhēng)力");
sheet.addCell(jingzhengli);
Label qinghua = new Label(0,1,"清華大學(xué)");
sheet.addCell(qinghua);
Label jisuanji = new Label(1,1,"計(jì)算機(jī)專業(yè)");
sheet.addCell(jisuanji);
Label gao = new Label(2,1,"高");
sheet.addCell(gao);
Label beida = new Label(0,2,"北京大學(xué)");
sheet.addCell(beida);
Label falv = new Label(1,2,"法律專業(yè)");
sheet.addCell(falv);
Label zhong = new Label(2,2,"中");
sheet.addCell(zhong);
Label ligong = new Label(0,3,"北京理工大學(xué)");
sheet.addCell(ligong);
Label hangkong = new Label(1,3,"航空專業(yè)");
sheet.addCell(hangkong);
Label di = new Label(2,3,"低");
sheet.addCell(di);
//把創(chuàng)建的內(nèi)容寫入到輸出流中,并關(guān)閉輸出流
workbook.write();
workbook.close();
os.close();
}
}
SimpleExcelWrite.jsp
%@ page language="java" import="java.util.*" pageEncoding="gb2312"%
%@ page import="java.io.*" %
%@ page import="beans.excel.*" %
%
String fname = "學(xué)校競(jìng)爭(zhēng)力情況";
OutputStream os = response.getOutputStream();//取得輸出流
response.reset();//清空輸出流
//下面是對(duì)中文文件名的處理
response.setCharacterEncoding("UTF-8");//設(shè)置相應(yīng)內(nèi)容的編碼格式
fname = java.net.URLEncoder.encode(fname,"UTF-8");
response.setHeader("Content-Disposition","attachment;filename="+new String(fname.getBytes("UTF-8"),"GBK")+".xls");
response.setContentType("application/msexcel");//定義輸出類型
SimpleExcelWrite sw = new SimpleExcelWrite();
sw.createExcel(os);
%
html
head
title/title
/head
body
/body
/html
給你個(gè)開源項(xiàng)目的地址,這個(gè)做的還是很不錯(cuò)的,你可以稍微修改下就可以變成酒店訂單管理系統(tǒng)了:網(wǎng)頁(yè)鏈接
java在處理這種業(yè)務(wù)一般可以使用線程鎖機(jī)制,使用synchronized修飾java方法或指定代碼塊,誰的訂單先到進(jìn)入這個(gè)方法或代碼塊就進(jìn)行線程鎖定,后者在前者沒有完成訂單前是沒辦法調(diào)用這個(gè)方法或者代碼塊的。