From 7486f6d6a93d98f96f45f0cc4846be9c8a2345df Mon Sep 17 00:00:00 2001
From: huminmin <mac@MacBook-Pro.local>
Date: 星期二, 09 六月 2026 15:39:20 +0800
Subject: [PATCH] 增加废品库详情接口

---
 src/main/java/com/ruoyi/stock/controller/StockUninventoryController.java    |    7 +++
 src/main/java/com/ruoyi/stock/execl/StockUnInventoryExportData.java         |    8 ++++
 src/main/java/com/ruoyi/stock/service/impl/StockUninventoryServiceImpl.java |   42 ++++++++++++++++++++
 src/main/java/com/ruoyi/stock/dto/StockUninventoryDto.java                  |    4 ++
 src/main/java/com/ruoyi/stock/mapper/StockUninventoryMapper.java            |    3 +
 src/main/resources/mapper/stock/StockUninventoryMapper.xml                  |   40 +++++++++++++++++++-
 src/main/java/com/ruoyi/stock/service/StockUninventoryService.java          |    2 +
 7 files changed, 103 insertions(+), 3 deletions(-)

diff --git a/src/main/java/com/ruoyi/stock/controller/StockUninventoryController.java b/src/main/java/com/ruoyi/stock/controller/StockUninventoryController.java
index 10f2158..76a90ba 100644
--- a/src/main/java/com/ruoyi/stock/controller/StockUninventoryController.java
+++ b/src/main/java/com/ruoyi/stock/controller/StockUninventoryController.java
@@ -42,6 +42,13 @@
         return R.ok(stockUninventoryDtoIPage);
     }
 
+    @GetMapping("/getWasteBatchNoQty")
+    @Operation(summary = "鏌ヨ搴熷搧搴撳瓨瀵瑰簲鎵瑰彿鍜屾暟閲�")
+    public R getWasteBatchNoQty(Page page, StockInventoryDto stockInventoryDto) {
+        IPage<StockUninventoryDto> stockUninventoryDtoIPage = stockUninventoryService.getWasteBatchNoQty(page, stockInventoryDto);
+        return R.ok(stockUninventoryDtoIPage);
+    }
+
     @PostMapping("/addstockUninventory")
     @Operation(summary = "鏂板搴撳瓨")
     public R addstockUninventory(@RequestBody StockUninventoryDto stockUninventoryDto) {
diff --git a/src/main/java/com/ruoyi/stock/dto/StockUninventoryDto.java b/src/main/java/com/ruoyi/stock/dto/StockUninventoryDto.java
index 90e3ab3..68c09d6 100644
--- a/src/main/java/com/ruoyi/stock/dto/StockUninventoryDto.java
+++ b/src/main/java/com/ruoyi/stock/dto/StockUninventoryDto.java
@@ -10,7 +10,11 @@
     private String productName;
     private String model;
     private String unit;
+    private Long productId;
     private Long topParentProductId;
+    private String manufacturerName;
+    private BigDecimal pendingOutQuantity;
+    private String sourceText;
 
 
     //鍏ュ簱绫诲瀷
diff --git a/src/main/java/com/ruoyi/stock/execl/StockUnInventoryExportData.java b/src/main/java/com/ruoyi/stock/execl/StockUnInventoryExportData.java
index 3497905..43d71e1 100644
--- a/src/main/java/com/ruoyi/stock/execl/StockUnInventoryExportData.java
+++ b/src/main/java/com/ruoyi/stock/execl/StockUnInventoryExportData.java
@@ -17,6 +17,12 @@
     @Excel(name = "瑙勬牸")
     private String model;
 
+    @Excel(name = "鍘傚")
+    private String manufacturerName;
+
+    @Excel(name = "鏉ユ簮")
+    private String sourceText;
+
     @Excel(name = "鍗曚綅")
     private String unit;
 
@@ -41,4 +47,6 @@
     @Excel(name = "鏈�鏂版洿鏂版椂闂�", width = 20, dateFormat = "yyyy-MM-dd HH:mm:ss")
     private LocalDateTime updateTime;
 
+    private String source;
+
 }
diff --git a/src/main/java/com/ruoyi/stock/mapper/StockUninventoryMapper.java b/src/main/java/com/ruoyi/stock/mapper/StockUninventoryMapper.java
index 66241c3..1b3cea6 100644
--- a/src/main/java/com/ruoyi/stock/mapper/StockUninventoryMapper.java
+++ b/src/main/java/com/ruoyi/stock/mapper/StockUninventoryMapper.java
@@ -3,6 +3,7 @@
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
 import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.ruoyi.stock.dto.StockInventoryDto;
 import com.ruoyi.stock.dto.StockUninventoryDto;
 import com.ruoyi.stock.execl.StockUnInventoryExportData;
 import com.ruoyi.stock.pojo.StockUninventory;
@@ -27,6 +28,8 @@
 
     IPage<StockUninventoryDto> pageWasteQuery(Page page, @Param("ew") StockUninventoryDto stockUninventoryDto);
 
+    IPage<StockUninventoryDto> getWasteBatchNoQty(Page page, @Param("ew") StockInventoryDto stockInventoryDto);
+
     int updateSubtractStockUnInventory(@Param("ew") StockUninventoryDto stockUninventoryDto);
 
     BigDecimal selectPendingOutQuantity(@Param("productModelId") Long productModelId, @Param("batchNo") String batchNo, @Param("type") String type);
diff --git a/src/main/java/com/ruoyi/stock/service/StockUninventoryService.java b/src/main/java/com/ruoyi/stock/service/StockUninventoryService.java
index 3b3bb36..629ccb0 100644
--- a/src/main/java/com/ruoyi/stock/service/StockUninventoryService.java
+++ b/src/main/java/com/ruoyi/stock/service/StockUninventoryService.java
@@ -23,6 +23,8 @@
 
     IPage<StockUninventoryDto> pageWasteQuery(Page page, StockUninventoryDto stockUninventoryDto);
 
+    IPage<StockUninventoryDto> getWasteBatchNoQty(Page page, StockInventoryDto stockInventoryDto);
+
     Integer addStockUninventory(StockUninventoryDto stockUninventoryDto);
 
     Integer subtractStockUninventory(StockUninventoryDto stockUninventoryDto);
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 bf7f294..4b0a36e 100644
--- a/src/main/java/com/ruoyi/stock/service/impl/StockUninventoryServiceImpl.java
+++ b/src/main/java/com/ruoyi/stock/service/impl/StockUninventoryServiceImpl.java
@@ -13,6 +13,7 @@
 import com.ruoyi.common.exception.base.BaseException;
 import com.ruoyi.common.utils.StringUtils;
 import com.ruoyi.common.utils.poi.ExcelUtil;
+import com.ruoyi.stock.enums.StockInventorySourceEnum;
 import com.ruoyi.stock.dto.StockInRecordDto;
 import com.ruoyi.stock.dto.StockInventoryDto;
 import com.ruoyi.stock.dto.StockOutRecordDto;
@@ -62,7 +63,30 @@
 
     @Override
     public IPage<StockUninventoryDto> pageWasteQuery(Page page, StockUninventoryDto stockUninventoryDto) {
-        return stockUninventoryMapper.pageWasteQuery(page, stockUninventoryDto);
+        IPage<StockUninventoryDto> resultPage = stockUninventoryMapper.pageWasteQuery(page, stockUninventoryDto);
+        resultPage.getRecords().forEach(dto -> {
+            if (StringUtils.isNotEmpty(dto.getSource())) {
+                StockInventorySourceEnum sourceEnum = StockInventorySourceEnum.fromCode(dto.getSource());
+                if (sourceEnum != null) {
+                    dto.setSourceText(sourceEnum.getValue());
+                }
+            }
+        });
+        return resultPage;
+    }
+
+    @Override
+    public IPage<StockUninventoryDto> getWasteBatchNoQty(Page page, StockInventoryDto stockInventoryDto) {
+        IPage<StockUninventoryDto> resultPage = stockUninventoryMapper.getWasteBatchNoQty(page, stockInventoryDto);
+        resultPage.getRecords().forEach(dto -> {
+            if (StringUtils.isNotEmpty(dto.getSource())) {
+                StockInventorySourceEnum unQualifiedSourceEnum = StockInventorySourceEnum.fromCode(dto.getSource());
+                if (unQualifiedSourceEnum != null) {
+                    dto.setSourceText(unQualifiedSourceEnum.getValue());
+                }
+            }
+        });
+        return resultPage;
     }
 
     @Override
@@ -192,6 +216,14 @@
     @Override
     public void exportStockUninventory(HttpServletResponse response, StockUninventoryDto stockUninventoryDto) {
         List<StockUnInventoryExportData> list = stockUninventoryMapper.listStockInventoryExportData(stockUninventoryDto);
+        list.forEach(item -> {
+            if (StringUtils.isNotEmpty(item.getSource())) {
+                StockInventorySourceEnum sourceEnum = StockInventorySourceEnum.fromCode(item.getSource());
+                if (sourceEnum != null) {
+                    item.setSourceText(sourceEnum.getValue());
+                }
+            }
+        });
         ExcelUtil<StockUnInventoryExportData> util = new ExcelUtil<>(StockUnInventoryExportData.class);
         util.exportExcel(response,list, "涓嶅悎鏍煎簱瀛樹俊鎭�");
     }
@@ -199,6 +231,14 @@
     @Override
     public void exportWasteQuery(HttpServletResponse response, StockUninventoryDto stockUninventoryDto) {
         List<StockUnInventoryExportData> list = stockUninventoryMapper.listWasteQueryExportData(stockUninventoryDto);
+        list.forEach(item -> {
+            if (StringUtils.isNotEmpty(item.getSource())) {
+                StockInventorySourceEnum sourceEnum = StockInventorySourceEnum.fromCode(item.getSource());
+                if (sourceEnum != null) {
+                    item.setSourceText(sourceEnum.getValue());
+                }
+            }
+        });
         ExcelUtil<StockUnInventoryExportData> util = new ExcelUtil<>(StockUnInventoryExportData.class);
         util.exportExcel(response, list, "搴熷搧鏌ヨ淇℃伅");
     }
diff --git a/src/main/resources/mapper/stock/StockUninventoryMapper.xml b/src/main/resources/mapper/stock/StockUninventoryMapper.xml
index 5aa3b9a..fbdb322 100644
--- a/src/main/resources/mapper/stock/StockUninventoryMapper.xml
+++ b/src/main/resources/mapper/stock/StockUninventoryMapper.xml
@@ -30,6 +30,7 @@
         from stock_uninventory su
         left join product_model pm on su.product_model_id = pm.id
         left join product p on pm.product_id = p.id
+        left join manufacturer m on su.manufacturer_id = m.id
     </sql>
 
     <sql id="WastePageColumns">
@@ -44,7 +45,9 @@
         (su.qualitity - COALESCE(su.locked_quantity, 0)) as un_locked_quantity,
         pm.model,
         pm.unit,
-        p.product_name
+        p.product_name,
+        m.name as manufacturer_name,
+        su.source
     </sql>
 
     <update id="updateSubtractStockUnInventory">
@@ -164,7 +167,8 @@
         su.*,
         pm.model,
         pm.unit,
-        p.product_name
+        p.product_name,
+        m.name as manufacturer_name
         <include refid="BaseWasteFromClause" />
         <where>
             <if test="ew.type != null and ew.type != ''">
@@ -183,6 +187,7 @@
         pm.model,
         pm.unit,
         p.product_name,
+        m.name as manufacturer_name,
         (su.qualitity - COALESCE(su.locked_quantity, 0)) as un_locked_quantity
         <include refid="BaseWasteFromClause" />
         <where>
@@ -203,6 +208,37 @@
         order by su.update_time desc, su.id desc
     </select>
 
+    <select id="getWasteBatchNoQty" resultType="com.ruoyi.stock.dto.StockUninventoryDto">
+        select
+        su.id,
+        p.product_name,
+        pm.model,
+        m.name as manufacturer_name,
+        su.source,
+        pm.unit,
+        su.batch_no,
+        su.qualitity,
+        COALESCE(su.locked_quantity, 0) as locked_quantity,
+        (su.qualitity - COALESCE(su.locked_quantity, 0)) as un_locked_quantity,
+        su.remark,
+        su.update_time,
+        su.product_model_id
+        from stock_uninventory su
+        left join product_model pm on su.product_model_id = pm.id
+        left join product p on pm.product_id = p.id
+        left join manufacturer m on su.manufacturer_id = m.id
+        <where>
+            and su.type = 'waste'
+            <if test="ew.productModelId != null and ew.productModelId > 0">
+                and su.product_model_id = #{ew.productModelId}
+            </if>
+            <if test="ew.productId != null and ew.productId > 0">
+                and p.id = #{ew.productId}
+            </if>
+        </where>
+        order by su.batch_no
+    </select>
+
     <select id="selectPendingOutQuantity" resultType="java.math.BigDecimal">
         SELECT IFNULL(SUM(sor.stock_out_num), 0)
         FROM stock_out_record sor

--
Gitblit v1.9.3