工器具优化
This commit is contained in:
parent
1e3173cd6e
commit
001dc22e64
|
|
@ -229,11 +229,10 @@ public class ToolService {
|
||||||
return AjaxResult.error(ErrorMessageEnum.getByCode("EXCEL003").getMessage());
|
return AjaxResult.error(ErrorMessageEnum.getByCode("EXCEL003").getMessage());
|
||||||
}
|
}
|
||||||
// 1.校验excel数据是否填写、校验excel数据是否重复、校验excel数据是否与数据库重复
|
// 1.校验excel数据是否填写、校验excel数据是否重复、校验excel数据是否与数据库重复
|
||||||
verifyExcelData(toolList);
|
|
||||||
ValidateResult validateResult = validateToolData(toolList,dto);
|
ValidateResult validateResult = validateToolData(toolList,dto);
|
||||||
if (!validateResult.isSuccess()) {
|
if (!validateResult.isSuccess()) {
|
||||||
// 校验失败,抛出异常或返回错误信息
|
// 校验失败,抛出异常或返回错误信息
|
||||||
return AjaxResult.error("数据校验失败: " + validateResult.getMessage());
|
return AjaxResult.error(formatErrorMessages(validateResult));
|
||||||
}
|
}
|
||||||
// 4.添加工器具数据
|
// 4.添加工器具数据
|
||||||
imdToolService.batchImportData(dto, toolList);
|
imdToolService.batchImportData(dto, toolList);
|
||||||
|
|
@ -254,24 +253,6 @@ public class ToolService {
|
||||||
return AjaxResult.success();
|
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;
|
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++) {
|
for (int i = 0; i < toolList.size(); i++) {
|
||||||
ToolDto tool = toolList.get(i);
|
ToolDto tool = toolList.get(i);
|
||||||
int rowNumber = i + 1;
|
int rowNumber = i + 1;
|
||||||
result.setSuccess(false);
|
|
||||||
String validResult = validatorsUtils.valid(tool, ToolDto.IMPORT.class);
|
String validResult = validatorsUtils.valid(tool, ToolDto.IMPORT.class);
|
||||||
if (StringUtils.isNotBlank(validResult)) {
|
if (StringUtils.isNotBlank(validResult)) {
|
||||||
|
result.setSuccess(false);
|
||||||
result.addErrorDetail("第" + rowNumber + "行:" + validResult);
|
result.addErrorDetail("第" + rowNumber + "行:" + validResult);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -104,13 +104,12 @@ public class ToolValidateService {
|
||||||
@Async("taskExecutor")
|
@Async("taskExecutor")
|
||||||
public CompletableFuture<ValidateResult> verifyDatabaseDuplicate(List<ToolDto> toolList,ToolDto dto) {
|
public CompletableFuture<ValidateResult> verifyDatabaseDuplicate(List<ToolDto> toolList,ToolDto dto) {
|
||||||
ValidateResult result = new ValidateResult("数据库重复校验", true, "无数据库重复数据");
|
ValidateResult result = new ValidateResult("数据库重复校验", true, "无数据库重复数据");
|
||||||
|
|
||||||
try {
|
try {
|
||||||
// 从数据库查询已存在的工器具
|
// 从数据库查询已存在的工器具
|
||||||
List<String> existingTools = queryExistingToolsFromDatabase(dto);
|
List<String> existingTools = queryExistingToolsFromDatabase(dto);
|
||||||
for (int i = 0; i < toolList.size(); i++) {
|
for (int i = 0; i < toolList.size(); i++) {
|
||||||
ToolDto tool = toolList.get(i);
|
ToolDto tool = toolList.get(i);
|
||||||
String key = tool.getToolName();
|
String key = tool.getToolName() + "_" + tool.getModel();
|
||||||
|
|
||||||
if (existingTools.contains(key)) {
|
if (existingTools.contains(key)) {
|
||||||
result.setSuccess(false);
|
result.setSuccess(false);
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue