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) {