From 4a9e3d2ab8eb4cc239414542d8335a36071151f3 Mon Sep 17 00:00:00 2001
From: yuan <123@>
Date: 星期六, 06 六月 2026 14:38:41 +0800
Subject: [PATCH] feat: 所有入库出库审批默认通过

---
 src/main/java/com/ruoyi/sales/service/impl/ShippingInfoServiceImpl.java |   29 +++++++++++++++++++++--------
 1 files changed, 21 insertions(+), 8 deletions(-)

diff --git a/src/main/java/com/ruoyi/sales/service/impl/ShippingInfoServiceImpl.java b/src/main/java/com/ruoyi/sales/service/impl/ShippingInfoServiceImpl.java
index 5f8788d..ea38018 100644
--- a/src/main/java/com/ruoyi/sales/service/impl/ShippingInfoServiceImpl.java
+++ b/src/main/java/com/ruoyi/sales/service/impl/ShippingInfoServiceImpl.java
@@ -2,6 +2,7 @@
 
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.core.toolkit.Wrappers;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import com.ruoyi.approve.pojo.ApproveProcess;
@@ -10,9 +11,10 @@
 import com.ruoyi.basic.enums.RecordTypeEnum;
 import com.ruoyi.basic.utils.FileUtil;
 import com.ruoyi.common.enums.FileNameType;
+import com.ruoyi.common.enums.StockInQualifiedRecordTypeEnum;
 import com.ruoyi.common.enums.StockOutQualifiedRecordTypeEnum;
+import com.ruoyi.procurementrecord.bean.vo.ShippingProductVo;
 import com.ruoyi.procurementrecord.utils.StockUtils;
-import com.ruoyi.sales.dto.SalesLedgerProductDto;
 import com.ruoyi.sales.dto.ShippingApproveDto;
 import com.ruoyi.sales.dto.ShippingInfoDto;
 import com.ruoyi.sales.dto.ShippingProductDetailDto;
@@ -22,11 +24,16 @@
 import com.ruoyi.sales.pojo.ShippingInfo;
 import com.ruoyi.sales.pojo.ShippingProductDetail;
 import com.ruoyi.sales.service.ShippingInfoService;
+import com.ruoyi.stock.pojo.StockInRecord;
+import com.ruoyi.stock.pojo.StockOutRecord;
+import com.ruoyi.stock.service.StockOutRecordService;
 import lombok.RequiredArgsConstructor;
 import lombok.extern.slf4j.Slf4j;
 import org.apache.commons.collections4.CollectionUtils;
 import org.springframework.stereotype.Service;
+import org.springframework.transaction.annotation.Transactional;
 
+import java.util.Collections;
 import java.util.List;
 
 /**
@@ -51,6 +58,7 @@
     private final ApproveProcessServiceImpl approveProcessService;
     private final FileUtil fileUtil;
     private final ShippingProductDetailMapper shippingProductDetailMapper;
+    private final StockOutRecordService stockOutRecordService;
 
     @Override
     public IPage<ShippingInfoDto> listPage(Page page, ShippingInfo req) {
@@ -89,18 +97,16 @@
     }
 
     @Override
+    @Transactional(rollbackFor = Exception.class)
     public boolean delete(List<Long> ids) {
         List<ShippingInfo> shippingInfos = shippingInfoMapper.selectList(new LambdaQueryWrapper<ShippingInfo>()
                 .in(ShippingInfo::getId, ids));
         if (CollectionUtils.isEmpty(shippingInfos)) return false;
+        // 鍙湁寰呭鏍哥姸鎬佹墠鑳藉垹闄�
+        boolean allPending = shippingInfos.stream().allMatch(s -> "寰呭鏍�".equals(s.getStatus()));
+        if (!allPending) throw new RuntimeException("鍙湁寰呭鏍哥姸鎬佹墠鑳藉垹闄�");
         // 鍒犻櫎闄勪欢
         commonFileService.deleteByBusinessIds(ids, FileNameType.SHIP.getValue());
-        // 鎵e凡鍙戣揣搴撳瓨
-        for (ShippingInfo shippingInfo : shippingInfos) {
-            if ("宸插彂璐�".equals(shippingInfo.getStatus())) {
-                stockUtils.deleteStockOutRecord(shippingInfo.getId(), StockOutQualifiedRecordTypeEnum.SALE_SHIP_STOCK_OUT.getCode());
-            }
-        }
         // 鍒犻櫎鍙戣揣瀹℃壒
         if (CollectionUtils.isNotEmpty(shippingInfos)) {
             for (ShippingInfo shippingInfo : shippingInfos) {
@@ -110,6 +116,8 @@
                     List<Long> list = one.stream().map(ApproveProcess::getId).toList();
                     approveProcessService.delByIds(list);
                 }
+                // 鎵e凡鍙戣揣搴撳瓨
+                stockUtils.deleteStockOutRecord(shippingInfo.getId(), StockOutQualifiedRecordTypeEnum.SALE_SHIP_STOCK_OUT.getCode());
             }
         }
         //鍒犻櫎鍙戣揣鏄庣粏
@@ -119,7 +127,7 @@
     }
 
     @Override
-    public List<SalesLedgerProductDto> getReturnManagementDtoById(Long shippingId) {
+    public List<ShippingProductVo> getReturnManagementDtoById(Long shippingId) {
         return shippingInfoMapper.getReturnManagementDtoById(shippingId);
 
     }
@@ -136,6 +144,11 @@
         shippingProductDetailMapper.insert(req.getBatchNoDetailList());
         for (ShippingProductDetail shippingProductDetail : req.getBatchNoDetailList()) {
             stockUtils.substractStock(shippingProductDetail.getProductModelId(), shippingProductDetail.getQuantity(), StockOutQualifiedRecordTypeEnum.SALE_SHIP_STOCK_OUT.getCode(), req.getId(), shippingProductDetail.getBatchNo());
+            //StockOutRecord stockOutRecord = stockOutRecordService.getOne(Wrappers.<StockOutRecord>lambdaQuery()
+            //        .eq(StockOutRecord::getRecordId, req.getId())
+            //        .eq(StockOutRecord::getRecordType, StockOutQualifiedRecordTypeEnum.SALE_SHIP_STOCK_OUT.getCode())
+            //);
+            //stockOutRecordService.batchApprove(Collections.singletonList(stockOutRecord.getId()),1);
         }
         // 淇濆瓨鏂囦欢
         fileUtil.saveStorageAttachment(ApplicationTypeEnum.IMAGE, RecordTypeEnum.SHIPPING_INFO, req.getId(), req.getStorageBlobDTOs());

--
Gitblit v1.9.3