From 28d10391a777aefa1a6c6f804ee2f3465085eb46 Mon Sep 17 00:00:00 2001 From: wsm <8454518+new-twice@user.noreply.gitee.com> Date: Wed, 22 Jul 2026 07:13:07 +0000 Subject: [PATCH] =?UTF-8?q?!85=20feat(excel):=20Excel=E5=AF=BC=E5=85=A5?= =?UTF-8?q?=E6=A0=A1=E9=AA=8C=E5=92=8C=E7=BF=BB=E8=AF=91=E6=94=AF=E6=8C=81?= =?UTF-8?q?=E9=80=97=E5=8F=B7=E5=88=86=E9=9A=94=E5=A4=9A=E5=80=BC?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * feat(excel): Excel导入校验和翻译支持逗号分隔多值 * fix(xispeak): 移除完成状态Excel导入导出注解,避免导入时覆盖系统自动维护的状态 * fix(xispeak): 修复密级Excel列名typo 非秘→非密 * fix(xispeak,partymatter,dq): 移除实体类 bpmStatus 字段默认值,改为 service 层设置,避免 Q… * fix(xispeak,partymatter,dq): 实体类 bpmStatus 默认值设为"未开始" --- .../util/excel/ExcelAnnotationUtils.java | 29 +++++++++++++++++++ .../modules/bg/xispeak/entity/BgXiSpeak.java | 8 ++--- .../service/impl/BgXiSpeakServiceImpl.java | 3 ++ .../controller/BgPartymatterController.java | 3 ++ .../impl/DqInspectTaskServiceImpl.java | 3 ++ 5 files changed, 42 insertions(+), 4 deletions(-) diff --git a/jeecg-boot-module/jeecg-module-tools/src/main/java/org/jeecg/common/util/excel/ExcelAnnotationUtils.java b/jeecg-boot-module/jeecg-module-tools/src/main/java/org/jeecg/common/util/excel/ExcelAnnotationUtils.java index 16ec9fd..f5fc052 100644 --- a/jeecg-boot-module/jeecg-module-tools/src/main/java/org/jeecg/common/util/excel/ExcelAnnotationUtils.java +++ b/jeecg-boot-module/jeecg-module-tools/src/main/java/org/jeecg/common/util/excel/ExcelAnnotationUtils.java @@ -220,6 +220,24 @@ public final class ExcelAnnotationUtils { return true; } } + // 逗号分隔多值:逐个验证每个部分是否在字典范围内 + if (value.contains(",")) { + String[] parts = value.split(","); + for (String part : parts) { + String trimmed = part.trim(); + if (trimmed.isEmpty()) continue; + boolean found = false; + for (String s : replace) { + String[] arr = s.split(","); + if (arr.length >= 2 && arr[0].equals(trimmed)) { + found = true; + break; + } + } + if (!found) return false; + } + return true; + } return false; } @@ -231,6 +249,17 @@ public final class ExcelAnnotationUtils { String resolved = displayToCode.getOrDefault(value, value); if (type == String.class) { + // 逗号分隔多值:逐个翻译后再拼回(如 "部门A,部门B" → "id_a,id_b") + if (resolved.equals(value) && value.contains(",")) { + String[] parts = value.split(","); + StringBuilder sb = new StringBuilder(); + for (int i = 0; i < parts.length; i++) { + if (i > 0) sb.append(","); + String trimmed = parts[i].trim(); + sb.append(displayToCode.getOrDefault(trimmed, trimmed)); + } + resolved = sb.toString(); + } field.set(obj, resolved); return; } diff --git a/jeecg-module-supervision/src/main/java/org/jeecg/modules/bg/xispeak/entity/BgXiSpeak.java b/jeecg-module-supervision/src/main/java/org/jeecg/modules/bg/xispeak/entity/BgXiSpeak.java index 15b97e8..bb19d6d 100644 --- a/jeecg-module-supervision/src/main/java/org/jeecg/modules/bg/xispeak/entity/BgXiSpeak.java +++ b/jeecg-module-supervision/src/main/java/org/jeecg/modules/bg/xispeak/entity/BgXiSpeak.java @@ -89,8 +89,8 @@ public class BgXiSpeak implements Serializable { @Schema(description = "学习传达研究部署情况") private java.lang.String status; /**密级*/ - @Excel(name = "密级(请填入非秘/秘密/机密)-必填", width = 15, dicCode = "secret_level") - @ExcelColumn(name = "密级(请填入非秘/秘密/机密)-必填", width = 15, dicCode = "secret_level") + @Excel(name = "密级(请填入非密/秘密/机密)-必填", width = 15, dicCode = "secret_level") + @ExcelColumn(name = "密级(请填入非密/秘密/机密)-必填", width = 15, dicCode = "secret_level") @Dict(dicCode = "secret_level") @Schema(description = "密级") @NotBlank(message = "不能为空") @@ -154,8 +154,8 @@ public class BgXiSpeak implements Serializable { @Schema(description = "拖期风险应对措施") private java.lang.String delayRiskMitigation; /**完成状态(0推进中,1已完成)*/ - @Excel(name = "完成状态(请填入推进中/已完成)-必填", width = 15, dicCode = "db_status") - @ExcelColumn(name = "完成状态(请填入推进中/已完成)-必填", width = 15, dicCode = "db_status") + // @Excel(name = "完成状态(请填入推进中/已完成)-必填", width = 15, dicCode = "db_status") + // @ExcelColumn(name = "完成状态(请填入推进中/已完成)-必填", width = 15, dicCode = "db_status") @Schema(description = "完成状态(0推进中,1已完成)") @Dict( dicCode = "db_status") private java.lang.Integer completionStatus; diff --git a/jeecg-module-supervision/src/main/java/org/jeecg/modules/bg/xispeak/service/impl/BgXiSpeakServiceImpl.java b/jeecg-module-supervision/src/main/java/org/jeecg/modules/bg/xispeak/service/impl/BgXiSpeakServiceImpl.java index 07a075f..b0c43e9 100644 --- a/jeecg-module-supervision/src/main/java/org/jeecg/modules/bg/xispeak/service/impl/BgXiSpeakServiceImpl.java +++ b/jeecg-module-supervision/src/main/java/org/jeecg/modules/bg/xispeak/service/impl/BgXiSpeakServiceImpl.java @@ -52,6 +52,9 @@ public class BgXiSpeakServiceImpl extends ServiceImpl dqInspectProgressList) { + if (dqInspectTask.getBpmStatus() == null) { + dqInspectTask.setBpmStatus("1"); + } validateProblemId(dqInspectTask); dqInspectTaskMapper.insert(dqInspectTask); if(dqInspectProgressList!=null && dqInspectProgressList.size()>0) {