From f153b59a8f20aa6dab3a581c5dd65088db9c47e4 Mon Sep 17 00:00:00 2001 From: qiankanghui Date: Wed, 9 Sep 2026 11:04:14 +0800 Subject: [PATCH] =?UTF-8?q?feat(qc):=20=E6=B7=BB=E5=8A=A0=E8=B4=A8?= =?UTF-8?q?=E6=A3=80=E9=A1=B9=E7=9B=AE=E6=A3=80=E9=AA=8C=E7=BB=93=E8=AE=BA?= =?UTF-8?q?=E8=87=AA=E5=8A=A8=E6=9B=B4=E6=96=B0=E5=8A=9F=E8=83=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 在QcMapper中新增updateIPQCItemResultBySubDetail和updateFQCItemResultBySubDetail方法 - 在QcMapper.xml中添加对应的SQL更新语句 - 实现清空子明细时项目检验结论复位为合格的功能 - 添加根据子明细实测值自动推导项目检验结论的逻辑 - 支持IPQC和FQC两种质检类型的自动判定功能 - 当存在不合格值时设置结论为N,全部合格时设置为Y --- .../xujie/sys/modules/pms/mapper/QcMapper.java | 8 ++++++++ .../modules/pms/service/Impl/QcServiceImpl.java | 14 ++++++++++++++ src/main/resources/mapper/pms/QcMapper.xml | 16 ++++++++++++++++ 3 files changed, 38 insertions(+) diff --git a/src/main/java/com/xujie/sys/modules/pms/mapper/QcMapper.java b/src/main/java/com/xujie/sys/modules/pms/mapper/QcMapper.java index 968e8f5a..9beef27c 100644 --- a/src/main/java/com/xujie/sys/modules/pms/mapper/QcMapper.java +++ b/src/main/java/com/xujie/sys/modules/pms/mapper/QcMapper.java @@ -288,6 +288,10 @@ public interface QcMapper { void delIPQCSubDetailedRecord(QcSubDetailInformationData data); + void updateIPQCItemResultBySubDetail(@Param("site") String site, @Param("buNo") String buNo, + @Param("inspectionNo") String inspectionNo, @Param("itemNo") String itemNo, + @Param("itemResult") String itemResult, @Param("unqualifiedQuantity") Integer unqualifiedQuantity); + void saveIPQCSubDetailed(List subDetailValues); List selectIPQCSubDetailedRecord(SubDetailValues data); @@ -397,6 +401,10 @@ public interface QcMapper { void delFQCSubDetailedRecord(QcSubDetailInformationData data); + void updateFQCItemResultBySubDetail(@Param("site") String site, @Param("buNo") String buNo, + @Param("inspectionNo") String inspectionNo, @Param("itemNo") String itemNo, + @Param("itemResult") String itemResult, @Param("unqualifiedQuantity") Integer unqualifiedQuantity); + void saveFQCSubDetailed(List subDetailValues); List selectFQCSubDetailedRecord(SubDetailValues data); diff --git a/src/main/java/com/xujie/sys/modules/pms/service/Impl/QcServiceImpl.java b/src/main/java/com/xujie/sys/modules/pms/service/Impl/QcServiceImpl.java index e7983fac..64259aec 100644 --- a/src/main/java/com/xujie/sys/modules/pms/service/Impl/QcServiceImpl.java +++ b/src/main/java/com/xujie/sys/modules/pms/service/Impl/QcServiceImpl.java @@ -2458,6 +2458,8 @@ public class QcServiceImpl implements QcService { // 删除子明细的老数据 qcMapper.delFQCSubDetailedRecord(data); if (subDetailValues.isEmpty()) { + // 清空子明细时,项目检验结论复位为合格 + qcMapper.updateFQCItemResultBySubDetail(data.getSite(), data.getBuNo(), data.getInspectionNo(), data.getItemNo(), "Y", 0); return null; } // 统计是否有不符合上下限得值 @@ -2503,6 +2505,11 @@ public class QcServiceImpl implements QcService { qcMapper.saveFQCSubDetailed(subList); } + // 项目检验结论由子明细实测值推导:仅当该项目可自动判定(数值型且维护了上下限)时更新, + // 有不合格值为N、全部合格为Y;无法自动判定的项目保持原有结论不变 + if ("N".equals(data.getValueTypeDb()) && (data.getMaxValue() != null || data.getMinValue() != null)) { + qcMapper.updateFQCItemResultBySubDetail(data.getSite(), data.getBuNo(), data.getInspectionNo(), data.getItemNo(), count > 0 ? "N" : "Y", count); + } return count; } @@ -2836,6 +2843,8 @@ public class QcServiceImpl implements QcService { // 删除子明细的老数据 qcMapper.delIPQCSubDetailedRecord(data); if (subDetailValues.isEmpty()) { + // 清空子明细时,项目检验结论复位为合格 + qcMapper.updateIPQCItemResultBySubDetail(data.getSite(), data.getBuNo(), data.getInspectionNo(), data.getItemNo(), "Y", 0); return null; } // 统计是否有不符合上下限得值 @@ -2882,6 +2891,11 @@ public class QcServiceImpl implements QcService { qcMapper.saveIPQCSubDetailed(subList); } + // 项目检验结论由子明细实测值推导:仅当该项目可自动判定(数值型且维护了上下限)时更新, + // 有不合格值为N、全部合格为Y;无法自动判定的项目保持原有结论不变 + if ("N".equals(data.getValueTypeDb()) && (data.getMaxValue() != null || data.getMinValue() != null)) { + qcMapper.updateIPQCItemResultBySubDetail(data.getSite(), data.getBuNo(), data.getInspectionNo(), data.getItemNo(), count > 0 ? "N" : "Y", count); + } return count; } diff --git a/src/main/resources/mapper/pms/QcMapper.xml b/src/main/resources/mapper/pms/QcMapper.xml index 25032692..13a063c8 100644 --- a/src/main/resources/mapper/pms/QcMapper.xml +++ b/src/main/resources/mapper/pms/QcMapper.xml @@ -2461,6 +2461,14 @@ WHERE inspection_no = #{inspectionNo} and item_no = #{itemNo} and site = #{site} and bu_no = #{buNo} + + + UPDATE qc_ipqc_detailed_record + SET item_result = #{itemResult}, + unqualified_quantity = #{unqualifiedQuantity,jdbcType=DECIMAL} + WHERE inspection_no = #{inspectionNo} and item_no = #{itemNo} and site = #{site} and bu_no = #{buNo} + + INSERT INTO qc_ipqc_sub_detail_record @@ -3274,6 +3282,14 @@ WHERE inspection_no = #{inspectionNo} and item_no = #{itemNo} and site = #{site} and bu_no = #{buNo} + + + UPDATE qc_fqc_detailed_record + SET item_result = #{itemResult}, + unqualified_quantity = #{unqualifiedQuantity,jdbcType=DECIMAL} + WHERE inspection_no = #{inspectionNo} and item_no = #{itemNo} and site = #{site} and bu_no = #{buNo} + + INSERT INTO qc_fqc_sub_detail_record