瀏覽代碼

fix: 发票导出/列表增加开票时间过滤,修复选择时间后仍导出全部的问题

- InvoiceDetailQueryParam新增startTime/endTime字段(@DateTimeFormat)
- 抽取buildQuery公共方法,统一applyId+时间范围过滤
- listInvoiceDetail和exportInvoiceDetail共用同一过滤逻辑

Co-Authored-By: Claude <noreply@anthropic.com>
skyline 1 月之前
父節點
當前提交
bdcec1d2b6

+ 15 - 0
entity/src/main/java/com/kym/entity/admin/queryParams/InvoiceDetailQueryParam.java

@@ -2,6 +2,9 @@ package com.kym.entity.admin.queryParams;
 
 import com.kym.entity.common.PageParams;
 import lombok.Data;
+import org.springframework.format.annotation.DateTimeFormat;
+
+import java.time.LocalDateTime;
 
 /**
  * @author skyline
@@ -15,4 +18,16 @@ public class InvoiceDetailQueryParam extends PageParams {
      */
     private String applyId;
 
+    /**
+     * 开票时间(起)
+     */
+    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+    private LocalDateTime startTime;
+
+    /**
+     * 开票时间(止)
+     */
+    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+    private LocalDateTime endTime;
+
 }

+ 13 - 8
service/src/main/java/com/kym/service/admin/impl/InvoiceDetailServiceImpl.java

@@ -4,6 +4,7 @@ import cn.hutool.core.util.NumberUtil;
 import cn.hutool.poi.excel.ExcelUtil;
 import cn.hutool.poi.excel.ExcelWriter;
 import com.baomidou.dynamic.datasource.annotation.DS;
+import com.baomidou.mybatisplus.extension.conditions.query.LambdaQueryChainWrapper;
 import com.github.pagehelper.PageHelper;
 import com.github.yulichang.base.MPJBaseServiceImpl;
 import com.kym.common.utils.CommUtil;
@@ -39,19 +40,13 @@ public class InvoiceDetailServiceImpl extends MPJBaseServiceImpl<InvoiceDetailMa
     @Override
     public PageBean<InvoiceDetail> listInvoiceDetail(InvoiceDetailQueryParam params) {
         PageHelper.startPage(params.getPageNum(), params.getPageSize());
-        var res = lambdaQuery()
-                .eq(CommUtil.isNotEmptyAndNull(params.getApplyId()), InvoiceDetail::getApplyId, params.getApplyId())
-                .orderByDesc(InvoiceDetail::getFapiaoTime)
-                .list();
+        var res = buildQuery(params).orderByDesc(InvoiceDetail::getFapiaoTime).list();
         return new PageBean<>(res);
     }
 
     @Override
     public ExcelWriter exportInvoiceDetail(InvoiceDetailQueryParam params) {
-        var invoiceDetailList = lambdaQuery()
-                .eq(CommUtil.isNotEmptyAndNull(params.getApplyId()), InvoiceDetail::getApplyId, params.getApplyId())
-                .orderByDesc(InvoiceDetail::getFapiaoTime)
-                .list();
+        var invoiceDetailList = buildQuery(params).orderByDesc(InvoiceDetail::getFapiaoTime).list();
         ExcelWriter writer = ExcelUtil.getWriter();
 
         // excel 行信息
@@ -135,4 +130,14 @@ public class InvoiceDetailServiceImpl extends MPJBaseServiceImpl<InvoiceDetailMa
         removeByMap(Map.of("apply_id", invoiceDetail.getApplyId()));
         save(invoiceDetail);
     }
+
+    /**
+     * 构建带公共过滤条件的查询
+     */
+    private LambdaQueryChainWrapper<InvoiceDetail> buildQuery(InvoiceDetailQueryParam params) {
+        return lambdaQuery()
+                .eq(CommUtil.isNotEmptyAndNull(params.getApplyId()), InvoiceDetail::getApplyId, params.getApplyId())
+                .ge(params.getStartTime() != null, InvoiceDetail::getFapiaoTime, params.getStartTime())
+                .le(params.getEndTime() != null, InvoiceDetail::getFapiaoTime, params.getEndTime());
+    }
 }