From 9571956561915d24ebfc0915117e7df24ea3058d Mon Sep 17 00:00:00 2001
From: gongchunyi <deslre0381@gmail.com>
Date: 星期五, 03 四月 2026 10:52:05 +0800
Subject: [PATCH] fix: 发货审批通过库存不扣减
---
src/main/java/com/ruoyi/approve/service/impl/ApproveProcessServiceImpl.java | 32 +++++++++++++++++++++++---------
1 files changed, 23 insertions(+), 9 deletions(-)
diff --git a/src/main/java/com/ruoyi/approve/service/impl/ApproveProcessServiceImpl.java b/src/main/java/com/ruoyi/approve/service/impl/ApproveProcessServiceImpl.java
index a624661..e42726f 100644
--- a/src/main/java/com/ruoyi/approve/service/impl/ApproveProcessServiceImpl.java
+++ b/src/main/java/com/ruoyi/approve/service/impl/ApproveProcessServiceImpl.java
@@ -29,6 +29,8 @@
import com.ruoyi.purchase.pojo.PurchaseLedger;
import com.ruoyi.sales.mapper.CommonFileMapper;
import com.ruoyi.sales.mapper.ShippingInfoMapper;
+import com.ruoyi.sales.mapper.SalesLedgerMapper;
+import com.ruoyi.sales.pojo.SalesLedger;
import com.ruoyi.sales.pojo.CommonFile;
import com.ruoyi.sales.pojo.ShippingInfo;
import com.ruoyi.sales.service.impl.CommonFileServiceImpl;
@@ -79,6 +81,9 @@
private CommonFileServiceImpl commonFileService;
@Autowired
private ISysNoticeService sysNoticeService;
+
+ @Autowired
+ private SalesLedgerMapper salesLedgerMapper;
@Override
public void addApprove(ApproveProcessVO approveProcessVO) throws Exception {
@@ -191,19 +196,28 @@
// 鍙戣揣瀹℃壒鏌ヨ
else if (record.getApproveType() == 7) {
- String reason = record.getApproveReason(); // 鏍煎紡涓� "xx:...-..."
+ String reason = record.getApproveReason(); // 鏍煎紡涓� "xx:CONTRACT_NO"
if (StringUtils.hasText(reason) && reason.contains(":")) {
- // 鎻愬彇鍐掑彿鍚庨潰鐨勫彂璐у崟鍙�
- String shippingNo = reason.split(":")[1];
- // 鏍规嵁鍙戣揣鍗曞彿鏌ヨ鍙戣揣鍙拌处璁板綍
- ShippingInfo shippingInfo = shippingInfoMapper.selectOne(new LambdaQueryWrapper<ShippingInfo>()
- .eq(ShippingInfo::getShippingNo, shippingNo)
+ // 鎻愬彇鍐掑彿鍚庨潰鐨勬爣璇嗙 (鍙兘鏄悎鍚屽彿鎴栧彂璐у崟鍙�)
+ String identifier = reason.split(":")[1];
+ // 1. 浼樺厛灏濊瘯鎵鹃攢鍞彴璐� (鏂伴�昏緫锛氬悎鍚屽彿鍚屾瀹℃壒)
+ SalesLedger ledger = salesLedgerMapper.selectOne(new LambdaQueryWrapper<SalesLedger>()
+ .eq(SalesLedger::getSalesContractNo, identifier)
.last("limit 1"));
- if (shippingInfo != null) {
- // 浣跨敤鍙戣揣鍙拌处鐨� 閿�鍞彴璐D 鍘绘煡闄勪欢
+ if (ledger != null) {
allFiles = commonFileMapper.selectList(new LambdaQueryWrapper<CommonFile>()
- .eq(CommonFile::getCommonId, shippingInfo.getSalesLedgerId())
+ .eq(CommonFile::getCommonId, ledger.getId())
.eq(CommonFile::getType, FileNameType.SALE.getValue()));
+ } else {
+ // 2. 鍥為��鍒版棫閫昏緫锛氬彂璐у崟鍙�
+ ShippingInfo shippingInfo = shippingInfoMapper.selectOne(new LambdaQueryWrapper<ShippingInfo>()
+ .eq(ShippingInfo::getShippingNo, identifier)
+ .last("limit 1"));
+ if (shippingInfo != null) {
+ allFiles = commonFileMapper.selectList(new LambdaQueryWrapper<CommonFile>()
+ .eq(CommonFile::getCommonId, shippingInfo.getSalesLedgerId())
+ .eq(CommonFile::getType, FileNameType.SALE.getValue()));
+ }
}
}
}
--
Gitblit v1.9.3