| | |
| | | |
| | | <!-- 查询车辆进出场信息 add by wuxw 2018-07-03 --> |
| | | <select id="getCarInoutInfo" parameterType="Map" resultType="Map"> |
| | | select t.in_time,t.in_time inTime,t.inout_id,t.inout_id inoutId,t.pa_id,t.pa_id paId,t.car_num,t.car_num |
| | | carNum,t.status_cd,t.status_cd statusCd,t.state,t.community_id,t.community_id communityId,t.out_time,t.out_time |
| | | outTime,td.`name` stateName,pa.num areaNum,tcfc.fee_name feeName,tcfc.config_id configId,max(cid.car_type) carType |
| | | from car_inout t |
| | | LEFT JOIN car_inout_detail cid on t.inout_id = cid.inout_id and cid.status_cd = '0' and cid.state in ('100300','100400','100600') |
| | | left join t_dict td on t.state = td.status_cd and td.table_columns='state' and td.table_name = 'car_inout' |
| | | left join parking_area pa on t.pa_id = pa.pa_id and pa.status_cd = '0' |
| | | left join temp_car_fee_config tcfc on pa.pa_id = tcfc.pa_id and tcfc.status_cd = '0' |
| | | where 1 =1 |
| | | <if test="inTime !=null and inTime != ''"> |
| | | and t.in_time= #{inTime} |
| | | SELECT |
| | | -- 出场记录字段 |
| | | out_rec.in_time outInTime, |
| | | out_rec.inout_id outInoutId, |
| | | out_rec.pa_id paId, |
| | | out_rec.car_num carNum, |
| | | out_rec.vehicle_type vehicleType, |
| | | out_rec.payment_amount paymentAmount, |
| | | out_rec.merchant_id merchantId, |
| | | out_rec.direction, |
| | | out_rec.status_cd statusCd, |
| | | out_rec.state outState, |
| | | out_rec.community_id communityId, |
| | | out_rec.out_time outTime, |
| | | -- 关联的进场记录字段 |
| | | in_rec.in_time inTime, |
| | | in_rec.inout_id inInoutId, |
| | | in_rec.state inState, |
| | | -- 其他关联信息 |
| | | td_out.`name` outStateName, |
| | | td_in.`name` inStateName, |
| | | pa.num areaNum, |
| | | tcfc.fee_name feeName, |
| | | tcfc.config_id configId, |
| | | MAX(cid_out.car_type) carType, |
| | | MAX(cid_out.car_type_name) carTypeName, |
| | | -- 停车时长 |
| | | TIMESTAMPDIFF(MINUTE, in_rec.in_time, out_rec.out_time) parkMinutes |
| | | FROM car_inout out_rec |
| | | -- 关联最新的进场记录 |
| | | LEFT JOIN ( |
| | | SELECT |
| | | car_num, in_time, inout_id, state, pa_id, community_id, |
| | | ROW_NUMBER() OVER (PARTITION BY car_num ORDER BY in_time DESC) rn |
| | | FROM car_inout |
| | | WHERE state = '100300' -- 进场状态 |
| | | AND status_cd = '0' |
| | | ) in_rec ON out_rec.car_num = in_rec.car_num |
| | | AND out_rec.in_time > in_rec.in_time |
| | | AND in_rec.rn = 1 |
| | | AND out_rec.pa_id = in_rec.pa_id |
| | | |
| | | -- 原有关联表(调整为关联出场记录) |
| | | LEFT JOIN car_inout_detail cid_out ON out_rec.inout_id = cid_out.inout_id |
| | | AND cid_out.status_cd = '0' |
| | | AND cid_out.state IN ('100300','100400','100600') |
| | | LEFT JOIN t_dict td_out ON out_rec.state = td_out.status_cd |
| | | AND td_out.table_columns = 'state' |
| | | AND td_out.table_name = 'car_inout' |
| | | LEFT JOIN t_dict td_in ON in_rec.state = td_in.status_cd |
| | | AND td_in.table_columns = 'state' |
| | | AND td_in.table_name = 'car_inout' |
| | | LEFT JOIN parking_area pa ON out_rec.pa_id = pa.pa_id |
| | | AND pa.status_cd = '0' |
| | | LEFT JOIN temp_car_fee_config tcfc ON pa.pa_id = tcfc.pa_id |
| | | AND tcfc.status_cd = '0' |
| | | |
| | | WHERE 1 = 1 |
| | | -- 主表筛选离场记录 |
| | | AND out_rec.state = '100500' -- 离场状态 |
| | | AND out_rec.status_cd = '0' |
| | | |
| | | -- 保留原始所有查询条件(调整别名适配新结构) |
| | | <if test="inTime != null and inTime != ''"> |
| | | AND in_rec.in_time = #{inTime} |
| | | </if> |
| | | <if test="inoutId !=null and inoutId != ''"> |
| | | and t.inout_id= #{inoutId} |
| | | <if test="inoutId != null and inoutId != ''"> |
| | | AND out_rec.inout_id = #{inoutId} |
| | | </if> |
| | | <if test="paId !=null and paId != ''"> |
| | | and t.pa_id= #{paId} |
| | | <if test="paId != null and paId != ''"> |
| | | AND out_rec.pa_id = #{paId} |
| | | </if> |
| | | <if test="paIds !=null"> |
| | | and t.pa_id in |
| | | <if test="paIds != null"> |
| | | AND out_rec.pa_id IN |
| | | <foreach collection="paIds" item="item" open="(" close=")" separator=","> |
| | | #{item} |
| | | </foreach> |
| | | </if> |
| | | <if test="carNum !=null and carNum != ''"> |
| | | and t.car_num= #{carNum} |
| | | <if test="carNum != null and carNum != ''"> |
| | | AND out_rec.car_num LIKE CONCAT('%', #{carNum}, '%') |
| | | </if> |
| | | <if test="carType !=null and carType != ''"> |
| | | and cid.car_type= #{carType} |
| | | <if test="carType != null and carType != ''"> |
| | | AND cid_out.car_type = #{carType} |
| | | </if> |
| | | <if test="statusCd !=null and statusCd != ''"> |
| | | and t.status_cd= #{statusCd} |
| | | <if test="statusCd != null and statusCd != ''"> |
| | | AND out_rec.status_cd = #{statusCd} |
| | | </if> |
| | | <if test="state !=null and state != ''"> |
| | | and t.state= #{state} |
| | | <if test="state != null and state != ''"> |
| | | AND out_rec.state = #{state} |
| | | </if> |
| | | <if test="states !=null"> |
| | | and t.state in |
| | | <if test="states != null"> |
| | | AND out_rec.state IN |
| | | <foreach collection="states" item="item" open="(" close=")" separator=","> |
| | | #{item} |
| | | </foreach> |
| | | </if> |
| | | <if test="communityId !=null and communityId != ''"> |
| | | and t.community_id= #{communityId} |
| | | <if test="communityId != null and communityId != ''"> |
| | | AND out_rec.community_id = #{communityId} |
| | | </if> |
| | | <if test="outTime !=null and outTime != ''"> |
| | | and t.out_time= #{outTime} |
| | | <if test="outTime != null and outTime != ''"> |
| | | AND out_rec.out_time = #{outTime} |
| | | </if> |
| | | <if test="startTime !=null and startTime != ''"> |
| | | and t.in_time > #{startTime} |
| | | <if test="startTime != null and startTime != ''"> |
| | | AND in_rec.in_time > #{startTime} |
| | | </if> |
| | | <if test="endTime !=null and endTime != ''"> |
| | | and t.in_time < #{endTime} |
| | | <if test="endTime != null and endTime != ''"> |
| | | AND in_rec.in_time < #{endTime} |
| | | </if> |
| | | group by t.in_time,t.inout_id,t.pa_id,t.car_num,t.status_cd,t.state,t.community_id,t.out_time,td.`name`,pa.num,tcfc.fee_name,tcfc.config_id |
| | | order by t.create_time desc |
| | | |
| | | GROUP BY |
| | | out_rec.in_time, out_rec.inout_id, out_rec.pa_id, out_rec.car_num, |
| | | out_rec.status_cd, out_rec.state, out_rec.community_id, out_rec.out_time, |
| | | in_rec.in_time, in_rec.inout_id, in_rec.state, |
| | | td_out.`name`, td_in.`name`, pa.num, tcfc.fee_name, tcfc.config_id |
| | | |
| | | ORDER BY out_rec.create_time DESC |
| | | |
| | | <if test="page != -1 and page != null "> |
| | | limit #{page}, #{row} |
| | | </if> |
| | | |
| | | </select> |
| | | |
| | | |
| | |
| | | <if test="inTime !=null and inTime != ''"> |
| | | and t.in_time= #{inTime} |
| | | </if> |
| | | <if test="inoutId !=null and inoutId != ''"> |
| | | and t.inout_id= #{inoutId} |
| | | </if> |
| | | <if test="paId !=null and paId != ''"> |
| | | and t.pa_id= #{paId} |
| | | </if> |
| | |
| | | </foreach> |
| | | </if> |
| | | <if test="carNum !=null and carNum != ''"> |
| | | and t.car_num= #{carNum} |
| | | and t.car_num like concat('%',#{carNum},'%') |
| | | </if> |
| | | <if test="statusCd !=null and statusCd != ''"> |
| | | and t.status_cd= #{statusCd} |
| | |
| | | <if test="endTime !=null and endTime != ''"> |
| | | and t.in_time < #{endTime} |
| | | </if> |
| | | <if test="merchantId !=null and merchantId != ''"> |
| | | and t.merchant_id < #{merchantId} |
| | | </if> |
| | | |
| | | |
| | | </select> |