From 6d3a76f894052209cad136ec9bff6ddcd43fc4e7 Mon Sep 17 00:00:00 2001
From: gongchunyi <deslre0381@gmail.com>
Date: 星期一, 20 四月 2026 17:55:48 +0800
Subject: [PATCH] feat: 扫码时做限制,若采购台账已全部质检入库,APP扫码 入库时提示已入库。并且联动质检
---
src/main/java/com/ruoyi/approve/service/impl/ApproveNodeServiceImpl.java | 27 ++++++++++++++++++---------
1 files changed, 18 insertions(+), 9 deletions(-)
diff --git a/src/main/java/com/ruoyi/approve/service/impl/ApproveNodeServiceImpl.java b/src/main/java/com/ruoyi/approve/service/impl/ApproveNodeServiceImpl.java
index cee9249..f9b6d0f 100644
--- a/src/main/java/com/ruoyi/approve/service/impl/ApproveNodeServiceImpl.java
+++ b/src/main/java/com/ruoyi/approve/service/impl/ApproveNodeServiceImpl.java
@@ -13,7 +13,6 @@
import com.ruoyi.approve.service.IApproveNodeService;
import com.ruoyi.common.enums.FileNameType;
import com.ruoyi.common.enums.StockInQualifiedRecordTypeEnum;
-import com.ruoyi.common.enums.StockOutQualifiedRecordTypeEnum;
import com.ruoyi.common.utils.SecurityUtils;
import com.ruoyi.device.mapper.DeviceRepairMapper;
import com.ruoyi.device.pojo.DeviceRepair;
@@ -39,6 +38,7 @@
import org.springframework.util.CollectionUtils;
import java.io.IOException;
+import java.math.BigDecimal;
import java.time.LocalDateTime;
import java.util.Arrays;
import java.util.Comparator;
@@ -208,15 +208,26 @@
purchaseLedger.setApprovalStatus(3);
List<SalesLedgerProduct> salesLedgerProducts = salesLedgerProductMapper.selectList(new QueryWrapper<SalesLedgerProduct>()
.lambda().eq(SalesLedgerProduct::getSalesLedgerId, purchaseLedger.getId()).eq(SalesLedgerProduct::getType, 2));
+ boolean hasCheckedProduct = false;
for (SalesLedgerProduct salesLedgerProduct : salesLedgerProducts) {
// 璐ㄦ
if (salesLedgerProduct.getIsChecked()) {
+ hasCheckedProduct = true;
purchaseLedgerServiceImpl.addQualityInspect(purchaseLedger, salesLedgerProduct);
}else {
//鐩存帴鍏ュ簱
- stockUtils.addStock(salesLedgerProduct.getProductModelId(), salesLedgerProduct.getQuantity(), StockInQualifiedRecordTypeEnum.PURCHASE_STOCK_IN.getCode(), purchaseLedger.getId());
+ stockUtils.addStock(null, salesLedgerProduct.getId(), salesLedgerProduct.getProductModelId(),
+ salesLedgerProduct.getQuantity(), StockInQualifiedRecordTypeEnum.PURCHASE_STOCK_IN.getCode(), salesLedgerProduct.getId());
+ BigDecimal oldStocked = salesLedgerProduct.getStockedQuantity() == null ? BigDecimal.ZERO : salesLedgerProduct.getStockedQuantity();
+ BigDecimal orderQty = salesLedgerProduct.getQuantity() == null ? BigDecimal.ZERO : salesLedgerProduct.getQuantity();
+ BigDecimal newStocked = oldStocked.add(orderQty);
+ salesLedgerProduct.setStockedQuantity(newStocked);
+ salesLedgerProduct.setProductStockStatus(2);
+ salesLedgerProduct.fillRemainingQuantity();
+ salesLedgerProductMapper.updateById(salesLedgerProduct);
}
}
+ purchaseLedger.setStockStatus(hasCheckedProduct ? 0 : 2);
} else if (status.equals(3)) {
// 鎷掔粷
purchaseLedger.setApprovalStatus(4);
@@ -251,15 +262,12 @@
SalesLedger salesLedger = salesLedgerMapper.selectOne(new LambdaQueryWrapper<SalesLedger>()
.eq(SalesLedger::getSalesContractNo, identifier)
.last("limit 1"));
-
+
if (salesLedger != null) {
if(status.equals(2)){
- // 瀹℃壒瀹屾垚 -> 鑷姩鎵i櫎搴撳瓨
- try {
- shippingInfoService.deductStockByOrder(salesLedger.getId(), null);
- } catch (IOException e) {
- throw new RuntimeException("鑷姩鎵i櫎搴撳瓨澶辫触: " + e.getMessage());
- }
+ // 瀹℃壒瀹屾垚 -> 淇敼鐘舵�佷负瀹℃牳閫氳繃锛屼笉鎵i櫎搴撳瓨 (鎵i櫎搴撳瓨绉昏嚦鍙戣揣鍙拌处琛ュ厖淇℃伅闃舵)
+ updateSalesLedgerDeliveryStatus(salesLedger.getId(), 4);
+ updateShippingInfoStatusByOrder(salesLedger.getId(), "瀹℃牳閫氳繃");
} else if(status.equals(3)){
updateSalesLedgerDeliveryStatus(salesLedger.getId(), 3);
// 鏇存柊鍏宠仈鐨勫彂璐ц褰曚负瀹℃牳鎷掔粷
@@ -271,6 +279,7 @@
}
}
}
+
// 缁戝畾闄勪欢
if(!CollectionUtils.isEmpty(approveNode.getTempFileIds()) && approveNode.getApproveNodeStatus() == 1){
tempFileService.migrateTempFilesToFormal(approveNode.getId(), approveNode.getTempFileIds(), FileNameType.ApproveNode.getValue());
--
Gitblit v1.9.3