From befe7f238921f08091ba22f8a6c067e9aced28ba Mon Sep 17 00:00:00 2001
From: gaoluyang <2820782392@qq.com>
Date: 星期三, 04 十一月 2026 11:25:41 +0800
Subject: [PATCH] feat(库存): 库存列表与库存报表支持按采购订单号过滤
---
src/main/java/com/ruoyi/procurementrecord/utils/StockUtils.java | 41 +++++++++++++++++++++++++++++++++++++++--
1 files changed, 39 insertions(+), 2 deletions(-)
diff --git a/src/main/java/com/ruoyi/procurementrecord/utils/StockUtils.java b/src/main/java/com/ruoyi/procurementrecord/utils/StockUtils.java
index 6c56359..e8cd02b 100644
--- a/src/main/java/com/ruoyi/procurementrecord/utils/StockUtils.java
+++ b/src/main/java/com/ruoyi/procurementrecord/utils/StockUtils.java
@@ -4,9 +4,13 @@
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.toolkit.ObjectUtils;
import com.ruoyi.common.enums.ReviewStatusEnum;
+import com.ruoyi.common.enums.StockOutQualifiedRecordTypeEnum;
import com.ruoyi.procurementrecord.mapper.ProcurementRecordMapper;
import com.ruoyi.procurementrecord.mapper.ProcurementRecordOutMapper;
+import com.ruoyi.sales.mapper.ShippingProductDetailMapper;
+import com.ruoyi.sales.pojo.ShippingProductDetail;
import com.ruoyi.stock.dto.StockInventoryDto;
+import com.ruoyi.stock.dto.StockOutRecordDto;
import com.ruoyi.stock.dto.StockUninventoryDto;
import com.ruoyi.stock.pojo.StockInRecord;
import com.ruoyi.stock.pojo.StockOutRecord;
@@ -31,6 +35,7 @@
private final StockInventoryService stockInventoryService;
private final StockInRecordService stockInRecordService;
private final StockOutRecordService stockOutRecordService;
+ private final ShippingProductDetailMapper shippingProductDetailMapper;
/**
* 涓嶅悎鏍煎叆搴�
@@ -154,15 +159,47 @@
}
/**
- * 鍙戣揣瀹℃壒鐘舵�佹洿鏀�
+ * 鍙櫥璁板嚭搴撴祦姘达紝涓嶆牎楠屻�佷笉鎵e噺搴撳瓨銆�
+ * 鐢ㄤ簬鏈惎鐢ㄤ粨鍌ㄦā鍧椼�佸彂璐ф病鏈夊簱瀛樻壒鍙风殑鍦烘櫙銆�
+ *
+ * @param productModelId
+ * @param quantity
+ * @param recordType
+ * @param recordId
+ * @param batchNo
+ */
+ public void recordStockOutWithoutInventory(Long productModelId, BigDecimal quantity, String recordType, Long recordId, String batchNo) {
+ StockOutRecordDto stockOutRecordDto = new StockOutRecordDto();
+ stockOutRecordDto.setRecordId(recordId);
+ stockOutRecordDto.setRecordType(String.valueOf(recordType));
+ stockOutRecordDto.setStockOutNum(quantity);
+ stockOutRecordDto.setProductModelId(productModelId);
+ stockOutRecordDto.setBatchNo(batchNo);
+ stockOutRecordDto.setType("0");
+ stockOutRecordService.add(stockOutRecordDto);
+ }
+
+ /**
+ * 鍙戣揣瀹℃壒鐘舵�佹洿鏀广��
+ * 娌℃湁搴撳瓨鎵瑰彿鐨勫彂璐э紙鏈惎鐢ㄤ粨鍌ㄦā鍧楋級娌℃湁鍑哄簱瀹℃牳鐜妭锛屽鎵归�氳繃鍗宠涓哄凡鍑哄簱锛�
+ * 鍚﹀垯鍙戣揣鏁伴噺缁熻涓嶅埌銆�
+ *
* @param recordType
* @param recordId
*/
public void shipmentStatus(String recordType, Long recordId) {
+ Long inventoryBatchCount = shippingProductDetailMapper.selectCount(new LambdaQueryWrapper<ShippingProductDetail>()
+ .eq(ShippingProductDetail::getShippingInfoId, recordId)
+ .isNotNull(ShippingProductDetail::getStockInventoryId));
+ boolean withoutInventoryBatch = StockOutQualifiedRecordTypeEnum.SALE_SHIP_STOCK_OUT.getCode().equals(recordType)
+ && inventoryBatchCount == 0;
+ Integer approvalStatus = withoutInventoryBatch
+ ? ReviewStatusEnum.APPROVED.getCode()
+ : ReviewStatusEnum.PENDING_REVIEW.getCode();
LambdaQueryWrapper<StockOutRecord> queryWrapper = new LambdaQueryWrapper<StockOutRecord>().eq(StockOutRecord::getRecordType, recordType)
.eq(StockOutRecord::getRecordId, recordId);
stockOutRecordService.list(queryWrapper).stream().forEach(stockOutRecord -> {
- stockOutRecord.setApprovalStatus(0);
+ stockOutRecord.setApprovalStatus(approvalStatus);
stockOutRecordService.updateById(stockOutRecord);
});
}
--
Gitblit v1.9.3