From 5bd9a135bae4ed6c57950cf0a160f471bc99d645 Mon Sep 17 00:00:00 2001
From: liding <756868258@qq.com>
Date: 星期二, 10 三月 2026 16:10:06 +0800
Subject: [PATCH] fix:入库前需审批,审批后入库

---
 src/main/java/com/ruoyi/stock/service/StockInventoryService.java            |    2 
 src/main/java/com/ruoyi/stock/service/impl/StockUninventoryServiceImpl.java |   23 ++++++-----
 src/main/resources/mapper/stock/StockInRecordMapper.xml                     |   25 ++++++++----
 src/main/java/com/ruoyi/stock/service/StockInRecordService.java             |    2 
 src/main/java/com/ruoyi/stock/service/impl/StockInRecordServiceImpl.java    |   11 ++++-
 src/main/java/com/ruoyi/stock/service/impl/StockInventoryServiceImpl.java   |   10 ++--
 src/main/java/com/ruoyi/stock/dto/StockInRecordDto.java                     |    5 ++
 7 files changed, 49 insertions(+), 29 deletions(-)

diff --git a/src/main/java/com/ruoyi/stock/dto/StockInRecordDto.java b/src/main/java/com/ruoyi/stock/dto/StockInRecordDto.java
index 9f47fd6..34e57b8 100644
--- a/src/main/java/com/ruoyi/stock/dto/StockInRecordDto.java
+++ b/src/main/java/com/ruoyi/stock/dto/StockInRecordDto.java
@@ -26,4 +26,9 @@
     //鐜板瓨閲�
     private String currentStock;
 
+    //璁㈠崟
+    private String npsNo;
+
+    //宸ュ崟
+    private String workOrderNo;
 }
diff --git a/src/main/java/com/ruoyi/stock/service/StockInRecordService.java b/src/main/java/com/ruoyi/stock/service/StockInRecordService.java
index 7e56494..9957b87 100644
--- a/src/main/java/com/ruoyi/stock/service/StockInRecordService.java
+++ b/src/main/java/com/ruoyi/stock/service/StockInRecordService.java
@@ -12,7 +12,7 @@
 public interface StockInRecordService extends IService<StockInRecord> {
     IPage<StockInRecordDto> listPage(Page page, StockInRecordDto stockInRecordDto);
 
-    int add(StockInRecordDto stockInRecordDto);
+    Long add(StockInRecordDto stockInRecordDto);
 
     int update(Long id, StockInRecordDto stockInRecordDto);
 
diff --git a/src/main/java/com/ruoyi/stock/service/StockInventoryService.java b/src/main/java/com/ruoyi/stock/service/StockInventoryService.java
index 24c7053..eb33f03 100644
--- a/src/main/java/com/ruoyi/stock/service/StockInventoryService.java
+++ b/src/main/java/com/ruoyi/stock/service/StockInventoryService.java
@@ -43,5 +43,5 @@
 
     void updateOrCreateStockInventory(StockInRecord stockInRecord);
 
-    void addApproveByPurchase(LoginUser loginUser, StockInRecordDto stockInRecordDto) throws Exception;
+    void addApproveByPurchase(LoginUser loginUser, StockInRecordDto stockInRecordDto,Long id) throws Exception;
 }
diff --git a/src/main/java/com/ruoyi/stock/service/impl/StockInRecordServiceImpl.java b/src/main/java/com/ruoyi/stock/service/impl/StockInRecordServiceImpl.java
index 73b3a42..418b71e 100644
--- a/src/main/java/com/ruoyi/stock/service/impl/StockInRecordServiceImpl.java
+++ b/src/main/java/com/ruoyi/stock/service/impl/StockInRecordServiceImpl.java
@@ -52,12 +52,17 @@
     // 鏂板鍏ュ簱
     @Override
     @Transactional(rollbackFor = Exception.class)
-    public int add(StockInRecordDto stockInRecordDto) {
+    public Long add(StockInRecordDto stockInRecordDto) {
         String no = OrderUtils.countTodayByCreateTime(stockInRecordMapper, "RK");
         stockInRecordDto.setInboundBatches(no);
         StockInRecord stockInRecord = new StockInRecord();
         BeanUtils.copyProperties(stockInRecordDto, stockInRecord);
-        return stockInRecordMapper.insert(stockInRecord);
+
+        int insertRows = stockInRecordMapper.insert(stockInRecord);
+
+        Long insertId = stockInRecord.getId(); // 鏇挎崲涓轰綘鐨勫疄闄呬富閿瓧娈碉細getRecordId()/getInboundId() 绛�
+
+        return insertRows > 0 ? insertId : null;
     }
 
     @Override
@@ -127,7 +132,7 @@
     public int updateStockInRecord(StockInRecordDto stockInRecordDto) {
         LoginUser loginUser = SecurityUtils.getLoginUser();
         try {
-            stockInventoryService.addApproveByPurchase(loginUser, stockInRecordDto);
+            stockInventoryService.addApproveByPurchase(loginUser, stockInRecordDto,stockInRecordDto.getId());
         } catch (Exception e) {
             e.printStackTrace();
         }
diff --git a/src/main/java/com/ruoyi/stock/service/impl/StockInventoryServiceImpl.java b/src/main/java/com/ruoyi/stock/service/impl/StockInventoryServiceImpl.java
index e6aa3c3..62ad936 100644
--- a/src/main/java/com/ruoyi/stock/service/impl/StockInventoryServiceImpl.java
+++ b/src/main/java/com/ruoyi/stock/service/impl/StockInventoryServiceImpl.java
@@ -78,11 +78,11 @@
         stockInRecordDto.setWarnNum(stockInventoryDto.getWarnNum());
         stockInRecordDto.setLockedQuantity(stockInventoryDto.getLockedQuantity());
         stockInRecordDto.setType("0");
-        int add = stockInRecordService.add(stockInRecordDto);
+        Long id = stockInRecordService.add(stockInRecordDto);
         LoginUser loginUser = SecurityUtils.getLoginUser();
-        if (add > 0) {
+        if (id != null) {
             try {
-                addApproveByPurchase(loginUser, stockInRecordDto);
+                addApproveByPurchase(loginUser, stockInRecordDto,id);
             } catch (Exception e) {
                 e.printStackTrace();
             }
@@ -90,7 +90,7 @@
         return true;
     }
 
-    public void addApproveByPurchase(LoginUser loginUser, StockInRecordDto stockInRecordDto) throws Exception {
+    public void addApproveByPurchase(LoginUser loginUser, StockInRecordDto stockInRecordDto,Long id) throws Exception {
         ApproveProcessVO approveProcessVO = new ApproveProcessVO();
         approveProcessVO.setApproveType(9);
         approveProcessVO.setApproveDeptId(loginUser.getCurrentDeptId());
@@ -100,7 +100,7 @@
         approveProcessVO.setApproveTime(LocalDate.now().toString());
         approveProcessVO.setInventoryReview(false);
         approveProcessVO.setStorageType("鍚堟牸鍏ュ簱");
-        approveProcessVO.setRecordId(stockInRecordDto.getId());
+        approveProcessVO.setRecordId(id);
         approveProcessService.addApprove(approveProcessVO);
     }
 
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 ab630bb..42e49c1 100644
--- a/src/main/java/com/ruoyi/stock/service/impl/StockUninventoryServiceImpl.java
+++ b/src/main/java/com/ruoyi/stock/service/impl/StockUninventoryServiceImpl.java
@@ -64,13 +64,13 @@
         stockInRecordDto.setProductModelId(stockUninventoryDto.getProductModelId());
         stockInRecordDto.setRemark(stockUninventoryDto.getRemark());
         stockInRecordDto.setType("1");
-        int add = stockInRecordService.add(stockInRecordDto);
+        Long id = stockInRecordService.add(stockInRecordDto);
 
         LoginUser loginUser = SecurityUtils.getLoginUser();
-        if (add > 0){
+        if (id != null) {
             try {
-                addApproveByPurchase(loginUser,stockInRecordDto);
-            }catch (Exception e){
+                addApproveByPurchase(loginUser, stockInRecordDto,id);
+            } catch (Exception e) {
                 e.printStackTrace();
             }
         }
@@ -78,7 +78,7 @@
         return 1;
     }
 
-    public void addApproveByPurchase(LoginUser loginUser, StockInRecordDto stockInRecordDto) throws Exception {
+    public void addApproveByPurchase(LoginUser loginUser, StockInRecordDto stockInRecordDto,Long id) throws Exception {
         ApproveProcessVO approveProcessVO = new ApproveProcessVO();
         approveProcessVO.setApproveType(9);
         approveProcessVO.setApproveDeptId(loginUser.getCurrentDeptId());
@@ -88,12 +88,13 @@
         approveProcessVO.setApproveTime(LocalDate.now().toString());
         approveProcessVO.setInventoryReview(false);
         approveProcessVO.setStorageType("涓嶅悎鏍煎叆搴�");
-        approveProcessVO.setRecordId(stockInRecordDto.getId());
+        approveProcessVO.setRecordId(id);
         approveProcessService.addApprove(approveProcessVO);
     }
 
     /**
      * 鏇存柊鎴栧垱寤洪潪鑹搧搴撳瓨淇℃伅
+     *
      * @param stockInRecord 闈炶壇鍝佸簱瀛楧TO瀵硅薄
      */
     public void updateOrCreateStockUninventory(StockInRecord stockInRecord) {
@@ -142,7 +143,7 @@
         StockUninventory oldStockInventory = stockUninventoryMapper.selectOne(new QueryWrapper<StockUninventory>().lambda().eq(StockUninventory::getProductModelId, stockUninventoryDto.getProductModelId()));
         if (ObjectUtils.isEmpty(oldStockInventory)) {
             throw new RuntimeException("浜у搧搴撳瓨涓嶅瓨鍦�");
-        }else {
+        } else {
             stockUninventoryMapper.updateSubtractStockUnInventory(stockUninventoryDto);
         }
         return 1;
@@ -152,18 +153,18 @@
     public void exportStockUninventory(HttpServletResponse response, StockUninventoryDto stockUninventoryDto) {
         List<StockUnInventoryExportData> list = stockUninventoryMapper.listStockInventoryExportData(stockUninventoryDto);
         ExcelUtil<StockUnInventoryExportData> util = new ExcelUtil<>(StockUnInventoryExportData.class);
-        util.exportExcel(response,list, "涓嶅悎鏍煎簱瀛樹俊鎭�");
+        util.exportExcel(response, list, "涓嶅悎鏍煎簱瀛樹俊鎭�");
     }
 
     @Override
     public Boolean frozenStock(StockInventoryDto stockInventoryDto) {
         StockUninventory stockUninventory = stockUninventoryMapper.selectById(stockInventoryDto.getId());
-        if (stockUninventory.getQualitity().compareTo(stockInventoryDto.getLockedQuantity())<0) {
+        if (stockUninventory.getQualitity().compareTo(stockInventoryDto.getLockedQuantity()) < 0) {
             throw new RuntimeException("鍐荤粨鏁伴噺涓嶈兘瓒呰繃搴撳瓨鏁伴噺");
         }
         if (ObjectUtils.isEmpty(stockUninventory.getLockedQuantity())) {
             stockUninventory.setLockedQuantity(stockInventoryDto.getLockedQuantity());
-        }else {
+        } else {
             stockUninventory.setLockedQuantity(stockUninventory.getLockedQuantity().add(stockInventoryDto.getLockedQuantity()));
         }
         return this.updateById(stockUninventory);
@@ -172,7 +173,7 @@
     @Override
     public Boolean thawStock(StockInventoryDto stockInventoryDto) {
         StockUninventory stockUninventory = stockUninventoryMapper.selectById(stockInventoryDto.getId());
-        if (stockUninventory.getLockedQuantity().compareTo(stockInventoryDto.getLockedQuantity())<0) {
+        if (stockUninventory.getLockedQuantity().compareTo(stockInventoryDto.getLockedQuantity()) < 0) {
             throw new RuntimeException("瑙e喕鏁伴噺涓嶈兘瓒呰繃鍐荤粨鏁伴噺");
         }
         stockUninventory.setLockedQuantity(stockUninventory.getLockedQuantity().subtract(stockInventoryDto.getLockedQuantity()));
diff --git a/src/main/resources/mapper/stock/StockInRecordMapper.xml b/src/main/resources/mapper/stock/StockInRecordMapper.xml
index 7dd8377..4850054 100644
--- a/src/main/resources/mapper/stock/StockInRecordMapper.xml
+++ b/src/main/resources/mapper/stock/StockInRecordMapper.xml
@@ -58,16 +58,25 @@
     </select>
     <select id="selectByRecord" resultType="com.ruoyi.stock.dto.StockInRecordDto">
         SELECT
+            po.nps_no,
+            pwo.work_order_no,
             sir.*,
-            p.product_name as product_name,
+            p.product_name AS product_name,
             pm.model,
             pm.unit,
-            u.nick_name as createBy
-        FROM stock_in_record as sir
-                 LEFT JOIN product_model as pm on sir.product_model_id = pm.id
-                 LEFT JOIN product as p on pm.product_id = p.id
-                 LEFT JOIN sys_user as u on sir.create_user = u.user_id
-        WHERE sir.id= #{id}
-        order by sir.id desc
+            u.nick_name AS createBy
+        FROM
+            stock_in_record AS sir
+                LEFT JOIN product_model AS pm ON sir.product_model_id = pm.id
+                LEFT JOIN product AS p ON pm.product_id = p.id
+                LEFT JOIN sys_user AS u ON sir.create_user = u.user_id
+                LEFT JOIN quality_inspect qi ON qi.id = sir.record_id
+                LEFT JOIN production_product_main ppm ON ppm.id = qi.product_main_id
+                LEFT JOIN product_work_order pwo ON pwo.id = ppm.work_order_id
+                LEFT JOIN product_order po ON po.id = pwo.product_order_id
+        WHERE
+            sir.id = 233
+        ORDER BY
+            sir.id DESC
     </select>
 </mapper>
\ No newline at end of file

--
Gitblit v1.9.3