id,
created,
deleted,
modified,
real_fund_id, production_fund_id, claim_user_id, claim_datetime, claim_amount
SELECT
fc.*,
f.oId,
f.pId,
f.production_no as reportNo,
f.order_id,
f.should_amount as orderShouldAmount,
m.financial,
m.members,
m.bailor,
m.NAME AS orderName,
mp.NAME,
mp.if_save_file,
mp.evaluate_amount,
mp.production as productionType,
u.NAME AS clientManager,
u1.NAME AS principal,
cc1.NAME AS clientName,
cc2.NAME AS clientSubName,
frf.pay_datetime,
frf.payer,
u2.NAME AS claimUser,
d.NAME AS evaluateDepartment,
(
SELECT
GROUP_CONCAT( NAME SEPARATOR '、' )
FROM
department
WHERE
id IN (
SELECT
department_id
FROM
post
WHERE
id IN ( SELECT post_id FROM user_post WHERE user_id = u.id ))) AS marketDepartment
FROM
(
SELECT
p.order_fund_id oId,
p.id AS pId,
p.business_id,
o.order_id,
p.production_no,
o.should_amount
FROM
production_fund p left join (select id,order_id,should_amount from order_fund where business_type='MAJOR_BUSINESS' and deleted = 0) o on o.id = p.order_fund_id
WHERE
p.business_type = 'MAJOR_BUSINESS'
AND p.deleted = 0
) f
INNER JOIN finance_claim fc ON
( fc.order_fund_id = f.oId and fc.production_fund_id = f.pId)
LEFT JOIN major m ON f.business_id = m.id
LEFT JOIN user u ON u.id = m.client_manager_id
LEFT JOIN user u1 ON u1.id = m.principal_id
LEFT JOIN department d ON d.id = m.department_id
LEFT JOIN customer_company cc1 ON cc1.id = m.clientele_id
LEFT JOIN customer_company cc2 ON cc2.id = m.clientele_sub_id
LEFT JOIN customer_linkman cl1 ON cl1.id = m.clientele_contact_id
LEFT JOIN finance_real_fund frf ON frf.id = fc.real_fund_id
LEFT JOIN ( SELECT major_id, report_no,production, evaluate_amount, if_save_file, NAME FROM major_production WHERE deleted = 0 ) mp ON ( mp.major_id = m.id AND mp.report_no = f.production_no )
LEFT JOIN user u2 ON u2.id = fc.claim_user_id
where m.deleted = 0
and (
f.order_id like concat ('%',#{keyword},'%')
or f.production_no like concat ('%',#{keyword},'%')
or u1.name like concat ('%',#{keyword},'%')
or fc.claim_amount = #{keyword}
or u2.NAME like concat ('%',#{keyword},'%')
)
and fc.claim_datetime >= #{majorStat.startDate}
and fc.claim_datetime <= #{majorStat.endDate}
and frf.pay_datetime >= #{majorStat.payStartDate}
and frf.pay_datetime <= #{majorStat.payEndDate}
and mp.if_save_file = #{majorStat.ifSaveFile}
and m.financial = #{majorStat.financial}
SELECT
claim.real_fund_id,
claim.order_fund_id,
claim.production_fund_id,
claim.id,
prod.production_no AS reportNo,
assets.order_id AS orderId,
assets.`name` AS orderName,
(
SELECT
GROUP_CONCAT( department.name SEPARATOR '、' )
FROM
department,
post,
user_post,
`user`
WHERE
`user`.id = user_post.user_id
AND user_post.post_id = post.id
AND post.department_id = department.id
AND `user`.id = assets.client_manager_id
AND user_post.deleted = 0
) AS marketDepartment,
( SELECT department.name FROM department WHERE department.id = assets.department_id ) AS evaluateDepartment,
managerUser.name AS clientManagerName,
principalUser.name AS principalName,
realFund.payer AS payer,
realFund.pay_datetime AS payDateTime,
order_fund.should_amount AS orderShouldAmount,
prodFund.production_should_amount AS prodShouldAmount,
claim.claim_amount AS claimAmount,
claimUser.name AS claimUser,
claim.claim_datetime AS claimDatetime,
assets.assets_business_gener AS assetsBusinessGener,
( SELECT customer_company.name FROM customer_company WHERE customer_company.id = assets.clientele_id ) AS clientName,
( SELECT customer_company.name FROM customer_company WHERE customer_company.id = assets.clientele_sub_id ) AS clientSubName,
assets.bailor AS bailor,
prod.evaluate_amount,
(
CASE
WHEN prod.production_type = 'REPORT' THEN '评估报告'
WHEN prod.production_type = 'CONSULT' THEN '咨询报告'
WHEN prod.production_type = 'LETTER' THEN '意见函'
ELSE '其他'
END
) AS productionType,
prod.if_save_file AS ifSaveFile
FROM
finance_claim AS claim
LEFT JOIN finance_real_fund AS realFund ON realFund.id = claim.real_fund_id
LEFT JOIN order_fund ON order_fund.id = claim.order_fund_id
LEFT JOIN production_fund AS prodFund ON prodFund.id = claim.production_fund_id
LEFT JOIN assets ON assets.id = order_fund.business_id
AND assets.order_id = order_fund.order_id
LEFT JOIN `user` AS managerUser ON managerUser.id = assets.client_manager_id
LEFT JOIN `user` AS principalUser ON principalUser.id = assets.principal_id
LEFT JOIN `user` AS claimUser ON claimUser.id = claim.claim_user_id
LEFT JOIN assets_production AS prod ON assets.id = prod.business_id AND prodFund.production_no = prod.production_no
WHERE order_fund.business_type = 'ASSET_BUSINESS'
and (
assets.order_id like concat ('%',#{keyword},'%')
or prod.production_no like concat ('%',#{keyword},'%')
)
AND assets.principal_id = #{dto.principalId}
AND claim.claim_user_id = #{dto.claimUserId}
AND claim.claim_amount = #{dto.claimAmount}
AND assets.assets_business_gener = #{dto.assetsBusinessGener}
AND prod.if_save_file = #{dto.ifSaveFile}
AND (claim.claim_datetime BETWEEN #{dto.startTime} AND #{dto.endTime})
AND (realFund.pay_datetime BETWEEN #{dto.payStartTime} AND #{dto.payEndTime})
ORDER BY claim.claim_datetime DESC
SELECT
fc.*,
f.should_amount,
p.order_id,
p.location,
u.NAME AS clientManager,
cc1.NAME AS clientName,
cc2.NAME AS clientSubName,
frf.pay_datetime,
u2.NAME AS claimUser,
p.bailorA,
( pt.amount / 10000 ) AS amount,
p.if_save_file,
(
SELECT
GROUP_CONCAT( NAME SEPARATOR '、' )
FROM
department
WHERE
id IN (
SELECT
department_id
FROM
post
WHERE
id IN ( SELECT post_id FROM user_post WHERE user_id = u.id ))) AS marketDepartment
FROM
(
SELECT
orderFund.id AS oId,
orderFund.business_id,
orderFund.order_id,
orderFund.should_amount
FROM
order_fund orderFund
WHERE
orderFund.business_type = 'PERSONAL_BUSINESS'
AND orderFund.deleted = 0
) f
INNER JOIN finance_claim fc ON fc.order_fund_id = f.oId
LEFT JOIN personal p ON f.business_id = p.id
LEFT JOIN user u ON u.id = p.client_manager_id
LEFT JOIN customer_company cc1 ON cc1.id = p.clientele_id
LEFT JOIN customer_company cc2 ON cc2.id = p.clientele_sub_id
LEFT JOIN finance_real_fund frf ON frf.id = fc.real_fund_id
LEFT JOIN user u2 ON u2.id = fc.claim_user_id
LEFT JOIN personal_target pt ON pt.personal_id = p.id
WHERE
p.deleted = 0
AND p.order_id = #{dto.orderId}
AND u2.NAME like concat ('%',#{dto.claimUser},'%')
AND fc.claim_amount = #{dto.claimAmount}
AND p.if_save_file = #{dto.ifSaveFile}
AND (fc.claim_datetime BETWEEN #{dto.startTime} AND #{dto.endTime})
AND (frf.pay_datetime BETWEEN #{dto.payStartTime} AND #{dto.payEndTime})
ORDER BY
fc.claim_datetime DESC