Преглед на файлове

Merge branch 'master' of http://124.70.43.205:3000/xieshengjie/sis-background

chenminghua преди 2 години
родител
ревизия
2b42cde1d3

+ 15 - 0
gyee-sample-impala/src/main/java/com/gyee/impala/controller/diagnose/DiagnoseReportController.java

@@ -4,9 +4,11 @@ import com.alibaba.fastjson.JSONObject;
 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.model.custom.diagnose.PointData;
 import com.gyee.impala.model.master.Casefaultalg;
 import com.gyee.impala.model.master.diagnose.Diagnosetrainhistory;
 import com.gyee.impala.service.master.CasefaultalgService;
+import com.gyee.impala.service.master.diagnose.DiagnosereportService;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.web.bind.annotation.CrossOrigin;
 import org.springframework.web.bind.annotation.GetMapping;
@@ -25,13 +27,26 @@ public class DiagnoseReportController {
     @Autowired
     private CasefaultalgService casefaultalgService;
 
+    @Autowired
+    private DiagnosereportService diagnosereportService;
+
     @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<>();
+        Map<String, List<PointData>> mappoint = diagnosereportService.getpointweightDataList(fault.getStationen(), fault.getModel(), fault.getWindturbineid(), fault.getStarttime(),info.get(0).getPointweight());
         map.put("fault", fault);
         map.put("info", info);
+        map.put("curve",mappoint);
         return JsonResult.successData(ResultCode.SUCCESS, map);
     }
+
+    @GetMapping("/pointName")
+    public JSONObject getPointqx(String id,String pointName) {
+        Casefaultalg fault = casefaultalgService.getById(id);
+        Map<String, List<PointData>> list = diagnosereportService.getpointweightData(fault.getStationen(), fault.getModel(), fault.getWindturbineid(), fault.getStarttime(),pointName);
+        return JsonResult.successData(ResultCode.SUCCESS, list);
+
+    }
 }

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

@@ -53,7 +53,7 @@ public class DiagnosetrainhistoryController {
 
 
     /**
-     * 编辑最终
+     * 编辑模型
      *
      * @param history
      * @return
@@ -64,4 +64,18 @@ public class DiagnosetrainhistoryController {
         diagnosetrainhistoryService.editDiagnosetrainhistory(update);
         return JsonResult.success(ResultCode.SUCCESS);
     }
+
+
+    /**
+     * 保存模型
+     *
+     * @param history
+     * @return
+     */
+    @PostMapping("/addHistory")
+    public JSONObject addDiagnosetrainhistory(@RequestBody String history) {
+        Diagnosetrainhistory add = JSONObject.parseObject(history, Diagnosetrainhistory.class);
+        diagnosetrainhistoryService.insertItem(add);
+        return JsonResult.success(ResultCode.SUCCESS);
+    }
 }

+ 15 - 13
gyee-sample-impala/src/main/java/com/gyee/impala/service/custom/diagnose/TrainFileModeService.java

@@ -58,7 +58,16 @@ public class TrainFileModeService {
     //控制太输出信息队列
     BlockingQueue<TrainInfo> infoQueue = new LinkedBlockingQueue<TrainInfo>();
     //零时保存模型队列
-    BlockingQueue<Diagnosetrainhistory> historyQueue = new LinkedBlockingQueue<Diagnosetrainhistory>();
+//    BlockingQueue<Diagnosetrainhistory> historyQueue = new LinkedBlockingQueue<Diagnosetrainhistory>();
+    private Diagnosetrainhistory historyQueue =null;
+
+    public Diagnosetrainhistory getHistoryQueue() {
+        return historyQueue;
+    }
+
+    public void setHistoryQueue(Diagnosetrainhistory historyQueue) {
+        this.historyQueue = historyQueue;
+    }
 
     public void exec(String name, String forecastLabel, String[] inputLabel, String host, MultipartFile file) {
 
@@ -144,16 +153,11 @@ public class TrainFileModeService {
      * @param history
      * @throws Exception
      */
-    public void putDiagnosetrainhistory(String history) throws Exception {
-
+    public void putDiagnosetrainhistory(String history){
         String body = JSONObject.toJSONString(history);
         Object historys = JSONObject.parse(body);
-        Diagnosetrainhistory d = JSONObject.parseObject(historys.toString(), Diagnosetrainhistory.class);
-        d.setEnable(false);
-        diagnosetrainhistoryService.insertItem(d);
-        Diagnosetrainhistory dbhistory = diagnosetrainhistoryService.getHistoryByCode(d.getCode());
-        historyQueue.put(dbhistory);
-
+        historyQueue= JSONObject.parseObject(historys.toString(), Diagnosetrainhistory.class);
+        historyQueue.setEnable(false);
     }
 
     /**
@@ -165,10 +169,8 @@ public class TrainFileModeService {
     public Diagnosetrainhistory consumeHistory() throws Exception {
         Diagnosetrainhistory d = null;
         try {
-            if (historyQueue.size() > 0) {
-                d = historyQueue.take();
-            }
-        } catch (InterruptedException e) {
+                d = historyQueue;
+        } catch (Exception e) {
             e.printStackTrace();
         }
         return d;

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

@@ -1,19 +1,31 @@
 package com.gyee.impala.service.impl.master.diagnose;
 
+import com.alibaba.fastjson.JSONArray;
+import com.alibaba.fastjson.JSONObject;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import com.gyee.impala.common.base.ExcludeQueryWrapper;
 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.DateUtil;
 import com.gyee.impala.common.util.SnowFlakeUtil;
 import com.gyee.impala.mapper.master.diagnose.DiagnosereportMapper;
+import com.gyee.impala.model.custom.diagnose.DataInfo;
+import com.gyee.impala.model.custom.diagnose.PointData;
+import com.gyee.impala.model.master.diagnose.Diagnosepoint;
 import com.gyee.impala.model.master.diagnose.Diagnosereport;
+import com.gyee.impala.service.custom.diagnose.DataPointService;
 import com.gyee.impala.service.master.diagnose.DiagnosereportService;
 import org.apache.kudu.client.*;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
-import java.util.List;
+
+import java.util.*;
+import java.util.concurrent.ConcurrentHashMap;
+import java.util.function.Function;
+import java.util.function.Predicate;
+import java.util.stream.Collectors;
 
 
 @Service
@@ -22,6 +34,10 @@ public class DiagnosereportServiceImpl extends ServiceImpl<DiagnosereportMapper,
     @Autowired
     private KuduDataSourceConfig kuduConfig;
 
+    @Autowired
+    private DataPointService dataPointService;
+
+
     @Override
     public List<Diagnosereport> getAll(String wtId, String model, String modelName, String trainingTimes) {
         ExcludeQueryWrapper<Diagnosereport> wrapper = new ExcludeQueryWrapper<>();
@@ -48,6 +64,71 @@ public class DiagnosereportServiceImpl extends ServiceImpl<DiagnosereportMapper,
         }
     }
 
+    @Override
+    public Map<String, List<PointData>> getpointweightDataList(String stationen, String model, String wtId, String faultTime, String pointweight) {
+
+        Calendar cal = Calendar.getInstance();
+        DataInfo info = new DataInfo();
+        info.setStationId(stationen);
+        info.setModelId(model);
+        info.setThingId(wtId);
+
+        cal.setTime(DateUtil.parseStrtoDate(faultTime, DateUtil.YYYY_MM_DD_HH_MM_SS));
+        cal.add(Calendar.MINUTE, -10);
+        info.setStartTs(cal.getTimeInMillis() + "");
+        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());
+//        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));
+        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();
+            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));
+            }
+        }
+        dataPointService.formatUniformcode(newpoint);
+        Map<String, List<PointData>> pairs = dataPointService.getData(info);
+        return pairs;
+    }
+
+    @Override
+    public Map<String, List<PointData>> getpointweightData(String stationen, String model, String wtId, String faultTime, String pointName) {
+        Calendar cal = Calendar.getInstance();
+        DataInfo info = new DataInfo();
+        info.setStationId(stationen);
+        info.setModelId(model);
+        info.setThingId(wtId);
+
+        cal.setTime(DateUtil.parseStrtoDate(faultTime, DateUtil.YYYY_MM_DD_HH_MM_SS));
+        cal.add(Calendar.MINUTE, -10);
+        info.setStartTs(cal.getTimeInMillis() + "");
+        cal.add(Calendar.MINUTE, 15);
+        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));
+
+        dataPointService.formatUniformcode(points.get(pointName));
+        Map<String, List<PointData>> pairs = dataPointService.getData(info);
+        return pairs;
+    }
+
+
+    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;
+    }
+
 
     /**
      * 由于mybatis-plus存储的中文乱码

+ 26 - 0
gyee-sample-impala/src/main/java/com/gyee/impala/service/master/diagnose/DiagnosereportService.java

@@ -1,9 +1,11 @@
 package com.gyee.impala.service.master.diagnose;
 
 import com.baomidou.mybatisplus.extension.service.IService;
+import com.gyee.impala.model.custom.diagnose.PointData;
 import com.gyee.impala.model.master.diagnose.Diagnosereport;
 
 import java.util.List;
+import java.util.Map;
 
 public interface DiagnosereportService extends IService<Diagnosereport> {
 
@@ -24,4 +26,28 @@ public interface DiagnosereportService extends IService<Diagnosereport> {
      * @param obj
      */
     void insertItem(Diagnosereport obj);
+
+
+    /**
+     * @param stationen   场站
+     * @param model       机型
+     * @param wtId        风机编号
+     * @param faultTime   报警时间点
+     * @param pointweight 权重测点(json字符串)
+     * @return
+     */
+    Map<String, List<PointData>> getpointweightDataList(String stationen, String model, String wtId, String faultTime, String pointweight);
+
+
+    /**
+     * @param stationen   场站
+     * @param model       机型
+     * @param wtId        风机编号
+     * @param faultTime   报警时间点
+     * @param pointName 权重测点(单独测点名)
+     * @return
+     */
+    Map<String, List<PointData>> getpointweightData(String stationen, String model, String wtId, String faultTime, String pointName);
+
+
 }