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