Browse Source

2026-06-12

检验增加【异常修改】功能
master
fengyuan_yang 4 days ago
parent
commit
97a503e098
  1. 124
      src/main/java/com/gaotao/modules/pms/service/Impl/QcServiceImpl.java
  2. 8
      src/main/resources/mapper/pms/QcMapper.xml

124
src/main/java/com/gaotao/modules/pms/service/Impl/QcServiceImpl.java

@ -630,13 +630,39 @@ public class QcServiceImpl implements QcService {
@Override @Override
@Transactional @Transactional
public void saveFQCDetailedRecord(QcFAIRecordData data) { public void saveFQCDetailedRecord(QcFAIRecordData data) {
boolean abnormalModify = "3".equals(data.getType());
// 校验查询当前数据库中的状态如果已审核完成则禁止保存 // 校验查询当前数据库中的状态如果已审核完成则禁止保存
QcFAIRecordData currentRecord = qcMapper.getFQCRecordStatus(data); QcFAIRecordData currentRecord = qcMapper.getFQCRecordStatus(data);
if (currentRecord != null && ("Y".equals(currentRecord.getSubmitFlag()) || "已完成".equals(currentRecord.getState()))) {
if (currentRecord == null) {
throw new RuntimeException("检验单不存在或已删除!");
}
if (!abnormalModify && ("Y".equals(currentRecord.getSubmitFlag()) || "已完成".equals(currentRecord.getState()))) {
throw new RuntimeException("该检验单已审核完成,无法修改!"); throw new RuntimeException("该检验单已审核完成,无法修改!");
} }
if ("1".equals(data.getType())) { // 应用
if (abnormalModify) {
if (!"已完成".equals(currentRecord.getState())) {
throw new RuntimeException("仅已完成状态允许异常修改!");
}
// 异常修改时强制保留原有检验结论
data.setState("已完成");
data.setInspectionResult(currentRecord.getInspectionResult());
Map<String, String> currentItemResultMap = new HashMap<>();
qcMapper.fqcDetailSearch(data).forEach(item -> {
if (item.getItemNo() != null && !currentItemResultMap.containsKey(item.getItemNo())) {
currentItemResultMap.put(item.getItemNo(), item.getItemResult());
}
});
for (int i = 0; i < data.getItemList().size(); i++) {
QcFAIRecordData detailRecord = data.getItemList().get(i);
if (detailRecord.getItemNo() == null) {
continue;
}
if (currentItemResultMap.containsKey(detailRecord.getItemNo())) {
detailRecord.setItemResult(currentItemResultMap.get(detailRecord.getItemNo()));
}
}
} else if ("1".equals(data.getType())) { // 应用
data.setState("待检验"); data.setState("待检验");
} else { // 保存 } else { // 保存
data.setState("待审核"); data.setState("待审核");
@ -984,13 +1010,39 @@ public class QcServiceImpl implements QcService {
@Override @Override
@Transactional @Transactional
public void saveIPQCDetailedRecord(QcFAIRecordData data) { public void saveIPQCDetailedRecord(QcFAIRecordData data) {
boolean abnormalModify = "3".equals(data.getType());
// 校验查询当前数据库中的状态如果已审核完成则禁止保存 // 校验查询当前数据库中的状态如果已审核完成则禁止保存
QcFAIRecordData currentRecord = qcMapper.getIPQCRecordStatus(data); QcFAIRecordData currentRecord = qcMapper.getIPQCRecordStatus(data);
if (currentRecord != null && ("Y".equals(currentRecord.getSubmitFlag()) || "已完成".equals(currentRecord.getState()))) {
if (currentRecord == null) {
throw new RuntimeException("检验单不存在或已删除!");
}
if (!abnormalModify && ("Y".equals(currentRecord.getSubmitFlag()) || "已完成".equals(currentRecord.getState()))) {
throw new RuntimeException("该检验单已审核完成,无法修改!"); throw new RuntimeException("该检验单已审核完成,无法修改!");
} }
if ("1".equals(data.getType())) { // 应用
if (abnormalModify) {
if (!"已完成".equals(currentRecord.getState())) {
throw new RuntimeException("仅已完成状态允许异常修改!");
}
// 异常修改时强制保留原有检验结论
data.setState("已完成");
data.setInspectionResult(currentRecord.getInspectionResult());
Map<String, String> currentItemResultMap = new HashMap<>();
qcMapper.ipqcDetailSearch(data).forEach(item -> {
if (item.getItemNo() != null && !currentItemResultMap.containsKey(item.getItemNo())) {
currentItemResultMap.put(item.getItemNo(), item.getItemResult());
}
});
for (int i = 0; i < data.getItemList().size(); i++) {
QcFAIRecordData detailRecord = data.getItemList().get(i);
if (detailRecord.getItemNo() == null) {
continue;
}
if (currentItemResultMap.containsKey(detailRecord.getItemNo())) {
detailRecord.setItemResult(currentItemResultMap.get(detailRecord.getItemNo()));
}
}
} else if ("1".equals(data.getType())) { // 应用
data.setState("待检验"); data.setState("待检验");
} else { // 保存 } else { // 保存
data.setState("待审核"); data.setState("待审核");
@ -1497,13 +1549,39 @@ public class QcServiceImpl implements QcService {
@Override @Override
@Transactional @Transactional
public void saveIQCDetailedRecord(QcFAIRecordData data) { public void saveIQCDetailedRecord(QcFAIRecordData data) {
boolean abnormalModify = "3".equals(data.getType());
// 校验查询当前数据库中的状态如果已审核完成则禁止保存 // 校验查询当前数据库中的状态如果已审核完成则禁止保存
QcFAIRecordData currentRecord = qcMapper.getIQCRecordStatus(data); QcFAIRecordData currentRecord = qcMapper.getIQCRecordStatus(data);
if (currentRecord != null && ("Y".equals(currentRecord.getSubmitFlag()) || "已完成".equals(currentRecord.getState()))) {
if (currentRecord == null) {
throw new RuntimeException("检验单不存在或已删除!");
}
if (!abnormalModify && ("Y".equals(currentRecord.getSubmitFlag()) || "已完成".equals(currentRecord.getState()))) {
throw new RuntimeException("该检验单已审核完成,无法修改!"); throw new RuntimeException("该检验单已审核完成,无法修改!");
} }
if ("1".equals(data.getType())) { // 应用
if (abnormalModify) {
if (!"已完成".equals(currentRecord.getState())) {
throw new RuntimeException("仅已完成状态允许异常修改!");
}
// 异常修改时强制保留原有检验结论
data.setState("已完成");
data.setInspectionResult(currentRecord.getInspectionResult());
Map<String, String> currentItemResultMap = new HashMap<>();
qcMapper.iqcDetailSearch(data).forEach(item -> {
if (item.getItemNo() != null && !currentItemResultMap.containsKey(item.getItemNo())) {
currentItemResultMap.put(item.getItemNo(), item.getItemResult());
}
});
for (int i = 0; i < data.getItemList().size(); i++) {
QcFAIRecordData detailRecord = data.getItemList().get(i);
if (detailRecord.getItemNo() == null) {
continue;
}
if (currentItemResultMap.containsKey(detailRecord.getItemNo())) {
detailRecord.setItemResult(currentItemResultMap.get(detailRecord.getItemNo()));
}
}
} else if ("1".equals(data.getType())) { // 应用
data.setState("待检验"); data.setState("待检验");
} else { // 保存 } else { // 保存
data.setState("待审核"); data.setState("待审核");
@ -3707,6 +3785,7 @@ public class QcServiceImpl implements QcService {
@Override @Override
@Transactional @Transactional
public void saveFQASDetailedRecord(QcFAIRecordData data) { public void saveFQASDetailedRecord(QcFAIRecordData data) {
boolean abnormalModify = "3".equals(data.getType());
// 校验供应商 // 校验供应商
if (data.getResponsiblePerson() != null && !"".equals(data.getResponsiblePerson())){ if (data.getResponsiblePerson() != null && !"".equals(data.getResponsiblePerson())){
List<SupplierData> suppliers = qcMapper.getSupplier(data.getSite(), data.getResponsiblePerson(), "Y"); List<SupplierData> suppliers = qcMapper.getSupplier(data.getSite(), data.getResponsiblePerson(), "Y");
@ -3715,7 +3794,38 @@ public class QcServiceImpl implements QcService {
} }
} }
if ("1".equals(data.getType())) { // 应用
// 校验查询当前数据库中的状态如果已审核完成则禁止保存
QcFAIRecordData currentRecord = qcMapper.getFQASRecordStatus(data);
if (currentRecord == null) {
throw new RuntimeException("检验单不存在或已删除!");
}
if (!abnormalModify && ("Y".equals(currentRecord.getSubmitFlag()) || "已完成".equals(currentRecord.getState()))) {
throw new RuntimeException("该检验单已审核完成,无法修改!");
}
if (abnormalModify) {
if (!"已完成".equals(currentRecord.getState())) {
throw new RuntimeException("仅已完成状态允许异常修改!");
}
// 异常修改时强制保留原有检验结论
data.setState("已完成");
data.setInspectionResult(currentRecord.getInspectionResult());
Map<String, String> currentItemResultMap = new HashMap<>();
qcMapper.fqasDetailSearch(data).forEach(item -> {
if (item.getItemNo() != null && !currentItemResultMap.containsKey(item.getItemNo())) {
currentItemResultMap.put(item.getItemNo(), item.getItemResult());
}
});
for (int i = 0; i < data.getItemList().size(); i++) {
QcFAIRecordData detailRecord = data.getItemList().get(i);
if (detailRecord.getItemNo() == null) {
continue;
}
if (currentItemResultMap.containsKey(detailRecord.getItemNo())) {
detailRecord.setItemResult(currentItemResultMap.get(detailRecord.getItemNo()));
}
}
} else if ("1".equals(data.getType())) { // 应用
data.setState("待检验"); data.setState("待检验");
} else { // 保存 } else { // 保存
data.setState("待审核"); data.setState("待审核");

8
src/main/resources/mapper/pms/QcMapper.xml

@ -819,7 +819,7 @@
<!-- 查询IPQC检验记录状态(用于保存前校验) --> <!-- 查询IPQC检验记录状态(用于保存前校验) -->
<select id="getIPQCRecordStatus" parameterType="com.gaotao.modules.pms.data.QcFAIRecordData" resultType="com.gaotao.modules.pms.data.QcFAIRecordData"> <select id="getIPQCRecordStatus" parameterType="com.gaotao.modules.pms.data.QcFAIRecordData" resultType="com.gaotao.modules.pms.data.QcFAIRecordData">
SELECT submit_flag, state
SELECT submit_flag, state, inspection_result
FROM qc_ipqc_record FROM qc_ipqc_record
WHERE inspection_no = #{inspectionNo} and site = #{site} and bu_no = #{buNo} WHERE inspection_no = #{inspectionNo} and site = #{site} and bu_no = #{buNo}
</select> </select>
@ -1197,7 +1197,7 @@
<!-- 查询IQC检验记录状态(用于保存前校验) --> <!-- 查询IQC检验记录状态(用于保存前校验) -->
<select id="getIQCRecordStatus" parameterType="com.gaotao.modules.pms.data.QcFAIRecordData" resultType="com.gaotao.modules.pms.data.QcFAIRecordData"> <select id="getIQCRecordStatus" parameterType="com.gaotao.modules.pms.data.QcFAIRecordData" resultType="com.gaotao.modules.pms.data.QcFAIRecordData">
SELECT submit_flag, state
SELECT submit_flag, state, inspection_result
FROM qc_iqc_record FROM qc_iqc_record
WHERE inspection_no = #{inspectionNo} and site = #{site} and bu_no = #{buNo} WHERE inspection_no = #{inspectionNo} and site = #{site} and bu_no = #{buNo}
</select> </select>
@ -1652,7 +1652,7 @@
<!-- 查询FQC检验记录状态(用于保存前校验) --> <!-- 查询FQC检验记录状态(用于保存前校验) -->
<select id="getFQCRecordStatus" parameterType="com.gaotao.modules.pms.data.QcFAIRecordData" resultType="com.gaotao.modules.pms.data.QcFAIRecordData"> <select id="getFQCRecordStatus" parameterType="com.gaotao.modules.pms.data.QcFAIRecordData" resultType="com.gaotao.modules.pms.data.QcFAIRecordData">
SELECT submit_flag, state
SELECT submit_flag, state, inspection_result
FROM qc_fqc_record FROM qc_fqc_record
WHERE inspection_no = #{inspectionNo} and site = #{site} and bu_no = #{buNo} WHERE inspection_no = #{inspectionNo} and site = #{site} and bu_no = #{buNo}
</select> </select>
@ -3747,7 +3747,7 @@
<!-- 查询FQAS(OQC)检验单当前状态 --> <!-- 查询FQAS(OQC)检验单当前状态 -->
<select id="getFQASRecordStatus" parameterType="com.gaotao.modules.pms.data.QcFAIRecordData" resultType="com.gaotao.modules.pms.data.QcFAIRecordData"> <select id="getFQASRecordStatus" parameterType="com.gaotao.modules.pms.data.QcFAIRecordData" resultType="com.gaotao.modules.pms.data.QcFAIRecordData">
SELECT submit_flag, state
SELECT submit_flag, state, inspection_result
FROM qc_oqc_record FROM qc_oqc_record
WHERE inspection_no = #{inspectionNo} and site = #{site} and bu_no = #{buNo} WHERE inspection_no = #{inspectionNo} and site = #{site} and bu_no = #{buNo}
</select> </select>

Loading…
Cancel
Save