shiyunteng
2026-05-25 5d080021659f60d24671d82d11c2db62b66075cd
platformx-business-finance-biz/src/main/resources/mapper/ContractMapper.xml
@@ -186,69 +186,66 @@
      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 = 1 AND pay_type = 1 THEN total_amount ELSE 0 END) AS 'xhMonth1',
            SUM(CASE WHEN month_num = 1 AND pay_type = 2 THEN total_amount ELSE 0 END) AS 'cdMonth1',
            SUM(CASE WHEN month_num = 1 AND pay_type = 3 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 = 2 AND pay_type = 1 THEN total_amount ELSE 0 END) AS 'xhMonth2',
            SUM(CASE WHEN month_num = 2 AND pay_type = 2 THEN total_amount ELSE 0 END) AS 'cdMonth2',
            SUM(CASE WHEN month_num = 2 AND pay_type = 3 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 = 3 AND pay_type = 1 THEN total_amount ELSE 0 END) AS 'xhMonth3',
            SUM(CASE WHEN month_num = 3 AND pay_type = 2 THEN total_amount ELSE 0 END) AS 'cdMonth3',
            SUM(CASE WHEN month_num = 3 AND pay_type = 3 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 = 4 AND pay_type = 1 THEN total_amount ELSE 0 END) AS 'xhMonth4',
            SUM(CASE WHEN month_num = 4 AND pay_type = 2 THEN total_amount ELSE 0 END) AS 'cdMonth4',
            SUM(CASE WHEN month_num = 4 AND pay_type = 3 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 = 6 AND pay_type = 1 THEN total_amount ELSE 0 END) AS 'xhMonth6',
            SUM(CASE WHEN month_num = 6 AND pay_type = 2 THEN total_amount ELSE 0 END) AS 'cdMonth6',
            SUM(CASE WHEN month_num = 6 AND pay_type = 3 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 = 7 AND pay_type = 1 THEN total_amount ELSE 0 END) AS 'xhMonth7',
            SUM(CASE WHEN month_num = 7 AND pay_type = 2 THEN total_amount ELSE 0 END) AS 'cdMonth7',
            SUM(CASE WHEN month_num = 7 AND pay_type = 3 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 = 8 AND pay_type = 1 THEN total_amount ELSE 0 END) AS 'xhMonth8',
            SUM(CASE WHEN month_num = 8 AND pay_type = 2 THEN total_amount ELSE 0 END) AS 'cdMonth8',
            SUM(CASE WHEN month_num = 8 AND pay_type = 3 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 = 9 AND pay_type = 1 THEN total_amount ELSE 0 END) AS 'xhMonth9',
            SUM(CASE WHEN month_num = 9 AND pay_type = 2 THEN total_amount ELSE 0 END) AS 'cdMonth9',
            SUM(CASE WHEN month_num = 9 AND pay_type = 3 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 = 10 AND pay_type = 1 THEN total_amount ELSE 0 END) AS 'xhMonth10',
            SUM(CASE WHEN month_num = 10 AND pay_type = 2 THEN total_amount ELSE 0 END) AS 'cdMonth10',
            SUM(CASE WHEN month_num = 10 AND pay_type = 3 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 = 11 AND pay_type = 1 THEN total_amount ELSE 0 END) AS 'xhMonth11',
            SUM(CASE WHEN month_num = 11 AND pay_type = 2 THEN total_amount ELSE 0 END) AS 'cdMonth11',
            SUM(CASE WHEN month_num = 11 AND pay_type = 3 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'
            SUM(CASE WHEN month_num = 12 AND pay_type = 1 THEN total_amount ELSE 0 END) AS 'xhMonth12',
            SUM(CASE WHEN month_num = 12 AND pay_type = 2 THEN total_amount ELSE 0 END) AS 'cdMonth12',
            SUM(CASE WHEN month_num = 12 AND pay_type = 3 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
      SELECT
      COALESCE(pc.payee_comp_id, '未知单位') AS compName,
      MONTH(payment_time) AS month_num,
      pay_type,
      COALESCE(payment_amount, 0) AS total_amount
      FROM payment_slip pc
      WHERE
      pc.del_flag = '0'
      AND payment_time IS NOT NULL
      AND payment_amount IS NOT NULL
               AND YEAR(payment_time) = #{queryDTO.year}
      AND   payee_comp_id IN
      <foreach collection="compIds" item="id" open="(" close=")" separator=",">
         #{id}
      </foreach>
@@ -260,10 +257,10 @@
         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
         COALESCE ( SUM( payment_amount ), 0 ) AS sr,
         COALESCE ( SUM( CASE WHEN pay_type = 1 THEN COALESCE ( payment_amount, 0 ) ELSE 0 END ), 0 ) AS xh,
         COALESCE ( SUM( CASE WHEN pay_type = 2 THEN COALESCE ( payment_amount, 0 ) ELSE 0 END ), 0 ) AS cd,
         COALESCE ( SUM( CASE WHEN pay_type = 3 THEN COALESCE ( payment_amount, 0 ) ELSE 0 END ), 0 ) AS qt
      FROM
         (
            SELECT
@@ -291,11 +288,11 @@
            SELECT
               '12月'
         ) AS months
            LEFT JOIN payment_confirm pc ON months.yf = CONCAT( MONTH ( pc.confirm_time ), '月' )
            LEFT JOIN payment_slip pc ON months.yf = CONCAT( MONTH ( pc.payment_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.payment_time IS NOT NULL
            AND pc.payment_amount IS NOT NULL
            AND YEAR ( pc.payment_time ) = #{queryDTO.year}
            AND pc.comp_id = #{compId}
      WHERE
         1 = 1
@@ -312,29 +309,37 @@
                     SELECT
                        SUM( amount )
                     FROM
                        contract
                     contract c, business_customer bc
                     WHERE
                        party_b_id IN
                     bc.id = c.party_a_id
                     and c.del_flag = '0'
                     and bc.del_flag = '0'
                     and bc.area_id = b.area_id
                     and party_b_id IN
                     <foreach collection="compIds" item="id" open="(" close=")" separator=",">
                        #{id}
                     </foreach>
             ) * 100,
                     0
            ) AS zgbzb,
                     2
            ) AS sgbzb,
         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>
                        contract c, business_customer bc
                        WHERE
                        bc.id = c.party_a_id
                        and c.del_flag = '0'
                        and bc.del_flag = '0'
                        and bc.area_id = b.area_id
                        and party_b_id IN
                        <foreach collection="compIds" item="id" open="(" close=")" separator=",">
                           #{id}
                        </foreach>
             ) * 100,
                     0
                     2
            ) AS jxczb ,
         SUM( CASE WHEN c.party_b_id = #{smjCompId} THEN c.amount ELSE 0 END ) AS smjze,
         ROUND(
@@ -342,14 +347,18 @@
                     SELECT
                        SUM( amount )
                     FROM
                        contract
                     WHERE
                        party_b_id IN
      <foreach collection="compIds" item="id" open="(" close=")" separator=",">
         #{id}
      </foreach>
                        contract c, business_customer bc
                        WHERE
                        bc.id = c.party_a_id
                        and c.del_flag = '0'
                        and bc.del_flag = '0'
                        and bc.area_id = b.area_id
                        and party_b_id IN
                        <foreach collection="compIds" item="id" open="(" close=")" separator=",">
                           #{id}
                        </foreach>
             ) * 100,
                     0
                     2
            ) AS smjzb ,
         SUM( CASE WHEN c.party_b_id = #{ymjCompId} THEN c.amount ELSE 0 END ) AS ymjze,
         ROUND(
@@ -357,14 +366,18 @@
                     SELECT
                        SUM( amount )
                     FROM
                        contract
                     contract c, business_customer bc
                     WHERE
                        party_b_id IN
      <foreach collection="compIds" item="id" open="(" close=")" separator=",">
         #{id}
      </foreach>
                     bc.id = c.party_a_id
                     and c.del_flag = '0'
                     and bc.del_flag = '0'
                     and bc.area_id = b.area_id
                     and party_b_id IN
                     <foreach collection="compIds" item="id" open="(" close=")" separator=",">
                        #{id}
                     </foreach>
             ) * 100,
                     0
                     2
            ) AS ymjzb ,
         SUM( CASE WHEN c.party_b_id = #{tfCompId} THEN c.amount ELSE 0 END ) AS tfze,
         ROUND(
@@ -372,14 +385,18 @@
                     SELECT
                        SUM( amount )
                     FROM
                        contract
                     WHERE
                        party_b_id IN
      contract c, business_customer bc
      WHERE
      bc.id = c.party_a_id
      and c.del_flag = '0'
      and bc.del_flag = '0'
      and bc.area_id = b.area_id
      and party_b_id IN
      <foreach collection="compIds" item="id" open="(" close=")" separator=",">
         #{id}
      </foreach>
             ) * 100,
                     0
                     2
            ) AS tfzb
      FROM
         contract c
@@ -401,29 +418,37 @@
      SELECT
      SUM( amount )
      FROM
      contract
      contract c, business_customer bc
      WHERE
      party_b_id IN
      bc.id = c.party_a_id
      and c.del_flag = '0'
      and bc.del_flag = '0'
      and bc.industry_id = b.industry_id
      and party_b_id IN
      <foreach collection="compIds" item="id" open="(" close=")" separator=",">
         #{id}
      </foreach>
      ) * 100,
      0
      ) AS zgbzb,
      2
      ) AS sgbzb,
      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
      contract c, business_customer bc
      WHERE
      party_b_id IN
      bc.id = c.party_a_id
      and c.del_flag = '0'
      and bc.del_flag = '0'
      and bc.industry_id = b.industry_id
      and party_b_id IN
      <foreach collection="compIds" item="id" open="(" close=")" separator=",">
         #{id}
      </foreach>
      ) * 100,
      0
      2
      ) AS jxczb ,
      SUM( CASE WHEN c.party_b_id = #{smjCompId} THEN c.amount ELSE 0 END ) AS smjze,
      ROUND(
@@ -431,14 +456,18 @@
      SELECT
      SUM( amount )
      FROM
      contract
      contract c, business_customer bc
      WHERE
      party_b_id IN
      bc.id = c.party_a_id
      and c.del_flag = '0'
      and bc.del_flag = '0'
      and bc.industry_id = b.industry_id
      and party_b_id IN
      <foreach collection="compIds" item="id" open="(" close=")" separator=",">
         #{id}
      </foreach>
      ) * 100,
      0
      2
      ) AS smjzb ,
      SUM( CASE WHEN c.party_b_id = #{ymjCompId} THEN c.amount ELSE 0 END ) AS ymjze,
      ROUND(
@@ -446,14 +475,18 @@
      SELECT
      SUM( amount )
      FROM
      contract
      contract c, business_customer bc
      WHERE
      party_b_id IN
      bc.id = c.party_a_id
      and c.del_flag = '0'
      and bc.del_flag = '0'
      and bc.industry_id = b.industry_id
      and party_b_id IN
      <foreach collection="compIds" item="id" open="(" close=")" separator=",">
         #{id}
      </foreach>
      ) * 100,
      0
      2
      ) AS ymjzb ,
      SUM( CASE WHEN c.party_b_id = #{tfCompId} THEN c.amount ELSE 0 END ) AS tfze,
      ROUND(
@@ -461,14 +494,18 @@
      SELECT
      SUM( amount )
      FROM
      contract
      contract c, business_customer bc
      WHERE
      party_b_id IN
      bc.id = c.party_a_id
      and c.del_flag = '0'
      and bc.del_flag = '0'
      and bc.industry_id = b.industry_id
      and party_b_id IN
      <foreach collection="compIds" item="id" open="(" close=")" separator=",">
         #{id}
      </foreach>
      ) * 100,
      0
      2
      ) AS tfzb
      FROM
      contract c
@@ -490,29 +527,37 @@
      SELECT
      SUM( amount )
      FROM
      contract
      contract c, business_customer bc
      WHERE
      party_b_id IN
      bc.id = c.party_a_id
      and c.del_flag = '0'
      and bc.del_flag = '0'
      and bc.class_id = b.class_id
      and party_b_id IN
      <foreach collection="compIds" item="id" open="(" close=")" separator=",">
         #{id}
      </foreach>
      ) * 100,
      0
      ) AS zgbzb,
      2
      ) AS sgbzb,
      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
      contract c, business_customer bc
      WHERE
      party_b_id IN
      bc.id = c.party_a_id
      and c.del_flag = '0'
      and bc.del_flag = '0'
      and bc.class_id = b.class_id
      and party_b_id IN
      <foreach collection="compIds" item="id" open="(" close=")" separator=",">
         #{id}
      </foreach>
      ) * 100,
      0
      2
      ) AS jxczb ,
      SUM( CASE WHEN c.party_b_id = #{smjCompId} THEN c.amount ELSE 0 END ) AS smjze,
      ROUND(
@@ -520,14 +565,18 @@
      SELECT
      SUM( amount )
      FROM
      contract
      contract c, business_customer bc
      WHERE
      party_b_id IN
      bc.id = c.party_a_id
      and c.del_flag = '0'
      and bc.del_flag = '0'
      and bc.class_id = b.class_id
      and party_b_id IN
      <foreach collection="compIds" item="id" open="(" close=")" separator=",">
         #{id}
      </foreach>
      ) * 100,
      0
      2
      ) AS smjzb ,
      SUM( CASE WHEN c.party_b_id = #{ymjCompId} THEN c.amount ELSE 0 END ) AS ymjze,
      ROUND(
@@ -535,14 +584,18 @@
      SELECT
      SUM( amount )
      FROM
      contract
      contract c, business_customer bc
      WHERE
      party_b_id IN
      bc.id = c.party_a_id
      and c.del_flag = '0'
      and bc.del_flag = '0'
      and bc.class_id = b.class_id
      and party_b_id IN
      <foreach collection="compIds" item="id" open="(" close=")" separator=",">
         #{id}
      </foreach>
      ) * 100,
      0
      2
      ) AS ymjzb ,
      SUM( CASE WHEN c.party_b_id = #{tfCompId} THEN c.amount ELSE 0 END ) AS tfze,
      ROUND(
@@ -550,14 +603,18 @@
      SELECT
      SUM( amount )
      FROM
      contract
      contract c, business_customer bc
      WHERE
      party_b_id IN
      bc.id = c.party_a_id
      and c.del_flag = '0'
      and bc.del_flag = '0'
      and bc.class_id = b.class_id
      and party_b_id IN
      <foreach collection="compIds" item="id" open="(" close=")" separator=",">
         #{id}
      </foreach>
      ) * 100,
      0
      2
      ) AS tfzb
      FROM
      contract c
@@ -580,29 +637,37 @@
      SELECT
      SUM( amount )
      FROM
      contract
      contract c, business_customer bc
      WHERE
      party_b_id IN
      bc.id = c.party_a_id
      and c.del_flag = '0'
      and bc.del_flag = '0'
      and bc.export_service_attr = b.export_service_attr
      and party_b_id IN
      <foreach collection="compIds" item="id" open="(" close=")" separator=",">
         #{id}
      </foreach>
      ) * 100,
      0
      ) AS zgbzb,
      2
      ) AS sgbzb,
      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
      contract c, business_customer bc
      WHERE
      party_b_id IN
      bc.id = c.party_a_id
      and c.del_flag = '0'
      and bc.del_flag = '0'
      and bc.export_service_attr = b.export_service_attr
      and party_b_id IN
      <foreach collection="compIds" item="id" open="(" close=")" separator=",">
         #{id}
      </foreach>
      ) * 100,
      0
      2
      ) AS jxczb ,
      SUM( CASE WHEN c.party_b_id = #{smjCompId} THEN c.amount ELSE 0 END ) AS smjze,
      ROUND(
@@ -610,14 +675,18 @@
      SELECT
      SUM( amount )
      FROM
      contract
      contract c, business_customer bc
      WHERE
      party_b_id IN
      bc.id = c.party_a_id
      and c.del_flag = '0'
      and bc.del_flag = '0'
      and bc.export_service_attr = b.export_service_attr
      and party_b_id IN
      <foreach collection="compIds" item="id" open="(" close=")" separator=",">
         #{id}
      </foreach>
      ) * 100,
      0
      2
      ) AS smjzb ,
      SUM( CASE WHEN c.party_b_id = #{ymjCompId} THEN c.amount ELSE 0 END ) AS ymjze,
      ROUND(
@@ -625,14 +694,18 @@
      SELECT
      SUM( amount )
      FROM
      contract
      contract c, business_customer bc
      WHERE
      party_b_id IN
      bc.id = c.party_a_id
      and c.del_flag = '0'
      and bc.del_flag = '0'
      and bc.export_service_attr = b.export_service_attr
      and party_b_id IN
      <foreach collection="compIds" item="id" open="(" close=")" separator=",">
         #{id}
      </foreach>
      ) * 100,
      0
      2
      ) AS ymjzb ,
      SUM( CASE WHEN c.party_b_id = #{tfCompId} THEN c.amount ELSE 0 END ) AS tfze,
      ROUND(
@@ -640,14 +713,18 @@
      SELECT
      SUM( amount )
      FROM
      contract
      contract c, business_customer bc
      WHERE
      party_b_id IN
      bc.id = c.party_a_id
      and c.del_flag = '0'
      and bc.del_flag = '0'
      and bc.export_service_attr = b.export_service_attr
      and party_b_id IN
      <foreach collection="compIds" item="id" open="(" close=")" separator=",">
         #{id}
      </foreach>
      ) * 100,
      0
      2
      ) AS tfzb
      FROM
      contract c
@@ -676,8 +753,8 @@
         #{id}
      </foreach>
      ) * 100,
      0
      ) AS zgbzb,
      2
      ) AS sgbzb,
      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 ) / (
@@ -691,7 +768,7 @@
         #{id}
      </foreach>
      ) * 100,
      0
      2
      ) AS jxczb ,
      SUM( CASE WHEN c.party_b_id = #{smjCompId} THEN c.amount ELSE 0 END ) AS smjze,
      ROUND(
@@ -706,7 +783,7 @@
         #{id}
      </foreach>
      ) * 100,
      0
      2
      ) AS smjzb ,
      SUM( CASE WHEN c.party_b_id = #{ymjCompId} THEN c.amount ELSE 0 END ) AS ymjze,
      ROUND(
@@ -721,7 +798,7 @@
         #{id}
      </foreach>
      ) * 100,
      0
      2
      ) AS ymjzb ,
      SUM( CASE WHEN c.party_b_id = #{tfCompId} THEN c.amount ELSE 0 END ) AS tfze,
      ROUND(
@@ -736,7 +813,7 @@
         #{id}
      </foreach>
      ) * 100,
      0
      2
      ) AS tfzb
      FROM
      contract c