From bf3858536df66d1793693ee69bddf791ff011092 Mon Sep 17 00:00:00 2001
From: liyong <18434998025@163.com>
Date: 星期一, 09 二月 2026 16:44:01 +0800
Subject: [PATCH] fix(quality): 修复质量不合格处理逻辑并优化查询性能
---
src/main/java/com/ruoyi/quality/service/impl/QualityUnqualifiedServiceImpl.java | 21 +++++++++++++++++++--
src/main/java/com/ruoyi/purchase/service/impl/PurchaseLedgerServiceImpl.java | 18 +++++++++---------
src/main/resources/mapper/quality/QualityUnqualifiedMapper.xml | 21 +++++++++++++++++++--
3 files changed, 47 insertions(+), 13 deletions(-)
diff --git a/src/main/java/com/ruoyi/purchase/service/impl/PurchaseLedgerServiceImpl.java b/src/main/java/com/ruoyi/purchase/service/impl/PurchaseLedgerServiceImpl.java
index 37ca018..d71b3bb 100644
--- a/src/main/java/com/ruoyi/purchase/service/impl/PurchaseLedgerServiceImpl.java
+++ b/src/main/java/com/ruoyi/purchase/service/impl/PurchaseLedgerServiceImpl.java
@@ -209,15 +209,15 @@
if (productList != null && !productList.isEmpty()) {
handleSalesLedgerProducts(purchaseLedger.getId(), productList, purchaseLedgerDto.getType());
}
- //鏂板鍘熸潗鏂欐楠�
- if (productList != null) {
- for (SalesLedgerProduct saleProduct : productList) {
- //鏄惁鎺ㄩ�佽川妫�锛屽鏋渢rue灏辨坊鍔�
- if (saleProduct.getIsChecked()) {
- addQualityInspect(purchaseLedger, saleProduct);
- }
- }
- }
+ //鏂板鍘熸潗鏂欐楠� 瀹℃壒涔嬪悗鎵嶇敓鎴愭楠�
+// if (productList != null) {
+// for (SalesLedgerProduct saleProduct : productList) {
+// //鏄惁鎺ㄩ�佽川妫�锛屽鏋渢rue灏辨坊鍔�
+// if (saleProduct.getIsChecked()) {
+// addQualityInspect(purchaseLedger, saleProduct);
+// }
+// }
+// }
// 5. 杩佺Щ涓存椂鏂囦欢鍒版寮忕洰褰�
if (purchaseLedgerDto.getTempFileIds() != null && !purchaseLedgerDto.getTempFileIds().isEmpty()) {
migrateTempFilesToFormal(purchaseLedger.getId(), purchaseLedgerDto.getTempFileIds());
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 5e98fa8..fa38ae8 100644
--- a/src/main/java/com/ruoyi/quality/service/impl/QualityUnqualifiedServiceImpl.java
+++ b/src/main/java/com/ruoyi/quality/service/impl/QualityUnqualifiedServiceImpl.java
@@ -64,7 +64,7 @@
public int deal(QualityUnqualified qualityUnqualified) {
QualityUnqualified unqualified = qualityUnqualifiedMapper.selectById(qualityUnqualified.getId());
QualityInspect qualityInspect = qualityInspectService.getById(unqualified.getInspectId());
- if (ObjectUtils.isNotNull(qualityInspect) && qualityInspect.getInspectType()!=0) {
+ if (ObjectUtils.isNotNull(qualityInspect) && qualityInspect.getInspectType() != 0) {
switch (qualityUnqualified.getDealResult()) {
case "杩斾慨":
case "杩斿伐":
@@ -113,7 +113,7 @@
}
}
// 鐢熸垚瀹屾暣鐨勫伐鍗曞彿
- String workOrderNoStr ="FG" +String.format("%s%03d", datePrefix, sequenceNumber);
+ String workOrderNoStr = "FG" + String.format("%s%03d", datePrefix, sequenceNumber);
ProductWorkOrder productWorkOrder = new ProductWorkOrder();
productWorkOrder.setProductProcessRouteItemId(productProcessRouteItem.getId());
productWorkOrder.setProductOrderId(order.getId());
@@ -138,6 +138,23 @@
default:
break;
}
+ } else {
+ switch (qualityUnqualified.getDealResult()) {
+ case "杩斾慨":
+ case "杩斿伐":
+ // TODO
+ case "鎶ュ簾":
+ //璋冪敤涓嶅悎鏍煎簱瀛樻帴鍙� 鍏ヤ笉鍚堟牸搴�
+ stockUtils.addUnStock(Long.valueOf(unqualified.getModel()), unqualified.getQuantity(), StockInUnQualifiedRecordTypeEnum.DEFECTIVE_SCRAP.getCode(), unqualified.getId());
+ break;
+ case "璁╂鏀捐":
+ //璋冪敤鎻愪氦鍚堟牸鐨勬帴鍙�
+ stockUtils.addStock(qualityInspect.getProductModelId(), unqualified.getQuantity(), StockInQualifiedRecordTypeEnum.DEFECTIVE_PASS.getCode(), unqualified.getId());
+ break;
+ default:
+ break;
+ }
+
}
qualityUnqualified.setInspectState(1);//宸插鐞�
return qualityUnqualifiedMapper.updateById(qualityUnqualified);
diff --git a/src/main/resources/mapper/quality/QualityUnqualifiedMapper.xml b/src/main/resources/mapper/quality/QualityUnqualifiedMapper.xml
index b15e3f9..a721a30 100644
--- a/src/main/resources/mapper/quality/QualityUnqualifiedMapper.xml
+++ b/src/main/resources/mapper/quality/QualityUnqualifiedMapper.xml
@@ -3,8 +3,25 @@
<mapper namespace="com.ruoyi.quality.mapper.QualityUnqualifiedMapper">
<select id="qualityUnqualifiedListPage" resultType="com.ruoyi.quality.pojo.QualityUnqualified">
SELECT
- *
- FROM quality_unqualified
+ qu.id,
+ qu.inspect_type,
+ qu.inspect_state,
+ qu.check_time,
+ qu.check_name,
+ qu.product_id,
+ qu.product_name,
+ qu.unit,
+ qu.quantity,
+ qu.defective_phenomena,
+ qu.deal_result,
+ qu.deal_name,
+ qu.deal_time,
+ CASE
+ WHEN qu.model = pm.id THEN pm.model
+ ELSE qu.model
+ END AS model
+ FROM quality_unqualified qu
+ LEFT JOIN product_model pm ON qu.model = pm.id
where
1=1
<if test="qualityUnqualified.inspectType != null ">
--
Gitblit v1.9.3