录单
This commit is contained in:
@@ -1707,7 +1707,7 @@ public class JDUtil {
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (order == null || order.trim().isEmpty()) {
|
if (order.trim().isEmpty()) {
|
||||||
wxUtil.sendTextMessage(fromWxid, "输入格式为:\n 单\n分销标记\n型号\n转链链接\n数量\n地址", 1, fromWxid, false);
|
wxUtil.sendTextMessage(fromWxid, "输入格式为:\n 单\n分销标记\n型号\n转链链接\n数量\n地址", 1, fromWxid, false);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
@@ -1723,7 +1723,7 @@ public class JDUtil {
|
|||||||
// 今天的日期
|
// 今天的日期
|
||||||
String today = LocalDateTime.now().format(DateTimeFormatter.ofPattern("yyyy-MM-dd "));
|
String today = LocalDateTime.now().format(DateTimeFormatter.ofPattern("yyyy-MM-dd "));
|
||||||
String redisKey = "order_count:" + today;
|
String redisKey = "order_count:" + today;
|
||||||
Integer count;
|
int count;
|
||||||
|
|
||||||
try {
|
try {
|
||||||
// 从 Redis 获取当前日期的订单计数器
|
// 从 Redis 获取当前日期的订单计数器
|
||||||
@@ -1732,9 +1732,9 @@ public class JDUtil {
|
|||||||
|
|
||||||
logger.info("sendOrderToWxByOrderD.count beforeFor {}", count);
|
logger.info("sendOrderToWxByOrderD.count beforeFor {}", count);
|
||||||
|
|
||||||
Integer num = 1;
|
int num = 1;
|
||||||
try {
|
try {
|
||||||
num = Integer.valueOf(split[4].trim());
|
num = Integer.parseInt(split[4].trim());
|
||||||
} catch (NumberFormatException e) {
|
} catch (NumberFormatException e) {
|
||||||
logger.error("sendOrderToWxByOrderD 订单数量格式错误,请输入正确的数字", e);
|
logger.error("sendOrderToWxByOrderD 订单数量格式错误,请输入正确的数字", e);
|
||||||
wxUtil.sendTextMessage(fromWxid, "订单数量格式错误,请输入正确的数字", 1, fromWxid, false);
|
wxUtil.sendTextMessage(fromWxid, "订单数量格式错误,请输入正确的数字", 1, fromWxid, false);
|
||||||
@@ -2070,10 +2070,10 @@ public class JDUtil {
|
|||||||
* @return 解析出的 LocalDate 对象,如果没有带日期则返回 null
|
* @return 解析出的 LocalDate 对象,如果没有带日期则返回 null
|
||||||
*/
|
*/
|
||||||
private LocalDate parseUserDateIfPresent(String input) {
|
private LocalDate parseUserDateIfPresent(String input) {
|
||||||
if ((input.startsWith("慢单")|| input.startsWith("录单")) && !input.startsWith("单")) {
|
if ((input.startsWith("慢单") || input.startsWith("录单")) && !input.startsWith("单")) {
|
||||||
logger.info("开始解析用户输入的日期 {}", input);
|
logger.info("开始解析用户输入的日期 {}", input);
|
||||||
String dateStr = input.replaceAll("慢单|录单", "").trim();
|
String dateStr = input.replaceAll("慢单|录单", "").trim();
|
||||||
logger.info("解析出的日期 {}", dateStr);
|
logger.info("解析出的日期 {}", dateStr);
|
||||||
if (!dateStr.isEmpty()) {
|
if (!dateStr.isEmpty()) {
|
||||||
return getDateFromLD(dateStr);
|
return getDateFromLD(dateStr);
|
||||||
}
|
}
|
||||||
@@ -2291,10 +2291,106 @@ public class JDUtil {
|
|||||||
order.append("单").append("\n").append("H-TF").append("\n").append(modelNumber).append("\n").append(" ").append("\n").append(quantityStr).append("\n").append(address);
|
order.append("单").append("\n").append("H-TF").append("\n").append(modelNumber).append("\n").append(" ").append("\n").append(quantityStr).append("\n").append(address);
|
||||||
sendOrderToWxByOrderD(order.toString(), fromWxid);
|
sendOrderToWxByOrderD(order.toString(), fromWxid);
|
||||||
}
|
}
|
||||||
|
} else if (input.startsWith("H")) {
|
||||||
|
/*
|
||||||
|
* 示例输入:
|
||||||
|
* 陆霭杰[9130]
|
||||||
|
* 19592469028
|
||||||
|
* 广东省 广州市 从化区 太平镇康乐东路苏宁易购 (送前电联13922281001)[9130] 115-12lcs
|
||||||
|
* 提取出:
|
||||||
|
* 型号:115-12lcs
|
||||||
|
* 陆霭杰13068923963广东省 广州市 从化区 太平镇康乐东路苏宁易购 (送前电联13922281001)派送安装联系19592469028转9130
|
||||||
|
*/
|
||||||
|
|
||||||
|
// 按换行符切割输入为数组
|
||||||
|
String[] parts = input.replace("H", "").split("\n");
|
||||||
|
|
||||||
|
if (parts.length < 3) {
|
||||||
|
wxUtil.sendTextMessage(fromWxid, "输入格式不正确,请确保包含三行数据", 1, fromWxid, false);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
// 第一行:姓名 + 编号
|
||||||
|
String nameLine = parts[0].trim(); // 如:陆霭杰[9130]
|
||||||
|
|
||||||
|
// 使用正则表达式提取中文字符作为收件人姓名
|
||||||
|
Pattern namePattern = Pattern.compile("[\\u4E00-\\u9FA5]+");
|
||||||
|
Matcher nameMatcher = namePattern.matcher(nameLine);
|
||||||
|
String name = "13068923963";
|
||||||
|
if (nameMatcher.find()) {
|
||||||
|
name = nameMatcher.group() + name;
|
||||||
|
}
|
||||||
|
|
||||||
|
// 提取编号 [9130]
|
||||||
|
String suffix = "";
|
||||||
|
int suffixStart = nameLine.indexOf('[');
|
||||||
|
int suffixEnd = nameLine.indexOf(']');
|
||||||
|
if (suffixStart != -1 && suffixEnd != -1 && suffixEnd > suffixStart) {
|
||||||
|
suffix = nameLine.substring(suffixStart + 1, suffixEnd); // 获取 [] 中的内容
|
||||||
|
}
|
||||||
|
|
||||||
|
// 第二行:电话号码
|
||||||
|
String phone = parts[1].trim(); // 如:19592469028
|
||||||
|
|
||||||
|
// 第三行:地址 + 型号
|
||||||
|
String addressLine = parts[2].trim(); // 如:广东省 广州市 ... [9130] 115-12lcs
|
||||||
|
|
||||||
|
// 使用正则表达式提取中文字符作为地址主体
|
||||||
|
StringBuilder addressBuilder = new StringBuilder();
|
||||||
|
Pattern pattern = Pattern.compile("[\\u4E00-\\u9FA5]+");
|
||||||
|
Matcher matcher = pattern.matcher(addressLine);
|
||||||
|
|
||||||
|
if (matcher.find()) {
|
||||||
|
addressBuilder.append(matcher.group());
|
||||||
|
}
|
||||||
|
|
||||||
|
for (int i = 3; i < parts.length; i++) {
|
||||||
|
addressBuilder.append(parts[i]);
|
||||||
|
}
|
||||||
|
|
||||||
|
// 提取型号(最后一组非中文字符)
|
||||||
|
String modelNumber = "";
|
||||||
|
String[] addressParts = addressLine.split("\\s+");
|
||||||
|
for (String part : addressParts) {
|
||||||
|
if (!part.matches(".*[\u4E00-\u9FA5].*")) { // 不含中文的字段可能是型号
|
||||||
|
modelNumber = part;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// 清理掉地址中的编号 [9130] 和型号部分
|
||||||
|
String cleanedAddress = addressLine.replaceAll("\\$$.*?\$$", "") // 去除 []
|
||||||
|
.replace(modelNumber, "") // 去除型号
|
||||||
|
.replaceAll("\\s+", " ").trim();
|
||||||
|
|
||||||
|
// 拼接“安装派送联系”字段
|
||||||
|
String deliveryInfo = " 安装派送联系" + phone + "转" + suffix;
|
||||||
|
|
||||||
|
// 最终地址
|
||||||
|
String fullAddress = cleanedAddress + deliveryInfo;
|
||||||
|
|
||||||
|
// 构造最终输出
|
||||||
|
StringBuilder order = new StringBuilder();
|
||||||
|
//单
|
||||||
|
//分销标记
|
||||||
|
//型号
|
||||||
|
//转链链接
|
||||||
|
//数量
|
||||||
|
//地址
|
||||||
|
// 分销标记
|
||||||
|
// 型号
|
||||||
|
// 转链链接
|
||||||
|
// 默认数量为1
|
||||||
|
order.append("单\n")
|
||||||
|
.append("H\n") // 分销标记
|
||||||
|
.append(modelNumber).append("\n") // 型号
|
||||||
|
.append("\n") // 转链链接
|
||||||
|
.append("1\n").append(name).append(fullAddress); // 地址+联系信息
|
||||||
|
|
||||||
|
// 发送给微信
|
||||||
|
sendOrderToWxByOrderD(order.toString(), fromWxid);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user