From a0c23770cc052d5370f2793d4b8dd93bedfc1322 Mon Sep 17 00:00:00 2001
From: liyong <18434998025@163.com>
Date: 星期二, 27 一月 2026 16:03:02 +0800
Subject: [PATCH] fix(enum): 库存冻结解冻功能添加

---
 src/main/java/com/ruoyi/sales/controller/ShipmentApprovalController.java |   62 ++++++++++++++++++++++---------
 1 files changed, 44 insertions(+), 18 deletions(-)

diff --git a/src/main/java/com/ruoyi/sales/controller/ShipmentApprovalController.java b/src/main/java/com/ruoyi/sales/controller/ShipmentApprovalController.java
index c678c48..39bdbf2 100644
--- a/src/main/java/com/ruoyi/sales/controller/ShipmentApprovalController.java
+++ b/src/main/java/com/ruoyi/sales/controller/ShipmentApprovalController.java
@@ -3,13 +3,19 @@
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.google.common.math.LongMath;
+import com.ruoyi.common.enums.StockQualifiedRecordTypeEnum;
+import com.ruoyi.common.exception.ServiceException;
 import com.ruoyi.common.utils.poi.ExcelUtil;
 import com.ruoyi.framework.web.controller.BaseController;
 import com.ruoyi.framework.web.domain.AjaxResult;
 import com.ruoyi.procurementrecord.dto.ProcurementAddDto;
 import com.ruoyi.procurementrecord.dto.ProcurementRecordOutAdd;
 import com.ruoyi.procurementrecord.pojo.ProcurementRecordOut;
+import com.ruoyi.procurementrecord.pojo.ProcurementRecordStorage;
 import com.ruoyi.procurementrecord.service.ProcurementRecordOutService;
+import com.ruoyi.procurementrecord.service.ProcurementRecordService;
+import com.ruoyi.procurementrecord.utils.StockUtils;
 import com.ruoyi.sales.mapper.ShipmentApprovalMapper;
 import com.ruoyi.sales.mapper.ShippingInfoMapper;
 import com.ruoyi.sales.pojo.SalesLedgerProduct;
@@ -26,6 +32,7 @@
 
 import javax.servlet.http.HttpServletResponse;
 import java.math.BigDecimal;
+import java.time.LocalDate;
 import java.time.LocalDateTime;
 import java.util.List;
 
@@ -42,7 +49,7 @@
     @Autowired
     private ISalesLedgerProductService salesLedgerProductService;
     @Autowired
-    private ProcurementRecordOutService procurementRecordOutService;
+    private StockUtils stockUtils;
 
     @GetMapping("/listPage")
     @ApiOperation("鍙戣揣瀹℃壒鍒楄〃")
@@ -55,34 +62,53 @@
     @ApiOperation("鍙戣揣瀹℃壒,鏇存柊鍙戣揣瀹℃壒鐘舵��")
     @Transactional(rollbackFor = Exception.class)
     public AjaxResult update(@RequestBody ShipmentApproval req) {
+
+        //  鏌ヨ鍙戣揣瀹℃壒
         ShipmentApproval shipmentApproval = shipmentApprovalMapper.selectById(req.getId());
         if (shipmentApproval == null) {
             return AjaxResult.error("鍙戣揣瀹℃壒涓嶅瓨鍦�");
         }
 
+        //  鏇存柊鍙戣揣瀹℃壒鐘舵��
         shipmentApproval.setApproveStatus(req.getApproveStatus());
         boolean update = shipmentApprovalService.updateById(shipmentApproval);
-        if(update){
-            SalesLedgerProduct salesLedgerProduct = salesLedgerProductService.getById(shipmentApproval.getSalesLedgerProductId());
-            salesLedgerProduct.setApproveStatus(req.getApproveStatus());
-            salesLedgerProductService.updateById(salesLedgerProduct);
-            if(req.getApproveStatus()==3){
-                //鍙戣揣瀹℃壒閫氳繃锛岀敓浜ц璁㈠崟鍑哄簱璁板綍
-                ProcurementRecordOutAdd procurementRecordOutAdd = new ProcurementRecordOutAdd();
-                procurementRecordOutAdd.setSalesLedgerProductId(Math.toIntExact(salesLedgerProduct.getId()));
-                procurementRecordOutAdd.setType(2);
-                procurementRecordOutAdd.setUserId(Math.toIntExact(getUserId()));
-                procurementRecordOutAdd.setQuantity(String.valueOf(salesLedgerProduct.getQuantity()));
-                //鑾峰彇褰撳墠鏃堕棿
-                LocalDateTime now = LocalDateTime.now();
-                procurementRecordOutAdd.setTime(now.toString());
-                procurementRecordOutService.stockout(procurementRecordOutAdd);
-            }
+        if (!update) {
+            //  浜嬪姟鍥炴粴
+            throw new ServiceException("鍙戣揣瀹℃壒鏇存柊澶辫触");
         }
-        return update ? AjaxResult.success() : AjaxResult.error();
+        //  鏌ヨ鍏宠仈鐨勯攢鍞彴璐︿骇鍝�
+        SalesLedgerProduct salesLedgerProduct = salesLedgerProductService.getById(shipmentApproval.getSalesLedgerProductId());
+        if (salesLedgerProduct == null) {
+            //  鎶涘紓甯镐簨鍔″洖婊�
+            throw new ServiceException("閿�鍞彴璐︿笉瀛樺湪锛屽鎵瑰洖婊�");
+        }
+
+        //  鍚屾鏇存柊閿�鍞彴璐︿骇鍝佺殑瀹℃壒鐘舵��
+        salesLedgerProduct.setApproveStatus(req.getApproveStatus());
+        salesLedgerProductService.updateById(salesLedgerProduct);
+
+        //  瀹℃壒閫氳繃
+        if (req.getApproveStatus() == 3) {
+//            // 鏌ヨ閲囪喘鍏ュ簱璁板綍
+//            LambdaQueryWrapper<ProcurementRecordStorage> lambdaQueryWrapper = new LambdaQueryWrapper<ProcurementRecordStorage>()
+//                    .eq(ProcurementRecordStorage::getSalesLedgerProductId, req.getSalesLedgerProductId());
+//            ProcurementRecordStorage procurementRecordStorage = procurementRecordStorageService.getOne(lambdaQueryWrapper);
+//
+//            if (procurementRecordStorage == null) {
+//                // 淇濊瘉鍓嶉潰鐨勪慨鏀瑰叏閮ㄥ洖婊�
+//                throw new ServiceException("閲囪喘璁板綍涓嶅瓨鍦紝瀹℃壒鍥炴粴");
+//            }
+
+
+            //鍑哄簱
+            stockUtils.addStock(salesLedgerProduct.getProductModelId(), salesLedgerProduct.getQuantity(), StockQualifiedRecordTypeEnum.SALE_SHIP_STOCK_OUT.getCode(), req.getId());
+        }
+
+        return AjaxResult.success();
     }
 
 
+
     /**
      * 瀵煎嚭鍙戣揣淇℃伅绠$悊
      */

--
Gitblit v1.9.3