Browse Source

字典类型转换

yl 8 tháng trước cách đây
mục cha
commit
1fb48f31f3

+ 14 - 8
cpp-admin/src/main/java/com/cpp/web/service/accuracy/impl/AccuracyPassRateServiceImpl.java

@@ -2,12 +2,14 @@ package com.cpp.web.service.accuracy.impl;
 
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.cpp.system.service.ISysDictDataService;
 import com.cpp.web.domain.accuracy.AccuracyPassRate;
 import com.cpp.web.domain.enums.DataSourcesEnum;
 import com.cpp.web.domain.enums.ForecastTypeEnum;
 import com.cpp.web.mapper.accuracy.AccuracyPassRateMapper;
 import com.cpp.web.service.accuracy.AccuracyPassRateService;
 import com.cpp.web.utils.StartAndEndMonthUtil;
+import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 
 import java.math.BigDecimal;
@@ -26,7 +28,8 @@ import java.util.stream.Collectors;
 @Service
 public class AccuracyPassRateServiceImpl extends ServiceImpl<AccuracyPassRateMapper, AccuracyPassRate> implements AccuracyPassRateService {
 
-
+    @Autowired
+    private ISysDictDataService dictDataService;
     @Override
     public List<AccuracyPassRate> findByTimeBetweenAndForecastTypeAndDataSourcesAndAgoAndForecastModelAndStationCode(Date startTime, Date endTime, ForecastTypeEnum forecastType, DataSourcesEnum dataSources, Integer ago, String forecastModel, String stationCode) {
         QueryWrapper<AccuracyPassRate> wrapper = new QueryWrapper<>();
@@ -98,14 +101,19 @@ public class AccuracyPassRateServiceImpl extends ServiceImpl<AccuracyPassRateMap
                             AccuracyPassRate::getForecastModel,
                             Collectors.averagingDouble(apr -> stringToDouble.apply(apr.getAccuracy()))
                     ));
-
+            Map<String, Double> updatedAverageByCategory = averageByCategory.entrySet().stream()
+                    .collect(Collectors.toMap(
+                            entry->dictDataService.selectDictLabel("forecast_model",entry.getKey())==null?entry.getKey():dictDataService.selectDictLabel("forecast_model",entry.getKey()),
+                            entry->entry.getValue()
+                    ));
             sortMap = new TreeMap<>(new Comparator<String>() {
                 @Override
                 public int compare(String o1, String o2) {
-                    return averageByCategory.get(o2).compareTo(averageByCategory.get(o1));
+                    return updatedAverageByCategory.get(o2).compareTo(updatedAverageByCategory.get(o1));
                 }
             });
-            sortMap.putAll(averageByCategory);
+
+            sortMap.putAll(updatedAverageByCategory);
 
         }
         return sortMap;
@@ -114,7 +122,6 @@ public class AccuracyPassRateServiceImpl extends ServiceImpl<AccuracyPassRateMap
     @Override
     public List<Map<String,String>> finfBySingleMonthBetweenAndForecastTypeAndStationCode(Long startTime, Long endTime, ForecastTypeEnum forecastType, DataSourcesEnum dataSources, String stationCode,String stationName,String uploadDataSources) {
         List<Map<String,String>> list = new ArrayList<>();
-
         List<long[]> longs = StartAndEndMonthUtil.singleMonth(startTime, endTime);
         Collections.reverse(longs);
 
@@ -142,8 +149,7 @@ public class AccuracyPassRateServiceImpl extends ServiceImpl<AccuracyPassRateMap
                 wrapper2.orderByDesc("time");
             }
             List<AccuracyPassRate> accuracyPassRateList = baseMapper.selectList(wrapper);
-            System.out.println("---------------");
-            System.out.println(accuracyPassRateList);
+
             List<AccuracyPassRate> accuracyPassRateList2 = baseMapper.selectList(wrapper2);
 
             accuracyPassRateList = accuracyPassRateList.stream().filter(f -> !"无可用数据计算".equals(f.getAccuracy()) && !"无计算公式".equals(f.getAccuracy())).collect(Collectors.toList());
@@ -176,7 +182,7 @@ public class AccuracyPassRateServiceImpl extends ServiceImpl<AccuracyPassRateMap
                 Map<String,String> map = new HashMap<>();
                 map.put("station",stationName);
                 map.put("month",new SimpleDateFormat("yyyy-MM").format(new Date(aLong[0])));
-                map.put("preModels",entry.getKey());
+                map.put("preModels",dictDataService.selectDictLabel("forecast_model",entry.getKey())==null?entry.getKey():dictDataService.selectDictLabel("forecast_model",entry.getKey()));
                 map.put("shortAccuracy",BigDecimal.valueOf(entry.getValue()).setScale(2, RoundingMode.HALF_UP).toString());
                 map.put("uploadShortAccuracy",collect.toString());
                 map.put("accuracyRanking",String.valueOf(++count));