VehicleInoutStopServiceImpl.java 3.52 KB
package com.bsth.service.traffic.impl;

import com.bsth.entity.traffic.VehicleInoutStop;
import com.bsth.service.impl.BaseServiceImpl;
import com.bsth.service.impl.TrafficManageServiceImpl;
import com.bsth.service.traffic.VehicleInoutStopService;
import com.bsth.util.DateUtils;
import com.bsth.util.db.DBUtils_MS;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.jdbc.core.JdbcTemplate;
import org.springframework.stereotype.Service;

import java.util.List;
import java.util.Map;

/**
 *
 * @ClassName: TrafficManageServiceImpl(运管处接口service业务层实现类)
 *
 * @Extends : BaseService
 *
 * @Description:
 *
 * @Author bsth@zq
 *
 * @Date 2016年10月28日 上午9:21:17
 *
 * @Version 公交调度系统BS版 0.1
 *
 */

@Service
public class VehicleInoutStopServiceImpl extends BaseServiceImpl<VehicleInoutStop,Integer> implements VehicleInoutStopService {
	Logger logger = LoggerFactory.getLogger(TrafficManageServiceImpl.class);

	/**
	 * 拼装sql
	 * @param map
	 * @param flag
	 * @return
	 */
	private String packageParam(Map<String,Object> map,String flag){
		StringBuffer sql = new StringBuffer(" where 1 = 1 ");
		String lineId = map.get("lineId")+"";
		String insideCode = map.get("insideCode")+"";
		String carPlate = map.get("carPlate")+"";
		String reportDate_start = map.get("reportDate_start")+"";
		String reportDate_end = map.get("reportDate_end")+"";
		int page = Integer.valueOf(map.get("page")+"");
		int size = Integer.valueOf(map.get("size")+"");
		String order = " order by report_date asc"+ " LIMIT "+page*size+","+size;
		int dayNum = DateUtils.calcDaynumberInYear(reportDate_start.substring(0,8)) -1;
		if(!lineId.equals("")){
			sql.append(" and line_id = ").append(lineId);
		}
		if(!insideCode.equals("")){
			sql.append(" and inside_code = ").append("'").append(insideCode.toUpperCase()).append("'");
		}
		if(!carPlate.equals("")){
			sql.append(" and car_plate = ").append("'").append(carPlate).append("'");
		}
		sql.append(" and FROM_UNIXTIME(REPORT_DATE/1000,'%Y%m%d%H') between '").append(reportDate_start).
				append("' and '").append(reportDate_end).append("'").append(" and day_year = ").append(dayNum);
		if(flag.equals("count")){
			return sql.toString();
		}else{
			return sql + order;
		}
	}

	/**
	 * 给定条件查车载上报停靠站
	 * @param map
	 * @return
	 */
	public List<Map<String, Object>> getVehicleInoutStopByParam(Map<String,Object> map){
		JdbcTemplate jdbcTemp = new JdbcTemplate(DBUtils_MS.getDataSource());
		String sql = "SELECT branche_company,company,name,shanghai_linecode,inside_code,equipment_code,car_plate," +
				"if( service_state= 0,'营运','停运') as service_state ," +
				"if( up_down= 0,'上行','下行') as up_down ," +
				"if( in_out_stop= 0,'站内','站外') as in_out_stop , " +
				"stop,report_date FROM bsth_c_shreal " + packageParam(map,"") ;
		logger.info("车载上报停靠站查询sql:"+sql);
		List<Map<String, Object>> result = jdbcTemp.queryForList(sql);
		return result;
	}

	/**
	 * 给定条件查车载上报停靠站的记录数
	 * @param map
	 * @return
	 */
	public long getVehicleInoutStopCountByParam(Map<String,Object> map){
		JdbcTemplate jdbcTemp = new JdbcTemplate(DBUtils_MS.getDataSource());
		String sql = "SELECT count(1) COUNT FROM bsth_c_shreal" + packageParam(map,"count");
		long result = Long.valueOf(jdbcTemp.queryForMap(sql).get("COUNT")+"");
		logger.info("车载上报停靠站查询count-sql:"+sql);
		return result;
	}
}