zxl
2026-03-25 963a8c24874c2e10a329a6ea39774bc5eda0f762
jyz-base-start/src/main/java/com/tievd/jyz/entity/vo/DataStatisReqVo.java
@@ -58,6 +58,12 @@
    
    @Schema(description = "HOURS, DAYS, MONTHS")
    private StatUnit timeUnit = StatUnit.HOURS;
    @Schema(description = "趋势图点位时间")
    private String statTime;
    @Schema(description = "趋势图系列名称")
    private String seriesName;
    
    private DataStatisReqVo setTimeUnit(String timeUnit){
        this.timeUnit = StatUnit.valueOf(timeUnit);
@@ -102,12 +108,20 @@
    }
    
    public enum TrendType {
        TRAFFIC(1, StatDataTableVo::getCarCount, StatDataTableVo::getEntryRate, "车流量", "拐入率"),
        OIL(2, StatDataTableVo::getOilCount, StatDataTableVo::getOilVolume, "加油数", "油品销量"),
        OIL_vOLUME(3, StatDataTableVo::getOilVolume, t -> 100 * (t.getOilVolume() - t.getPreStatVo().getOilVolume()) / (t.getPreStatVo().getOilVolume() + 1), "油品销量", "环比"),
        SPAND_AVG(4, StatDataTableVo::getSpandAvg, t -> 100 * (t.getSpandAvg() - t.getPreStatVo().getSpandAvg()) / (t.getPreStatVo().getSpandAvg() + 1), "通过率", "环比"),
        CLIENT(5, null),
        LOSE_CLIENT(6, null);
        TRAFFIC(0, StatDataTableVo::getCarCount, StatDataTableVo::getEntryRate, "车流量", "拐入率"),
        OIL(1, StatDataTableVo::getOilCount, StatDataTableVo::getOilVolume, "加油数", "油品销量"),
        OIL_vOLUME(2, StatDataTableVo::getOilVolume, t -> 100 * (t.getOilVolume() - t.getPreStatVo().getOilVolume()) / (t.getPreStatVo().getOilVolume() + 1), "油品销量", "环比"),
        SPAND_AVG(3, StatDataTableVo::getSpandAvg, t -> 100 * (t.getSpandAvg() - t.getPreStatVo().getSpandAvg()) / (t.getPreStatVo().getSpandAvg() + 1), "通过率", "环比"),
        CLIENT(4, null),
        LOSE_CLIENT(5, null),
        SALES_AMOUNT(6, StatDataTableVo::getTotalAmount, t -> {
            java.math.BigDecimal current = t.getTotalAmount();
            java.math.BigDecimal previous = t.getPreStatVo().getTotalAmount();
            if (previous.compareTo(java.math.BigDecimal.ZERO) == 0) {
                return java.math.BigDecimal.ZERO;
            }
            return current.subtract(previous).multiply(new java.math.BigDecimal(100)).divide(previous, 2, java.math.RoundingMode.HALF_UP);
        }, "销售金额", "环比");
        
        int val;