i.id, isa.sample_code, isa.sample, isa.model, isa.ins_state, ip.id insProductId, ip.state, ip.unit, ip.inspection_item_class, ip.inspection_item_class_en, ip.inspection_item, ip.inspection_item_en, ip.inspection_item_subclass, ip.inspection_item_subclass_en, ip.son_laboratory, ip.inspection_item_type, ip.inspection_value_type, ip.ask, ip.tell, ip.`last_value`, ip.ins_result, ip.radius, isa.quantity, ip.sort, ip.cable_tag SELECT io.*, isau.user_id assign, ir.id report_id, ir.url, ir.url_s, sample_counts.sample_num, CONCAT(ROUND(approved_product_counts.approved_count / total_product_counts.total_count * 100, 2), '%') AS insProgress, io.sample_view AS sample_name, GROUP_CONCAT(DISTINCT isa.model SEPARATOR ' ') AS sample_model, u.name, testing_name, case when io.type = 0 then '普通' when io.type = 1 then '优先' when io.type = 2 then '紧急' end typeString, case when io.ins_result = 1 then '合格' when io.ins_result = 0 then '不合格' else '待检验' end insResultString FROM ins_order io LEFT JOIN ins_sample isa ON io.id = isa.ins_order_id LEFT JOIN ins_sample_user isau ON isau.ins_sample_id = io.id LEFT JOIN (SELECT id, ins_order_id, is_ratify, url, url_s FROM ins_report WHERE is_ratify = 1) ir ON io.id = ir.ins_order_id LEFT JOIN user u ON io.create_user = u.id LEFT JOIN (SELECT ins_order_id, COUNT(*) AS sample_num FROM ins_sample WHERE id in(select id1 from (select is2.id id1 ,ip.id from ins_sample is2 left join ins_product ip on is2.id = ip.ins_sample_id where ip.id is not null)s ) GROUP BY ins_order_id) sample_counts ON io.id = sample_counts.ins_order_id LEFT JOIN (SELECT ins_sample.ins_order_id, COUNT(*) AS total_count FROM ins_product JOIN ins_sample ON ins_product.ins_sample_id = ins_sample.id WHERE ins_product.state = 1 GROUP BY ins_sample.ins_order_id) total_product_counts ON io.id = total_product_counts.ins_order_id LEFT JOIN (SELECT ins_sample.ins_order_id, COUNT(*) AS approved_count FROM ins_product JOIN ins_sample ON ins_product.ins_sample_id = ins_sample.id WHERE ins_product.state = 1 AND ins_product.ins_result IS NOT NULL GROUP BY ins_sample.ins_order_id) approved_product_counts ON io.id = approved_product_counts.ins_order_id LEFT JOIN (SELECT ins_sample_id, GROUP_CONCAT(DISTINCT uu.name SEPARATOR ',') AS testing_name FROM ins_sample_user u LEFT JOIN user uu ON u.user_id = uu.id WHERE u.state = 0 GROUP BY ins_sample_id ORDER BY ins_sample_id) isu ON isu.ins_sample_id = io.id update ins_order set state=3 where id = #{id}