Commit a132bdb6 by zhangxingmin

push

parent 19ea2ab8
......@@ -69,18 +69,19 @@
<!-- ==================== 应收款报表分页查询(完全对齐 getQueryWrapper) ==================== -->
<select id="receivableReportPage" resultType="com.yd.csf.service.vo.ReceivableReportVO">
<!--
根据 commissionBizType 动态选择查询方式:
- 若指定了 'R' 或 'U',只查询对应类型;
- 否则 UNION ALL 两种类型。
-->
<choose>
<when test="query.commissionBizType != null and query.commissionBizType != ''">
<if test="query.commissionBizType == 'R'">
SELECT * FROM (
<include refid="receivableReportRSql"/>
) t
<include refid="receivableReportOrderBy"/>
</if>
<if test="query.commissionBizType == 'U'">
SELECT * FROM (
<include refid="receivableReportUSql"/>
) u
<include refid="receivableReportOrderBy"/>
</if>
</when>
<otherwise>
......@@ -88,13 +89,13 @@
<include refid="receivableReportRSql"/>
UNION ALL
<include refid="receivableReportUSql"/>
) t
) tmp
<include refid="receivableReportOrderBy"/>
</otherwise>
</choose>
</select>
<!-- ==================== R 类型(关联保单应收单)完整查询 ==================== -->
<!-- R 类型完整查询(不含 ORDER BY) -->
<sql id="receivableReportRSql">
SELECT
NULL AS receivableNo,
......@@ -138,10 +139,9 @@
<include refid="receivableReportTeamBizIdFilter"/>
) t
GROUP BY t.policyNo, t.commission_period
<include refid="receivableReportOrderBy"/>
</sql>
<!-- ==================== U 类型(非关联保单应收单)完整查询 ==================== -->
<!-- U 类型完整查询(不含 ORDER BY) -->
<sql id="receivableReportUSql">
SELECT
receivableNo,
......@@ -184,7 +184,6 @@
<include refid="receivableReportWhereCommon"/>
<include refid="receivableReportTeamBizIdFilter"/>
) u
<include refid="receivableReportOrderBy"/>
</sql>
<!-- ==================== R 类型基础查询(不含聚合,不含 WHERE 条件) ==================== -->
......@@ -271,69 +270,69 @@
<!-- ==================== 公共 WHERE 条件(完全对应 getQueryWrapper) ==================== -->
<sql id="receivableReportWhereCommon">
<!-- 1. 空结果处理:queryFlag=true 且 policyNoList 为空 -->
<!-- 空结果处理:queryFlag=true 且 policyNoList 为空 -->
<if test="query.queryFlag != null and query.queryFlag and (query.policyNoList == null or query.policyNoList.size == 0)">
AND 1=0
</if>
<!-- 2. receivableNo -->
<!-- receivableNo -->
<if test="query.receivableNo != null and query.receivableNo != ''">
AND ce.receivable_no = #{query.receivableNo}
</if>
<!-- 3. policyNo (精确) -->
<!-- policyNo (精确) -->
<if test="query.policyNo != null and query.policyNo != ''">
AND ce.policy_no = #{query.policyNo}
</if>
<!-- 4. policyNoList (IN) -->
<!-- policyNoList (IN) -->
<if test="query.policyNoList != null and query.policyNoList.size > 0">
AND ce.policy_no IN
<foreach collection="query.policyNoList" item="no" open="(" close=")" separator=",">
#{no}
</foreach>
</if>
<!-- 5. statusList -->
<!-- statusList -->
<if test="query.statusList != null and query.statusList.size > 0">
AND ce.status IN
<foreach collection="query.statusList" item="status" open="(" close=")" separator=",">
#{status}
</foreach>
</if>
<!-- 6. commissionDateStart -->
<!-- commissionDateStart -->
<if test="query.commissionDateStart != null">
AND ce.commission_date >= #{query.commissionDateStart}
</if>
<!-- 7. commissionDateEnd -->
<!-- commissionDateEnd -->
<if test="query.commissionDateEnd != null">
AND ce.commission_date &lt;= #{query.commissionDateEnd}
</if>
<!-- 8. commissionPeriod -->
<!-- commissionPeriod -->
<if test="query.commissionPeriod != null">
AND ce.commission_period = #{query.commissionPeriod}
</if>
<!-- 9. commissionType -->
<!-- commissionType -->
<if test="query.commissionType != null and query.commissionType != ''">
AND ce.commission_type = #{query.commissionType}
</if>
<!-- 10. reconciliationCompanyBizIdList -->
<!-- reconciliationCompanyBizIdList -->
<if test="query.reconciliationCompanyBizIdList != null and query.reconciliationCompanyBizIdList.size > 0">
AND ce.reconciliation_company_biz_id IN
<foreach collection="query.reconciliationCompanyBizIdList" item="id" open="(" close=")" separator=",">
#{id}
</foreach>
</if>
<!-- 11. insurerCompanyBizIdList -->
<!-- insurerCompanyBizIdList -->
<if test="query.insurerCompanyBizIdList != null and query.insurerCompanyBizIdList.size > 0">
AND ce.insurance_company_biz_id IN
<foreach collection="query.insurerCompanyBizIdList" item="id" open="(" close=")" separator=",">
#{id}
</foreach>
</if>
<!-- 12. productLaunchBizId -->
<!-- productLaunchBizId -->
<if test="query.productLaunchBizId != null and query.productLaunchBizId != ''">
AND ce.product_launch_biz_id = #{query.productLaunchBizId}
</if>
</sql>
<!-- ==================== teamBizId 过滤(使用 EXISTS 子查询,与 getQueryWrapper 一致) ==================== -->
<!-- ==================== teamBizId 过滤(EXISTS 子查询,与 getQueryWrapper 完全一致) ==================== -->
<sql id="receivableReportTeamBizIdFilter">
<if test="query.teamBizId != null and query.teamBizId != ''">
AND EXISTS (
......@@ -346,14 +345,13 @@
<!-- ==================== 排序(支持传入 sortField 和 sortOrder) ==================== -->
<sql id="receivableReportOrderBy">
ORDER BY
<choose>
<when test="query.sortField != null and query.sortField != '' and query.sortOrder != null">
ORDER BY
<if test="query.sortField == 'reconciliation_company'">reconciliationCompany</if>
<if test="query.sortField == 'commission_name'">commissionName</if>
<if test="query.sortField == 'commission_period'">commissionPeriod</if>
<if test="query.sortField == 'amount'">amount</if>
<!-- 其他字段默认按 commissionDate 排序 -->
<if test="query.sortField != 'reconciliation_company' and query.sortField != 'commission_name' and query.sortField != 'commission_period' and query.sortField != 'amount'">
commissionDate
</if>
......@@ -361,7 +359,7 @@
<if test="query.sortOrder != 'asc'">DESC</if>
</when>
<otherwise>
ORDER BY commissionDate DESC, policyNo, commissionPeriod
commissionDate DESC, policyNo, commissionPeriod
</otherwise>
</choose>
</sql>
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment