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