From 7979226b829e6df76b66b25a6d709832af338e2e Mon Sep 17 00:00:00 2001
From: huminmin <mac@MacBook-Pro.local>
Date: 星期五, 03 七月 2026 15:39:15 +0800
Subject: [PATCH] 新增采购退货后,如果对应的采购退货审批也通过,采购退货记录不能删除,删除按钮置灰
---
src/main/java/com/ruoyi/purchase/dto/PurchaseReturnOrderHasAllInfoDto.java | 5 +++++
src/main/java/com/ruoyi/purchase/controller/PurchaseReturnOrdersController.java | 10 ++++++++++
src/main/resources/mapper/purchase/PurchaseReturnOrdersMapper.xml | 13 ++++++++++++-
3 files changed, 27 insertions(+), 1 deletions(-)
diff --git a/src/main/java/com/ruoyi/purchase/controller/PurchaseReturnOrdersController.java b/src/main/java/com/ruoyi/purchase/controller/PurchaseReturnOrdersController.java
index 6e73ee1..579d62d 100644
--- a/src/main/java/com/ruoyi/purchase/controller/PurchaseReturnOrdersController.java
+++ b/src/main/java/com/ruoyi/purchase/controller/PurchaseReturnOrdersController.java
@@ -13,6 +13,8 @@
import com.ruoyi.purchase.dto.PurchaseReturnOrderDto;
import com.ruoyi.purchase.mapper.PurchaseReturnOrdersMapper;
import com.ruoyi.purchase.pojo.PurchaseReturnOrders;
+import com.ruoyi.stock.mapper.StockOutRecordMapper;
+import com.ruoyi.stock.pojo.StockOutRecord;
import java.time.LocalDateTime;
import com.ruoyi.purchase.service.PurchaseReturnOrdersService;
@@ -40,6 +42,7 @@
private PurchaseReturnOrdersService purchaseReturnOrdersService;
private PurchaseReturnOrdersMapper purchaseReturnOrdersMapper;
private AccountStatementDetailsService accountStatementDetailsService;
+ private StockOutRecordMapper stockOutRecordMapper;
@GetMapping("/listPage")
@@ -72,6 +75,13 @@
if (CollectionUtils.isNotEmpty(accountStatementDetails)){
throw new ServiceException("璇ラ噰璐��璐у崟宸茬粡鐢熸垚瀵硅处鍗曪紝鏃犳硶鍒犻櫎");
}
+ List<StockOutRecord> approvedStockOutRecords = stockOutRecordMapper.selectList(Wrappers.<StockOutRecord>lambdaQuery()
+ .eq(StockOutRecord::getRecordType, "9")
+ .eq(StockOutRecord::getApprovalStatus, 1)
+ .inSql(StockOutRecord::getRecordId, "select id from purchase_return_order_products where purchase_return_order_id = " + id));
+ if (CollectionUtils.isNotEmpty(approvedStockOutRecords)) {
+ throw new ServiceException("璇ラ噰璐��璐у崟瀵瑰簲鍑哄簱宸插鏍搁�氳繃锛屾棤娉曞垹闄�");
+ }
purchaseReturnOrdersService.deleteById(id);
return AjaxResult.success();
}
diff --git a/src/main/java/com/ruoyi/purchase/dto/PurchaseReturnOrderHasAllInfoDto.java b/src/main/java/com/ruoyi/purchase/dto/PurchaseReturnOrderHasAllInfoDto.java
index 6736072..67c98dd 100644
--- a/src/main/java/com/ruoyi/purchase/dto/PurchaseReturnOrderHasAllInfoDto.java
+++ b/src/main/java/com/ruoyi/purchase/dto/PurchaseReturnOrderHasAllInfoDto.java
@@ -17,6 +17,11 @@
private String shippingTypeText;
+ /**
+ * 瀵瑰簲鍑哄簱鏄惁宸插鏍搁�氳繃
+ */
+ private Boolean stockOutApproved;
+
//閫�鏂欎汉濮撳悕
private String returnUserName;
diff --git a/src/main/resources/mapper/purchase/PurchaseReturnOrdersMapper.xml b/src/main/resources/mapper/purchase/PurchaseReturnOrdersMapper.xml
index 4b09890..8ca4903 100644
--- a/src/main/resources/mapper/purchase/PurchaseReturnOrdersMapper.xml
+++ b/src/main/resources/mapper/purchase/PurchaseReturnOrdersMapper.xml
@@ -26,7 +26,18 @@
SELECT
pro.*,
sm.supplier_name as supplier_name,
- pl.purchase_contract_number as purchase_contract_number
+ pl.purchase_contract_number as purchase_contract_number,
+ CASE
+ WHEN EXISTS (
+ SELECT 1
+ FROM purchase_return_order_products prop
+ INNER JOIN stock_out_record sor ON sor.record_id = prop.id
+ AND sor.record_type = '9'
+ AND sor.approval_status = 1
+ WHERE prop.purchase_return_order_id = pro.id
+ ) THEN 1
+ ELSE 0
+ END AS stock_out_approved
FROM purchase_return_orders pro
LEFT JOIN supplier_manage sm ON pro.supplier_id = sm.id
LEFT JOIN purchase_ledger pl ON pl.id = pro.purchase_ledger_id
--
Gitblit v1.9.3