|
|
@@ -144,4 +144,157 @@
|
|
|
jqpremium desc
|
|
|
</select>
|
|
|
|
|
|
+ <select id="insuranceCompanyBusinessSituation" resultType="com.ydtech.modules.largescreen.model.InsuranceCompanyBusinessSituation">
|
|
|
+ SELECT
|
|
|
+ ivs.insurance_id,
|
|
|
+ ivs.insurance_name,
|
|
|
+ ivs.insurance_dept,
|
|
|
+ SUM(ivs.jq_premium) AS jq_premium,
|
|
|
+ SUM(ivs.sy_premium) AS sy_premium,
|
|
|
+ SUM(ivs.non_car_premium) AS non_car_premium,
|
|
|
+ SUM(ivs.jq_premium * ivs.jq_premium_ratio) AS jq_commission,
|
|
|
+ SUM(ivs.sy_premium * ivs.sy_premium_ratio) AS sy_commission,
|
|
|
+ SUM(ivs.non_car_premium * ivs.non_car_premium_ratio) AS non_car_commission,
|
|
|
+ SUM(ivs.jq_premium * ivs.jq_receivable_ratio) AS jq_receivable_commission,
|
|
|
+ SUM(ivs.sy_premium * ivs.sy_receivable_ratio) AS sy_receivable_commission,
|
|
|
+ SUM(ivs.non_car_premium * ivs.non_car_receivable_ratio) AS non_car_receivable_commission,
|
|
|
+ SUM(COALESCE(iss.subsidy_amount, 0)) as subsidy_amount,
|
|
|
+ SUM(ivs.jq_premium * iss.compulsory_export_ratio) AS jq_compulsory_premium,
|
|
|
+ SUM(ivs.sy_premium * iss.commercial_export_ratio) AS sy_compulsory_premium,
|
|
|
+ SUM(ivs.non_car_premium * iss.non_vehicle_export_ratio) AS non_car_compulsory_premium,
|
|
|
+ SUM(ivs.jq_premium * ivs.jq_receivable_ratio - ivs.jq_premium * iss.compulsory_export_ratio) AS jq_profit,
|
|
|
+ SUM(ivs.sy_premium * ivs.sy_receivable_ratio - ivs.sy_premium * iss.commercial_export_ratio) AS sy_profit,
|
|
|
+ SUM(ivs.non_car_premium * ivs.non_car_receivable_ratio - ivs.non_car_premium * iss.non_vehicle_export_ratio) AS non_car_profit,
|
|
|
+ SUM(
|
|
|
+ (ivs.jq_premium * ivs.jq_receivable_ratio - ivs.jq_premium * iss.compulsory_export_ratio) +
|
|
|
+ (ivs.sy_premium * ivs.sy_receivable_ratio - ivs.sy_premium * iss.commercial_export_ratio) +
|
|
|
+ (ivs.non_car_premium * ivs.non_car_receivable_ratio - ivs.non_car_premium * iss.non_vehicle_export_ratio) +
|
|
|
+ iss.subsidy_amount
|
|
|
+ ) AS profit
|
|
|
+ FROM
|
|
|
+ inv_source ivs
|
|
|
+ LEFT JOIN
|
|
|
+ inv_settlement_source iss ON iss.licenseno = ivs.licenseno
|
|
|
+ WHERE
|
|
|
+ 1=1
|
|
|
+ <if test="insuranceDept != null and insuranceDept != ''">
|
|
|
+ AND ivs.insurance_dept like ('%${insuranceDept}%')
|
|
|
+ </if>
|
|
|
+ <if test="signStartTime != null and signEndTime != ''">
|
|
|
+ and ivs.signing_time BETWEEN #{signStartTime} and #{signEndTime}
|
|
|
+ </if>
|
|
|
+ <if test="insuranceId != null and insuranceId != ''">
|
|
|
+ AND ivs.insurance_id = #{insuranceId}
|
|
|
+ </if>
|
|
|
+ GROUP BY
|
|
|
+ ivs.insurance_id,
|
|
|
+ ivs.insurance_name,
|
|
|
+ ivs.insurance_dept
|
|
|
+ </select>
|
|
|
+
|
|
|
+ <select id="channelBusinessSituation" resultType="com.ydtech.modules.largescreen.model.InsuranceCompanyBusinessSituation">
|
|
|
+ SELECT
|
|
|
+ ivs.insurance_id,
|
|
|
+ ivs.insurance_name,
|
|
|
+ ivs.insurance_dept,
|
|
|
+ iss.channel,
|
|
|
+ SUM(ivs.jq_premium) AS jq_premium,
|
|
|
+ SUM(ivs.sy_premium) AS sy_premium,
|
|
|
+ SUM(ivs.non_car_premium) AS non_car_premium,
|
|
|
+ SUM(ivs.jq_premium * ivs.jq_premium_ratio) AS jq_commission,
|
|
|
+ SUM(ivs.sy_premium * ivs.sy_premium_ratio) AS sy_commission,
|
|
|
+ SUM(ivs.non_car_premium * ivs.non_car_premium_ratio) AS non_car_commission,
|
|
|
+ SUM(ivs.jq_premium * ivs.jq_receivable_ratio) AS jq_receivable_commission,
|
|
|
+ SUM(ivs.sy_premium * ivs.sy_receivable_ratio) AS sy_receivable_commission,
|
|
|
+ SUM(ivs.non_car_premium * ivs.non_car_receivable_ratio) AS non_car_receivable_commission,
|
|
|
+ SUM(COALESCE(iss.subsidy_amount, 0)) as subsidy_amount,
|
|
|
+ SUM(ivs.jq_premium * iss.compulsory_export_ratio) AS jq_compulsory_premium,
|
|
|
+ SUM(ivs.sy_premium * iss.commercial_export_ratio) AS sy_compulsory_premium,
|
|
|
+ SUM(ivs.non_car_premium * iss.non_vehicle_export_ratio) AS non_car_compulsory_premium,
|
|
|
+ SUM(ivs.jq_premium * ivs.jq_receivable_ratio - ivs.jq_premium * iss.compulsory_export_ratio) AS jq_profit,
|
|
|
+ SUM(ivs.sy_premium * ivs.sy_receivable_ratio - ivs.sy_premium * iss.commercial_export_ratio) AS sy_profit,
|
|
|
+ SUM(ivs.non_car_premium * ivs.non_car_receivable_ratio - ivs.non_car_premium * iss.non_vehicle_export_ratio) AS non_car_profit,
|
|
|
+ SUM(
|
|
|
+ (ivs.jq_premium * ivs.jq_receivable_ratio - ivs.jq_premium * iss.compulsory_export_ratio) +
|
|
|
+ (ivs.sy_premium * ivs.sy_receivable_ratio - ivs.sy_premium * iss.commercial_export_ratio) +
|
|
|
+ (ivs.non_car_premium * ivs.non_car_receivable_ratio - ivs.non_car_premium * iss.non_vehicle_export_ratio) +
|
|
|
+ iss.subsidy_amount
|
|
|
+ ) AS profit
|
|
|
+ FROM
|
|
|
+ inv_source ivs
|
|
|
+ LEFT JOIN
|
|
|
+ inv_settlement_source iss ON iss.licenseno = ivs.licenseno
|
|
|
+ WHERE
|
|
|
+ 1=1
|
|
|
+ <if test="insuranceDept != null and insuranceDept != ''">
|
|
|
+ AND ivs.insurance_dept like ('%${insuranceDept}%')
|
|
|
+ </if>
|
|
|
+ <if test="signStartTime != null and signEndTime != ''">
|
|
|
+ and ivs.signing_time BETWEEN #{signStartTime} and #{signEndTime}
|
|
|
+ </if>
|
|
|
+ <if test="insuranceId != null and insuranceId != ''">
|
|
|
+ AND ivs.insurance_id = #{insuranceId}
|
|
|
+ </if>
|
|
|
+ <if test="channel != null and channel != ''">
|
|
|
+ AND iss.channel like ('%${channel}%')
|
|
|
+ </if>
|
|
|
+ GROUP BY
|
|
|
+ ivs.insurance_id,
|
|
|
+ ivs.insurance_name,
|
|
|
+ ivs.insurance_dept,
|
|
|
+ iss.channel
|
|
|
+ </select>
|
|
|
+
|
|
|
+
|
|
|
+ <select id="channelSettlement" resultType="com.ydtech.modules.largescreen.model.ChannelSettlements">
|
|
|
+ SELECT
|
|
|
+ ivs.insurance_id,
|
|
|
+ insurance_name,
|
|
|
+ insurance_dept,
|
|
|
+ SUM( CASE WHEN clearing_state_over = 0 OR clearing_state_over = 1 OR clearing_state_over = 2 THEN jq_premium * max_jq_receivable_ratio ELSE 0 END ) AS jq_receivable_commission,
|
|
|
+ SUM( CASE WHEN clearing_state_over = 0 OR clearing_state_over = 1 OR clearing_state_over = 2 THEN sy_premium * max_sy_receivable_ratio ELSE 0 END ) AS sy_receivable_commission,
|
|
|
+ SUM( CASE WHEN clearing_state_over = 0 OR clearing_state_over = 1 OR clearing_state_over = 2 THEN non_car_premium * max_non_car_receivable_ratio ELSE 0 END ) AS non_car_receivable_commission,
|
|
|
+ SUM( CASE WHEN clearing_state_over = 1 THEN ivs.jq_premium * iss.compulsory_export_ratio ELSE 0 END ) AS jq_compulsory_premium,
|
|
|
+ SUM( CASE WHEN clearing_state_over = 1 THEN ivs.sy_premium * iss.commercial_export_ratio ELSE 0 END ) AS sy_compulsory_premium,
|
|
|
+ SUM( CASE WHEN clearing_state_over = 1 THEN ivs.non_car_premium * iss.non_vehicle_export_ratio ELSE 0 END ) AS non_car_compulsory_premium,
|
|
|
+ SUM( CASE WHEN clearing_state_over = 0 THEN ivs.jq_premium * ivs.max_jq_receivable_ratio ELSE 0 END ) AS jq_profit,
|
|
|
+ SUM( CASE WHEN clearing_state_over = 0 THEN ivs.sy_premium * ivs.max_sy_receivable_ratio ELSE 0 END ) AS sy_profit,
|
|
|
+ SUM( CASE WHEN clearing_state_over = 0 THEN ivs.non_car_premium * ivs.max_non_car_receivable_ratio ELSE 0 END ) AS non_car_profit,
|
|
|
+ SUM( CASE WHEN clearing_state_over = 2 THEN ivs.jq_premium * ivs.max_jq_receivable_ratio ELSE 0 END ) AS jq_orphan_profit,
|
|
|
+ SUM( CASE WHEN clearing_state_over = 2 THEN ivs.sy_premium * ivs.max_sy_receivable_ratio ELSE 0 END ) AS sy_orphan_profit,
|
|
|
+ SUM( CASE WHEN clearing_state_over = 2 THEN ivs.non_car_premium * ivs.max_non_car_receivable_ratio ELSE 0 END ) AS non_car_orphan_profit
|
|
|
+ FROM
|
|
|
+ ( SELECT *, CASE WHEN DATEDIFF( NOW(), signing_time ) > 90 THEN 2 ELSE inv_source.clearing_state END AS clearing_state_over FROM inv_source ) ivs
|
|
|
+ LEFT JOIN inv_settlement_source iss ON ivs.licenseno = iss.licenseno
|
|
|
+ WHERE
|
|
|
+ 1=1
|
|
|
+ <if test="insuranceDept != null and insuranceDept != ''">
|
|
|
+ AND ivs.insurance_dept like ('%${insuranceDept}%')
|
|
|
+ </if>
|
|
|
+ <if test="signStartTime != null and signEndTime != ''">
|
|
|
+ and ivs.signing_time BETWEEN #{signStartTime} and #{signEndTime}
|
|
|
+ </if>
|
|
|
+ <if test="insuranceId != null and insuranceId != ''">
|
|
|
+ AND ivs.insurance_id = #{insuranceId}
|
|
|
+ </if>
|
|
|
+ group by ivs.insurance_id,insurance_name,insurance_dept
|
|
|
+ </select>
|
|
|
+
|
|
|
+ <select id="getTotalReceivableAmount" resultType="com.ydtech.modules.largescreen.model.InvInsuranceCompanySettlements">
|
|
|
+ SELECT
|
|
|
+ insurance_id,
|
|
|
+ insurance_name,
|
|
|
+ insurance_dept,
|
|
|
+ sum( total_receivable_amount ) AS amount_receivable
|
|
|
+ FROM
|
|
|
+ inv_source
|
|
|
+ WHERE
|
|
|
+ signing_time BETWEEN #{startTime}
|
|
|
+ AND #{endTime}
|
|
|
+ GROUP BY
|
|
|
+ insurance_id,
|
|
|
+ insurance_name,
|
|
|
+ insurance_dept
|
|
|
+ </select>
|
|
|
+
|
|
|
</mapper>
|