From ba4f2ca4b3ae845d2bd1e92338b948a8f95ffaaa Mon Sep 17 00:00:00 2001
From: huminmin <mac@MacBook-Pro.local>
Date: 星期二, 09 六月 2026 15:11:27 +0800
Subject: [PATCH] 修改废品入库类型

---
 src/main/java/com/ruoyi/stock/service/impl/StockUninventoryServiceImpl.java |   58 ++++++++++++++++++++++++++++++++++++++++------------------
 1 files changed, 40 insertions(+), 18 deletions(-)

diff --git a/src/main/java/com/ruoyi/stock/service/impl/StockUninventoryServiceImpl.java b/src/main/java/com/ruoyi/stock/service/impl/StockUninventoryServiceImpl.java
index 4c7d157..bf7f294 100644
--- a/src/main/java/com/ruoyi/stock/service/impl/StockUninventoryServiceImpl.java
+++ b/src/main/java/com/ruoyi/stock/service/impl/StockUninventoryServiceImpl.java
@@ -48,7 +48,7 @@
 @RequiredArgsConstructor
 public class StockUninventoryServiceImpl extends ServiceImpl<StockUninventoryMapper, StockUninventory> implements StockUninventoryService {
 
-
+    private static final String UNQUALIFIED_TYPE = "unqualified";
     private final StockUninventoryMapper stockUninventoryMapper;
     private final StockOutRecordService stockOutRecordService;
     private final StockInRecordService stockInRecordService;
@@ -61,10 +61,18 @@
     }
 
     @Override
+    public IPage<StockUninventoryDto> pageWasteQuery(Page page, StockUninventoryDto stockUninventoryDto) {
+        return stockUninventoryMapper.pageWasteQuery(page, stockUninventoryDto);
+    }
+
+    @Override
     @Transactional(rollbackFor = Exception.class)
     public Integer addStockUninventory(StockUninventoryDto stockUninventoryDto) {
+        String inventoryType = resolveInventoryType(stockUninventoryDto);
+        stockUninventoryDto.setType(inventoryType);
         LambdaQueryWrapper<StockUninventory> wrapper = new LambdaQueryWrapper<>();
         wrapper.eq(StockUninventory::getProductModelId, stockUninventoryDto.getProductModelId());
+        wrapper.eq(StockUninventory::getType, inventoryType);
         if (StringUtils.isEmpty(stockUninventoryDto.getBatchNo())) {
             stockUninventoryDto.setBatchNo(null);
             wrapper.isNull(StockUninventory::getBatchNo);
@@ -78,29 +86,23 @@
         stockInRecordDto.setStockInNum(stockUninventoryDto.getQualitity());
         stockInRecordDto.setBatchNo(stockUninventoryDto.getBatchNo());
         stockInRecordDto.setProductModelId(stockUninventoryDto.getProductModelId());
-        stockInRecordDto.setType("1");
-        stockInRecordService.add(stockInRecordDto);
-        //鍐嶈繘琛屾柊澧炲簱瀛樻暟閲忓簱瀛�
-        //鍏堟煡璇㈠簱瀛樿〃涓殑浜у搧鏄惁瀛樺湪锛屼笉瀛樺湪鏂板锛屽瓨鍦ㄦ洿鏂�
-        StockUninventory oldStockUnInventory = stockUninventoryMapper.selectOne(wrapper);
-        if (ObjectUtils.isEmpty(oldStockUnInventory)) {
-            StockUninventory newStockUnInventory = new StockUninventory();
-            newStockUnInventory.setProductModelId(stockUninventoryDto.getProductModelId());
-            newStockUnInventory.setQualitity(stockUninventoryDto.getQualitity());
-            newStockUnInventory.setLockedQuantity(stockUninventoryDto.getLockedQuantity());
-            newStockUnInventory.setBatchNo(stockUninventoryDto.getBatchNo());
-            newStockUnInventory.setVersion(1);
-            newStockUnInventory.setRemark(stockUninventoryDto.getRemark());
-            stockUninventoryMapper.insert(newStockUnInventory);
-        }else {
-            stockUninventoryMapper.updateAddStockUnInventory(stockUninventoryDto);
+        if (UNQUALIFIED_TYPE.equals(inventoryType)) {
+            stockInRecordDto.setType("1");
+        } else {
+            stockInRecordDto.setType("2");
         }
+        stockInRecordDto.setManufacturerId(stockUninventoryDto.getManufacturerId());
+        stockInRecordDto.setSource(stockUninventoryDto.getSource());
+        stockInRecordService.add(stockInRecordDto);
+        //瀹℃壒鍐嶆坊鍔�
         return 1;
     }
 
     @Override
     @Transactional(rollbackFor = Exception.class)
     public Integer subtractStockUninventory(StockUninventoryDto stockUninventoryDto) {
+        String inventoryType = resolveInventoryType(stockUninventoryDto);
+        stockUninventoryDto.setType(inventoryType);
 
         //  鏂板鍑哄簱璁板綍
         StockOutRecordDto stockOutRecordDto = new StockOutRecordDto();
@@ -111,7 +113,9 @@
         stockOutRecordDto.setBatchNo(stockUninventoryDto.getBatchNo());
         stockOutRecordDto.setType("1");
         stockOutRecordService.add(stockOutRecordDto);
-        StockUninventory oldStockInventory = stockUninventoryMapper.selectOne(new QueryWrapper<StockUninventory>().lambda().eq(StockUninventory::getProductModelId, stockUninventoryDto.getProductModelId()));
+        StockUninventory oldStockInventory = stockUninventoryMapper.selectOne(new QueryWrapper<StockUninventory>().lambda()
+                .eq(StockUninventory::getProductModelId, stockUninventoryDto.getProductModelId())
+                .eq(StockUninventory::getType, inventoryType));
         if (ObjectUtils.isEmpty(oldStockInventory)) {
             throw new RuntimeException("浜у搧搴撳瓨涓嶅瓨鍦�");
         }else {
@@ -123,6 +127,7 @@
     @Override
     @Transactional(rollbackFor = Exception.class)
     public Integer addStockInRecordOnly(StockUninventoryDto stockUninventoryDto) {
+        stockUninventoryDto.setType(resolveInventoryType(stockUninventoryDto));
         StockInRecordDto stockInRecordDto = new StockInRecordDto();
         stockInRecordDto.setRecordId(stockUninventoryDto.getRecordId());
         stockInRecordDto.setRecordType(stockUninventoryDto.getRecordType());
@@ -142,8 +147,11 @@
     @Override
     @Transactional(rollbackFor = Exception.class)
     public Integer addStockOutRecordOnly(StockUninventoryDto stockUninventoryDto) {
+        String inventoryType = resolveInventoryType(stockUninventoryDto);
+        stockUninventoryDto.setType(inventoryType);
         LambdaQueryWrapper<StockUninventory> eq = new LambdaQueryWrapper<>();
         eq.eq(StockUninventory::getProductModelId, stockUninventoryDto.getProductModelId());
+        eq.eq(StockUninventory::getType, inventoryType);
         if (StringUtils.isEmpty(stockUninventoryDto.getBatchNo())) {
             eq.isNull(StockUninventory::getBatchNo);
         } else {
@@ -189,6 +197,13 @@
     }
 
     @Override
+    public void exportWasteQuery(HttpServletResponse response, StockUninventoryDto stockUninventoryDto) {
+        List<StockUnInventoryExportData> list = stockUninventoryMapper.listWasteQueryExportData(stockUninventoryDto);
+        ExcelUtil<StockUnInventoryExportData> util = new ExcelUtil<>(StockUnInventoryExportData.class);
+        util.exportExcel(response, list, "搴熷搧鏌ヨ淇℃伅");
+    }
+
+    @Override
     public Boolean frozenStock(StockInventoryDto stockInventoryDto) {
         StockUninventory stockUninventory = stockUninventoryMapper.selectById(stockInventoryDto.getId());
         if (stockUninventory.getQualitity().compareTo(stockInventoryDto.getLockedQuantity())<0) {
@@ -212,6 +227,13 @@
         return this.updateById(stockUninventory);
     }
 
+    private String resolveInventoryType(StockUninventoryDto stockUninventoryDto) {
+        if (stockUninventoryDto != null && StringUtils.isNotEmpty(stockUninventoryDto.getType())) {
+            return stockUninventoryDto.getType().trim();
+        }
+        return UNQUALIFIED_TYPE;
+    }
+
     //瑙勫垯鐢熸垚锛�20260424-浜у搧缂栧彿-001
     private String generateAutoBatchNo(Long productModelId) {
         if (productModelId == null) {

--
Gitblit v1.9.3