platformx-business-finance-biz/src/main/resources/mapper/ContractMapper.xml
@@ -57,6 +57,7 @@
      ) - IFNULL( t.billing_amout, 0 )) creditAmount
      FROM
      contract t
      LEFT JOIN business_customer t1 ON ( t1.id = t.bus_guest_id AND t1.del_flag = '0' )
      WHERE
      (
      IFNULL( t.billing_amout, 0 )<(
@@ -72,6 +73,28 @@
      </if>
      <if test="queryDTO.partyA !=null and queryDTO.partyA !=''">
         and t.party_a LIKE CONCAT('%', #{queryDTO.partyA}, '%')
      </if>
      <if test="queryDTO.queryArea !=null and queryDTO.queryArea !=''">
         AND t1.class_id =  #{queryDTO.queryArea}
      </if>
      <if test="queryDTO.queryServiceAttr !=null and queryDTO.queryServiceAttr !=''">
         AND t1.export_service_attr =  #{queryDTO.queryServiceAttr}
      </if>
      <if test="queryDTO.queryType !=null and queryDTO.queryType !='' and queryDTO.queryType =='1'.toString()">
         AND  t.payment_time &gt;= CURDATE()
         AND  t.payment_time &lt; DATE_ADD( CURDATE(), INTERVAL 1 DAY )
      </if>
      <if test="queryDTO.queryType !=null and queryDTO.queryType !='' and queryDTO.queryType =='2'.toString()">
         AND  t.payment_time &gt;= DATE_FORMAT( CURDATE(), '%Y-01-01' )
         AND  t.payment_time &lt; DATE_FORMAT( DATE_ADD( CURDATE(), INTERVAL 1 YEAR ), '%Y-01-01' )
      </if>
      <if test="queryDTO.queryType !=null and queryDTO.queryType !='' and queryDTO.queryType =='3'.toString()">
         AND  t.payment_time &gt;= DATE_FORMAT( CURDATE(), '%Y-01-01' )
         AND  t.payment_time &lt; DATE_FORMAT( DATE_ADD( CURDATE(), INTERVAL 1 YEAR ), '%Y-01-01' )
      </if>
      <if test="queryDTO.startTime !=null and queryDTO.endTime !=null">
         AND  t.payment_time &gt;=  #{queryDTO.startTime}
         AND  t.payment_time &lt;=  #{queryDTO.endTime}
      </if>
      <if test="queryDTO.productNames !=null and queryDTO.productNames !=''">
         and (SELECT GROUP_CONCAT(DISTINCT t1.material_internal_name) from contract_subject_matter t1 WHERE t1.contract_id = t.id) LIKE CONCAT('%', #{queryDTO.productNames}, '%')
@@ -184,86 +207,83 @@
   <select id="contractIncomeAnalysis"
         resultType="com.by4cloud.platformx.business.vo.ContractIncomeAnalysisVo">
      SELECT
         compName,
         compId,
         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 = 5 AND pay_type = 1 THEN total_amount ELSE 0 END) AS 'xhMonth5',
            SUM(CASE WHEN month_num = 5 AND pay_type = 2 THEN total_amount ELSE 0 END) AS 'cdMonth5',
            SUM(CASE WHEN month_num = 5 AND pay_type = 3 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 compId,
      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>
          ) AS source_data
      GROUP BY compName
      GROUP BY compId
   </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
         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 +311,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 +332,39 @@
                     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 YEAR( c.sign_date ) = #{queryDTO.year}
                     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 YEAR( c.sign_date ) = #{queryDTO.year}
                        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 +372,19 @@
                     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 YEAR( c.sign_date ) = #{queryDTO.year}
                        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 +392,19 @@
                     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 YEAR( c.sign_date ) = #{queryDTO.year}
                     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,20 +412,26 @@
                     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 YEAR( c.sign_date ) = #{queryDTO.year}
      and party_b_id IN
      <foreach collection="compIds" item="id" open="(" close=")" separator=",">
         #{id}
      </foreach>
             ) * 100,
                     0
                     2
            ) AS tfzb
      FROM
         contract c
            JOIN business_customer b ON c.party_a_id = b.id
      WHERE
         b.area_id IS NOT NULL
      c.del_flag='0'
      AND b.area_id IS NOT NULL
      AND YEAR ( sign_date ) = #{queryDTO.year}
      GROUP BY
         b.area_id
@@ -394,36 +440,42 @@
   <select id="contractAmountAnalysisByIndustry"
         resultType="com.by4cloud.platformx.business.vo.ContractIncomeAnalysisAreaVo">
      SELECT
      b.industry_id area_id,
      c.industry_code 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
      contract c1
      where
      c1.del_flag = '0'
      and c1.industry_code = c.industry_code
      AND YEAR( sign_date ) = #{queryDTO.year}
      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
      contract c1
      where
      c1.del_flag = '0'
      and c1.industry_code = c.industry_code
      AND YEAR( sign_date ) = #{queryDTO.year}
      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 +483,17 @@
      SELECT
      SUM( amount )
      FROM
      contract
      WHERE
      party_b_id IN
      contract c1
      where
      c1.del_flag = '0'
      and c1.industry_code = c.industry_code
      AND YEAR( sign_date ) = #{queryDTO.year}
      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 +501,17 @@
      SELECT
      SUM( amount )
      FROM
      contract
      WHERE
      party_b_id IN
      contract c1
      where
      c1.del_flag = '0'
      and c1.industry_code = c.industry_code
      AND YEAR( sign_date ) = #{queryDTO.year}
      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,23 +519,26 @@
      SELECT
      SUM( amount )
      FROM
      contract
      WHERE
      party_b_id IN
      contract c1
      where
            c1.del_flag = '0'
      and c1.industry_code = c.industry_code
      AND YEAR( sign_date ) = #{queryDTO.year}
      and party_b_id IN
      <foreach collection="compIds" item="id" open="(" close=")" separator=",">
         #{id}
      </foreach>
      ) * 100,
      0
      2
      ) AS tfzb
      FROM
      contract c
      JOIN business_customer b ON c.party_a_id = b.id
      WHERE
      b.industry_id IS NOT NULL
      where
      c.del_flag='0'
      AND c.industry_code  is not null
      AND YEAR ( sign_date ) = #{queryDTO.year}
      GROUP BY
      b.industry_id
      c.industry_code
   </select>
   <select id="contractAmountAnalysisByMarket"
@@ -490,29 +551,39 @@
      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 YEAR( c.sign_date ) = #{queryDTO.year}
      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 YEAR( c.sign_date ) = #{queryDTO.year}
      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 +591,19 @@
      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 YEAR( c.sign_date ) = #{queryDTO.year}
      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 +611,19 @@
      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 YEAR( c.sign_date ) = #{queryDTO.year}
      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,20 +631,26 @@
      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 YEAR( c.sign_date ) = #{queryDTO.year}
      and party_b_id IN
      <foreach collection="compIds" item="id" open="(" close=")" separator=",">
         #{id}
      </foreach>
      ) * 100,
      0
      2
      ) AS tfzb
      FROM
      contract c
      JOIN business_customer b ON c.party_a_id = b.id
      WHERE
      b.class_id IS NOT NULL
      c.del_flag='0'
      AND b.class_id IS NOT NULL
      AND YEAR ( sign_date ) = #{queryDTO.year}
      GROUP BY
      b.class_id
@@ -580,29 +667,39 @@
      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 YEAR( c.sign_date ) = #{queryDTO.year}
      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 YEAR( c.sign_date ) = #{queryDTO.year}
      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 +707,19 @@
      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 YEAR( c.sign_date ) = #{queryDTO.year}
      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 +727,19 @@
      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 YEAR( c.sign_date ) = #{queryDTO.year}
      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,20 +747,26 @@
      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 YEAR( c.sign_date ) = #{queryDTO.year}
      and party_b_id IN
      <foreach collection="compIds" item="id" open="(" close=")" separator=",">
         #{id}
      </foreach>
      ) * 100,
      0
      2
      ) AS tfzb
      FROM
      contract c
      JOIN business_customer b ON c.party_a_id = b.id
      WHERE
      b.export_service_attr IS NOT NULL
      c.del_flag='0'
      AND b.export_service_attr IS NOT NULL
      AND YEAR ( sign_date ) = #{queryDTO.year}
      GROUP BY
      b.export_service_attr
@@ -669,29 +782,35 @@
      SELECT
      SUM( amount )
      FROM
      contract
      contract ct
      WHERE
      party_b_id IN
            ct.del_flag = '0'
      and  ct.supply_attribute = c.supply_attribute
      AND YEAR ( sign_date ) = #{queryDTO.year}
      and ct.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 ct
      WHERE
      party_b_id IN
      ct.del_flag = '0'
      and  ct.supply_attribute = c.supply_attribute
      AND YEAR ( sign_date ) = #{queryDTO.year}
      and ct.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(
@@ -699,14 +818,17 @@
      SELECT
      SUM( amount )
      FROM
      contract
      contract ct
      WHERE
      party_b_id IN
      ct.del_flag = '0'
      and  ct.supply_attribute = c.supply_attribute
      AND YEAR ( sign_date ) = #{queryDTO.year}
      and ct.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(
@@ -714,14 +836,17 @@
      SELECT
      SUM( amount )
      FROM
      contract
      contract ct
      WHERE
      party_b_id IN
      ct.del_flag = '0'
      and  ct.supply_attribute = c.supply_attribute
      AND YEAR ( sign_date ) = #{queryDTO.year}
      and ct.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(
@@ -729,19 +854,23 @@
      SELECT
      SUM( amount )
      FROM
      contract
      contract ct
      WHERE
      party_b_id IN
      ct.del_flag = '0'
      and  ct.supply_attribute = c.supply_attribute
      AND YEAR ( sign_date ) = #{queryDTO.year}
      and ct.party_b_id IN
      <foreach collection="compIds" item="id" open="(" close=")" separator=",">
         #{id}
      </foreach>
      ) * 100,
      0
      2
      ) AS tfzb
      FROM
      contract c
      WHERE
      c.supply_attribute IS NOT NULL
         c.del_flag = '0'
      and c.supply_attribute IS NOT NULL
      AND YEAR ( sign_date ) = #{queryDTO.year}
      GROUP BY
      c.supply_attribute
@@ -785,7 +914,9 @@
            DATE_FORMAT(sign_date, '%Y-%m') AS stat_month,
            SUM(amount) AS total_amount
         FROM contract
         WHERE YEAR(sign_date) = #{queryDTO.year}
         WHERE
            del_flag='0'
            AND 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
@@ -795,7 +926,8 @@
            MONTH(sign_date) AS month_num,
            SUM(amount) AS total_amount
         FROM contract
         WHERE YEAR(sign_date) = YEAR(CURDATE())
         WHERE del_flag='0'
         AND 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
@@ -804,11 +936,675 @@
            MONTH(sign_date) AS month_num,
            SUM(amount) AS total_amount
         FROM contract
         WHERE YEAR(sign_date) = YEAR(CURDATE()) - 1
         WHERE del_flag='0'
         AND 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>
   <select id="contractAmountAnalysisBySaleModel"
         resultType="com.by4cloud.platformx.business.vo.ContractIncomeAnalysisAreaVo">
      SELECT
      b.sales_model 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 c, business_customer bc
      WHERE
      bc.id = c.party_a_id
      and c.del_flag = '0'
      and bc.del_flag = '0'
      and bc.sales_model = b.sales_model
      AND YEAR( c.sign_date ) = #{queryDTO.year}
      and party_b_id IN
      <foreach collection="compIds" item="id" open="(" close=")" separator=",">
         #{id}
      </foreach>
      ) * 100,
      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 c, business_customer bc
      WHERE
      bc.id = c.party_a_id
      and c.del_flag = '0'
      and bc.del_flag = '0'
      and bc.sales_model = b.sales_model
      AND YEAR( c.sign_date ) = #{queryDTO.year}
      and party_b_id IN
      <foreach collection="compIds" item="id" open="(" close=")" separator=",">
         #{id}
      </foreach>
      ) * 100,
      2
      ) 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 c, business_customer bc
      WHERE
      bc.id = c.party_a_id
      and c.del_flag = '0'
      and bc.del_flag = '0'
      and bc.sales_model = b.sales_model
      AND YEAR( c.sign_date ) = #{queryDTO.year}
      and party_b_id IN
      <foreach collection="compIds" item="id" open="(" close=")" separator=",">
         #{id}
      </foreach>
      ) * 100,
      2
      ) 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 c, business_customer bc
      WHERE
      bc.id = c.party_a_id
      and c.del_flag = '0'
      and bc.del_flag = '0'
      and bc.sales_model = b.sales_model
      AND YEAR( c.sign_date ) = #{queryDTO.year}
      and party_b_id IN
      <foreach collection="compIds" item="id" open="(" close=")" separator=",">
         #{id}
      </foreach>
      ) * 100,
      2
      ) 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 c, business_customer bc
      WHERE
      bc.id = c.party_a_id
      and c.del_flag = '0'
      and bc.del_flag = '0'
      and bc.sales_model = b.sales_model
      AND YEAR( c.sign_date ) = #{queryDTO.year}
      and party_b_id IN
      <foreach collection="compIds" item="id" open="(" close=")" separator=",">
         #{id}
      </foreach>
      ) * 100,
      2
      ) AS tfzb
      FROM
      contract c
      JOIN business_customer b ON c.party_a_id = b.id
      WHERE
      c.del_flag='0'
      AND b.sales_model IS NOT NULL
      AND YEAR ( sign_date ) = #{queryDTO.year}
      GROUP BY
      b.sales_model
   </select>
    <select id="pageScope" resultType="com.by4cloud.platformx.business.vo.ContractPageVo">
      SELECT
         c.id,
         c.contract_no,
         c.contract_name,
         c.party_a_id,
         c.party_a,
         c.party_b_id,
         c.party_b,
         c.amount,
         c.contract_type,
         c.supply_attribute,
         c.contract_status,
         c.contract_attribute,
         c.sign_date,
         c.sign_place,
         c.effective_date,
         c.delivery_cycle,
         c.expiration_date,
         c.attachment_url,
         c.remark,
         c.parent_id,
         c.approve_time,
         c.arrival_schedule_id,
         c.accept_schedule_id,
         c.billing_status,
         c.billing_amout,
         c.template_id,
         c.sales_model,
         c.paid_amount,
         c.contract_category,
         c.exec_frequency,
            c.next_schedule_name,
          c.warranty_schedule_id,
         c.comp_id,
         (select sum(delivered_quantity*unit_price) from contract_subject_matter csm where csm.contract_id = c.id) outAmount
         FROM
      contract c,
      business_customer bc
      WHERE
      c.del_flag = '0'
      AND bc.del_flag = '0'
      AND bc.id = c.party_a_id
      <if test="queryDTO.contractName !=null and queryDTO.contractName !=''">
         AND contract_name LIKE CONCAT('%', #{queryDTO.contractName}, '%')
      </if>
      <if test="queryDTO.partyA !=null and queryDTO.partyA !=''">
         AND party_a LIKE CONCAT('%', #{queryDTO.partyA}, '%')
      </if>
      <if test="queryDTO.contractStatus !=null and queryDTO.contractStatus !=''">
         AND contract_status =  #{queryDTO.contractStatus}
      </if>
      <if test="queryDTO.queryCompId !=null and queryDTO.queryCompId !=''">
         AND c.comp_id =  #{queryDTO.queryCompId}
      </if>
      <if test="queryDTO.queryArea !=null and queryDTO.queryArea !=''">
         AND bc.class_id =  #{queryDTO.queryArea}
      </if>
      <if test="queryDTO.queryServiceAttr !=null and queryDTO.queryServiceAttr !=''">
         AND bc.export_service_attr =  #{queryDTO.queryServiceAttr}
      </if>
      <if test="queryDTO.queryType !=null and queryDTO.queryType !='' and queryDTO.queryType =='1'.toString()">
         AND c.sign_date &gt;= CURDATE()
         AND c.sign_date &lt; DATE_ADD( CURDATE(), INTERVAL 1 DAY )
      </if>
      <if test="queryDTO.queryType !=null and queryDTO.queryType !='' and queryDTO.queryType =='2'.toString()">
         AND c.sign_date &gt;= DATE_FORMAT( CURDATE(), '%Y-01-01' )
         AND c.sign_date &lt; DATE_FORMAT( DATE_ADD( CURDATE(), INTERVAL 1 YEAR ), '%Y-01-01' )
      </if>
      <if test="queryDTO.queryType !=null and queryDTO.queryType !='' and queryDTO.queryType =='3'.toString()">
         AND c.sign_date &gt;= DATE_FORMAT( CURDATE(), '%Y-01-01' )
         AND c.sign_date &lt; DATE_FORMAT( DATE_ADD( CURDATE(), INTERVAL 1 YEAR ), '%Y-01-01' )
      </if>
      <if test="queryDTO.startTime !=null and queryDTO.endTime !=null">
         AND c.sign_date &gt;=  #{queryDTO.startTime}
         AND c.sign_date &lt;=  #{queryDTO.endTime}
      </if>
      ORDER BY
         c.create_time DESC
   </select>
    <select id="homeZbjt" resultType="com.by4cloud.platformx.business.vo.HomeZbjtVo">
      SELECT
      (
      SELECT
      sum( c.amount )
      FROM
      contract c
      WHERE
      c.del_flag = '0'
      AND comp_id = 2056556196124250113
      AND c.sign_date &gt;= CURDATE()
      AND c.sign_date &lt; DATE_ADD( CURDATE(), INTERVAL 1 DAY )) sgbbr,
      (
      SELECT
      sum( c.amount )
      FROM
      contract c
      WHERE
      c.del_flag = '0'
      AND comp_id = 2056556196124250113
      AND c.sign_date &gt;= DATE_FORMAT( CURDATE(), '%Y-%m-01' )
      AND c.sign_date &lt; DATE_FORMAT( DATE_ADD( CURDATE(), INTERVAL 1 MONTH ), '%Y-%m-01' )) sgbby,
      (
      SELECT
      sum( c.amount )
      FROM
      contract c
      WHERE
      c.del_flag = '0'
      AND comp_id = 2056556196124250113
      AND c.sign_date &gt;= DATE_FORMAT( CURDATE(), '%Y-01-01' )
      AND c.sign_date &lt; DATE_FORMAT( DATE_ADD( CURDATE(), INTERVAL 1 YEAR ), '%Y-01-01' )) sgbbn,
      (
      SELECT
      sum( c.amount )
      FROM
      contract c
      WHERE
      c.del_flag = '0'
      AND comp_id = 2056555602756063234
      AND c.sign_date &gt;= CURDATE()
      AND c.sign_date &lt; DATE_ADD( CURDATE(), INTERVAL 1 DAY )) smjbr,
      (
      SELECT
      sum( c.amount )
      FROM
      contract c
      WHERE
      c.del_flag = '0'
      AND comp_id = 2056555602756063234
      AND c.sign_date &gt;=DATE_FORMAT( CURDATE(), '%Y-%m-01' )
      AND c.sign_date &lt; DATE_FORMAT( DATE_ADD( CURDATE(), INTERVAL 1 MONTH ), '%Y-%m-01' )) smjby,
      (
      SELECT
      sum( c.amount )
      FROM
      contract c
      WHERE
      c.del_flag = '0'
      AND comp_id = 2056555602756063234
      AND c.sign_date &gt;=DATE_FORMAT( CURDATE(), '%Y-01-01' )
      AND c.sign_date &lt; DATE_FORMAT( DATE_ADD( CURDATE(), INTERVAL 1 YEAR ), '%Y-01-01' )) smjbn,
      (
      SELECT
      sum( c.amount )
      FROM
      contract c
      WHERE
      c.del_flag = '0'
      AND comp_id = 2056556317461270529
      AND c.sign_date &gt;=CURDATE()
      AND c.sign_date &lt; DATE_ADD( CURDATE(), INTERVAL 1 DAY )) jxcbr,
      (
      SELECT
      sum( c.amount )
      FROM
      contract c
      WHERE
      c.del_flag = '0'
      AND comp_id = 2056556317461270529
      AND c.sign_date &gt;=DATE_FORMAT( CURDATE(), '%Y-%m-01' )
      AND c.sign_date &lt; DATE_FORMAT( DATE_ADD( CURDATE(), INTERVAL 1 MONTH ), '%Y-%m-01' )) jxcby,
      (
      SELECT
      sum( c.amount )
      FROM
      contract c
      WHERE
      c.del_flag = '0'
      AND comp_id = 2056556317461270529
      AND c.sign_date &gt;=DATE_FORMAT( CURDATE(), '%Y-01-01' )
      AND c.sign_date &lt; DATE_FORMAT( DATE_ADD( CURDATE(), INTERVAL 1 YEAR ), '%Y-01-01' )) jxcbn,
      (
      SELECT
      sum( c.amount )
      FROM
      contract c
      WHERE
      c.del_flag = '0'
      AND comp_id = 2056556421857497090
      AND c.sign_date &gt;=CURDATE()
      AND c.sign_date &lt; DATE_ADD( CURDATE(), INTERVAL 1 DAY )) tfbr,
      (
      SELECT
      sum( c.amount )
      FROM
      contract c
      WHERE
      c.del_flag = '0'
      AND comp_id = 2056556421857497090
      AND c.sign_date &gt;=DATE_FORMAT( CURDATE(), '%Y-%m-01' )
      AND c.sign_date &lt; DATE_FORMAT( DATE_ADD( CURDATE(), INTERVAL 1 MONTH ), '%Y-%m-01' )) tfby,
      (
      SELECT
      sum( c.amount )
      FROM
      contract c
      WHERE
      c.del_flag = '0'
      AND comp_id = 2056556421857497090
      AND c.sign_date &gt;=DATE_FORMAT( CURDATE(), '%Y-01-01' )
      AND c.sign_date &lt; DATE_FORMAT( DATE_ADD( CURDATE(), INTERVAL 1 YEAR ), '%Y-01-01' )) tfbn,
      (
      SELECT
      sum( c.amount )
      FROM
      contract c
      WHERE
      c.del_flag = '0'
      AND comp_id = 2056556535640576002
      AND c.sign_date &gt;=CURDATE()
      AND c.sign_date &lt; DATE_ADD( CURDATE(), INTERVAL 1 DAY )) ymjbr,
      (
      SELECT
      sum( c.amount )
      FROM
      contract c
      WHERE
      c.del_flag = '0'
      AND comp_id = 2056556535640576002
      AND c.sign_date &gt;=DATE_FORMAT( CURDATE(), '%Y-%m-01' )
      AND c.sign_date &lt; DATE_FORMAT( DATE_ADD( CURDATE(), INTERVAL 1 MONTH ), '%Y-%m-01' )) ymjby,
      (
      SELECT
      sum( c.amount )
      FROM
      contract c
      WHERE
      c.del_flag = '0'
      AND comp_id = 2056556535640576002
      AND c.sign_date &gt;=DATE_FORMAT( CURDATE(), '%Y-01-01' )
      AND c.sign_date &lt; DATE_FORMAT( DATE_ADD( CURDATE(), INTERVAL 1 YEAR ), '%Y-01-01' )) ymjbn
   </select>
    <select id="homeZgs" resultType="com.by4cloud.platformx.business.vo.HomeZgsVo">
      SELECT
      (
      SELECT
      sum(c.amount)
      FROM
      contract c,
      business_customer bc
      WHERE
      c.del_flag = '0'
      AND bc.del_flag = '0'
      AND bc.id = c.party_a_id
      AND bc.area_id = '2'
      AND c.comp_id = #{compId}
      AND c.sign_date &gt;= CURDATE()
      AND c.sign_date &lt; DATE_ADD( CURDATE(), INTERVAL 1 DAY )) hbbr,
      (
      SELECT
      sum(c.amount)
      FROM
      contract c,
      business_customer bc
      WHERE
      c.del_flag = '0'
      AND bc.del_flag = '0'
      AND bc.id = c.party_a_id
      AND bc.area_id = '2'
        AND c.comp_id = #{compId}
      AND c.sign_date &gt;= DATE_FORMAT( CURDATE(), '%Y-%m-01' )
      AND c.sign_date &lt; DATE_FORMAT( DATE_ADD( CURDATE(), INTERVAL 1 MONTH ), '%Y-%m-01' )) hbby,
      (
      SELECT
      sum(c.amount)
      FROM
      contract c,
      business_customer bc
      WHERE
      c.del_flag = '0'
      AND bc.del_flag = '0'
      AND bc.id = c.party_a_id
      AND bc.area_id = '2'
        AND c.comp_id = #{compId}
      AND c.sign_date &gt;= DATE_FORMAT( CURDATE(), '%Y-01-01' )
      AND c.sign_date &lt; DATE_FORMAT( DATE_ADD( CURDATE(), INTERVAL 1 YEAR ), '%Y-01-01' )) hbbn,
      (
      SELECT
      sum(c.amount)
      FROM
      contract c,
      business_customer bc
      WHERE
      c.del_flag = '0'
      AND bc.del_flag = '0'
      AND bc.id = c.party_a_id
      AND bc.area_id = '6'
        AND c.comp_id = #{compId}
      AND c.sign_date &gt;= CURDATE()
      AND c.sign_date &lt; DATE_ADD( CURDATE(), INTERVAL 1 DAY )) xbbr,
      (
      SELECT
      sum(c.amount)
      FROM
      contract c,
      business_customer bc
      WHERE
      c.del_flag = '0'
      AND bc.del_flag = '0'
      AND bc.id = c.party_a_id
      AND bc.area_id = '6'
        AND c.comp_id = #{compId}
      AND c.sign_date &gt;= DATE_FORMAT( CURDATE(), '%Y-%m-01' )
      AND c.sign_date &lt; DATE_FORMAT( DATE_ADD( CURDATE(), INTERVAL 1 MONTH ), '%Y-%m-01' )) xbby,
      (
      SELECT
      sum(c.amount)
      FROM
      contract c,
      business_customer bc
      WHERE
      c.del_flag = '0'
      AND bc.del_flag = '0'
      AND bc.id = c.party_a_id
      AND bc.area_id = '6'
        AND c.comp_id = #{compId}
      AND c.sign_date &gt;= DATE_FORMAT( CURDATE(), '%Y-01-01' )
      AND c.sign_date &lt; DATE_FORMAT( DATE_ADD( CURDATE(), INTERVAL 1 YEAR ), '%Y-01-01' )) xbbn,
      (
      SELECT
      sum(c.amount)
      FROM
      contract c,
      business_customer bc
      WHERE
      c.del_flag = '0'
      AND bc.del_flag = '0'
      AND bc.id = c.party_a_id
      AND bc.area_id = '1'
        AND c.comp_id = #{compId}
      AND c.sign_date &gt;= CURDATE()
      AND c.sign_date &lt; DATE_ADD( CURDATE(), INTERVAL 1 DAY )) dbbr,
      (
      SELECT
      sum(c.amount)
      FROM
      contract c,
      business_customer bc
      WHERE
      c.del_flag = '0'
      AND bc.del_flag = '0'
      AND bc.id = c.party_a_id
      AND bc.area_id = '1'
        AND c.comp_id = #{compId}
      AND c.sign_date &gt;= DATE_FORMAT( CURDATE(), '%Y-%m-01' )
      AND c.sign_date &lt; DATE_FORMAT( DATE_ADD( CURDATE(), INTERVAL 1 MONTH ), '%Y-%m-01' )) dbby,
      (
      SELECT
      sum(c.amount)
      FROM
      contract c,
      business_customer bc
      WHERE
      c.del_flag = '0'
      AND bc.del_flag = '0'
      AND bc.id = c.party_a_id
      AND bc.area_id = '1'
        AND c.comp_id = #{compId}
      AND c.sign_date &gt;= DATE_FORMAT( CURDATE(), '%Y-01-01' )
      AND c.sign_date &lt; DATE_FORMAT( DATE_ADD( CURDATE(), INTERVAL 1 YEAR ), '%Y-01-01' )) dbbn,
      (
         SELECT
            sum(c.amount)
         FROM
            contract c,
            business_customer bc
         WHERE
            c.del_flag = '0'
           AND bc.del_flag = '0'
           AND bc.id = c.party_a_id
           AND bc.area_id = '5'
           AND c.comp_id = #{compId}
           AND c.sign_date &gt;= CURDATE()
           AND c.sign_date &lt; DATE_ADD( CURDATE(), INTERVAL 1 DAY )) xnbr,
      (
         SELECT
            sum(c.amount)
         FROM
            contract c,
            business_customer bc
         WHERE
            c.del_flag = '0'
           AND bc.del_flag = '0'
           AND bc.id = c.party_a_id
           AND bc.area_id = '5'
           AND c.comp_id = #{compId}
           AND c.sign_date &gt;= DATE_FORMAT( CURDATE(), '%Y-%m-01' )
           AND c.sign_date &lt; DATE_FORMAT( DATE_ADD( CURDATE(), INTERVAL 1 MONTH ), '%Y-%m-01' )) xnby,
      (
         SELECT
            sum(c.amount)
         FROM
            contract c,
            business_customer bc
         WHERE
            c.del_flag = '0'
           AND bc.del_flag = '0'
           AND bc.id = c.party_a_id
           AND bc.area_id = '5'
           AND c.comp_id = #{compId}
           AND c.sign_date &gt;= DATE_FORMAT( CURDATE(), '%Y-01-01' )
           AND c.sign_date &lt; DATE_FORMAT( DATE_ADD( CURDATE(), INTERVAL 1 YEAR ), '%Y-01-01' )) xnbn,
      (
         SELECT
            sum(c.amount)
         FROM
            contract c,
            business_customer bc
         WHERE
            c.del_flag = '0'
           AND bc.del_flag = '0'
           AND bc.id = c.party_a_id
           AND bc.area_id = '4'
           AND c.comp_id = #{compId}
           AND c.sign_date &gt;= CURDATE()
           AND c.sign_date &lt; DATE_ADD( CURDATE(), INTERVAL 1 DAY )) znbr,
      (
         SELECT
            sum(c.amount)
         FROM
            contract c,
            business_customer bc
         WHERE
            c.del_flag = '0'
           AND bc.del_flag = '0'
           AND bc.id = c.party_a_id
           AND bc.area_id = '4'
           AND c.comp_id = #{compId}
           AND c.sign_date &gt;= DATE_FORMAT( CURDATE(), '%Y-%m-01' )
           AND c.sign_date &lt; DATE_FORMAT( DATE_ADD( CURDATE(), INTERVAL 1 MONTH ), '%Y-%m-01' )) znby,
      (
         SELECT
            sum(c.amount)
         FROM
            contract c,
            business_customer bc
         WHERE
            c.del_flag = '0'
           AND bc.del_flag = '0'
           AND bc.id = c.party_a_id
           AND bc.area_id = '4'
           AND c.comp_id = #{compId}
           AND c.sign_date &gt;= DATE_FORMAT( CURDATE(), '%Y-01-01' )
           AND c.sign_date &lt; DATE_FORMAT( DATE_ADD( CURDATE(), INTERVAL 1 YEAR ), '%Y-01-01' )) znbn,
      (
         SELECT
            sum(c.amount)
         FROM
            contract c,
            business_customer bc
         WHERE
            c.del_flag = '0'
           AND bc.del_flag = '0'
           AND bc.id = c.party_a_id
           AND bc.area_id = '3'
           AND c.comp_id = #{compId}
           AND c.sign_date &gt;= CURDATE()
           AND c.sign_date &lt; DATE_ADD( CURDATE(), INTERVAL 1 DAY )) hdbr,
      (
         SELECT
            sum(c.amount)
         FROM
            contract c,
            business_customer bc
         WHERE
            c.del_flag = '0'
           AND bc.del_flag = '0'
           AND bc.id = c.party_a_id
           AND bc.area_id = '3'
           AND c.comp_id = #{compId}
           AND c.sign_date &gt;= DATE_FORMAT( CURDATE(), '%Y-%m-01' )
           AND c.sign_date &lt; DATE_FORMAT( DATE_ADD( CURDATE(), INTERVAL 1 MONTH ), '%Y-%m-01' )) hdby,
      (
         SELECT
            sum(c.amount)
         FROM
            contract c,
            business_customer bc
         WHERE
            c.del_flag = '0'
           AND bc.del_flag = '0'
           AND bc.id = c.party_a_id
           AND bc.area_id = '3'
           AND c.comp_id = #{compId}
           AND c.sign_date &gt;= DATE_FORMAT( CURDATE(), '%Y-01-01' )
           AND c.sign_date &lt; DATE_FORMAT( DATE_ADD( CURDATE(), INTERVAL 1 YEAR ), '%Y-01-01' )) hdbn,
      (
      SELECT
      sum(c.amount)
      FROM
      contract c,
      business_customer bc
      WHERE
      c.del_flag = '0'
      AND bc.del_flag = '0'
      AND bc.id = c.party_a_id
      AND bc.export_service_attr = '2'
        AND c.comp_id = #{compId}
      AND c.sign_date &gt;= CURDATE()
      AND c.sign_date &lt; DATE_ADD( CURDATE(), INTERVAL 1 DAY )) hwbr,
      (
      SELECT
      sum(c.amount)
      FROM
      contract c,
      business_customer bc
      WHERE
      c.del_flag = '0'
      AND bc.del_flag = '0'
      AND bc.id = c.party_a_id
      AND bc.export_service_attr = '2'
        AND c.comp_id = #{compId}
      AND c.sign_date &gt;= DATE_FORMAT( CURDATE(), '%Y-%m-01' )
      AND c.sign_date &lt; DATE_FORMAT( DATE_ADD( CURDATE(), INTERVAL 1 MONTH ), '%Y-%m-01' )) hwby,
      (
      SELECT
      sum(c.amount)
      FROM
      contract c,
      business_customer bc
      WHERE
      c.del_flag = '0'
      AND bc.del_flag = '0'
      AND bc.id = c.party_a_id
      AND bc.export_service_attr = '2'
        AND c.comp_id = #{compId}
      AND c.sign_date &gt;= DATE_FORMAT( CURDATE(), '%Y-01-01' )
      AND c.sign_date &lt; DATE_FORMAT( DATE_ADD( CURDATE(), INTERVAL 1 YEAR ), '%Y-01-01' )) hwbn
   </select>
   <select id="fourAssociation" resultType="com.by4cloud.platformx.business.vo.FourAssociationPageVo">
      SELECT
         c.id,
         c.contract_no,
         c.sign_date,
          c.amount,
          c.paid_amount,
         c.billing_amout,
         c.comp_id
      FROM
         contract c
      where
         c.del_flag = '0'
      and c.contract_status = 2
      order by
         c.create_time
   </select>
</mapper>