Ver Fonte

可持续性接口接入真实数据

wukai há 8 meses atrás
pai
commit
ae8cd12cbb

+ 66 - 21
jjt-biz/src/main/java/com/jjt/risk/controller/RiskOtherController.java

@@ -8,10 +8,13 @@ import com.jjt.biz.service.IBizModelDetailService;
 import com.jjt.biz.service.IBizModelService;
 import com.jjt.biz.service.IBizObjMetricsDataService;
 import com.jjt.biz.service.IBizObjMetricsService;
+import com.jjt.biz.vo.HlScoreVO;
 import com.jjt.biz.vo.ScoreVO;
 import com.jjt.common.core.controller.BaseController;
 import com.jjt.common.core.domain.AjaxResult;
 import com.jjt.common.utils.DateUtils;
+import com.jjt.hl.domain.HlScore;
+import com.jjt.hl.service.IHlScoreService;
 import com.jjt.risk.domain.RiskMsConfig;
 import com.jjt.risk.service.IRiskMsConfigService;
 import io.swagger.annotations.Api;
@@ -51,6 +54,8 @@ public class RiskOtherController extends BaseController {
     private IBizObjMetricsDataService dataService;
     @Resource
     private JdbcTemplate jdbcTemplate;
+    @Resource
+    private IHlScoreService hlScoreService;
 
     @ApiOperation("模型列表")
     @GetMapping(value = "/model/list")
@@ -214,34 +219,74 @@ public class RiskOtherController extends BaseController {
     @GetMapping(value = "/server")
     public AjaxResult server() {
         Map<String, Object> result = new HashMap<>(16);
-        List<ScoreVO> list = new ArrayList<>();
-        List<Map<String, Object>> topList = new ArrayList<>();
-        String[] names = {"市场服务", "市场出清", "信息发布", "市场合规", "市场结算"};
-        for (int i = 0; i < names.length; i++) {
-            Map<String, Object> map = new HashMap<>(16);
-            map.put("name", names[i]);
-            map.put("score", Float.valueOf(new Random().nextInt(50) + 50));
-            topList.add(map);
+        List<ScoreVO> scoreVOList = new ArrayList<>();
+        LocalDate endTime = LocalDate.now();
+        LocalDate beginTime = endTime.minusDays(30);
+        HlScore search = new HlScore();
+        search.setHlType("2");
+        Map<String, Object> params = new HashMap<>(16);
+        params.put("beginTime", beginTime.format(DateTimeFormatter.ofPattern("yyyy-MM-dd")));
+        params.put("endTime", endTime.format(DateTimeFormatter.ofPattern("yyyy-MM-dd")));
+        search.setParams(params);
+
+        List<HlScore> list = hlScoreService.selectHlScoreList(search);
+
+        Map<Long, List<HlScore>> resultMap = list.stream().collect(Collectors.groupingBy(HlScore::getModelId));
+        for (Long modelId : resultMap.keySet()) {
             ScoreVO vo = new ScoreVO();
+            BizModel model = bizModelService.selectBizModelByModelId(modelId);
+            vo.setModelId(modelId);
+            vo.setModelName(model.getModelName());
             List<String> xData = new ArrayList<>();
             List<Float> scores = new ArrayList<>();
-            LocalDate time = LocalDate.now().minusDays(31);
-            for (int j = 0; j < 30; j++) {
-                time = time.plusDays(1);
-                xData.add(time.getMonthValue() + "-" + time.getDayOfMonth());
-                Float score = Float.valueOf(new Random().nextInt(50) + 50);
-                scores.add(score);
-            }
-
-            vo.setModelId((long) (i + 1));
-            vo.setModelName(names[i]);
+            List<HlScore> scoreList = resultMap.get(modelId);
+            scoreList = scoreList.stream().sorted(Comparator.comparing(HlScore::getHlDate)).collect(Collectors.toList());
+            scoreList.forEach(hs -> {
+                xData.add(DateUtils.parseDateToStr("MM-dd", hs.getHlDate()));
+                scores.add(hs.getHlScore().floatValue());
+            });
             vo.setScores(scores);
             vo.setXData(xData);
-            list.add(vo);
+            scoreVOList.add(vo);
         }
-        topList.sort(Comparator.comparing(map -> (Float) map.get("score")));
+        List<Map<String, Object>> topList = new ArrayList<>();
+        List<HlScoreVO> curr = hlScoreService.selectHlScoreListLast();
+        curr.sort(Comparator.comparing(HlScoreVO::getHlScore).reversed());
+
+        for (HlScoreVO vo : curr) {
+            Map<String, Object> map = new HashMap<>(16);
+            map.put("name", vo.getModelName());
+            map.put("score", vo.getHlScore());
+            topList.add(map);
+        }
+
+//        List<ScoreVO> list = new ArrayList<>();
+//        String[] names = {"市场服务", "市场出清", "信息发布", "市场合规", "市场结算"};
+//        for (int i = 0; i < names.length; i++) {
+//            Map<String, Object> map = new HashMap<>(16);
+//            map.put("name", names[i]);
+//            map.put("score", Float.valueOf(new Random().nextInt(50) + 50));
+//            topList.add(map);
+//            ScoreVO vo = new ScoreVO();
+//            List<String> xData = new ArrayList<>();
+//            List<Float> scores = new ArrayList<>();
+//            LocalDate time = LocalDate.now().minusDays(31);
+//            for (int j = 0; j < 30; j++) {
+//                time = time.plusDays(1);
+//                xData.add(time.getMonthValue() + "-" + time.getDayOfMonth());
+//                Float score = Float.valueOf(new Random().nextInt(50) + 50);
+//                scores.add(score);
+//            }
+//
+//            vo.setModelId((long) (i + 1));
+//            vo.setModelName(names[i]);
+//            vo.setScores(scores);
+//            vo.setXData(xData);
+//            list.add(vo);
+//        }
+//        topList.sort(Comparator.comparing(map -> (Float) map.get("score")));
 
-        result.put("trend", list);
+        result.put("trend", scoreVOList);
         result.put("top", topList);
         return success(result);
     }