From 8bf17a90f86e88a0bd67f7bbdde6ab7acd12f683 Mon Sep 17 00:00:00 2001
From: maven <2163098428@qq.com>
Date: 星期三, 09 七月 2025 14:19:53 +0800
Subject: [PATCH] yys  修改导入导出bug

---
 src/main/resources/mapper/procurementrecord/ProcurementRecordOutMapper.xml               |    1 
 src/main/java/com/ruoyi/procurementrecord/controller/ProcurementRecordController.java    |   28 +++
 src/main/java/com/ruoyi/procurementrecord/dto/ProcurementManagementUpdateDto.java        |   27 +++
 src/main/java/com/ruoyi/procurementrecord/dto/ProcurementPageDtoCopy.java                |  128 ++++++++++++++++++
 src/main/java/com/ruoyi/procurementrecord/service/ProcurementRecordService.java          |   11 +
 src/main/java/com/ruoyi/procurementrecord/mapper/ProcurementRecordMapper.java            |    5 
 src/main/resources/mapper/procurementrecord/ProcurementRecordMapper.xml                  |   59 ++++++++
 src/main/java/com/ruoyi/procurementrecord/dto/ProcurementPageDto.java                    |   13 +
 src/main/java/com/ruoyi/procurementrecord/service/impl/ProcurementRecordServiceImpl.java |  141 ++++++++++++++++++++
 src/main/java/com/ruoyi/procurementrecord/dto/ProcurementRecordOutPageDto.java           |    5 
 10 files changed, 407 insertions(+), 11 deletions(-)

diff --git a/src/main/java/com/ruoyi/procurementrecord/controller/ProcurementRecordController.java b/src/main/java/com/ruoyi/procurementrecord/controller/ProcurementRecordController.java
index 6778afc..a106fb2 100644
--- a/src/main/java/com/ruoyi/procurementrecord/controller/ProcurementRecordController.java
+++ b/src/main/java/com/ruoyi/procurementrecord/controller/ProcurementRecordController.java
@@ -7,10 +7,7 @@
 import com.ruoyi.framework.web.controller.BaseController;
 import com.ruoyi.framework.web.domain.AjaxResult;
 import com.ruoyi.framework.web.page.TableDataInfo;
-import com.ruoyi.procurementrecord.dto.ProcurementAddDto;
-import com.ruoyi.procurementrecord.dto.ProcurementDto;
-import com.ruoyi.procurementrecord.dto.ProcurementPageDto;
-import com.ruoyi.procurementrecord.dto.ProcurementUpdateDto;
+import com.ruoyi.procurementrecord.dto.*;
 import com.ruoyi.procurementrecord.service.ProcurementRecordService;
 import com.ruoyi.purchase.dto.InvoicePurchaseReportDto;
 import com.ruoyi.quality.pojo.QualityInspect;
@@ -56,6 +53,13 @@
         return AjaxResult.success(procurementRecordService.updatePro(procurementDto));
     }
 
+    @PostMapping("/updateManagement")
+    @Log(title = "閲囪喘鍏ュ簱-搴撳瓨鍙拌处-淇敼", businessType = BusinessType.UPDATE)
+    @Transactional
+    public AjaxResult updateManagement(@RequestBody ProcurementManagementUpdateDto procurementDto) {
+        return AjaxResult.success(procurementRecordService.updateManagement(procurementDto));
+    }
+
     @PostMapping("/del")
     @Log(title = "閲囪喘鍏ュ簱-鍏ュ簱绠$悊-鍒犻櫎鍏ュ簱", businessType = BusinessType.DELETE)
     @Transactional
@@ -70,6 +74,22 @@
         return AjaxResult.success(result);
     }
 
+    @GetMapping("/listPageCopy")
+    @Log(title = "閲囪喘鍏ュ簱-鍏ュ簱绠$悊-鍏ュ簱鏌ヨ", businessType = BusinessType.OTHER)
+    public AjaxResult listPageCopy(Page page, ProcurementPageDto procurementDto) {
+        IPage<ProcurementPageDtoCopy> result =procurementRecordService.listPageCopy(page, procurementDto);
+        return AjaxResult.success(result);
+    }
+
+    /**
+     * 瀵煎嚭
+     * @param response
+     */
+    @PostMapping("/exportCopy")
+    public void exportCopy(HttpServletResponse response) {
+        procurementRecordService.exportCopy(response);
+    }
+
     /**
      * 瀵煎嚭
      * @param response
diff --git a/src/main/java/com/ruoyi/procurementrecord/dto/ProcurementManagementUpdateDto.java b/src/main/java/com/ruoyi/procurementrecord/dto/ProcurementManagementUpdateDto.java
new file mode 100644
index 0000000..ae93d84
--- /dev/null
+++ b/src/main/java/com/ruoyi/procurementrecord/dto/ProcurementManagementUpdateDto.java
@@ -0,0 +1,27 @@
+package com.ruoyi.procurementrecord.dto;
+
+import com.fasterxml.jackson.annotation.JsonFormat;
+import com.ruoyi.framework.aspectj.lang.annotation.Excel;
+import lombok.Data;
+
+import java.math.BigDecimal;
+import java.time.LocalDateTime;
+
+/**
+ * @author :yys
+ * @date : 2025/7/9 9:41
+ */
+@Data
+public class ProcurementManagementUpdateDto {
+
+    private String createBy;
+
+    private Long createUser;
+
+    private String createTime;
+
+    private String entryDate;
+
+    private Integer id;
+
+}
diff --git a/src/main/java/com/ruoyi/procurementrecord/dto/ProcurementPageDto.java b/src/main/java/com/ruoyi/procurementrecord/dto/ProcurementPageDto.java
index 122d4b8..9929336 100644
--- a/src/main/java/com/ruoyi/procurementrecord/dto/ProcurementPageDto.java
+++ b/src/main/java/com/ruoyi/procurementrecord/dto/ProcurementPageDto.java
@@ -16,6 +16,8 @@
 
     private Integer id;
 
+    private Long createUser;
+
     /**
      * 鍏ュ簱鎵规
      */
@@ -45,11 +47,18 @@
     /**
      * 鍑哄叆搴撴椂闂�
      */
-    @Excel(name = "鍏ュ簱鏃堕棿")
-    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+//    @Excel(name = "鍏ュ簱鏃堕棿")
+    @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
     private LocalDateTime createTime;
 
     /**
+     * 鍑哄叆搴撴椂闂�
+     */
+    @Excel(name = "鍏ュ簱鏃堕棿")
+    private String time;
+
+
+    /**
      * 鍑哄叆搴撶敤鎴�
      */
     @Excel(name = "鍏ュ簱浜�")
diff --git a/src/main/java/com/ruoyi/procurementrecord/dto/ProcurementPageDtoCopy.java b/src/main/java/com/ruoyi/procurementrecord/dto/ProcurementPageDtoCopy.java
new file mode 100644
index 0000000..9ef5677
--- /dev/null
+++ b/src/main/java/com/ruoyi/procurementrecord/dto/ProcurementPageDtoCopy.java
@@ -0,0 +1,128 @@
+package com.ruoyi.procurementrecord.dto;
+
+import com.fasterxml.jackson.annotation.JsonFormat;
+import com.ruoyi.framework.aspectj.lang.annotation.Excel;
+import lombok.Data;
+
+import java.math.BigDecimal;
+import java.time.LocalDateTime;
+
+/**
+ * @author :yys
+ * @date : 2025/7/9 10:34
+ */
+@Data
+public class ProcurementPageDtoCopy {
+
+    private Integer id;
+
+    private Long createUser;
+
+    /**
+     * 鍏ュ簱鎵规
+     */
+    @Excel(name = "鍏ュ簱鎵规")
+    private String inboundBatches;
+
+    /**
+     * 鍚堝悓鍙�
+     */
+    private String purchaseContractNumber;
+
+    private String salesLedgerProductId;
+
+    /**
+     * 鍑哄叆搴撴暟閲�
+     */
+    @Excel(name = "鍏ュ簱鏁伴噺")
+    private BigDecimal inboundNum;
+
+    /**
+     * 寰呭嚭搴撴暟閲�
+     */
+    @Excel(name = "寰呭嚭搴撴暟閲�")
+    private BigDecimal inboundNum0;
+
+
+    /**
+     * 鍑哄叆搴撴椂闂�
+     */
+//    @Excel(name = "鍏ュ簱鏃堕棿")
+    @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
+    private LocalDateTime createTime;
+
+    /**
+     * 鍑哄叆搴撴椂闂�
+     */
+    @Excel(name = "鍏ュ簱鏃堕棿")
+    private String cTime;
+
+    /**
+     * 鍑哄叆搴撴椂闂�
+     */
+//    @Excel(name = "搴撳瓨鏃堕棿")
+    @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
+    private LocalDateTime updateTime;
+
+    /**
+     * 鍑哄叆搴撴椂闂�
+     */
+    @Excel(name = "搴撳瓨鏃堕棿")
+    private String uTime;
+
+    /**
+     * 鍑哄叆搴撶敤鎴�
+     */
+    @Excel(name = "鍏ュ簱浜�")
+    private String createBy;
+
+    /**
+     * 渚涘簲鍟嗗悕绉�
+     */
+    @Excel(name = "渚涘簲鍟嗗悕绉�")
+    private String supplierName;
+
+
+    /**
+     * 浜у搧澶х被
+     */
+    @Excel(name = "浜у搧澶х被")
+    private String productCategory;
+
+    /**
+     * 瑙勬牸鍨嬪彿
+     */
+    @Excel(name = "瑙勬牸鍨嬪彿")
+    private String specificationModel;
+
+    /**
+     * 鍗曚綅
+     */
+    @Excel(name = "鍗曚綅")
+    private String unit;
+
+    /**
+     * 绋庣巼
+     */
+    @Excel(name = "绋庣巼(%)")
+    private BigDecimal taxRate;
+
+    /**
+     * 鍚◣鍗曚环
+     */
+    @Excel(name = "鍚◣鍗曚环")
+    private BigDecimal taxInclusiveUnitPrice;
+
+    /**
+     * 鍚◣鎬讳环
+     */
+    @Excel(name = "鍚◣鎬讳环")
+    private BigDecimal taxInclusiveTotalPrice;
+
+    /**
+     * 涓嶅惈绋庢�讳环
+     */
+    @Excel(name = "涓嶅惈绋庢�讳环")
+    private BigDecimal taxExclusiveTotalPrice;
+
+}
diff --git a/src/main/java/com/ruoyi/procurementrecord/dto/ProcurementRecordOutPageDto.java b/src/main/java/com/ruoyi/procurementrecord/dto/ProcurementRecordOutPageDto.java
index 62fd6f7..3dd180e 100644
--- a/src/main/java/com/ruoyi/procurementrecord/dto/ProcurementRecordOutPageDto.java
+++ b/src/main/java/com/ruoyi/procurementrecord/dto/ProcurementRecordOutPageDto.java
@@ -25,10 +25,13 @@
     /**
      * 鍑哄叆搴撴椂闂�
      */
-    @Excel(name = "鍑哄簱鏃堕棿")
+//    @Excel(name = "鍑哄簱鏃堕棿")
     @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
     private LocalDateTime createTime;
 
+    @Excel(name = "鍑哄簱鏃堕棿")
+    private String time;
+
     /**
      * 鍑哄叆搴撶敤鎴�
      */
diff --git a/src/main/java/com/ruoyi/procurementrecord/mapper/ProcurementRecordMapper.java b/src/main/java/com/ruoyi/procurementrecord/mapper/ProcurementRecordMapper.java
index 4121aa8..1336f39 100644
--- a/src/main/java/com/ruoyi/procurementrecord/mapper/ProcurementRecordMapper.java
+++ b/src/main/java/com/ruoyi/procurementrecord/mapper/ProcurementRecordMapper.java
@@ -5,6 +5,7 @@
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.ruoyi.procurementrecord.dto.ProcurementDto;
 import com.ruoyi.procurementrecord.dto.ProcurementPageDto;
+import com.ruoyi.procurementrecord.dto.ProcurementPageDtoCopy;
 import com.ruoyi.procurementrecord.pojo.ProcurementRecordStorage;
 import org.apache.ibatis.annotations.Param;
 
@@ -25,5 +26,9 @@
 
     IPage<ProcurementPageDto> listPage(Page page,@Param("req")  ProcurementPageDto procurementDto);
 
+    IPage<ProcurementPageDtoCopy> listPageCopy(Page page, @Param("req")  ProcurementPageDto procurementDto);
+
+    List<ProcurementPageDtoCopy> listCopy();
+
     List<ProcurementPageDto> list();
 }
diff --git a/src/main/java/com/ruoyi/procurementrecord/service/ProcurementRecordService.java b/src/main/java/com/ruoyi/procurementrecord/service/ProcurementRecordService.java
index 41a2f44..c7e1699 100644
--- a/src/main/java/com/ruoyi/procurementrecord/service/ProcurementRecordService.java
+++ b/src/main/java/com/ruoyi/procurementrecord/service/ProcurementRecordService.java
@@ -3,10 +3,7 @@
 import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.baomidou.mybatisplus.extension.service.IService;
-import com.ruoyi.procurementrecord.dto.ProcurementAddDto;
-import com.ruoyi.procurementrecord.dto.ProcurementDto;
-import com.ruoyi.procurementrecord.dto.ProcurementPageDto;
-import com.ruoyi.procurementrecord.dto.ProcurementUpdateDto;
+import com.ruoyi.procurementrecord.dto.*;
 import com.ruoyi.procurementrecord.pojo.ProcurementRecordStorage;
 
 import javax.servlet.http.HttpServletResponse;
@@ -23,9 +20,15 @@
 
     IPage<ProcurementPageDto> listPage(Page page, ProcurementPageDto procurementDto);
 
+    IPage<ProcurementPageDtoCopy> listPageCopy(Page page, ProcurementPageDto procurementDto);
+
     int updatePro(ProcurementUpdateDto procurementDto);
 
     int deletePro(ProcurementUpdateDto procurementDto);
 
     void export(HttpServletResponse response);
+
+    int updateManagement(ProcurementManagementUpdateDto procurementDto);
+
+    void exportCopy(HttpServletResponse response);
 }
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 92ef336..5184b0c 100644
--- a/src/main/java/com/ruoyi/procurementrecord/service/impl/ProcurementRecordServiceImpl.java
+++ b/src/main/java/com/ruoyi/procurementrecord/service/impl/ProcurementRecordServiceImpl.java
@@ -4,6 +4,7 @@
 import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.ruoyi.common.utils.DateUtils;
 import com.ruoyi.common.utils.SecurityUtils;
 import com.ruoyi.common.utils.poi.ExcelUtil;
 import com.ruoyi.framework.security.LoginUser;
@@ -13,7 +14,10 @@
 import com.ruoyi.procurementrecord.pojo.ProcurementRecordStorage;
 import com.ruoyi.procurementrecord.pojo.ProcurementRecordOut;
 import com.ruoyi.procurementrecord.service.ProcurementRecordService;
+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;
@@ -22,6 +26,7 @@
 import javax.servlet.http.HttpServletResponse;
 import java.math.BigDecimal;
 import java.time.LocalDateTime;
+import java.time.format.DateTimeFormatter;
 import java.util.List;
 import java.util.stream.Collectors;
 
@@ -120,8 +125,105 @@
     @Override
     public void export(HttpServletResponse response) {
         List<ProcurementPageDto> list =procurementRecordMapper.list();
+        // 璁$畻寰呭叆搴撴暟閲�
+        // 鏌ヨ閲囪喘璁板綍宸插叆搴撴暟閲�
+        List<Integer> collect = list.stream().map(ProcurementPageDto::getId).collect(Collectors.toList());
+        if(CollectionUtils.isEmpty( collect)){
+            return;
+        }
+        LambdaQueryWrapper<ProcurementRecordOut> procurementRecordLambdaQueryWrapper = new LambdaQueryWrapper<>();
+        procurementRecordLambdaQueryWrapper.in(ProcurementRecordOut::getProcurementRecordStorageId, collect);
+        List<ProcurementRecordOut> procurementRecords = procurementRecordOutMapper.selectList(procurementRecordLambdaQueryWrapper);
+        if(CollectionUtils.isEmpty( procurementRecords)){
+            return;
+        }
+        for (ProcurementPageDto dto : list) {
+            // 鏍规嵁閲囪喘鍙拌处ID绛涢�夊搴旂殑鍑哄簱璁板綍
+            List<ProcurementRecordOut> collect1 = procurementRecords.stream()
+                    .filter(ProcurementRecordOut -> ProcurementRecordOut.getProcurementRecordStorageId().equals(dto.getId()))
+                    .collect(Collectors.toList());
+
+            // 濡傛灉娌℃湁鐩稿叧鐨勫嚭搴撹褰曪紝璺宠繃璇ユ潯鏁版嵁
+            if(CollectionUtils.isEmpty(collect1)){
+                dto.setInboundNum0(dto.getInboundNum());
+                continue;
+            }
+
+            // 璁$畻宸插嚭搴撴暟閲忔�诲拰锛屽苟璁剧疆寰呭嚭搴撴暟閲�
+            BigDecimal totalInboundNum = collect1.stream()
+                    .map(ProcurementRecordOut::getInboundNum)
+                    .reduce(BigDecimal.ZERO, BigDecimal::add);
+
+            // 寰呭嚭搴撴暟閲� = 鎬绘暟閲� - 宸插嚭搴撴暟閲�
+            dto.setInboundNum0(dto.getInboundNum().subtract(totalInboundNum));
+        }
         ExcelUtil<ProcurementPageDto> util = new ExcelUtil<ProcurementPageDto>(ProcurementPageDto.class);
         util.exportExcel(response, list, "鍏ュ簱鍙拌处");
+    }
+
+    private final SysUserMapper sysUserMapper;
+
+    @Override
+    public int updateManagement(ProcurementManagementUpdateDto procurementDto) {
+        LoginUser loginUser = SecurityUtils.getLoginUser();
+        SysUser sysUser = sysUserMapper.selectUserById(procurementDto.getCreateUser());
+        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";
+        ProcurementRecordStorage procurementRecordStorageById = getProcurementRecordById(procurementDto.getId());
+        procurementRecordStorageById.setCreateBy(sysUser.getNickName());
+        procurementRecordStorageById.setCreateUser(sysUser.getUserId());
+        procurementRecordStorageById.setUpdateTime(LocalDateTime.parse(entryDateStr,df));
+        procurementRecordStorageById.setUpdateUser(loginUser.getUserId());
+        procurementRecordStorageById.setCreateTime(LocalDateTime.parse(createTimeStr,df));
+        procurementRecordMapper.updateById(procurementRecordStorageById);
+        return 0;
+    }
+
+    @Override
+    public void exportCopy(HttpServletResponse response) {
+        List<ProcurementPageDtoCopy> list =procurementRecordMapper.listCopy();
+        // 璁$畻寰呭叆搴撴暟閲�
+        // 鏌ヨ閲囪喘璁板綍宸插叆搴撴暟閲�
+        List<Integer> collect = list.stream().map(ProcurementPageDtoCopy::getId).collect(Collectors.toList());
+        if(CollectionUtils.isEmpty( collect)){
+            ExcelUtil<ProcurementPageDtoCopy> util = new ExcelUtil<ProcurementPageDtoCopy>(ProcurementPageDtoCopy.class);
+            util.exportExcel(response, list, "搴撳瓨绠$悊");
+            return;
+        }
+        LambdaQueryWrapper<ProcurementRecordOut> procurementRecordLambdaQueryWrapper = new LambdaQueryWrapper<>();
+        procurementRecordLambdaQueryWrapper.in(ProcurementRecordOut::getProcurementRecordStorageId, collect);
+        List<ProcurementRecordOut> procurementRecords = procurementRecordOutMapper.selectList(procurementRecordLambdaQueryWrapper);
+        if(CollectionUtils.isEmpty( procurementRecords)){
+            ExcelUtil<ProcurementPageDtoCopy> util = new ExcelUtil<ProcurementPageDtoCopy>(ProcurementPageDtoCopy.class);
+            util.exportExcel(response, list, "搴撳瓨绠$悊");
+            return;
+        }
+        for (ProcurementPageDtoCopy dto : list) {
+            // 鏍规嵁閲囪喘鍙拌处ID绛涢�夊搴旂殑鍑哄簱璁板綍
+            List<ProcurementRecordOut> collect1 = procurementRecords.stream()
+                    .filter(ProcurementRecordOut -> ProcurementRecordOut.getProcurementRecordStorageId().equals(dto.getId()))
+                    .collect(Collectors.toList());
+
+            // 濡傛灉娌℃湁鐩稿叧鐨勫嚭搴撹褰曪紝璺宠繃璇ユ潯鏁版嵁
+            if(CollectionUtils.isEmpty(collect1)){
+                dto.setInboundNum0(dto.getInboundNum());
+                continue;
+            }
+
+            // 璁$畻宸插嚭搴撴暟閲忔�诲拰锛屽苟璁剧疆寰呭嚭搴撴暟閲�
+            BigDecimal totalInboundNum = collect1.stream()
+                    .map(ProcurementRecordOut::getInboundNum)
+                    .reduce(BigDecimal.ZERO, BigDecimal::add);
+
+            // 寰呭嚭搴撴暟閲� = 鎬绘暟閲� - 宸插嚭搴撴暟閲�
+            dto.setInboundNum0(dto.getInboundNum().subtract(totalInboundNum));
+        }
+        ExcelUtil<ProcurementPageDtoCopy> util = new ExcelUtil<ProcurementPageDtoCopy>(ProcurementPageDtoCopy.class);
+        util.exportExcel(response, list, "搴撳瓨绠$悊");
     }
 
     @Override
@@ -197,4 +299,43 @@
         return procurementPageDtoIPage;
     }
 
+    @Override
+    public IPage<ProcurementPageDtoCopy> listPageCopy(Page page, ProcurementPageDto procurementDto) {
+        IPage<ProcurementPageDtoCopy> procurementPageDtoCopyIPage = procurementRecordMapper.listPageCopy(page, procurementDto);
+        List<ProcurementPageDtoCopy> procurementPageDtoCopyList = procurementPageDtoCopyIPage.getRecords();
+        // 璁$畻寰呭叆搴撴暟閲�
+        // 鏌ヨ閲囪喘璁板綍宸插叆搴撴暟閲�
+        List<Integer> collect = procurementPageDtoCopyList.stream().map(ProcurementPageDtoCopy::getId).collect(Collectors.toList());
+        if(CollectionUtils.isEmpty( collect)){
+            return procurementPageDtoCopyIPage;
+        }
+        LambdaQueryWrapper<ProcurementRecordOut> procurementRecordLambdaQueryWrapper = new LambdaQueryWrapper<>();
+        procurementRecordLambdaQueryWrapper.in(ProcurementRecordOut::getProcurementRecordStorageId, collect);
+        List<ProcurementRecordOut> procurementRecords = procurementRecordOutMapper.selectList(procurementRecordLambdaQueryWrapper);
+        if(CollectionUtils.isEmpty( procurementRecords)){
+            return procurementPageDtoCopyIPage;
+        }
+        for (ProcurementPageDtoCopy dto : procurementPageDtoCopyList) {
+            // 鏍规嵁閲囪喘鍙拌处ID绛涢�夊搴旂殑鍑哄簱璁板綍
+            List<ProcurementRecordOut> collect1 = procurementRecords.stream()
+                    .filter(ProcurementRecordOut -> ProcurementRecordOut.getProcurementRecordStorageId().equals(dto.getId()))
+                    .collect(Collectors.toList());
+
+            // 濡傛灉娌℃湁鐩稿叧鐨勫嚭搴撹褰曪紝璺宠繃璇ユ潯鏁版嵁
+            if(CollectionUtils.isEmpty(collect1)){
+                dto.setInboundNum0(dto.getInboundNum());
+                continue;
+            }
+
+            // 璁$畻宸插嚭搴撴暟閲忔�诲拰锛屽苟璁剧疆寰呭嚭搴撴暟閲�
+            BigDecimal totalInboundNum = collect1.stream()
+                    .map(ProcurementRecordOut::getInboundNum)
+                    .reduce(BigDecimal.ZERO, BigDecimal::add);
+
+            // 寰呭嚭搴撴暟閲� = 鎬绘暟閲� - 宸插嚭搴撴暟閲�
+            dto.setInboundNum0(dto.getInboundNum().subtract(totalInboundNum));
+        }
+        return procurementPageDtoCopyIPage;
+    }
+
 }
diff --git a/src/main/resources/mapper/procurementrecord/ProcurementRecordMapper.xml b/src/main/resources/mapper/procurementrecord/ProcurementRecordMapper.xml
index 3548891..7d0f59b 100644
--- a/src/main/resources/mapper/procurementrecord/ProcurementRecordMapper.xml
+++ b/src/main/resources/mapper/procurementrecord/ProcurementRecordMapper.xml
@@ -33,6 +33,7 @@
         t2.product_category,
         t1.id,
         t1.sales_ledger_product_id,
+        t1.create_user,
         t2.specification_model,
         t2.unit,
         t2.tax_rate,
@@ -43,6 +44,7 @@
         t1.inbound_num,
         t1.inbound_num as inboundNum0,
         t1.create_time,
+        t1.update_time,
         t1.create_by
         from  procurement_record_storage t1
                   left join sales_ledger_product t2 on t2.id = t1.sales_ledger_product_id
@@ -71,6 +73,63 @@
             t1.inbound_batches,
             t1.inbound_num,
             t1.create_time,
+            t1.create_time as time,
+            t1.create_by
+        from  procurement_record_storage t1
+                  left join sales_ledger_product t2 on t2.id = t1.sales_ledger_product_id
+                  left join purchase_ledger t3 on t3.id = t2.sales_ledger_id
+    </select>
+    <select id="listPageCopy" resultType="com.ruoyi.procurementrecord.dto.ProcurementPageDtoCopy">
+        select
+        t3.supplier_name,
+        t3.purchase_contract_number,
+        t2.product_category,
+        t1.id,
+        t1.sales_ledger_product_id,
+        t1.create_user,
+        t2.specification_model,
+        t2.unit,
+        t2.tax_rate,
+        t2.tax_inclusive_unit_price,
+        t2.tax_inclusive_total_price,
+        t2.tax_exclusive_total_price,
+        t1.inbound_batches,
+        t1.inbound_num,
+        t1.inbound_num as inboundNum0,
+        t1.create_time,
+        t1.update_time,
+        t1.create_by
+        from  procurement_record_storage t1
+        left join sales_ledger_product t2 on t2.id = t1.sales_ledger_product_id
+        left join purchase_ledger t3 on t3.id = t2.sales_ledger_id
+        <where>
+            1 = 1
+            <if test="req.supplierName != null and req.supplierName != ''">
+                and t3.supplier_name like  concat('%',#{req.supplierName},'%')
+            </if>
+        </where>
+    </select>
+    <select id="listCopy" resultType="com.ruoyi.procurementrecord.dto.ProcurementPageDtoCopy">
+        select
+            t3.supplier_name,
+            t3.purchase_contract_number,
+            t2.product_category,
+            t1.id,
+            t1.sales_ledger_product_id,
+            t1.create_user,
+            t2.specification_model,
+            t2.unit,
+            t2.tax_rate,
+            t2.tax_inclusive_unit_price,
+            t2.tax_inclusive_total_price,
+            t2.tax_exclusive_total_price,
+            t1.inbound_batches,
+            t1.inbound_num,
+            t1.inbound_num as inboundNum0,
+            t1.create_time,
+            t1.update_time,
+            t1.create_time as cTime,
+            t1.update_time as uTime,
             t1.create_by
         from  procurement_record_storage t1
                   left join sales_ledger_product t2 on t2.id = t1.sales_ledger_product_id
diff --git a/src/main/resources/mapper/procurementrecord/ProcurementRecordOutMapper.xml b/src/main/resources/mapper/procurementrecord/ProcurementRecordOutMapper.xml
index 4b8416e..a127b10 100644
--- a/src/main/resources/mapper/procurementrecord/ProcurementRecordOutMapper.xml
+++ b/src/main/resources/mapper/procurementrecord/ProcurementRecordOutMapper.xml
@@ -39,6 +39,7 @@
             t2.tax_exclusive_total_price,
             t1.inbound_num,
             t1.create_time,
+            t1.create_time as time,
             t1.create_by
         from  procurement_record_out t1
                   left join sales_ledger_product t2 on t2.id = t1.sales_ledger_product_id

--
Gitblit v1.9.3