PortController.java 5.2 KB
package com.air.controller;

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

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

/**
 * Depiction: 码头管理
 * <p>
 * Modify:
 * <p>
 * Author: Kevin Lynn
 * <p>
 * Create Date:2017年7月31日 下午3:17:35
 * 
 */
public class PortController extends AbsController {

	public void arrivalList() {
		String key = getPara("key");
		int page = this.getParaToInt("page", 1);
		int pageNum = this.getParaToInt("pageNum", 30);
		int portNo = getParaToInt("portNo", 0);

		setAttr("searchKey", key);
		setAttr("role", getRole().getLevel());

		List<AirPort> portList = AirPort.dao.getAirPortList(getStationArea(), true);
		setAttr("portList", portList);

		List<StationMap> stationList = null;
		int roleLevel = getRole().getLevel();
		if (roleLevel == SysRoleType.SUPER.ordinal()) {
			stationList = StationMap.dao.searchAll();
		} else {
			stationList = StationMap.dao.search("areaCode", getStationArea());
		}
		setAttr("stationList", stationList);
		
		String stationArea = getPara("stationArea",
				(stationList != null && !stationList.isEmpty()) ? stationList.get(0).getAreaCode() : null);
		setAttr("portNo", portNo);
		setAttr("stationArea", stationArea);

		Page<AirPortCar> pageData = AirPortCar.dao.search(page, pageNum, key, portNo, stationArea, true);
		if (pageData.getList() != null) {
			for (AirPortCar car : pageData.getList()) {
				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());

		render("portArrivalList.html");
	}

	public void leftList() {
		String key = getPara("key");
		int page = this.getParaToInt("page", 1);
		int pageNum = this.getParaToInt("pageNum", 30);
		int portNo = getParaToInt("portNo", 0);

		setAttr("searchKey", key);
		setAttr("role", getRole().getLevel());

		List<AirPort> portList = AirPort.dao.getAirPortList(getStationArea(), false);
		setAttr("portList", portList);

		List<StationMap> stationList = null;
		int roleLevel = getRole().getLevel();
		if (roleLevel == SysRoleType.SUPER.ordinal()) {
			stationList = StationMap.dao.searchAll();
		} else {
			stationList = StationMap.dao.search("areaCode", getStationArea());
		}
		setAttr("stationList", stationList);

		String stationArea = getPara("stationArea",
				(stationList != null && !stationList.isEmpty()) ? stationList.get(0).getAreaCode() : null);

		setAttr("portNo", portNo);
		setAttr("stationArea", stationArea);

		Page<AirPortCar> pageData = AirPortCar.dao.search(page, pageNum, key, portNo, stationArea, false);
		if (pageData.getList() != null) {
			for (AirPortCar car : pageData.getList()) {
				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());

		render("portLeftList.html");
	}

	// 车辆置顶
	public void editCar() {
		Boolean isPickup = getParaToBoolean("isPickup", null);
		if (isPickup != null) {
			List<AirPort> arrivalList = AirPort.dao.getAirPortList(getStationArea(), true);
			setAttr("arrivalList", arrivalList);

			List<AirPort> leftList = AirPort.dao.getAirPortList(getStationArea(), false);
			setAttr("leftList", leftList);
			render("carEdit.html");
		} else {
			render("portArrivalList.html");
		}
	}

	public void submitCar() {
		boolean isPickup = getParaToBoolean("car.isPickup");
		boolean isStick = getPara("car.isStick", null) != null ? true : false;
		String driverName = getPara("car.driverName");
		String phone = getPara("car.phone");
		String carNo = getPara("car.carNo");
		int portNo = getParaToInt("car.portNo", 1);
		
		if (StrKit.notBlank(carNo)) {
			carNo = carNo.toUpperCase();
		}

		AirPortCar model = new AirPortCar();
		Map<String, Object> maps = new HashMap<String, Object>();
		maps.put("carNo", carNo);
		maps.put("status", AirPortCarStatus.ENTER.ordinal());
		AirPortCar tmp = AirPortCar.dao.searchFirst(maps);

		if (tmp == null) {
			model.setIsPickup(isPickup);
			model.setDriverName(driverName);
			model.setPhone(phone);
			model.setCarNo(carNo);
			model.setPortNo(portNo);
			if(isStick) {
				model.setSort(0);
			}
			model.setSysUserId(getLoginUser().getId());
			model.setStationArea(getStationArea());
			model.setApplyTime(new Date());
			model.setEnterTime(new Date());
			model.setStatus(AirPortCarStatus.ENTER.ordinal());

			if (model.save()) {
				setAttr("flag", "操作成功");
				LedKit.sendBigLedScreen(LedKit.bigLedText(portNo, isPickup, carNo, getStationArea()), getStationArea());
				LedKit.nextCar(getStationArea(), portNo, isPickup);
			}
		} else {
			setAttr("flag", "不能重复录入");
		}

		if (isPickup) {
			arrivalList();
		} else {
			leftList();
		}
	}
}