|
|
|
@ -365,6 +365,34 @@ public class HandlingUnitSpecialServiceImpl extends ServiceImpl<HandlingUnitSpec |
|
|
|
return result; |
|
|
|
} |
|
|
|
|
|
|
|
/** |
|
|
|
* @Description 从处理结果中提取错误原因 - rqrq |
|
|
|
* 格式:...【错误原因:xxx】... |
|
|
|
* @param processResult 处理结果字符串 |
|
|
|
* @return 错误原因,如果没有则返回默认值 |
|
|
|
* @author rqrq |
|
|
|
* @date 2025/12/03 |
|
|
|
*/ |
|
|
|
private String extractErrorReason(String processResult) { |
|
|
|
String defaultReason = "IFS修改WDR失败"; |
|
|
|
if (processResult == null) { |
|
|
|
return defaultReason; |
|
|
|
} |
|
|
|
|
|
|
|
int startIdx = processResult.indexOf("【错误原因:"); |
|
|
|
if (startIdx < 0) { |
|
|
|
return defaultReason; |
|
|
|
} |
|
|
|
|
|
|
|
int endIdx = processResult.indexOf("】", startIdx); |
|
|
|
if (endIdx < 0) { |
|
|
|
return defaultReason; |
|
|
|
} |
|
|
|
|
|
|
|
String reason = processResult.substring(startIdx + 6, endIdx); |
|
|
|
return StringUtils.hasText(reason) ? reason : defaultReason; |
|
|
|
} |
|
|
|
|
|
|
|
/** |
|
|
|
* @Description 将日期格式从 yyyy-MM-dd 转换为 MM/dd/yyyy(IFS格式)- rqrq |
|
|
|
* @param dateStr 日期字符串(yyyy-MM-dd格式) |
|
|
|
@ -467,17 +495,26 @@ public class HandlingUnitSpecialServiceImpl extends ServiceImpl<HandlingUnitSpec |
|
|
|
result.setFailedUnitIds(new ArrayList<>()); |
|
|
|
result.setFailedReasons(new ArrayList<>()); |
|
|
|
} else if (processResult.contains("所有标签IFS修改WDR失败")) { |
|
|
|
// 全部失败的情况(格式:所有标签IFS修改WDR失败:xxx, xxx)- rqrq |
|
|
|
// 全部失败的情况(格式:所有标签IFS修改WDR失败:xxx, xxx【错误原因:xxx】)- rqrq |
|
|
|
List<String> failedUnitIds = new ArrayList<>(); |
|
|
|
List<String> failedReasons = new ArrayList<>(); |
|
|
|
|
|
|
|
// 提取错误原因 - rqrq |
|
|
|
String errorReason = extractErrorReason(processResult); |
|
|
|
|
|
|
|
int startIdx = processResult.indexOf(":"); |
|
|
|
int endIdx = processResult.indexOf("【"); |
|
|
|
if (startIdx > 0) { |
|
|
|
String failedPart = processResult.substring(startIdx + 1); |
|
|
|
String failedPart = endIdx > startIdx ? |
|
|
|
processResult.substring(startIdx + 1, endIdx) : |
|
|
|
processResult.substring(startIdx + 1); |
|
|
|
String[] failedIds = failedPart.split(", "); |
|
|
|
for (String id : failedIds) { |
|
|
|
failedUnitIds.add(id.trim()); |
|
|
|
failedReasons.add("IFS修改WDR失败"); |
|
|
|
String trimmedId = id.trim(); |
|
|
|
if (!trimmedId.isEmpty()) { |
|
|
|
failedUnitIds.add(trimmedId); |
|
|
|
failedReasons.add(errorReason); |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
@ -486,20 +523,37 @@ public class HandlingUnitSpecialServiceImpl extends ServiceImpl<HandlingUnitSpec |
|
|
|
result.setFailedUnitIds(failedUnitIds); |
|
|
|
result.setFailedReasons(failedReasons); |
|
|
|
|
|
|
|
log.warn("全部标签IFS修改WDR失败 - rqrq,失败列表:{}", failedUnitIds); |
|
|
|
log.warn("全部标签IFS修改WDR失败 - rqrq,失败列表:{},错误原因:{}", failedUnitIds, errorReason); |
|
|
|
} else if (processResult.contains("IFS修改WDR失败")) { |
|
|
|
// 部分失败的情况(格式:以下标签IFS修改WDR失败:xxx, xxx;成功处理X个标签)- rqrq |
|
|
|
// 部分失败的情况(格式:以下标签IFS修改WDR失败:xxx, xxx【错误原因:xxx】;成功处理X个标签)- rqrq |
|
|
|
List<String> failedUnitIds = new ArrayList<>(); |
|
|
|
List<String> failedReasons = new ArrayList<>(); |
|
|
|
|
|
|
|
// 提取错误原因 - rqrq |
|
|
|
String errorReason = extractErrorReason(processResult); |
|
|
|
|
|
|
|
int startIdx = processResult.indexOf(":"); |
|
|
|
int endIdx = processResult.indexOf(";"); |
|
|
|
// 找到【或;的位置,取较小者 - rqrq |
|
|
|
int endIdx1 = processResult.indexOf("【"); |
|
|
|
int endIdx2 = processResult.indexOf(";"); |
|
|
|
int endIdx = -1; |
|
|
|
if (endIdx1 > 0 && endIdx2 > 0) { |
|
|
|
endIdx = Math.min(endIdx1, endIdx2); |
|
|
|
} else if (endIdx1 > 0) { |
|
|
|
endIdx = endIdx1; |
|
|
|
} else if (endIdx2 > 0) { |
|
|
|
endIdx = endIdx2; |
|
|
|
} |
|
|
|
|
|
|
|
if (startIdx > 0 && endIdx > startIdx) { |
|
|
|
String failedPart = processResult.substring(startIdx + 1, endIdx); |
|
|
|
String[] failedIds = failedPart.split(", "); |
|
|
|
for (String id : failedIds) { |
|
|
|
failedUnitIds.add(id.trim()); |
|
|
|
failedReasons.add("IFS修改WDR失败"); |
|
|
|
String trimmedId = id.trim(); |
|
|
|
if (!trimmedId.isEmpty()) { |
|
|
|
failedUnitIds.add(trimmedId); |
|
|
|
failedReasons.add(errorReason); |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
@ -508,7 +562,7 @@ public class HandlingUnitSpecialServiceImpl extends ServiceImpl<HandlingUnitSpec |
|
|
|
result.setFailedUnitIds(failedUnitIds); |
|
|
|
result.setFailedReasons(failedReasons); |
|
|
|
|
|
|
|
log.warn("部分标签IFS修改WDR失败 - rqrq,失败列表:{}", failedUnitIds); |
|
|
|
log.warn("部分标签IFS修改WDR失败 - rqrq,失败列表:{},错误原因:{}", failedUnitIds, errorReason); |
|
|
|
} else { |
|
|
|
// 未知情况,按全部失败处理 - rqrq |
|
|
|
List<String> failedUnitIds = new ArrayList<>(); |
|
|
|
|