⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 checkinorderdaoimpl.java.svn-base

📁 一个使用ssh+ext的例子。 希望对开发这个应用的人带来好处。仔细研究里面的代码将带来很大的好处。
💻 SVN-BASE
字号:
package com.hotelmaster.home.dao.hibernate;

import java.math.BigDecimal;
import java.sql.Timestamp;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.HashMap;
import java.util.List;
import java.util.Map;

import com.hotelmaster.home.dao.CheckinOrderDao;
import com.hotelmaster.home.domain.CheckinItem;
import com.hotelmaster.home.domain.CheckinOrder;
import com.hotelmaster.home.domain.Guest;
import com.hotelmaster.home.domain.Room;

public class CheckinOrderDaoImpl extends GenericHibernateDao<CheckinOrder> implements CheckinOrderDao{

	public CheckinOrderDaoImpl() {
		super(CheckinOrder.class);
	}
	//refactory code
	public Map<String,String> calculateAccommodationByQuarter(String year) throws ParseException {
		// TODO Auto-generated method stub
		Map<String,String> map = new HashMap<String,String>();
		String start =null;
		String end = null;
		java.sql.Timestamp starttime;
		java.sql.Timestamp endtime;
		SimpleDateFormat sdf;
		java.util.Date date;
		for(int i = 1;i<=4;i++){
			switch(i){
			case 1:
				start = String.format("%s-%d-1 00:00:00.000",year,1);
				end = String.format("%s-%d-1 00:00:00.000",year,4);
				sdf = new SimpleDateFormat("yyyy-MM-dd hh:mm:ss.SSS");
				date = sdf.parse(start);
				starttime = new java.sql.Timestamp(date.getTime());
				date = sdf.parse(end);
				endtime = new java.sql.Timestamp(date.getTime());
				map.put("spring",String.valueOf(queryForObject(
						"select count(*) from CheckinOrder where cioInDateTime>? and cioInDateTime<?"
						,new Object[] {starttime,endtime})));
				break;
			case 2:
				start = String.format("%s-%d-1 00:00:00.000",year,4);
				end = String.format("%s-%d-1 00:00:00.000",year,7);
				sdf = new SimpleDateFormat("yyyy-MM-dd hh:mm:ss.SSS");
				date = sdf.parse(start);
				starttime = new java.sql.Timestamp(date.getTime());
				date = sdf.parse(end);
				endtime = new java.sql.Timestamp(date.getTime());
				map.put("summer",String.valueOf(queryForObject(
						"select count(*) from CheckinOrder where cioInDateTime>? and cioInDateTime<?"
						,new Object[] {starttime,endtime})));
				break;
			case 3:
				start = String.format("%s-%d-1 00:00:00.000",year,7);
				end = String.format("%s-%d-1 00:00:00.000",year,10);
				sdf = new SimpleDateFormat("yyyy-MM-dd hh:mm:ss.SSS");
				date = sdf.parse(start);
				starttime = new java.sql.Timestamp(date.getTime());
				date = sdf.parse(end);
				endtime = new java.sql.Timestamp(date.getTime());
				map.put("autumn",String.valueOf(queryForObject(
						"select count(*) from CheckinOrder where cioInDateTime>? and cioInDateTime<?"
						,new Object[] {starttime,endtime})));
				break;
			case 4:
				start = String.format("%s-%d-1 00:00:00.000",year,10);
				end = String.format("%s-%d-31 00:00:00.000",year,12);
				sdf = new SimpleDateFormat("yyyy-MM-dd hh:mm:ss.SSS");
				date = sdf.parse(start);
				starttime = new java.sql.Timestamp(date.getTime());
				date = sdf.parse(end);
				endtime = new java.sql.Timestamp(date.getTime());
				map.put("winter",String.valueOf(queryForObject(
						"select count(*) from CheckinOrder where cioInDateTime>? and cioInDateTime<?"
						,new Object[] {starttime,endtime})));
				break;
			}
			
		}
		return map;
	}

	public boolean createCheckinItem(CheckinOrder checkinOrder, Room room,
			BigDecimal prctPrice, BigDecimal discount) {
		Long count=(Long)queryForObject(
				"select count(*) from CheckinItem as cim where cim.checkinOrder=? and cim.room=?"
				,new Object[] {checkinOrder,room});
		if(count.longValue()==0)
		{
			CheckinItem checkinItem=new CheckinItem();
			checkinItem.setCheckinOrder(checkinOrder);
			checkinItem.setRoom(room);
			checkinItem.setCimPrctPrice(prctPrice);
			checkinItem.setCimDiscount(discount);
			checkinItem.setCimInDatetime(checkinOrder.getCioInDateTime());
			checkinItem.setCimOutDatetime(checkinOrder.getCioPrctOutDateTime());
			hibernateTemplate.save(checkinItem);
			return true;
		}
		return false;
	}

	public boolean create(CheckinOrder checkinOrder, //创建登记信息
			List<CheckinItem> checkinItemList) {
		hibernateTemplate.save(checkinOrder);
		for(CheckinItem item : checkinItemList){
			/*int rmState=item.getRoom().getRmState();
			if(rmState==item.getRoom().STATE_VACANT){
				item.getRoom().setRmState(item.getRoom().STATE_RENTED);
			}else{
				return false;
			}*/
			item.getRoom().setRmState(2);
			hibernateTemplate.update(item.getRoom());
			item.setCheckinOrder(checkinOrder);
			item.setCimState(checkinOrder.getCioState());
			item.setCimInDatetime(checkinOrder.getCioInDateTime());
			item.setCimOutDatetime(checkinOrder.getCioPreOutDateTime());
			hibernateTemplate.save(item);
		}
		return true;
	}

	public CheckinOrder findCheckinOrderByCioOrderId(String cioOrderId) {
		List checkinOrder= hibernateTemplate.find("from CheckinOrder where cioOrderId='"+cioOrderId+"'");
		return (CheckinOrder)checkinOrder.get(0);
	}

	public CheckinOrder findCheckinOrderByCioId(String cioId) {
		List checkinOrder= hibernateTemplate.find("from CheckinOrder where cioId='"+cioId+"'");
		return (CheckinOrder)checkinOrder.get(0);
	}
	
	public CheckinOrder findCheckinOrderByRmId(String rmId) {
		List<CheckinItem> checkinItemList=hibernateTemplate.find("from CheckinItem as item where item.room.rmId=? " +
				"and item.cimState='已入住' order by item.cimInDatetime desc",rmId);
		//异常处理
		if(checkinItemList.size()>0){
			CheckinItem checkinItem=checkinItemList.get(0);
			return checkinItem.getCheckinOrder();
		}else{
			return null;
		}
	}

	public void updateAfterCheckout(CheckinOrder checkinOrder) {
		checkinOrder.setCioState("已结账");
		Calendar tCal = Calendar.getInstance();
		Timestamp curDate=new Timestamp(tCal.getTime().getTime());
		checkinOrder.setCioPrctOutDateTime(curDate);
		List<CheckinItem> checkinItemList=checkinOrder.getCheckinItems();
		for(CheckinItem item:checkinItemList){
			item.setCimState("已结账");
			item.getRoom().setRmState(3);
			hibernateTemplate.update(item.getRoom());
		}
		//房态更新
		hibernateTemplate.update(checkinOrder);
	}
	public CheckinOrder findCheckinOrderDao(String cioId) {
		// TODO Auto-generated method stub
		return null;
	}
	
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -