This commit is contained in:
van
2026-07-28 19:12:04 +08:00
parent 941b7f0ae6
commit f94cd3e4cd
3 changed files with 39 additions and 6 deletions

View File

@@ -1,9 +1,14 @@
package com.ruoyi.jarvis.enums;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Collections;
import java.util.HashMap;
import java.util.HashSet;
import java.util.List;
import java.util.Map;
import java.util.Set;
import java.util.stream.Collectors;
/**
* @author Leo
@@ -13,6 +18,16 @@ import java.util.Map;
public class ValidCodeConverter {
private static final Map<Integer, String> codeDescriptions = new HashMap<>();
/** 违规订单 validCode13、25-28、36-43 */
public static final Set<Integer> ILLEGAL_CODES = Collections.unmodifiableSet(new HashSet<>(Arrays.asList(
13, 25, 26, 27, 28, 36, 37, 38, 39, 40, 41, 42, 43
)));
/** 无效订单 validCode不含取消 3 */
public static final Set<Integer> INVALID_CODES = Collections.unmodifiableSet(new HashSet<>(Arrays.asList(
2, 4, 5, 6, 7, 8, 9, 11, 14, 19, 20, 21, 22, 23, 29, 30, 31, 33, 34, 35, 44
)));
static {
codeDescriptions.put(-100, "无变化");
codeDescriptions.put(-1, "未知");
@@ -45,6 +60,24 @@ public class ValidCodeConverter {
codeDescriptions.put(31, "无效-黑名单sku");
codeDescriptions.put(33, "超市卡充值订单");
codeDescriptions.put(34, "无效-推卡订单无效");
codeDescriptions.put(35, "无效-非CID订单");
codeDescriptions.put(36, "违规订单-账户绑定有误");
codeDescriptions.put(37, "违规订单-利用京东域内流量推广");
codeDescriptions.put(38, "违规订单-利用短信形式推广");
codeDescriptions.put(39, "违规订单-推广京东首页");
codeDescriptions.put(40, "违规订单-refer与备案信息不符");
codeDescriptions.put(41, "违规订单-用户交易异常");
codeDescriptions.put(42, "违规订单-批量下单");
codeDescriptions.put(43, "违规订单-超过类目上限");
codeDescriptions.put(44, "不计佣订单");
}
public static boolean isIllegal(Integer code) {
return code != null && ILLEGAL_CODES.contains(code);
}
public static List<String> toCodeStrings(Set<Integer> codes) {
return codes.stream().map(String::valueOf).sorted().collect(Collectors.toList());
}
/**

View File

@@ -4,6 +4,7 @@ import com.ruoyi.jarvis.domain.OrderRows;
import com.ruoyi.jarvis.domain.JDOrder;
import com.ruoyi.jarvis.domain.SuperAdmin;
import com.ruoyi.jarvis.domain.WeComShareLinkLogisticsJob;
import com.ruoyi.jarvis.enums.ValidCodeConverter;
import com.ruoyi.jarvis.service.IInstructionService;
import com.ruoyi.jarvis.service.IOrderRowsService;
import com.ruoyi.jarvis.service.IJDOrderService;
@@ -2170,11 +2171,11 @@ public class InstructionServiceImpl implements IInstructionService {
long pending = rows.stream().filter(o -> Integer.valueOf(15).equals(o.getValidCode())).count();
long completed = rows.stream().filter(o -> Integer.valueOf(17).equals(o.getValidCode())).count();
long canceled = rows.stream().filter(o -> o.getValidCode() != null && o.getValidCode() != 16 && o.getValidCode() != 17).count();
long violation = rows.stream().filter(o -> o.getValidCode() != null && (o.getValidCode() == 13 || o.getValidCode() == 25 || o.getValidCode() == 26 || o.getValidCode() == 27 || o.getValidCode() == 28 || o.getValidCode() == 29)).count();
long violation = rows.stream().filter(o -> ValidCodeConverter.isIllegal(o.getValidCode())).count();
double paidCommission = rows.stream().filter(o -> Integer.valueOf(16).equals(o.getValidCode()) && o.getEstimateFee() != null).mapToDouble(OrderRows::getEstimateFee).sum();
double pendingCommission = rows.stream().filter(o -> Integer.valueOf(15).equals(o.getValidCode()) && o.getEstimateFee() != null).mapToDouble(OrderRows::getEstimateFee).sum();
double completedCommission = rows.stream().filter(o -> Integer.valueOf(17).equals(o.getValidCode()) && o.getEstimateFee() != null).mapToDouble(OrderRows::getEstimateFee).sum();
double violationCommission = rows.stream().filter(o -> o.getValidCode() != null && (o.getValidCode() == 13 || o.getValidCode() == 25 || o.getValidCode() == 26 || o.getValidCode() == 27 || o.getValidCode() == 28 || o.getValidCode() == 29) && o.getEstimateCosPrice() != null && o.getCommissionRate() != null).mapToDouble(o -> o.getEstimateCosPrice() * o.getCommissionRate() * 0.01).sum();
double violationCommission = rows.stream().filter(o -> ValidCodeConverter.isIllegal(o.getValidCode()) && o.getEstimateCosPrice() != null && o.getCommissionRate() != null).mapToDouble(o -> o.getEstimateCosPrice() * o.getCommissionRate() * 0.01).sum();
StringBuilder sb = new StringBuilder();
sb.append("* ").append(title).append(" *\n").append("━━━━━━━━━━━━\n").append("订单总数:").append(total).append("\n").append("有效订单:").append(total - canceled).append("\n").append("已取消:").append(canceled).append("\n").append("────────────\n").append("已付款:").append(paid).append("\n").append("已付款佣金:").append(fmt(paidCommission)).append("\n").append("────────────\n").append("待付款:").append(pending).append("\n").append("待付款佣金:").append(fmt(pendingCommission)).append("\n").append("────────────\n").append("已完成:").append(completed).append("\n").append("已完成佣金:").append(fmt(completedCommission)).append("\n").append("────────────\n").append("违规订单:").append(violation).append("\n").append("违规佣金:").append(fmt(violationCommission)).append("\n").append("━━━━━━━━━━━━");