<?xml version="1.0" encoding="UTF-8"?>
|
|
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
|
|
<mapper namespace="com.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,
|
contract_no,
|
contract_name,
|
party_a_id,
|
party_a,
|
party_b_id,
|
party_b,
|
amount,
|
currency,
|
contract_type,
|
supply_attribute,
|
contract_status,
|
contract_attribute,
|
sign_date,
|
effective_date,
|
delivery_cycle,
|
expiration_date,
|
attachment_url,
|
remark,
|
parent_id,
|
approve_time,
|
arrival_schedule_id,
|
accept_schedule_id,
|
erp_push_flag,
|
billing_status,
|
next_schedule_name,
|
template_id,
|
sales_model,
|
paid_amount,
|
create_by,
|
update_by,
|
create_time,
|
update_time,
|
del_flag,
|
comp_id,
|
(SELECT GROUP_CONCAT(DISTINCT t1.material_internal_name) from contract_subject_matter t1 WHERE t1.contract_id = t.id) productNames,
|
IFNULL( t.billing_amout, 0 ) billing_amout,
|
( SELECT IFNULL( sum( unit_price * delivered_quantity ), 0 ) FROM contract_subject_matter t1 WHERE t1.contract_id = t.id ) outBoundAmount,
|
((
|
SELECT
|
IFNULL( sum( unit_price * delivered_quantity ), 0 )
|
FROM
|
contract_subject_matter t1
|
WHERE
|
t1.contract_id = t.id
|
) - 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 )<(
|
SELECT
|
IFNULL( sum( unit_price * delivered_quantity ), 0 )
|
FROM
|
contract_subject_matter t1
|
WHERE
|
t1.contract_id = t.id
|
))=1
|
<if test="queryDTO.contractName !=null and queryDTO.contractName !=''">
|
and t.contract_name LIKE CONCAT('%', #{queryDTO.contractName}, '%')
|
</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 >= CURDATE()
|
AND t.payment_time < DATE_ADD( CURDATE(), INTERVAL 1 DAY )
|
</if>
|
<if test="queryDTO.queryType !=null and queryDTO.queryType !='' and queryDTO.queryType =='2'.toString()">
|
AND t.payment_time >= DATE_FORMAT( CURDATE(), '%Y-01-01' )
|
AND t.payment_time < 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 >= DATE_FORMAT( CURDATE(), '%Y-01-01' )
|
AND t.payment_time < 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 >= #{queryDTO.startTime}
|
AND t.payment_time <= #{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}, '%')
|
</if>
|
<choose>
|
<when test="queryDTO.sortFiled !=null and queryDTO.sortFiled !='' and queryDTO.sortFiled == 'sign_date'">
|
order by ${queryDTO.sortFiled}
|
</when>
|
<when test="queryDTO.sortFiled !=null and queryDTO.sortFiled !='' and queryDTO.sortFiled == 'creditAmount'">
|
order by ((
|
SELECT
|
IFNULL( sum( unit_price * delivered_quantity ), 0 )
|
FROM
|
contract_subject_matter t1
|
WHERE
|
t1.contract_id = t.id
|
) - IFNULL( t.billing_amout, 0 ))
|
</when>
|
<otherwise>
|
order by t.create_time
|
</otherwise>
|
</choose>
|
<choose>
|
<when test="queryDTO.sortMethod !=null and queryDTO.sortMethod !=''">
|
${queryDTO.sortMethod}
|
</when>
|
<otherwise>
|
desc
|
</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
|
compId,
|
SUM(CASE WHEN month_num = 1 THEN total_amount ELSE 0 END) AS 'srMonth1',
|
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 = 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 = 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 = 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 = 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 = 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 = 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 = 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 = 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 = 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 = 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 = 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(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 compId
|
|
</select>
|
<select id="contractIncomeAnalysisByComp"
|
resultType="com.by4cloud.platformx.business.vo.ContractIncomeAnalysisCompVo">
|
SELECT
|
months.yf,
|
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
|
'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_slip pc ON months.yf = CONCAT( MONTH ( pc.payment_time ), '月' )
|
AND pc.del_flag = '0'
|
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
|
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 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,
|
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.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,
|
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.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,
|
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.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,
|
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.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,
|
2
|
) AS tfzb
|
FROM
|
contract c
|
JOIN business_customer b ON c.party_a_id = b.id
|
WHERE
|
c.del_flag='0'
|
AND 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
|
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 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,
|
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 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,
|
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 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,
|
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 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,
|
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 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,
|
2
|
) AS tfzb
|
FROM
|
contract c
|
where
|
c.del_flag='0'
|
AND c.industry_code is not null
|
AND YEAR ( sign_date ) = #{queryDTO.year}
|
GROUP BY
|
c.industry_code
|
|
</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 c, business_customer bc
|
WHERE
|
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,
|
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.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,
|
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.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,
|
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.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,
|
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.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,
|
2
|
) AS tfzb
|
FROM
|
contract c
|
JOIN business_customer b ON c.party_a_id = b.id
|
WHERE
|
c.del_flag='0'
|
AND 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 c, business_customer bc
|
WHERE
|
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,
|
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.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,
|
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.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,
|
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.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,
|
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.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,
|
2
|
) AS tfzb
|
FROM
|
contract c
|
JOIN business_customer b ON c.party_a_id = b.id
|
WHERE
|
c.del_flag='0'
|
AND 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 ct
|
WHERE
|
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,
|
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 ct
|
WHERE
|
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,
|
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 ct
|
WHERE
|
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,
|
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 ct
|
WHERE
|
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,
|
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 ct
|
WHERE
|
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,
|
2
|
) AS tfzb
|
FROM
|
contract c
|
WHERE
|
c.del_flag = '0'
|
and 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
|
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
|
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 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
|
LEFT JOIN (
|
SELECT
|
MONTH(sign_date) AS month_num,
|
SUM(amount) AS total_amount
|
FROM contract
|
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 >= CURDATE()
|
AND c.sign_date < DATE_ADD( CURDATE(), INTERVAL 1 DAY )
|
</if>
|
<if test="queryDTO.queryType !=null and queryDTO.queryType !='' and queryDTO.queryType =='2'.toString()">
|
AND c.sign_date >= DATE_FORMAT( CURDATE(), '%Y-01-01' )
|
AND c.sign_date < 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 >= DATE_FORMAT( CURDATE(), '%Y-01-01' )
|
AND c.sign_date < 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 >= #{queryDTO.startTime}
|
AND c.sign_date <= #{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 >= CURDATE()
|
AND c.sign_date < 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 >= DATE_FORMAT( CURDATE(), '%Y-%m-01' )
|
AND c.sign_date < 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 >= DATE_FORMAT( CURDATE(), '%Y-01-01' )
|
AND c.sign_date < 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 >= CURDATE()
|
AND c.sign_date < 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 >=DATE_FORMAT( CURDATE(), '%Y-%m-01' )
|
AND c.sign_date < 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 >=DATE_FORMAT( CURDATE(), '%Y-01-01' )
|
AND c.sign_date < 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 >=CURDATE()
|
AND c.sign_date < 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 >=DATE_FORMAT( CURDATE(), '%Y-%m-01' )
|
AND c.sign_date < 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 >=DATE_FORMAT( CURDATE(), '%Y-01-01' )
|
AND c.sign_date < 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 >=CURDATE()
|
AND c.sign_date < 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 >=DATE_FORMAT( CURDATE(), '%Y-%m-01' )
|
AND c.sign_date < 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 >=DATE_FORMAT( CURDATE(), '%Y-01-01' )
|
AND c.sign_date < 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 >=CURDATE()
|
AND c.sign_date < 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 >=DATE_FORMAT( CURDATE(), '%Y-%m-01' )
|
AND c.sign_date < 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 >=DATE_FORMAT( CURDATE(), '%Y-01-01' )
|
AND c.sign_date < 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 >= CURDATE()
|
AND c.sign_date < 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 >= DATE_FORMAT( CURDATE(), '%Y-%m-01' )
|
AND c.sign_date < 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 >= DATE_FORMAT( CURDATE(), '%Y-01-01' )
|
AND c.sign_date < 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 >= CURDATE()
|
AND c.sign_date < 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 >= DATE_FORMAT( CURDATE(), '%Y-%m-01' )
|
AND c.sign_date < 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 >= DATE_FORMAT( CURDATE(), '%Y-01-01' )
|
AND c.sign_date < 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 >= CURDATE()
|
AND c.sign_date < 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 >= DATE_FORMAT( CURDATE(), '%Y-%m-01' )
|
AND c.sign_date < 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 >= DATE_FORMAT( CURDATE(), '%Y-01-01' )
|
AND c.sign_date < 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 >= CURDATE()
|
AND c.sign_date < 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 >= DATE_FORMAT( CURDATE(), '%Y-%m-01' )
|
AND c.sign_date < 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 >= DATE_FORMAT( CURDATE(), '%Y-01-01' )
|
AND c.sign_date < 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 >= CURDATE()
|
AND c.sign_date < 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 >= DATE_FORMAT( CURDATE(), '%Y-%m-01' )
|
AND c.sign_date < 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 >= DATE_FORMAT( CURDATE(), '%Y-01-01' )
|
AND c.sign_date < 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 >= CURDATE()
|
AND c.sign_date < 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 >= DATE_FORMAT( CURDATE(), '%Y-%m-01' )
|
AND c.sign_date < 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 >= DATE_FORMAT( CURDATE(), '%Y-01-01' )
|
AND c.sign_date < 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 >= CURDATE()
|
AND c.sign_date < 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 >= DATE_FORMAT( CURDATE(), '%Y-%m-01' )
|
AND c.sign_date < 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 >= DATE_FORMAT( CURDATE(), '%Y-01-01' )
|
AND c.sign_date < 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>
|