his-bank-transfer-mapper.xml 2.86 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">

<!-- 出入金记录 @author 仝玉甫 -->
<mapper namespace="com.cjs.cms.dao.report.HisBankTransferDao">

	<sql id="innerSearchCondition">
		WHERE 1 = 1
		<if test="userId != null and userId != ''"> AND FUND_ACCOUNT = #{userId} </if>
		<if test="occurBalance > 0"><![CDATA[ AND OCCUR_BALANCE > #{occurBalance} ]]></if>
		<if test="startDate != null and startDate != ''"> <![CDATA[AND CURR_DATE >= #{startDate} ]]> </if>
		<if test="endDate != null and endDate != ''"> <![CDATA[AND CURR_DATE <= #{endDate} ]]> </if>
	</sql>

	<sql id="searchCondition">
		WHERE 1 = 1
		<if test="transType != null and transType != ''"> AND T.TRANS_TYPE IN (${transType}) </if>
		<if test="chargeType != null and chargeType != ''"> AND T.CHARGE_TYPE = #{chargeType} </if>
		<if test="bkTransStatus != null and bkTransStatus != ''"> AND T.BKTRANS_STATUS = #{bkTransStatus} </if>
	</sql>

	<select id="search" parameterType="map" resultType="map">
		<!-- CHARGE_TYPE(01:快捷;02:网银) -->
		<include refid="common.pageStart"/>
		SELECT * FROM(
			SELECT A.FUND_ACCOUNT, A.OCCUR_BALANCE, A.POST_BALANCE, '01' AS CHARGE_TYPE, 
		    	A.CURR_DATE, A.CURR_TIME, A.TRANS_TYPE, A.REMARK, A.BKTRANS_STATUS
		  	FROM HS_ASSET.BANKTRANSFER A
		  	<include refid="innerSearchCondition" />
			UNION 
			SELECT C.FUND_ACCOUNT, C.OCCUR_BALANCE, C.POST_BALANCE, '01' AS CHARGE_TYPE, 
				C.CURR_DATE, C.CURR_TIME, C.TRANS_TYPE, C.REMARK, C.BKTRANS_STATUS
			FROM HS_HIS.HIS_BANKTRANSFER C
			<include refid="innerSearchCondition" />
			UNION
			SELECT B.FUND_ACCOUNT, B.OCCUR_BALANCE, 0.0 AS POST_BALANCE, '02' AS CHARGE_TYPE, 
				B.CURR_DATE, B.CURR_TIME, '01' AS TRANS_TYPE, '' AS REMARK, '2' AS BKTRANS_STATUS
			FROM HS_ASSET.BANKTRANSIN B
			<include refid="innerSearchCondition" />
		) T
		<include refid="searchCondition" />
		ORDER BY CURR_DATE DESC, FUND_ACCOUNT
		<include refid="common.pageEnd"/>
	</select>
	
	<select id="searchTotal" parameterType="map" resultType="int">
		SELECT COUNT(*) FROM(
			SELECT A.FUND_ACCOUNT, A.OCCUR_BALANCE, A.POST_BALANCE, '01' AS CHARGE_TYPE, 
		    	A.CURR_DATE, A.CURR_TIME, A.TRANS_TYPE, A.REMARK, A.BKTRANS_STATUS
		  	FROM HS_ASSET.BANKTRANSFER A
		  	<include refid="innerSearchCondition" />
			UNION 
			SELECT C.FUND_ACCOUNT, C.OCCUR_BALANCE, C.POST_BALANCE, '01' AS CHARGE_TYPE, 
				C.CURR_DATE, C.CURR_TIME, C.TRANS_TYPE, C.REMARK, C.BKTRANS_STATUS
			FROM HS_HIS.HIS_BANKTRANSFER C
			<include refid="innerSearchCondition" />
			UNION
			SELECT B.FUND_ACCOUNT, B.OCCUR_BALANCE, 0.0 AS POST_BALANCE, '02' AS CHARGE_TYPE, 
				B.CURR_DATE, B.CURR_TIME, '01' AS TRANS_TYPE, '' AS REMARK, '2' AS BKTRANS_STATUS
			FROM HS_ASSET.BANKTRANSIN B
			<include refid="innerSearchCondition" />
		) T
		<include refid="searchCondition" />
	</select>
</mapper>