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 queryCarFlowChartByDayOrMonth(ParkingRunningStatisticForPageRequest request) { return parkingRunningStatisticSMapper.queryCarFlowChartByDayOrMonth(request); } @Override public PageInfo queryCarFlowByTimeTypeForList(ParkingRunningStatisticForPageRequest request) { // 1.设置分页信息 PageHelper.startPage(request.getBaseRequest().getPageNum(), request.getBaseRequest().getPageSize()); List list = parkingRunningStatisticSMapper.queryCarFlowByTimeTypeForList(request); return new PageInfo<>(list); } @Override public PageInfo queryTurnoverRatioForTable(ParkingRunningStatisticForPageRequest request) { // 1.设置分页信息 PageHelper.startPage(request.getBaseRequest().getPageNum(), request.getBaseRequest().getPageSize()); List list = parkingRunningStatisticSMapper.queryTurnoverRatioForTable(request); return new PageInfo<>(list); } @Override public PageInfo queryTurnoverRatioChart(ParkingRunningStatisticForPageRequest request) { // 1.设置分页信息 PageHelper.startPage(request.getBaseRequest().getPageNum(), request.getBaseRequest().getPageSize()); List list = parkingRunningStatisticSMapper.queryTurnoverRatioChart(request); return new PageInfo<>(list); } @Override public List queryTodayVehicleFlowOccupyRateAndTurnOver(Date beginTime, Date endTime, Integer timeCycle, List plNos) { return parkingRunningStatisticSMapper.queryTodayVehicleFlowOccupyRateAndTurnOver(beginTime, endTime, timeCycle, plNos); } @Override public List queryCurrentOccupyRateAndTurnOver(Date beginTime, Date endTime, Integer timeCycle, List plNos) { return parkingRunningStatisticSMapper.queryCurrentOccupyRateAndTurnOver(beginTime, endTime, timeCycle, plNos); } @Override public PageInfo queryParkingLotUseStatisticForPage(Date beginTime, Date endTime, Integer timeCycleType, List 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 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); } }