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 + +