录单
This commit is contained in:
@@ -2004,89 +2004,87 @@ public class JDUtil {
|
|||||||
}
|
}
|
||||||
|
|
||||||
public void LD(String input, String fromWxid) {
|
public void LD(String input, String fromWxid) {
|
||||||
if (input.equals("慢单")) {
|
if (input.equals("慢单")) {
|
||||||
// 获取今天的日期
|
// 获取今天的日期
|
||||||
LocalDateTime today = LocalDateTime.now();
|
LocalDateTime today = LocalDateTime.now();
|
||||||
if (today.getHour() < 8) {
|
if (today.getHour() < 8) {
|
||||||
// 如果当前时间在早上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);
|
||||||
LocalDateTime endOfDay = today.withHour(23).withMinute(59).withSecond(59).withNano(999999999);
|
LocalDateTime endOfDay = today.withHour(23).withMinute(59).withSecond(59).withNano(999999999);
|
||||||
|
|
||||||
// 将 LocalDateTime 转换为 Date
|
// 将 LocalDateTime 转换为 Date
|
||||||
Date startDate = Date.from(startOfDay.atZone(ZoneId.systemDefault()).toInstant());
|
Date startDate = Date.from(startOfDay.atZone(ZoneId.systemDefault()).toInstant());
|
||||||
Date endDate = Date.from(endOfDay.atZone(ZoneId.systemDefault()).toInstant());
|
Date endDate = Date.from(endOfDay.atZone(ZoneId.systemDefault()).toInstant());
|
||||||
|
|
||||||
List<JDOrder> todayOrders = jdOrderRepository.findByOrderTimeBetween(startDate, endDate);
|
List<JDOrder> todayOrders = jdOrderRepository.findByOrderTimeBetween(startDate, endDate);
|
||||||
|
|
||||||
if (todayOrders.isEmpty()) {
|
if (todayOrders.isEmpty()) {
|
||||||
wxUtil.sendTextMessage(fromWxid, "今天没有订单。", 1, fromWxid, false);
|
wxUtil.sendTextMessage(fromWxid, "今天没有订单。", 1, fromWxid, false);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
// 按 remark 分组
|
// 按 distributionMark 分组
|
||||||
Map<String, List<JDOrder>> groupedByRemark = todayOrders.stream()
|
Map<String, List<JDOrder>> groupedByDistributionMark = todayOrders.stream()
|
||||||
.collect(Collectors.groupingBy(JDOrder::getRemark, Collectors.toList()));
|
.collect(Collectors.groupingBy(JDOrder::getDistributionMark, Collectors.toList()));
|
||||||
|
|
||||||
for (Map.Entry<String, List<JDOrder>> entry : groupedByRemark.entrySet()) {
|
for (Map.Entry<String, List<JDOrder>> entry : groupedByDistributionMark.entrySet()) {
|
||||||
String remark = entry.getKey() != null ? entry.getKey() : "未提供";
|
String distributionMark = entry.getKey() != null ? entry.getKey() : "未提供";
|
||||||
List<JDOrder> orders = entry.getValue();
|
List<JDOrder> orders = entry.getValue();
|
||||||
|
|
||||||
// 总统计信息
|
// 总统计信息
|
||||||
StringBuilder summaryBuilder = new StringBuilder();
|
StringBuilder summaryBuilder = new StringBuilder();
|
||||||
double totalPayment = 0;
|
double totalPayment = 0;
|
||||||
double totalRebate = 0;
|
double totalRebate = 0;
|
||||||
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();
|
||||||
List<JDOrder> modelOrders = modelEntry.getValue();
|
List<JDOrder> modelOrders = modelEntry.getValue();
|
||||||
|
|
||||||
int count = modelOrders.size();
|
int count = modelOrders.size();
|
||||||
double paymentSum = modelOrders.stream().mapToDouble(order -> order.getPaymentAmount() != null ? order.getPaymentAmount() : 0.0).sum();
|
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();
|
double rebateSum = modelOrders.stream().mapToDouble(order -> order.getRebateAmount() != null ? order.getRebateAmount() : 0.0).sum();
|
||||||
|
|
||||||
totalPayment += paymentSum;
|
totalPayment += paymentSum;
|
||||||
totalRebate += rebateSum;
|
totalRebate += rebateSum;
|
||||||
totalCount += count;
|
totalCount += count;
|
||||||
|
|
||||||
summaryBuilder.append("型号:").append(modelNumber != null ? modelNumber : "未知")
|
summaryBuilder.append("型号:").append(modelNumber != null ? modelNumber : "未知")
|
||||||
.append("\n数量:").append(count)
|
.append("\n数量:").append(count)
|
||||||
.append("\n下单金额:").append(String.format("%.2f", paymentSum)).append(" 元")
|
.append("\n────────────\n\n");
|
||||||
.append("\n后返金额:").append(String.format("%.2f", rebateSum)).append(" 元")
|
}
|
||||||
.append("\n────────────\n\n");
|
|
||||||
}
|
|
||||||
|
|
||||||
// 添加合计
|
// 添加合计
|
||||||
summaryBuilder.append("总计:")
|
summaryBuilder.append("总计:")
|
||||||
.append("\n总数量:").append(totalCount)
|
.append("\n总数量:").append(totalCount);
|
||||||
.append("\n总下单金额:").append(String.format("%.2f", totalPayment)).append(" 元")
|
|
||||||
.append("\n总后返金额:").append(String.format("%.2f", totalRebate)).append(" 元");
|
|
||||||
|
|
||||||
// 发送总统计消息
|
// 发送总统计消息
|
||||||
wxUtil.sendTextMessage(fromWxid, "分销标记:" + remark + "\n" + summaryBuilder, 1, fromWxid, true);
|
wxUtil.sendTextMessage(fromWxid, "分销标记:" + distributionMark + "\n" + summaryBuilder, 1, fromWxid, true);
|
||||||
|
|
||||||
// 发送详细订单列表
|
// 发送详细订单列表
|
||||||
StringBuilder detailBuilder = new StringBuilder();
|
StringBuilder detailBuilder = new StringBuilder();
|
||||||
for (JDOrder order : orders) {
|
for (JDOrder order : orders) {
|
||||||
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(" 元")
|
||||||
.append("\n后返金额:").append(order.getRebateAmount() != null ? String.format("%.2f", order.getRebateAmount()) : "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.getAddress() != null ? order.getAddress() : "未提供")
|
||||||
.append("\n物流链接:").append(order.getLogisticsLink() != null ? order.getLogisticsLink() : "无")
|
.append("\n物流链接:").append(order.getLogisticsLink() != null ? order.getLogisticsLink() : "无")
|
||||||
.append("\n────────────\n");
|
.append("\n────────────\n");
|
||||||
}
|
}
|
||||||
|
|
||||||
// 发送详细订单消息
|
// 发送详细订单消息
|
||||||
wxUtil.sendTextMessage(fromWxid, "备注:" + remark + "\n" + detailBuilder, 1, fromWxid, true);
|
wxUtil.sendTextMessage(fromWxid, "分销标记:" + distributionMark + "\n" + detailBuilder.toString(), 1, fromWxid, true);
|
||||||
}
|
}
|
||||||
} else {
|
}
|
||||||
|
|
||||||
|
else {
|
||||||
// 生成当前日期
|
// 生成当前日期
|
||||||
JDOrder jdOrder = parseOrderFromText(input.trim().replace("元", ""));
|
JDOrder jdOrder = parseOrderFromText(input.trim().replace("元", ""));
|
||||||
if (jdOrder.getOrderId() == null) {
|
if (jdOrder.getOrderId() == null) {
|
||||||
|
|||||||
Reference in New Issue
Block a user