From d15462274ecea7f7fe3dfc4b81278bc647e8cd26 Mon Sep 17 00:00:00 2001
From: zss <zss@example.com>
Date: 星期一, 30 三月 2026 11:03:13 +0800
Subject: [PATCH] 发货库存校验2.0

---
 src/main/java/com/ruoyi/procurementrecord/service/impl/ProcurementRecordServiceImpl.java |   23 +++++++++++++++++++----
 1 files changed, 19 insertions(+), 4 deletions(-)

diff --git a/src/main/java/com/ruoyi/procurementrecord/service/impl/ProcurementRecordServiceImpl.java b/src/main/java/com/ruoyi/procurementrecord/service/impl/ProcurementRecordServiceImpl.java
index 1e237f0..caf11a0 100644
--- a/src/main/java/com/ruoyi/procurementrecord/service/impl/ProcurementRecordServiceImpl.java
+++ b/src/main/java/com/ruoyi/procurementrecord/service/impl/ProcurementRecordServiceImpl.java
@@ -16,6 +16,7 @@
 import com.ruoyi.project.system.domain.SysUser;
 import com.ruoyi.project.system.mapper.SysUserMapper;
 import com.ruoyi.sales.mapper.SalesLedgerProductMapper;
+import com.ruoyi.sales.pojo.SalesLedgerProduct;
 import lombok.RequiredArgsConstructor;
 import lombok.extern.slf4j.Slf4j;
 import org.springframework.stereotype.Service;
@@ -64,18 +65,18 @@
             List<ProcurementRecordStorage> collect1 = procurementRecordStorages.stream()
                     .filter(procurementRecordStorage -> procurementRecordStorage.getSalesLedgerProductId().equals(dto.getId()))
                     .collect(Collectors.toList());
-            
+
             // 濡傛灉娌℃湁鐩稿叧鐨勫叆搴撹褰曪紝璺宠繃璇ユ潯鏁版嵁
             if(CollectionUtils.isEmpty(collect1)){
                 dto.setQuantity0(dto.getQuantity());
                 continue;
             }
-            
+
             // 璁$畻宸插叆搴撴暟閲忔�诲拰锛屽苟璁剧疆寰呭叆搴撴暟閲�
             BigDecimal totalInboundNum = collect1.stream()
                     .map(ProcurementRecordStorage::getInboundNum)
                     .reduce(BigDecimal.ZERO, BigDecimal::add);
-            
+
             // 寰呭叆搴撴暟閲� = 鎬绘暟閲� - 宸插叆搴撴暟閲�
             dto.setQuantity0(dto.getQuantity().subtract(totalInboundNum));
         }
@@ -102,8 +103,11 @@
     public int updatePro(ProcurementUpdateDto procurementDto) {
         ProcurementRecordStorage procurementRecordStorageById = getProcurementRecordById(procurementDto.getId());
         procurementRecordStorageById.setInboundNum(procurementDto.getQuantityStock());
+        procurementRecordStorageById.setWarnNum(procurementDto.getWarnNum());
         procurementRecordStorageById.setUpdateUser(SecurityUtils.getLoginUser().getUserId());
         procurementRecordStorageById.setUpdateTime(LocalDateTime.now());
+        procurementRecordStorageById.setOutStockQuantity(procurementDto.getOutStockQuantity());
+        procurementRecordStorageById.setShortageDescription(procurementDto.getShortageDescription());
         return procurementRecordMapper.updateById(procurementRecordStorageById);
     }
 
@@ -176,6 +180,12 @@
         DateTimeFormatter df = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss");
         String entryDateStr = procurementDto.getEntryDate() + " 00:00:00";
         String createTimeStr = procurementDto.getCreateTime() + " 00:00:00";
+        SalesLedgerProduct salesLedgerProduct = salesLedgerProductMapper.selectById(procurementDto.getSalesLedgerProductId());
+        if(salesLedgerProduct == null){
+            throw new RuntimeException("閿�鍞彴璐︿骇鍝佷笉瀛樺湪");
+        }
+        salesLedgerProduct.setMinStock(procurementDto.getMinStock());
+        salesLedgerProductMapper.updateById(salesLedgerProduct);
         ProcurementRecordStorage procurementRecordStorageById = getProcurementRecordById(procurementDto.getId());
         procurementRecordStorageById.setCreateBy(sysUser.getNickName());
         procurementRecordStorageById.setCreateUser(sysUser.getUserId());
@@ -339,8 +349,12 @@
 
             ProcurementRecordStorage.ProcurementRecordStorageBuilder procurementRecordBuilder = ProcurementRecordStorage.builder()
                     .salesLedgerProductId(detail.getId())
+                    .productModelId(detail.getProductModelId())
                     .inboundBatches(aLong.equals(0L) ? "绗�1鎵规" : "绗�"+ (aLong + 1) + "鎵规")
                     .inboundNum(detail.getInboundQuantity())
+                    .warnNum(detail.getWarnNum())
+                    .outStockQuantity(detail.getOutStockQuantity())
+                    .shortageDescription(detail.getShortageDescription())
                     .createTime(LocalDateTime.now())
                     .createUser(loginUser.getUserId())
                     .updateTime(LocalDateTime.now())
@@ -431,7 +445,8 @@
             BigDecimal totalInboundNum = collect1.stream()
                     .map(ProcurementRecordOut::getInboundNum)
                     .reduce(BigDecimal.ZERO, BigDecimal::add);
-
+            // 鍑哄簱鏁伴噺 = 鎬绘暟閲� - 寰呭嚭搴撴暟閲�
+            dto.setTotalInboundNum(totalInboundNum);
             // 寰呭嚭搴撴暟閲� = 鎬绘暟閲� - 宸插嚭搴撴暟閲�
             dto.setInboundNum0(dto.getInboundNum().subtract(totalInboundNum));
         }

--
Gitblit v1.9.3