BerthsDao.java 7.94 KB
package com.zteits.park.dao;

import com.github.pagehelper.PageInfo;
import com.zteits.clouds.api.dto.order.parkorder.param.ParkOrderUpdateCarNumberReq;
import com.zteits.clouds.api.dto.park.dto.BerthsDTO;
import com.zteits.clouds.api.dto.park.dto.ParkOccupancyRateDTO;
import com.zteits.clouds.api.dto.park.dto.berth.BerthsStatisticDTO;
import com.zteits.clouds.api.dto.park.param.CheckUniqueForBerthNoRequest;
import com.zteits.clouds.api.dto.park.param.DeleteBerthsRequest;
import com.zteits.clouds.api.dto.park.param.QueryBerthForPageRequest;
import com.zteits.clouds.api.dto.park.param.parksource.QueryParkSourceByOrgIdsRequest;
import com.zteits.clouds.api.dto.pda.param.*;
import com.zteits.clouds.api.dto.rocketmq.datacollection.freeberths.ParkAreaFreeBerthsMsgVO;
import com.zteits.park.domain.TpPBerths;
import com.zteits.park.domain.TpPBerthsDO;
import com.zteits.park.domain.TpPBerthsExample;

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

/**
 * 泊位表
 *
 * Copyright: Copyright (c) 2017  zteits
 *
 * @ClassName: IrainParkingPayLogDao.java
 * @Description:
 * @version: v1.0.0
 * @author: wangfei
 * @date: 2017年8月21日   下午2:56:28
 * Modification History:
 * Date             Author          Version            Description
 *---------------------------------------------------------*
 * 2017年5月4日      wangfei              v1.0.0               创建
 */
public interface BerthsDao {
	/**
	 * <p>单独针对物联网小镇,方格尔做的<p>
	 * 通过车位编号更新状态<br>
	 * 原因:方格尔上报不传递停车场,只传递车位编号,车位编号在他那里是唯一的,为防止在我方内部冲突,需要在车位前增加前缀FG_
	 * @param isOccupy 车位状态  1有车,2无车,3异常
	 * @param reportTime 设备上报时间(设备上报更新,pda不更新)
	 * @param recordId 停车记录id
	 * @param berthNo 车位编号 必填
	 * @return
	 * 2017年8月25日 zhaowg
	 */
	@Deprecated
	TpPBerths updateBerthByBerthNoForFangGe(String isOccupy,Date reportTime,String recordId,String berthNo);
	/**
	 * 新增泊位信息表
	 * @param tpPBerths
	 * @return
	 */
	int insertBerthInfo(TpPBerths tpPBerths);

	/**
	 * 更新泊位信息
	 * @param tpPBerths
	 * @return
	 */
	int updateBerthInfoByBerthNoAndPlNo(TpPBerths tpPBerths);
	/**
	 * 根据停车场编码查询车位数量
	 * @param plNos
	 * @return
	 */
	Map<String, Long> queryParkBerthNum(List<String> plNos);

	/**
	 * 根据停车场编号查询空闲车位总数
	 * @param plNo
	 * @return
	 * 2017年8月30日 zhaowg
	 */
	Long queryFreeBerthNum(String plNo,String where);

	/**
	 * 修改泊位信息
	 * @param tpPBerths
	 * @return
	 */
	Boolean updateBerthInfoById(TpPBerths tpPBerths);

	/**
	 * 修改泊位运营状态信息
	 * @param request
	 * @return
	 */
	Boolean updateBerthBusiInfoStatus(DeleteBerthsRequest request);

	/**
	 * 批量删除泊位信息
	 * @return
	 */
	Boolean batDeleteBerthsById(List<Long> ids,Long modifyOp,String plNo);
	/**
     * 通过车位对象分页查询车位信息
     * query berths by berth for page
     * langlw 2017-8-31
     * @param
     * @return
     */
	PageInfo<TpPBerthsDO> queryBerthByBerth(QueryBerthForPageRequest request,int pageNum,int pageSize);
	/**
	 * 分组查询停车场占用率
	 * query park cooupancy rate group by park
	 * langlw 2017-8-31
	 * @param
	 * @return
	 */
	List<ParkOccupancyRateDTO> queryParkOccupancyRate(String plNo, String parkAreaCode);

	 /**
     * 通过停车场编号和泊位区间编号查询泊位总数
     * langlw 2017-8-31
     * @param plNo 必填
     * @param parkAreaCode 可以为空
     * @return
     */
	Integer queryBerthCountByPlNoAndParkAreaCode(String plNo,String parkAreaCode);
	/**
	 * 根据停车场编号和泊位编号批量更新车位状态为空闲
	 * @param plNo
	 * @param parkAreaCode
	 * @return
	 * 2017年9月1日 zhaowg
	 */
	@Deprecated
	Integer batchUpdateBerthStateForFree(String plNo,String parkAreaCode);
	/**
	 * 根据停车场编码查询停车场的泊位
	 * @param pklNo
	 * @return
	 */
	List<TpPBerths> queryBerthsByPlNo(String pklNo);

	/**
	 * 根据泊位区间编号查询泊位信息
	 * @param parkAreaCodes
	 * @return
	 */
	List<TpPBerthsDO> queryBerthByAreaCodes(List<String> parkAreaCodes);


	/**
	 * 动态查询车位信息
	 * @param example
	 * @return
	 * 2017年10月31日 zhaowg
	 */
	List<TpPBerths> selectByExample(TpPBerthsExample example);
	/**
	 * 动态更新
	 * @param record
	 * @param example
	 * @return
	 * 2017年12月4日 zhaowg
	 */
	int updateByExampleSelective(TpPBerths record, TpPBerthsExample example);


	/**
	 * 校验泊位编码的唯一性.<br/>
	 * @param request
	 * @return
	 * 2018年1月5日  wangfs.<br/>
	 */
	int checkUniqueForBerthNo(CheckUniqueForBerthNoRequest request);

	/**
	 * 批量保存泊位信息.<br/>
	 * @param list
	 * @return
	 * 2018年1月6日  wangfs.<br/>
	 */
	int batchSaveBerthInfo(List<TpPBerths> list);
	/**
	 * 更换泊位区间
	 * @param ids
	 * @param parkAreaCode
	 * @param opId
	 * 2018年1月7日 zhaowg
	 */
	void changeBerthArea(List<Long> ids, String parkAreaCode, Long opId);
	/**
	 * 根据停车场编号获取未绑定设备的泊位信息
	 * @param plNo
	 * @return
	 * 2018年1月24日 zhaowg
	 */
	List<TpPBerths> getBerthNoBindGeoByPlNo(String plNo);

	/**
	 * 根据泊位区间编号和停车场编号和泊位或者地磁编号查询车位信息
	 * @param
	 * @return
	 * @Author: xiejianpeng
	 * @Date: 2018/5/31 14:33
	 *
	 */
	List<BerthsDTO> queryBerthInfoByPlNoAndOther(QueryBerthByPlNoAndOrtherRequest request);

	/**
	 * 根据停车场编号和泊位编号查询车位信息
	 * @param
	 * @return
	 * @Author: xiejianpeng
	 * @Date: 2018/5/31 15:55
	 *
	 */
	BerthsDTO queryBerthInfoByPlNoAndBerthNo(QueryBerthByPlNoAndBerthNoRequest request);
	/**
	 * 根据泊位区间编号查询泊位信息
	 * @param request
	 * @return
	 * 2017年10月31日 zhaowg
	 */
	List<TpPBerths> queryBerthInfoByRangeNos(QueryBerthByRangeNosRequest request);

	/**
	 * 停车场的泊位统计-根据orgIds
	 * @param
	 * @return
	 * @Author: xiejianpeng
	 * @Date: 2018/12/29 14:27
	 *
	 */
	BerthsStatisticDTO queryBerthStatisticByOrgIds(QueryParkSourceByOrgIdsRequest request);

	/**
	 * 各个组织对应的泊位数统计查询
	 * @param
	 * @return
	 * @Author: xiejianpeng
	 * @Date: 2019/1/6 22:27
	 *
	 */
	List<BerthsStatisticDTO> queryBerthStatisticForOrgId(QueryParkSourceByOrgIdsRequest request);

	/**
	 * 根据泊位区间编码查询存在地磁的泊位编码
	 * @param berthRangeNo
	 * @param plNo
	 * @return
	 */
	List<String> queryBerthNoWithEqpNoByBerthRangeNo(String berthRangeNo, String plNo);

	/**
	 * 根据 泊位区间 查询 泊位数量
	 * @param berthRangeNo
	 * @return
	 */
	Long queryBerthNumByBerthRangeNo(String berthRangeNo);

	/**
	 * 更新占用 泊位的 在停车牌号
	 * @param req
	 * @return
	 */
	Boolean updateCarNumberByBerthNo(ParkOrderUpdateCarNumberReq req);

	/**
	 * 入场-修改泊位信息(仅仅用于pda入场)
	 * @param
	 * @return
	 * @Author: xiejianpeng
	 * @Date: 2019/9/10 09:55
	 *
	 */
    Integer updateBerthInfoForInPark(TpPBerths tpPBerths);

    /**
     * 更改泊位地磁出场时间
     * @param
     * @return
     * @Author: xiejianpeng
     * @Date: 2019/11/18 22:45
     *
     */
	Integer updateBerthEqpOutTime(UpdateBerthRequest request);

	/**
	 * 修改停车泊位记录
	 * @param
	 * @return
	 * @Author: xq
	 * @Date: 2021/7/22 20:45
	 *
	 */
	Integer updateBerthInfoByPDA(UpdateBerthByOrderIdRequest request);

	/**
	 * 统计车场泊位区间对应的空闲车位
	 * @param
	 * @return
	 * @Author: xiejianpeng
	 * @Date: 2020/8/5 15:58
	 *
	 */
    List<ParkAreaFreeBerthsMsgVO> qyeryParkAreaBerthNumstatistic(String plNo);

	/**
	 * 根据排班的停车场编号列表以及泊位号模糊查询对应的泊位信息
	 */
	List<BerthsDTO> queryBerthInfoByKeyWord (List<String> plNos, String berthNo );

	/**
	 * 验证泊位号
	 * @param berthNo
	 * @return
	 */
	BerthsDTO queryBerthsByBerthNo(String berthNo);
}