order by create_time desc
SELECT COUNT(1) FROM ( ) AS C
SELECT
tt1.actually_date,
tt1.company_id as companyId,
tt1.name as companyName,
tt1.task_type_id as taskTypeId,
tt1.typeName,
tt1.contract_id as contractId,
tt1.contract_no as contractNo,
date_format(tt1.daozhangriqi, '%Y-%m-%d') as receiptDate,
tt1.tishoukuanjine as withdrawalAmount,
tt1.hetongleixing as contractType,
tt1.shenqingren as applierName,
tt1.shifouweixiangmu as isProject,
tt1.fuwujine as detailAllAmount,
tt1.shishoujine as reallyDetailAmount,
tt1.daishoukuanjine as waitDetailAmount,
tt1.shenheshijian as examineTime,
tt1.verifyName,
tt1.actually_date,
tt2.zhichu as outAmount
FROM
(
SELECT
c.company_id,
GROUP_CONCAT( DISTINCT date_format( c.actually_date, '%Y-%m-%d' )) AS actually_date,
com.NAME,
detail.task_type_id,
GROUP_CONCAT( DISTINCT u2.nick_name ) AS verifyName,
type.`name` as typeName,
c.contract_id,
input.contract_no,
GROUP_CONCAT( DISTINCT arrive_date ) AS daozhangriqi,
SUM( detail.arrive_amount ) AS tishoukuanjine,
GROUP_CONCAT( DISTINCT u.nick_name ) AS shenqingren,
CASE
WHEN input.contract_type = 1 THEN
"续签" ELSE "新签"
END AS hetongleixing,
CASE
WHEN c.is_project = 0 THEN '项目'
WHEN c.is_project = 1 THEN '非项目'
ELSE ''
END AS shifouweixiangmu,
detail.amount AS fuwujine,
SUM( CASE WHEN c.STATUS = 1 THEN detail.arrive_amount ELSE 0 END ) AS shishoujine,
(
detail.amount - SUM( CASE WHEN c.STATUS = 1 THEN detail.arrive_amount ELSE 0 END )) AS
daishoukuanjine,
GROUP_CONCAT(
IF
( c.STATUS = 1, c.verify_date, NULL )) AS shenheshijian
FROM
biz_collection c
LEFT JOIN biz_collection_detail detail ON c.id = detail.collection_id
LEFT JOIN biz_company com ON com.id = c.company_id
LEFT JOIN biz_archive_input input ON input.id = c.contract_id
LEFT JOIN sys_user u ON u.user_id = c.applier_id
LEFT JOIN biz_task_type type on type.id = detail.task_type_id
LEFT JOIN sys_user u2 on u2.user_id = c.verify_id
WHERE
c.deleted = 0
AND c.STATUS != 2
AND com.tenant_id = #{conditions.tenantId}
AND com.NAME LIKE CONCAT('%',#{conditions.companyName},'%')
AND u2.nick_name LIKE CONCAT('%',#{conditions.examineName},'%')
AND input.contract_no LIKE CONCAT('%',#{conditions.contractNo},'%')
AND detail.task_type_id IN
#{item}
AND (
DATE_FORMAT(c.arrive_date,'%Y-%m-%d') >= #{conditions.receiptDateFilter[0]}
AND
DATE_FORMAT(c.arrive_date,'%Y-%m-%d') <= #{conditions.receiptDateFilter[1]}
)
AND(
DATE_FORMAT(c.verify_date,'%Y-%m-%d') >= #{conditions.examineTimeFilter[0]}
AND
DATE_FORMAT(c.verify_date,'%Y-%m-%d') <= #{conditions.examineTimeFilter[1]}
)
AND(
DATE_FORMAT(c.actually_date,'%Y-%m-%d') >= #{conditions.actuallyDateFilter[0]}
AND
DATE_FORMAT(c.actually_date,'%Y-%m-%d') <= #{conditions.actuallyDateFilter[1]}
)
AND c.is_project = #{conditions.isProject}
AND c.is_new = #{conditions.isNew}
GROUP BY
c.company_id,
detail.task_type_id,
c.contract_id
order by
c.create_time desc
) tt1
LEFT JOIN (
SELECT
t1.company_id,
t3.task_type_id,
t1.contract_id,
SUM( CASE WHEN t1.payment_status = 1 THEN t3.payment_amount ELSE 0 END ) zhichu
FROM
biz_payment t1
LEFT JOIN biz_archive_input t2 ON t1.contract_id = t2.id
LEFT JOIN biz_payment_detail t3 ON t1.id = t3.payment_id
left join biz_company com on com.id = t1.company_id
left join biz_archive_input input on input.id = t1.contract_id
WHERE
t1.deleted = 0
AND t1.payment_status = 1
AND t1.verify_status = 3
AND com.tenant_id = #{conditions.tenantId}
AND com.NAME LIKE CONCAT('%',#{conditions.companyName},'%')
AND input.contract_no LIKE CONCAT('%',#{conditions.contractNo},'%')
AND t3.task_type_id IN
#{item}
AND (
DATE_FORMAT(t1.verify_date,'%Y-%m-%d') >= #{conditions.examineTimeFilter[0]}
AND
DATE_FORMAT(t1.verify_date,'%Y-%m-%d') <= #{conditions.examineTimeFilter[1]}
)
GROUP BY
t1.company_id,
t3.task_type_id,
t1.contract_id
) tt2 ON tt1.company_id = tt2.company_id
AND tt1.task_type_id = tt2.task_type_id
AND tt1.contract_id = tt2.contract_id
SELECT
t3.NAME AS companyName,
t4.`name` AS taskTypeName,
t5.contract_no AS contractNo,
t1.arrive_date,
t6.nick_name,
CASE
WHEN t5.contract_type = 1 THEN "续签" ELSE "新签"
END AS contractType,
CASE
WHEN t1.is_project = 0 THEN '项目'
WHEN t1.is_project = 1 THEN '非项目'
ELSE ''
END AS isProject,
t2.amount AS detailAllAmount,
CASE WHEN t1.STATUS = 1 THEN t2.arrive_amount ELSE 0 END AS reallyDetailAmount,
t1.verify_date as examineTime,
t1.applier_id,
t6.nick_name AS applierName,
t2.task_type_id,
t7.name as typeName,
date_format( t1.arrive_date, '%Y-%m-%d') as receiptDate
FROM
biz_collection t1 right join biz_collection_detail t2 ON t1.id = t2.collection_id
LEFT JOIN biz_company t3 ON t3.id = t1.company_id
LEFT JOIN biz_task_type t4 ON t4.id = t2.task_type_id
LEFT JOIN biz_archive_input t5 ON t5.id = t1.contract_id
LEFT JOIN sys_user t6 ON t6.user_id = t1.applier_id
LEFT JOIN biz_task_type t7 on t7.id = t2.task_type_id
WHERE
t1.contract_id = #{conditions.contractId}
AND
t2.task_type_id = #{conditions.taskTypeIds[0]}
AND (
DATE_FORMAT(c.arrive_date,'%Y-%m-%d') >= #{conditions.receiptDateFilter[0]}
AND
DATE_FORMAT(c.arrive_date,'%Y-%m-%d') <= #{conditions.receiptDateFilter[1]}
)
AND(
DATE_FORMAT(c.verify_date,'%Y-%m-%d') >= #{conditions.examineTimeFilter[0]}
AND
DATE_FORMAT(c.verify_date,'%Y-%m-%d') <= #{conditions.examineTimeFilter[1]}
)
select tt1.*, tt2.zongjine as withdrawalAmount
from (SELECT t3.NAME AS companyName,
t4.`name` AS taskTypeName,
t5.contract_no AS contractNo,
t6.nick_name,
t2.amount AS detailAllAmount,
t2.payment_amount AS reallyDetailAmount,
t1.verify_date AS examineTime,
t2.task_type_id,
t1.company_id,
t1.contract_id,
t1.applier_id,
t7.name as typeName,
t6.nick_name AS applierName
FROM biz_payment t1
RIGHT JOIN biz_payment_detail t2 ON t1.id = t2.payment_id
LEFT JOIN biz_company t3 ON t3.id = t1.company_id
LEFT JOIN biz_task_type t4 ON t4.id = t2.task_type_id
LEFT JOIN biz_archive_input t5 ON t5.id = t1.contract_id
LEFT JOIN sys_user t6 ON t6.user_id = t1.applier_id
LEFT JOIN biz_task_type t7 on t7.id = t2.task_type_id
WHERE t1.contract_id = #{conditions.contractId}
AND t2.task_type_id = #{conditions.taskTypeIds[0]}
AND (
DATE_FORMAT(t1.verify_date,'%Y-%m-%d') >= #{conditions.examineTimeFilter[0]}
AND
DATE_FORMAT(t1.verify_date,'%Y-%m-%d') <= #{conditions.examineTimeFilter[1]}
)
ORDER BY t1.verify_date DESC
) tt1
LEFT JOIN
(SELECT p.company_id,
de.task_type_id,
p.contract_id,
sum(de.payment_amount) as zongjine
FROM biz_payment p
right join biz_payment_detail de ON p.id = de.payment_id
WHERE p.verify_status != 4
AND (
DATE_FORMAT(t1.verify_date,'%Y-%m-%d') >= #{conditions.examineTimeFilter[0]}
AND
DATE_FORMAT(t1.verify_date,'%Y-%m-%d') <= #{conditions.examineTimeFilter[1]}
)
GROUP BY
p.company_id,
de.task_type_id,
p.contract_id) tt2 on tt1.task_type_id = tt2.task_type_id and tt1.company_id = tt2.company_id and
tt1.contract_id = tt2.contract_id
SELECT a.id, a.flow_no, a.subsidiary_id, a.subsidiary, a.subsidiary_name, a.subsidiary_bank_account, a.form_date
, a.subsidiary_bank_name, a.company_id, b.name as company_name
, a.is_new, a.is_project, a.project_name, a.project_no, a.project_main_name
, a.amount
, a.verify_status
, a.arrive_amount
, a.arrive_date
, a.arrive_time, a.status, a.applier_id, a.verify_date, a.verify_comment
, a.arrive_status, a.apply_name
, a.appy_account, a.create_time, a.creator_id, a.update_time, a.updater_id
, a.deleted, a.version, a.remark
, a.actually_date
, b.name as company_name, t5.nick_name as applier_name
, ai.contract_no
, (select ifnull(sum(amount), 0) from biz_collection col where col.contract_id = a.contract_id and col.status =
1) payment_amount
FROM biz_collection a left join biz_company b on b.id = a.company_id
left join biz_archive_input ai on ai.id = a.contract_id
left join sys_user t5 on t5.user_id = a.applier_id
a.deleted = 0 AND
a.id = #{id} AND
a.tenant_id = #{tenantId} AND
a.contract_id = #{contractId} AND
ai.contract_no LIKE CONCAT('%',#{contractNo},'%') AND
a.flow_no LIKE CONCAT('%',#{flowNo},'%') AND
a.subsidiary_id = #{subsidiaryId} AND
a.subsidiary = #{subsidiary} AND
a.subsidiary_name = #{subsidiaryName} AND
a.subsidiary_bank_account = #{subsidiaryBankAccount} AND
a.subsidiary_bank_name = #{subsidiaryBankName} AND
a.company_id = #{companyId} AND
(LOCATE(#{companyName}, a.company_name) or LOCATE(#{companyName}, b.name)) AND
LOCATE(#{applierName}, t5.nick_name) AND
a.amount = #{amount} AND
a.arrive_date = #{arriveDate} AND
DATE_FORMAT(a.actually_date, '%Y-%m-%d') = #{actuallyDate} AND
(
DATE_FORMAT(a.arrive_date,'%Y-%m-%d') >= #{startDate}
AND
DATE_FORMAT(a.arrive_date,'%Y-%m-%d') <= #{endDate}
) AND
(
DATE_FORMAT(a.verify_date,'%Y-%m-%d') >= #{dateFilter[0]}
AND
DATE_FORMAT(a.verify_date,'%Y-%m-%d') <= #{dateFilter[1]}
) AND
a.arrive_time = #{arriveTime} AND
a.status = #{status} AND
a.arrive_status = #{arriveStatus} AND
a.apply_name = #{applyName} AND
a.appy_account = #{appyAccount} AND
a.verify_date = #{verifyDate}
a.remark = #{remark} AND