From 593379b64d440c06887e8fbfa2803c70463dba19 Mon Sep 17 00:00:00 2001
From: gongchunyi <deslre0381@gmail.com>
Date: 星期一, 30 三月 2026 19:27:57 +0800
Subject: [PATCH] fix: 产品入库的库存返回产品大类、规则型号、单位

---
 src/main/java/com/ruoyi/procurementrecord/service/impl/ProcurementRecordServiceImpl.java |   55 ++++++++++++++++++++++++++++++++++++++++++++++++-------
 1 files changed, 48 insertions(+), 7 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..15d12ec 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);
     }
 
@@ -170,18 +174,26 @@
     public int updateManagement(ProcurementManagementUpdateDto procurementDto) {
         LoginUser loginUser = SecurityUtils.getLoginUser();
         SysUser sysUser = sysUserMapper.selectUserById(procurementDto.getCreateUser());
-        if(sysUser == null){
+        if (sysUser == null) {
             throw new RuntimeException("鍏ュ簱浜轰笉瀛樺湪");
         }
         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 (procurementDto.getSalesLedgerProductId() != null && salesLedgerProduct == null) {
+            throw new RuntimeException("閿�鍞彴璐︿骇鍝佷笉瀛樺湪");
+        }
+        if (procurementDto.getSalesLedgerProductId() != null && salesLedgerProduct != null) {
+            salesLedgerProduct.setMinStock(procurementDto.getMinStock());
+            salesLedgerProductMapper.updateById(salesLedgerProduct);
+        }
         ProcurementRecordStorage procurementRecordStorageById = getProcurementRecordById(procurementDto.getId());
         procurementRecordStorageById.setCreateBy(sysUser.getNickName());
         procurementRecordStorageById.setCreateUser(sysUser.getUserId());
-        procurementRecordStorageById.setUpdateTime(LocalDateTime.parse(entryDateStr,df));
+        procurementRecordStorageById.setUpdateTime(LocalDateTime.parse(entryDateStr, df));
         procurementRecordStorageById.setUpdateUser(loginUser.getUserId());
-        procurementRecordStorageById.setCreateTime(LocalDateTime.parse(createTimeStr,df));
+        procurementRecordStorageById.setCreateTime(LocalDateTime.parse(createTimeStr, df));
         procurementRecordMapper.updateById(procurementRecordStorageById);
         return 0;
     }
@@ -339,8 +351,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())
@@ -358,6 +374,30 @@
 //            salesLedgerProductMapper.updateById(salesLedgerProduct);
         }
         return 1;
+    }
+
+    @Override
+    public int addProduct(Details detail) {
+        LoginUser loginUser = SecurityUtils.getLoginUser();
+
+        ProcurementRecordStorage.ProcurementRecordStorageBuilder builder = ProcurementRecordStorage.builder()
+                .id(detail.getId())
+                .inboundBatches("绗�1鎵规")
+                .inboundNum(detail.getInboundQuantity())
+                .warnNum(detail.getWarnNum())
+                .outStockQuantity(detail.getOutStockQuantity())
+                .shortageDescription(detail.getShortageDescription())
+                .productModelId(detail.getProductModelId())
+                .updateTime(LocalDateTime.now())
+                .updateUser(loginUser.getUserId());
+        if (detail.getId() == null) {
+            builder.createTime(LocalDateTime.now())
+                    .createUser(loginUser.getUserId())
+                    .createBy(loginUser.getNickName());
+        }
+
+        boolean success = this.saveOrUpdate(builder.build());
+        return success ? 1 : 0;
     }
 
     @Override
@@ -431,7 +471,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