| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344 |
- <?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.ydtech.modules.largescreen.dao.AgreementDataMapper">
- <select id="getCompanySumData" parameterType="com.ydtech.modules.largescreen.model.query.DataQuery"
- resultType="com.ydtech.modules.largescreen.model.AgreementData">
- SELECT
- pa.insurance_company_id,
- pa.insurance_company,
- COALESCE(SUM(jqpremium), 0) AS jqPremium,
- COALESCE(SUM(sypremium), 0) AS syPremium,
- COALESCE(SUM(taxamount), 0) AS taxPremium,
- COALESCE(SUM(jqpremium) + SUM(sypremium) + SUM(jypremium), 0) AS sumPremium,
- COALESCE(COUNT(iac.id), 0) as sumOrderNum
- FROM
- ptl_agreement pa
- LEFT JOIN
- ins_area_company iac on iac.agreement_id = pa.id
- <!-- <if test="orderStatus != null and orderStatus != ''">-->
- <!-- and iac.orderstatus = #{orderStatus}-->
- <!-- </if>-->
- where iac.orderstatus = 3
- <if test="startDate != null and startDate != ''">
- and iac.createtime BETWEEN #{startDate} and #{endDate}
- </if>
- <if test="signStartDate != null and signStartDate != '' and signEndDate !=null and signEndDate !=''">
- and iac.signing_time BETWEEN #{signStartDate} and #{signEndDate}
- </if>
- GROUP BY
- pa.insurance_company_id, pa.insurance_company
- order by
- sumPremium desc
- </select>
- <select id="getPtlInsuranceCompany" resultType="com.ydtech.modules.largescreen.model.dto.PtlInsuranceCompanyDTO">
- SELECT insurance_company_id as insuranceCompanyId,
- insurance_company as insuranceCompany
- FROM ptl_agreement
- GROUP BY insurance_company_id, insurance_company;
- </select>
- <select id="getOrderStatusData" parameterType="com.ydtech.modules.largescreen.model.query.DataQuery"
- resultType="com.ydtech.modules.largescreen.model.OrderStatusData">
- SELECT
- iac.orderstatus as orderStatusCode,
- COALESCE(SUM(jqpremium), 0) AS jqPremium,
- COALESCE(SUM(sypremium), 0) AS syPremium,
- COALESCE(SUM(taxamount), 0) AS taxPremium,
- COALESCE(SUM(jqpremium) + SUM(sypremium) + SUM(jypremium), 0) AS sumPremium,
- COALESCE(COUNT(io.orderno), 0) as sumOrderNum
- FROM
- ins_area_company iac
- left join ins_orders io on io.orderno = iac.orderno
- WHERE
- 1=1
- <if test="orderStatus != null and orderStatus != ''">
- and iac.orderstatus = #{orderStatus}
- </if>
- <if test="startDate != null and startDate != ''">
- and iac.createtime BETWEEN #{startDate} and #{endDate}
- </if>
- <if test="signStartDate != null and signStartDate != '' and signEndDate !=null and signEndDate !=''">
- and iac.signing_time BETWEEN #{signStartDate} and #{signEndDate}
- </if>
- <if test="companyId != null and companyId != ''">
- and iac.company_id = #{companyId}
- </if>
- GROUP BY
- iac.orderstatus
- order by
- sumPremium desc
- </select>
- <select id="getMapData" parameterType="com.ydtech.modules.largescreen.model.query.DataQuery"
- resultType="com.ydtech.modules.largescreen.model.MapData">
- SELECT
- sd.id as deptId,
- sd.NAME as deptName,
- sd.city as areaId,
- COALESCE(SUM(jqpremium), 0) AS jqPremium,
- COALESCE(SUM(sypremium), 0) AS syPremium,
- COALESCE(SUM(taxamount), 0) AS taxPremium,
- COALESCE(SUM(jqpremium) + SUM(sypremium), 0) AS sumPremium,
- COALESCE(COUNT(iac.id), 0) as sumOrderNum
- FROM
- sys_dept sd
- LEFT JOIN
- ins_orders io on (io.userid like CONCAT(sd.id,'%') or io.operatorid = CONCAT(sd.id,'%')) and orderstatus = 3
- LEFT JOIN
- ins_area_company iac on iac.orderno = io.orderno and iac.orderstatus = 3
- WHERE
- sd.comlevel = 3
- <if test="startDate != null and startDate != ''">
- and iac.createtime BETWEEN #{startDate} and #{endDate}
- </if>
- <if test="signStartDate != null and signStartDate != '' and signEndDate !=null and signEndDate !=''">
- and iac.signing_time BETWEEN #{signStartDate} and #{signEndDate}
- </if>
- AND
- sd.id != 9991401
- group by
- sd.id
- order by
- sumPremium desc
- </select>
- <select id="getOrderNumber" parameterType="com.ydtech.modules.largescreen.model.query.DataQuery"
- resultType="Integer">
- select count(a.orderno) from (
- SELECT
- io.orderno
- FROM
- ins_orders io
- left join ins_area_company iac on iac.orderno =io.orderno
- WHERE
- 1=1
- <if test="startDate != null and startDate != ''">
- and io.createtime BETWEEN #{startDate} and #{endDate}
- </if>
- <if test="signStartDate != null and signStartDate != '' and signEndDate !=null and signEndDate !=''">
- and iac.signing_time BETWEEN #{signStartDate} and #{signEndDate}
- </if>
- group by io.orderno
- ) a
- </select>
- <select id="getCompanys" resultType="com.ydtech.modules.largescreen.model.CompanyData">
- SELECT insurance_company_id AS company_id,
- insurance_company AS company_name
- FROM ptl_agreement
- GROUP BY insurance_company_id,
- insurance_company
- </select>
- <select id="getAgreements" resultType="com.ydtech.modules.largescreen.model.Agreement">
- SELECT id,
- insurance_company_id as company_id,
- agreement_code,
- agreement_name
- FROM ptl_agreement
- </select>
- <select id="getCompanyDataById" resultType="com.ydtech.modules.largescreen.model.CompanyInfoData">
- SELECT
- jqpremium,
- COALESCE ( COUNT( iac.id ), 0 ) AS sumOrderNum ,
- COALESCE ( SUM( jqpremium ), 0 ) AS jqSumPremium,
- COALESCE ( SUM( sypremium ), 0 ) AS sySumPremium,
- COALESCE ( SUM( taxamount ), 0 ) AS taxSumPremium
- FROM
- ins_orders io
- left join
- ins_area_company iac on iac.orderno = io.orderno and iac.orderstatus = 3
- <if test="startDate != null and startDate != ''">
- and iac.createtime BETWEEN #{startDate} and #{endDate}
- </if>
- WHERE
- io.company_id = #{companyId}
- AND
- productid= #{productId}
- GROUP BY
- jqpremium
- ORDER BY
- 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>
|