diff --git a/ktg-mes/src/main/java/com/ktg/mes/qc/controller/QcIqcDefectController.java b/ktg-mes/src/main/java/com/ktg/mes/qc/controller/QcIqcDefectController.java index 44597ed..f4d8b64 100644 --- a/ktg-mes/src/main/java/com/ktg/mes/qc/controller/QcIqcDefectController.java +++ b/ktg-mes/src/main/java/com/ktg/mes/qc/controller/QcIqcDefectController.java @@ -6,8 +6,11 @@ import javax.servlet.http.HttpServletResponse; import cn.hutool.core.collection.CollUtil; import com.ktg.common.utils.StringUtils; import com.ktg.mes.qc.domain.ValidList; +import com.ktg.mes.qc.service.IQcIqcLineService; +import com.ktg.mes.qc.service.IQcIqcService; import org.springframework.security.access.prepost.PreAuthorize; import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.transaction.annotation.Transactional; import org.springframework.validation.annotation.Validated; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.PostMapping; @@ -39,6 +42,12 @@ public class QcIqcDefectController extends BaseController @Autowired private IQcIqcDefectService qcIqcDefectService; + @Autowired + private IQcIqcLineService qcIqcLineService; + + @Autowired + private IQcIqcService qcIqcService; + /** * 查询来料检验单缺陷记录列表 */ @@ -91,8 +100,11 @@ public class QcIqcDefectController extends BaseController */ @PreAuthorize("@ss.hasPermi('mes:qc:iqcdefect:edit')") @Log(title = "来料检验单缺陷记录", businessType = BusinessType.UPDATE) + @Transactional @PutMapping public AjaxResult updateList(@Validated @RequestBody ValidList defects){ + Long iqcId = -1L; + Long lineId = -1L; if(CollUtil.isNotEmpty(defects)){ for (QcIqcDefect defect: defects ) { @@ -101,9 +113,14 @@ public class QcIqcDefectController extends BaseController }else { qcIqcDefectService.insertQcIqcDefect(defect); } + iqcId = defect.getIqcId(); + lineId = defect.getLineId(); } + //更新行上的cr,maj,min数量 + qcIqcLineService.updateCrMajMinQuantity(iqcId,lineId); + //更新头上的cr,maj,min数量和比例 + qcIqcService.updateCrMajMinQuaAndRate(iqcId); } - return AjaxResult.success(); } @@ -116,6 +133,19 @@ public class QcIqcDefectController extends BaseController @DeleteMapping("/{recordIds}") public AjaxResult remove(@PathVariable Long[] recordIds) { + Long iqcId =-1L; + Long lineId =-1L; + if(recordIds!=null && recordIds.length>0){ + QcIqcDefect defect = qcIqcDefectService.selectQcIqcDefectByRecordId(recordIds[0]); + iqcId = defect.getIqcId(); + lineId = defect.getLineId(); + + //更新行上的cr,maj,min数量 + qcIqcLineService.updateCrMajMinQuantity(iqcId,lineId); + //更新头上的cr,maj,min数量和比例 + qcIqcService.updateCrMajMinQuaAndRate(iqcId); + } + return toAjax(qcIqcDefectService.deleteQcIqcDefectByRecordIds(recordIds)); } } diff --git a/ktg-mes/src/main/java/com/ktg/mes/qc/mapper/QcIqcLineMapper.java b/ktg-mes/src/main/java/com/ktg/mes/qc/mapper/QcIqcLineMapper.java index 222029d..85db858 100644 --- a/ktg-mes/src/main/java/com/ktg/mes/qc/mapper/QcIqcLineMapper.java +++ b/ktg-mes/src/main/java/com/ktg/mes/qc/mapper/QcIqcLineMapper.java @@ -43,6 +43,9 @@ public interface QcIqcLineMapper */ public int updateQcIqcLine(QcIqcLine qcIqcLine); + + public int updateCrMajMinQuantity(QcIqcLine qcIqcLine); + /** * 删除来料检验单行 * diff --git a/ktg-mes/src/main/java/com/ktg/mes/qc/mapper/QcIqcMapper.java b/ktg-mes/src/main/java/com/ktg/mes/qc/mapper/QcIqcMapper.java index bf1a84c..66c1f96 100644 --- a/ktg-mes/src/main/java/com/ktg/mes/qc/mapper/QcIqcMapper.java +++ b/ktg-mes/src/main/java/com/ktg/mes/qc/mapper/QcIqcMapper.java @@ -45,6 +45,8 @@ public interface QcIqcMapper */ public int updateQcIqc(QcIqc qcIqc); + public int updateCrMajMinQuaAndRate(Long iqcId); + /** * 删除来料检验单 * diff --git a/ktg-mes/src/main/java/com/ktg/mes/qc/service/IQcIqcLineService.java b/ktg-mes/src/main/java/com/ktg/mes/qc/service/IQcIqcLineService.java index c3b1aa7..e429156 100644 --- a/ktg-mes/src/main/java/com/ktg/mes/qc/service/IQcIqcLineService.java +++ b/ktg-mes/src/main/java/com/ktg/mes/qc/service/IQcIqcLineService.java @@ -43,6 +43,15 @@ public interface IQcIqcLineService */ public int updateQcIqcLine(QcIqcLine qcIqcLine); + /** + * 计算并更新当前行的Cr,Maj,Min的总数量 + * @param iqcId + * @param lineId + * @return + */ + public int updateCrMajMinQuantity(Long iqcId,Long lineId); + + /** * 批量删除来料检验单行 * diff --git a/ktg-mes/src/main/java/com/ktg/mes/qc/service/IQcIqcService.java b/ktg-mes/src/main/java/com/ktg/mes/qc/service/IQcIqcService.java index fb8e52b..590ab04 100644 --- a/ktg-mes/src/main/java/com/ktg/mes/qc/service/IQcIqcService.java +++ b/ktg-mes/src/main/java/com/ktg/mes/qc/service/IQcIqcService.java @@ -50,6 +50,8 @@ public interface IQcIqcService */ public int updateQcIqc(QcIqc qcIqc); + public int updateCrMajMinQuaAndRate(Long iqcId); + /** * 批量删除来料检验单 * diff --git a/ktg-mes/src/main/java/com/ktg/mes/qc/service/impl/QcIqcLineServiceImpl.java b/ktg-mes/src/main/java/com/ktg/mes/qc/service/impl/QcIqcLineServiceImpl.java index 8a45430..746067b 100644 --- a/ktg-mes/src/main/java/com/ktg/mes/qc/service/impl/QcIqcLineServiceImpl.java +++ b/ktg-mes/src/main/java/com/ktg/mes/qc/service/impl/QcIqcLineServiceImpl.java @@ -70,6 +70,14 @@ public class QcIqcLineServiceImpl implements IQcIqcLineService return qcIqcLineMapper.updateQcIqcLine(qcIqcLine); } + @Override + public int updateCrMajMinQuantity(Long iqcId,Long lineId) { + QcIqcLine qcIqcLine = new QcIqcLine(); + qcIqcLine.setIqcId(iqcId); + qcIqcLine.setLineId(lineId); + return qcIqcLineMapper.updateCrMajMinQuantity(qcIqcLine); + } + /** * 批量删除来料检验单行 * diff --git a/ktg-mes/src/main/java/com/ktg/mes/qc/service/impl/QcIqcServiceImpl.java b/ktg-mes/src/main/java/com/ktg/mes/qc/service/impl/QcIqcServiceImpl.java index b3d6750..49bea95 100644 --- a/ktg-mes/src/main/java/com/ktg/mes/qc/service/impl/QcIqcServiceImpl.java +++ b/ktg-mes/src/main/java/com/ktg/mes/qc/service/impl/QcIqcServiceImpl.java @@ -83,6 +83,11 @@ public class QcIqcServiceImpl implements IQcIqcService return qcIqcMapper.updateQcIqc(qcIqc); } + @Override + public int updateCrMajMinQuaAndRate(Long iqcId) { + return qcIqcMapper.updateCrMajMinQuaAndRate(iqcId); + } + /** * 批量删除来料检验单 * diff --git a/ktg-mes/src/main/resources/mapper/qc/QcIqcLineMapper.xml b/ktg-mes/src/main/resources/mapper/qc/QcIqcLineMapper.xml index 7eacafc..1ec0de3 100644 --- a/ktg-mes/src/main/resources/mapper/qc/QcIqcLineMapper.xml +++ b/ktg-mes/src/main/resources/mapper/qc/QcIqcLineMapper.xml @@ -114,6 +114,26 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" + + + UPDATE qc_iqc_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.`iqc_id`, + qid.`line_id` + FROM qc_iqc_defect qid + WHERE qid.iqc_id = #{iqcId} + AND qid.line_id = #{lineId} + GROUP BY qid.iqc_id,qid.line_id + )b + ON a.iqc_id = b.iqc_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.iqc_id = #{iqcId} + AND a.line_id = #{lineId} + + update qc_iqc_line diff --git a/ktg-mes/src/main/resources/mapper/qc/QcIqcMapper.xml b/ktg-mes/src/main/resources/mapper/qc/QcIqcMapper.xml index 21836c4..a5505a4 100644 --- a/ktg-mes/src/main/resources/mapper/qc/QcIqcMapper.xml +++ b/ktg-mes/src/main/resources/mapper/qc/QcIqcMapper.xml @@ -180,6 +180,27 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" + + UPDATE qc_iqc 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.`iqc_id` + FROM qc_iqc_defect qid + WHERE qid.iqc_id = #{iqc_id} + GROUP BY qid.iqc_id + ) b + ON a.`iqc_id` = b.iqc_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.iqc_id = #{iqc_id} + + + update qc_iqc