工器具优化
This commit is contained in:
parent
1e3173cd6e
commit
001dc22e64
|
|
@ -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<String>
|
||||
* @author cwchen
|
||||
* @date 2025/11/3 11:25
|
||||
*/
|
||||
public List<String> verifyExcelData(List<ToolDto> toolList) {
|
||||
List<String> 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();
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -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<ValidateResult> verifyDatabaseDuplicate(List<ToolDto> toolList,ToolDto dto) {
|
||||
ValidateResult result = new ValidateResult("数据库重复校验", true, "无数据库重复数据");
|
||||
|
||||
try {
|
||||
// 从数据库查询已存在的工器具
|
||||
List<String> 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);
|
||||
|
|
|
|||
Loading…
Reference in New Issue