From b66962529313dd3ac0e4b8c44e3d8d35ceb8c5fd Mon Sep 17 00:00:00 2001
From: liding <756868258@qq.com>
Date: 星期三, 17 六月 2026 14:16:28 +0800
Subject: [PATCH] feat(stock): 添加批量反审出库记录功能
---
src/main/java/com/ruoyi/stock/service/impl/StockOutRecordServiceImpl.java | 41 +++++++++++++++++++++++++++++++++++++++--
1 files changed, 39 insertions(+), 2 deletions(-)
diff --git a/src/main/java/com/ruoyi/stock/service/impl/StockOutRecordServiceImpl.java b/src/main/java/com/ruoyi/stock/service/impl/StockOutRecordServiceImpl.java
index 9a6bd9b..7138641 100644
--- a/src/main/java/com/ruoyi/stock/service/impl/StockOutRecordServiceImpl.java
+++ b/src/main/java/com/ruoyi/stock/service/impl/StockOutRecordServiceImpl.java
@@ -4,6 +4,8 @@
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.ruoyi.account.mapper.sales.AccountInvoiceApplicationMapper;
+import com.ruoyi.account.mapper.sales.AccountSalesCollectionMapper;
import com.ruoyi.common.enums.ReviewStatusEnum;
import com.ruoyi.common.enums.StockInQualifiedRecordTypeEnum;
import com.ruoyi.common.enums.StockOutQualifiedRecordTypeEnum;
@@ -13,6 +15,8 @@
import com.ruoyi.common.utils.StringUtils;
import com.ruoyi.common.utils.bean.BeanUtils;
import com.ruoyi.common.utils.poi.ExcelUtil;
+
+import java.time.LocalDateTime;
import com.ruoyi.stock.dto.StockInventoryDto;
import com.ruoyi.stock.dto.StockOutRecordDto;
import com.ruoyi.stock.dto.StockUninventoryDto;
@@ -46,6 +50,8 @@
private final StockOutRecordMapper stockOutRecordMapper;
private final StockInventoryMapper stockInventoryMapper;
private final StockUninventoryMapper stockUninventoryMapper;
+ private final AccountSalesCollectionMapper accountSalesCollectionMapper;
+ private final AccountInvoiceApplicationMapper accountInvoiceApplicationMapper;
@Override
public IPage<StockOutRecordDto> listPage(Page page, StockOutRecordDto stockOutRecordDto) {
@@ -54,8 +60,13 @@
@Override
public int add(StockOutRecordDto stockOutRecordDto) {
- String no = OrderUtils.countTodayByCreateTime(stockOutRecordMapper, "CK","outbound_batches");
+ LocalDateTime createTime = stockOutRecordDto.getCreateTime();
+ if (createTime == null) {
+ createTime = LocalDateTime.now();
+ }
+ String no = OrderUtils.countTodayByCreateTime(stockOutRecordMapper, "CK","outbound_batches", createTime);
stockOutRecordDto.setOutboundBatches(no);
+ stockOutRecordDto.setCreateTime(createTime);
if (StockOutQualifiedRecordTypeEnum.SALE_SHIP_STOCK_OUT.getCode().equals(stockOutRecordDto.getRecordType())){
stockOutRecordDto.setApprovalStatus(3);
}
@@ -77,6 +88,11 @@
@Override
public int batchDelete(List<Long> ids) {
+ //todo 濡傛灉鍑哄簱涓庡紑绁ㄦ敹娆炬湁鍏宠仈鍒欐棤娉曞垹闄�
+ if (accountSalesCollectionMapper.existsByStockOutRecordId(ids) ||
+ accountInvoiceApplicationMapper.existsByStockOutRecordId(ids)) {
+ throw new BaseException("鍑哄簱璁板綍瀛樺湪寮�绁ㄦ敹娆惧叧鑱旀暟鎹�,鏃犳硶鍒犻櫎!!!");
+ }
for (Long id : ids) {
StockOutRecord stockOutRecord = stockOutRecordMapper.selectById(id);
if (stockOutRecord.getType().equals("0")) {
@@ -97,7 +113,8 @@
stockInRecordDto.setBatchNo(stockInventory.getBatchNo());
stockInventoryMapper.updateAddStockInventory(stockInRecordDto);
}
- }else if (stockOutRecord.getType().equals("1")) {
+ }
+ else if (stockOutRecord.getType().equals("1")) {
LambdaQueryWrapper<StockUninventory> wrapper = new LambdaQueryWrapper<StockUninventory>()
.eq(StockUninventory::getProductModelId, stockOutRecord.getProductModelId());
if (StringUtils.isEmpty(stockOutRecord.getBatchNo())) {
@@ -198,6 +215,26 @@
return ids.size();
}
+ @Override
+ @Transactional(rollbackFor = Exception.class)
+ public int batchReAudit(List<Long> ids) {
+ if (CollectionUtils.isEmpty(ids)) {
+ throw new BaseException("璇烽�夋嫨鑷冲皯涓�鏉℃暟鎹�");
+ }
+ for (Long id : ids) {
+ StockOutRecord stockOutRecord = stockOutRecordMapper.selectById(id);
+ if (stockOutRecord == null) {
+ throw new BaseException("鍑哄簱璁板綍涓嶅瓨鍦�,鏃犳硶閲嶆柊瀹℃牳!!!");
+ }
+ if (!ReviewStatusEnum.REJECTED.getCode().equals(stockOutRecord.getApprovalStatus())) {
+ throw new BaseException("鍙湁椹冲洖鐘舵�佺殑璁板綍鎵嶈兘閲嶆柊瀹℃牳,鍑哄簱鎵规:" + stockOutRecord.getOutboundBatches());
+ }
+ stockOutRecord.setApprovalStatus(ReviewStatusEnum.PENDING_REVIEW.getCode());
+ stockOutRecordMapper.updateById(stockOutRecord);
+ }
+ return ids.size();
+ }
+
private StockInventory getStockInventory(Long productModelId, String batchNo) {
LambdaQueryWrapper<StockInventory> eq = new LambdaQueryWrapper<>();
eq.eq(StockInventory::getProductModelId, productModelId);
--
Gitblit v1.9.3