diff --git a/ktg-mes/src/main/java/com/ktg/mes/qc/mapper/QcIpqcMapper.java b/ktg-mes/src/main/java/com/ktg/mes/qc/mapper/QcIpqcMapper.java index 441c9af..9ee7c92 100644 --- a/ktg-mes/src/main/java/com/ktg/mes/qc/mapper/QcIpqcMapper.java +++ b/ktg-mes/src/main/java/com/ktg/mes/qc/mapper/QcIpqcMapper.java @@ -50,6 +50,13 @@ public interface QcIpqcMapper */ public int updateQcIpqc(QcIpqc qcIpqc); + /** + * 根据缺陷记录更新头上的缺陷数量和缺陷率 + * @param ipqcId + * @return + */ + public int updateCrMajMinQuaAndRate(Long ipqcId); + /** * 删除过程检验单 * diff --git a/ktg-mes/src/main/java/com/ktg/mes/qc/service/IQcIpqcService.java b/ktg-mes/src/main/java/com/ktg/mes/qc/service/IQcIpqcService.java index 8efa51b..10e0fa9 100644 --- a/ktg-mes/src/main/java/com/ktg/mes/qc/service/IQcIpqcService.java +++ b/ktg-mes/src/main/java/com/ktg/mes/qc/service/IQcIpqcService.java @@ -58,6 +58,13 @@ public interface IQcIpqcService */ public int updateCrMajMinQuaAndRate(Long qcId); + /** + * 根据缺陷记录更新头上的缺陷数量和缺陷率 + * @param qcIpqc + * @return + */ + public int updateCrMajMinQuaAndRate(QcIpqc qcIpqc); + /** * 批量删除过程检验单 * diff --git a/ktg-mes/src/main/java/com/ktg/mes/qc/service/impl/QcIpqcLineServiceImpl.java b/ktg-mes/src/main/java/com/ktg/mes/qc/service/impl/QcIpqcLineServiceImpl.java index 319bafd..4fa3ee9 100644 --- a/ktg-mes/src/main/java/com/ktg/mes/qc/service/impl/QcIpqcLineServiceImpl.java +++ b/ktg-mes/src/main/java/com/ktg/mes/qc/service/impl/QcIpqcLineServiceImpl.java @@ -72,7 +72,9 @@ public class QcIpqcLineServiceImpl implements IQcIpqcLineService @Override public int updateCrMajMinQuantity(Long qcId, Long lineId) { - //TODO: + + + return 0; } diff --git a/ktg-mes/src/main/java/com/ktg/mes/qc/service/impl/QcIpqcServiceImpl.java b/ktg-mes/src/main/java/com/ktg/mes/qc/service/impl/QcIpqcServiceImpl.java index 26ecdd8..b989c53 100644 --- a/ktg-mes/src/main/java/com/ktg/mes/qc/service/impl/QcIpqcServiceImpl.java +++ b/ktg-mes/src/main/java/com/ktg/mes/qc/service/impl/QcIpqcServiceImpl.java @@ -85,8 +85,7 @@ public class QcIpqcServiceImpl implements IQcIpqcService @Override public int updateCrMajMinQuaAndRate(Long qcId) { - //TODO: - return 0; + return qcIpqcMapper.updateCrMajMinQuaAndRate(qcId); } /** diff --git a/ktg-mes/src/main/resources/mapper/qc/QcIpqcLineMapper.xml b/ktg-mes/src/main/resources/mapper/qc/QcIpqcLineMapper.xml index b8257e4..c4db528 100644 --- a/ktg-mes/src/main/resources/mapper/qc/QcIpqcLineMapper.xml +++ b/ktg-mes/src/main/resources/mapper/qc/QcIpqcLineMapper.xml @@ -144,6 +144,26 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" where line_id = #{lineId} + + UPDATE qc_ipqc_line 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', + qid.`line_id` + FROM qc_defect_record qid + WHERE qid.qc_id = #{ipqcId} + AND qid.line_id = #{lineId} + and qid.qc_type = 'IPQC' + GROUP BY qid.qc_id,qid.line_id + )b + ON a.ipqc_id = b.ipqc_id AND a.line_id = b.line_id + SET a.cr_quantity=b.cr_quantity,a.maj_quantity=b.maj_quantity,a.min_quantity=b.min_quantity + WHERE a.ipqc_id = #{ipqcId} + AND a.line_id = #{lineId} + + delete from qc_ipqc_line where line_id = #{lineId} diff --git a/ktg-mes/src/main/resources/mapper/qc/QcIpqcMapper.xml b/ktg-mes/src/main/resources/mapper/qc/QcIpqcMapper.xml index 9ee548b..3005539 100644 --- a/ktg-mes/src/main/resources/mapper/qc/QcIpqcMapper.xml +++ b/ktg-mes/src/main/resources/mapper/qc/QcIpqcMapper.xml @@ -248,6 +248,26 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" 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}