id,
deleted,
modified,
created,
payer, payer_bank, payer_account, amount, pay_datetime, remark, creator_id
SELECT
frf.id,
frf.created,
frf.payer,
frf.payer_bank,
frf.payer_account,
frf.amount,
frf.pay_datetime,
frf.remark,
frf.creator_id,
u.name AS creator,
ifnull(t.ca,0) AS claimAmount,
( frf.amount - ifnull(t.ca,0) ) AS notClaimAmount
FROM
finance_real_fund frf
LEFT JOIN user u ON u.id = frf.creator_id
LEFT JOIN ( SELECT real_fund_id, sum(ifnull(claim_amount,0)) ca FROM finance_claim WHERE deleted = 0 GROUP BY real_fund_id ) t ON t.real_fund_id = frf.id
WHERE
frf.deleted = 0
and ifnull(t.ca,0) < frf.amount
and ifnull(t.ca,0) >= frf.amount
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},'%')
)
and frf.pay_datetime >= #{vo.startDate}
and frf.pay_datetime <= #{vo.endDate}
and frf.created >= #{vo.xStartDate}
and frf.created <= #{vo.xEndDate}
SELECT
#{userId} as userId,
frf.id,
frf.created,
frf.payer,
frf.payer_bank,
frf.payer_account,
frf.amount,
frf.pay_datetime,
frf.remark,
frf.creator_id,
u.name AS creator,
ifnull(t.ca,0) AS claimAmount,
( frf.amount - ifnull(t.ca,0) ) AS notClaimAmount
FROM
finance_real_fund frf
LEFT JOIN user u ON u.id = frf.creator_id
LEFT JOIN ( SELECT real_fund_id, sum(ifnull(claim_amount,0)) ca FROM finance_claim WHERE deleted = 0 GROUP BY real_fund_id ) t ON t.real_fund_id = frf.id
WHERE
frf.deleted = 0
and ifnull(t.ca,0) < frf.amount
and ifnull(t.ca,0) >= frf.amount
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},'%')
)
and frf.pay_datetime >= #{vo.startDate}
and frf.pay_datetime <= #{vo.endDate}
and frf.created >= #{vo.xStartDate}
and frf.created <= #{vo.xEndDate}
ORDER BY
ifnull(t.ca,0) ASC ,frf.created DESC
SELECT
DATEDIFF(
CURDATE(),
DATE( mp.repertory_out_time )) AS overdueDay,
pf.production,
m.allot_type,
m.order_id,
m.business_object_type,
u.NAME AS clientManager,
u1.NAME AS principal,
cc1.NAME AS clientName,
cc2.NAME AS clientSubName,
pf.production_should_amount as shouldAmount,
mp.*
FROM
( SELECT business_id, production_no,
( CASE production_type WHEN 'STATEMENT' THEN '意见书' WHEN 'REPORT' THEN '报告' WHEN 'LETTER' THEN '复评函' ELSE '' END ) production,
production_type
, production_should_amount, real_amount FROM production_fund WHERE business_type = 'MAJOR_BUSINESS'
AND deleted = 0 and production_should_amount is not null and production_should_amount!=0 and real_amount is null) pf
inner join
(
SELECT
id,
major_id,
report_no,
production as productionType,
NAME,
evaluate_amount,
repertory_out_time,
standard_amount
FROM
major_production mp
WHERE
deleted = 0
AND repertory_out_time IS NOT NULL
) mp
ON ( mp.major_id = pf.business_id AND mp.report_no = pf.production_no and mp.productionType = pf.production_type )
LEFT JOIN major m ON m.id = mp.major_id
LEFT JOIN user u ON u.id = m.client_manager_id
LEFT JOIN user u1 ON u1.id = m.principal_id
LEFT JOIN customer_company cc1 ON cc1.id = m.clientele_id
LEFT JOIN customer_company cc2 ON cc2.id = m.clientele_sub_id
AND DATEDIFF(CURDATE(),DATE( mp.repertory_out_time )) >= #{overdueVO.overdueMin}
AND DATEDIFF(CURDATE(),DATE( mp.repertory_out_time )) <= #{overdueVO.overdueMax}
and m.order_id = #{overdueVO.orderId}
and mp.report_no like concat ('%',#{overdueVO.reportNo},'%')
and u1.NAME like concat ('%',#{overdueVO.principal},'%')
and m.client_manager_id in
#{userId}
order by overdueDay ASC
SELECT
fc.id,
fc.claim_amount,
m.order_id,
mp.report_no,
fc.claim_datetime as claimDate,
mp.save_file_date,
IF
( fc.claim_datetime > mp.save_file_date, fc.claim_datetime, mp.save_file_date ) AS settleDate,
mp.name,
m.bailor,
mp.evaluate_amount,
u.name AS principal,
u1.name AS clientManager,
cc.name AS clientName,
cc1.name AS clientSubName,
d.name AS evaluateDepartmentName,
(
SELECT
GROUP_CONCAT( name )
FROM
department
WHERE
id IN (
SELECT
department_id
FROM
post
WHERE
id IN ( SELECT post_id FROM user_post WHERE user_id = m.client_manager_id ))) AS marketDepartmentName,
frf.pay_datetime
FROM
(
SELECT
id,
claim_amount,
order_fund_id,
production_fund_id,
claim_datetime,
real_fund_id
FROM
finance_claim
WHERE
deleted = 0
AND production_fund_id IS NOT NULL
) fc
INNER JOIN ( SELECT id, pay_datetime FROM finance_real_fund WHERE deleted = 0
AND pay_datetime >= #{settleVO.payStartDate}
AND pay_datetime <= #{settleVO.payEndDate}
) frf ON frf.id = fc.real_fund_id
INNER JOIN ( SELECT id, order_fund_id, business_id, production_no FROM production_fund WHERE business_type = 'MAJOR_BUSINESS' AND deleted = 0 ) pf ON ( pf.id = fc.production_fund_id AND pf.order_fund_id = fc.order_fund_id )
INNER JOIN (
SELECT
id,
major_id,
NAME,
report_no,
production,
evaluate_amount,
save_file_date,
fund.real_amount
FROM
major_production mpr
INNER JOIN ( SELECT production_no, real_amount, production_type FROM production_fund WHERE deleted = 0 AND business_type = 'MAJOR_BUSINESS' ) fund ON ( fund.production_no = mpr.report_no AND fund.production_type = mpr.production )
WHERE
fund.real_amount IS NOT NULL
AND mpr.save_file_date IS NOT NULL
) mp ON mp.report_no = pf.production_no
LEFT JOIN major m ON m.id = mp.major_id
LEFT JOIN user u ON u.id = m.principal_id
LEFT JOIN user u1 ON u1.id = m.client_manager_id
LEFT JOIN customer_company cc ON cc.id = m.clientele_id
LEFT JOIN customer_company cc1 ON cc1.id = m.clientele_sub_id
LEFT JOIN department d ON d.id = m.department_id
and (
mp.report_no like concat ('%',#{keyword},'%')
or fc.claim_amount =#{keyword}
or m.order_id like concat('%',#{keyword},'%')
or u.name like concat('%',#{keyword},'%')
or u1.name like concat('%',#{keyword},'%')
)
AND (select IF
( fc.claim_datetime > mp.save_file_date, fc.claim_datetime, mp.save_file_date )) >= #{settleVO.startDate}
AND (select IF
( fc.claim_datetime > mp.save_file_date, fc.claim_datetime, mp.save_file_date )) <= #{settleVO.endDate}
order by fc.claim_datetime ASC
SELECT
fc.id,
fc.claim_amount,
m.order_id,
mp.report_no,
fc.claim_datetime AS claimDate,
mp.delivery_date AS deliveryDate,
IF
( fc.claim_datetime > mp.delivery_date, fc.claim_datetime, mp.delivery_date ) AS settleDate,
mp.NAME,
m.bailor,
mp.evaluate_amount,
u.NAME AS principal,
u1.NAME AS clientManager,
cc.NAME AS clientName,
cc1.NAME AS clientSubName,
d.NAME AS evaluateDepartmentName,
(
SELECT
GROUP_CONCAT( NAME )
FROM
department
WHERE
id IN (
SELECT
department_id
FROM
post
WHERE
id IN ( SELECT post_id FROM user_post WHERE user_id = m.client_manager_id ))) AS marketDepartmentName,
frf.pay_datetime
FROM
(
SELECT
id,
claim_amount,
order_fund_id,
production_fund_id,
claim_datetime,
real_fund_id
FROM
finance_claim
WHERE
deleted = 0
AND production_fund_id IS NOT NULL
) fc
INNER JOIN ( SELECT id, pay_datetime FROM finance_real_fund WHERE deleted = 0
AND pay_datetime >= #{settleVO.payStartDate}
AND pay_datetime <= #{settleVO.payEndDate}
) frf ON frf.id = fc.real_fund_id
INNER JOIN ( SELECT id, order_fund_id, business_id, production_no FROM production_fund WHERE business_type = 'MAJOR_BUSINESS' AND deleted = 0 ) pf ON ( pf.id = fc.production_fund_id AND pf.order_fund_id = fc.order_fund_id )
INNER JOIN (
SELECT
id,
major_id,
NAME,
report_no,
production,
evaluate_amount,
delivery_date,
fund.real_amount
FROM
major_production mpr
INNER JOIN ( SELECT production_no, real_amount, production_type FROM production_fund WHERE deleted = 0 AND business_type = 'MAJOR_BUSINESS' ) fund ON ( fund.production_no = mpr.report_no AND fund.production_type = mpr.production )
WHERE
fund.real_amount IS NOT NULL
AND mpr.delivery_date IS NOT NULL
) mp ON mp.report_no = pf.production_no
LEFT JOIN major m ON m.id = mp.major_id
LEFT JOIN user u ON u.id = m.principal_id
LEFT JOIN user u1 ON u1.id = m.client_manager_id
LEFT JOIN customer_company cc ON cc.id = m.clientele_id
LEFT JOIN customer_company cc1 ON cc1.id = m.clientele_sub_id
LEFT JOIN department d ON d.id = m.department_id
and (
mp.report_no like concat ('%',#{keyword},'%')
or fc.claim_amount =#{keyword}
or m.order_id like concat('%',#{keyword},'%')
or u.name like concat('%',#{keyword},'%')
or u1.name like concat('%',#{keyword},'%')
)
AND (select IF
( fc.claim_datetime > mp.delivery_date, fc.claim_datetime, mp.delivery_date )) >= #{settleVO.startDate}
AND (select IF
( fc.claim_datetime > mp.delivery_date, fc.claim_datetime, mp.delivery_date )) <= #{settleVO.endDate}
order by fc.claim_datetime ASC
SELECT
DATEDIFF(
CURDATE(),
DATE ( pp.rot )) AS overdueDay,
p.*,
pt.acreage,
pt.price,
pt.amount,
cc1.NAME AS clientName,
cc2.NAME AS clientSubName,
cl1.NAME AS contactName,
cl1.mobile AS contactTel,
u.NAME AS clientManager,
u1.NAME AS outwardStaffName,
u2.NAME AS inwardStaffName,
u3.NAME AS pricingStaffName,
pp.rot
FROM
(
SELECT
id,
location,
order_id,
agent,
bailorA,
bailorB,
clientele_id,
clientele_sub_id,
clientele_contact_id,
client_manager_id,
outward_staff,
inward_staff,
pricing_staff
FROM
personal
WHERE
deleted = 0
) p
inner JOIN personal_target pt ON pt.personal_id = p.id
inner JOIN ( SELECT business_id, should_amount, real_amount FROM order_fund WHERE business_type = 'PERSONAL_BUSINESS' AND deleted = 0 AND real_amount IS NULL ) ofu ON ofu.business_id = p.id
inner JOIN ( SELECT target_id,( repertory_out_time ) rot FROM personal_production WHERE repertory_out_time IS NOT NULL GROUP BY target_id ) pp ON pp.target_id = pt.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 customer_linkman cl1 ON cl1.id = p.clientele_contact_id
LEFT JOIN `user` u ON u.id = p.client_manager_id
LEFT JOIN `user` u1 ON u1.id = p.outward_staff
LEFT JOIN `user` u2 ON u2.id = p.inward_staff
LEFT JOIN `user` u3 ON u3.id = p.pricing_staff
AND DATEDIFF(CURDATE(),DATE ( pp.rot )) >= #{overdueVO.overdueMin}
AND DATEDIFF(CURDATE(),DATE( pp.rot )) <= #{overdueVO.overdueMax}
and p.order_id = #{overdueVO.orderId}
and p.client_manager_id in
#{userId}
ORDER BY
overdueDay ASC
SELECT
DATEDIFF(CURDATE(), DATE( ap.repertory_out_time )) AS overdueDay,
a.allot_type,
a.order_id,
a.assets_business_gener,
u.name AS clientManager,
u1.name AS principal,
cc1.name AS clientName,
cc2.name AS clientSubName,
pf.production_should_amount,
`of`.should_amount,
pf.standard_amount,
a.name as projectName,
ap.*
FROM
(
SELECT
id,
business_id,
production_no,
( CASE production_type WHEN 'STATEMENT' THEN '意见书' WHEN 'REPORT' THEN '评估报告' WHEN 'LETTER' THEN '意见函' WHEN 'CONSULT' THEN '咨询报告' ELSE '' END ) productionType,
evaluate_amount,
repertory_out_time
FROM
assets_production ap
WHERE
deleted = 0
AND repertory_out_time IS NOT NULL
AND production_type != 'STATEMENT'
) ap
LEFT JOIN ( SELECT business_id, production_no, production_should_amount, real_amount, standard_amount FROM production_fund WHERE business_type = 'ASSET_BUSINESS' AND deleted = 0 ) pf
ON ( ap.business_id = pf.business_id AND ap.production_no = pf.production_no )
LEFT JOIN ( SELECT business_id,should_amount FROM order_fund WHERE business_type = 'ASSET_BUSINESS' AND deleted = 0 ) `of` ON `of`.business_id = ap.business_id
LEFT JOIN assets a ON a.id = ap.business_id
LEFT JOIN user u ON u.id = a.client_manager_id
LEFT JOIN user u1 ON u1.id = a.principal_id
LEFT JOIN customer_company cc1 ON cc1.id = a.clientele_id
LEFT JOIN customer_company cc2 ON cc2.id = a.clientele_sub_id
WHERE
ap.productionType != 'STATEMENT'
AND ( pf.production_no IS NULL OR pf.real_amount IS NULL )
AND DATEDIFF(CURDATE(),DATE( ap.repertory_out_time )) >= #{overdueVO.overdueMin}
AND DATEDIFF(CURDATE(),DATE( ap.repertory_out_time )) <= #{overdueVO.overdueMax}
and a.order_id = #{overdueVO.orderId}
and ap.production_no like concat ('%',#{overdueVO.productionNo},'%')
and u1.name like concat ('%',#{overdueVO.principal},'%')
and a.client_manager_id in
#{userId}
order by overdueDay asc
SELECT
fc.id,
fc.claim_amount,
a.order_id,
ap.production_no,
fc.claim_datetime as claimDate,
ap.delivery_date AS deliveryDate,
ap.save_file_date,
IF
( fc.claim_datetime > ap.delivery_date, fc.claim_datetime, ap.delivery_date ) AS settleDate,
ap.assets_name AS projectName,
a.bailor,
ap.evaluate_amount,
u.name AS principal,
u1.name AS clientManager,
cc.name AS clientName,
cc1.name AS clientSubName,
d.name AS evaluateDepartmentName,
(
SELECT
GROUP_CONCAT( department.name )
FROM
department
WHERE
id IN (
SELECT
department_id
FROM
post
WHERE
id IN ( SELECT post_id FROM user_post WHERE user_id = a.client_manager_id ))) AS marketDepartmentName,
invoice.name AS invoiceUser,
invoice.real_make_date AS invoiceDate,
invoice.tax_no AS invoiceNo,
frf.pay_datetime
FROM
(
SELECT
id,
claim_amount,
order_fund_id,
production_fund_id,
claim_datetime,
real_fund_id
FROM
finance_claim
WHERE
deleted = 0
AND production_fund_id IS NOT NULL
AND claim_datetime >= #{settleVO.startDate}
AND claim_datetime <= #{settleVO.endDate} UNION ALL
SELECT id,allot_amount AS claim_amount, order_fund_id, production_fund_id, created AS claim_datetime,real_fund_id FROM
order_fund_allot WHERE deleted = 0
AND created >= #{settleVO.startDate}
AND created <= #{settleVO.endDate}
) fc
inner join (
select id,pay_datetime from finance_real_fund
where deleted = 0
AND pay_datetime >= #{settleVO.payStartDate}
AND pay_datetime <= #{settleVO.payEndDate}
) frf on frf.id = fc.real_fund_id
INNER JOIN ( SELECT id, order_fund_id, business_id, production_no FROM production_fund WHERE business_type =
'ASSET_BUSINESS' AND deleted = 0 ) pf ON ( pf.id = fc.production_fund_id AND pf.order_fund_id = fc.order_fund_id
)
INNER JOIN ( SELECT id, business_id, assets_name, production_no, production_type, evaluate_amount,
delivery_date, save_file_date FROM assets_production WHERE deleted = 0 AND delivery = true ) ap ON ap.production_no =
pf.production_no
LEFT JOIN assets a ON a.id = ap.business_id
LEFT JOIN user u ON u.id = a.principal_id
LEFT JOIN user u1 ON u1.id = a.client_manager_id
LEFT JOIN customer_company cc ON cc.id = a.clientele_id
LEFT JOIN customer_company cc1 ON cc1.id = a.clientele_sub_id
LEFT JOIN department d ON d.id = a.department_id
LEFT JOIN (
SELECT real_make_date, name, tax_no, order_fund_id, production_fund_id
FROM finance_invoice, user
WHERE maker_id = user.id
AND finance_invoice.deleted = 0
AND state = '已开票'
) AS invoice ON IF(invoice.production_fund_id IS NOT NULL ,invoice.order_fund_id = pf.order_fund_id AND invoice.production_fund_id = pf.id,invoice.order_fund_id = pf.order_fund_id)
and (
a.order_id = #{keyword}
or ap.production_no like concat ('%',#{keyword},'%')
or u.name like concat ('%',#{keyword},'%')
or u1.name like concat ('%',#{keyword},'%')
)
order by fc.claim_datetime ASC
SELECT
fc.id,
fc.claim_amount,
a.order_id,
ap.production_no,
fc.claim_datetime as claimDate,
ap.save_file_date,
IF( fc.claim_datetime > ap.save_file_date, fc.claim_datetime, ap.save_file_date ) AS settleDate,
IF(ap.assets_name IS NOT NULL, ap.assets_name, a.name ) AS projectName,
a.bailor,
ap.evaluate_amount,
u.name AS principal,
u1.name AS clientManager,
cc.name AS clientName,
cc1.name AS clientSubName,
d.name AS evaluateDepartmentName,
(
SELECT
GROUP_CONCAT( NAME )
FROM
department
WHERE
id IN (
SELECT
department_id
FROM
post
WHERE
id IN ( SELECT post_id FROM user_post WHERE user_id = a.client_manager_id ))) AS marketDepartmentName,
invoice.name AS invoiceUser,
invoice.real_make_date AS invoiceDate,
invoice.tax_no AS invoiceNo,
frf.pay_datetime
FROM
(
SELECT
id,
claim_amount,
order_fund_id,
production_fund_id,
claim_datetime,
real_fund_id
FROM
finance_claim
WHERE
deleted = 0
AND production_fund_id IS NOT NULL
AND claim_datetime >= #{settleVO.startDate}
AND claim_datetime <= #{settleVO.endDate} UNION ALL
SELECT id, allot_amount AS claim_amount, order_fund_id, production_fund_id, created AS claim_datetime ,real_fund_id FROM order_fund_allot WHERE deleted = 0
AND created >= #{settleVO.startDate}
AND created <= #{settleVO.endDate}
) fc
inner join (
select id,pay_datetime from finance_real_fund
where deleted = 0
AND pay_datetime >= #{settleVO.payStartDate}
AND pay_datetime <= #{settleVO.payEndDate}
) frf on frf.id = fc.real_fund_id
INNER JOIN ( SELECT id, order_fund_id, business_id, production_no FROM production_fund WHERE business_type = 'ASSET_BUSINESS' AND deleted = 0 ) pf ON ( pf.id = fc.production_fund_id AND pf.order_fund_id = fc.order_fund_id )
INNER JOIN ( SELECT id, business_id, assets_name, production_no, production_type, evaluate_amount, save_file_date FROM assets_production WHERE deleted = 0 AND save_file_date IS NOT NULL ) ap ON ap.production_no = pf.production_no
LEFT JOIN assets a ON a.id = ap.business_id
LEFT JOIN user u ON u.id = a.principal_id
LEFT JOIN user u1 ON u1.id = a.client_manager_id
LEFT JOIN customer_company cc ON cc.id = a.clientele_id
LEFT JOIN customer_company cc1 ON cc1.id = a.clientele_sub_id
LEFT JOIN department d ON d.id = a.department_id
LEFT JOIN (
SELECT real_make_date, name, tax_no, order_fund_id, production_fund_id
FROM finance_invoice, user
WHERE maker_id = user.id
AND finance_invoice.deleted = 0
AND state = '已开票'
) AS invoice ON IF(invoice.production_fund_id IS NOT NULL ,invoice.order_fund_id = pf.order_fund_id AND invoice.production_fund_id = pf.id,invoice.order_fund_id = pf.order_fund_id)
and (
a.order_id = #{keyword}
or ap.production_no like concat ('%',#{keyword},'%')
or u.name like concat ('%',#{keyword},'%')
or u1.name like concat ('%',#{keyword},'%')
)
order by fc.claim_datetime ASC
SELECT
claimd.id,
fr.amount,
fr.payer,
fr.pay_datetime,
fr.remark,
claimd.claimAmount,
claimd.claimDate,
u.NAME AS creator,
u1.NAME AS claimUser
FROM
(
SELECT
frf.id,
sum( fc.claim_amount ) claimAmount,
max( fc.claim_datetime ) claimDate,
fc.claim_user_id
FROM
finance_claim fc
LEFT JOIN finance_real_fund frf ON frf.id = fc.real_fund_id
WHERE
frf.deleted = 0
AND fc.deleted = 0
GROUP BY
frf.id
) claimd
LEFT JOIN finance_real_fund fr ON fr.id = claimd.id
LEFT JOIN user u ON u.id = fr.creator_id
LEFT JOIN user u1 ON u1.id = claimd.claim_user_id
and (
fr.payer like concat ('%',#{keyword},'%')
or u1.name like concat('%',#{keyword},'%')
or claimd.claimAmount = #{keyword}
or fr.amount = #{keyword}
or fr.remark like concat('%',#{keyword},'%')
)
and fr.pay_datetime >= #{vo.startDate}
and fr.pay_datetime <= #{vo.endDate}
and claimd.claimDate >= #{vo.xStartDate}
and claimd.claimDate <= #{vo.xEndDate}
ORDER BY
claimd.claimDate DESC