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,
m.order_id,
f.shouldAmount 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 and deleted = 0 ))) AS marketDepartment
FROM
(select * from finance_claim where deleted = 0 and production_fund_id is not null
AND claim_datetime >= #{majorStat.startDate}
AND claim_datetime <= #{majorStat.endDate}
) fc
INNER JOIN (
SELECT
p.order_fund_id oId,
p.id AS pId,
p.business_id,
p.production_no,
p.production_should_amount AS shouldAmount
FROM
production_fund p
WHERE
p.business_type = 'MAJOR_BUSINESS'
AND p.deleted = 0
) f 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 finance_real_fund frf ON frf.id = fc.real_fund_id
LEFT JOIN (
SELECT
mpp.major_id,
mpp.report_no,
mpp.production,
mpp.evaluate_amount,
mpp.if_save_file,
mpp.NAME
FROM
major_production mpp
LEFT JOIN ( SELECT production_no, production_type, real_amount FROM production_fund WHERE business_type = 'MAJOR_BUSINESS' AND deleted = 0 ) ppf ON ( mpp.report_no = ppf.production_no AND mpp.production = ppf.production_type )
WHERE
ppf.real_amount IS NOT NULL
) 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
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
m.financial is not null
and (
m.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 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(DISTINCT 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,
assets.members
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 claim.deleted = 0
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})
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
(select * from finance_claim where deleted = 0
AND claim_datetime >= #{dto.startTime}
AND claim_datetime <= #{dto.endTime}
)
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 fc.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 (frf.pay_datetime BETWEEN #{dto.payStartTime} AND #{dto.payEndTime})
ORDER BY
fc.claim_datetime DESC
SELECT
fc.id,
frf.payer,
frf.amount,
frf.pay_datetime,
fc.claim_amount,
u.NAME AS creator,
frf.created,
frf.remark,
u1.name as claimUser,
fc.claim_datetime ,
( CASE off.business_type WHEN 'MAJOR_BUSINESS' THEN '大中型业务' WHEN 'PERSONAL_BUSINESS' THEN '个贷业务' WHEN 'ASSET_BUSINESS' THEN '资产业务' WHEN 'ITEM_BUSINESS' THEN '土规业务' ELSE '-' END ) AS businessType,
off.order_id,
u2.name AS clientManager
FROM
finance_claim fc
LEFT JOIN finance_real_fund frf ON frf.id = fc.real_fund_id
left join user u on u.id = frf.creator_id
left join user u1 on u1.id = fc.claim_user_id
left join order_fund off on off.id = fc.order_fund_id
LEFT JOIN user u2 ON u2.id = off.client_manager_id
where frf.deleted = 0 and fc.deleted = 0
and (
frf.payer like concat ('%',#{keyword},'%')
or frf.payer_bank like concat('%',#{keyword},'%')
or u.name like concat('%',#{keyword},'%')
or frf.payer_account like concat('%',#{keyword},'%')
or frf.amount like concat('%',#{keyword},'%')
or frf.remark like concat('%',#{keyword},'%')
or off.order_id = #{keyword}
)
and frf.pay_datetime >= #{vo.startDate}
and frf.pay_datetime <= #{vo.endDate}
and fc.claim_datetime >= #{vo.xStartDate}
and fc.claim_datetime <= #{vo.xEndDate}
and off.business_type = #{vo.businessType}
and fc.claim_user_id = #{vo.claimUserId}
and off.client_manager_id in
#{userId}
order by fc.claim_datetime DESC