From 466ee077797f7c145fee8462f14029255618aa6a Mon Sep 17 00:00:00 2001
From: huminmin <mac@MacBook-Pro.local>
Date: 星期三, 18 三月 2026 10:20:42 +0800
Subject: [PATCH] 不合格管理:取消隔离
---
doc/20260317_鹏创电子.sql | 5 ++++-
src/main/java/com/ruoyi/quality/controller/QualityUnqualifiedController.java | 2 +-
src/main/java/com/ruoyi/quality/service/impl/QualityUnqualifiedServiceImpl.java | 22 +++++++++++++++++-----
src/main/java/com/ruoyi/quality/pojo/QualityUnqualified.java | 6 ++++++
src/main/resources/mapper/quality/QualityUnqualifiedMapper.xml | 1 +
src/main/java/com/ruoyi/common/enums/StockInQualifiedRecordTypeEnum.java | 3 ++-
6 files changed, 31 insertions(+), 8 deletions(-)
diff --git "a/doc/20260317_\351\271\217\345\210\233\347\224\265\345\255\220.sql" "b/doc/20260317_\351\271\217\345\210\233\347\224\265\345\255\220.sql"
index 1d7b12e..c624baf 100644
--- "a/doc/20260317_\351\271\217\345\210\233\347\224\265\345\255\220.sql"
+++ "b/doc/20260317_\351\271\217\345\210\233\347\224\265\345\255\220.sql"
@@ -1,3 +1,6 @@
alter table quality_inspect
add defective_quantity decimal(18, 2) null comment '涓嶈壇鏁伴噺',
- add defective_reason varchar(255) default '' not null comment '涓嶈壇鍘熷洜';
\ No newline at end of file
+ add defective_reason varchar(255) default '' not null comment '涓嶈壇鍘熷洜';
+
+alter table quality_unqualified
+ add quarantine_lifted boolean not null default false comment '鏄惁宸插彇娑堥殧绂�';
\ No newline at end of file
diff --git a/src/main/java/com/ruoyi/common/enums/StockInQualifiedRecordTypeEnum.java b/src/main/java/com/ruoyi/common/enums/StockInQualifiedRecordTypeEnum.java
index 20059d5..4e1d4bf 100644
--- a/src/main/java/com/ruoyi/common/enums/StockInQualifiedRecordTypeEnum.java
+++ b/src/main/java/com/ruoyi/common/enums/StockInQualifiedRecordTypeEnum.java
@@ -11,7 +11,8 @@
PRODUCTION_REPORT_STOCK_IN("2", "鐢熶骇鎶ュ伐-鍏ュ簱"),
PURCHASE_STOCK_IN("7", "閲囪喘-鍏ュ簱"),
QUALITYINSPECT_STOCK_IN("6", "璐ㄦ-鍚堟牸鍏ュ簱"),
- DEFECTIVE_PASS("11", "涓嶅悎鏍�-璁╂鏀捐");
+ DEFECTIVE_PASS("11", "涓嶅悎鏍�-璁╂鏀捐"),
+ LIFT_THE_QUARANTINE("12", "涓嶅悎鏍�-鍙栨秷闅旂");
private final String code;
diff --git a/src/main/java/com/ruoyi/quality/controller/QualityUnqualifiedController.java b/src/main/java/com/ruoyi/quality/controller/QualityUnqualifiedController.java
index 92ec2ba..5968a6a 100644
--- a/src/main/java/com/ruoyi/quality/controller/QualityUnqualifiedController.java
+++ b/src/main/java/com/ruoyi/quality/controller/QualityUnqualifiedController.java
@@ -106,7 +106,7 @@
* @return
*/
@PostMapping("/liftTheQuarantine")
- public AjaxResult liftTheQuarantine(QualityUnqualified qualityUnqualified) {
+ public AjaxResult liftTheQuarantine(@RequestBody QualityUnqualified qualityUnqualified) {
return AjaxResult.success(qualityUnqualifiedService.liftTheQuarantine(qualityUnqualified));
}
}
diff --git a/src/main/java/com/ruoyi/quality/pojo/QualityUnqualified.java b/src/main/java/com/ruoyi/quality/pojo/QualityUnqualified.java
index f847294..0c34c62 100644
--- a/src/main/java/com/ruoyi/quality/pojo/QualityUnqualified.java
+++ b/src/main/java/com/ruoyi/quality/pojo/QualityUnqualified.java
@@ -93,6 +93,12 @@
private String defectivePhenomena;
/**
+ * 鏄惁宸插彇娑堥殧绂�
+ */
+ @Excel(name = "鏄惁宸插彇娑堥殧绂�")
+ private Boolean quarantineLifted;
+
+ /**
* 澶勭悊缁撴灉
*/
@Excel(name = "澶勭悊缁撴灉")
diff --git a/src/main/java/com/ruoyi/quality/service/impl/QualityUnqualifiedServiceImpl.java b/src/main/java/com/ruoyi/quality/service/impl/QualityUnqualifiedServiceImpl.java
index b012316..8934826 100644
--- a/src/main/java/com/ruoyi/quality/service/impl/QualityUnqualifiedServiceImpl.java
+++ b/src/main/java/com/ruoyi/quality/service/impl/QualityUnqualifiedServiceImpl.java
@@ -29,6 +29,7 @@
import com.ruoyi.stock.service.StockUninventoryService;
import lombok.AllArgsConstructor;
import org.springframework.stereotype.Service;
+import org.springframework.transaction.annotation.Transactional;
import javax.servlet.http.HttpServletResponse;
import java.math.BigDecimal;
@@ -170,19 +171,30 @@
}
@Override
+ @Transactional(rollbackFor = Exception.class)
public boolean liftTheQuarantine(QualityUnqualified qualityUnqualified) {
- if (qualityUnqualified.getDealResult().equals("闅旂")) {
+ QualityUnqualified unqualified = qualityUnqualifiedMapper.selectById(qualityUnqualified.getId());
+ if (unqualified.getQuarantineLifted()) {
+ throw new RuntimeException("璇ヤ笉鍚堟牸鍝佸凡琚彇娑堥殧绂�");
+ }
+
+ if (unqualified.getDealResult() == null) {
+ throw new RuntimeException("璇ヤ笉鍚堟牸鍝佹湭琚鐞�");
+ }
+
+ if (!unqualified.getDealResult().equals("闅旂")) {
throw new RuntimeException("璇ヤ笉鍚堟牸鍝佹湭琚殧绂�");
}
// 鍙栨秷闅旂 璋冪敤鎻愪氦鍚堟牸鐨勬帴鍙�
- QualityInspect qualityInspect = qualityInspectService.getById(qualityUnqualified.getInspectId());
+ QualityInspect qualityInspect = qualityInspectService.getById(unqualified.getInspectId());
if (qualityInspect.getInspectType().equals(2)) {
- stockUtils.addStockNoReview(qualityInspect.getProductModelId(), qualityUnqualified.getQuantity(), StockInQualifiedRecordTypeEnum.DEFECTIVE_PASS.getCode(), qualityUnqualified.getId());
+ stockUtils.addStockNoReview(qualityInspect.getProductModelId(), unqualified.getQuantity(), StockInQualifiedRecordTypeEnum.LIFT_THE_QUARANTINE.getCode(), unqualified.getId());
} else {
- stockUtils.addStock(qualityInspect.getProductModelId(), qualityUnqualified.getQuantity(), StockInQualifiedRecordTypeEnum.DEFECTIVE_PASS.getCode(), qualityUnqualified.getId());
+ stockUtils.addStock(qualityInspect.getProductModelId(), unqualified.getQuantity(), StockInQualifiedRecordTypeEnum.LIFT_THE_QUARANTINE.getCode(), unqualified.getId());
}
- return true;
+ unqualified.setQuarantineLifted(true);
+ return qualityUnqualifiedMapper.updateById(unqualified) > 0;
}
@Override
diff --git a/src/main/resources/mapper/quality/QualityUnqualifiedMapper.xml b/src/main/resources/mapper/quality/QualityUnqualifiedMapper.xml
index b5b0ee1..666d3a9 100644
--- a/src/main/resources/mapper/quality/QualityUnqualifiedMapper.xml
+++ b/src/main/resources/mapper/quality/QualityUnqualifiedMapper.xml
@@ -16,6 +16,7 @@
qu.deal_result,
qu.deal_name,
qu.deal_time,
+ qu.quarantine_lifted,
CASE
WHEN qu.model = pm.id THEN pm.model
ELSE qu.model
--
Gitblit v1.9.3