This commit is contained in:
2025-11-05 19:55:09 +08:00
parent c3bcb3cad1
commit 35efec4acb
5 changed files with 35 additions and 18 deletions

View File

@@ -82,6 +82,10 @@ public class JDOrder extends BaseEntity {
@Excel(name = "第三方单号")
private String thirdPartyOrderNo;
/** 京粉实际价格 */
@Excel(name = "京粉实际价格")
private Double jingfenActualPrice;
}

View File

@@ -625,21 +625,14 @@ private String handleTF(String input) {
* 型号地址电话的处理逻辑不变将10.10 腾锋 JY202510093195 设置成分销标识这个字段比如之前是H-TF现在改成H-TF(10.10 腾锋 JY202510093195)
* */
if (parts.length >= 7) { // 至少需要分销信息(3) + 型号(1) + 数量(1) + 姓名(1) + 电话(1) = 7个字段
// 处理分销标记: 取前3个字段作为分销信息
StringBuilder fenxiaoBuilder = new StringBuilder("H-TF");
StringBuilder extraInfo = new StringBuilder();
for (int i = 0; i < Math.min(3, parts.length); i++) {
if (!parts[i].isEmpty()) {
if (extraInfo.length() > 0) {
extraInfo.append("\t");
}
extraInfo.append(parts[i]);
}
// 处理分销标记: 简化格式只保留H-TF和第三方单号第三方单号已单独存储
// 提取第三方单号第3个字段格式如JY202511051374
String thirdPartyOrderNo = parts.length > 2 ? parts[2].trim() : "";
String fenxiaoInfo = "H-TF";
// 如果第三方单号存在,添加到分销标记中(但保持简短)
if (!thirdPartyOrderNo.isEmpty()) {
fenxiaoInfo = "H-TF(" + thirdPartyOrderNo + ")";
}
if (extraInfo.length() > 0) {
fenxiaoBuilder.append("(").append(extraInfo).append(")");
}
String fenxiaoInfo = fenxiaoBuilder.toString();
// 提取型号第4个字段
String modelNumber = parts[3].replace("\\n", "");
@@ -1206,7 +1199,9 @@ private String handleTF(String input) {
extractField(input, fields, "地址:", "物流链接:");
extractField(input, fields, "物流链接:", "订单号:");
extractField(input, fields, "订单号:", "下单人:");
java.util.regex.Pattern buyerPattern = java.util.regex.Pattern.compile("下单人:\\s*(.*?)\\s*(?=单:|\\Z)", java.util.regex.Pattern.DOTALL);
extractField(input, fields, "下单人:", "京粉实际价格:");
extractField(input, fields, "京粉实际价格:", "");
java.util.regex.Pattern buyerPattern = java.util.regex.Pattern.compile("下单人:\\s*(.*?)\\s*(?=京粉实际价格:|单:|\\Z)", java.util.regex.Pattern.DOTALL);
java.util.regex.Matcher buyerMatcher = buyerPattern.matcher(input);
if (buyerMatcher.find()) {
fields.put("下单人", buyerMatcher.group(1).trim());
@@ -1239,6 +1234,14 @@ private String handleTF(String input) {
order.setLogisticsLink(extractFirstUrl(fields.getOrDefault("物流链接", "")));
order.setOrderId(fields.getOrDefault("订单号", null));
order.setBuyer(fields.getOrDefault("下单人", null));
// 解析京粉实际价格
try {
String jingfenPriceStr = fields.getOrDefault("京粉实际价格", null);
if (jingfenPriceStr != null && !jingfenPriceStr.trim().isEmpty()) {
order.setJingfenActualPrice(Double.parseDouble(jingfenPriceStr.trim()));
}
} catch (Exception ignore) {
}
// 默认参与统计
order.setIsCountEnabled(1);
try {