This commit is contained in:
van
2026-03-31 11:50:12 +08:00
parent 312a068bd3
commit 9f3fb23a91

View File

@@ -657,7 +657,19 @@ public class InstructionServiceImpl implements IInstructionService {
return outputs.isEmpty() ? Collections.singletonList("无数据") : outputs;
}
if (input.startsWith("")) {
return Collections.singletonList(handleDanWriteDb(input, forceGenerate, isFromConsole));
String primary = handleDanWriteDb(input, forceGenerate, isFromConsole);
String norm = input.trim().replace("", "");
if (isNewOrderFormInput(norm)) {
JDOrder parsedForSummary = parseOrderFromText(norm);
String compact = buildNewFormDanCompactSummary(parsedForSummary);
if (compact != null) {
List<String> two = new ArrayList<>(2);
two.add(primary);
two.add(compact);
return two;
}
}
return Collections.singletonList(primary);
}
return Collections.singletonList(helpText());
}
@@ -1284,6 +1296,48 @@ public class InstructionServiceImpl implements IInstructionService {
return s.replaceAll("[\\t ]+", " ").replaceAll("\n{3,}", "\n\n").trim();
}
/** 是否与录单表单新模板一致(与 {@link #formatOrderForm} 中判断一致) */
private boolean isNewOrderFormInput(String originalInput) {
if (originalInput == null) {
return false;
}
return originalInput.contains("—————————")
|| originalInput.contains("下单链接(必须用这个):")
|| originalInput.contains("下单地址(注意带分机):")
|| originalInput.contains("下单人(需填):")
|| originalInput.contains("下单付款(注意核对):")
|| originalInput.contains("后返金额(注意核对):")
|| originalInput.contains("订单号(需填):")
|| originalInput.contains("物流链接(需填):")
|| originalInput.contains("备注(下单号码有变动/没法带分机号的写这里):");
}
/**
* 新模板录单时追加的精简文案:型号、地址、物流(物流为主链接,与解析入库一致)。
*/
private String buildNewFormDanCompactSummary(JDOrder order) {
if (order == null) {
return null;
}
String model = order.getModelNumber();
String address = order.getAddress();
String logistics = order.getLogisticsLink();
if (isEmpty(model) && isEmpty(address) && isEmpty(logistics)) {
return null;
}
StringBuilder sb = new StringBuilder();
if (!isEmpty(model)) {
sb.append("型号:").append(model.trim()).append('\n');
}
if (!isEmpty(address)) {
sb.append("地址:").append(normalizeWhitespace(address.trim())).append('\n');
}
if (!isEmpty(logistics)) {
sb.append("物流:").append(logistics.trim());
}
return sb.toString().trim();
}
// ===== "单 …" 写库 =====
private String handleDanWriteDb(String input) {
return handleDanWriteDb(input, false, false);
@@ -1436,19 +1490,8 @@ public class InstructionServiceImpl implements IInstructionService {
* @param originalInput 原始输入文本,用于提取完整的物流链接
*/
private String formatOrderForm(JDOrder order, String originalInput) {
// 检测是否是新格式(包含分隔线"—————————"或新格式字段标签)
boolean isNewFormat = originalInput != null && (
originalInput.contains("—————————") ||
originalInput.contains("下单链接(必须用这个):") ||
originalInput.contains("下单地址(注意带分机):") ||
originalInput.contains("下单人(需填):") ||
originalInput.contains("下单付款(注意核对):") ||
originalInput.contains("后返金额(注意核对):") ||
originalInput.contains("订单号(需填):") ||
originalInput.contains("物流链接(需填):") ||
originalInput.contains("备注(下单号码有变动/没法带分机号的写这里):")
);
boolean isNewFormat = isNewOrderFormInput(originalInput);
if (isNewFormat) {
return formatOrderFormNew(order, originalInput);
} else {