id, deleted, modified, created, fine_id, refund_amount, refund_reason, statue, user_id, refund_date SELECT refund.id AS id, refund.fine_id AS fineId, oFund.order_id AS orderId, oFund.order_name AS orderName, pFund.production_no AS productionNo, `order`.bailor AS bailor, `order`.order_id AS productionNo, CONCAT(`order`.bailorA, IF(`order`.bailorB IS NOT NULL AND `order`.bailorB != '', ',', ''), `order`.bailorB) AS bailor, CASE pFund.production_type WHEN 'LETTER' THEN '意见函' WHEN 'CONSULT' THEN '咨询报告' WHEN 'REPORT' THEN '评估报告' ELSE '-' END AS productionType, CASE pFund.production_type WHEN 'LETTER' THEN '复评函' WHEN 'REPORT' THEN '报告' WHEN 'STATEMENT' THEN '价值意见书' ELSE '-' END AS productionType, CASE pro.production WHEN 'FINAL' THEN '结果报告' WHEN 'TECHNIC' THEN '技术报告' ELSE '-' END AS productionType, user.name AS clientManagerName, customer.name AS customerName, subCustomer.name AS customerSubName, fine.real_fine_amount AS finedAmount, fine.created AS punishDate, refund.refund_amount AS refundAmount, refund.refund_date AS refundDate, refund.refund_amount AS refundAmount, refund.refund_reason AS refundReason, refund.status AS status, operator.name AS operator, refund.refund_date AS refundDate FROM finance_fine_refund AS refund LEFT JOIN finance_fine AS fine ON fine.deleted = 0 AND fine.id = refund.fine_id LEFT JOIN order_fund AS oFund ON oFund.deleted = 0 AND oFund.id = fine.order_fund_id LEFT JOIN production_fund AS pFund ON pFund.deleted = 0 AND pFund.id = fine.production_fund_id AND pFund.order_fund_id = fine.order_fund_id LEFT JOIN ( SELECT business_id, production_no, repertory_out_time FROM assets_production WHERE deleted = 0 AND repertory_out_time IS NOT NULL AND production_type != 'STATEMENT') AS pro ON pFund.business_id = pro.business_id AND pFund.production_no = pro.production_no LEFT JOIN assets AS `order` ON `order`.deleted = 0 AND `order`.id = pFund.business_id LEFT JOIN production_fund AS pFund ON pFund.deleted = 0 AND pFund.id = fine.production_fund_id AND pFund.order_fund_id = fine.order_fund_id LEFT JOIN ( SELECT major_id AS business_id, report_no AS production_no, repertory_out_time, production FROM major_production WHERE deleted = 0 AND repertory_out_time IS NOT NULL) AS pro ON pFund.business_id = pro.business_id AND pFund.production_no = pro.production_no AND production = pFund.production_type LEFT JOIN major AS `order` ON `order`.deleted = 0 AND `order`.id = pFund.business_id LEFT JOIN personal_target pt ON pt.personal_id = oFund.business_id LEFT JOIN ( SELECT target_id,repertory_out_time, production FROM personal_production WHERE repertory_out_time IS NOT NULL GROUP BY target_id ) AS pro ON pro.target_id = pt.id LEFT JOIN personal AS `order` ON `order`.deleted = 0 AND `order`.id = oFund.business_id LEFT JOIN customer_company AS customer ON customer.id = `order`.clientele_id LEFT JOIN customer_company AS subCustomer ON subCustomer.id = `order`.clientele_sub_id LEFT JOIN user ON `order`.client_manager_id = user.id AND user.deleted = 0 LEFT JOIN user AS operator ON user.deleted = 0 AND user.id = refund.user_id WHERE oFund.business_type = #{dto.businessType} AND (`order`.order_id LIKE CONCAT('%', #{dto.keyWord},'%') OR pFund.production_no LIKE CONCAT('%', #{dto.keyWord},'%') ) AND fine.real_fine_amount = #{dto.finedAmount} AND refund.refund_amount = #{dto.refundAmount} AND user.name = #{dto.clientManagerName} AND fine.status = #{dto.status} AND fine.created BETWEEN #{dto.startPunishDate} AND #{dto.endPunishDate} AND refund.refund_date BETWEEN #{dto.startRefundDate} AND #{dto.startRefundDate} AND `order`.client_manager_id = #{dto.clientManagerId}