From db9ca601c942d26637a96256c0181bcce6bd1db6 Mon Sep 17 00:00:00 2001
From: aike <17730485278@139.com>
Date: Tue, 9 Sep 2025 10:34:49 +0800
Subject: [PATCH] =?UTF-8?q?demand:=20TMS=E7=B3=BB=E7=BB=9F=20-=20=E5=AE=A2?=
=?UTF-8?q?=E6=88=B7=E8=B4=A6=E5=8D=95=E7=AE=A1=E7=90=86=20-=20=E6=94=B6?=
=?UTF-8?q?=E6=AC=BE=E6=98=8E=E7=BB=86=E6=9F=A5=E8=AF=A2=20-=20=E6=8C=89?=
=?UTF-8?q?=E8=B4=A2=E5=8A=A1=E8=A6=81=E6=B1=82=E5=A2=9E=E5=8A=A0=E5=AE=9A?=
=?UTF-8?q?=E5=88=B6=E5=AF=BC=E5=87=BA=E5=8A=9F=E8=83=BD?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
committer: heyu
---
.../emis/EmisSettlePayRecordController.java | 28 +-
.../service/IEmisSettlePayRecordService.java | 13 +-
.../EmisSettlePayRecordCustomExcelUtil.java | 443 ++++++++++++++++++
.../impl/EmisSettlePayRecordServiceImpl.java | 26 +-
4 files changed, 496 insertions(+), 14 deletions(-)
create mode 100644 emis-biz/src/main/java/com/xdadan/erp/emis/service/excelCellStrategy/EmisSettlePayRecordCustomExcelUtil.java
diff --git a/emis-biz-web/src/main/java/com/xdadan/erp/web/emis/EmisSettlePayRecordController.java b/emis-biz-web/src/main/java/com/xdadan/erp/web/emis/EmisSettlePayRecordController.java
index 3a2b63107..9de42f29a 100644
--- a/emis-biz-web/src/main/java/com/xdadan/erp/web/emis/EmisSettlePayRecordController.java
+++ b/emis-biz-web/src/main/java/com/xdadan/erp/web/emis/EmisSettlePayRecordController.java
@@ -1,11 +1,11 @@
-/**
+/**
* @Project: emis
* @Title: EmisSettlePayRecordController.java
* @author linfso
* @date 2024-07-21 13:31:24
* @Copyright: ShangHai Duta 2022 All rights reserved.
- * @version v1.0
+ * @version v1.0
* @Description:
账单收退款记录 控制器
*/
@@ -17,9 +17,6 @@ import java.util.Map;
import javax.servlet.http.HttpServletResponse;
import cn.hutool.core.map.MapUtil;
-import com.alibaba.fastjson.JSONObject;
-import com.xdadan.erp.emis.domain.EmisSettleBill;
-import com.xdadan.erp.emis.domain.EmisWaybill;
import com.xdadan.erp.emis.domain.exception.EmisBizError;
import com.xdadan.erp.emis.domain.stat.PayBackRecordDtl;
import com.xdadan.erp.emis.utils.WaybillHelper;
@@ -48,7 +45,7 @@ import com.xdadan.erp.emis.service.IEmisSettlePayRecordService;
/**
* 账单收退款记录Controller
- *
+ *
* @author linfso
* @date 2024-07-21 13:31:24
*/
@@ -119,8 +116,8 @@ public class EmisSettlePayRecordController extends BaseController
}
}
- Map rstMap = emisSettlePayRecordService.getSettlePayStatInfoMap(emisSettlePayRecord);
- return AjaxResult.success("查询成功",rstMap);
+ Map rstMap = emisSettlePayRecordService.getSettlePayStatInfoMap(emisSettlePayRecord);
+ return AjaxResult.success("查询成功", rstMap);
}
@GetMapping("/queryPayBackRecordList")
@@ -147,8 +144,8 @@ public class EmisSettlePayRecordController extends BaseController
/**
* 检查是否重复
- *
- * @param emisSettlePayRecord
+ *
+ * @param emisSettlePayRecord
* @return 数量
*/
// @PreAuthorize("@ss.hasPermi('emis:emisSettlePayRecord:list')")
@@ -173,6 +170,17 @@ public class EmisSettlePayRecordController extends BaseController
util.exportExcel(response, list, "账单收退款记录数据");
}
+ /**
+ * 定制导出账单收退款记录列表
+ */
+ // @PreAuthorize("@ss.hasPermi('emis:emisSettlePayRecord:export')")
+ @Log(title = "账单收退款记录定制导出", businessType = BusinessType.EXPORT)
+ @PostMapping("/customExport")
+ public void customExport(HttpServletResponse response, EmisSettlePayRecord emisSettlePayRecord) {
+ setPrivParams(emisSettlePayRecord);
+ emisSettlePayRecordService.customExport(response, emisSettlePayRecord);
+ }
+
/**
* 获取账单收退款记录详细信息
*/
diff --git a/emis-biz/src/main/java/com/xdadan/erp/emis/service/IEmisSettlePayRecordService.java b/emis-biz/src/main/java/com/xdadan/erp/emis/service/IEmisSettlePayRecordService.java
index 3ec4c0c13..c20bcfb6c 100644
--- a/emis-biz/src/main/java/com/xdadan/erp/emis/service/IEmisSettlePayRecordService.java
+++ b/emis-biz/src/main/java/com/xdadan/erp/emis/service/IEmisSettlePayRecordService.java
@@ -12,7 +12,8 @@ package com.xdadan.erp.emis.service;
import java.util.List;
import java.util.Map;
-import com.xdadan.erp.emis.domain.EmisSettleBill;
+import javax.servlet.http.HttpServletResponse;
+
import com.xdadan.erp.emis.domain.EmisSettlePayRecord;
import com.xdadan.erp.emis.domain.exception.EmisBizError;
import com.xdadan.erp.emis.domain.stat.PayBackRecordDtl;
@@ -86,14 +87,20 @@ public interface IEmisSettlePayRecordService
*/
public int deleteEmisSettlePayRecordById(Long id);
-
/**
* 账单退款
+ *
* @param id
* @return
*/
public int payRecordReturn(Long id) throws EmisBizError;
-
+ /**
+ * 定制导出账单收退款记录
+ *
+ * @param response HTTP响应
+ * @param emisSettlePayRecord 查询条件
+ */
+ public void customExport(HttpServletResponse response, EmisSettlePayRecord emisSettlePayRecord);
}
diff --git a/emis-biz/src/main/java/com/xdadan/erp/emis/service/excelCellStrategy/EmisSettlePayRecordCustomExcelUtil.java b/emis-biz/src/main/java/com/xdadan/erp/emis/service/excelCellStrategy/EmisSettlePayRecordCustomExcelUtil.java
new file mode 100644
index 000000000..340b03870
--- /dev/null
+++ b/emis-biz/src/main/java/com/xdadan/erp/emis/service/excelCellStrategy/EmisSettlePayRecordCustomExcelUtil.java
@@ -0,0 +1,443 @@
+package com.xdadan.erp.emis.service.excelCellStrategy;
+
+import com.xdadan.erp.emis.domain.EmisSettlePayRecord;
+import org.apache.poi.ss.usermodel.*;
+import org.apache.poi.xssf.streaming.SXSSFWorkbook;
+
+import javax.servlet.http.HttpServletResponse;
+import java.io.IOException;
+import java.io.OutputStream;
+import java.math.BigDecimal;
+import java.net.URLEncoder;
+import java.text.SimpleDateFormat;
+import java.util.List;
+
+/**
+ * 账单收退款记录定制导出Excel工具类
+ *
+ * @author heyu
+ * @date 2025-09-09
+ */
+public class EmisSettlePayRecordCustomExcelUtil {
+
+ private static final String[] HEADERS = {
+ "交易时间", "收款来源", "收款账户", "支付类型", "缴款客户", "微信昵称", "运单号", "开票状态",
+ "账单金额", "开票金额", "支付金额", "理赔金额", "折让金额", "抵扣金额", "其他收费",
+ "理赔原因", "折让原因", "抵扣原因", "其他原因", "备注"
+ };
+
+ private static final int[] COLUMN_WIDTHS = {
+ 20, 15, 15, 12, 20, 15, 20, 10,
+ 12, 12, 12, 12, 12, 12, 12,
+ 20, 20, 20, 20, 30
+ };
+
+ /**
+ * 导出定制Excel
+ *
+ * @param response HTTP响应
+ * @param dataList 数据列表
+ * @param sheetName 工作表名称
+ */
+ public static void exportCustomExcel(HttpServletResponse response, List dataList,
+ String sheetName) {
+ try {
+ // 创建工作簿
+ SXSSFWorkbook workbook = new SXSSFWorkbook(100);
+ Sheet sheet = workbook.createSheet(sheetName);
+
+ // 创建样式
+ CellStyle headerStyle = createHeaderStyle(workbook);
+ CellStyle dataStyle = createDataStyle(workbook);
+ CellStyle numberStyle = createNumberStyle(workbook);
+ CellStyle sumStyle = createSumStyle(workbook);
+
+ // 创建表头
+ createHeader(sheet, headerStyle);
+
+ // 填充数据
+ int rowIndex = 1;
+ BigDecimal totalBillAmount = BigDecimal.ZERO;
+ BigDecimal totalInvoiceAmount = BigDecimal.ZERO;
+ BigDecimal totalPayMoney = BigDecimal.ZERO;
+ BigDecimal totalSatisfyMoney = BigDecimal.ZERO;
+ BigDecimal totalAllowanceMoney = BigDecimal.ZERO;
+ BigDecimal totalDeductionMoney = BigDecimal.ZERO;
+ BigDecimal totalOtherMoney = BigDecimal.ZERO;
+
+ SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
+
+ for (EmisSettlePayRecord data : dataList) {
+ Row row = sheet.createRow(rowIndex++);
+
+ // 交易时间
+ createCell(row, 0, data.getTradeDate() != null ? dateFormat.format(data.getTradeDate()) : "",
+ dataStyle);
+
+ // 收款来源
+ String paySource = getPaySourceDesc(data.getPayType());
+ createCell(row, 1, paySource, dataStyle);
+
+ // 收款账户(写死为1704378299)
+ createCell(row, 2, "1704378299", dataStyle);
+
+ // 支付类型
+ String payTypeDesc = getPayTypeDesc(data.getSettleType());
+ createCell(row, 3, payTypeDesc, dataStyle);
+
+ // 缴款客户
+ createCell(row, 4, data.getPayMan() != null ? data.getPayMan() : "", dataStyle);
+
+ // 微信昵称(空)
+ createCell(row, 5, "", dataStyle);
+
+ // 运单号
+ createCell(row, 6, data.getBillCodes() != null ? data.getBillCodes() : "", dataStyle);
+
+ // 开票状态
+// String invoiceStatusDesc = getInvoiceStatusDesc(data.getInvoiceStatus());
+ createCell(row, 7, data.getInvoiceStatus(), dataStyle);
+
+ // 账单金额
+ BigDecimal billAmount = data.getBillAmount() != null ? data.getBillAmount() : BigDecimal.ZERO;
+ createCell(row, 8, billAmount, numberStyle);
+ totalBillAmount = totalBillAmount.add(billAmount);
+
+ // 开票金额
+ BigDecimal invoiceAmount = data.getInvoiceAmount() != null ? data.getInvoiceAmount() : BigDecimal.ZERO;
+ createCell(row, 9, invoiceAmount, numberStyle);
+ totalInvoiceAmount = totalInvoiceAmount.add(invoiceAmount);
+
+ // 支付金额
+ BigDecimal payMoney = data.getPayMoney() != null ? data.getPayMoney() : BigDecimal.ZERO;
+ createCell(row, 10, payMoney, numberStyle);
+ totalPayMoney = totalPayMoney.add(payMoney);
+
+ // 理赔金额
+ BigDecimal satisfyMoney = data.getSatisfyMoney() != null ? data.getSatisfyMoney() : BigDecimal.ZERO;
+ createCell(row, 11, satisfyMoney, numberStyle);
+ totalSatisfyMoney = totalSatisfyMoney.add(satisfyMoney);
+
+ // 折让金额
+ BigDecimal allowanceMoney = data.getAllowanceMoney() != null ? data.getAllowanceMoney()
+ : BigDecimal.ZERO;
+ createCell(row, 12, allowanceMoney, numberStyle);
+ totalAllowanceMoney = totalAllowanceMoney.add(allowanceMoney);
+
+ // 抵扣金额
+ BigDecimal deductionMoney = data.getDeductionMoney() != null ? data.getDeductionMoney()
+ : BigDecimal.ZERO;
+ createCell(row, 13, deductionMoney, numberStyle);
+ totalDeductionMoney = totalDeductionMoney.add(deductionMoney);
+
+ // 其他收费
+ BigDecimal otherMoney = data.getOtherMoney() != null ? data.getOtherMoney() : BigDecimal.ZERO;
+ createCell(row, 14, otherMoney, numberStyle);
+ totalOtherMoney = totalOtherMoney.add(otherMoney);
+
+ // 理赔原因
+ createCell(row, 15, data.getSatisfyReason() != null ? data.getSatisfyReason() : "", dataStyle);
+
+ // 折让原因
+ createCell(row, 16, data.getAllowanceReason() != null ? data.getAllowanceReason() : "", dataStyle);
+
+ // 抵扣原因
+ createCell(row, 17, data.getDeductionReason() != null ? data.getDeductionReason() : "", dataStyle);
+
+ // 其他原因
+ createCell(row, 18, data.getOtherReason() != null ? data.getOtherReason() : "", dataStyle);
+
+ // 备注
+ createCell(row, 19, data.getRemark() != null ? data.getRemark() : "", dataStyle);
+ }
+
+ // 创建合计行
+ createSumRow(sheet, rowIndex, sumStyle, totalBillAmount, totalInvoiceAmount, totalPayMoney,
+ totalSatisfyMoney, totalAllowanceMoney, totalDeductionMoney, totalOtherMoney);
+
+ // 设置列宽
+ setColumnWidths(sheet);
+
+ // 输出文件
+ outputFile(response, workbook, sheetName);
+
+ } catch (Exception e) {
+ throw new RuntimeException("导出Excel失败:" + e.getMessage(), e);
+ }
+ }
+
+ /**
+ * 获取收款来源描述
+ */
+ private static String getPaySourceDesc(String payType) {
+ if (payType == null)
+ return "";
+ switch (payType) {
+ case "1":
+ return "企业微信收款";
+ case "2":
+ return "工行汇款3890";
+ case "3":
+ return "微信支付";
+ case "4":
+ return "支付宝";
+ case "5":
+ return "其他";
+ case "6":
+ return "招行付款";
+ case "7":
+ return "在线支付(微信)";
+ default:
+ return "其他";
+ }
+ }
+
+ /**
+ * 获取支付类型描述
+ */
+ private static String getPayTypeDesc(String settleType) {
+ if (settleType == null)
+ return "";
+ switch (settleType) {
+ case "1":
+ return "现金账单";
+ case "2":
+ return "月结账单";
+ default:
+ return "其他";
+ }
+ }
+
+ /**
+ * 获取开票状态描述
+ */
+ private static String getInvoiceStatusDesc(String invoiceStatus) {
+ if (invoiceStatus == null)
+ return "未开票";
+ switch (invoiceStatus) {
+ case "0":
+ return "待开票";
+ case "1":
+ return "已开票";
+ case "2":
+ return "已开票";
+ default:
+ return "未开票";
+ }
+ }
+
+ /**
+ * 创建表头样式
+ */
+ private static CellStyle createHeaderStyle(Workbook workbook) {
+ CellStyle style = workbook.createCellStyle();
+
+ // 设置字体
+ Font font = workbook.createFont();
+ font.setFontName("宋体");
+ font.setFontHeightInPoints((short) 12);
+ font.setBold(true);
+ style.setFont(font);
+
+ // 设置背景色(绿色)
+ style.setFillForegroundColor(IndexedColors.LIGHT_GREEN.getIndex());
+ style.setFillPattern(FillPatternType.SOLID_FOREGROUND);
+
+ // 设置边框
+ style.setBorderTop(BorderStyle.THIN);
+ style.setBorderBottom(BorderStyle.THIN);
+ style.setBorderLeft(BorderStyle.THIN);
+ style.setBorderRight(BorderStyle.THIN);
+
+ // 设置对齐方式
+ style.setAlignment(HorizontalAlignment.CENTER);
+ style.setVerticalAlignment(VerticalAlignment.CENTER);
+
+ return style;
+ }
+
+ /**
+ * 创建数据样式
+ */
+ private static CellStyle createDataStyle(Workbook workbook) {
+ CellStyle style = workbook.createCellStyle();
+
+ // 设置字体
+ Font font = workbook.createFont();
+ font.setFontName("宋体");
+ font.setFontHeightInPoints((short) 12);
+ style.setFont(font);
+
+ // 设置边框
+ style.setBorderTop(BorderStyle.THIN);
+ style.setBorderBottom(BorderStyle.THIN);
+ style.setBorderLeft(BorderStyle.THIN);
+ style.setBorderRight(BorderStyle.THIN);
+
+ // 设置对齐方式
+ style.setAlignment(HorizontalAlignment.LEFT);
+ style.setVerticalAlignment(VerticalAlignment.CENTER);
+
+ return style;
+ }
+
+ /**
+ * 创建数字样式
+ */
+ private static CellStyle createNumberStyle(Workbook workbook) {
+ CellStyle style = workbook.createCellStyle();
+
+ // 设置字体
+ Font font = workbook.createFont();
+ font.setFontName("宋体");
+ font.setFontHeightInPoints((short) 12);
+ style.setFont(font);
+
+ // 设置边框
+ style.setBorderTop(BorderStyle.THIN);
+ style.setBorderBottom(BorderStyle.THIN);
+ style.setBorderLeft(BorderStyle.THIN);
+ style.setBorderRight(BorderStyle.THIN);
+
+ // 设置数字格式
+ style.setDataFormat(workbook.createDataFormat().getFormat("#,##0.00"));
+
+ // 设置对齐方式
+ style.setAlignment(HorizontalAlignment.RIGHT);
+ style.setVerticalAlignment(VerticalAlignment.CENTER);
+
+ return style;
+ }
+
+ /**
+ * 创建合计行样式
+ */
+ private static CellStyle createSumStyle(Workbook workbook) {
+ CellStyle style = workbook.createCellStyle();
+
+ // 设置字体
+ Font font = workbook.createFont();
+ font.setFontName("宋体");
+ font.setFontHeightInPoints((short) 12);
+ font.setBold(true);
+ style.setFont(font);
+
+ // 设置背景色
+ style.setFillForegroundColor(IndexedColors.LIGHT_YELLOW.getIndex());
+ style.setFillPattern(FillPatternType.SOLID_FOREGROUND);
+
+ // 设置边框
+ style.setBorderTop(BorderStyle.THIN);
+ style.setBorderBottom(BorderStyle.THIN);
+ style.setBorderLeft(BorderStyle.THIN);
+ style.setBorderRight(BorderStyle.THIN);
+
+ // 设置数字格式
+ style.setDataFormat(workbook.createDataFormat().getFormat("#,##0.00"));
+
+ // 设置对齐方式
+ style.setAlignment(HorizontalAlignment.RIGHT);
+ style.setVerticalAlignment(VerticalAlignment.CENTER);
+
+ return style;
+ }
+
+ /**
+ * 创建表头
+ */
+ private static void createHeader(Sheet sheet, CellStyle headerStyle) {
+ Row headerRow = sheet.createRow(0);
+ headerRow.setHeightInPoints(25);
+
+ for (int i = 0; i < HEADERS.length; i++) {
+ Cell cell = headerRow.createCell(i);
+ cell.setCellValue(HEADERS[i]);
+ cell.setCellStyle(headerStyle);
+ }
+ }
+
+ /**
+ * 创建单元格
+ */
+ private static void createCell(Row row, int columnIndex, String value, CellStyle style) {
+ Cell cell = row.createCell(columnIndex);
+ cell.setCellValue(value != null ? value : "");
+ cell.setCellStyle(style);
+ }
+
+ /**
+ * 创建数字单元格
+ */
+ private static void createCell(Row row, int columnIndex, BigDecimal value, CellStyle style) {
+ Cell cell = row.createCell(columnIndex);
+ cell.setCellValue(value != null ? value.doubleValue() : 0.0);
+ cell.setCellStyle(style);
+ }
+
+ /**
+ * 创建合计行
+ */
+ private static void createSumRow(Sheet sheet, int rowIndex, CellStyle sumStyle,
+ BigDecimal totalBillAmount, BigDecimal totalInvoiceAmount, BigDecimal totalPayMoney,
+ BigDecimal totalSatisfyMoney, BigDecimal totalAllowanceMoney,
+ BigDecimal totalDeductionMoney, BigDecimal totalOtherMoney) {
+ Row sumRow = sheet.createRow(rowIndex);
+ sumRow.setHeightInPoints(25);
+
+ // 合计标签
+ Cell sumLabelCell = sumRow.createCell(7);
+ sumLabelCell.setCellValue("合计");
+ CellStyle labelStyle = sheet.getWorkbook().createCellStyle();
+ Font font = sheet.getWorkbook().createFont();
+ font.setFontName("宋体");
+ font.setFontHeightInPoints((short) 12);
+ font.setBold(true);
+ labelStyle.setFont(font);
+ labelStyle.setFillForegroundColor(IndexedColors.LIGHT_YELLOW.getIndex());
+ labelStyle.setFillPattern(FillPatternType.SOLID_FOREGROUND);
+ labelStyle.setBorderTop(BorderStyle.THIN);
+ labelStyle.setBorderBottom(BorderStyle.THIN);
+ labelStyle.setBorderLeft(BorderStyle.THIN);
+ labelStyle.setBorderRight(BorderStyle.THIN);
+ labelStyle.setAlignment(HorizontalAlignment.CENTER);
+ labelStyle.setVerticalAlignment(VerticalAlignment.CENTER);
+ sumLabelCell.setCellStyle(labelStyle);
+
+ // 合计金额
+ createCell(sumRow, 8, totalBillAmount, sumStyle);
+ createCell(sumRow, 9, totalInvoiceAmount, sumStyle);
+ createCell(sumRow, 10, totalPayMoney, sumStyle);
+ createCell(sumRow, 11, totalSatisfyMoney, sumStyle);
+ createCell(sumRow, 12, totalAllowanceMoney, sumStyle);
+ createCell(sumRow, 13, totalDeductionMoney, sumStyle);
+ createCell(sumRow, 14, totalOtherMoney, sumStyle);
+ }
+
+ /**
+ * 设置列宽
+ */
+ private static void setColumnWidths(Sheet sheet) {
+ for (int i = 0; i < COLUMN_WIDTHS.length; i++) {
+ sheet.setColumnWidth(i, COLUMN_WIDTHS[i] * 256);
+ }
+ }
+
+ /**
+ * 输出文件
+ */
+ private static void outputFile(HttpServletResponse response, Workbook workbook, String sheetName)
+ throws IOException {
+ // 设置响应头
+ response.setContentType("application/vnd.openxmlformats-officedocument.spreadsheetml.sheet");
+ response.setCharacterEncoding("utf-8");
+
+ String fileName = URLEncoder.encode(sheetName + ".xlsx", "UTF-8").replaceAll("\\+", "%20");
+ response.setHeader("Content-disposition", "attachment;filename*=utf-8''" + fileName);
+
+ // 输出文件
+ try (OutputStream outputStream = response.getOutputStream()) {
+ workbook.write(outputStream);
+ workbook.close();
+ }
+ }
+}
diff --git a/emis-biz/src/main/java/com/xdadan/erp/emis/service/impl/EmisSettlePayRecordServiceImpl.java b/emis-biz/src/main/java/com/xdadan/erp/emis/service/impl/EmisSettlePayRecordServiceImpl.java
index 1ef18ea0b..51ba1cbc4 100644
--- a/emis-biz/src/main/java/com/xdadan/erp/emis/service/impl/EmisSettlePayRecordServiceImpl.java
+++ b/emis-biz/src/main/java/com/xdadan/erp/emis/service/impl/EmisSettlePayRecordServiceImpl.java
@@ -20,6 +20,8 @@ import java.util.concurrent.CompletableFuture;
import java.util.concurrent.ExecutorService;
import java.util.concurrent.Executors;
+import javax.servlet.http.HttpServletResponse;
+
import com.xdadan.erp.emis.domain.*;
import com.xdadan.erp.emis.domain.enumtype.EmisBizErrorType;
import com.xdadan.erp.emis.domain.exception.EmisBizError;
@@ -27,6 +29,7 @@ import com.xdadan.erp.emis.domain.stat.PayBackRecordDtl;
import com.xdadan.erp.emis.mapper.*;
import com.xdadan.erp.emis.service.EmisBaseService;
import com.xdadan.erp.emis.service.IEmisSettleBillService;
+import com.xdadan.erp.emis.service.excelCellStrategy.EmisSettlePayRecordCustomExcelUtil;
import com.xdadan.erp.emis.utils.WaybillHelper;
import jodd.util.StringUtil;
import lombok.extern.slf4j.Slf4j;
@@ -466,6 +469,7 @@ public class EmisSettlePayRecordServiceImpl extends EmisBaseService implements I
/**
* 收款退款
+ *
* @param id
* @return
*/
@@ -486,7 +490,6 @@ public class EmisSettlePayRecordServiceImpl extends EmisBaseService implements I
return 1;
}
-
/**
* 修改账单收退款记录
*
@@ -523,4 +526,25 @@ public class EmisSettlePayRecordServiceImpl extends EmisBaseService implements I
return emisSettlePayRecordMapper.deleteEmisSettlePayRecordById(id);
}
+ /**
+ * 定制导出账单收退款记录
+ *
+ * @param response HTTP响应
+ * @param emisSettlePayRecord 查询条件
+ */
+ @Override
+ public void customExport(HttpServletResponse response, EmisSettlePayRecord emisSettlePayRecord) {
+ try {
+ // 查询数据列表
+ List exportList = selectEmisSettlePayRecordList(emisSettlePayRecord);
+
+ // 使用定制Excel工具类导出
+ EmisSettlePayRecordCustomExcelUtil.exportCustomExcel(response, exportList, "收款明细定制导出_" + System.currentTimeMillis());
+
+ } catch (Exception e) {
+ log.error("定制导出收款明细失败", e);
+ throw new RuntimeException("导出失败:" + e.getMessage());
+ }
+ }
+
}