This commit is contained in:
Van0313
2025-06-05 23:57:18 +08:00
parent a1ad742d96
commit 53e23dc29c
2 changed files with 57 additions and 29 deletions

View File

@@ -2026,8 +2026,7 @@ public class JDUtil {
} }
// 按 distributionMark 分组 // 按 distributionMark 分组
Map<String, List<JDOrder>> groupedByDistributionMark = todayOrders.stream() Map<String, List<JDOrder>> groupedByDistributionMark = todayOrders.stream().collect(Collectors.groupingBy(JDOrder::getDistributionMark, Collectors.toList()));
.collect(Collectors.groupingBy(JDOrder::getDistributionMark, Collectors.toList()));
for (Map.Entry<String, List<JDOrder>> entry : groupedByDistributionMark.entrySet()) { for (Map.Entry<String, List<JDOrder>> entry : groupedByDistributionMark.entrySet()) {
String distributionMark = entry.getKey() != null ? entry.getKey() : "未提供"; String distributionMark = entry.getKey() != null ? entry.getKey() : "未提供";
@@ -2038,8 +2037,7 @@ public class JDUtil {
int totalCount = 0; int totalCount = 0;
// 按 modelNumber 再次分组 // 按 modelNumber 再次分组
Map<String, List<JDOrder>> groupedByModel = orders.stream() Map<String, List<JDOrder>> groupedByModel = orders.stream().collect(Collectors.groupingBy(JDOrder::getModelNumber));
.collect(Collectors.groupingBy(JDOrder::getModelNumber));
for (Map.Entry<String, List<JDOrder>> modelEntry : groupedByModel.entrySet()) { for (Map.Entry<String, List<JDOrder>> modelEntry : groupedByModel.entrySet()) {
String modelNumber = modelEntry.getKey(); String modelNumber = modelEntry.getKey();
@@ -2049,34 +2047,73 @@ public class JDUtil {
totalCount += count; totalCount += count;
summaryBuilder.append("型号:").append(modelNumber != null ? modelNumber : "未知") summaryBuilder.append("型号:").append(modelNumber != null ? modelNumber : "未知").append(" 数量:").append(count).append("\n");
.append(" 数量:").append(count).append("\n");
} }
// 添加合计 // 添加合计
summaryBuilder.append("总计:") summaryBuilder.append("总计:").append("\n总数量").append(totalCount);
.append("\n总数量").append(totalCount);
// 发送总统计消息 // 发送总统计消息
//wxUtil.sendTextMessage(fromWxid, "分销标记:" + distributionMark + "\n" + summaryBuilder, 1, fromWxid, true); //wxUtil.sendTextMessage(fromWxid, "分销标记:" + distributionMark + "\n" + summaryBuilder, 1, fromWxid, true);
List<JDOrder> sortedOrders = orders.stream() List<JDOrder> sortedOrders = orders.stream().sorted(Comparator.comparing(JDOrder::getRemark, Comparator.nullsFirst(String::compareTo))).toList();
.sorted(Comparator.comparing(JDOrder::getRemark, Comparator.nullsFirst(String::compareTo)))
.toList();
// 发送详细订单列表 // 发送详细订单列表
StringBuilder detailBuilder = new StringBuilder(); StringBuilder detailBuilder = new StringBuilder();
for (JDOrder order : sortedOrders) { for (JDOrder order : sortedOrders) {
detailBuilder.append("单:").append(order.getRemark() != null ? order.getRemark() : "未提供") detailBuilder.append("单:").append(order.getRemark() != null ? order.getRemark() : "未提供").append("\n型号").append(order.getModelNumber() != null ? order.getModelNumber() : "未提供").append("\n下单付款").append(order.getPaymentAmount() != null ? String.format("%.2f", order.getPaymentAmount()) : "0.00").append("").append("\n后返金额").append(order.getRebateAmount() != null ? String.format("%.2f", order.getRebateAmount()) : "0.00").append("").append("\n地址").append(order.getAddress() != null ? order.getAddress() : "未提供").append("\n物流链接").append(order.getLogisticsLink() != null ? order.getLogisticsLink() : "").append("\n────────────\n");
.append("\n型号").append(order.getModelNumber() != null ? order.getModelNumber() : "未提供")
.append("\n下单付款").append(order.getPaymentAmount() != null ? String.format("%.2f", order.getPaymentAmount()) : "0.00").append("")
.append("\n后返金额").append(order.getRebateAmount() != null ? String.format("%.2f", order.getRebateAmount()) : "0.00").append("")
.append("\n地址").append(order.getAddress() != null ? order.getAddress() : "未提供")
.append("\n物流链接").append(order.getLogisticsLink() != null ? order.getLogisticsLink() : "")
.append("\n────────────\n");
} }
// 发送详细订单消息 // 发送详细订单消息
wxUtil.sendTextMessage(fromWxid, "分销标记:" + distributionMark + "\n" + summaryBuilder + "\n────────────\n" + detailBuilder, 1, fromWxid, true); wxUtil.sendTextMessage(fromWxid, "分销标记:" + distributionMark + "\n" + summaryBuilder + "\n────────────\n" + detailBuilder, 1, fromWxid, true);
} }
} else if (input.equals("录单")) {
// 获取今天的日期
LocalDateTime today = LocalDateTime.now();
if (today.getHour() < 8) {
// 如果当前时间在早上8点之前则获取昨天的日期
today = today.minusDays(1);
}
LocalDateTime startOfDay = today.withHour(0).withMinute(0).withSecond(0).withNano(0);
LocalDateTime endOfDay = today.withHour(23).withMinute(59).withSecond(59).withNano(999999999);
// 将 LocalDateTime 转换为 Date
Date startDate = Date.from(startOfDay.atZone(ZoneId.systemDefault()).toInstant());
Date endDate = Date.from(endOfDay.atZone(ZoneId.systemDefault()).toInstant());
List<JDOrder> todayOrders = jdOrderRepository.findByOrderTimeBetween(startDate, endDate);
if (todayOrders.isEmpty()) {
wxUtil.sendTextMessage(fromWxid, "今天没有订单。", 1, fromWxid, false);
return;
}
// 按每份20单切割并发送
int batchSize = 20;
int totalOrderCount = todayOrders.size();
for (int i = 0; i < totalOrderCount; i += batchSize) {
int endIndex = Math.min(i + batchSize, totalOrderCount);
List<JDOrder> batchOrders = todayOrders.subList(i, endIndex);
StringBuilder batchSb = new StringBuilder();
for (JDOrder jdOrder : batchOrders) {
String distributionMark = jdOrder.getDistributionMark();
String distributionMark2 = "";
if (distributionMark != null) {
if (distributionMark.startsWith("H")) {
distributionMark2 = "鸿";
} else if (distributionMark.startsWith("F")) {
distributionMark2 = "";
}
}
batchSb.append(jdOrder.getRemark()).append("\t").append(jdOrder.getOrderId()).append("\t").append(DateUtil.dateToStr(jdOrder.getOrderTime(), "yyyy-MM-dd")).append("\t").append(jdOrder.getModelNumber()).append("\t").append(jdOrder.getAddress()).append("\t").append(jdOrder.getLogisticsLink()).append("\t\t").append(jdOrder.getBuyer()).append("\t").append(jdOrder.getPaymentAmount()).append("\t").append(jdOrder.getRebateAmount()).append("\t").append(distributionMark2).append("\n");
}
// 发送每批次的订单信息
wxUtil.sendTextMessage(fromWxid, batchSb.toString(), 1, null, true);
}
} else { } else {
// 生成当前日期 // 生成当前日期
JDOrder jdOrder = parseOrderFromText(input.trim().replace("", "")); JDOrder jdOrder = parseOrderFromText(input.trim().replace("", ""));
@@ -2109,16 +2146,7 @@ public class JDUtil {
distributionMark2 = ""; distributionMark2 = "";
} }
} }
sb.append(jdOrder.getRemark()).append("\t") sb.append(jdOrder.getRemark()).append("\t").append(jdOrder.getOrderId()).append("\t").append(DateUtil.dateToStr(jdOrder.getOrderTime(), "yyyy-MM-dd")).append("\t").append(jdOrder.getModelNumber()).append("\t").append(jdOrder.getAddress()).append("\t").append(jdOrder.getLogisticsLink()).append("\t\t").append(jdOrder.getBuyer()).append("\t").append(jdOrder.getPaymentAmount()).append("\t").append(jdOrder.getRebateAmount()).append("\t").append(distributionMark2);
.append(jdOrder.getOrderId()).append("\t")
.append(DateUtil.dateToStr(jdOrder.getOrderTime(), "yyyy-MM-dd")).append("\t")
.append(jdOrder.getModelNumber()).append("\t")
.append(jdOrder.getAddress()).append("\t")
.append(jdOrder.getLogisticsLink()).append("\t\t")
.append(jdOrder.getBuyer()).append("\t")
.append(jdOrder.getPaymentAmount()).append("\t")
.append(jdOrder.getRebateAmount()).append("\t")
.append(distributionMark2);
logger.info("订单信息:{}", sb); logger.info("订单信息:{}", sb);
if (fromWxid.isEmpty()) { if (fromWxid.isEmpty()) {

View File

@@ -112,7 +112,7 @@ public class WxMessageConsumer {
} }
// 录单群 // 录单群
if (fromWxid.equals(chatRoom_JD_Order)){ if (fromWxid.equals(chatRoom_JD_Order)){
if (msg.startsWith("") || msg.equals("慢单")) { if (msg.startsWith("") || msg.equals("慢单") || msg.equals("录单")) {
//logger.info("录单"); //logger.info("录单");
jdUtils.LD(msg, fromWxid); jdUtils.LD(msg, fromWxid);
return; return;