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