From 1b36c4966fb11559738884dd0bf76d7190f6cbd9 Mon Sep 17 00:00:00 2001 From: fengyuan_yang <1976974459@qq.com> Date: Wed, 21 Oct 2026 15:27:20 +0800 Subject: [PATCH] =?UTF-8?q?2026-10-21=20iqc=EF=BC=8C=E5=AF=B9=E4=BA=8E?= =?UTF-8?q?=E6=8A=BD=E6=A3=80=EF=BC=8C=E5=A6=82=E6=9E=9C=E4=B8=8D=E5=90=88?= =?UTF-8?q?=E6=A0=BC=E7=9A=84=E6=83=85=E5=86=B5=E4=B8=8B=EF=BC=8C=E5=85=B6?= =?UTF-8?q?=E5=AE=9E=E4=B8=8D=E5=85=81=E8=AE=B8=E2=80=9C=E6=8C=91=E9=80=89?= =?UTF-8?q?=E4=BD=BF=E7=94=A8=E2=80=9D=20=E5=AF=B9=E4=BA=8E=E5=85=A8?= =?UTF-8?q?=E6=A3=80=EF=BC=8C=E4=B8=8D=E8=89=AF=E5=A4=84=E7=BD=AE=E4=B8=8D?= =?UTF-8?q?=E8=83=BD=E2=80=9C=E6=8B=92=E6=94=B6=E9=80=80=E5=9B=9E=E2=80=9C?= =?UTF-8?q?=E3=80=81=E2=80=9D=E8=BF=94=E5=B7=A5=E8=BF=94=E4=BF=AE=E2=80=9C?= =?UTF-8?q?=E3=80=81=E2=80=9D=E8=AE=A9=E6=AD=A5=E6=8E=A5=E6=94=B6=E2=80=9C?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../com/heai/modules/pms/mapper/QcMapper.java | 2 ++ .../pms/service/Impl/QcServiceImpl.java | 23 +++++++++++++++++++ src/main/resources/mapper/pms/QcMapper.xml | 16 ++++++++++++- 3 files changed, 40 insertions(+), 1 deletion(-) diff --git a/src/main/java/com/heai/modules/pms/mapper/QcMapper.java b/src/main/java/com/heai/modules/pms/mapper/QcMapper.java index fa7621e..37b07d3 100644 --- a/src/main/java/com/heai/modules/pms/mapper/QcMapper.java +++ b/src/main/java/com/heai/modules/pms/mapper/QcMapper.java @@ -381,6 +381,8 @@ public interface QcMapper { IPage qcIQCInspectionSearch(Page qcFAIRecordDataPage,@Param("query") QcFAIRecordData data); + String selectIqcInspectCode(QcFAIRecordData data); + List iqcDetailSearch(QcFAIRecordData data); List selectIQCSubDetailedRecord(SubDetailValues data); diff --git a/src/main/java/com/heai/modules/pms/service/Impl/QcServiceImpl.java b/src/main/java/com/heai/modules/pms/service/Impl/QcServiceImpl.java index 2f504b9..1b091b3 100644 --- a/src/main/java/com/heai/modules/pms/service/Impl/QcServiceImpl.java +++ b/src/main/java/com/heai/modules/pms/service/Impl/QcServiceImpl.java @@ -5025,6 +5025,7 @@ public class QcServiceImpl implements QcService { @Override @Transactional public void saveIQCDetailedRecord(QcFAIRecordData data) { + assertIqcDisposalAllowed(data); if ("1".equals(data.getType())) { // 应用 data.setState("待检验"); } else { // 保存 @@ -5146,6 +5147,27 @@ public class QcServiceImpl implements QcService { return count; } + /** + * 抽检(InspectCode 不是 F)不合格时不能挑选使用;全检(InspectCode = F)不能拒收退回、返工返修、让步接收。 + */ + private void assertIqcDisposalAllowed(QcFAIRecordData data) { + if (data == null || StringUtils.isBlank(data.getDisposalMeasures())) { + return; + } + String disposal = data.getDisposalMeasures().trim(); + String inspectCode = StringUtils.trimToEmpty(qcMapper.selectIqcInspectCode(data)); + boolean fullInspect = "F".equalsIgnoreCase(inspectCode); + if (fullInspect) { + if ("拒收退回".equals(disposal) || "返工返修".equals(disposal) || "让步接收".equals(disposal)) { + throw new RuntimeException("全检任务不允许选择处置措施:" + disposal); + } + return; + } + if ("不合格".equals(data.getInspectionResult()) && "挑选使用".equals(disposal)) { + throw new RuntimeException("抽检任务检验结论为不合格时,不允许选择挑选使用"); + } + } + /** * 审核 **/ @@ -5155,6 +5177,7 @@ public class QcServiceImpl implements QcService { SysUserEntity currentUser = (SysUserEntity) SecurityUtils.getSubject().getPrincipal(); boolean triggerMachineInspect = Boolean.TRUE.equals(data.getTriggerMachineInspect()); for (QcFAIRecordData recordData : data.getSubmitList()) { + assertIqcDisposalAllowed(recordData); // 修改主记录标识为已提交 qcMapper.updateIQCMasterSubmitFlag(recordData); // 修改明细记录标识为已提交 diff --git a/src/main/resources/mapper/pms/QcMapper.xml b/src/main/resources/mapper/pms/QcMapper.xml index 27615ab..82b0263 100644 --- a/src/main/resources/mapper/pms/QcMapper.xml +++ b/src/main/resources/mapper/pms/QcMapper.xml @@ -3338,11 +3338,13 @@ a.ref_info2, a.ref_info3, a.ref_info4, - a.ref_info5 + a.ref_info5, + prd.InspectCode as inspectCode FROM qc_iqc_record as a left join part as d on a.site = d.site and a.bu_no = d.sourceBu and a.part_no = d.partNo left join view_Supplier as s on a.site = s.site and a.supplier_no = s.SupplierID left join sys_user as u on a.inspector_no = u.username + left join POReceiptDetail as prd on a.site = prd.site and a.receipt_no = prd.ReceiptNo and CONVERT(varchar(50), a.receipt_item_no) = CONVERT(varchar(50), prd.ItemNo) AND a.site = #{query.site} @@ -3415,6 +3417,18 @@ END, a.create_date desc + +