diff --git a/bonus-admin/src/main/java/com/bonus/web/service/enterprise/ToolService.java b/bonus-admin/src/main/java/com/bonus/web/service/enterprise/ToolService.java index 7f59883..28cf797 100644 --- a/bonus-admin/src/main/java/com/bonus/web/service/enterprise/ToolService.java +++ b/bonus-admin/src/main/java/com/bonus/web/service/enterprise/ToolService.java @@ -229,11 +229,10 @@ public class ToolService { return AjaxResult.error(ErrorMessageEnum.getByCode("EXCEL003").getMessage()); } // 1.校验excel数据是否填写、校验excel数据是否重复、校验excel数据是否与数据库重复 - verifyExcelData(toolList); ValidateResult validateResult = validateToolData(toolList,dto); if (!validateResult.isSuccess()) { // 校验失败,抛出异常或返回错误信息 - return AjaxResult.error("数据校验失败: " + validateResult.getMessage()); + return AjaxResult.error(formatErrorMessages(validateResult)); } // 4.添加工器具数据 imdToolService.batchImportData(dto, toolList); @@ -254,24 +253,6 @@ public class ToolService { return AjaxResult.success(); } - /** - * 校验数据是否合法 - * @param toolList - * @return List - * @author cwchen - * @date 2025/11/3 11:25 - */ - public List verifyExcelData(List toolList) { - List list = new ArrayList<>(); - for (ToolDto toolDto : toolList) { - String validResult = validatorsUtils.valid(toolDto, ToolDto.IMPORT.class); - if (StringUtils.isNotBlank(validResult)) { - list.add(validResult); - } - } - return list; - } - /** * 异步执行所有校验并汇总结果 */ @@ -326,4 +307,20 @@ public class ToolService { } return summary; } + + /** + * 格式化错误信息为前端可显示的格式 + */ + private String formatErrorMessages(ValidateResult validateResult) { + StringBuilder sb = new StringBuilder(); + sb.append("数据校验失败: ").append(validateResult.getMessage()); + if (validateResult.getErrorDetails() != null && !validateResult.getErrorDetails().isEmpty()) { + sb.append("\n详细错误:\n"); + for (int i = 0; i < validateResult.getErrorDetails().size(); i++) { + sb.append(i + 1).append(". ").append(validateResult.getErrorDetails().get(i)).append("\n"); + } + } + + return sb.toString(); + } } diff --git a/bonus-admin/src/main/java/com/bonus/web/validateService/ToolValidateService.java b/bonus-admin/src/main/java/com/bonus/web/validateService/ToolValidateService.java index 5e01006..af2188f 100644 --- a/bonus-admin/src/main/java/com/bonus/web/validateService/ToolValidateService.java +++ b/bonus-admin/src/main/java/com/bonus/web/validateService/ToolValidateService.java @@ -43,9 +43,9 @@ public class ToolValidateService { for (int i = 0; i < toolList.size(); i++) { ToolDto tool = toolList.get(i); int rowNumber = i + 1; - result.setSuccess(false); String validResult = validatorsUtils.valid(tool, ToolDto.IMPORT.class); if (StringUtils.isNotBlank(validResult)) { + result.setSuccess(false); result.addErrorDetail("第" + rowNumber + "行:" + validResult); } @@ -104,13 +104,12 @@ public class ToolValidateService { @Async("taskExecutor") public CompletableFuture verifyDatabaseDuplicate(List toolList,ToolDto dto) { ValidateResult result = new ValidateResult("数据库重复校验", true, "无数据库重复数据"); - try { // 从数据库查询已存在的工器具 List existingTools = queryExistingToolsFromDatabase(dto); for (int i = 0; i < toolList.size(); i++) { ToolDto tool = toolList.get(i); - String key = tool.getToolName(); + String key = tool.getToolName() + "_" + tool.getModel(); if (existingTools.contains(key)) { result.setSuccess(false);