select ipqc_id, ipqc_code, ipqc_name, ipqc_type, template_id, workorder_id, workorder_code, workorder_name, task_id, task_code, task_name, workstation_id, workstation_code, workstation_name, process_id, process_code, process_name, item_id, item_code, item_name, specification, unit_of_measure, quantity_check, quantity_unqualified, quantity_qualified, cr_rate, maj_rate, min_rate, cr_quantity, maj_quantity, min_quantity, check_result, inspect_date, inspector, status, remark, attr1, attr2, attr3, attr4, create_by, create_time, update_by, update_time from qc_ipqc
insert into qc_ipqc
ipqc_code,
ipqc_name,
ipqc_type,
template_id,
workorder_id,
workorder_code,
workorder_name,
task_id,
task_code,
task_name,
workstation_id,
workstation_code,
workstation_name,
process_id,
process_code,
process_name,
item_id,
item_code,
item_name,
specification,
unit_of_measure,
quantity_check,
quantity_unqualified,
quantity_qualified,
cr_rate,
maj_rate,
min_rate,
cr_quantity,
maj_quantity,
min_quantity,
check_result,
inspect_date,
inspector,
status,
remark,
attr1,
attr2,
attr3,
attr4,
create_by,
create_time,
update_by,
update_time,
#{ipqcCode},
#{ipqcName},
#{ipqcType},
#{templateId},
#{workorderId},
#{workorderCode},
#{workorderName},
#{taskId},
#{taskCode},
#{taskName},
#{workstationId},
#{workstationCode},
#{workstationName},
#{processId},
#{processCode},
#{processName},
#{itemId},
#{itemCode},
#{itemName},
#{specification},
#{unitOfMeasure},
#{quantityCheck},
#{quantityUnqualified},
#{quantityQualified},
#{crRate},
#{majRate},
#{minRate},
#{crQuantity},
#{majQuantity},
#{minQuantity},
#{checkResult},
#{inspectDate},
#{inspector},
#{status},
#{remark},
#{attr1},
#{attr2},
#{attr3},
#{attr4},
#{createBy},
#{createTime},
#{updateBy},
#{updateTime},
update qc_ipqc
ipqc_code = #{ipqcCode},
ipqc_name = #{ipqcName},
ipqc_type = #{ipqcType},
template_id = #{templateId},
workorder_id = #{workorderId},
workorder_code = #{workorderCode},
workorder_name = #{workorderName},
task_id = #{taskId},
task_code = #{taskCode},
task_name = #{taskName},
workstation_id = #{workstationId},
workstation_code = #{workstationCode},
workstation_name = #{workstationName},
process_id = #{processId},
process_code = #{processCode},
process_name = #{processName},
item_id = #{itemId},
item_code = #{itemCode},
item_name = #{itemName},
specification = #{specification},
unit_of_measure = #{unitOfMeasure},
quantity_check = #{quantityCheck},
quantity_unqualified = #{quantityUnqualified},
quantity_qualified = #{quantityQualified},
cr_rate = #{crRate},
maj_rate = #{majRate},
min_rate = #{minRate},
cr_quantity = #{crQuantity},
maj_quantity = #{majQuantity},
min_quantity = #{minQuantity},
check_result = #{checkResult},
inspect_date = #{inspectDate},
inspector = #{inspector},
status = #{status},
remark = #{remark},
attr1 = #{attr1},
attr2 = #{attr2},
attr3 = #{attr3},
attr4 = #{attr4},
create_by = #{createBy},
create_time = #{createTime},
update_by = #{updateBy},
update_time = #{updateTime},
where ipqc_id = #{ipqcId}
UPDATE qc_ipqc a
INNER JOIN (
SELECT SUM(CASE WHEN defect_level = 'CR' THEN defect_quantity ELSE 0 END ) AS cr_quantity,
SUM(CASE WHEN defect_level = 'MAJ' THEN defect_quantity ELSE 0 END) AS maj_quantity,
SUM(CASE WHEN defect_level = 'MIN' THEN defect_quantity ELSE 0 END) AS min_quantity,
qid.`qc_id` as 'ipqc_id'
FROM qc_defect_record qid
WHERE qid.qc_id = #{ipqcId}
and qid.qc_type = 'IPQC'
GROUP BY qid.qc_id
) b
ON a.`ipqc_id` = b.ipqc_id
SET a.cr_quantity=b.cr_quantity,a.maj_quantity=b.maj_quantity,a.min_quantity=b.min_quantity,
a.`cr_rate`= ROUND(b.cr_quantity/a.`quantity_check`*100,2),
a.`maj_rate`= ROUND(b.maj_quantity/a.`quantity_check`*100,2),
a.`min_rate`= ROUND(b.min_quantity/a.`quantity_check`*100,2)
WHERE a.ipqc_id = #{ipqcId}
delete from qc_ipqc where ipqc_id = #{ipqcId}
delete from qc_ipqc where ipqc_id in
#{ipqcId}