From fbc53e77f994f15c3ebcd4fa07dfd23671c0ce26 Mon Sep 17 00:00:00 2001
From: lishenao <3065849776@qq.com>
Date: 星期五, 04 七月 2025 16:04:51 +0800
Subject: [PATCH] 入库管理,出库管理,库存管理后端接口修改

---
 src/main/java/com/ruoyi/inventory/service/impl/StockInServiceImpl.java         |  127 ++--------
 src/main/java/com/ruoyi/inventory/dto/StockManagementDto.java                  |    6 
 src/main/resources/mapper/inventory/StockOutMapper.xml                         |   34 ++
 src/main/resources/mapper/purchase/ProductRecordMapper.xml                     |   34 +++
 src/main/java/com/ruoyi/purchase/dto/ProductRecordDto.java                     |    2 
 src/main/java/com/ruoyi/inventory/service/impl/StockManagementServiceImpl.java |   72 +++---
 src/main/java/com/ruoyi/purchase/service/IProductRecordService.java            |    1 
 src/main/java/com/ruoyi/inventory/service/StockManagementService.java          |    2 
 src/main/java/com/ruoyi/project/system/mapper/SysUserMapper.java               |    2 
 src/main/java/com/ruoyi/inventory/dto/StockoutDto.java                         |    6 
 src/main/resources/mapper/inventory/StockInMapper.xml                          |   82 ++----
 src/main/java/com/ruoyi/inventory/service/StockOutService.java                 |    2 
 src/main/java/com/ruoyi/inventory/pojo/StockIn.java                            |    8 
 src/main/java/com/ruoyi/inventory/controller/StockOutController.java           |   10 
 src/main/java/com/ruoyi/purchase/service/impl/ProductRecordServiceImpl.java    |   12 +
 src/main/resources/mapper/inventory/StockManagementMapper.xml                  |   37 ++
 src/main/java/com/ruoyi/inventory/service/impl/StockOutServiceImpl.java        |   57 ----
 src/main/java/com/ruoyi/inventory/dto/StockinDto.java                          |    6 
 src/main/java/com/ruoyi/inventory/pojo/StockOut.java                           |    9 
 src/main/java/com/ruoyi/purchase/mapper/ProductRecordMapper.java               |    7 
 /dev/null                                                                      |   67 ------
 src/main/java/com/ruoyi/inventory/controller/StockInController.java            |    9 
 src/main/java/com/ruoyi/inventory/service/StockInService.java                  |    2 
 src/main/java/com/ruoyi/inventory/pojo/StockManagement.java                    |    9 
 src/main/java/com/ruoyi/inventory/controller/StockManagementController.java    |    6 
 25 files changed, 262 insertions(+), 347 deletions(-)

diff --git a/src/main/java/com/ruoyi/inventory/controller/StockInController.java b/src/main/java/com/ruoyi/inventory/controller/StockInController.java
index b205053..57e1baa 100644
--- a/src/main/java/com/ruoyi/inventory/controller/StockInController.java
+++ b/src/main/java/com/ruoyi/inventory/controller/StockInController.java
@@ -12,7 +12,10 @@
 import com.ruoyi.inventory.excel.StockInExcelDto;
 import com.ruoyi.inventory.service.StockInService;
 import com.ruoyi.inventory.pojo.StockIn;
+import com.ruoyi.purchase.dto.ProductRecordDto;
 import com.ruoyi.purchase.dto.PurchaseLedgerDto;
+import com.ruoyi.purchase.pojo.ProductRecord;
+import com.ruoyi.purchase.service.IProductRecordService;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.util.CollectionUtils;
 import org.springframework.web.bind.annotation.*;
@@ -26,6 +29,12 @@
 public class StockInController{
     @Autowired
     private StockInService stockInService;
+    @Autowired
+    private IProductRecordService productRecordService;
+    @GetMapping("/productlist")
+    public AjaxResult list(String purchaseContractNumber) {
+        return AjaxResult.success(productRecordService.selectProductRecordListByPuechaserId(purchaseContractNumber));
+    }
 
     @GetMapping("/listPage")
     public AjaxResult listPage(Page page, StockinDto stockinDto) {
diff --git a/src/main/java/com/ruoyi/inventory/controller/StockManagementController.java b/src/main/java/com/ruoyi/inventory/controller/StockManagementController.java
index fba713f..c2f9c85 100644
--- a/src/main/java/com/ruoyi/inventory/controller/StockManagementController.java
+++ b/src/main/java/com/ruoyi/inventory/controller/StockManagementController.java
@@ -22,6 +22,11 @@
 public class StockManagementController {
     @Autowired
     private StockManagementService stockManagementService;
+//    鏍规嵁id鏌ヨ
+    @RequestMapping("/{id}")
+    public AjaxResult getStockManageById(@PathVariable Long id) {
+        return success(stockManagementService.getStockManageById(id));
+    }
 
 //    鏇存柊搴撳瓨
     @PutMapping("/update")
@@ -51,4 +56,5 @@
     public AjaxResult stockout(@RequestBody StockManagement stockManagement) {
         return success(stockManagementService.stockout(stockManagement));
     }
+
 }
diff --git a/src/main/java/com/ruoyi/inventory/controller/StockOutController.java b/src/main/java/com/ruoyi/inventory/controller/StockOutController.java
index c850bff..0da5c70 100644
--- a/src/main/java/com/ruoyi/inventory/controller/StockOutController.java
+++ b/src/main/java/com/ruoyi/inventory/controller/StockOutController.java
@@ -27,11 +27,11 @@
     @Autowired
     private StockManagementMapper stockManagementMapper;
 
-    @PostMapping("/add")
-    public AjaxResult add(@RequestBody StockOut stockout) {
-        stockOutService.saveStockout(stockout);
-        return AjaxResult.success();
-    }
+//    @PostMapping("/add")
+//    public AjaxResult add(@RequestBody StockOut stockout) {
+//        stockOutService.saveStockout(stockout);
+//        return AjaxResult.success();
+//    }
 
     @RequestMapping("/{id}")
     public AjaxResult getStockOutById(@PathVariable Long id) {
diff --git a/src/main/java/com/ruoyi/inventory/dto/StockManagementDto.java b/src/main/java/com/ruoyi/inventory/dto/StockManagementDto.java
index e896ca0..ac13ae5 100644
--- a/src/main/java/com/ruoyi/inventory/dto/StockManagementDto.java
+++ b/src/main/java/com/ruoyi/inventory/dto/StockManagementDto.java
@@ -8,7 +8,7 @@
 public class StockManagementDto extends StockManagement {
 
     private String supplierName;
-    private String productCategory;
+    private String productName;
     private String unit;
     /**
      * 鍚◣鍗曚环
@@ -32,9 +32,9 @@
     /**
      * 瑙勬牸鍨嬪彿
      */
-    private String specificationModel;
+    private String model;
     /**
      * 鍏ュ簱浜�
      */
-    private String nickname;
+    private String nickName;
 }
diff --git a/src/main/java/com/ruoyi/inventory/dto/StockinDto.java b/src/main/java/com/ruoyi/inventory/dto/StockinDto.java
index 6cc55e0..02d0030 100644
--- a/src/main/java/com/ruoyi/inventory/dto/StockinDto.java
+++ b/src/main/java/com/ruoyi/inventory/dto/StockinDto.java
@@ -16,16 +16,16 @@
     /**
      * 鍏ュ簱浜�
      */
-    private String nickname;
+    private String nickName;
 
     @ApiModelProperty(value = "浜у搧澶х被")
-    private String productCategory;
+    private String productName;
 
     /**
      * 瑙勬牸鍨嬪彿
      */
     @ApiModelProperty(value = "瑙勬牸鍨嬪彿")
-    private String specificationModel;
+    private String model;
     @ApiModelProperty(value = "鍗曚綅")
     private String unit;
     /**
diff --git a/src/main/java/com/ruoyi/inventory/dto/StockoutDto.java b/src/main/java/com/ruoyi/inventory/dto/StockoutDto.java
index 85ac947..7418708 100644
--- a/src/main/java/com/ruoyi/inventory/dto/StockoutDto.java
+++ b/src/main/java/com/ruoyi/inventory/dto/StockoutDto.java
@@ -10,7 +10,7 @@
 
     private String supplierName;
     private String unit;
-    private String productCategory;
+    private String productName;
     /**
      * 鍚◣鍗曚环
      */
@@ -34,9 +34,9 @@
     /**
      * 瑙勬牸鍨嬪彿
      */
-    private String specificationModel;
+    private String model;
     /**
      * 鍏ュ簱浜�
      */
-    private String nickname;
+    private String nickName;
 }
diff --git a/src/main/java/com/ruoyi/inventory/mapper/StockProductMapper.java b/src/main/java/com/ruoyi/inventory/mapper/StockProductMapper.java
deleted file mode 100644
index 357d413..0000000
--- a/src/main/java/com/ruoyi/inventory/mapper/StockProductMapper.java
+++ /dev/null
@@ -1,26 +0,0 @@
-package com.ruoyi.inventory.mapper;
-
-
-
-import com.ruoyi.inventory.pojo.StockProduct;
-
-import java.util.List;
-
-/**
-* @author 86151
-* @description 閽堝琛ㄣ�恠tock_product銆戠殑鏁版嵁搴撴搷浣淢apper
-* @createDate 2025-06-23 18:11:59
-* @Entity inventory.domain.StockProduct
-*/
-public interface StockProductMapper {
-    List<StockProduct> selectList();
-    int deleteByPrimaryKey(Long id);
-
-    int insertSelective(StockProduct record);
-
-    StockProduct selectByPrimaryKey(Long id);
-
-    int updateByPrimaryKeySelective(StockProduct record);
-
-
-}
diff --git a/src/main/java/com/ruoyi/inventory/pojo/StockIn.java b/src/main/java/com/ruoyi/inventory/pojo/StockIn.java
index 8eb7902..f6f52e6 100644
--- a/src/main/java/com/ruoyi/inventory/pojo/StockIn.java
+++ b/src/main/java/com/ruoyi/inventory/pojo/StockIn.java
@@ -23,14 +23,9 @@
     private Integer id;
 
     /**
-     * 浜у搧id
-     */
-    private Integer productRecordid;
-
-    /**
      * 鍏ュ簱鏃堕棿
      */
-    @JsonFormat(pattern = "yyyy-MM-dd")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
     private Date inboundTime;
 
     /**
@@ -53,6 +48,7 @@
      * 鍏ュ簱浜�
      */
     private Long userId;
+    private Long productrecordId;
 //    tenant_id
     /**
      * 绉熸埛ID
diff --git a/src/main/java/com/ruoyi/inventory/pojo/StockManagement.java b/src/main/java/com/ruoyi/inventory/pojo/StockManagement.java
index 935bc91..a4ddfff 100644
--- a/src/main/java/com/ruoyi/inventory/pojo/StockManagement.java
+++ b/src/main/java/com/ruoyi/inventory/pojo/StockManagement.java
@@ -22,10 +22,7 @@
      */
     private Integer id;
 
-    /**
-     * 浜у搧id
-     */
-    private Integer productRecordid;
+    private Long productrecordId;
 
     /**
      * 褰撳墠搴撳瓨閲�
@@ -35,9 +32,9 @@
     private String inboundBatch;
     private Integer supplierId;
 
-    @JsonFormat(pattern = "yyyy-MM-dd")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
     private Date boundTime;
-    @JsonFormat(pattern = "yyyy-MM-dd")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
     private Date inboundTime;
 
     /**
diff --git a/src/main/java/com/ruoyi/inventory/pojo/StockOut.java b/src/main/java/com/ruoyi/inventory/pojo/StockOut.java
index 47c494a..34ba8c4 100644
--- a/src/main/java/com/ruoyi/inventory/pojo/StockOut.java
+++ b/src/main/java/com/ruoyi/inventory/pojo/StockOut.java
@@ -7,6 +7,7 @@
 import com.baomidou.mybatisplus.annotation.FieldFill;
 import com.baomidou.mybatisplus.annotation.TableField;
 import com.baomidou.mybatisplus.annotation.TableName;
+import com.fasterxml.jackson.annotation.JsonFormat;
 import lombok.Data;
 
 /**
@@ -21,14 +22,12 @@
      */
     private Integer id;
 
-    /**
-     * 浜у搧id
-     */
-    private Integer productRecordid;
 
+    private Long productrecordId;
     /**
      * 鍑哄簱鏃堕棿
      */
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
     private Date inboundTime;
 
     /**
@@ -52,7 +51,7 @@
      * 鍑哄簱浜�
      */
     private Long userId;
-    private Integer stockmanageId;
+
     @TableField(fill = FieldFill.INSERT)
     private Long tenantId;
 
diff --git a/src/main/java/com/ruoyi/inventory/pojo/StockProduct.java b/src/main/java/com/ruoyi/inventory/pojo/StockProduct.java
deleted file mode 100644
index f897913..0000000
--- a/src/main/java/com/ruoyi/inventory/pojo/StockProduct.java
+++ /dev/null
@@ -1,33 +0,0 @@
-package com.ruoyi.inventory.pojo;
-
-import java.io.Serializable;
-import lombok.Data;
-
-/**
- * 
- * @TableName stock_product
- */
-@Data
-public class StockProduct implements Serializable {
-    /**
-     * 浜у搧ID
-     */
-    private Integer id;
-
-    /**
-     * 浜у搧澶х被锛堝鈥滀骇鍝�1鈥濓級
-     */
-    private String productCategory;
-
-    /**
-     * 瑙勬牸鍨嬪彿
-     */
-    private String specModel;
-
-    /**
-     * 鍗曚綅锛堝鈥滃惃鈥濓級
-     */
-    private String unit;
-
-    private static final long serialVersionUID = 1L;
-}
\ No newline at end of file
diff --git a/src/main/java/com/ruoyi/inventory/service/StockInService.java b/src/main/java/com/ruoyi/inventory/service/StockInService.java
index 551a09e..cb6312e 100644
--- a/src/main/java/com/ruoyi/inventory/service/StockInService.java
+++ b/src/main/java/com/ruoyi/inventory/service/StockInService.java
@@ -19,7 +19,7 @@
 
     StockIn getStockInById(Long id);
 
-    boolean updateStockIn(StockIn stockIn);
+    void updateStockIn(StockIn stockIn);
 
     int delStockin(List<Integer> ids);
 //    PageInfo<StockinProcuct> getStockInPage(Integer pageNum, Integer pageSize, StockInQueryDTO query);
diff --git a/src/main/java/com/ruoyi/inventory/service/StockManagementService.java b/src/main/java/com/ruoyi/inventory/service/StockManagementService.java
index 4d75978..4a7043c 100644
--- a/src/main/java/com/ruoyi/inventory/service/StockManagementService.java
+++ b/src/main/java/com/ruoyi/inventory/service/StockManagementService.java
@@ -18,4 +18,6 @@
     void stockManageExport(HttpServletResponse response, StockManagementDto stockManagementdto);
     int stockout(StockManagement stockManagement);
     int addStockManage(StockManagement stockManagement);
+//    鏍规嵁id鏌ヨ
+    StockManagement getStockManageById(Long id);
 }
diff --git a/src/main/java/com/ruoyi/inventory/service/StockOutService.java b/src/main/java/com/ruoyi/inventory/service/StockOutService.java
index cd8700c..3609ea1 100644
--- a/src/main/java/com/ruoyi/inventory/service/StockOutService.java
+++ b/src/main/java/com/ruoyi/inventory/service/StockOutService.java
@@ -15,7 +15,7 @@
     int delStockOut(List<Integer> ids);
 
     StockOut getStockOutById(Long id);
-    void saveStockout(StockOut stockout);
+//    void saveStockout(StockOut stockout);
     int updateStockOut(StockOut stockOut);
     IPage<StockoutDto> selectStockOutPage(Page page, StockoutDto stockoutDto);
     void stockoutExport(HttpServletResponse response, StockoutDto stockoutDto);
diff --git a/src/main/java/com/ruoyi/inventory/service/impl/StockInServiceImpl.java b/src/main/java/com/ruoyi/inventory/service/impl/StockInServiceImpl.java
index 371dad2..6ad5d02 100644
--- a/src/main/java/com/ruoyi/inventory/service/impl/StockInServiceImpl.java
+++ b/src/main/java/com/ruoyi/inventory/service/impl/StockInServiceImpl.java
@@ -14,6 +14,7 @@
 import com.ruoyi.inventory.mapper.StockInMapper;
 import com.ruoyi.inventory.pojo.StockManagement;
 import com.ruoyi.inventory.service.StockInService;
+import com.ruoyi.purchase.dto.ProductRecordDto;
 import com.ruoyi.purchase.dto.PurchaseLedgerDto;
 import com.ruoyi.purchase.mapper.ProductRecordMapper;
 import com.ruoyi.purchase.pojo.ProductRecord;
@@ -46,41 +47,30 @@
     @Override
     @Transactional(rollbackFor = Exception.class)
     public void saveStockin(StockIn stockIn) {
-//闇�瑕佸厛鍒ゆ柇浜у搧璁板綍琛ㄤ腑鏄惁鏈夎浜у搧
-        ProductRecord productRecord = productRecordMapper.selectById(stockIn.getProductRecordid());
-        if (productRecord == null) {
-            throw new RuntimeException("浜у搧璁板綍琛ㄤ腑娌℃湁璇ヤ骇鍝�");
-        }
-//        闇�瑕佸厛鍒ゆ柇渚涘簲鍟嗚〃涓槸鍚︽湁璇ヤ緵搴斿晢
-        SupplierManage supplierManage = supplierManageMapper.selectById(stockIn.getSupplierId());
-        if (supplierManage == null) {
-            throw new RuntimeException("渚涘簲鍟嗚〃涓病鏈夎渚涘簲鍟�");
-        }
-//        闇�瑕佸厛鍒ゆ柇搴撳瓨绠$悊琛ㄤ腑鏄惁鏈夎浜у搧
-        LambdaQueryWrapper<StockManagement> queryWrapper = new LambdaQueryWrapper<>();
-        queryWrapper.eq(StockManagement::getProductRecordid, stockIn.getProductRecordid());
-        queryWrapper.eq(StockManagement::getSupplierId, stockIn.getSupplierId());
-        queryWrapper.eq(StockManagement::getUserId, stockIn.getUserId());
-        StockManagement stockManagement = stockManagementMapper.selectOne(queryWrapper);
-        if (stockManagement == null) {
-//            濡傛灉娌℃湁璇ヤ骇鍝侊紝闇�瑕佸厛鏂板搴撳瓨绠$悊琛�
-            stockManagement = new StockManagement();
-            stockManagement.setProductRecordid(stockIn.getProductRecordid());
-            stockManagement.setSupplierId(stockIn.getSupplierId());
+//闇�瑕佸厛鍒ゆ柇閲囪喘璁板綍琛ㄤ腑鏄惁鏈夎浜у搧鐨勯噰璐褰�
+//        鏍规嵁浜у搧id鏌ヨ閲囪喘璁板綍琛�
+        ProductRecordDto productRecordDto = productRecordMapper.selectProductRecordById(stockIn.getProductrecordId());
+        if (productRecordDto != null) {
+//            娣诲姞鍏ュ簱璁板綍鍜屽簱瀛樼鐞嗚褰�
+            stockIn.setInboundTime(new Date());
+//            鑷姩鐢熸垚鎵规鐮�
+            String batchCode = "RK" + System.currentTimeMillis();
+            stockIn.setInboundBatch(batchCode);
+            stockIn.setSupplierId(productRecordDto.getSupplierId());
+            stockInMapper.insert(stockIn);
+//          鍦ㄥ簱瀛樼鐞嗚〃涓坊鍔犲簱瀛樼鐞嗚褰�
+            StockManagement stockManagement = new StockManagement();
+            stockManagement.setProductrecordId(productRecordDto.getId());
             stockManagement.setStockQuantity(stockIn.getInboundQuantity());
             stockManagement.setInboundTime(stockIn.getInboundTime());
-            stockManagement.setBoundTime(new Date());
+            stockManagement.setInboundBatch(stockIn.getInboundBatch());
             stockManagement.setUserId(stockIn.getUserId());
+            stockManagement.setSupplierId(productRecordDto.getSupplierId());
+            stockManagement.setBoundTime(stockIn.getInboundTime());
             stockManagementMapper.insert(stockManagement);
+        }else {
+            throw new RuntimeException("閲囪喘璁板綍琛ㄤ腑娌℃湁璇ヤ骇鍝佺殑閲囪喘璁板綍");
         }
-//        濡傛灉鏈夎浜у搧锛岄渶瑕佸厛鏇存柊搴撳瓨绠$悊琛�
-            stockManagement.setStockQuantity(stockManagement.getStockQuantity() + stockIn.getInboundQuantity());
-            stockManagement.setInboundTime(stockIn.getInboundTime());
-            stockManagement.setBoundTime(new Date());
-            stockManagement.setUserId(stockIn.getUserId());
-            stockManagementMapper.updateById(stockManagement);
-//            闇�瑕佸厛鏂板搴撳瓨鍏ュ簱琛�
-            stockInMapper.insert(stockIn);
     }
 
     @Override//鏍规嵁id鑾峰彇搴撳瓨鍏ュ簱淇℃伅
@@ -88,75 +78,20 @@
         StockIn stockIn = stockInMapper.selectById(id);
         return stockIn;
     }
+
     @Override
     @Transactional(rollbackFor = Exception.class)
-    public boolean updateStockIn(StockIn stockIn) {
-        // 1. 鍙傛暟鏍¢獙
-        if (stockIn == null || stockIn.getId() == null) {
-            throw new IllegalArgumentException("鍏ュ簱璁板綍ID涓嶈兘涓虹┖");
+    public void updateStockIn(StockIn stockIn) {
+//        闇�瑕佸厛鍒ゆ柇閲囪喘璁板綍琛ㄤ腑鏄惁鏈夎浜у搧鐨勯噰璐褰�
+        LambdaQueryWrapper<ProductRecord> queryWrapper1 = new LambdaQueryWrapper<>();
+        queryWrapper1.eq(ProductRecord::getId, stockIn.getProductrecordId());
+        ProductRecord productRecord = productRecordMapper.selectOne(queryWrapper1);
+        if (productRecord!= null) {
+            stockIn.setInboundTime(stockIn.getInboundTime());
+            stockInMapper.updateById(stockIn);
+        }    else {
+            throw new RuntimeException("閲囪喘璁板綍琛ㄤ腑娌℃湁璇ヤ骇鍝佺殑閲囪喘璁板綍");
         }
-
-        // 2. 鑾峰彇鍘熷璁板綍
-        StockIn original = stockInMapper.selectById(stockIn.getId());
-        if (original == null) {
-            throw new RuntimeException("瑕佷慨鏀圭殑鍏ュ簱璁板綍涓嶅瓨鍦紝ID: " + stockIn.getId());
-        }
-
-        // 3. 妫�鏌ュ叧鑱旀暟鎹�
-        // 3.1 妫�鏌ヤ骇鍝�
-        if (stockIn.getProductRecordid() != null &&
-                productRecordMapper.selectById(stockIn.getProductRecordid()) == null) {
-            throw new RuntimeException("浜у搧璁板綍涓嶅瓨鍦紝ID: " + stockIn.getProductRecordid());
-        }
-
-        // 3.2 妫�鏌ヤ緵搴斿晢
-        if (stockIn.getSupplierId() != null &&
-                supplierManageMapper.selectById(stockIn.getSupplierId()) == null) {
-            throw new RuntimeException("渚涘簲鍟嗕笉瀛樺湪锛孖D: " + stockIn.getSupplierId());
-        }
-
-        // 4. 纭畾鏈�缁堜娇鐢ㄧ殑鍚処D鍊�
-        Integer finalProductId = stockIn.getProductRecordid() != null ?
-                stockIn.getProductRecordid() : original.getProductRecordid();
-        Integer finalSupplierId = stockIn.getSupplierId() != null ?
-                stockIn.getSupplierId() : original.getSupplierId();
-        Long finalUserId = stockIn.getUserId() != null ?
-                stockIn.getUserId() : original.getUserId();
-
-        // 5. 澶勭悊搴撳瓨璁板綍锛堢‘淇濆瓨鍦ㄥ搴旇褰曪級
-        LambdaQueryWrapper<StockManagement> wrapper = new LambdaQueryWrapper<>();
-        wrapper.eq(StockManagement::getProductRecordid, finalProductId)
-                .eq(StockManagement::getSupplierId, finalSupplierId)
-                .eq(StockManagement::getUserId, finalUserId);
-
-        StockManagement stock = stockManagementMapper.selectOne(wrapper);
-
-        // 璁$畻鏁伴噺鍙樺寲锛堝鏋滄湁淇敼锛�
-        Integer quantityChange = stockIn.getInboundQuantity() != null ?
-                stockIn.getInboundQuantity() - original.getInboundQuantity() : 0;
-
-        if (stock == null) {
-            // 5.1 涓嶅瓨鍦ㄥ垯鍒涘缓鏂拌褰�
-            stock = new StockManagement();
-            stock.setProductRecordid(finalProductId);
-            stock.setSupplierId(finalSupplierId);
-            stock.setUserId(finalUserId);
-            // 鍒濆搴撳瓨 = 鍘熷搴撳瓨 + 鍙樺寲閲忥紙鑰冭檻淇敼鍚庣殑鍊硷級
-            stock.setStockQuantity(original.getInboundQuantity() + quantityChange);
-            stockManagementMapper.insert(stock);
-        } else if (quantityChange != 0) {
-            // 5.2 瀛樺湪涓旀暟閲忔湁鍙樺寲鍒欐洿鏂�
-            stock.setStockQuantity(stock.getStockQuantity() + quantityChange);
-            stockManagementMapper.updateById(stock);
-        }
-
-        // 6. 鏇存柊鍏ュ簱璁板綍
-        int updateResult = stockInMapper.updateById(stockIn);
-        if (updateResult <= 0) {
-            throw new RuntimeException("鍏ュ簱璁板綍鏇存柊澶辫触");
-        }
-
-        return updateResult > 0;
     }
 
 
diff --git a/src/main/java/com/ruoyi/inventory/service/impl/StockManagementServiceImpl.java b/src/main/java/com/ruoyi/inventory/service/impl/StockManagementServiceImpl.java
index a19d90b..b5dc014 100644
--- a/src/main/java/com/ruoyi/inventory/service/impl/StockManagementServiceImpl.java
+++ b/src/main/java/com/ruoyi/inventory/service/impl/StockManagementServiceImpl.java
@@ -14,12 +14,14 @@
 import com.ruoyi.inventory.pojo.StockManagement;
 import com.ruoyi.inventory.pojo.StockOut;
 import com.ruoyi.inventory.service.StockManagementService;
+import com.ruoyi.purchase.dto.ProductRecordDto;
 import com.ruoyi.purchase.mapper.ProductRecordMapper;
 import com.ruoyi.purchase.pojo.ProductRecord;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 
 import javax.servlet.http.HttpServletResponse;
+import java.util.Date;
 import java.util.List;
 
 @Service
@@ -60,51 +62,55 @@
 
     @Override
     public int stockout(StockManagement stockManagement) {
-//        闇�瑕佽繘琛屽垽鏂紝搴撳瓨鏁伴噺鏄惁瓒冲
-        StockManagement stockManagement1 = stockManagementMapper.selectById(stockManagement.getId());
+//        鍦ㄥ墠绔叾瀹炲氨绌夸簡3涓暟锛屾暟閲忥紝鍑哄簱浜猴紝鏃堕棿锛屽彧闇�瑕佽繘琛屽垽鏂紝搴撳瓨鏁伴噺鏄惁瓒冲鍗冲彲,鏈変笁绉嶆儏鍐�
+        StockOut stockOut = new StockOut();
+        LambdaQueryWrapper<StockManagement> queryWrapper = new LambdaQueryWrapper<>();
+        queryWrapper.eq(StockManagement::getId, stockManagement.getId());
+        StockManagement stockManagement1 = stockManagementMapper.selectOne(queryWrapper);
         if (stockManagement1.getStockQuantity() < stockManagement.getStockQuantity()) {
             throw new RuntimeException("搴撳瓨鏁伴噺涓嶈冻");
-        }else if (stockManagement1.getStockQuantity().equals(stockManagement.getStockQuantity())){
-//            鍑忓幓鐨勬暟閲忚鍦ㄥ嚭搴撹褰曡〃涓姞涓�鏉℃暟鎹�
-            StockOut stockOut = new StockOut();
-            stockOut.setInboundQuantity(stockManagement.getStockQuantity());
-            stockOut.setProductRecordid(stockManagement1.getProductRecordid());
-            stockOut.setSupplierId(stockManagement1.getSupplierId());
-            stockOut.setUserId(stockManagement.getUserId());
-            stockOut.setInboundTime(stockManagement1.getBoundTime());
-            stockOutMapper.insert(stockOut);
-            return stockManagementMapper.deleteById(stockManagement.getId());
+        } else if (stockManagement1.getStockQuantity() > stockManagement.getStockQuantity()) {
+            stockManagement1.setStockQuantity(stockManagement1.getStockQuantity() - stockManagement.getStockQuantity());
+            stockManagementMapper.updateById(stockManagement1);
         }
         else {
-            stockManagement1.setStockQuantity(stockManagement1.getStockQuantity() - stockManagement.getStockQuantity());
-            StockOut stockOut = new StockOut();
-            stockOut.setInboundQuantity(stockManagement.getStockQuantity());
-            stockOut.setProductRecordid(stockManagement1.getProductRecordid());
-            stockOut.setSupplierId(stockManagement1.getSupplierId());
-            stockOut.setUserId(stockManagement.getUserId());
-            stockOut.setInboundTime(stockManagement1.getBoundTime());
-            stockOutMapper.insert(stockOut);
-            return stockManagementMapper.updateById(stockManagement1);
+            stockManagementMapper.deleteById(stockManagement.getId());
         }
+        stockOut.setProductrecordId(stockManagement1.getProductrecordId());
+        stockOut.setInboundTime(stockManagement.getBoundTime());
+//            鍑哄簱鎵规鑷姩鐢熸垚
+        String batchCode = "CK" + System.currentTimeMillis();
+        stockOut.setInboundBatch(batchCode);
+        stockOut.setSupplierId(stockManagement1.getSupplierId());
+        stockOut.setInboundQuantity(stockManagement.getStockQuantity());
+        stockOut.setUserId(stockManagement.getUserId());
+        return stockOutMapper.insert(stockOut);
     }
 
 //    娣诲姞搴撳瓨鏂规硶
     @Override
     public int addStockManage(StockManagement stockManagement) {
-//        闇�瑕佽繘琛屽垽鏂�
+//        闇�瑕佸厛鍒ゆ柇閲囪喘璁板綍琛ㄤ腑鏄惁鏈夎浜у搧鐨勯噰璐褰�
         LambdaQueryWrapper<ProductRecord> queryWrapper1 = new LambdaQueryWrapper<>();
-        queryWrapper1.eq(ProductRecord::getProductId, stockManagement.getProductRecordid());
+        queryWrapper1.eq(ProductRecord::getId, stockManagement.getProductrecordId());
         ProductRecord productRecord = productRecordMapper.selectOne(queryWrapper1);
-        if (productRecord == null) {
-            throw new RuntimeException("浜у搧涓嶅瓨鍦�");
+        ProductRecordDto productRecordDto = productRecordMapper.selectProductRecordById(productRecord.getId());
+        if (productRecordDto!= null) {
+            stockManagement.setProductrecordId(productRecordDto.getId());
+            stockManagement.setBoundTime(stockManagement.getBoundTime());
+            stockManagement.setSupplierId(productRecordDto.getSupplierId());
+            stockManagement.setStockQuantity(stockManagement.getStockQuantity());
+            stockManagement.setUserId(stockManagement.getUserId());
+            return stockManagementMapper.insert(stockManagement);
+        }else {
+            throw new RuntimeException("閲囪喘璁板綍琛ㄤ腑娌℃湁璇ヤ骇鍝佺殑閲囪喘璁板綍");
         }
-        LambdaQueryWrapper<SupplierManage> queryWrapper2 = new LambdaQueryWrapper<>();
-        queryWrapper2.eq(SupplierManage::getId, stockManagement.getSupplierId());
-        SupplierManage supplierManage = supplierManageMapper.selectOne(queryWrapper2);
-        System.out.println(supplierManage+"11");
-        if (supplierManage == null) {
-            throw new RuntimeException("渚涘簲鍟嗕笉瀛樺湪");
-        }
-        return stockManagementMapper.insert(stockManagement);
     }
+
+    @Override
+    public StockManagement getStockManageById(Long id) {
+        return stockManagementMapper.selectById(id);
+    }
+
+
 }
diff --git a/src/main/java/com/ruoyi/inventory/service/impl/StockOutServiceImpl.java b/src/main/java/com/ruoyi/inventory/service/impl/StockOutServiceImpl.java
index d6e2383..e7b326b 100644
--- a/src/main/java/com/ruoyi/inventory/service/impl/StockOutServiceImpl.java
+++ b/src/main/java/com/ruoyi/inventory/service/impl/StockOutServiceImpl.java
@@ -49,59 +49,16 @@
         return stockOut;
     }
 
-    @Override
-    @Transactional(rollbackFor = Exception.class)
-    public void saveStockout(StockOut stockOut) {
-//    杩涜鍒ゆ柇鏄惁瀛樺湪鐩稿悓鐨勪骇鍝乮d鍜屼緵搴斿晢id,瑕佸垽鏂璸roduct_id鍦ㄨ〃product_record涓槸鍚﹀瓨鍦紝鍥犱负stock_out琛ㄤ腑鐨刾roduct_id鏄痯roduct_record琛ㄤ腑鐨刾roduct_id鍏宠仈鐨�
-        LambdaQueryWrapper<ProductRecord> queryWrapper1 = new LambdaQueryWrapper<>();
-        queryWrapper1.eq(ProductRecord::getProductId, stockOut.getProductRecordid());
-        ProductRecord productRecord = productRecordMapper.selectOne(queryWrapper1);
-        if (productRecord == null) {
-            throw new RuntimeException("浜у搧涓嶅瓨鍦�");
-        }
-        LambdaQueryWrapper<SupplierManage> queryWrapper2 = new LambdaQueryWrapper<>();
-        queryWrapper2.eq(SupplierManage::getId, stockOut.getSupplierId());
-        SupplierManage supplierManage = supplierManageMapper.selectOne(queryWrapper2);
-        if (supplierManage == null) {
-            throw new RuntimeException("渚涘簲鍟嗕笉瀛樺湪");
-        }
-        LambdaQueryWrapper<StockManagement> queryWrapper = new LambdaQueryWrapper<>();
-        queryWrapper.eq(StockManagement::getProductRecordid, stockOut.getProductRecordid());
-        queryWrapper.eq(StockManagement::getSupplierId, stockOut.getSupplierId());
-        StockManagement stockManagement = stockManagementMapper.selectOne(queryWrapper);
-        if (stockManagement != null) {
-            stockOut.setStockmanageId(stockManagement.getId());
-            stockOutMapper.insert(stockOut);
-        }else {
-            throw new RuntimeException("搴撳瓨涓笉瀛樺湪璇ヤ骇鍝佸拰渚涘簲鍟�");
-        }
-    }
+//    @Override
+//    @Transactional(rollbackFor = Exception.class)
+//    public void saveStockout(StockOut stockOut) {
+//
+//    }
 
     @Override
     public int updateStockOut(StockOut stockOut) {
-//      淇敼鐨勬椂鍊欒鍒ゆ柇鏄惁瀛樺湪鐩稿悓鐨勪骇鍝乮d鍜屼緵搴斿晢id
-        LambdaQueryWrapper<ProductRecord> queryWrapper1 = new LambdaQueryWrapper<>();
-        queryWrapper1.eq(ProductRecord::getProductId, stockOut.getProductRecordid());
-        ProductRecord productRecord = productRecordMapper.selectOne(queryWrapper1);
-        if (productRecord == null) {
-            throw new RuntimeException("浜у搧涓嶅瓨鍦�");
-        }
-        LambdaQueryWrapper<SupplierManage> queryWrapper2 = new LambdaQueryWrapper<>();
-        queryWrapper2.eq(SupplierManage::getId, stockOut.getSupplierId());
-        SupplierManage supplierManage = supplierManageMapper.selectOne(queryWrapper2);
-        if (supplierManage == null) {
-            throw new RuntimeException("渚涘簲鍟嗕笉瀛樺湪");
-        }
-        LambdaQueryWrapper<StockManagement> queryWrapper = new LambdaQueryWrapper<>();
-        queryWrapper.eq(StockManagement::getProductRecordid, stockOut.getProductRecordid());
-        queryWrapper.eq(StockManagement::getSupplierId, stockOut.getSupplierId());
-        StockManagement stockManagement = stockManagementMapper.selectOne(queryWrapper);
-        if (stockManagement != null) {
-            stockOut.setStockmanageId(stockManagement.getId());
-            return stockOutMapper.updateById(stockOut);
-        }else {
-            throw new RuntimeException("搴撳瓨涓笉瀛樺湪璇ヤ骇鍝佸拰渚涘簲鍟�");
-        }
+//      淇敼鍑哄簱璁板綍琛�
+        return stockOutMapper.updateById(stockOut);
     }
 
     @Override
diff --git a/src/main/java/com/ruoyi/project/system/mapper/SysUserMapper.java b/src/main/java/com/ruoyi/project/system/mapper/SysUserMapper.java
index f08882a..975a957 100644
--- a/src/main/java/com/ruoyi/project/system/mapper/SysUserMapper.java
+++ b/src/main/java/com/ruoyi/project/system/mapper/SysUserMapper.java
@@ -2,6 +2,7 @@
 
 import java.util.List;
 
+import org.apache.ibatis.annotations.Mapper;
 import org.apache.ibatis.annotations.Param;
 
 import com.ruoyi.project.system.domain.SysUser;
@@ -11,6 +12,7 @@
  * 
  * @author ruoyi
  */
+@Mapper
 public interface SysUserMapper
 {
     /**
diff --git a/src/main/java/com/ruoyi/purchase/dto/ProductRecordDto.java b/src/main/java/com/ruoyi/purchase/dto/ProductRecordDto.java
index ab7365f..0ed50a5 100644
--- a/src/main/java/com/ruoyi/purchase/dto/ProductRecordDto.java
+++ b/src/main/java/com/ruoyi/purchase/dto/ProductRecordDto.java
@@ -8,6 +8,8 @@
 
 @Data
 public class ProductRecordDto extends ProductRecord {
+//    渚涘簲鍟咺D
+    private Integer supplierId;
 
     //閿�鍞悎鍚屽彿
     private String salesContractNo;
diff --git a/src/main/java/com/ruoyi/purchase/mapper/ProductRecordMapper.java b/src/main/java/com/ruoyi/purchase/mapper/ProductRecordMapper.java
index fb691ed..38c4d7d 100644
--- a/src/main/java/com/ruoyi/purchase/mapper/ProductRecordMapper.java
+++ b/src/main/java/com/ruoyi/purchase/mapper/ProductRecordMapper.java
@@ -6,7 +6,10 @@
 import com.ruoyi.purchase.dto.ProductRecordDto;
 import com.ruoyi.purchase.dto.TicketRegistrationDto;
 import com.ruoyi.purchase.pojo.ProductRecord;
+import org.apache.ibatis.annotations.Mapper;
 import org.apache.ibatis.annotations.Param;
+
+import java.util.List;
 
 /**
  * 閲囪喘鍙拌处浜у搧寮�绁ㄨ褰昅apper鎺ュ彛
@@ -14,7 +17,11 @@
  * @author ruoyi
  * @date 2025-05-23
  */
+@Mapper
 public interface ProductRecordMapper extends BaseMapper<ProductRecord> {
 
     IPage<ProductRecordDto> productRecordPage(Page page, @Param("c") TicketRegistrationDto ticketRegistrationDto);
+
+    List<ProductRecordDto> selectProductRecordListByPuechaserId(String purchaseContractNumber);
+    ProductRecordDto selectProductRecordById(Long id);
 }
diff --git a/src/main/java/com/ruoyi/purchase/service/IProductRecordService.java b/src/main/java/com/ruoyi/purchase/service/IProductRecordService.java
index 235f096..aac4492 100644
--- a/src/main/java/com/ruoyi/purchase/service/IProductRecordService.java
+++ b/src/main/java/com/ruoyi/purchase/service/IProductRecordService.java
@@ -20,4 +20,5 @@
     List<ProductRecord> selectProductRecordList(TicketRegistrationDto ticketRegistrationDto);
 
     IPage<ProductRecordDto> productRecordPage(Page page, TicketRegistrationDto ticketRegistrationDto);
+    List<ProductRecordDto> selectProductRecordListByPuechaserId(String purchaseContractNumber);
 }
diff --git a/src/main/java/com/ruoyi/purchase/service/impl/ProductRecordServiceImpl.java b/src/main/java/com/ruoyi/purchase/service/impl/ProductRecordServiceImpl.java
index a8b594d..5cddc7e 100644
--- a/src/main/java/com/ruoyi/purchase/service/impl/ProductRecordServiceImpl.java
+++ b/src/main/java/com/ruoyi/purchase/service/impl/ProductRecordServiceImpl.java
@@ -8,7 +8,9 @@
 import com.ruoyi.purchase.dto.ProductRecordDto;
 import com.ruoyi.purchase.dto.TicketRegistrationDto;
 import com.ruoyi.purchase.mapper.ProductRecordMapper;
+import com.ruoyi.purchase.mapper.PurchaseLedgerMapper;
 import com.ruoyi.purchase.pojo.ProductRecord;
+import com.ruoyi.purchase.pojo.PurchaseLedger;
 import com.ruoyi.purchase.service.IProductRecordService;
 import com.ruoyi.sales.mapper.CommonFileMapper;
 import com.ruoyi.sales.pojo.CommonFile;
@@ -34,6 +36,9 @@
 
     @Autowired
     private CommonFileMapper commonFileMapper;
+    @Autowired
+    private PurchaseLedgerMapper purchaseLedgerMapper;
+
 
 
 
@@ -59,4 +64,11 @@
         });
         return productRecordDtoIPage;
     }
+
+    @Override
+    public List<ProductRecordDto> selectProductRecordListByPuechaserId(String purchaseContractNumber) {
+        return productRecordMapper.selectProductRecordListByPuechaserId(purchaseContractNumber);
+    }
+
+
 }
diff --git a/src/main/resources/mapper/inventory/StockInMapper.xml b/src/main/resources/mapper/inventory/StockInMapper.xml
index aa53b7d..02003d4 100644
--- a/src/main/resources/mapper/inventory/StockInMapper.xml
+++ b/src/main/resources/mapper/inventory/StockInMapper.xml
@@ -5,41 +5,13 @@
 <mapper namespace="com.ruoyi.inventory.mapper.StockInMapper">
 
 
-<!--    <select id="selectByPrimaryKey" parameterType="java.lang.Long" resultType="com.ruoyi.inventory.dto.StockinDto">-->
-<!--        SELECT-->
-<!--            T1.id,-->
-<!--            T1.product_id,-->
-<!--            T1.inbound_time,-->
-<!--            T1.inbound_batch,-->
-<!--            T1.supplier_id,-->
-<!--            T1.inbound_quantity,-->
-<!--            T1.tax_inclusive_price,-->
-<!--            T1.tax_inclusive_total,-->
-<!--            T1.tax_rate,-->
-<!--            T1.tax_exclusive_total,-->
-<!--            T1.inbound_person,-->
-<!--            T1.tenant_id,-->
-<!--            T2.product_category,-->
-<!--            T2.specification_model,-->
-<!--            T3.supplier_name-->
-<!--        FROM-->
-<!--            stock_in T1-->
-<!--                INNER JOIN-->
-<!--            product_record T2-->
-<!--            ON-->
-<!--                T1.product_id = T2.product_id-->
-<!--                INNER JOIN-->
-<!--            supplier_manage T3-->
-<!--            ON-->
-<!--                T1.supplier_id = T3.id-->
-<!--        where  T1.id = #{id,jdbcType=INTEGER}-->
-<!--    </select>-->
-
 
     <select id="selectStockInWithProductInfo" resultType="com.ruoyi.inventory.dto.StockinDto">
         SELECT
         T1.id,
-        T1.product_recordid,
+        T1.productrecord_id,
+        T1.user_id,
+        T1.tenant_id,
         T1.inbound_time,
         T1.inbound_batch,
         T1.supplier_id,
@@ -48,11 +20,9 @@
         T2.tax_inclusive_total_price,
         T2.tax_rate,
         T2.tax_exclusive_total_price,
-        T1.user_id,
-        T1.tenant_id,
-        T2.product_category,
-        T2.specification_model,
-        T2.unit,
+        T5.product_name,
+        T6.model,
+        T6.unit,
         T3.supplier_name,
         T4.nick_name
         FROM
@@ -60,7 +30,7 @@
         INNER JOIN
         product_record T2
         ON
-        T1.product_recordid = T2.id
+        T1.productrecord_id = T2.id
         INNER JOIN
         supplier_manage T3
         ON
@@ -68,7 +38,16 @@
         INNER JOIN sys_user T4
         ON
         T1.user_id = T4.user_id
+        INNER JOIN
+        product_model T6
+        ON
+        T2.product_model_id = T6.id
+        INNER JOIN
+        product T5
+        ON
+        T2.product_id = T5.id
         <where>
+            T2.type = 2
             <if test="stockinDto.supplierName != null and stockinDto.supplierName != ''">
                 AND T3.supplier_name LIKE CONCAT('%', #{stockinDto.supplierName}, '%')
             </if>
@@ -79,7 +58,9 @@
     <select id="stockinExportList" resultType="com.ruoyi.inventory.excel.StockInExcelDto">
         SELECT
         T1.id,
-        T1.product_recordid,
+        T1.productrecord_id,
+        T1.user_id,
+        T1.tenant_id,
         T1.inbound_time,
         T1.inbound_batch,
         T1.supplier_id,
@@ -88,11 +69,9 @@
         T2.tax_inclusive_total_price,
         T2.tax_rate,
         T2.tax_exclusive_total_price,
-        T1.user_id,
-        T1.tenant_id,
-        T2.product_category,
-        T2.specification_model,
-        T2.unit,
+        T5.product_name,
+        T6.model,
+        T6.unit,
         T3.supplier_name,
         T4.nick_name
         FROM
@@ -100,7 +79,7 @@
         INNER JOIN
         product_record T2
         ON
-        T1.product_recordid = T2.id
+        T1.productrecord_id = T2.id
         INNER JOIN
         supplier_manage T3
         ON
@@ -108,15 +87,18 @@
         INNER JOIN sys_user T4
         ON
         T1.user_id = T4.user_id
+        INNER JOIN
+        product_model T6
+        ON
+        T2.product_model_id = T6.id
+        INNER JOIN
+        product T5
+        ON
+        T2.product_id = T5.id
         <where>
+            T2.type = 2
             <if test="stockinDto.supplierName != null and stockinDto.supplierName != ''">
                 AND T3.supplier_name LIKE CONCAT('%', #{stockinDto.supplierName}, '%')
-            </if>
-            <if test="stockinDto.startTime != null and stockinDto.startTime != ''">
-                AND T1.inbound_time &gt;= #{stockinDto.startTime}
-            </if>
-            <if test="stockinDto.endTime != null and stockinDto.endTime != ''">
-                AND T1.inbound_time &lt;= #{stockinDto.endTime}
             </if>
         </where>
         ORDER BY T1.inbound_time DESC
diff --git a/src/main/resources/mapper/inventory/StockManagementMapper.xml b/src/main/resources/mapper/inventory/StockManagementMapper.xml
index 4bc349f..6387ddc 100644
--- a/src/main/resources/mapper/inventory/StockManagementMapper.xml
+++ b/src/main/resources/mapper/inventory/StockManagementMapper.xml
@@ -7,12 +7,12 @@
 <!--    鏍规嵁渚涘簲鍟嗘ā绯婃悳绱�-->
     <select id="selectStockManagementBypage" resultType="com.ruoyi.inventory.dto.StockManagementDto">
         SELECT
-            T2.unit,
-            T2.product_category,
-            T2.specification_model,
+            T5.unit,
+            T5.model,
+            T6.product_name,
             T3.supplier_name,
             T1.id,
-            T1.product_recordid,
+            T1.productrecord_id,
             T1.stock_quantity,
             T2.tax_inclusive_unit_price,
             T2.tax_inclusive_total_price,
@@ -30,7 +30,7 @@
                 INNER JOIN
             product_record T2
             ON
-                T1.product_recordid = T2.id
+                T1.productrecord_id = T2.id
                 INNER JOIN
             supplier_manage T3
             ON
@@ -39,6 +39,14 @@
             sys_user T4
             ON
                 T1.user_id = T4.user_id
+                INNER JOIN
+            product_model T5
+            ON
+            T2.product_model_id = T5.id
+            INNER JOIN
+            product T6
+            ON
+            T2.product_id = T6.id
         <where>
             <if test="stockManagementDto.supplierName != null and stockManagementDto.supplierName != ''">
                 AND T3.supplier_name LIKE CONCAT('%', #{stockManagementDto.supplierName}, '%')
@@ -48,12 +56,12 @@
 
     <select id="stockManageExportList" resultType="com.ruoyi.inventory.excel.StockManagementExcelDto">
         SELECT
-        T2.unit,
-        T2.product_category,
-        T2.specification_model,
+        T5.unit,
+        T5.model,
+        T6.product_name,
         T3.supplier_name,
         T1.id,
-        T1.product_recordid,
+        T1.productrecord_id,
         T1.stock_quantity,
         T2.tax_inclusive_unit_price,
         T2.tax_inclusive_total_price,
@@ -71,7 +79,7 @@
         INNER JOIN
         product_record T2
         ON
-        T1.product_recordid = T2.id
+        T1.productrecord_id = T2.id
         INNER JOIN
         supplier_manage T3
         ON
@@ -80,6 +88,14 @@
         sys_user T4
         ON
         T1.user_id = T4.user_id
+        INNER JOIN
+        product_model T5
+        ON
+        T2.product_model_id = T5.id
+        INNER JOIN
+        product T6
+        ON
+        T2.product_id = T6.id
         <where>
             <if test="stockManagementDto.supplierName != null and stockManagementDto.supplierName != ''">
                 AND T3.supplier_name LIKE CONCAT('%', #{stockManagementDto.supplierName}, '%')
@@ -88,4 +104,5 @@
     </select>
 
 
+
 </mapper>
diff --git a/src/main/resources/mapper/inventory/StockOutMapper.xml b/src/main/resources/mapper/inventory/StockOutMapper.xml
index 024494e..00909df 100644
--- a/src/main/resources/mapper/inventory/StockOutMapper.xml
+++ b/src/main/resources/mapper/inventory/StockOutMapper.xml
@@ -7,7 +7,7 @@
     <select id="selectStockOutBypage" resultType="com.ruoyi.inventory.dto.StockoutDto">
         SELECT
         T1.id,
-        T1.product_recordid,
+        T1.productrecord_id,
         T1.inbound_time,
         T1.inbound_batch,
         T1.supplier_id,
@@ -18,9 +18,9 @@
         T2.tax_exclusive_total_price,
         T1.user_id,
         T1.tenant_id,
-        T2.product_category,
-        T2.specification_model,
-        T2.unit,
+        T6.product_name,
+        T5.model,
+        T5.unit,
         T3.supplier_name,
         T4.nick_name
         FROM
@@ -28,7 +28,7 @@
         INNER JOIN
         product_record T2
         ON
-        T1.product_recordid = T2.id
+        T1.productrecord_id = T2.id
         INNER JOIN
         supplier_manage T3
         ON
@@ -37,7 +37,16 @@
         sys_user T4
         ON
         T1.user_id = T4.user_id
+        INNER JOIN
+        product_model T5
+        ON
+        T2.product_model_id = T5.id
+        INNER JOIN
+        product T6
+        ON
+        T2.product_id = T6.id
         <where>
+            T2.type = 1
             <if test="stockOutdto.supplierName != null and stockOutdto.supplierName != ''">
                 AND T3.supplier_name LIKE CONCAT('%', #{stockOutdto.supplierName}, '%')
             </if>
@@ -58,9 +67,9 @@
         T2.tax_exclusive_total_price,
         T1.user_id,
         T1.tenant_id,
-        T2.product_category,
-        T2.specification_model,
-        T2.unit,
+        T6.product_name,
+        T5.model,
+        T5.unit,
         T3.supplier_name,
         T4.nick_name
         FROM
@@ -77,7 +86,16 @@
         sys_user T4
         ON
         T1.user_id = T4.user_id
+        INNER JOIN
+        product_model T5
+        ON
+        T2.product_model_id = T5.id
+        INNER JOIN
+        product T6
+        ON
+        T2.product_id = T6.id
         <where>
+            T2.type = 1
             <if test="stockOutdto.supplierName != null and stockOutdto.supplierName != ''">
                 AND T3.supplier_name LIKE CONCAT('%', #{stockOutdto.supplierName}, '%')
             </if>
diff --git a/src/main/resources/mapper/inventory/StockProductMapper.xml b/src/main/resources/mapper/inventory/StockProductMapper.xml
deleted file mode 100644
index baf75a8..0000000
--- a/src/main/resources/mapper/inventory/StockProductMapper.xml
+++ /dev/null
@@ -1,67 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!DOCTYPE mapper
-        PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
-        "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
-<mapper namespace="com.ruoyi.inventory.mapper.StockProductMapper">
-
-    <resultMap id="BaseResultMap" type="com.ruoyi.inventory.pojo.StockProduct">
-            <id property="id" column="id" jdbcType="INTEGER"/>
-            <result property="productCategory" column="product_category" jdbcType="VARCHAR"/>
-            <result property="specModel" column="spec_model" jdbcType="VARCHAR"/>
-            <result property="unit" column="unit" jdbcType="VARCHAR"/>
-    </resultMap>
-
-    <sql id="Base_Column_List">
-        id,product_category,spec_model,
-        unit
-    </sql>
-
-    <select id="selectByPrimaryKey" parameterType="java.lang.Long" resultMap="BaseResultMap">
-        select
-        <include refid="Base_Column_List" />
-        from stock_product
-        where  id = #{id,jdbcType=INTEGER} 
-    </select>
-    <select id="selectList" resultType="com.ruoyi.inventory.pojo.StockProduct">
-        select
-        <include refid="Base_Column_List" />
-        from stock_product
-    </select>
-
-    <delete id="deleteByPrimaryKey" parameterType="java.lang.Long">
-        delete from stock_product
-        where  id = #{id,jdbcType=INTEGER} 
-    </delete>
-
-    <insert id="insertSelective" keyColumn="id" keyProperty="id" parameterType="com.ruoyi.inventory.pojo.StockProduct" useGeneratedKeys="true">
-        insert into stock_product
-        <trim prefix="(" suffix=")" suffixOverrides=",">
-                <if test="id != null">id,</if>
-                <if test="productCategory != null">product_category,</if>
-                <if test="specModel != null">spec_model,</if>
-                <if test="unit != null">unit,</if>
-        </trim>
-        <trim prefix="values (" suffix=")" suffixOverrides=",">
-                <if test="id != null">#{id,jdbcType=INTEGER},</if>
-                <if test="productCategory != null">#{productCategory,jdbcType=VARCHAR},</if>
-                <if test="specModel != null">#{specModel,jdbcType=VARCHAR},</if>
-                <if test="unit != null">#{unit,jdbcType=VARCHAR},</if>
-        </trim>
-    </insert>
-    <update id="updateByPrimaryKeySelective" parameterType="com.ruoyi.inventory.pojo.StockProduct">
-        update stock_product
-        <set>
-                <if test="productCategory != null">
-                    product_category = #{productCategory,jdbcType=VARCHAR},
-                </if>
-                <if test="specModel != null">
-                    spec_model = #{specModel,jdbcType=VARCHAR},
-                </if>
-                <if test="unit != null">
-                    unit = #{unit,jdbcType=VARCHAR},
-                </if>
-        </set>
-        where   id = #{id,jdbcType=INTEGER} 
-    </update>
-
-</mapper>
diff --git a/src/main/resources/mapper/purchase/ProductRecordMapper.xml b/src/main/resources/mapper/purchase/ProductRecordMapper.xml
index 35f08ac..e749894 100644
--- a/src/main/resources/mapper/purchase/ProductRecordMapper.xml
+++ b/src/main/resources/mapper/purchase/ProductRecordMapper.xml
@@ -36,4 +36,38 @@
             and pr.created_at &lt;= date_format(#{c.createdAtEnd},'%Y-%m-%d hh:mm:ss')
         </if>
     </select>
+    <select id="selectProductRecordListByPuechaserId" resultType="com.ruoyi.purchase.dto.ProductRecordDto">
+        SELECT
+            P1.id,
+            P1.product_category,
+            P1.specification_model,
+            P1.unit,
+            P1.quantity,
+            P1.tax_rate,
+            P1.tax_inclusive_unit_price,
+            P1.tax_inclusive_total_price,
+            P1.tax_exclusive_total_price,
+            P2.supplier_name,
+            p2.supplier_id
+            from product_record P1
+            left join purchase_ledger P2 on P1.purchase_ledger_id = P2.id
+            where p2.purchase_contract_number = #{purchaseContractNumber} and P1.type = 2
+    </select>
+    <select id="selectProductRecordById" resultType="com.ruoyi.purchase.dto.ProductRecordDto">
+        SELECT
+            P1.id,
+            P1.product_category,
+            P1.specification_model,
+            P1.unit,
+            P1.quantity,
+            P1.tax_rate,
+            P1.tax_inclusive_unit_price,
+            P1.tax_inclusive_total_price,
+            P1.tax_exclusive_total_price,
+            P2.supplier_name,
+            p2.supplier_id
+        from product_record P1
+                 left join purchase_ledger P2 on P1.purchase_ledger_id = P2.id
+        where P1.id = #{id} and P1.type = 2
+    </select>
 </mapper>
\ No newline at end of file

--
Gitblit v1.9.3