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}