ParkingRunningStatisticDaoImpl.java 5.78 KB
package com.zteits.park.dao.impl;

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

import com.zteits.clouds.api.apibase.constants.DataStatusEnum;
import com.zteits.clouds.api.dto.clouds.dto.TurnoverRatioDTO;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;

import org.apache.commons.collections4.CollectionUtils;
import com.github.pagehelper.PageHelper;
import com.github.pagehelper.PageInfo;
import com.zteits.clouds.api.dto.park.dto.ParkingRunningStatisticDTO;
import com.zteits.clouds.api.dto.park.dto.TodayVehicleFlowOccupyRateAndTurnOverDTO;
import com.zteits.clouds.api.dto.park.param.ParkingRunningStatisticForPageRequest;
import com.zteits.park.dao.ParkingRunningStatisticDao;
import com.zteits.park.domain.ParkingRunningStatistic;
import com.zteits.park.domain.ParkingRunningStatisticExample;
import com.zteits.park.domain.ParkingRunningStatisticExample.Criteria;
import com.zteits.park.mapper.ParkingRunningStatisticMapper;
import com.zteits.park.mapper.smapper.ParkingRunningStatisticSMapper;

/**
 * Copyright: Copyright (c) 2018  zteits
 *
 * @ClassName: com.zteits.park.dao.impl
 * @Description:
 * @version: v1.0.0
 * @author: atao
 * @date: 2018/3/13   下午3:45
 * Modification History:
 * Date         Author          Version      Description
 * ---------------------------------------------------------*
 * 2018/3/13      atao          v1.0.0          创建
 */
@Component
public class ParkingRunningStatisticDaoImpl implements ParkingRunningStatisticDao {

    @Autowired
    private ParkingRunningStatisticSMapper parkingRunningStatisticSMapper;

    @Autowired
    private ParkingRunningStatisticMapper parkingRunningStatisticMapper;

    @Override
    public ParkingRunningStatistic queryRecentParkingStatisticData(String plNo, Integer timeCycle, Integer dataSource) {
        return parkingRunningStatisticSMapper.queryRecentParkingStatisticData(plNo, timeCycle, dataSource);
    }

    @Override
    public Integer saveParkingRunningStatistic(ParkingRunningStatistic parkingRunningStatistic) {
        int num = parkingRunningStatisticMapper.insertSelective(parkingRunningStatistic);
        return num;
    }

    @Override
    public List<ParkingRunningStatisticDTO> queryCarFlowChartByDayOrMonth(ParkingRunningStatisticForPageRequest request) {
        return parkingRunningStatisticSMapper.queryCarFlowChartByDayOrMonth(request);
    }

    @Override
    public PageInfo<ParkingRunningStatisticDTO> queryCarFlowByTimeTypeForList(ParkingRunningStatisticForPageRequest request) {
        // 1.设置分页信息
        PageHelper.startPage(request.getBaseRequest().getPageNum(), request.getBaseRequest().getPageSize());
        List<ParkingRunningStatisticDTO> list = parkingRunningStatisticSMapper.queryCarFlowByTimeTypeForList(request);
        return new PageInfo<>(list);
    }



    @Override
    public PageInfo<TurnoverRatioDTO> queryTurnoverRatioForTable(ParkingRunningStatisticForPageRequest request) {
        // 1.设置分页信息
        PageHelper.startPage(request.getBaseRequest().getPageNum(), request.getBaseRequest().getPageSize());
        List<TurnoverRatioDTO> list = parkingRunningStatisticSMapper.queryTurnoverRatioForTable(request);
        return new PageInfo<>(list);
    }

    @Override
    public PageInfo<TurnoverRatioDTO> queryTurnoverRatioChart(ParkingRunningStatisticForPageRequest request) {
        // 1.设置分页信息
        PageHelper.startPage(request.getBaseRequest().getPageNum(), request.getBaseRequest().getPageSize());
        List<TurnoverRatioDTO> list = parkingRunningStatisticSMapper.queryTurnoverRatioChart(request);
        return new PageInfo<>(list);
    }

    @Override
    public List<TodayVehicleFlowOccupyRateAndTurnOverDTO> queryTodayVehicleFlowOccupyRateAndTurnOver(Date beginTime,
        Date endTime, Integer timeCycle, List<String> plNos) {
        return parkingRunningStatisticSMapper.queryTodayVehicleFlowOccupyRateAndTurnOver(beginTime, endTime,
                timeCycle, plNos);
    }
    @Override
    public List<TodayVehicleFlowOccupyRateAndTurnOverDTO> queryCurrentOccupyRateAndTurnOver(Date beginTime,
            Date endTime, Integer timeCycle, List<String> plNos) {
        return parkingRunningStatisticSMapper.queryCurrentOccupyRateAndTurnOver(beginTime, endTime,
                timeCycle, plNos);
    }


    @Override
    public PageInfo<ParkingRunningStatistic> queryParkingLotUseStatisticForPage(Date beginTime, Date endTime,
            Integer timeCycleType, List<String> plNos, int pageNum, int pageSize) {
     // 1.设置分页信息
        PageHelper.startPage(pageNum, pageSize);
        //2.查询数据
        ParkingRunningStatisticExample example = new ParkingRunningStatisticExample();
        Criteria sql = example.createCriteria();
        sql.andDataStatusEqualTo(DataStatusEnum.DATA_STATUS_VALID.value());
        if (!CollectionUtils.isEmpty(plNos)) {
            sql.andPlNoIn(plNos);
        }
        if (null != timeCycleType) {
            sql.andTimeCycleEqualTo(timeCycleType);
        }
        sql.andDataSourceEqualTo(10);
        if (null != beginTime && null != endTime) {
            sql.andStatisticEndTimeBetween(beginTime, endTime);
        } else if (null != beginTime) {
            sql.andStatisticEndTimeGreaterThanOrEqualTo(beginTime);
        } else if (null != endTime) {
            sql.andStatisticEndTimeLessThanOrEqualTo(endTime);
        }
        example.setOrderByClause("statistic_begin_time desc,pl_no asc");
        List<ParkingRunningStatistic> list = parkingRunningStatisticMapper.selectByExample(example);
        return new PageInfo<>(list);
    }

    @Override
    public Double queryAvgOccUpyRatio(String plNo, Integer timeCycle, Date startTime, Date endTime) {
        return parkingRunningStatisticSMapper.queryAvgOccUpyRatio(plNo,timeCycle,startTime,endTime);
    }
}