CarController.java 5.8 KB
package com.air.controller;

import java.util.Date;
import java.util.HashMap;
import java.util.Map;

import com.air.config.AbsController;
import com.air.model.AirPortCar;
import com.air.model.AirPortCarStatus;
import com.air.model.StationMap;
import com.jfinal.kit.StrKit;
import com.jfinal.plugin.activerecord.Page;

/**
 * Depiction:车辆进出场控制器
 * <p>
 * Modify:
 * <p>
 * Author: Kevin Lynn
 * <p>
 * Create Date:2016年6月3日 下午11:02:05
 * <p>
 * 
 * @version 1.0
 * @since 1.0
 */
public class CarController extends AbsController {

	public void applyList() {
		String key = getPara("key");
		int page = this.getParaToInt("page", 1);
		int pageNum = this.getParaToInt("pageNum", 10);

		Page<AirPortCar> pageData = AirPortCar.dao.search(page, pageNum, key, AirPortCarStatus.APPLY, getStationArea());
		if (pageData.getList() != null) {
			for (AirPortCar car : pageData.getList()) {
				String stationArea = car.getStationArea();
				StationMap station = StationMap.dao.searchFirst("areaCode", stationArea);
				car.put("station", station);
			}
		}
		setAttr("dataList", pageData.getList());
		setAttr("curPage", pageData.getPageNumber());
		setAttr("totalSize", pageData.getTotalRow());
		setAttr("totalPage", pageData.getTotalPage());
		setAttr("searchKey", key);
		setAttr("role", getRole().getLevel());
		render("applyList.html");
	}

	public void enterList() {
		String key = getPara("key");
		int page = this.getParaToInt("page", 1);
		int pageNum = this.getParaToInt("pageNum", 10);
		Page<AirPortCar> pageData = AirPortCar.dao.search(page, pageNum, key, AirPortCarStatus.ENTER, getStationArea());
		if (pageData.getList() != null) {
			for (AirPortCar car : pageData.getList()) {
				String stationArea = car.getStationArea();
				StationMap station = StationMap.dao.searchFirst("areaCode", stationArea);
				car.put("station", station);
			}
		}
		setAttr("dataList", pageData.getList());
		setAttr("curPage", pageData.getPageNumber());
		setAttr("totalSize", pageData.getTotalRow());
		setAttr("totalPage", pageData.getTotalPage());
		setAttr("searchKey", key);
		setAttr("role", getRole().getLevel());
		render("enterList.html");
	}

	public void historyList() {
		String key = getPara("key");
		int page = this.getParaToInt("page", 1);
		int pageNum = this.getParaToInt("pageNum", 10);
		Page<AirPortCar> pageData = AirPortCar.dao.search(page, pageNum, key, null, getStationArea());
		if (pageData.getList() != null) {
			for (AirPortCar car : pageData.getList()) {
				String stationArea = car.getStationArea();
				StationMap station = StationMap.dao.searchFirst("areaCode", stationArea);
				car.put("station", station);
			}
		}
		setAttr("dataList", pageData.getList());
		setAttr("curPage", pageData.getPageNumber());
		setAttr("totalSize", pageData.getTotalRow());
		setAttr("totalPage", pageData.getTotalPage());
		setAttr("searchKey", key);
		setAttr("role", getRole().getLevel());
		render("historyList.html");
	}

	public void checkList() {
		String key = getPara("key");
		int page = this.getParaToInt("page", 1);
		int pageNum = this.getParaToInt("pageNum", 10);
		Page<AirPortCar> pageData = AirPortCar.dao.search(page, pageNum, key, null, getStationArea());

		if (pageData != null && pageData.getList() != null) {
			for (AirPortCar data : pageData.getList()) {
				String stationArea = data.getStationArea();
				StationMap station = StationMap.dao.searchFirst("areaCode", stationArea);
				data.put("station", station);

				if (data.getEnterTime() != null) {
					if (data.getLeaveTime() == null) {
						data.put("checkResult", "有进无出");
					} else {
						data.put("checkResult", "正常");
					}
				} else {
					if (data.getLeaveTime() == null) {
						data.put("checkResult", "待进场");
					} else {
						data.put("checkResult", "无进有出");
					}
				}
			}
		}
		setAttr("dataList", pageData.getList());
		setAttr("curPage", pageData.getPageNumber());
		setAttr("totalSize", pageData.getTotalRow());
		setAttr("totalPage", pageData.getTotalPage());
		setAttr("searchKey", key);
		setAttr("role", getRole().getLevel());
		render("checkList.html");
	}

	public void applyPre() {
		String key = getPara("key");
		int page = this.getParaToInt("page", 1);
		int pageNum = this.getParaToInt("pageNum", 10);

		Page<AirPortCar> pageData = AirPortCar.dao.searchPre(page, pageNum, key, getLoginUser().getId());

		if (pageData.getList() != null) {
			for (AirPortCar car : pageData.getList()) {
				String stationArea = car.getStationArea();
				StationMap station = StationMap.dao.searchFirst("areaCode", stationArea);
				car.put("station", station);
			}
		}

		setAttr("dataList", pageData.getList());
		setAttr("curPage", pageData.getPageNumber());
		setAttr("totalSize", pageData.getTotalRow());
		setAttr("totalPage", pageData.getTotalPage());
		setAttr("searchKey", key);
		render("applyPre.html");
	}

	public void applyPreEdit() {
		setAttr("stationList", StationMap.dao.searchAll());
		render("applyPreEdit.html");
	}

	public void submitPre() {
		AirPortCar model = getModel(AirPortCar.class, "car");
		if (model != null) {
			String carNo = model.getCarNo();
			if (StrKit.notBlank(carNo)) {
				carNo = carNo.toUpperCase();
			}
			
			Map<String, Object> maps = new HashMap<String, Object>();
			maps.put("carNo", carNo);
			AirPortCar tmp = AirPortCar.dao.searchFirst(maps);
			if (tmp == null || (tmp.getStatus() == AirPortCarStatus.LEFT.ordinal())) {
				model.setApplyTime(new Date());
				model.setSysUserId(getLoginUser().getId());

				String agentName = getLoginUser().getAgentName();
				if (StrKit.isBlank(agentName)) {
					agentName = "无货代公司";
				}

				model.setAgentName(agentName);

				if (model.save()) {
					setAttr("flag", "操作成功");
				} else {
					setAttr("flag", "操作失败");
				}
			} else {
				setAttr("flag", "不能重复录入");
			}
		} else {
			setAttr("flag", "操作失败,参数错误");
		}

		applyPre();
	}
}