|
@@ -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存储的中文乱码
|