| 
					
				 | 
			
			
				@@ -1,7 +1,9 @@ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 package com.jjt.biz.controller; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 import com.jjt.biz.domain.AlarmRecord; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+import com.jjt.biz.domain.BizModel; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 import com.jjt.biz.service.IAlarmRecordService; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+import com.jjt.biz.service.IBizModelService; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 import com.jjt.biz.vo.BizAccessVO; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 import com.jjt.biz.vo.BizSortVO; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 import com.jjt.biz.vo.BizTypeVO; 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -27,6 +29,7 @@ import java.time.LocalDateTime; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 import java.time.format.DateTimeFormatter; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 import java.util.*; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 import java.util.concurrent.atomic.AtomicInteger; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+import java.util.stream.Collectors; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 /** 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  * 告警记录Controller 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -44,6 +47,8 @@ public class AlarmRecordController extends BaseController { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     private JdbcTemplate jdbcTemplate; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     @Resource 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     private ISysDictDataService sysDictDataService; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    @Resource 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    private IBizModelService bizModelService; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     /** 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				      * 查询告警记录列表 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -78,7 +83,7 @@ public class AlarmRecordController extends BaseController { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     @ApiOperation("业务组件统计") 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     @GetMapping("/list/bizObj") 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     public AjaxResult listBizObj(@ApiParam(value = "业务类型") String type, @ApiParam(value = "开始时间yyyy-mm-dd") String start, @ApiParam(value = "结束时间yyyy-mm-dd") String end) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        List<BizTypeVO> list = alarmRecordService.listBizObj(type,start, end); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        List<BizTypeVO> list = alarmRecordService.listBizObj(type, start, end); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         return AjaxResult.success(list); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -151,41 +156,92 @@ public class AlarmRecordController extends BaseController { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     @GetMapping("/list/bizAccess") 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     public AjaxResult listBizAccess(@ApiParam(value = "开始时间yyyy-mm-dd") String start, @ApiParam(value = "结束时间yyyy-mm-dd") String end) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         List<BizAccessVO> list = new ArrayList<>(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-//        //还是得先用模拟数据。 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        String sql = "SELECT model_id,model_name FROM biz_model"; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        List<Map<String, Object>> mdList = jdbcTemplate.queryForList(sql); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        mdList.forEach(map -> { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        String sql = "SELECT bmdetail.model_id,subq.metrics_code,IFNULL(SUM(bmd.D_VALUE), 0) AS total_value " + 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                "FROM biz_obj_metrics_data bmd " + 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                "JOIN (" + 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                "    SELECT bom.obj_metrics_id, bom.obj_id,md.metrics_code" + 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                "    FROM biz_obj_metrics bom" + 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                "    JOIN metrics_def md ON bom.metrics_id = md.metrics_id" + 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                "    WHERE md.metrics_code = 'pp.error' OR md.metrics_code='pp.tot' OR md.metrics_code='D_10163'" + 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                ") subq ON bmd.obj_metrics_id = subq.obj_metrics_id" + 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                " JOIN biz_model_detail bmdetail ON subq.obj_id = bmdetail.obj_id" + 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                " WHERE bmd.CREATE_TIME BETWEEN ? AND ?" + 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                " GROUP BY bmdetail.model_id,subq.metrics_code"; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        List<Map<String, Object>> acList = jdbcTemplate.queryForList(sql, start, end + " 23:59:59"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        Map<Integer, List<Map<String, Object>>> resultMap = acList.stream().collect(Collectors.groupingBy(mp -> (Integer) mp.get("model_id"))); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        List<BizModel> modelList = bizModelService.selectBizModelList(new BizModel()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        modelList.forEach(model -> { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             BizAccessVO vo = new BizAccessVO(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            Integer modelId = (Integer) map.get("model_id"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            String modelName = (String) map.get("model_name"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            vo.setModelId(Long.valueOf(modelId)); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            vo.setModelName(modelName); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            Vector<Object> v = new Vector<>(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            String sql1 = "SELECT COUNT(*) FROM alarm_record WHERE obj_id IN(SELECT obj_id FROM biz_model_detail WHERE model_id=?)"; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            v.add(modelId); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            if (start != null && end != null) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                sql1 += " AND alarm_time BETWEEN ? AND ?"; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                v.add(start); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                v.add(end + " 23:59:59"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            Map<String, Object> map = new HashMap<>(16); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            vo.setModelId(model.getModelId()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            vo.setModelName(model.getModelName()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            map.put("name", model.getModelName()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            String sql1 = "SELECT COUNT(*) FROM alarm_record WHERE obj_id IN(SELECT obj_id FROM biz_model_detail WHERE model_id=?) AND alarm_time BETWEEN ? AND ?"; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            Long num = jdbcTemplate.queryForObject(sql1, Long.class, model.getModelId(), start, end + " 23:59:59"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            vo.setN1(num); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            sql1 = "SELECT COUNT(*) FROM biz_obj WHERE obj_type=1 AND obj_id IN(SELECT obj_id FROM biz_model_detail where model_id=?)"; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            num = jdbcTemplate.queryForObject(sql1, Long.class, model.getModelId()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            vo.setN2(num); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            List<Map<String, Object>> vList = resultMap.get(model.getModelId().intValue()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            for (Map<String, Object> objectMap : vList) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                String code = (String) objectMap.get("metrics_code"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                BigDecimal value = (BigDecimal) objectMap.get("total_value"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                if ("pp.error".equals(code)) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    vo.setNum(value.longValue()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                if ("pp.tot".equals(code)) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    vo.setAccess(value.longValue()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                if ("D_10163".equals(code)) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    vo.setN3(value.longValue()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            Long num = jdbcTemplate.queryForObject(sql1, Long.class, v.toArray()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            vo.setNum(num); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            Vector<Object> v1 = new Vector<>(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            String sql2 = "SELECT IFNULL(SUM(D_VALUE),0) FROM biz_obj_metrics_data " + 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                    "WHERE obj_metrics_id IN(" + 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                    "SELECT obj_metrics_id FROM biz_obj_metrics" + 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                    " WHERE metrics_id =(SELECT metrics_id FROM metrics_def WHERE metrics_code='pp.tot')" + 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                    " AND obj_id IN(SELECT obj_id FROM biz_model_detail WHERE model_id=?))"; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            v1.add(modelId); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            if (start != null && end != null) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                sql2 += " AND CREATE_TIME BETWEEN ? AND ?"; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                v1.add(start); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                v1.add(end + " 23:59:59"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            if (vo.getN3() == null) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                vo.setN3(0L); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            Long access = jdbcTemplate.queryForObject(sql2, Long.class, v1.toArray()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            vo.setAccess(access); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             list.add(vo); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         }); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+//        //还是得先用模拟数据。 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+//        String sql = "SELECT model_id,model_name FROM biz_model"; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+//        List<Map<String, Object>> mdList = jdbcTemplate.queryForList(sql); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+//        mdList.forEach(map -> { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+//            BizAccessVO vo = new BizAccessVO(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+//            Integer modelId = (Integer) map.get("model_id"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+//            String modelName = (String) map.get("model_name"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+//            vo.setModelId(Long.valueOf(modelId)); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+//            vo.setModelName(modelName); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+//            Vector<Object> v = new Vector<>(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+//            String sql1 = "SELECT COUNT(*) FROM alarm_record WHERE obj_id IN(SELECT obj_id FROM biz_model_detail WHERE model_id=?)"; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+//            v.add(modelId); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+//            if (start != null && end != null) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+//                sql1 += " AND alarm_time BETWEEN ? AND ?"; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+//                v.add(start); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+//                v.add(end + " 23:59:59"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+//            } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+//            Long num = jdbcTemplate.queryForObject(sql1, Long.class, v.toArray()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+//            vo.setNum(num); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+//            Vector<Object> v1 = new Vector<>(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+//            String sql2 = "SELECT IFNULL(SUM(D_VALUE),0) FROM biz_obj_metrics_data " + 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+//                    "WHERE obj_metrics_id IN(" + 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+//                    "SELECT obj_metrics_id FROM biz_obj_metrics" + 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+//                    " WHERE metrics_id =(SELECT metrics_id FROM metrics_def WHERE metrics_code='pp.tot')" + 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+//                    " AND obj_id IN(SELECT obj_id FROM biz_model_detail WHERE model_id=?))"; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+//            v1.add(modelId); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+//            if (start != null && end != null) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+//                sql2 += " AND CREATE_TIME BETWEEN ? AND ?"; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+//                v1.add(start); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+//                v1.add(end + " 23:59:59"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+//            } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+//            Long access = jdbcTemplate.queryForObject(sql2, Long.class, v1.toArray()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+//            vo.setAccess(access); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+//            vo.setN1(1L); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+// 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+//            list.add(vo); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+//        }); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 //        String[] names = {"市场服务", "市场出清", "市场结算", "市场合规", "信息发布"}; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 //        int[] as = new int[5]; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 //        int[] nums = new int[5]; 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -242,7 +298,7 @@ public class AlarmRecordController extends BaseController { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     public AjaxResult objAccess(@ApiParam(value = "对象ID") Long modelId, @ApiParam(value = "开始时间yyyy-mm-dd") String start, @ApiParam(value = "结束时间yyyy-mm-dd") String end) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 //        依然得用模拟数据 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         Map<String, Object> result = new HashMap<>(16); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        List<BizAccessVO> list = alarmRecordService.objAccess(modelId,start,end); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        List<BizAccessVO> list = alarmRecordService.objAccess(modelId, start, end); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         List<Map<String, Object>> dataList = new ArrayList<>(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         //获取趋势 
			 |