From e5e8464e8a6385683187b3459f8bfb5f9682a8ae Mon Sep 17 00:00:00 2001
From: maven <2163098428@qq.com>
Date: 星期四, 22 一月 2026 14:37:54 +0800
Subject: [PATCH] yys  发货台账优化

---
 src/main/java/com/ruoyi/approve/service/impl/ApproveNodeServiceImpl.java    |   10 +-
 src/main/java/com/ruoyi/approve/service/impl/ApproveProcessServiceImpl.java |    6 +-
 src/main/resources/mapper/sales/SalesLedgerMapper.xml                       |    4 +
 src/main/java/com/ruoyi/sales/controller/SalesLedgerController.java         |    6 +
 src/main/java/com/ruoyi/sales/service/impl/ShippingInfoServiceImpl.java     |   12 +++
 src/main/java/com/ruoyi/common/enums/FileNameType.java                      |    3 
 src/main/java/com/ruoyi/sales/service/impl/CommonFileServiceImpl.java       |   13 ++++
 src/main/java/com/ruoyi/sales/pojo/SalesLedger.java                         |    6 ++
 src/main/resources/mapper/sales/ShippingInfoMapper.xml                      |   13 +---
 src/main/java/com/ruoyi/sales/controller/ShippingInfoController.java        |   62 +++++++-------------
 src/main/java/com/ruoyi/sales/pojo/ShippingInfo.java                        |   17 +++++
 src/main/java/com/ruoyi/home/service/impl/HomeServiceImpl.java              |    4 
 12 files changed, 94 insertions(+), 62 deletions(-)

diff --git a/src/main/java/com/ruoyi/approve/service/impl/ApproveNodeServiceImpl.java b/src/main/java/com/ruoyi/approve/service/impl/ApproveNodeServiceImpl.java
index 4747ffe..8728a8f 100644
--- a/src/main/java/com/ruoyi/approve/service/impl/ApproveNodeServiceImpl.java
+++ b/src/main/java/com/ruoyi/approve/service/impl/ApproveNodeServiceImpl.java
@@ -67,7 +67,7 @@
         LambdaQueryWrapper<ApproveProcess> queryWrapper = new LambdaQueryWrapper<>();
         queryWrapper.eq(ApproveProcess::getApproveId, id);
         queryWrapper.eq(ApproveProcess::getApproveDelete, 0);
-        queryWrapper.eq(ApproveProcess::getTenantId, SecurityUtils.getLoginUser().getTenantId());
+//        queryWrapper.eq(ApproveProcess::getTenantId, SecurityUtils.getLoginUser().getTenantId());
         queryWrapper.last("limit 1");
         ApproveProcess one = approveProcessMapper.selectOne(queryWrapper);
         return one;
@@ -104,14 +104,14 @@
         LambdaQueryWrapper<ApproveNode> queryWrapper = new LambdaQueryWrapper<>();
         queryWrapper.eq(ApproveNode::getApproveProcessId, id);
         queryWrapper.eq(ApproveNode::getDeleteFlag, 0);
-        queryWrapper.eq(ApproveNode::getTenantId, SecurityUtils.getLoginUser().getTenantId());
+//        queryWrapper.eq(ApproveNode::getTenantId, SecurityUtils.getLoginUser().getTenantId());
         List<ApproveNode> list = list(queryWrapper);
         // 鎸夌収 approveNodeOrder 瀛楁鍗囧簭鎺掑簭
         list.sort(Comparator.comparingInt(ApproveNode::getApproveNodeOrder));
         LambdaQueryWrapper<ApproveProcess> approveProcessLambdaQueryWrapper = new LambdaQueryWrapper<>();
         approveProcessLambdaQueryWrapper.eq(ApproveProcess::getApproveId, id)
                 .eq(ApproveProcess::getApproveDelete, 0)
-                .eq(ApproveProcess::getTenantId, SecurityUtils.getLoginUser().getTenantId())
+//                .eq(ApproveProcess::getTenantId, SecurityUtils.getLoginUser().getTenantId())
                 .last("limit 1");
         ApproveProcess approveProcess = approveProcessMapper.selectOne(approveProcessLambdaQueryWrapper);
         if(approveProcess != null && approveProcess.getApproveStatus() == 3){
@@ -137,7 +137,7 @@
         LambdaQueryWrapper<ApproveProcess> approveProcessLambdaQueryWrapper = new LambdaQueryWrapper<>();
         approveProcessLambdaQueryWrapper.eq(ApproveProcess::getApproveId, approveNode.getApproveProcessId())
                 .eq(ApproveProcess::getApproveDelete, 0)
-                .eq(ApproveProcess::getTenantId, SecurityUtils.getLoginUser().getTenantId())
+//                .eq(ApproveProcess::getTenantId, SecurityUtils.getLoginUser().getTenantId())
                 .last("limit 1");
         ApproveProcess approveProcess = approveProcessMapper.selectOne(approveProcessLambdaQueryWrapper);
         if(approveProcess == null) throw new RuntimeException("瀹℃壒涓嶅瓨鍦�");
@@ -145,7 +145,7 @@
         approveNodeLambdaQueryWrapper.eq(ApproveNode::getApproveProcessId, approveNode.getApproveProcessId())
                 .eq(ApproveNode::getApproveNodeOrder, approveNode.getApproveNodeOrder() + 1)
                 .eq(ApproveNode::getDeleteFlag, 0)
-                .eq(ApproveNode::getTenantId, SecurityUtils.getLoginUser().getTenantId())
+//                .eq(ApproveNode::getTenantId, SecurityUtils.getLoginUser().getTenantId())
                 .last("limit 1");
         ApproveNode approveNode1 = approveNodeMapper.selectOne(approveNodeLambdaQueryWrapper);
         approveProcess.setApproveStatus(status);
diff --git a/src/main/java/com/ruoyi/approve/service/impl/ApproveProcessServiceImpl.java b/src/main/java/com/ruoyi/approve/service/impl/ApproveProcessServiceImpl.java
index 48a3e9f..038cc77 100644
--- a/src/main/java/com/ruoyi/approve/service/impl/ApproveProcessServiceImpl.java
+++ b/src/main/java/com/ruoyi/approve/service/impl/ApproveProcessServiceImpl.java
@@ -192,7 +192,7 @@
         LambdaQueryWrapper<ApproveProcess> queryWrapper = new LambdaQueryWrapper<>();
         queryWrapper.eq(ApproveProcess::getApproveId, id);
         queryWrapper.eq(ApproveProcess::getApproveDelete, 0);
-        queryWrapper.eq(ApproveProcess::getTenantId, SecurityUtils.getLoginUser().getTenantId());
+//        queryWrapper.eq(ApproveProcess::getTenantId, SecurityUtils.getLoginUser().getTenantId());
         queryWrapper.last("limit 1");
         ApproveProcess one = getOne(queryWrapper);
         one.setCommonFileList(commonFileMapper.selectList(new LambdaQueryWrapper<CommonFile>()
@@ -232,7 +232,7 @@
         LambdaQueryWrapper<ApproveNode> approveNodeLambdaQueryWrapper = new LambdaQueryWrapper<>();
         approveNodeLambdaQueryWrapper.eq(ApproveNode::getApproveProcessId, approveProcess.getApproveId())
                 .eq(ApproveNode::getDeleteFlag, 0)
-                .eq(ApproveNode::getTenantId, SecurityUtils.getLoginUser().getTenantId())
+//                .eq(ApproveNode::getTenantId, SecurityUtils.getLoginUser().getTenantId())
                 .orderByAsc(ApproveNode::getApproveNodeOrder);
         approveNodeMapper.delete(approveNodeLambdaQueryWrapper);
         approveNodeService.initApproveNodes(approveGetAndUpdateVo.getApproveUserIds(), approveProcess.getApproveId(), approveProcess.getTenantId());
@@ -273,7 +273,7 @@
         LambdaQueryWrapper<ApproveNode> approveNodeLambdaQueryWrapper = new LambdaQueryWrapper<>();
         approveNodeLambdaQueryWrapper.eq(ApproveNode::getApproveProcessId, approve.getApproveId())
                 .eq(ApproveNode::getDeleteFlag, 0)
-                .eq(ApproveNode::getTenantId, SecurityUtils.getLoginUser().getTenantId())
+//                .eq(ApproveNode::getTenantId, SecurityUtils.getLoginUser().getTenantId())
                 .orderByAsc(ApproveNode::getApproveNodeOrder);
         approveNodeMapper.delete(approveNodeLambdaQueryWrapper);
         approveNodeService.initApproveNodes(approveGetAndUpdateVo.getApproveUserIds(), approve.getApproveId(), approve.getTenantId());
diff --git a/src/main/java/com/ruoyi/common/enums/FileNameType.java b/src/main/java/com/ruoyi/common/enums/FileNameType.java
index 16d51f6..64e5869 100644
--- a/src/main/java/com/ruoyi/common/enums/FileNameType.java
+++ b/src/main/java/com/ruoyi/common/enums/FileNameType.java
@@ -11,7 +11,8 @@
     MEASURING(5),  //璁¢噺鍣ㄥ叿鍙拌处
     MEASURINGRecord(6),//璁¢噺鍣ㄥ叿鍙拌处璁板綍
     ApproveNode(7),  //鍗忓悓瀹℃壒鑺傜偣瀹℃牳
-    ApproveProcess(8);  //鍗忓悓瀹℃壒涓绘暟鎹�
+    ApproveProcess(8),//鍗忓悓瀹℃壒涓绘暟鎹�
+    SHIP(9);//鍙戣揣鍙拌处
 
     private final int value;
 
diff --git a/src/main/java/com/ruoyi/home/service/impl/HomeServiceImpl.java b/src/main/java/com/ruoyi/home/service/impl/HomeServiceImpl.java
index 46f1cd6..57bd17d 100644
--- a/src/main/java/com/ruoyi/home/service/impl/HomeServiceImpl.java
+++ b/src/main/java/com/ruoyi/home/service/impl/HomeServiceImpl.java
@@ -402,8 +402,8 @@
         LambdaQueryWrapper<ApproveProcess> approveProcessLambdaQueryWrapper = new LambdaQueryWrapper<>();
         approveProcessLambdaQueryWrapper.eq(ApproveProcess::getApproveDelete, 0)
                 .eq(ApproveProcess::getApproveUserCurrentId, loginUser.getUserId())
-                .ne(ApproveProcess::getApproveStatus, 2)
-                .eq(ApproveProcess::getTenantId, loginUser.getTenantId());
+                .ne(ApproveProcess::getApproveStatus, 2);
+//                .eq(ApproveProcess::getTenantId, loginUser.getTenantId())
         List<ApproveProcess> approveProcesses = approveProcessMapper.selectList(approveProcessLambdaQueryWrapper);
         if(CollectionUtils.isEmpty(approveProcesses)){
             approveProcesses = new ArrayList<>();
diff --git a/src/main/java/com/ruoyi/sales/controller/SalesLedgerController.java b/src/main/java/com/ruoyi/sales/controller/SalesLedgerController.java
index ad0b5e2..3398347 100644
--- a/src/main/java/com/ruoyi/sales/controller/SalesLedgerController.java
+++ b/src/main/java/com/ruoyi/sales/controller/SalesLedgerController.java
@@ -237,6 +237,9 @@
                     .in(ReceiptPayment::getInvoiceLedgerId, invoiceLedgers.stream().map(InvoiceLedger::getId).collect(Collectors.toList())));
         }
         for (SalesLedger salesLedger : iPage.getRecords()) {
+            if(salesLedger.getShippingDate() != null){
+                salesLedger.setShippingStatus("宸插彂璐�");
+            }
             boolean existFlag = false;
             BigDecimal noInvoiceAmountTotal = BigDecimal.ZERO;
             BigDecimal invoiceTotal = BigDecimal.ZERO;
@@ -277,8 +280,9 @@
         }
         if (ObjectUtils.isNotEmpty(salesLedgerDto.getStatus())) {
             if (salesLedgerDto.getStatus()) {
+                long count = iPage.getRecords().stream().filter(salesLedger -> Objects.equals(salesLedger.getNoInvoiceAmountTotal(), new BigDecimal("0.00"))).count();
                 iPage.getRecords().removeIf(salesLedger -> Objects.equals(salesLedger.getNoInvoiceAmountTotal(), new BigDecimal("0.00")));
-                iPage.setTotal(iPage.getRecords().size());
+                iPage.setTotal(iPage.getTotal() - count);
             }
         }
 
diff --git a/src/main/java/com/ruoyi/sales/controller/ShippingInfoController.java b/src/main/java/com/ruoyi/sales/controller/ShippingInfoController.java
index c498b93..a4a5943 100644
--- a/src/main/java/com/ruoyi/sales/controller/ShippingInfoController.java
+++ b/src/main/java/com/ruoyi/sales/controller/ShippingInfoController.java
@@ -3,11 +3,13 @@
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.ruoyi.common.enums.FileNameType;
 import com.ruoyi.common.utils.poi.ExcelUtil;
 import com.ruoyi.framework.aspectj.lang.annotation.Log;
 import com.ruoyi.framework.aspectj.lang.enums.BusinessType;
 import com.ruoyi.framework.web.controller.BaseController;
 import com.ruoyi.framework.web.domain.AjaxResult;
+import com.ruoyi.other.service.impl.TempFileServiceImpl;
 import com.ruoyi.sales.mapper.ShipmentApprovalMapper;
 import com.ruoyi.sales.mapper.ShippingInfoMapper;
 import com.ruoyi.sales.pojo.SalesLedger;
@@ -17,6 +19,7 @@
 import com.ruoyi.sales.service.ISalesLedgerProductService;
 import com.ruoyi.sales.service.ISalesLedgerService;
 import com.ruoyi.sales.service.ShippingInfoService;
+import com.ruoyi.sales.service.impl.CommonFileServiceImpl;
 import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiOperation;
 import org.apache.commons.collections4.CollectionUtils;
@@ -25,6 +28,7 @@
 import org.springframework.web.bind.annotation.*;
 
 import javax.servlet.http.HttpServletResponse;
+import java.io.IOException;
 import java.util.List;
 
 /**
@@ -43,6 +47,12 @@
     @Autowired
     private ISalesLedgerProductService salesLedgerProductService;
 
+    @Autowired
+    private TempFileServiceImpl tempFileService;
+
+    @Autowired
+    private CommonFileServiceImpl commonFileService;
+
 
     @GetMapping("/listPage")
     @ApiOperation("鍙戣揣淇℃伅鍒楄〃")
@@ -54,64 +64,38 @@
     @PostMapping("/add")
     @ApiOperation("娣诲姞鍙戣揣淇℃伅")
     @Transactional(rollbackFor = Exception.class)
-    public AjaxResult add(@RequestBody ShippingInfo req) {
-        LambdaQueryWrapper<ShippingInfo> wrapper = new LambdaQueryWrapper<>();
-        wrapper.eq(ShippingInfo::getSalesLedgerId, req.getSalesLedgerId());
-        wrapper.eq(ShippingInfo::getSalesLedgerProductId, req.getSalesLedgerProductId());
-        List<ShippingInfo> list = shippingInfoService.list(wrapper);
-        if(!CollectionUtils.isEmpty(list)){
-            return AjaxResult.error("鍙戣揣淇℃伅宸插瓨鍦�");
-        }
+    public AjaxResult add(@RequestBody ShippingInfo req) throws IOException {
         boolean save = shippingInfoService.save(req);
-        if(save){
-            ShippingInfo shippingInfo = shippingInfoService.getOne(wrapper);
-            ShipmentApproval shipmentApproval = new ShipmentApproval();
-            shipmentApproval.setSalesLedgerId(req.getSalesLedgerId());
-            shipmentApproval.setSalesLedgerProductId(req.getSalesLedgerProductId());
-            shipmentApproval.setApproveUserId(req.getApproverId());
-            shipmentApproval.setApproveStatus(2);
-            shipmentApproval.setShippingInfoId(shippingInfo.getId());
-            shipmentApprovalMapper.insert(shipmentApproval);
-
-            SalesLedgerProduct salesLedgerProduct = salesLedgerProductService.getById(req.getSalesLedgerProductId());
-            if(salesLedgerProduct != null){
-                salesLedgerProduct.setApproveStatus(2);
-                salesLedgerProductService.updateById(salesLedgerProduct);
-            }
-
+        // 杩佺Щ鏂囦欢
+        if(CollectionUtils.isNotEmpty(req.getTempFileIds())){
+            tempFileService.migrateTempFilesToFormal(req.getId(), req.getTempFileIds(), FileNameType.SHIP.getValue());
         }
         return save ? AjaxResult.success() : AjaxResult.error();
     }
 
     @PostMapping("/update")
     @ApiOperation("淇敼鍙戣揣淇℃伅")
-    public AjaxResult update(@RequestBody ShippingInfo req) {
+    @Transactional(rollbackFor = Exception.class)
+    public AjaxResult update(@RequestBody ShippingInfo req) throws IOException {
         ShippingInfo byId = shippingInfoService.getById(req.getId());
         if (byId == null) {
             return AjaxResult.error("鍙戣揣淇℃伅涓嶅瓨鍦�");
         }
-        Long userId = getLoginUser().getUserId();
-        if(!userId.equals(Long.parseLong(byId.getCreateUser().toString()))){
-            return AjaxResult.error("鎮ㄦ病鏈夋潈闄愪慨鏀规鍙戣揣淇℃伅");
-        }
         boolean update = shippingInfoService.updateById(req);
+        if(CollectionUtils.isNotEmpty(req.getTempFileIds())){
+            tempFileService.migrateTempFilesToFormal(req.getId(), req.getTempFileIds(), FileNameType.SHIP.getValue());
+        }
         return update ? AjaxResult.success() : AjaxResult.error();
     }
 
     @DeleteMapping("/delete")
     @ApiOperation("鍒犻櫎鍙戣揣淇℃伅")
+    @Transactional(rollbackFor = Exception.class)
     public AjaxResult delete(@RequestBody List<Long> ids) {
-        Long userId = getLoginUser().getUserId();
-        ids.forEach(id -> {
-            ShippingInfo byId = shippingInfoService.getById(id);
-            if (byId == null) {
-                throw new RuntimeException("鍙戣揣淇℃伅涓嶅瓨鍦�");
-            }
-            if(!userId.equals(Long.parseLong(byId.getCreateUser().toString()))){
-                throw new RuntimeException("鎮ㄦ病鏈夋潈闄愬垹闄ゆ鍙戣揣淇℃伅");
-            }
-        });
+        if(CollectionUtils.isEmpty(ids)) return AjaxResult.error("璇烽�夋嫨瑕佸垹闄ょ殑璁板綍");
         boolean delete = shippingInfoService.removeBatchByIds(ids);
+        // 鍒犻櫎闄勪欢
+        commonFileService.deleteByBusinessIds(ids, FileNameType.SHIP.getValue());
         return delete ? AjaxResult.success("鍒犻櫎鎴愬姛") : AjaxResult.error("鍒犻櫎澶辫触");
     }
 
diff --git a/src/main/java/com/ruoyi/sales/pojo/SalesLedger.java b/src/main/java/com/ruoyi/sales/pojo/SalesLedger.java
index 955f4da..a070eb1 100644
--- a/src/main/java/com/ruoyi/sales/pojo/SalesLedger.java
+++ b/src/main/java/com/ruoyi/sales/pojo/SalesLedger.java
@@ -48,6 +48,12 @@
     private String shippingCarNumber;
 
     /**
+     * 鍙戣揣鐘舵��
+     */
+    @TableField(exist = false)
+    private String shippingStatus = "鏈彂璐�";
+
+    /**
      * 鍙戣揣鏃ユ湡
      */
     @Excel(name = "鍙戣揣鏃ユ湡", width = 30, dateFormat = "yyyy-MM-dd")
diff --git a/src/main/java/com/ruoyi/sales/pojo/ShippingInfo.java b/src/main/java/com/ruoyi/sales/pojo/ShippingInfo.java
index fce7148..6e0737b 100644
--- a/src/main/java/com/ruoyi/sales/pojo/ShippingInfo.java
+++ b/src/main/java/com/ruoyi/sales/pojo/ShippingInfo.java
@@ -9,6 +9,7 @@
 
 import java.time.LocalDateTime;
 import java.util.Date;
+import java.util.List;
 
 /**
  * @author :yys
@@ -20,6 +21,9 @@
 
     @TableId(value = "id", type = IdType.AUTO)
     private Long id;
+
+    @ApiModelProperty(value = "鍙戣揣绫诲瀷")
+    private String type;
 
     @ApiModelProperty(value = "閿�鍞彴璐d")
     private Long salesLedgerId;
@@ -45,6 +49,14 @@
     @Excel(name = "鍙戣揣杞︾墝鍙�")
     private String shippingCarNumber;
 
+    @ApiModelProperty(value = "蹇�掑崟鍙�")
+    @Excel(name = "蹇�掑崟鍙�")
+    private String expressNumber;
+
+    @ApiModelProperty(value = "蹇�掑叕鍙�")
+    @Excel(name = "蹇�掑叕鍙�")
+    private String expressCompany;
+
     @ApiModelProperty(value = "鍒涘缓鏃堕棿")
     @TableField(fill = FieldFill.INSERT)
     private LocalDateTime createTime;
@@ -69,4 +81,9 @@
     @TableField(exist = false)
     private Integer approverId;
 
+    @TableField(exist = false)
+    private List<String> tempFileIds;
+    @TableField(exist = false)
+    private List<CommonFile> commonFileList;
+
 }
diff --git a/src/main/java/com/ruoyi/sales/service/impl/CommonFileServiceImpl.java b/src/main/java/com/ruoyi/sales/service/impl/CommonFileServiceImpl.java
index 06bd40e..6d12cab 100644
--- a/src/main/java/com/ruoyi/sales/service/impl/CommonFileServiceImpl.java
+++ b/src/main/java/com/ruoyi/sales/service/impl/CommonFileServiceImpl.java
@@ -1,7 +1,10 @@
 package com.ruoyi.sales.service.impl;
 
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.baomidou.mybatisplus.core.toolkit.CollectionUtils;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.ruoyi.common.enums.FileNameType;
 import com.ruoyi.other.mapper.TempFileMapper;
 import com.ruoyi.other.pojo.TempFile;
 import com.ruoyi.sales.mapper.CommonFileMapper;
@@ -50,6 +53,16 @@
         return commonFileMapper.deleteBatchIds(Arrays.asList(ids));
     }
 
+    public void deleteByBusinessId(Long businessId,Integer type) {
+        commonFileMapper.delete(new LambdaQueryWrapper<CommonFile>().eq(CommonFile::getCommonId, businessId)
+                .eq(CommonFile::getType, type));
+    }
+
+    public void deleteByBusinessIds(List<Long> businessId,Integer type) {
+        commonFileMapper.delete(new LambdaQueryWrapper<CommonFile>().in(CommonFile::getCommonId, businessId)
+                .eq(CommonFile::getType, type));
+    }
+
     @Override
     public CommonFile uploadFile(MultipartFile file, Long id, Integer type) throws IOException {
         // 1. 鐢熸垚姝e紡鏂囦欢ID鍜岃矾寰�
diff --git a/src/main/java/com/ruoyi/sales/service/impl/ShippingInfoServiceImpl.java b/src/main/java/com/ruoyi/sales/service/impl/ShippingInfoServiceImpl.java
index 8469b9e..1384615 100644
--- a/src/main/java/com/ruoyi/sales/service/impl/ShippingInfoServiceImpl.java
+++ b/src/main/java/com/ruoyi/sales/service/impl/ShippingInfoServiceImpl.java
@@ -1,9 +1,13 @@
 package com.ruoyi.sales.service.impl;
 
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 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.enums.FileNameType;
+import com.ruoyi.sales.mapper.CommonFileMapper;
 import com.ruoyi.sales.mapper.ShippingInfoMapper;
+import com.ruoyi.sales.pojo.CommonFile;
 import com.ruoyi.sales.pojo.ShippingInfo;
 import com.ruoyi.sales.service.ShippingInfoService;
 import lombok.extern.slf4j.Slf4j;
@@ -20,11 +24,17 @@
 
     @Autowired
     private ShippingInfoMapper shippingInfoMapper;
+    @Autowired
+    private CommonFileMapper commonFileMapper;
 
     @Override
     public IPage<ShippingInfo> listPage(Page page, ShippingInfo req) {
         IPage<ShippingInfo> listPage = shippingInfoMapper.listPage(page, req);
-
+        listPage.getRecords().forEach(item ->{
+            item.setCommonFileList(commonFileMapper.selectList(new LambdaQueryWrapper<CommonFile>()
+                    .eq(CommonFile::getCommonId, item.getId())
+                    .eq(CommonFile::getType, FileNameType.SHIP.getValue())));
+        });
         return listPage;
     }
 }
diff --git a/src/main/resources/mapper/sales/SalesLedgerMapper.xml b/src/main/resources/mapper/sales/SalesLedgerMapper.xml
index 5d83bb1..3bfc887 100644
--- a/src/main/resources/mapper/sales/SalesLedgerMapper.xml
+++ b/src/main/resources/mapper/sales/SalesLedgerMapper.xml
@@ -58,10 +58,12 @@
         T1.contract_amount,
         T1.execution_date,
         T2.nick_name AS entry_person_name,
-        T1.payment_method
+        T1.payment_method,
+        T3.shipping_date
         FROM
         sales_ledger T1
         LEFT JOIN sys_user T2 ON T1.entry_person = T2.user_id
+        left join shipping_info T3 on T1.id = T3.sales_ledger_id
         <where>
             <if test="salesLedgerDto.customerName != null and salesLedgerDto.customerName != '' ">
                 AND  T1.customer_name LIKE CONCAT('%',#{salesLedgerDto.customerName},'%')
diff --git a/src/main/resources/mapper/sales/ShippingInfoMapper.xml b/src/main/resources/mapper/sales/ShippingInfoMapper.xml
index efe93cf..118dc6a 100644
--- a/src/main/resources/mapper/sales/ShippingInfoMapper.xml
+++ b/src/main/resources/mapper/sales/ShippingInfoMapper.xml
@@ -4,15 +4,7 @@
 
     <select id="listPage" resultType="com.ruoyi.sales.pojo.ShippingInfo">
         SELECT
-        s.id,
-        s.sales_ledger_id,
-        s.shipping_date,
-        s.shipping_car_number,
-        s.create_time,
-        s.update_time,
-        s.create_user,
-        s.update_user,
-        s.tenant_id,
+        s.*,
         sl.sales_contract_no,
         sl.customer_name
         FROM shipping_info s
@@ -24,6 +16,9 @@
         <if test="req.shippingCarNumber != null and req.shippingCarNumber != ''">
             AND s.shipping_car_number LIKE CONCAT('%',#{req.shippingCarNumber},'%')
         </if>
+        <if test="req.expressNumber != null and req.expressNumber != ''">
+            AND s.express_number LIKE CONCAT('%',#{req.expressNumber},'%')
+        </if>
     </select>
     <select id="listAll" resultType="com.ruoyi.sales.pojo.ShippingInfo">
         SELECT

--
Gitblit v1.9.3