소스 검색

增加报警历史树,修改在线训练标签

chenminghua 2 년 전
부모
커밋
be93c78d09
15개의 변경된 파일189개의 추가작업 그리고 59개의 파일을 삭제
  1. 4 3
      gyee-sample-impala/src/main/java/com/gyee/impala/FaultFilterMain.java
  2. 1 1
      gyee-sample-impala/src/main/java/com/gyee/impala/common/spring/InitialRunner.java
  3. 14 0
      gyee-sample-impala/src/main/java/com/gyee/impala/common/util/CollectUtil.java
  4. 27 3
      gyee-sample-impala/src/main/java/com/gyee/impala/controller/diagnose/AlarmHistoryController.java
  5. 23 18
      gyee-sample-impala/src/main/java/com/gyee/impala/controller/diagnose/AutoFaultController.java
  6. 16 5
      gyee-sample-impala/src/main/java/com/gyee/impala/controller/diagnose/DiagnoseReportController.java
  7. 1 1
      gyee-sample-impala/src/main/java/com/gyee/impala/controller/diagnose/TrainFileModeController.java
  8. 12 0
      gyee-sample-impala/src/main/java/com/gyee/impala/model/custom/diagnose/TrainPointWeight.java
  9. 1 1
      gyee-sample-impala/src/main/java/com/gyee/impala/model/master/Casefault.java
  10. 5 0
      gyee-sample-impala/src/main/java/com/gyee/impala/model/master/diagnose/Diagnosetrainhistory.java
  11. 64 0
      gyee-sample-impala/src/main/java/com/gyee/impala/service/custom/diagnose/AlarmService.java
  12. 8 14
      gyee-sample-impala/src/main/java/com/gyee/impala/service/custom/diagnose/DataPointService.java
  13. 10 12
      gyee-sample-impala/src/main/java/com/gyee/impala/service/impl/master/diagnose/DiagnosereportServiceImpl.java
  14. 1 0
      gyee-sample-impala/src/main/java/com/gyee/impala/service/impl/master/diagnose/DiagnosetrainhistoryServiceImpl.java
  15. 2 1
      gyee-sample-impala/src/main/resources/mapper/master/DiagnosetrainhistoryMapper.xml

+ 4 - 3
gyee-sample-impala/src/main/java/com/gyee/impala/FaultFilterMain.java

@@ -34,9 +34,9 @@ public class FaultFilterMain {
     private static Connection conn;
 
     public static void main(String[] args){
-        String station = "XS_FDC";
-        String model = "UP97";
-        String st = "2020-01-20 00:00:00";
+        String station = "NSS_FDC";
+        String model = "UP82";
+        String st = "2022-01-20 00:00:00";
         String et = "2022-05-24 00:00:00";
         long interval = 30 * 60 * 1000;
 
@@ -106,6 +106,7 @@ public class FaultFilterMain {
         int count = 0;
         try{
             for (int i = 1; i < list.size(); i++) {
+                System.out.println("共" + list.size() + "条, 第" + i + "条");
                 Map<String, Object> map = (Map<String, Object>) list.get(i - 1);
                 cal.setTime((Date) map.get("FAULTTIME"));
                 cal.add(Calendar.MINUTE, -30);

+ 1 - 1
gyee-sample-impala/src/main/java/com/gyee/impala/common/spring/InitialRunner.java

@@ -59,7 +59,7 @@ public class InitialRunner implements CommandLineRunner {
     public static List<Knowcategory> customWarnList = new ArrayList<>();
     /** 设备型号配置 <UP82, Equipmentmodel> **/
     public static Map<String, Equipmentmodel> modelMap = new HashMap<>();
-    /** 故障诊断 训练需要的测点**/
+    /** 故障诊断 训练需要的测点 <NSS_FDC, UP82, Diagnosepoint></> **/
     public static Map<String, Map<String, List<Diagnosepoint>>> mapPoint = new HashMap<>();
 
     /*** 故障训练历史模型 */

+ 14 - 0
gyee-sample-impala/src/main/java/com/gyee/impala/common/util/CollectUtil.java

@@ -0,0 +1,14 @@
+package com.gyee.impala.common.util;
+
+import java.util.Map;
+import java.util.concurrent.ConcurrentHashMap;
+import java.util.function.Function;
+import java.util.function.Predicate;
+
+public class CollectUtil {
+
+    public static <T> Predicate<T> distinctByKey(Function<? super T, Object> keyExtractor) {
+        Map<Object, Boolean> seen = new ConcurrentHashMap<>();
+        return object -> seen.putIfAbsent(keyExtractor.apply(object), Boolean.TRUE) == null;
+    }
+}

+ 27 - 3
gyee-sample-impala/src/main/java/com/gyee/impala/controller/diagnose/AlarmHistoryController.java

@@ -5,8 +5,12 @@ import com.alibaba.fastjson.JSONObject;
 import com.gyee.impala.common.feign.RemoteServiceBuilder;
 import com.gyee.impala.common.result.JsonResult;
 import com.gyee.impala.common.result.ResultCode;
+import com.gyee.impala.common.spring.InitialRunner;
 import com.gyee.impala.common.util.DateUtil;
+import com.gyee.impala.common.util.SnowFlakeUtil;
 import com.gyee.impala.model.custom.AlertHistory;
+import com.gyee.impala.model.master.Powercurvebasic;
+import com.gyee.impala.service.custom.diagnose.AlarmService;
 import org.apache.commons.lang3.StringUtils;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.web.bind.annotation.CrossOrigin;
@@ -14,8 +18,7 @@ import org.springframework.web.bind.annotation.GetMapping;
 import org.springframework.web.bind.annotation.RequestMapping;
 import org.springframework.web.bind.annotation.RestController;
 
-import java.util.Calendar;
-import java.util.List;
+import java.util.*;
 
 @CrossOrigin
 @RestController
@@ -25,7 +28,13 @@ public class AlarmHistoryController {
 
     @Autowired
     private RemoteServiceBuilder remoteService;
+    @Autowired
+    private AlarmService alarmService;
 
+    /**
+     * 诊断故障对应的报警信息
+     * @return
+     */
     @GetMapping("/info")
     public JSONObject getWarning(String station, String wtId, String faultTime){
         if (StringUtils.isEmpty(station) || StringUtils.isEmpty(wtId) || StringUtils.isEmpty(faultTime)){
@@ -36,7 +45,7 @@ public class AlarmHistoryController {
         cal.setTime(DateUtil.parseStrtoDate(faultTime, DateUtil.YYYY_MM_DD_HH_MM_SS));
         cal.add(Calendar.HOUR, -10);
         String st = DateUtil.format(cal.getTime(), DateUtil.YYYY_MM_DD_HH_MM_SS);
-        cal.add(Calendar.HOUR, 10);
+        cal.add(Calendar.HOUR, 12);
         String et = DateUtil.format(cal.getTime(), DateUtil.YYYY_MM_DD_HH_MM_SS);
 
         JSONObject data = remoteService.sharding().getAlertHistory("windturbine", st, et, station, wtId, 1);
@@ -45,4 +54,19 @@ public class AlarmHistoryController {
 
         return JsonResult.successData(ResultCode.SUCCESS, list);
     }
+
+    /**
+     * 诊断故障报告对应的报警树
+     * @return
+     */
+    @GetMapping("/tree")
+    public JSONObject getWarningTree(String station, String wtId, String faultTime){
+        if (StringUtils.isEmpty(station) || StringUtils.isEmpty(wtId) || StringUtils.isEmpty(faultTime)){
+            return JsonResult.error(ResultCode.PARAM_NOT_VALID);
+        }
+
+        Map<String, Object> map = alarmService.getAlarmTree(station, wtId, faultTime);
+
+        return JsonResult.successData(ResultCode.SUCCESS, map);
+    }
 }

+ 23 - 18
gyee-sample-impala/src/main/java/com/gyee/impala/controller/diagnose/AutoFaultController.java

@@ -1,6 +1,7 @@
 package com.gyee.impala.controller.diagnose;
 
 
+import com.alibaba.fastjson.JSONArray;
 import com.alibaba.fastjson.JSONObject;
 import com.gyee.impala.common.feign.RemoteServiceBuilder;
 import com.gyee.impala.common.result.JsonResult;
@@ -10,8 +11,10 @@ import com.gyee.impala.common.util.DateUtil;
 import com.gyee.impala.model.custom.diagnose.DataInfo;
 import com.gyee.impala.model.custom.diagnose.FaultInfo;
 import com.gyee.impala.model.custom.diagnose.PointData;
+import com.gyee.impala.model.custom.diagnose.TrainPointWeight;
 import com.gyee.impala.model.master.diagnose.Diagnosepoint;
 import com.gyee.impala.model.master.diagnose.Diagnosereport;
+import com.gyee.impala.model.master.diagnose.Diagnosetrainhistory;
 import com.gyee.impala.service.custom.diagnose.AutoCmdService;
 import com.gyee.impala.service.custom.diagnose.DataPointService;
 import com.gyee.impala.service.custom.diagnose.DataService;
@@ -22,6 +25,7 @@ import javax.annotation.Resource;
 import java.text.ParseException;
 import java.text.SimpleDateFormat;
 import java.util.*;
+import java.util.stream.Collectors;
 
 @CrossOrigin
 @RestController
@@ -114,32 +118,33 @@ public class AutoFaultController {
         DataInfo dataInfo = new DataInfo();
         dataInfo.setId(fi.getId());
         dataInfo.setFaultTime(String.valueOf(calendar.getTime().getTime()));
-        calendar.add(Calendar.MINUTE, -10);
+        calendar.add(Calendar.MINUTE, -2);
         dataInfo.setStartTs(String.valueOf(calendar.getTime().getTime()));
-        calendar.add(Calendar.MINUTE, 5);
+        calendar.add(Calendar.MINUTE, 2);
         dataInfo.setEndTs(String.valueOf(calendar.getTime().getTime()));
         dataInfo.setThingId(fi.getWindturbineId());
         dataInfo.setModelId(fi.getModelId());
         dataInfo.setStationId(fi.getStationId());
 
-        List<Diagnosepoint> uniforms = InitialRunner.mapPoint.get(fi.getStationId()).get(fi.getModelId());
-        dataPointService.formatUniformcode(uniforms);
-        Map<String, List<PointData>> data = dataPointService.getData(dataInfo);
-        Map<String, List<PointData>> mp = new HashMap<>();
-        data.forEach((k, v) -> {
-            List<PointData> ls = new ArrayList<>();
-            for(int i = 0; i < v.size(); i++){
-                if (i >= 480 || i <= 600)
-                    ls.add(v.get(i));
+        Diagnosetrainhistory h = InitialRunner.historyModelMap.get(fi.getStationId() + "_" + fi.getModelId()).get(0);
+        Map<String, Diagnosepoint> map = InitialRunner.mapPoint.get(fi.getStationId()).get(fi.getModelId()).stream()
+                .collect(Collectors.toMap(Diagnosepoint::getUniformcode, d->d,(k1, k2)->k2));
+        List<TrainPointWeight> list = JSONArray.parseArray(h.getPointweight(), TrainPointWeight.class)
+                .stream().sorted(Comparator.comparing(TrainPointWeight::getIndex)).collect(Collectors.toList());
+        List<Diagnosepoint> uniforms = new ArrayList<>();
+        for (TrainPointWeight point : list) {
+            String uniformCode = point.getUniformCode();
+            if (null != map.get(uniformCode) ){
+                uniforms.add(map.get(uniformCode));
             }
-            mp.put(k, ls);
-        });
+        }
+        dataPointService.formatUniformcode(uniforms);
+        Map<String, List<PointData>> data = dataPointService.getData(dataInfo, false);
+        Map<String, Object> mp = new HashMap<>();
+        mp.put("data", data);
+        mp.put("info", fi);
 
-        Map<String, Object> map = new HashMap<>();
-        map.put("data", data);
-        map.put("algdata", mp);
-        map.put("info", fi);
-        return JsonResult.successData(ResultCode.SUCCESS, map);
+        return JsonResult.successData(ResultCode.SUCCESS, mp);
     }
 
 

+ 16 - 5
gyee-sample-impala/src/main/java/com/gyee/impala/controller/diagnose/DiagnoseReportController.java

@@ -7,6 +7,7 @@ import com.gyee.impala.common.spring.InitialRunner;
 import com.gyee.impala.model.custom.diagnose.PointData;
 import com.gyee.impala.model.master.Casefaultalg;
 import com.gyee.impala.model.master.diagnose.Diagnosetrainhistory;
+import com.gyee.impala.service.custom.diagnose.AlarmService;
 import com.gyee.impala.service.master.CasefaultalgService;
 import com.gyee.impala.service.master.diagnose.DiagnosereportService;
 import org.springframework.beans.factory.annotation.Autowired;
@@ -18,6 +19,8 @@ import org.springframework.web.bind.annotation.RestController;
 import java.util.HashMap;
 import java.util.List;
 import java.util.Map;
+import java.util.stream.Collectors;
+import java.util.stream.Stream;
 
 @CrossOrigin
 @RestController
@@ -30,6 +33,9 @@ public class DiagnoseReportController {
     @Autowired
     private DiagnosereportService diagnosereportService;
 
+    @Autowired
+    private AlarmService alarmService;
+
     /**
      * 故障诊断报告
      * @param id
@@ -38,23 +44,28 @@ public class DiagnoseReportController {
     @GetMapping("/item")
     public JSONObject getOne(String id){
         Casefaultalg fault = casefaultalgService.getById(id);
-        List<Diagnosetrainhistory> info = InitialRunner.historyModelMap.get(fault.getStationen() + "_" + fault.getModel());
-        Map<String, Object> map = new HashMap<>();
+        List<Diagnosetrainhistory> info = InitialRunner.historyModelMap.get(fault.getStationen() + "_" + fault.getModel())
+                .stream().filter(a -> a.isEnable()).collect(Collectors.toList());
+
         Map<String, List<PointData>> mappoint = diagnosereportService.getpointweightDataList(fault.getStationen(), fault.getModel(), fault.getWindturbineid(), fault.getStarttime(),info.get(0).getPointweight());
+        Map<String, Object> alarm = alarmService.getAlarmTree(fault.getStationen(), fault.getWindturbineid(), fault.getStarttime());
+
+        Map<String, Object> map = new HashMap<>();
         map.put("fault", fault);
         map.put("info", info);
+        map.put("alarm", alarm);
         map.put("curve",mappoint);
         return JsonResult.successData(ResultCode.SUCCESS, map);
     }
 
     /**
      * 训练详情
-     * @param obj
+     * @param id
      * @return
      */
     @GetMapping("/info")
-    public JSONObject getInfo(Diagnosetrainhistory obj){
-        List<Diagnosetrainhistory> info = InitialRunner.historyModelMap.get(obj.getModel());
+    public JSONObject getInfo(String id){
+        Stream<Diagnosetrainhistory> info = InitialRunner.historyList.stream().filter(a -> a.getId().equals(id));
         return JsonResult.successData(ResultCode.SUCCESS, info);
     }
 

+ 1 - 1
gyee-sample-impala/src/main/java/com/gyee/impala/controller/diagnose/TrainFileModeController.java

@@ -275,7 +275,7 @@ public class TrainFileModeController {
     @PostMapping("/putHistory")
     public JSONObject putDiagnosetrainhistory(@RequestBody String history) {
         try {
-            log.warn(history);
+            log.info("训练模型结果:" + history);
             trainFileModeService.putDiagnosetrainhistory(history);
             return JsonResult.success(ResultCode.SUCCESS);
         } catch (Exception e) {

+ 12 - 0
gyee-sample-impala/src/main/java/com/gyee/impala/model/custom/diagnose/TrainPointWeight.java

@@ -0,0 +1,12 @@
+package com.gyee.impala.model.custom.diagnose;
+
+import lombok.Data;
+
+@Data
+public class TrainPointWeight {
+
+    private String Importance;
+    private String UniformCode;
+    private String Measuring_point;
+    private int index;
+}

+ 1 - 1
gyee-sample-impala/src/main/java/com/gyee/impala/model/master/Casefault.java

@@ -90,7 +90,7 @@ public class Casefault extends Model<Casefault> implements ToData<Object> {
         fault.setStationcn(obj.getStationcn());
         fault.setStationen(obj.getStationen());
         fault.setWindturbineid(obj.getWindturbineid());
-        fault.setFaulttype(InitialRunner.faultTypeMap.get(obj.getFaulttype()));
+        fault.setFaulttype(InitialRunner.faultTypeMap.get(obj.getFaultcode().toUpperCase()));
         fault.setFaultcode(obj.getFaultcode());
         fault.setSymptom(obj.getSymptom());
         fault.setSymptomcode(obj.getSymptomcode());

+ 5 - 0
gyee-sample-impala/src/main/java/com/gyee/impala/model/master/diagnose/Diagnosetrainhistory.java

@@ -61,4 +61,9 @@ public class Diagnosetrainhistory extends Model<Diagnosetrainhistory> {
      * 备注
      */
     private String remark;
+
+    /**
+     * 训练测点
+     */
+    private String point;
 }

+ 64 - 0
gyee-sample-impala/src/main/java/com/gyee/impala/service/custom/diagnose/AlarmService.java

@@ -0,0 +1,64 @@
+package com.gyee.impala.service.custom.diagnose;
+
+import com.alibaba.fastjson.JSONArray;
+import com.alibaba.fastjson.JSONObject;
+import com.gyee.impala.common.feign.RemoteServiceBuilder;
+import com.gyee.impala.common.spring.InitialRunner;
+import com.gyee.impala.common.util.CollectUtil;
+import com.gyee.impala.common.util.DateUtil;
+import com.gyee.impala.model.custom.AlertHistory;
+import com.gyee.impala.model.master.diagnose.Diagnosepoint;
+import lombok.extern.slf4j.Slf4j;
+import org.apache.commons.lang3.StringUtils;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Component;
+
+import java.util.*;
+import java.util.stream.Collectors;
+
+@Slf4j
+@Component
+public class AlarmService {
+
+    @Autowired
+    RemoteServiceBuilder remoteService;
+
+
+    public Map<String, Object> getAlarmTree(String station, String wtId, String faultTime){
+        Calendar cal = Calendar.getInstance();
+        cal.setTime(DateUtil.parseStrtoDate(faultTime, DateUtil.YYYY_MM_DD_HH_MM_SS));
+        cal.add(Calendar.HOUR, -10);
+        String st = DateUtil.format(cal.getTime(), DateUtil.YYYY_MM_DD_HH_MM_SS);
+        cal.add(Calendar.HOUR, 12);
+        String et = DateUtil.format(cal.getTime(), DateUtil.YYYY_MM_DD_HH_MM_SS);
+
+        JSONObject data = remoteService.sharding().getAlertHistory("windturbine", st, et, station, wtId, 1);
+        JSONArray records = data.getJSONArray("records");
+        List<AlertHistory> list = JSONArray.parseArray(records.toString(), AlertHistory.class);
+
+        List<Object> faults = new ArrayList<>();
+        Map<String, List<AlertHistory>> collect = list.stream()
+                .filter(a -> !StringUtils.isEmpty(a.getCategory2()))
+                .collect(Collectors.groupingBy(AlertHistory::getCategory2));
+        collect.forEach((k, v) ->{
+            List<Object> ls = new ArrayList<>();
+            Map<String, Object> mp = new HashMap<>();
+            String name = InitialRunner.scadaWarnMap.get(k.toUpperCase());
+            if (!StringUtils.isEmpty(name)){
+                mp.put("name", name);
+                v.stream().filter(CollectUtil.distinctByKey(AlertHistory::getAlertText)).collect(Collectors.toList()).forEach(a -> {
+                    Map<String, String> pm = new HashMap<>();
+                    pm.put("name", a.getAlertText());
+                    ls.add(pm);
+                });
+                mp.put("children", ls);
+                faults.add(mp);
+            }
+        });
+        Map<String, Object> map = new HashMap<>();
+        map.put("name", "总故障");
+        map.put("children", faults);
+
+        return map;
+    }
+}

+ 8 - 14
gyee-sample-impala/src/main/java/com/gyee/impala/service/custom/diagnose/DataPointService.java

@@ -1,9 +1,6 @@
 package com.gyee.impala.service.custom.diagnose;
 
-import com.alibaba.fastjson.JSON;
-import com.alibaba.fastjson.JSONArray;
-import com.alibaba.fastjson.parser.Feature;
-import com.gyee.impala.common.cache.InfoCache;
+
 import com.gyee.impala.common.config.GyeeConfig;
 import com.gyee.impala.common.feign.RemoteServiceBuilder;
 import com.gyee.impala.common.util.DateUtil;
@@ -13,11 +10,8 @@ import com.gyee.impala.model.master.diagnose.Diagnosepoint;
 import lombok.extern.slf4j.Slf4j;
 import org.apache.commons.lang3.StringUtils;
 import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.beans.factory.annotation.Value;
 import org.springframework.stereotype.Component;
-
 import javax.annotation.Resource;
-import java.io.*;
 import java.text.SimpleDateFormat;
 import java.util.*;
 import java.util.stream.Collectors;
@@ -64,7 +58,7 @@ public class DataPointService {
             if (!uniformCodeInfoMap.containsKey(di.getStationId())) {
                 continue;
             }
-            Map<String, List<PointData>> data = getData(di);
+            Map<String, List<PointData>> data = getData(di, true);
             String s = getDataString(data, di.getTag(), isFirst);
             FileUtil.writeFile(fileName, s);
             isFirst = false;
@@ -88,7 +82,7 @@ public class DataPointService {
             }
             // 查询一台风机的原始数据
             if (count == 0){
-                Map<String, List<PointData>> data = getData(di);
+                Map<String, List<PointData>> data = getData(di, true);
                 String s = getDataString(data, di.getTag(), isFirst);
                 sb.append(s);
             }
@@ -118,6 +112,8 @@ public class DataPointService {
         }
 
         for (int i = 0; i < vals.get(0).size(); ++i) {
+            if (StringUtils.isEmpty(tag))
+                continue;
             StringBuilder sb = new StringBuilder();
             Date dt = new Date(vals.get(0).get(i).getTs());
             sb.append(sdf.format(dt)).append(',');
@@ -128,9 +124,7 @@ public class DataPointService {
                 }
                 sb.append(vv.get(i).getValue()).append(',');
             }
-            if (tag != null) {
-                sb.append(tag);
-            }
+            sb.append(tag);
             sb.append('\n');
             stringBuilder.append(sb);
         }
@@ -141,11 +135,11 @@ public class DataPointService {
      * @param di
      * @return
      */
-    public Map<String, List<PointData>> getData(DataInfo di) {
+    public Map<String, List<PointData>> getData(DataInfo di, boolean isTrain) {
         List<Diagnosepoint> list = uniformCodeInfoMap.get(di.getStationId());
         Map<String, List<PointData>> pairs = new HashMap<>();
         for (Diagnosepoint ci : list) {
-            String key = ci.getName() + "_" + ci.getUniformcode();
+            String key = isTrain ? ci.getName() + "_" + ci.getUniformcode() : ci.getName();
             if (pairs.containsKey(key)) {
                 continue;
             }

+ 10 - 12
gyee-sample-impala/src/main/java/com/gyee/impala/service/impl/master/diagnose/DiagnosereportServiceImpl.java

@@ -9,6 +9,7 @@ import com.gyee.impala.common.config.datasource.KuduDataSourceConfig;
 import com.gyee.impala.common.exception.CustomException;
 import com.gyee.impala.common.result.ResultCode;
 import com.gyee.impala.common.spring.InitialRunner;
+import com.gyee.impala.common.util.CollectUtil;
 import com.gyee.impala.common.util.DateUtil;
 import com.gyee.impala.common.util.JudeSystem;
 import com.gyee.impala.common.util.SnowFlakeUtil;
@@ -90,25 +91,25 @@ public class DiagnosereportServiceImpl extends ServiceImpl<DiagnosereportMapper,
         cal.add(Calendar.MINUTE, 15);
         info.setEndTs(cal.getTimeInMillis() + "");
 
-        List<Diagnosepoint> point = InitialRunner.mapPoint.get(stationen).get(model).stream().filter(distinctByKey(Diagnosepoint::getUniformcode)).collect(Collectors.toList());
+        List<Diagnosepoint> point = InitialRunner.mapPoint.get(stationen).get(model).stream().filter(CollectUtil.distinctByKey(Diagnosepoint::getUniformcode)).collect(Collectors.toList());
 //        Map<String, String> map = point.stream().collect(Collectors.toMap(Diagnosepoint::getName, Diagnosepoint::getUniformcode));
-        Map<String, Diagnosepoint> map = point.stream().collect(Collectors.toMap(Diagnosepoint::getName,d->d,(k1, k2)->k2));
+        Map<String, Diagnosepoint> map = point.stream().collect(Collectors.toMap(Diagnosepoint::getUniformcode,d->d,(k1, k2)->k2));
         JSONArray jarr = JSONArray.parseArray(pointweight);
         List<Diagnosepoint> newpoint = new ArrayList<>();
         for (Iterator iterator = jarr.iterator(); iterator.hasNext(); ) {
             JSONObject job = (JSONObject) iterator.next();
-            String pointname = job.get("Measuring_point").toString();
+            String uniformCode = job.get("UniformCode").toString();
             Double importance  = Double.valueOf(job.get("Importance").toString());
             if(importance<1){
                 continue;
             }
             //System.out.println(pointname+"|"+map.get(pointname));
-            if (null !=map.get(pointname) ){
-                newpoint.add(map.get(pointname));
+            if (null !=map.get(uniformCode) ){
+                newpoint.add(map.get(uniformCode));
             }
         }
         dataPointService.formatUniformcode(newpoint);
-        Map<String, List<PointData>> pairs = dataPointService.getData(info);
+        Map<String, List<PointData>> pairs = dataPointService.getData(info, false);
         return pairs;
     }
 
@@ -127,10 +128,10 @@ public class DiagnosereportServiceImpl extends ServiceImpl<DiagnosereportMapper,
         info.setEndTs(cal.getTimeInMillis() + "");
 
         Map<String,List<Diagnosepoint>> points = InitialRunner.mapPoint.get(stationen).get(model).stream().
-                filter(distinctByKey(Diagnosepoint::getUniformcode)).collect(Collectors.groupingBy(Diagnosepoint::getName));
+                filter(CollectUtil.distinctByKey(Diagnosepoint::getUniformcode)).collect(Collectors.groupingBy(Diagnosepoint::getName));
 
         dataPointService.formatUniformcode(points.get(pointName));
-        Map<String, List<PointData>> pairs = dataPointService.getData(info);
+        Map<String, List<PointData>> pairs = dataPointService.getData(info, false);
         return pairs;
     }
 
@@ -174,10 +175,7 @@ public class DiagnosereportServiceImpl extends ServiceImpl<DiagnosereportMapper,
     }
 
 
-    public static <T> Predicate<T> distinctByKey(Function<? super T, Object> keyExtractor) {
-        Map<Object, Boolean> seen = new ConcurrentHashMap<>();
-        return object -> seen.putIfAbsent(keyExtractor.apply(object), Boolean.TRUE) == null;
-    }
+
 
 
     /**

+ 1 - 0
gyee-sample-impala/src/main/java/com/gyee/impala/service/impl/master/diagnose/DiagnosetrainhistoryServiceImpl.java

@@ -187,6 +187,7 @@ public class DiagnosetrainhistoryServiceImpl extends ServiceImpl<Diagnosetrainhi
         row.addObject("pointweight", obj.getPointweight());
         row.addObject("enable", obj.isEnable());
         row.addObject("remark", obj.getRemark());
+        row.addObject("point", obj.getPoint());
 
         // 先不提交kudu
         kuduSession.apply(insert);

+ 2 - 1
gyee-sample-impala/src/main/resources/mapper/master/DiagnosetrainhistoryMapper.xml

@@ -14,12 +14,13 @@
         <result column="pointweight" property="pointweight" />
         <result column="enable" property="enable" />
         <result column="remark" property="remark" />
+        <result column="point" property="point" />
 
     </resultMap>
 
     <!-- 通用查询结果列 -->
     <sql id="Base_Column_List">
-        id,name,time,type
+        id,name,time,type, point
     </sql>
 
 </mapper>