| | |
| | | |
| | | <mapper namespace="com.by4cloud.platformx.business.mapper.ContractMapper"> |
| | | |
| | | <update id="setSession"> |
| | | SET SESSION sql_mode = 'STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_ENGINE_SUBSTITUTION'; |
| | | </update> |
| | | <select id="pageByCredit" resultType="com.by4cloud.platformx.business.vo.ContractCreditSalesPageVo"> |
| | | SELECT |
| | | id, |
| | |
| | | </otherwise> |
| | | </choose> |
| | | </select> |
| | | <select id="contractAmountAnalysis" |
| | | resultType="com.by4cloud.platformx.business.vo.ContractAmountAnalysisVo"> |
| | | SELECT |
| | | party_b_name AS 'compName', |
| | | SUM(m01) AS 'month1', |
| | | SUM(m02) AS 'month2', |
| | | SUM(m03) AS 'month3', |
| | | SUM(m04) AS 'month4', |
| | | SUM(m05) AS 'month5', |
| | | SUM(m06) AS 'month6', |
| | | SUM(m07) AS 'month7', |
| | | SUM(m08) AS 'month8', |
| | | SUM(m09) AS 'month9', |
| | | SUM(m10) AS 'month10', |
| | | SUM(m11) AS 'month11', |
| | | SUM(m12) AS 'month12' |
| | | FROM ( |
| | | SELECT |
| | | COALESCE(party_b, '未知甲方') AS party_b_name, |
| | | SUM(CASE WHEN MONTH(sign_date) = 1 THEN amount ELSE 0 END) AS m01, |
| | | SUM(CASE WHEN MONTH(sign_date) = 2 THEN amount ELSE 0 END) AS m02, |
| | | SUM(CASE WHEN MONTH(sign_date) = 3 THEN amount ELSE 0 END) AS m03, |
| | | SUM(CASE WHEN MONTH(sign_date) = 4 THEN amount ELSE 0 END) AS m04, |
| | | SUM(CASE WHEN MONTH(sign_date) = 5 THEN amount ELSE 0 END) AS m05, |
| | | SUM(CASE WHEN MONTH(sign_date) = 6 THEN amount ELSE 0 END) AS m06, |
| | | SUM(CASE WHEN MONTH(sign_date) = 7 THEN amount ELSE 0 END) AS m07, |
| | | SUM(CASE WHEN MONTH(sign_date) = 8 THEN amount ELSE 0 END) AS m08, |
| | | SUM(CASE WHEN MONTH(sign_date) = 9 THEN amount ELSE 0 END) AS m09, |
| | | SUM(CASE WHEN MONTH(sign_date) = 10 THEN amount ELSE 0 END) AS m10, |
| | | SUM(CASE WHEN MONTH(sign_date) = 11 THEN amount ELSE 0 END) AS m11, |
| | | SUM(CASE WHEN MONTH(sign_date) = 12 THEN amount ELSE 0 END) AS m12, |
| | | SUM(amount) AS total_amt |
| | | FROM contract |
| | | WHERE |
| | | del_flag = '0' |
| | | AND amount IS NOT NULL |
| | | AND sign_date IS NOT NULL |
| | | AND YEAR(sign_date) = #{queryDTO.year} |
| | | AND party_b_id IN |
| | | <foreach collection="compIds" item="id" open="(" close=")" separator=","> |
| | | #{id} |
| | | </foreach> |
| | | GROUP BY party_b_id, party_b |
| | | |
| | | UNION ALL |
| | | |
| | | SELECT |
| | | '总计' AS party_b_name, |
| | | SUM(CASE WHEN MONTH(sign_date) = 1 THEN amount ELSE 0 END), |
| | | SUM(CASE WHEN MONTH(sign_date) = 2 THEN amount ELSE 0 END), |
| | | SUM(CASE WHEN MONTH(sign_date) = 3 THEN amount ELSE 0 END), |
| | | SUM(CASE WHEN MONTH(sign_date) = 4 THEN amount ELSE 0 END), |
| | | SUM(CASE WHEN MONTH(sign_date) = 5 THEN amount ELSE 0 END), |
| | | SUM(CASE WHEN MONTH(sign_date) = 6 THEN amount ELSE 0 END), |
| | | SUM(CASE WHEN MONTH(sign_date) = 7 THEN amount ELSE 0 END), |
| | | SUM(CASE WHEN MONTH(sign_date) = 8 THEN amount ELSE 0 END), |
| | | SUM(CASE WHEN MONTH(sign_date) = 9 THEN amount ELSE 0 END), |
| | | SUM(CASE WHEN MONTH(sign_date) = 10 THEN amount ELSE 0 END), |
| | | SUM(CASE WHEN MONTH(sign_date) = 11 THEN amount ELSE 0 END), |
| | | SUM(CASE WHEN MONTH(sign_date) = 12 THEN amount ELSE 0 END), |
| | | SUM(amount) |
| | | FROM contract |
| | | WHERE |
| | | del_flag = '0' |
| | | AND amount IS NOT NULL |
| | | AND sign_date IS NOT NULL |
| | | AND YEAR(sign_date) = #{queryDTO.year} |
| | | AND party_b_id IN |
| | | <foreach collection="compIds" item="id" open="(" close=")" separator=","> |
| | | #{id} |
| | | </foreach> |
| | | ) AS pivot_table |
| | | GROUP BY party_b_name |
| | | ORDER BY |
| | | CASE WHEN party_b_name = '总计' THEN 1 ELSE 0 END, |
| | | party_b_name; |
| | | |
| | | </select> |
| | | <select id="contractIncomeAnalysis" |
| | | resultType="com.by4cloud.platformx.business.vo.ContractIncomeAnalysisVo"> |
| | | SELECT |
| | | compName, |
| | | SUM(CASE WHEN month_num = 1 THEN total_amount ELSE 0 END) AS 'srMonth1', |
| | | SUM(CASE WHEN month_num = 1 AND pay_type = 0 THEN total_amount ELSE 0 END) AS 'xhMonth1', |
| | | SUM(CASE WHEN month_num = 1 AND pay_type = 1 THEN total_amount ELSE 0 END) AS 'cdMonth1', |
| | | SUM(CASE WHEN month_num = 1 AND pay_type = 2 THEN total_amount ELSE 0 END) AS 'qtMonth1', |
| | | SUM(CASE WHEN month_num = 2 THEN total_amount ELSE 0 END) AS 'srMonth2', |
| | | SUM(CASE WHEN month_num = 2 AND pay_type = 0 THEN total_amount ELSE 0 END) AS 'xhMonth2', |
| | | SUM(CASE WHEN month_num = 2 AND pay_type = 1 THEN total_amount ELSE 0 END) AS 'cdMonth2', |
| | | SUM(CASE WHEN month_num = 2 AND pay_type = 2 THEN total_amount ELSE 0 END) AS 'qtMonth2', |
| | | SUM(CASE WHEN month_num = 3 THEN total_amount ELSE 0 END) AS 'srMonth3', |
| | | SUM(CASE WHEN month_num = 3 AND pay_type = 0 THEN total_amount ELSE 0 END) AS 'xhMonth3', |
| | | SUM(CASE WHEN month_num = 3 AND pay_type = 1 THEN total_amount ELSE 0 END) AS 'cdMonth3', |
| | | SUM(CASE WHEN month_num = 3 AND pay_type = 2 THEN total_amount ELSE 0 END) AS 'qtMonth3', |
| | | SUM(CASE WHEN month_num = 4 THEN total_amount ELSE 0 END) AS 'srMonth4', |
| | | SUM(CASE WHEN month_num = 4 AND pay_type = 0 THEN total_amount ELSE 0 END) AS 'xhMonth4', |
| | | SUM(CASE WHEN month_num = 4 AND pay_type = 1 THEN total_amount ELSE 0 END) AS 'cdMonth4', |
| | | SUM(CASE WHEN month_num = 4 AND pay_type = 2 THEN total_amount ELSE 0 END) AS 'qtMonth4', |
| | | SUM(CASE WHEN month_num = 5 THEN total_amount ELSE 0 END) AS 'srMonth5', |
| | | SUM(CASE WHEN month_num = 5 AND pay_type = 0 THEN total_amount ELSE 0 END) AS 'xhMonth5', |
| | | SUM(CASE WHEN month_num = 5 AND pay_type = 1 THEN total_amount ELSE 0 END) AS 'cdMonth5', |
| | | SUM(CASE WHEN month_num = 5 AND pay_type = 2 THEN total_amount ELSE 0 END) AS 'qtMonth5', |
| | | SUM(CASE WHEN month_num = 6 THEN total_amount ELSE 0 END) AS 'srMonth6', |
| | | SUM(CASE WHEN month_num = 6 AND pay_type = 0 THEN total_amount ELSE 0 END) AS 'xhMonth6', |
| | | SUM(CASE WHEN month_num = 6 AND pay_type = 1 THEN total_amount ELSE 0 END) AS 'cdMonth6', |
| | | SUM(CASE WHEN month_num = 6 AND pay_type = 2 THEN total_amount ELSE 0 END) AS 'qtMonth6', |
| | | SUM(CASE WHEN month_num = 7 THEN total_amount ELSE 0 END) AS 'srMonth7', |
| | | SUM(CASE WHEN month_num = 7 AND pay_type = 0 THEN total_amount ELSE 0 END) AS 'xhMonth7', |
| | | SUM(CASE WHEN month_num = 7 AND pay_type = 1 THEN total_amount ELSE 0 END) AS 'cdMonth7', |
| | | SUM(CASE WHEN month_num = 7 AND pay_type = 2 THEN total_amount ELSE 0 END) AS 'qtMonth7', |
| | | SUM(CASE WHEN month_num = 8 THEN total_amount ELSE 0 END) AS 'srMonth8', |
| | | SUM(CASE WHEN month_num = 8 AND pay_type = 0 THEN total_amount ELSE 0 END) AS 'xhMonth8', |
| | | SUM(CASE WHEN month_num = 8 AND pay_type = 1 THEN total_amount ELSE 0 END) AS 'cdMonth8', |
| | | SUM(CASE WHEN month_num = 8 AND pay_type = 2 THEN total_amount ELSE 0 END) AS 'qtMonth8', |
| | | SUM(CASE WHEN month_num = 9 THEN total_amount ELSE 0 END) AS 'srMonth9', |
| | | SUM(CASE WHEN month_num = 9 AND pay_type = 0 THEN total_amount ELSE 0 END) AS 'xhMonth9', |
| | | SUM(CASE WHEN month_num = 9 AND pay_type = 1 THEN total_amount ELSE 0 END) AS 'cdMonth9', |
| | | SUM(CASE WHEN month_num = 9 AND pay_type = 2 THEN total_amount ELSE 0 END) AS 'qtMonth9', |
| | | SUM(CASE WHEN month_num = 10 THEN total_amount ELSE 0 END) AS 'srMonth10', |
| | | SUM(CASE WHEN month_num = 10 AND pay_type = 0 THEN total_amount ELSE 0 END) AS 'xhMonth10', |
| | | SUM(CASE WHEN month_num = 10 AND pay_type = 1 THEN total_amount ELSE 0 END) AS 'cdMonth10', |
| | | SUM(CASE WHEN month_num = 10 AND pay_type = 2 THEN total_amount ELSE 0 END) AS 'qtMonth10', |
| | | SUM(CASE WHEN month_num = 11 THEN total_amount ELSE 0 END) AS 'srMonth11', |
| | | SUM(CASE WHEN month_num = 11 AND pay_type = 0 THEN total_amount ELSE 0 END) AS 'xhMonth11', |
| | | SUM(CASE WHEN month_num = 11 AND pay_type = 1 THEN total_amount ELSE 0 END) AS 'cdMonth11', |
| | | SUM(CASE WHEN month_num = 11 AND pay_type = 2 THEN total_amount ELSE 0 END) AS 'qtMonth11', |
| | | SUM(CASE WHEN month_num = 12 THEN total_amount ELSE 0 END) AS 'srMonth12', |
| | | SUM(CASE WHEN month_num = 12 AND pay_type = 0 THEN total_amount ELSE 0 END) AS 'xhMonth12', |
| | | SUM(CASE WHEN month_num = 12 AND pay_type = 1 THEN total_amount ELSE 0 END) AS 'cdMonth12', |
| | | SUM(CASE WHEN month_num = 12 AND pay_type = 2 THEN total_amount ELSE 0 END) AS 'qtMonth12' |
| | | FROM ( |
| | | SELECT |
| | | COALESCE(c.party_b, '未知单位') AS compName, |
| | | MONTH(confirm_time) AS month_num, |
| | | pay_type, |
| | | COALESCE(transation_amount, 0) AS total_amount |
| | | FROM payment_confirm pc,contract c |
| | | WHERE |
| | | |
| | | pc.del_flag = '0' |
| | | And c.del_flag = '0' |
| | | AND pc.contract_id = c.id |
| | | AND confirm_time IS NOT NULL |
| | | AND transation_amount IS NOT NULL |
| | | AND YEAR(confirm_time) = #{queryDTO.year} |
| | | AND party_b_id IN |
| | | <foreach collection="compIds" item="id" open="(" close=")" separator=","> |
| | | #{id} |
| | | </foreach> |
| | | ) AS source_data |
| | | GROUP BY compName |
| | | |
| | | </select> |
| | | <select id="contractIncomeAnalysisByComp" |
| | | resultType="com.by4cloud.platformx.business.vo.ContractIncomeAnalysisCompVo"> |
| | | SELECT |
| | | months.yf, |
| | | COALESCE ( SUM( transation_amount ), 0 ) AS sr, |
| | | COALESCE ( SUM( CASE WHEN pay_type = 0 THEN COALESCE ( transation_amount, 0 ) ELSE 0 END ), 0 ) AS xh, |
| | | COALESCE ( SUM( CASE WHEN pay_type = 1 THEN COALESCE ( transation_amount, 0 ) ELSE 0 END ), 0 ) AS cd, |
| | | COALESCE ( SUM( CASE WHEN pay_type = 2 THEN COALESCE ( transation_amount, 0 ) ELSE 0 END ), 0 ) AS qt |
| | | FROM |
| | | ( |
| | | SELECT |
| | | '1月' AS yf UNION ALL |
| | | SELECT |
| | | '2月' UNION ALL |
| | | SELECT |
| | | '3月' UNION ALL |
| | | SELECT |
| | | '4月' UNION ALL |
| | | SELECT |
| | | '5月' UNION ALL |
| | | SELECT |
| | | '6月' UNION ALL |
| | | SELECT |
| | | '7月' UNION ALL |
| | | SELECT |
| | | '8月' UNION ALL |
| | | SELECT |
| | | '9月' UNION ALL |
| | | SELECT |
| | | '10月' UNION ALL |
| | | SELECT |
| | | '11月' UNION ALL |
| | | SELECT |
| | | '12月' |
| | | ) AS months |
| | | LEFT JOIN payment_confirm pc ON months.yf = CONCAT( MONTH ( pc.confirm_time ), '月' ) |
| | | AND pc.del_flag = '0' |
| | | AND pc.confirm_time IS NOT NULL |
| | | AND pc.transation_amount IS NOT NULL |
| | | AND YEAR ( pc.confirm_time ) = #{queryDTO.year} |
| | | AND pc.comp_id = #{compId} |
| | | WHERE |
| | | 1 = 1 |
| | | GROUP BY |
| | | months.yf |
| | | </select> |
| | | <select id="contractAmountAnalysisByArea" |
| | | resultType="com.by4cloud.platformx.business.vo.ContractIncomeAnalysisAreaVo"> |
| | | SELECT |
| | | b.area_id, |
| | | SUM( CASE WHEN c.party_b_id = #{sgbCompId} THEN c.amount ELSE 0 END ) AS sgbze, |
| | | ROUND( |
| | | SUM( CASE WHEN c.party_b_id = #{sgbCompId} THEN c.amount ELSE 0 END ) / ( |
| | | SELECT |
| | | SUM( amount ) |
| | | FROM |
| | | contract |
| | | WHERE |
| | | party_b_id IN |
| | | <foreach collection="compIds" item="id" open="(" close=")" separator=","> |
| | | #{id} |
| | | </foreach> |
| | | ) * 100, |
| | | 0 |
| | | ) AS zgbzb, |
| | | SUM( CASE WHEN c.party_b_id = #{jxcCompId} THEN c.amount ELSE 0 END ) AS jxcze, |
| | | ROUND( |
| | | SUM( CASE WHEN c.party_b_id = #{jxcCompId} THEN c.amount ELSE 0 END ) / ( |
| | | SELECT |
| | | SUM( amount ) |
| | | FROM |
| | | contract |
| | | WHERE |
| | | party_b_id IN |
| | | <foreach collection="compIds" item="id" open="(" close=")" separator=","> |
| | | #{id} |
| | | </foreach> |
| | | ) * 100, |
| | | 0 |
| | | ) AS jxczb , |
| | | SUM( CASE WHEN c.party_b_id = #{smjCompId} THEN c.amount ELSE 0 END ) AS smjze, |
| | | ROUND( |
| | | SUM( CASE WHEN c.party_b_id = #{smjCompId} THEN c.amount ELSE 0 END ) / ( |
| | | SELECT |
| | | SUM( amount ) |
| | | FROM |
| | | contract |
| | | WHERE |
| | | party_b_id IN |
| | | <foreach collection="compIds" item="id" open="(" close=")" separator=","> |
| | | #{id} |
| | | </foreach> |
| | | ) * 100, |
| | | 0 |
| | | ) AS smjzb , |
| | | SUM( CASE WHEN c.party_b_id = #{ymjCompId} THEN c.amount ELSE 0 END ) AS ymjze, |
| | | ROUND( |
| | | SUM( CASE WHEN c.party_b_id = #{ymjCompId} THEN c.amount ELSE 0 END ) / ( |
| | | SELECT |
| | | SUM( amount ) |
| | | FROM |
| | | contract |
| | | WHERE |
| | | party_b_id IN |
| | | <foreach collection="compIds" item="id" open="(" close=")" separator=","> |
| | | #{id} |
| | | </foreach> |
| | | ) * 100, |
| | | 0 |
| | | ) AS ymjzb , |
| | | SUM( CASE WHEN c.party_b_id = #{tfCompId} THEN c.amount ELSE 0 END ) AS tfze, |
| | | ROUND( |
| | | SUM( CASE WHEN c.party_b_id = #{tfCompId} THEN c.amount ELSE 0 END ) / ( |
| | | SELECT |
| | | SUM( amount ) |
| | | FROM |
| | | contract |
| | | WHERE |
| | | party_b_id IN |
| | | <foreach collection="compIds" item="id" open="(" close=")" separator=","> |
| | | #{id} |
| | | </foreach> |
| | | ) * 100, |
| | | 0 |
| | | ) AS tfzb |
| | | FROM |
| | | contract c |
| | | JOIN business_customer b ON c.party_a_id = b.id |
| | | WHERE |
| | | b.area_id IS NOT NULL |
| | | AND YEAR ( sign_date ) = #{queryDTO.year} |
| | | GROUP BY |
| | | b.area_id |
| | | |
| | | </select> |
| | | <select id="contractAmountAnalysisByIndustry" |
| | | resultType="com.by4cloud.platformx.business.vo.ContractIncomeAnalysisAreaVo"> |
| | | SELECT |
| | | b.industry_id area_id, |
| | | SUM( CASE WHEN c.party_b_id = #{sgbCompId} THEN c.amount ELSE 0 END ) AS sgbze, |
| | | ROUND( |
| | | SUM( CASE WHEN c.party_b_id = #{sgbCompId} THEN c.amount ELSE 0 END ) / ( |
| | | SELECT |
| | | SUM( amount ) |
| | | FROM |
| | | contract |
| | | WHERE |
| | | party_b_id IN |
| | | <foreach collection="compIds" item="id" open="(" close=")" separator=","> |
| | | #{id} |
| | | </foreach> |
| | | ) * 100, |
| | | 0 |
| | | ) AS zgbzb, |
| | | SUM( CASE WHEN c.party_b_id = #{jxcCompId} THEN c.amount ELSE 0 END ) AS jxcze, |
| | | ROUND( |
| | | SUM( CASE WHEN c.party_b_id = #{jxcCompId} THEN c.amount ELSE 0 END ) / ( |
| | | SELECT |
| | | SUM( amount ) |
| | | FROM |
| | | contract |
| | | WHERE |
| | | party_b_id IN |
| | | <foreach collection="compIds" item="id" open="(" close=")" separator=","> |
| | | #{id} |
| | | </foreach> |
| | | ) * 100, |
| | | 0 |
| | | ) AS jxczb , |
| | | SUM( CASE WHEN c.party_b_id = #{smjCompId} THEN c.amount ELSE 0 END ) AS smjze, |
| | | ROUND( |
| | | SUM( CASE WHEN c.party_b_id = #{smjCompId} THEN c.amount ELSE 0 END ) / ( |
| | | SELECT |
| | | SUM( amount ) |
| | | FROM |
| | | contract |
| | | WHERE |
| | | party_b_id IN |
| | | <foreach collection="compIds" item="id" open="(" close=")" separator=","> |
| | | #{id} |
| | | </foreach> |
| | | ) * 100, |
| | | 0 |
| | | ) AS smjzb , |
| | | SUM( CASE WHEN c.party_b_id = #{ymjCompId} THEN c.amount ELSE 0 END ) AS ymjze, |
| | | ROUND( |
| | | SUM( CASE WHEN c.party_b_id = #{ymjCompId} THEN c.amount ELSE 0 END ) / ( |
| | | SELECT |
| | | SUM( amount ) |
| | | FROM |
| | | contract |
| | | WHERE |
| | | party_b_id IN |
| | | <foreach collection="compIds" item="id" open="(" close=")" separator=","> |
| | | #{id} |
| | | </foreach> |
| | | ) * 100, |
| | | 0 |
| | | ) AS ymjzb , |
| | | SUM( CASE WHEN c.party_b_id = #{tfCompId} THEN c.amount ELSE 0 END ) AS tfze, |
| | | ROUND( |
| | | SUM( CASE WHEN c.party_b_id = #{tfCompId} THEN c.amount ELSE 0 END ) / ( |
| | | SELECT |
| | | SUM( amount ) |
| | | FROM |
| | | contract |
| | | WHERE |
| | | party_b_id IN |
| | | <foreach collection="compIds" item="id" open="(" close=")" separator=","> |
| | | #{id} |
| | | </foreach> |
| | | ) * 100, |
| | | 0 |
| | | ) AS tfzb |
| | | FROM |
| | | contract c |
| | | JOIN business_customer b ON c.party_a_id = b.id |
| | | WHERE |
| | | b.industry_id IS NOT NULL |
| | | AND YEAR ( sign_date ) = #{queryDTO.year} |
| | | GROUP BY |
| | | b.industry_id |
| | | |
| | | </select> |
| | | <select id="contractAmountAnalysisByMarket" |
| | | resultType="com.by4cloud.platformx.business.vo.ContractIncomeAnalysisAreaVo"> |
| | | SELECT |
| | | b.class_id area_id, |
| | | SUM( CASE WHEN c.party_b_id = #{sgbCompId} THEN c.amount ELSE 0 END ) AS sgbze, |
| | | ROUND( |
| | | SUM( CASE WHEN c.party_b_id = #{sgbCompId} THEN c.amount ELSE 0 END ) / ( |
| | | SELECT |
| | | SUM( amount ) |
| | | FROM |
| | | contract |
| | | WHERE |
| | | party_b_id IN |
| | | <foreach collection="compIds" item="id" open="(" close=")" separator=","> |
| | | #{id} |
| | | </foreach> |
| | | ) * 100, |
| | | 0 |
| | | ) AS zgbzb, |
| | | SUM( CASE WHEN c.party_b_id = #{jxcCompId} THEN c.amount ELSE 0 END ) AS jxcze, |
| | | ROUND( |
| | | SUM( CASE WHEN c.party_b_id = #{jxcCompId} THEN c.amount ELSE 0 END ) / ( |
| | | SELECT |
| | | SUM( amount ) |
| | | FROM |
| | | contract |
| | | WHERE |
| | | party_b_id IN |
| | | <foreach collection="compIds" item="id" open="(" close=")" separator=","> |
| | | #{id} |
| | | </foreach> |
| | | ) * 100, |
| | | 0 |
| | | ) AS jxczb , |
| | | SUM( CASE WHEN c.party_b_id = #{smjCompId} THEN c.amount ELSE 0 END ) AS smjze, |
| | | ROUND( |
| | | SUM( CASE WHEN c.party_b_id = #{smjCompId} THEN c.amount ELSE 0 END ) / ( |
| | | SELECT |
| | | SUM( amount ) |
| | | FROM |
| | | contract |
| | | WHERE |
| | | party_b_id IN |
| | | <foreach collection="compIds" item="id" open="(" close=")" separator=","> |
| | | #{id} |
| | | </foreach> |
| | | ) * 100, |
| | | 0 |
| | | ) AS smjzb , |
| | | SUM( CASE WHEN c.party_b_id = #{ymjCompId} THEN c.amount ELSE 0 END ) AS ymjze, |
| | | ROUND( |
| | | SUM( CASE WHEN c.party_b_id = #{ymjCompId} THEN c.amount ELSE 0 END ) / ( |
| | | SELECT |
| | | SUM( amount ) |
| | | FROM |
| | | contract |
| | | WHERE |
| | | party_b_id IN |
| | | <foreach collection="compIds" item="id" open="(" close=")" separator=","> |
| | | #{id} |
| | | </foreach> |
| | | ) * 100, |
| | | 0 |
| | | ) AS ymjzb , |
| | | SUM( CASE WHEN c.party_b_id = #{tfCompId} THEN c.amount ELSE 0 END ) AS tfze, |
| | | ROUND( |
| | | SUM( CASE WHEN c.party_b_id = #{tfCompId} THEN c.amount ELSE 0 END ) / ( |
| | | SELECT |
| | | SUM( amount ) |
| | | FROM |
| | | contract |
| | | WHERE |
| | | party_b_id IN |
| | | <foreach collection="compIds" item="id" open="(" close=")" separator=","> |
| | | #{id} |
| | | </foreach> |
| | | ) * 100, |
| | | 0 |
| | | ) AS tfzb |
| | | FROM |
| | | contract c |
| | | JOIN business_customer b ON c.party_a_id = b.id |
| | | WHERE |
| | | b.class_id IS NOT NULL |
| | | AND YEAR ( sign_date ) = #{queryDTO.year} |
| | | GROUP BY |
| | | b.class_id |
| | | |
| | | |
| | | </select> |
| | | <select id="contractAmountAnalysisByExportBus" |
| | | resultType="com.by4cloud.platformx.business.vo.ContractIncomeAnalysisAreaVo"> |
| | | SELECT |
| | | b.export_service_attr area_id, |
| | | SUM( CASE WHEN c.party_b_id = #{sgbCompId} THEN c.amount ELSE 0 END ) AS sgbze, |
| | | ROUND( |
| | | SUM( CASE WHEN c.party_b_id = #{sgbCompId} THEN c.amount ELSE 0 END ) / ( |
| | | SELECT |
| | | SUM( amount ) |
| | | FROM |
| | | contract |
| | | WHERE |
| | | party_b_id IN |
| | | <foreach collection="compIds" item="id" open="(" close=")" separator=","> |
| | | #{id} |
| | | </foreach> |
| | | ) * 100, |
| | | 0 |
| | | ) AS zgbzb, |
| | | SUM( CASE WHEN c.party_b_id = #{jxcCompId} THEN c.amount ELSE 0 END ) AS jxcze, |
| | | ROUND( |
| | | SUM( CASE WHEN c.party_b_id = #{jxcCompId} THEN c.amount ELSE 0 END ) / ( |
| | | SELECT |
| | | SUM( amount ) |
| | | FROM |
| | | contract |
| | | WHERE |
| | | party_b_id IN |
| | | <foreach collection="compIds" item="id" open="(" close=")" separator=","> |
| | | #{id} |
| | | </foreach> |
| | | ) * 100, |
| | | 0 |
| | | ) AS jxczb , |
| | | SUM( CASE WHEN c.party_b_id = #{smjCompId} THEN c.amount ELSE 0 END ) AS smjze, |
| | | ROUND( |
| | | SUM( CASE WHEN c.party_b_id = #{smjCompId} THEN c.amount ELSE 0 END ) / ( |
| | | SELECT |
| | | SUM( amount ) |
| | | FROM |
| | | contract |
| | | WHERE |
| | | party_b_id IN |
| | | <foreach collection="compIds" item="id" open="(" close=")" separator=","> |
| | | #{id} |
| | | </foreach> |
| | | ) * 100, |
| | | 0 |
| | | ) AS smjzb , |
| | | SUM( CASE WHEN c.party_b_id = #{ymjCompId} THEN c.amount ELSE 0 END ) AS ymjze, |
| | | ROUND( |
| | | SUM( CASE WHEN c.party_b_id = #{ymjCompId} THEN c.amount ELSE 0 END ) / ( |
| | | SELECT |
| | | SUM( amount ) |
| | | FROM |
| | | contract |
| | | WHERE |
| | | party_b_id IN |
| | | <foreach collection="compIds" item="id" open="(" close=")" separator=","> |
| | | #{id} |
| | | </foreach> |
| | | ) * 100, |
| | | 0 |
| | | ) AS ymjzb , |
| | | SUM( CASE WHEN c.party_b_id = #{tfCompId} THEN c.amount ELSE 0 END ) AS tfze, |
| | | ROUND( |
| | | SUM( CASE WHEN c.party_b_id = #{tfCompId} THEN c.amount ELSE 0 END ) / ( |
| | | SELECT |
| | | SUM( amount ) |
| | | FROM |
| | | contract |
| | | WHERE |
| | | party_b_id IN |
| | | <foreach collection="compIds" item="id" open="(" close=")" separator=","> |
| | | #{id} |
| | | </foreach> |
| | | ) * 100, |
| | | 0 |
| | | ) AS tfzb |
| | | FROM |
| | | contract c |
| | | JOIN business_customer b ON c.party_a_id = b.id |
| | | WHERE |
| | | b.export_service_attr IS NOT NULL |
| | | AND YEAR ( sign_date ) = #{queryDTO.year} |
| | | GROUP BY |
| | | b.export_service_attr |
| | | |
| | | </select> |
| | | <select id="contractAmountAnalysisBySpcBus" |
| | | resultType="com.by4cloud.platformx.business.vo.ContractIncomeAnalysisAreaVo"> |
| | | SELECT |
| | | c.supply_attribute area_id, |
| | | SUM( CASE WHEN c.party_b_id = #{sgbCompId} THEN c.amount ELSE 0 END ) AS sgbze, |
| | | ROUND( |
| | | SUM( CASE WHEN c.party_b_id = #{sgbCompId} THEN c.amount ELSE 0 END ) / ( |
| | | SELECT |
| | | SUM( amount ) |
| | | FROM |
| | | contract |
| | | WHERE |
| | | party_b_id IN |
| | | <foreach collection="compIds" item="id" open="(" close=")" separator=","> |
| | | #{id} |
| | | </foreach> |
| | | ) * 100, |
| | | 0 |
| | | ) AS zgbzb, |
| | | SUM( CASE WHEN c.party_b_id = #{jxcCompId} THEN c.amount ELSE 0 END ) AS jxcze, |
| | | ROUND( |
| | | SUM( CASE WHEN c.party_b_id = #{jxcCompId} THEN c.amount ELSE 0 END ) / ( |
| | | SELECT |
| | | SUM( amount ) |
| | | FROM |
| | | contract |
| | | WHERE |
| | | party_b_id IN |
| | | <foreach collection="compIds" item="id" open="(" close=")" separator=","> |
| | | #{id} |
| | | </foreach> |
| | | ) * 100, |
| | | 0 |
| | | ) AS jxczb , |
| | | SUM( CASE WHEN c.party_b_id = #{smjCompId} THEN c.amount ELSE 0 END ) AS smjze, |
| | | ROUND( |
| | | SUM( CASE WHEN c.party_b_id = #{smjCompId} THEN c.amount ELSE 0 END ) / ( |
| | | SELECT |
| | | SUM( amount ) |
| | | FROM |
| | | contract |
| | | WHERE |
| | | party_b_id IN |
| | | <foreach collection="compIds" item="id" open="(" close=")" separator=","> |
| | | #{id} |
| | | </foreach> |
| | | ) * 100, |
| | | 0 |
| | | ) AS smjzb , |
| | | SUM( CASE WHEN c.party_b_id = #{ymjCompId} THEN c.amount ELSE 0 END ) AS ymjze, |
| | | ROUND( |
| | | SUM( CASE WHEN c.party_b_id = #{ymjCompId} THEN c.amount ELSE 0 END ) / ( |
| | | SELECT |
| | | SUM( amount ) |
| | | FROM |
| | | contract |
| | | WHERE |
| | | party_b_id IN |
| | | <foreach collection="compIds" item="id" open="(" close=")" separator=","> |
| | | #{id} |
| | | </foreach> |
| | | ) * 100, |
| | | 0 |
| | | ) AS ymjzb , |
| | | SUM( CASE WHEN c.party_b_id = #{tfCompId} THEN c.amount ELSE 0 END ) AS tfze, |
| | | ROUND( |
| | | SUM( CASE WHEN c.party_b_id = #{tfCompId} THEN c.amount ELSE 0 END ) / ( |
| | | SELECT |
| | | SUM( amount ) |
| | | FROM |
| | | contract |
| | | WHERE |
| | | party_b_id IN |
| | | <foreach collection="compIds" item="id" open="(" close=")" separator=","> |
| | | #{id} |
| | | </foreach> |
| | | ) * 100, |
| | | 0 |
| | | ) AS tfzb |
| | | FROM |
| | | contract c |
| | | WHERE |
| | | c.supply_attribute IS NOT NULL |
| | | AND YEAR ( sign_date ) = #{queryDTO.year} |
| | | GROUP BY |
| | | c.supply_attribute |
| | | |
| | | </select> |
| | | <select id="contractAmountAnalysisByComp" |
| | | resultType="com.by4cloud.platformx.business.vo.ContractAmountAnalysisCompVo"> |
| | | SELECT |
| | | m.stat_month AS yf, |
| | | COALESCE(curr.total_amount, 0) AS je, |
| | | CASE |
| | | WHEN prev.total_amount IS NULL OR prev.total_amount = 0 THEN NULL |
| | | ELSE ROUND( |
| | | (COALESCE(curr.total_amount, 0) - prev.total_amount) / prev.total_amount * 100, |
| | | 2 |
| | | ) |
| | | END AS hb, |
| | | CASE |
| | | WHEN last_year.total_amount IS NULL OR last_year.total_amount = 0 THEN NULL |
| | | ELSE ROUND( |
| | | (COALESCE(curr.total_amount, 0) - last_year.total_amount) / last_year.total_amount * 100, |
| | | 2 |
| | | ) |
| | | END AS tb |
| | | FROM ( |
| | | SELECT DATE_FORMAT(MAKEDATE(${queryDTO.year}, 1), '%Y-%m') AS stat_month, 1 AS month_num |
| | | UNION ALL SELECT DATE_FORMAT(DATE_ADD(MAKEDATE(${queryDTO.year}, 1), INTERVAL 1 MONTH), '%Y-%m'), 2 |
| | | UNION ALL SELECT DATE_FORMAT(DATE_ADD(MAKEDATE(${queryDTO.year}, 1), INTERVAL 2 MONTH), '%Y-%m'), 3 |
| | | UNION ALL SELECT DATE_FORMAT(DATE_ADD(MAKEDATE(${queryDTO.year}, 1), INTERVAL 3 MONTH), '%Y-%m'), 4 |
| | | UNION ALL SELECT DATE_FORMAT(DATE_ADD(MAKEDATE(${queryDTO.year}, 1), INTERVAL 4 MONTH), '%Y-%m'), 5 |
| | | UNION ALL SELECT DATE_FORMAT(DATE_ADD(MAKEDATE(${queryDTO.year}, 1), INTERVAL 5 MONTH), '%Y-%m'), 6 |
| | | UNION ALL SELECT DATE_FORMAT(DATE_ADD(MAKEDATE(${queryDTO.year}, 1), INTERVAL 6 MONTH), '%Y-%m'), 7 |
| | | UNION ALL SELECT DATE_FORMAT(DATE_ADD(MAKEDATE(${queryDTO.year}, 1), INTERVAL 7 MONTH), '%Y-%m'), 8 |
| | | UNION ALL SELECT DATE_FORMAT(DATE_ADD(MAKEDATE(${queryDTO.year}, 1), INTERVAL 8 MONTH), '%Y-%m'), 9 |
| | | UNION ALL SELECT DATE_FORMAT(DATE_ADD(MAKEDATE(${queryDTO.year}, 1), INTERVAL 9 MONTH), '%Y-%m'), 10 |
| | | UNION ALL SELECT DATE_FORMAT(DATE_ADD(MAKEDATE(${queryDTO.year}, 1), INTERVAL 10 MONTH), '%Y-%m'), 11 |
| | | UNION ALL SELECT DATE_FORMAT(DATE_ADD(MAKEDATE(${queryDTO.year}, 1), INTERVAL 11 MONTH), '%Y-%m'), 12 |
| | | ) m |
| | | LEFT JOIN ( |
| | | SELECT |
| | | DATE_FORMAT(sign_date, '%Y-%m') AS stat_month, |
| | | SUM(amount) AS total_amount |
| | | FROM contract |
| | | WHERE YEAR(sign_date) = #{queryDTO.year} |
| | | AND party_b_id = #{compId} |
| | | GROUP BY DATE_FORMAT(sign_date, '%Y-%m') |
| | | ) curr ON m.stat_month = curr.stat_month |
| | | LEFT JOIN ( |
| | | SELECT |
| | | DATE_FORMAT(sign_date, '%Y-%m') AS stat_month, |
| | | MONTH(sign_date) AS month_num, |
| | | SUM(amount) AS total_amount |
| | | FROM contract |
| | | WHERE YEAR(sign_date) = YEAR(CURDATE()) |
| | | AND party_b_id = #{compId} |
| | | GROUP BY DATE_FORMAT(sign_date, '%Y-%m'), MONTH(sign_date) |
| | | ) prev ON m.month_num = prev.month_num + 1 |
| | | LEFT JOIN ( |
| | | SELECT |
| | | MONTH(sign_date) AS month_num, |
| | | SUM(amount) AS total_amount |
| | | FROM contract |
| | | WHERE YEAR(sign_date) = YEAR(CURDATE()) - 1 |
| | | AND party_b_id = #{compId} |
| | | GROUP BY MONTH(sign_date) |
| | | ) last_year ON m.month_num = last_year.month_num |
| | | ORDER BY m.month_num |
| | | |
| | | </select> |
| | | </mapper> |