From 80c45ea7934443bea5355bc6bace96ec23a58600 Mon Sep 17 00:00:00 2001
From: liyong <18434998025@163.com>
Date: 星期二, 27 一月 2026 15:34:51 +0800
Subject: [PATCH] Merge remote-tracking branch 'origin/dev_New' into dev_New

---
 src/main/java/com/ruoyi/sales/service/impl/MetricStatisticsServiceImpl.java   |   11 ++++-
 src/main/java/com/ruoyi/approve/pojo/ApproveProcess.java                      |    2 
 src/main/resources/mapper/sales/SalesLedgerMapper.xml                         |    1 
 src/main/java/com/ruoyi/sales/controller/SalesQuotationController.java        |    2 
 src/main/java/com/ruoyi/purchase/service/impl/PurchaseLedgerServiceImpl.java  |    6 +++
 src/main/java/com/ruoyi/sales/pojo/SalesLedgerProduct.java                    |    8 ++++
 src/main/java/com/ruoyi/sales/pojo/SalesLedger.java                           |   14 -------
 src/main/resources/mapper/sales/ShippingInfoMapper.xml                        |    7 +++
 src/main/java/com/ruoyi/sales/service/impl/SalesLedgerProductServiceImpl.java |    2 +
 src/main/java/com/ruoyi/sales/controller/SalesLedgerController.java           |    8 +++
 src/main/java/com/ruoyi/sales/service/impl/SalesLedgerServiceImpl.java        |    6 +++
 src/main/java/com/ruoyi/sales/service/impl/SalesQuotationServiceImpl.java     |   10 +++++
 src/main/resources/static/销售台账导入模板.xlsx                                       |    0 
 src/main/java/com/ruoyi/purchase/pojo/PurchaseLedger.java                     |    3 +
 14 files changed, 59 insertions(+), 21 deletions(-)

diff --git a/src/main/java/com/ruoyi/approve/pojo/ApproveProcess.java b/src/main/java/com/ruoyi/approve/pojo/ApproveProcess.java
index e468919..42ca0ba 100644
--- a/src/main/java/com/ruoyi/approve/pojo/ApproveProcess.java
+++ b/src/main/java/com/ruoyi/approve/pojo/ApproveProcess.java
@@ -127,7 +127,7 @@
     private Long tenantId;
 
     /**
-     * 瀹℃壒绫诲瀷
+     * 瀹℃壒绫诲瀷 1-鍏嚭绠$悊 2-璇峰亣绠$悊 3-鍑哄樊绠$悊 4-鎶ラ攢绠$悊 5-閲囪喘瀹℃壒 6-鎶ヤ环瀹℃壒 7-鍙戣揣瀹℃壒
      */
     private Integer approveType;
 
diff --git a/src/main/java/com/ruoyi/purchase/pojo/PurchaseLedger.java b/src/main/java/com/ruoyi/purchase/pojo/PurchaseLedger.java
index fef46ea..e01db26 100644
--- a/src/main/java/com/ruoyi/purchase/pojo/PurchaseLedger.java
+++ b/src/main/java/com/ruoyi/purchase/pojo/PurchaseLedger.java
@@ -90,7 +90,7 @@
     /**
      * 闄勪欢鏉愭枡璺緞鎴栧悕绉�
      */
-    @Excel(name = "闄勪欢鏉愭枡璺緞鎴栧悕绉�")
+//    @Excel(name = "闄勪欢鏉愭枡璺緞鎴栧悕绉�")
     private String attachmentMaterials;
 
     /**
@@ -151,6 +151,7 @@
     @ApiModelProperty(value = "浠樻鏂瑰紡")
     private String paymentMethod;
     @ApiModelProperty("瀹℃壒鐘舵��  1-寰呭鏍革紝2-瀹℃壒涓紝3-瀹℃壒閫氳繃锛�4-瀹℃壒澶辫触,5琛ㄧず鏄ā鏉�")
+    @Excel(name = "瀹℃壒鐘舵��", readConverterExp = "1=寰呭鏍�,2=瀹℃壒涓�,3=瀹℃壒閫氳繃,4=瀹℃壒澶辫触")
     private Integer approvalStatus;
 
     @ApiModelProperty(value = "妯℃澘鍚嶇О")
diff --git a/src/main/java/com/ruoyi/purchase/service/impl/PurchaseLedgerServiceImpl.java b/src/main/java/com/ruoyi/purchase/service/impl/PurchaseLedgerServiceImpl.java
index 8277593..e5dd8a3 100644
--- a/src/main/java/com/ruoyi/purchase/service/impl/PurchaseLedgerServiceImpl.java
+++ b/src/main/java/com/ruoyi/purchase/service/impl/PurchaseLedgerServiceImpl.java
@@ -643,6 +643,12 @@
             List<SysUser> sysUsers = sysUserMapper.selectList(new LambdaQueryWrapper<SysUser>().in(SysUser::getNickName,
                     salesLedgerImportDtoList.stream().map(PurchaseLedgerImportDto::getRecorderName).collect(Collectors.toList())));
             for (PurchaseLedgerImportDto salesLedgerImportDto : salesLedgerImportDtoList) {
+                PurchaseLedger purchaseLedger = purchaseLedgerMapper.selectOne(new LambdaQueryWrapper<PurchaseLedger>()
+                        .eq(PurchaseLedger::getPurchaseContractNumber, salesLedgerImportDto.getPurchaseContractNumber())
+                        .last("limit 1"));
+                if(purchaseLedger != null){
+                    continue;
+                }
                 PurchaseLedger salesLedger = new PurchaseLedger();
                 BeanUtils.copyProperties(salesLedgerImportDto, salesLedger);
                 // 閫氳繃渚涘簲鍟嗗悕绉版煡璇D
diff --git a/src/main/java/com/ruoyi/sales/controller/SalesLedgerController.java b/src/main/java/com/ruoyi/sales/controller/SalesLedgerController.java
index 46d3d48..f006c5b 100644
--- a/src/main/java/com/ruoyi/sales/controller/SalesLedgerController.java
+++ b/src/main/java/com/ruoyi/sales/controller/SalesLedgerController.java
@@ -163,8 +163,14 @@
     @Log(title = "閿�鍞彴璐�", businessType = BusinessType.EXPORT)
     @PostMapping("/export")
     public void export(HttpServletResponse response, SalesLedgerDto salesLedgerDto) {
-        List<SalesLedger> list = salesLedgerService.selectSalesLedgerList(salesLedgerDto);
+        Page page = new Page(-1,-1);
+        IPage<SalesLedger> salesLedgerIPage = listPage(page, salesLedgerDto);
         ExcelUtil<SalesLedger> util = new ExcelUtil<SalesLedger>(SalesLedger.class);
+        if(salesLedgerIPage == null){
+            util.exportExcel(response, new ArrayList<>(), "閿�鍞彴璐︽暟鎹�");
+            return;
+        }
+        List<SalesLedger> list = salesLedgerIPage.getRecords();
         util.exportExcel(response, list, "閿�鍞彴璐︽暟鎹�");
     }
 
diff --git a/src/main/java/com/ruoyi/sales/controller/SalesQuotationController.java b/src/main/java/com/ruoyi/sales/controller/SalesQuotationController.java
index f9ea1df..71556a2 100644
--- a/src/main/java/com/ruoyi/sales/controller/SalesQuotationController.java
+++ b/src/main/java/com/ruoyi/sales/controller/SalesQuotationController.java
@@ -39,7 +39,7 @@
         SalesQuotationDto afterSalesService = new SalesQuotationDto();
         IPage<SalesQuotationDto> listPage = salesQuotationService.listPage(page, afterSalesService);
         ExcelUtil<SalesQuotationDto> util = new ExcelUtil<SalesQuotationDto>(SalesQuotationDto.class);
-        util.exportExcel(response, listPage.getRecords() , "鍙嶉鐧昏");
+        util.exportExcel(response, listPage.getRecords() , "閿�鍞姤浠�");
     }
 
 
diff --git a/src/main/java/com/ruoyi/sales/pojo/SalesLedger.java b/src/main/java/com/ruoyi/sales/pojo/SalesLedger.java
index 955f4da..8a48696 100644
--- a/src/main/java/com/ruoyi/sales/pojo/SalesLedger.java
+++ b/src/main/java/com/ruoyi/sales/pojo/SalesLedger.java
@@ -40,20 +40,6 @@
     @Excel(name = "瀹㈡埛鍚堝悓鍙�")
     private String customerContractNo;
 
-    /**
-     * 鍙戣揣杞︾墝鍙�
-     */
-    @Excel(name = "鍙戣揣杞︾墝鍙�")
-    @TableField(exist = false)
-    private String shippingCarNumber;
-
-    /**
-     * 鍙戣揣鏃ユ湡
-     */
-    @Excel(name = "鍙戣揣鏃ユ湡", width = 30, dateFormat = "yyyy-MM-dd")
-    @TableField(exist = false)
-    @JsonFormat(pattern = "yyyy-MM-dd")
-    private Date shippingDate;
 
     /**
      * 椤圭洰鍚嶇О
diff --git a/src/main/java/com/ruoyi/sales/pojo/SalesLedgerProduct.java b/src/main/java/com/ruoyi/sales/pojo/SalesLedgerProduct.java
index 8927d74..1df16bd 100644
--- a/src/main/java/com/ruoyi/sales/pojo/SalesLedgerProduct.java
+++ b/src/main/java/com/ruoyi/sales/pojo/SalesLedgerProduct.java
@@ -192,6 +192,14 @@
     @TableField(exist = false)
     private String shippingCarNumber;
 
+    @ApiModelProperty("蹇�掑叕鍙�")
+    @TableField(exist = false)
+    private String expressCompany;
+
+    @ApiModelProperty("蹇�掑崟鍙�")
+    @TableField(exist = false)
+    private String expressNumber;
+
     /**
      * 鍙戣揣鏃ユ湡
      */
diff --git a/src/main/java/com/ruoyi/sales/service/impl/MetricStatisticsServiceImpl.java b/src/main/java/com/ruoyi/sales/service/impl/MetricStatisticsServiceImpl.java
index efa3909..c70bbe1 100644
--- a/src/main/java/com/ruoyi/sales/service/impl/MetricStatisticsServiceImpl.java
+++ b/src/main/java/com/ruoyi/sales/service/impl/MetricStatisticsServiceImpl.java
@@ -7,8 +7,10 @@
 import com.ruoyi.sales.dto.StatisticsTableDto;
 import com.ruoyi.sales.mapper.SalesLedgerMapper;
 import com.ruoyi.sales.mapper.SalesLedgerProductMapper;
+import com.ruoyi.sales.mapper.ShippingInfoMapper;
 import com.ruoyi.sales.pojo.SalesLedger;
 import com.ruoyi.sales.pojo.SalesLedgerProduct;
+import com.ruoyi.sales.pojo.ShippingInfo;
 import lombok.extern.slf4j.Slf4j;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
@@ -31,6 +33,9 @@
     @Autowired
     private SalesLedgerProductMapper salesLedgerProductMapper;
 
+    @Autowired
+    private ShippingInfoMapper shippingInfoMapper;
+
     public AjaxResult total() {
         List<SalesLedger> salesLedgers = salesLedgerMapper.selectList(null);
         if(CollectionUtils.isEmpty(salesLedgers)) return AjaxResult.success(salesLedgers);
@@ -45,9 +50,9 @@
         map.put("shipRate", "0%");
         if(CollectionUtils.isEmpty(salesLedgerProducts)) return AjaxResult.success(map);
         // 鍙戣揣鏁伴噺
-        long count = salesLedgerProducts.stream()
-                .filter(salesLedgerProduct -> salesLedgerProduct.getApproveStatus().equals(2))
-                .count();
+        long count = shippingInfoMapper.selectCount(new LambdaQueryWrapper<ShippingInfo>()
+                .in(ShippingInfo::getSalesLedgerProductId, salesLedgerProducts.stream().map(SalesLedgerProduct::getId).collect(Collectors.toList()))
+                .eq(ShippingInfo::getStatus,"宸插彂璐�"));
         map.put("shipRate", String.format("%.2f", count * 100.0 / salesLedgerProducts.size()) + "%");
         return AjaxResult.success(map);
     }
diff --git a/src/main/java/com/ruoyi/sales/service/impl/SalesLedgerProductServiceImpl.java b/src/main/java/com/ruoyi/sales/service/impl/SalesLedgerProductServiceImpl.java
index 88fb41b..55333a5 100644
--- a/src/main/java/com/ruoyi/sales/service/impl/SalesLedgerProductServiceImpl.java
+++ b/src/main/java/com/ruoyi/sales/service/impl/SalesLedgerProductServiceImpl.java
@@ -108,6 +108,8 @@
                     item.setShippingDate(shippingInfo.getShippingDate());
                     item.setShippingCarNumber(shippingInfo.getShippingCarNumber());
                     item.setShippingStatus(shippingInfo.getStatus());
+                    item.setExpressCompany(shippingInfo.getExpressCompany());
+                    item.setExpressNumber(shippingInfo.getExpressNumber());
                 }
             });
             // 寮�绁�
diff --git a/src/main/java/com/ruoyi/sales/service/impl/SalesLedgerServiceImpl.java b/src/main/java/com/ruoyi/sales/service/impl/SalesLedgerServiceImpl.java
index 6f705a4..7464933 100644
--- a/src/main/java/com/ruoyi/sales/service/impl/SalesLedgerServiceImpl.java
+++ b/src/main/java/com/ruoyi/sales/service/impl/SalesLedgerServiceImpl.java
@@ -375,6 +375,12 @@
             List<SysUser> sysUsers = sysUserMapper.selectList(new LambdaQueryWrapper<SysUser>().in(SysUser::getNickName,
                     salesLedgerImportDtoList.stream().map(SalesLedgerImportDto::getEntryPerson).collect(Collectors.toList())));
             for (SalesLedgerImportDto salesLedgerImportDto : salesLedgerImportDtoList) {
+                SalesLedger salesLedger1 = salesLedgerMapper.selectOne(new LambdaQueryWrapper<SalesLedger>()
+                        .eq(SalesLedger::getSalesContractNo, salesLedgerImportDto.getSalesContractNo())
+                        .last("LIMIT 1"));
+                if(salesLedger1 != null){
+                    continue;
+                }
                 SalesLedger salesLedger = new SalesLedger();
                 BeanUtils.copyProperties(salesLedgerImportDto, salesLedger);
                 salesLedger.setExecutionDate(DateUtils.toLocalDate(salesLedgerImportDto.getExecutionDate()));
diff --git a/src/main/java/com/ruoyi/sales/service/impl/SalesQuotationServiceImpl.java b/src/main/java/com/ruoyi/sales/service/impl/SalesQuotationServiceImpl.java
index f181ea0..8e18058 100644
--- a/src/main/java/com/ruoyi/sales/service/impl/SalesQuotationServiceImpl.java
+++ b/src/main/java/com/ruoyi/sales/service/impl/SalesQuotationServiceImpl.java
@@ -29,6 +29,7 @@
 import org.springframework.transaction.annotation.Transactional;
 
 import java.time.LocalDate;
+import java.util.Collections;
 import java.util.List;
 import java.util.stream.Collectors;
 
@@ -126,8 +127,17 @@
     }
     @Override
     public boolean delete(Long id) {
+        SalesQuotation salesQuotation = salesQuotationMapper.selectById(id);
+        if(salesQuotation==null) return false;
         salesQuotationMapper.deleteById(id);
         salesQuotationProductMapper.delete(new LambdaQueryWrapper<SalesQuotationProduct>().eq(SalesQuotationProduct::getSalesQuotationId, id));
+        // 鍒犻櫎鎶ヤ环瀹℃壒
+        ApproveProcess one = approveProcessService.getOne(new LambdaQueryWrapper<ApproveProcess>()
+                .eq(ApproveProcess::getApproveType, 6)
+                .eq(ApproveProcess::getApproveReason, salesQuotation.getQuotationNo()));
+        if(one != null){
+            approveProcessService.delByIds(Collections.singletonList(one.getId()));
+        }
         return true;
     }
 
diff --git a/src/main/resources/mapper/sales/SalesLedgerMapper.xml b/src/main/resources/mapper/sales/SalesLedgerMapper.xml
index 5d83bb1..552b83d 100644
--- a/src/main/resources/mapper/sales/SalesLedgerMapper.xml
+++ b/src/main/resources/mapper/sales/SalesLedgerMapper.xml
@@ -56,6 +56,7 @@
         T1.attachment_materials,
         T1.tenant_id,
         T1.contract_amount,
+        T1.contract_amount as noInvoiceAmountTotal,
         T1.execution_date,
         T2.nick_name AS entry_person_name,
         T1.payment_method
diff --git a/src/main/resources/mapper/sales/ShippingInfoMapper.xml b/src/main/resources/mapper/sales/ShippingInfoMapper.xml
index 9f7ce19..34073ef 100644
--- a/src/main/resources/mapper/sales/ShippingInfoMapper.xml
+++ b/src/main/resources/mapper/sales/ShippingInfoMapper.xml
@@ -29,6 +29,13 @@
         <if test="req.shippingCarNumber != null and req.shippingCarNumber != ''">
             AND s.shipping_car_number LIKE CONCAT('%',#{req.shippingCarNumber},'%')
         </if>
+        <if test="req.shippingNo != null and req.shippingNo != ''">
+            AND s.shipping_no LIKE CONCAT('%',#{req.shippingNo},'%')
+        </if>
+        <if test="req.expressNumber != null and req.expressNumber != ''">
+            AND s.express_number LIKE CONCAT('%',#{req.expressNumber},'%')
+        </if>
+        order by create_time DESC
     </select>
     <select id="listAll" resultType="com.ruoyi.sales.pojo.ShippingInfo">
         SELECT
diff --git "a/src/main/resources/static/\351\224\200\345\224\256\345\217\260\350\264\246\345\257\274\345\205\245\346\250\241\346\235\277.xlsx" "b/src/main/resources/static/\351\224\200\345\224\256\345\217\260\350\264\246\345\257\274\345\205\245\346\250\241\346\235\277.xlsx"
index 8630fb2..9558711 100644
--- "a/src/main/resources/static/\351\224\200\345\224\256\345\217\260\350\264\246\345\257\274\345\205\245\346\250\241\346\235\277.xlsx"
+++ "b/src/main/resources/static/\351\224\200\345\224\256\345\217\260\350\264\246\345\257\274\345\205\245\346\250\241\346\235\277.xlsx"
Binary files differ

--
Gitblit v1.9.3