ParkingLotUseStatisticSMapper.java 7.21 KB
package com.zteits.park.mapper.smapper;

import java.util.Date;
import java.util.List;

import org.apache.ibatis.annotations.Param;

import com.zteits.clouds.api.dto.clouds.dto.TurnoverRatioDTO;
import com.zteits.clouds.api.dto.govclouds.param.QueryParkingOccupyRequest;
import com.zteits.clouds.api.dto.park.dto.MonthVehicleFlowAndVacancyRateAndTurnoverDTO;
import com.zteits.clouds.api.dto.park.dto.ParkingLotUseStatisticDTO;
import com.zteits.clouds.api.dto.park.dto.TodayVehicleFlowOccupyRateAndTurnOverDTO;
import com.zteits.clouds.api.dto.park.param.ParkingLotUseStatisticForPageRequest;
import com.zteits.park.domain.ParkingLotUseStatistic;
import com.zteits.park.domain.ParkingLotUseStatisticMaxAndMin;
import com.zteits.park.domain.ParkingLotUseStatisticSum;
import com.zteits.park.domain.ParkingOccupyDO;

/**
 * Copyright: Copyright (c) 2017  zteits
 *
 * @ClassName: ParkingLotUseStatisticSMapper.java
 * @Description:
 * @version: v1.0.0
 * @author: langlw
 * @date: 2017年6月14日   上午11:16:23
 * Modification History:
 * Date             Author          Version            Description
 * ---------------------------------------------------------*
 * 2017年6月14日      langlw          v1.0.0               创建
 */
public interface ParkingLotUseStatisticSMapper {




    /**
     * 分页按月统计停车场运行数据
     *
     * @param request
     * @return
     */
    List<ParkingLotUseStatisticDTO> queryCarFlowByMonthForPage(ParkingLotUseStatisticForPageRequest request);

    /**
     * 查询停车场数据统计最大值和最小值 车位总流量
     *
     * @param beginTime
     * @param endTime
     * @param queryKind
     * @param parkinglotID
     * @return
     */
    ParkingLotUseStatisticMaxAndMin QueryVehicleFlowStatisticMaxAndMin(@Param("beginTime") Date beginTime,
        @Param("endTime") Date endTime, @Param("statisticType") Integer statisticType,
        @Param("plNos") List<String> plNos);

    /**
     * 查询停车场数据统计最大值和最小值   周转率和空置率
     *
     * @param beginTime
     * @param endTime
     * @param queryKind
     * @param parkinglotID
     * @return
     */
    ParkingLotUseStatisticMaxAndMin QueryBerthUseStatisticMaxAndMin(@Param("beginTime") Date beginTime,
        @Param("endTime") Date endTime, @Param("statisticType") Integer statisticType,
        @Param("plNos") List<String> plNos);

    /**
     * 查询停车场数据统计进出场总数
     *
     * @param beginTime
     * @param endTime
     * @param queryKind
     * @param parkinglotID
     * @return
     */
    ParkingLotUseStatisticSum QueryInOutParkStatisticSum(@Param("beginTime") Date beginTime,
        @Param("endTime") Date endTime, @Param("statisticType") Integer statisticType,
        @Param("plNos") List<String> plNos);

    /**
     * 批量保存统计记录
     *
     * @param records
     * @return 2017年8月21日 zhangzt
     */
    int batchSave(@Param("records") List<ParkingLotUseStatistic> records);

    /**
     * 根据停车场编号查询 当前时间的进出场车流量、周转率、占用率
     *
     * @param
     * @return
     */
    List<TodayVehicleFlowOccupyRateAndTurnOverDTO> queryTodayVehicleFlowOccupyRateAndTurnOver(
        @Param("beginTime") Date beginTime, @Param("endTime") Date endTime,
        @Param("statisticType") Integer statisticType, @Param("plNos") List<String> plNos);
    
    /**
     * Monthly parking volume, vacancy rate and turnover rate are examined
     * 按月统计进出场车流量和占用率和周转率
     * langlw 2017-8-25
     * @param
     * @return
     */
    List<MonthVehicleFlowAndVacancyRateAndTurnoverDTO> queryMonthVehicleFlowAndVacancyRateAndTurnover(
        @Param("beginTime") Date beginTime, @Param("endTime") Date endTime,
         @Param("plNos") List<String> plNos);


    /**
     * 查询24小时停车场占用率
     * @param request
     * @return
     */
    List<ParkingOccupyDO> queryTwentyFourHoursOccupyRate(QueryParkingOccupyRequest request);

    /**
     * 统计每20分钟的数据
     * @param startDate 统计开始时间
     * @param endDate 统计结束时间
     * @param states 停车场状态 1-使用中,2-演示停车场'
     */
    void statistic20MinData(@Param("startDate") Date startDate,@Param("endDate") Date endDate,@Param("states")List<Integer> states);

    /**
     * 统计1小时 与 1天数据
     * @param startDate 统计开始时间
     * @param endDate 统计结束时间
     * @param type 统计类型 2-每小时 3-每天
     */
    void static1HourAnd1DayData(@Param("startDate") Date startDate,@Param("endDate") Date endDate,@Param("type") Integer type);


    /**
     * 按天查询车流量图表数据
     *
     * @param request
     * @return
     */
    List<ParkingLotUseStatisticDTO> queryCarFlowChartByDay(ParkingLotUseStatisticForPageRequest request);

    /**
     * 按月查询车流量图表数据
     *
     * @param request
     * @return
     */
    List<ParkingLotUseStatisticDTO> queryCarFlowChartByMonth(ParkingLotUseStatisticForPageRequest request);


    /***
     * 查询周转率新的
     * langlw 2018-1-6
     * @param request
     * @return
     */
    List<TurnoverRatioDTO> queryTurnoverRatioNew(ParkingLotUseStatisticForPageRequest request);

    /***
     * 查询周转率新的图表
     * langlw 2018-1-6
     * @param request
     * @return
     */
    List<TurnoverRatioDTO> queryTurnoverRatioNewForChart(ParkingLotUseStatisticForPageRequest request);
    
    /**
     * 统计每20分钟的数据(查询)
     * @param startDate 统计开始时间
     * @param endDate 统计结束时间
     * @param states 停车场状态 1-使用中,2-演示停车场'
     */
    List<ParkingLotUseStatistic> statistic20MinDataForSelect(@Param("startDate") Date startDate,@Param("endDate") Date endDate,@Param("states")List<Integer> states);


    /**
     * 统计每20分钟的数据(查询) 查询路侧,从地磁获取
     * @param startDate 统计开始时间
     * @param endDate 统计结束时间
     * @param states 停车场状态 1-使用中,2-演示停车场'
     */
    List<ParkingLotUseStatistic> statistic20MinDataForSelectByLCPark(@Param("startDate") String startDate,@Param("endDate") String endDate,@Param("states")List<Integer> states,@Param("recordDateStr") String recordDateStr);


    /**
     * 统计每20分钟的数据(查询) 查询封闭的
     * @param startDate 统计开始时间
     * @param endDate 统计结束时间
     * @param states 停车场状态 1-使用中,2-演示停车场'
     */
    List<ParkingLotUseStatistic> statistic20MinDataForSelectByFBPark(@Param("startDate") Date startDate,@Param("endDate") Date endDate,@Param("states")List<Integer> states);


    /**
     * 统计每20分钟的数据(新增)
     * @param startDate 统计开始时间
     * @param endDate 统计结束时间
     * @param states 停车场状态 1-使用中,2-演示停车场'
     */
    void statistic20MinDataForInsert(@Param("parkingLotUseStatistics") List<ParkingLotUseStatistic> parkingLotUseStatistics);

    /**
     * 根据停车场编号 获取最新的20分钟统计数据
     * @param
     * @return
     * @Author: atao
     * @Date: 2018/3/14 下午8:19
     *
     */
    List<ParkingLotUseStatistic> query20MinNewDataGroupByPlNO();

}