ChargerIncomeStatisticSmapper.xml 4.06 KB
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd" >
<mapper namespace="com.zteits.pay.mapper.smapper.ChargerIncomeStatisticSmapper">
    <!-- 收费员今日统计明细-按照支付单类型和支付方式统计 -->
    <select id="todayStatisticsForDetail" resultType="com.zteits.pay.domain.RealChargeDO">
	SELECT
	pay_order_type item,
	sum(case pay_type when 1 then order_payed_fee else 0 end) aliPay,
	sum(case pay_type when 2 then order_payed_fee else 0 end) wxPay,
	sum(case pay_type when 6 then order_payed_fee else 0 end) cashPay,
	sum(order_payed_fee) totalPay
	FROM
		td_b_pay_order
	where data_state = 1
	and pay_src_type = 1
	and pay_order_state = 1
	and pay_source = 2
	and pay_type in (1,2,6)
	and pay_order_type in (5,1,6)
	AND create_empid = #{chargerCode}
	AND date(create_date) between date(#{beginDate}) and date(#{endDate})
	group by pay_order_type
    </select>
	<!-- 查询收费员今日收入 -->
    <select id="queryTodayTotalFee" resultType="java.lang.Long">
        SELECT
			sum(order_payed_fee) totaPayedFee
		FROM
			td_b_pay_order
		WHERE data_state = 1
		AND pay_src_type = 1
		and pay_order_state = 1
		AND	pay_source = 2 
		and pay_type in (1,2,6)
		and pay_order_type in (5,1,6)
		AND create_empid = #{chargerCode}
		AND date(create_date) between date(#{beginDate}) and date(#{endDate})
    </select>

	<!-- 收费员今日应收统计 -->
    <select id="todayActFeeStatistic" resultType="com.zteits.pay.domain.ActFeeStatisticDO">
        SELECT
			sum(order_act_fee) totalActFee,
			sum(order_payed_fee) totalPayedFee,
			(
				SELECT
					sum(b.order_not_pay_fee) totalNoPayedFee
				FROM
					td_b_order b
				JOIN td_b_order_detail_park d ON b.order_id = d.order_id
				WHERE
					b.data_state = 1
				AND d.data_state = 1
				AND b.order_type = 1
				AND b.order_state = 5
				AND b.order_resource = 1
				AND d.park_out_source_code = #{chargerCode}
				AND date(d.park_out_time)  between date(#{beginDate}) and date(#{endDate})
			) totalNoPayedFee
		FROM
			td_b_pay_order
		WHERE
			data_state = 1
		AND pay_src_type = 1
		AND pay_order_state = 1
		AND pay_source = 2
		AND pay_type IN (1, 2, 6)
		AND pay_order_type IN (5, 1)
		AND create_empid = #{chargerCode}
		AND date(create_date) between date(#{beginDate}) and date(#{endDate})
    </select>
    
    <!-- 收费员今日车辆统计 -->
    <select id="todayCarNumStatistic" resultType="com.zteits.clouds.api.dto.pda.dto.TodayStatisticsDTO">
        select 
			sum(case tag when 'carInCount' then num else 0 end) carInCount,
			sum(case tag when 'carStayCount' then num else 0 end) carStayCount,
			sum(case tag when 'carNoPayCount' then num else 0 end) carNoPayCount
			from(
				SELECT
					count(1) num,'carInCount' tag
				FROM
					td_b_order b
				JOIN td_b_order_detail_park d ON b.order_id = d.order_id
				WHERE
					b.data_state = 1
				AND d.data_state = 1
				AND b.order_type = 1
				AND b.park_id = #{parkId}
				AND b.order_resource = 1
				AND d.park_in_source_code = #{chargerCode}
				AND date(d.park_in_time) between date(#{beginDate}) and date(#{endDate})
			
				union ALL
				SELECT
					count(1),'carStayCount'
				FROM
					td_b_order b
				JOIN td_b_order_detail_park d ON b.order_id = d.order_id
				WHERE
					b.data_state = 1
				AND d.data_state = 1
				AND b.order_type = 1
				AND b.park_id = #{parkId}
				AND b.order_resource = 1
				AND d.berth_range_no in 
	            <foreach collection="berthRangeNos" open="(" close=")" item="berthRangeNo" separator=",">
    	            #{berthRangeNo}
        	    </foreach>
				AND d.park_out_time is NULL
			
				union ALL
				SELECT
					count(1),'carNoPayCount'
				FROM
					td_b_order b
				JOIN td_b_order_detail_park d ON b.order_id = d.order_id
				WHERE
					b.data_state = 1
				AND d.data_state = 1
				AND b.order_type = 1
				AND b.order_state = 5
				AND b.park_id = #{parkId}
				AND b.order_resource = 1
				AND	d.park_out_source_code = #{chargerCode}
				AND date(d.park_out_time) between date(#{beginDate}) and date(#{endDate})
			) t
    </select>
    
</mapper>