This commit is contained in:
Van0313
2025-06-02 00:08:33 +08:00
parent 24c196c8a3
commit 794f797a20

View File

@@ -2008,7 +2008,7 @@ public class JDUtil {
// 获取今天的日期 // 获取今天的日期
LocalDateTime today = LocalDateTime.now(); LocalDateTime today = LocalDateTime.now();
if (today.getHour() < 8) { if (today.getHour() < 8) {
// 获取昨天的日期 // 如果当前时间在早上8点之前获取昨天的日期
today = today.minusDays(1); today = today.minusDays(1);
} }
LocalDateTime startOfDay = today.withHour(0).withMinute(0).withSecond(0).withNano(0); LocalDateTime startOfDay = today.withHour(0).withMinute(0).withSecond(0).withNano(0);
@@ -2024,9 +2024,14 @@ public class JDUtil {
wxUtil.sendTextMessage(fromWxid, "今天没有订单。", 1, fromWxid, false); wxUtil.sendTextMessage(fromWxid, "今天没有订单。", 1, fromWxid, false);
return; return;
} }
// 先按 modelNumber 分组
Map<String, List<JDOrder>> groupedByModel = todayOrders.stream() // 按 remark 分组
.collect(Collectors.groupingBy(JDOrder::getModelNumber)); Map<String, List<JDOrder>> groupedByRemark = todayOrders.stream()
.collect(Collectors.groupingBy(JDOrder::getRemark, Collectors.toList()));
for (Map.Entry<String, List<JDOrder>> entry : groupedByRemark.entrySet()) {
String remark = entry.getKey() != null ? entry.getKey() : "未提供";
List<JDOrder> orders = entry.getValue();
// 总统计信息 // 总统计信息
StringBuilder summaryBuilder = new StringBuilder(); StringBuilder summaryBuilder = new StringBuilder();
@@ -2034,13 +2039,17 @@ public class JDUtil {
double totalRebate = 0; double totalRebate = 0;
int totalCount = 0; int totalCount = 0;
for (Map.Entry<String, List<JDOrder>> entry : groupedByModel.entrySet()) { // 按 modelNumber 再次分组
String modelNumber = entry.getKey(); Map<String, List<JDOrder>> groupedByModel = orders.stream()
List<JDOrder> orders = entry.getValue(); .collect(Collectors.groupingBy(JDOrder::getModelNumber));
int count = orders.size(); for (Map.Entry<String, List<JDOrder>> modelEntry : groupedByModel.entrySet()) {
double paymentSum = orders.stream().mapToDouble(order -> order.getPaymentAmount() != null ? order.getPaymentAmount() : 0.0).sum(); String modelNumber = modelEntry.getKey();
double rebateSum = orders.stream().mapToDouble(order -> order.getRebateAmount() != null ? order.getRebateAmount() : 0.0).sum(); List<JDOrder> modelOrders = modelEntry.getValue();
int count = modelOrders.size();
double paymentSum = modelOrders.stream().mapToDouble(order -> order.getPaymentAmount() != null ? order.getPaymentAmount() : 0.0).sum();
double rebateSum = modelOrders.stream().mapToDouble(order -> order.getRebateAmount() != null ? order.getRebateAmount() : 0.0).sum();
totalPayment += paymentSum; totalPayment += paymentSum;
totalRebate += rebateSum; totalRebate += rebateSum;
@@ -2060,13 +2069,11 @@ public class JDUtil {
.append("\n总后返金额").append(String.format("%.2f", totalRebate)).append(""); .append("\n总后返金额").append(String.format("%.2f", totalRebate)).append("");
// 发送总统计消息 // 发送总统计消息
wxUtil.sendTextMessage(fromWxid, summaryBuilder.toString(), 1, fromWxid, true); wxUtil.sendTextMessage(fromWxid, "分销标记:" + remark + "\n" + summaryBuilder, 1, fromWxid, true);
// 发送详细订单列表(按 remark 排序) // 发送详细订单列表
StringBuilder detailBuilder = new StringBuilder(); StringBuilder detailBuilder = new StringBuilder();
todayOrders.sort(Comparator.comparing(JDOrder::getRemark, Comparator.nullsLast(String::compareTo))); for (JDOrder order : orders) {
for (JDOrder order : todayOrders) {
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.getModelNumber() != null ? order.getModelNumber() : "未提供")
.append("\n下单付款").append(order.getPaymentAmount() != null ? String.format("%.2f", order.getPaymentAmount()) : "0.00").append("") .append("\n下单付款").append(order.getPaymentAmount() != null ? String.format("%.2f", order.getPaymentAmount()) : "0.00").append("")
@@ -2077,7 +2084,8 @@ public class JDUtil {
} }
// 发送详细订单消息 // 发送详细订单消息
wxUtil.sendTextMessage(fromWxid, detailBuilder.toString(), 1, fromWxid, true); wxUtil.sendTextMessage(fromWxid, "备注:" + remark + "\n" + detailBuilder, 1, fromWxid, true);
}
} else { } else {
// 生成当前日期 // 生成当前日期
JDOrder jdOrder = parseOrderFromText(input.trim().replace("", "")); JDOrder jdOrder = parseOrderFromText(input.trim().replace("", ""));