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(),