From f016acda91b639b6304d2bf9f5f3596cd3e49b17 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=B5=B5=E5=BF=A0=E6=9E=97?= <170083662@qq.com> Date: Tue, 3 Mar 2026 14:41:46 +0800 Subject: [PATCH] =?UTF-8?q?feat(credit):=20=E4=BC=98=E5=8C=96=E7=A0=B4?= =?UTF-8?q?=E4=BA=A7=E9=87=8D=E6=95=B4=E6=95=B0=E6=8D=AE=E5=AF=BC=E5=85=A5?= =?UTF-8?q?=E5=8A=9F=E8=83=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 优先从名为"破产重整"的标签页导入数据,避免多工作表文件中的意外导入 - 当指定标签页不存在时,向后兼容使用任意工作表导入方式 - 添加详细的注释说明导入逻辑和向后兼容性处理 --- .../controller/CreditBankruptcyController.java | 12 ++++++++++-- websoft-modules.log.2026-03-02.0.gz | Bin 0 -> 8989 bytes 2 files changed, 10 insertions(+), 2 deletions(-) create mode 100644 websoft-modules.log.2026-03-02.0.gz diff --git a/src/main/java/com/gxwebsoft/credit/controller/CreditBankruptcyController.java b/src/main/java/com/gxwebsoft/credit/controller/CreditBankruptcyController.java index 6a243fe..a1f38c7 100644 --- a/src/main/java/com/gxwebsoft/credit/controller/CreditBankruptcyController.java +++ b/src/main/java/com/gxwebsoft/credit/controller/CreditBankruptcyController.java @@ -195,8 +195,16 @@ public class CreditBankruptcyController extends BaseController { Set touchedCompanyIds = new HashSet<>(); try { - ExcelImportSupport.ImportResult importResult = ExcelImportSupport.readAnySheet( - file, CreditBankruptcyImportParam.class, this::isEmptyImportRow); + // Prefer importing from the explicit tab name "破产重整" when present. + // This avoids accidentally importing from other sheets (e.g. "历史破产重整") in multi-sheet workbooks. + int sheetIndex = ExcelImportSupport.findSheetIndex(file, "破产重整"); + ExcelImportSupport.ImportResult importResult; + if (sheetIndex >= 0) { + importResult = ExcelImportSupport.read(file, CreditBankruptcyImportParam.class, this::isEmptyImportRow, sheetIndex); + } else { + // Backward compatible: try any sheet for older templates without the expected tab name. + importResult = ExcelImportSupport.readAnySheet(file, CreditBankruptcyImportParam.class, this::isEmptyImportRow); + } List list = importResult.getData(); int usedTitleRows = importResult.getTitleRows(); int usedHeadRows = importResult.getHeadRows(); diff --git a/websoft-modules.log.2026-03-02.0.gz b/websoft-modules.log.2026-03-02.0.gz new file mode 100644 index 0000000000000000000000000000000000000000..c12dc03d8b3f3c162cdf31af8180e2e837f8ef2c GIT binary patch literal 8989 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 F{{>;0=Rg1e literal 0 HcmV?d00001