diff --git a/src/main/java/com/gaotao/modules/pms/mapper/QcMapper.java b/src/main/java/com/gaotao/modules/pms/mapper/QcMapper.java index 20a39a1..5616eaf 100644 --- a/src/main/java/com/gaotao/modules/pms/mapper/QcMapper.java +++ b/src/main/java/com/gaotao/modules/pms/mapper/QcMapper.java @@ -507,6 +507,8 @@ public interface QcMapper { void deleteFQASSubDetailedRecord(QcFAIRecordData qcData); + QcFAIRecordData getFQASRecordStatus(QcFAIRecordData data); + void actionFQASInspection(QcFAIRecordData data); void updateSamplingQty(QcFAIRecordData headerData); diff --git a/src/main/java/com/gaotao/modules/pms/service/Impl/QcServiceImpl.java b/src/main/java/com/gaotao/modules/pms/service/Impl/QcServiceImpl.java index 94a9aff..34eb792 100644 --- a/src/main/java/com/gaotao/modules/pms/service/Impl/QcServiceImpl.java +++ b/src/main/java/com/gaotao/modules/pms/service/Impl/QcServiceImpl.java @@ -2315,6 +2315,15 @@ public class QcServiceImpl implements QcService { @Override @Transactional public void actionIQCInspection(EamObjectInData data) { + // 校验:防止页面数据过期时对已审核单据重复触发开始检验,导致 state/submit_flag 不一致 + QcFAIRecordData checkData = new QcFAIRecordData(); + checkData.setSite(data.getSite()); + checkData.setBuNo(data.getBuNo()); + checkData.setInspectionNo(data.getInspectionNo()); + QcFAIRecordData currentRecord = qcMapper.getIQCRecordStatus(checkData); + if (currentRecord == null || !"未开始".equals(currentRecord.getState()) || "Y".equals(currentRecord.getSubmitFlag())) { + throw new RuntimeException("该检验单当前状态不允许开始检验,请刷新页面后重试!"); + } // 修改检验单状态为待检验 qcMapper.actionIQCInspection(data); // 将用户名和检验单号存入Equipment_data_acquisition @@ -2351,6 +2360,15 @@ public class QcServiceImpl implements QcService { @Override @Transactional public void actionIPQCInspection(EamObjectInData data) { + // 校验:防止页面数据过期时对已审核单据重复触发开始检验,导致 state/submit_flag 不一致 + QcFAIRecordData checkData = new QcFAIRecordData(); + checkData.setSite(data.getSite()); + checkData.setBuNo(data.getBuNo()); + checkData.setInspectionNo(data.getInspectionNo()); + QcFAIRecordData currentRecord = qcMapper.getIPQCRecordStatus(checkData); + if (currentRecord == null || !"未开始".equals(currentRecord.getState()) || "Y".equals(currentRecord.getSubmitFlag())) { + throw new RuntimeException("该检验单当前状态不允许开始检验,请刷新页面后重试!"); + } // 修改检验单状态为待检验 qcMapper.actionIPQCInspection(data); // 将用户名和检验单号存入Equipment_data_acquisition @@ -2369,6 +2387,15 @@ public class QcServiceImpl implements QcService { @Override @Transactional public void actionFQCInspection(EamObjectInData data) { + // 校验:防止页面数据过期时对已审核单据重复触发开始检验,导致 state/submit_flag 不一致 + QcFAIRecordData checkData = new QcFAIRecordData(); + checkData.setSite(data.getSite()); + checkData.setBuNo(data.getBuNo()); + checkData.setInspectionNo(data.getInspectionNo()); + QcFAIRecordData currentRecord = qcMapper.getFQCRecordStatus(checkData); + if (currentRecord == null || !"未开始".equals(currentRecord.getState()) || "Y".equals(currentRecord.getSubmitFlag())) { + throw new RuntimeException("该检验单当前状态不允许开始检验,请刷新页面后重试!"); + } // 修改检验单状态为待检验 qcMapper.actionFQCInspection(data); // 将用户名和检验单号存入Equipment_data_acquisition @@ -4040,6 +4067,11 @@ public class QcServiceImpl implements QcService { @Override @Transactional public void actionFQASInspection(QcFAIRecordData data) { + // 校验:防止页面数据过期时对已审核单据重复触发开始检验,导致 state/submit_flag 不一致 + QcFAIRecordData currentRecord = qcMapper.getFQASRecordStatus(data); + if (currentRecord == null || !"未开始".equals(currentRecord.getState()) || "Y".equals(currentRecord.getSubmitFlag())) { + throw new RuntimeException("该检验单当前状态不允许开始检验,请刷新页面后重试!"); + } // 修改检验单状态为待检验 qcMapper.actionFQASInspection(data); } diff --git a/src/main/resources/mapper/pms/QcMapper.xml b/src/main/resources/mapper/pms/QcMapper.xml index 1ec92d4..3c599de 100644 --- a/src/main/resources/mapper/pms/QcMapper.xml +++ b/src/main/resources/mapper/pms/QcMapper.xml @@ -3729,6 +3729,13 @@ WHERE inspection_no = #{inspectionNo} and site = #{site} and bu_no = #{buNo} + + + update qc_oqc_record set action_date = getDate(),