out-prop-apply-pick-mapper.xml 5.23 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">

<!-- 提货记录主表(hs_asset)(关联表hs_asset.outpropapply) @author tongyufu -->
<mapper namespace="com.cjs.cms.dao.user.pick.OutpropApplyPickDao">
	
	<sql id="outpropapply_pick_field">
		PICK_NO, CLIENT_ID, PICK_TYPE, PICK_AMOUNT, DELEGATE_NAME, DELEGATE_ID, 
		ZHAOONLINE_ID, INSURANCE, EXPORT, PICK_DATE, EXPRESS, EXPRESS_NO, CREATE_DATE, CREATE_TIME, 
		CHECK_STATUS, PACKAGE_TYPE, AMOUNT_FEE, WAREHOUSE_CODE, AMOUNT, TRUSTEESHIP_CYCLE
	</sql>
	
	<!-- 修改快递信息 -->
	<update id="updateExpress" parameterType="OutpropApplyPickInfo">
		UPDATE HS_ASSET.OUTPROPAPPLY_PICK SET EXPRESS = #{express}, EXPRESS_NO = #{expressNo}
		WHERE PICK_NO = #{pickNo}
	</update>
	
	<select id="queryByPickNo" resultType="OutpropApplyPickInfo" parameterType="string">
		SELECT <include refid="outpropapply_pick_field" />
		FROM HS_ASSET.OUTPROPAPPLY_PICK
		WHERE PICK_NO = #{value}
	</select>
	
	<sql id="searchCondition">
		WHERE 1 = 1
		<if test="fundAccount != null and fundAccount != ''"> AND A.FUND_ACCOUNT = #{fundAccount} </if>
		<if test="pickingName != null and pickingName != ''"> AND A.PICKING_NAME = #{pickingName} </if>
		<if test="phoneCode != null and phoneCode != ''"> AND A.PHONE_CODE = #{phoneCode} </if>
		<if test="pickStatus != null and pickStatus != ''"> AND A.SDCPROPAPPLY_STATUS = #{pickStatus} </if>
		<if test="pickStart != null and pickStart != ''"> <![CDATA[ AND A.CURR_DATE >= #{pickStart} ]]> </if>
		<if test="pickEnd != null and pickEnd != ''">  <![CDATA[ AND A.CURR_DATE <= #{pickEnd} ]]> </if>
	</sql>
	
	<select id="search" parameterType="map" resultType="map">
		<include refid="common.pageStart" />
		SELECT W.CODE,W.NAME,W.PROVINCE,W.CITY,W.AREA,W.ADDRESS,P.PICK_NO, P.CLIENT_ID, P.PICK_TYPE, P.PICK_DATE, P.INSURANCE, P.AUDIT_DATE, 
			P.AUDIT_TIME, P.EXPRESS, P.EXPRESS_NO, P.CREATE_DATE, P.ENSURE_DATE, P.ENSURE_TIME, P.CHECK_STATUS, P.PACKAGE_TYPE, P.AMOUNT_FEE,
			P.AMOUNT, P.TRUSTEESHIP_CYCLE, B.*
		FROM (
			SELECT ROW_NUMBER() OVER(PARTITION BY OP_STATION ORDER BY SERIAL_NO) RN,
				A.PICKING_NAME, A.PHONE_CODE, A.ID_NO, A.SDCPROPAPPLY_STATUS AS PICK_STATUS,
				A.PICKING_ADDRESS, A.OP_STATION, A.PICKING_DATE, A.POSITION_STR, A.EXPRESS_ADRESS, 
				case A.SDCPROPAPPLY_STATUS 
				when '0' then '已申请'
				when '1' then '已确定'z
				when '2' then '已确定否决'
				when '3' then '已审核'
				when '4' then '已审核否决'
				when '5' then '已撤销'
				when '6' then '已过期' 
				else'未知' 
				end PICK_STATUS_NAME
			FROM HS_ASSET.OUTPROPAPPLY A
			<include refid="searchCondition" />
		) B
		INNER JOIN HS_ASSET.OUTPROPAPPLY_PICK P ON B.OP_STATION = P.PICK_NO 
		LEFT JOIN HS_ASSET.WAREHOUSE W ON P.WAREHOUSE_CODE = W.CODE 
		WHERE B.RN  = 1 
		<if test="pickType != null and pickType != ''"> AND P.PICK_TYPE = #{pickType} </if>
		<if test="ensureStart != null and ensureStart != ''"> <![CDATA[ AND P.ENSURE_DATE >= #{ensureStart} ]]> </if>
		<if test="ensureEnd != null and ensureEnd != ''">  <![CDATA[ AND P.ENSURE_DATE <= #{ensureEnd} ]]> </if>
		<if test="auditStart != null and auditStart != ''"> <![CDATA[ AND P.AUDIT_DATE >= #{auditStart} ]]> </if>
		<if test="auditEnd != null and auditEnd != ''">  <![CDATA[ AND P.AUDIT_DATE <= #{auditEnd} ]]> </if>
		<if test="code != null and code != ''"> AND W.CODE = #{code} </if>
		<if test="name != null and name != ''"> AND W.NAME = #{name} </if>
		ORDER BY B.OP_STATION DESC
		<include refid="common.pageEnd" />
	</select>
	
	<select id="searchTotal" parameterType="map" resultType="int">
		SELECT COUNT(*)
		FROM (
			SELECT ROW_NUMBER() OVER(PARTITION BY OP_STATION ORDER BY SERIAL_NO) RN,
				A.PICKING_NAME, A.PHONE_CODE, A.ID_NO, A.SDCPROPAPPLY_STATUS AS PICK_STATUS,
				A.PICKING_ADDRESS, A.OP_STATION, A.PICKING_DATE, A.POSITION_STR
			FROM HS_ASSET.OUTPROPAPPLY A
			<include refid="searchCondition" />
		) B
		INNER JOIN HS_ASSET.OUTPROPAPPLY_PICK P ON B.OP_STATION = P.PICK_NO 
		LEFT JOIN HS_ASSET.WAREHOUSE W ON P.WAREHOUSE_CODE = W.CODE 
		WHERE B.RN  = 1 
		<if test="pickType != null and pickType != ''"> AND P.PICK_TYPE = #{pickType} </if>
		<if test="ensureStart != null and ensureStart != ''"> <![CDATA[ AND P.ENSURE_DATE >= #{ensureStart} ]]> </if>
		<if test="ensureEnd != null and ensureEnd != ''">  <![CDATA[ AND P.ENSURE_DATE <= #{ensureEnd} ]]> </if>
		<if test="auditStart != null and auditStart != ''"> <![CDATA[ AND P.AUDIT_DATE >= #{auditStart} ]]> </if>
		<if test="auditEnd != null and auditEnd != ''">  <![CDATA[ AND P.AUDIT_DATE <= #{auditEnd} ]]> </if>
		<if test="code != null and code != ''"> AND W.CODE = #{code} </if>
		<if test="name != null and name != ''"> AND W.NAME = #{name} </if>
	</select>
	
	<update id="updateDate" parameterType="map">
		UPDATE HS_ASSET.OUTPROPAPPLY_PICK SET 
		<if test="ensureDate != null and ensureDate != ''">
			ENSURE_DATE = #{ensureDate}, ENSURE_TIME = #{ensureTime} 
		</if>
		<if test="auditDate != null and auditDate != ''">
			AUDIT_DATE = #{auditDate}, AUDIT_TIME = #{auditTime} 
		</if>
		WHERE PICK_NO = #{pickNo} 
	</update>
	
	<update id="updateCheckStatus" parameterType="string">
		UPDATE HS_ASSET.OUTPROPAPPLY_PICK SET CHECK_STATUS = '1' WHERE PICK_NO = #{pickNo}
	</update>
	
</mapper>