ParkingLotSMapper.java 10.4 KB
package com.zteits.park.mapper.smapper;

import java.util.List;
import java.util.Set;

import com.zteits.clouds.api.dto.park.dto.ParkNumInfoDTO;
import com.zteits.clouds.api.dto.park.dto.ParkingLotDTO;
import com.zteits.clouds.api.dto.park.dto.parksource.ParkDeviceStaForEveryDTO;
import com.zteits.clouds.api.dto.park.param.QueryParkListByParkRequest;
import com.zteits.clouds.api.dto.park.param.QueryParkingLotByAreaBlockRequest;
import com.zteits.clouds.api.dto.park.param.QueryPlNameRequest;
import com.zteits.clouds.api.dto.park.param.parklot.QueryOrgIdsByCityIdsRequest;
import com.zteits.clouds.api.dto.park.param.parksource.QueryParkSourceByOrgIdsRequest;
import com.zteits.clouds.api.dto.pay.PlNameDTO;
import com.zteits.clouds.api.dto.pay.TdBTempParklotDTO;
import com.zteits.clouds.api.dto.pay.param.ChangeBlockForParkLotRequest;
import com.zteits.clouds.api.dto.pay.param.CheckUniqueForPlNameRequest;
import com.zteits.clouds.api.dto.tool.dto.ParkDutyInfoDTO;
import com.zteits.clouds.api.dto.tool.param.ParkDutyInfoQueryReq;
import com.zteits.park.domain.AreaTreeDO;
import com.zteits.park.domain.ParkingLot;
import com.zteits.park.domain.ParkingLotAndGeoDO;
import com.zteits.park.domain.ParkingLotAndGeoInfo;
import com.zteits.park.domain.ParkingLotCountStatisticByCountryDO;
import com.zteits.park.domain.ParkingLotExtDO;
import com.zteits.park.domain.ParkingLotQueryPageDO;
import com.zteits.park.domain.ParkinglotHeatmapHour;
import org.apache.ibatis.annotations.Param;

public interface ParkingLotSMapper {

    /*******************************停车场基本信息-开始******************************/
    /**
     * 分页查询停车场
     *
     * @param parkingLot
     * @return langlw 2017-08-14
     */
    List<ParkingLot> queryParkingLotByPark(ParkingLotQueryPageDO parkingLot);

    /**
     * 通过停车场对象查出停车场信息
     * Parking information is identified through parking lot objects
     * langlw 2017-9-11
     *
     * @param parkingLot
     * @return
     */
    List<ParkingLot> queryParkListByPark(QueryParkListByParkRequest request);

    /**
     * 查询所有停车场编码及名车
     *
     * @param request
     * @return
     */
    List<ParkingLot> queryParkListAll();

    /*******************************停车场基本信息-结束******************************/

    /**
     * 通过geoHash查询停车场信息
     *
     * @param geoHashs
     * @return 2017年6月5日 zhaowg
     */
    List<ParkingLotAndGeoInfo> queryParkingLotByGeoHash(@Param("geoHashs") Set<String> geoHashs);

    /**
     * 根据GeoHash和给定的经纬度查询符合条件的条数
     *
     * @param geoHashs
     * @return 2017年6月5日 zhaowg
     */
    Long queryTabParkCountByDistance(@Param("geoHashs") Set<String> geoHashs);

    /**
     * 查询停车场信息和经纬度信息
     *
     * @param record
     * @return 2017年6月6日 zhaowg
     */
    List<ParkingLotAndGeoInfo> queryParkingLotAndGeo(ParkingLot record);

    /**
     * 通过区县分组获取停车场统计信息
     *
     * @param cityId 城市ID 不传递默认所有城市分组
     * @param state  停车场状态:1-使用中,2-演示停车场
     * @return 2017年6月29日 zhaowg
     */
    List<ParkingLotCountStatisticByCountryDO> statisticParkLotCountByCountry(@Param("cityId") Long cityId,
        @Param("state") Integer state);

    /**
     * 通过城市ID获取停车场信息
     *
     * @param cityId 城市ID
     * @param state  停车场状态:1-使用中,2-演示停车场
     * @return 2017年7月6日 xiejp
     */
    List<ParkingLot> queryParkLotByCountry(@Param("cityId") Long cityId, @Param("state") Integer state);

    /**
     * 通过省份,城市ID获取停车场信息
     *
     * @param provId
     * @param cityId
     * @param state  停车场状态:1-使用中,2-演示停车场
     * @return
     */
    List<ParkingLot> queryParkLotByProvAndCity(@Param("provId") Long provId, @Param("cityId") Long cityId, @Param
        ("state") Integer state);

    /**
     * 通过城市ID和区县ID获取停车场信息 - 分页
     *
     * @param cityId     城市ID
     * @param countryIds 区县ID
     * @param state      停车场状态:1-使用中,2-演示停车场
     * @return 2017年7月7日 xiejp
     */
    List<ParkingLot> queryParkLotByCountryAndParkName(@Param("plNos") List<String> plNos, @Param("cityId") Long cityId,
        @Param("countryIds") List<Long> countryIds, @Param("parkNameOrAddress") String parkNameOrAddress,
        @Param("state") Integer state,@Param("plTypes")List<Integer> plTypes);

    /**
     * 查询停车场及停车场经纬度信息.<br/>
     *
     * @param parkingLotAndGeoDO
     * @return
     */
    List<ParkinglotHeatmapHour> queryParkingLotAndGeoInfo(ParkingLotAndGeoDO parkingLotAndGeoDO);

    /**
     * 根据区县ID 与 停车场名称 地址 检索 停车场编号
     *
     * @param countryIds       区县ID集合 必填
     * @param parkNameOrAddres 停车场名称、地址、检索内容
     * @param state            停车场状态:1-使用中,2-演示停车场   null 则查询全部
     * @return
     */
    List<String> queryPlNoCountryAndParkNameAndAddress(@Param("countryIds") List<Long> countryIds, @Param("searchText")
        String searchText, @Param("state") Integer state);

    /**
     * 分页查询停车场
     *
     * @param parkingLot
     * @return langlw 2017-08-14
     */
    List<ParkingLot> queryParkingLotByPark(ParkingLot parkingLot);

    List<String> queryPlNoCountryAndParkNameAndAddress(@Param("countryIds") List<Long> countryIds, @Param("searchText")
        String searchText);

    /**
     * 根据停车场编码查询总的车位数
     *
     * @param plNos
     * @return
     */
    long queryBerthNoByPlnos(@Param("plNos") List<String> plNos);

    /**
     * 通过区域块ids查询停车场列表.<br/>
     *
     * @param parkInfoByAreaBlockIdsRequest
     * @param state                         停车场状态:1-使用中,2-演示停车场
     * @return
     */
    List<AreaTreeDO> queryParkInfoByAreaBlockIds(@Param("areaIds") List<Long> areaBlockIds, @Param("state") Integer
        state);

    /**
     * 查询最大的plNo
     *
     * @param plCountryId
     * @return
     */
    String queryMaxPlNoByPlCountryId(@Param("plCountryId") Long plCountryId, @Param("state") Integer state);

    /**
     * 通过区县分组获取停车场统计信息区分停车场类型
     * langlw 2017-9-6
     *
     * @param cityId 城市ID 不传递默认所有城市分组
     * @param state  停车场状态:1-使用中,2-演示停车场
     * @return
     */
    List<ParkingLotCountStatisticByCountryDO> statisticParkLotCountByCountryForPlType(@Param("cityId") Long cityId,
        @Param("state") Integer state);

    /**
     * 根据停车场编号更新当前停车场泊位数量
     *
     * @param parkingLot
     * @return
     */
    Integer updateParkBerthNumByPlNo(ParkingLot parkingLot);

    /**
     * 查询所有停车场编码
     *
     * @param state 停车场状态
     * @return
     */
    List<String> queryAllPlNo(@Param("state") Integer state);

    /**
     * 分页查询order域 停车场临时信息
     *
     * @return
     */
    List<TdBTempParklotDTO> queryParkTempInfoPage();

    /**
     * 通过服务点id查询停车场.<br/>
     *
     * @param request
     * @return
     * @throws Exception 2017年12月28日  wangfs.<br/>
     */
    List<ParkingLot> queryParkingLotByAreaBlockId(QueryParkingLotByAreaBlockRequest request);

    /**
     * 校验停车场名称唯一性.<br/>
     *
     * @param request
     * @return 2018年1月4日  wangfs.<br/>
     */
    int checkUniqueForPlName(CheckUniqueForPlNameRequest request);

    /**
     * 更新停车场块信息.<br/>
     *
     * @param request
     * @return 2018年1月4日  wangfs.<br/>
     */
    int updateBlockForParkLot(ChangeBlockForParkLotRequest request);

    /**
     * 停车场管理-更新停车场块信息
     *
     * @param request
     * @return 2018年1月9日 xiejp
     */
    int updateAreaBlockForParkLot(ChangeBlockForParkLotRequest request);

    /**
     * 通过办事处id更新停车场块信息.<br/>
     *
     * @param request
     * @return 2018年1月4日  wangfs.<br/>
     */
    int updateParkLotBlockNameByBlockId(ChangeBlockForParkLotRequest request);

    /**
     * 根据停车场状态查询停车场扩展信息
     *
     * @param states
     * @return
     * @Author: atao
     * @Date: 2018/3/13 上午11:17
     */
    List<ParkingLotExtDO> queryParkLotExtByState(List<Integer> states);

    /**
     * 通过停车场外部编码查询停车场编码
     * @param plOutNo
     * @return
     * Apr 25, 2018 hxz
     */
    String queryPlNoByPlOutNo(@Param("plOutNo") String plOutNo);

    /**
     * 通过停车场外部编码查询停车场总车位数
     * @param plOutNo
     * @return
     * Apr 25, 2018 hxz
     */
    Integer queryPlBerthNumByPlOutNo(@Param("plOutNo") String plOutNo);

    /**
     * 通过cityIds查询orgIds
     * @param
     * @return
     * @Author: xiejianpeng
     * @Date: 2018/12/28 16:08
     *
     */
    List<Long> getOrgIdsByCityIds(QueryOrgIdsByCityIdsRequest request);

    /**
     * 查询停车下面设备数量
     * @param
     * @return
     * @Author: xiejianpeng
     * @Date: 2018/12/29 10:32
     *
     */
    List<ParkDeviceStaForEveryDTO> queryDeviceStatistic(QueryParkSourceByOrgIdsRequest request);

    /**
     * 停车场数量统计-根据组织id
     * @param
     * @return
     * @Author: xiejianpeng
     * @Date: 2019/1/6 22:46
     *
     */
    Integer queryParkNumStatisticByOrgIds(QueryParkSourceByOrgIdsRequest request);

    /**
     * 停车场数量统计-根据组织id
     *
     * @param
     * @return
     * @Author: xiejianpeng
     * @Date: 2019/1/6 22:46
     */
    ParkNumInfoDTO queryParkNumInfoStatisticByOrgIds(QueryParkSourceByOrgIdsRequest request);



    /**
     * 查询停车场排班信息
     *
     * @param req
     * @return
     */
    List<ParkDutyInfoDTO> queryParkDutyInfo(ParkDutyInfoQueryReq req);

    List<String> queryBusiPlNameByOrgIds(@Param("orgIds") List<Long> orgIds);

    /**
     * 根据车场编号查询车场名称
     * @param request
     * @return
     * @Auther niueb 2019/12/12
     */
    List<PlNameDTO> queryPlNameByPlNo(QueryPlNameRequest request);
    /**
     * 停车场最大编码获取:以 PL 或者 TL 开头的
     * @param prefixStr
     * @return
     */
    String selectMaxPlNO(@Param("prefixStr") String prefixStr);

}