Browse Source

样本库知识列表接口

chenminghua 3 years ago
parent
commit
453695ba0f
67 changed files with 2385 additions and 175 deletions
  1. 19 0
      gyee-sample-impala/pom.xml
  2. 6 1
      gyee-sample-impala/src/main/java/com/gyee/impala/common/config/MapperGenerator.java
  3. 2 0
      gyee-sample-impala/src/main/java/com/gyee/impala/common/constant/Constants.java
  4. 28 6
      gyee-sample-impala/src/main/java/com/gyee/impala/common/feign/IAdapterService.java
  5. 124 0
      gyee-sample-impala/src/main/java/com/gyee/impala/common/util/Base64Util.java
  6. 177 0
      gyee-sample-impala/src/main/java/com/gyee/impala/common/util/ExcelUtil.java
  7. 13 17
      gyee-sample-impala/src/main/java/com/gyee/impala/controller/AnalyseScatterController.java
  8. 2 2
      gyee-sample-impala/src/main/java/com/gyee/impala/controller/BasicQueryConditionsController.java
  9. 13 4
      gyee-sample-impala/src/main/java/com/gyee/impala/controller/KnowBasicController.java
  10. 97 0
      gyee-sample-impala/src/main/java/com/gyee/impala/controller/KnowFaultProcessController.java
  11. 74 0
      gyee-sample-impala/src/main/java/com/gyee/impala/controller/KnowMaintenanceController.java
  12. 16 0
      gyee-sample-impala/src/main/java/com/gyee/impala/mapper/master/KnowfaultprocessMapper.java
  13. 7 0
      gyee-sample-impala/src/main/java/com/gyee/impala/mapper/master/KnowmaintenanceMapper.java
  14. 8 0
      gyee-sample-impala/src/main/java/com/gyee/impala/mapper/master/PowercurvefittingMapper.java
  15. 0 8
      gyee-sample-impala/src/main/java/com/gyee/impala/mapper/master/TempscatterpointMapper.java
  16. 17 0
      gyee-sample-impala/src/main/java/com/gyee/impala/mapper/slave/FaulthistoryMapper.java
  17. 16 0
      gyee-sample-impala/src/main/java/com/gyee/impala/mapper/slave/FaultsnapMapper.java
  18. 17 0
      gyee-sample-impala/src/main/java/com/gyee/impala/mapper/slave/Windturbinetestingpointai2Mapper.java
  19. 33 0
      gyee-sample-impala/src/main/java/com/gyee/impala/model/custom/TsBooleanData.java
  20. 1 1
      gyee-sample-impala/src/main/java/com/gyee/impala/model/custom/TsPointData.java
  21. 4 0
      gyee-sample-impala/src/main/java/com/gyee/impala/model/master/Casefault.java
  22. 56 0
      gyee-sample-impala/src/main/java/com/gyee/impala/model/master/Knowfaultprocess.java
  23. 45 0
      gyee-sample-impala/src/main/java/com/gyee/impala/model/master/Knowmaintenance.java
  24. 6 2
      gyee-sample-impala/src/main/java/com/gyee/impala/model/master/Tempscatterpoint.java
  25. 73 0
      gyee-sample-impala/src/main/java/com/gyee/impala/model/slave/Faulthistory.java
  26. 97 0
      gyee-sample-impala/src/main/java/com/gyee/impala/model/slave/Faultsnap.java
  27. 1 1
      gyee-sample-impala/src/main/java/com/gyee/impala/model/slave/Windturbinecurvefittingmonth.java
  28. 86 0
      gyee-sample-impala/src/main/java/com/gyee/impala/model/slave/Windturbinetestingpointai2.java
  29. 9 9
      gyee-sample-impala/src/main/java/com/gyee/impala/schdule/TaskPerformance.java
  30. 130 82
      gyee-sample-impala/src/main/java/com/gyee/impala/service/custom/AnalyseScatterService.java
  31. 48 6
      gyee-sample-impala/src/main/java/com/gyee/impala/service/custom/GoldenService.java
  32. 3 3
      gyee-sample-impala/src/main/java/com/gyee/impala/service/custom/IRealTimeData.java
  33. 2 0
      gyee-sample-impala/src/main/java/com/gyee/impala/service/impl/master/CasefaultServiceImpl.java
  34. 6 6
      gyee-sample-impala/src/main/java/com/gyee/impala/service/impl/master/CaseperformanceServiceImpl.java
  35. 35 4
      gyee-sample-impala/src/main/java/com/gyee/impala/service/impl/master/KnowfaultfixServiceImpl.java
  36. 161 0
      gyee-sample-impala/src/main/java/com/gyee/impala/service/impl/master/KnowfaultprocessServiceImpl.java
  37. 117 0
      gyee-sample-impala/src/main/java/com/gyee/impala/service/impl/master/KnowmaintenanceServiceImpl.java
  38. 9 8
      gyee-sample-impala/src/main/java/com/gyee/impala/service/impl/master/TempscatterpointServiceImpl.java
  39. 1 2
      gyee-sample-impala/src/main/java/com/gyee/impala/service/impl/master/WindturbineServiceImpl.java
  40. 1 1
      gyee-sample-impala/src/main/java/com/gyee/impala/service/impl/master/WindturbinepointServiceImpl.java
  41. 39 0
      gyee-sample-impala/src/main/java/com/gyee/impala/service/impl/slave/FaulthistoryServiceImpl.java
  42. 39 0
      gyee-sample-impala/src/main/java/com/gyee/impala/service/impl/slave/FaultsnapServiceImpl.java
  43. 45 0
      gyee-sample-impala/src/main/java/com/gyee/impala/service/impl/slave/Windturbinetestingpointai2ServiceImpl.java
  44. 8 1
      gyee-sample-impala/src/main/java/com/gyee/impala/service/master/KnowfaultfixService.java
  45. 67 0
      gyee-sample-impala/src/main/java/com/gyee/impala/service/master/KnowfaultprocessService.java
  46. 43 0
      gyee-sample-impala/src/main/java/com/gyee/impala/service/master/KnowmaintenanceService.java
  47. 4 4
      gyee-sample-impala/src/main/java/com/gyee/impala/service/master/TempscatterpointService.java
  48. 1 1
      gyee-sample-impala/src/main/java/com/gyee/impala/service/master/WindturbinepointService.java
  49. 28 0
      gyee-sample-impala/src/main/java/com/gyee/impala/service/slave/FaulthistoryService.java
  50. 27 0
      gyee-sample-impala/src/main/java/com/gyee/impala/service/slave/FaultsnapService.java
  51. 25 0
      gyee-sample-impala/src/main/java/com/gyee/impala/service/slave/Windturbinetestingpointai2Service.java
  52. 2 2
      gyee-sample-impala/src/main/resources/application.yaml
  53. 2 1
      gyee-sample-impala/src/main/resources/mapper/master/CasefaultMapper.xml
  54. 27 0
      gyee-sample-impala/src/main/resources/mapper/master/KnowfaultprocessMapper.xml
  55. 21 0
      gyee-sample-impala/src/main/resources/mapper/master/KnowmaintenanceMapper.xml
  56. 4 2
      gyee-sample-impala/src/main/resources/mapper/master/TempscatterpointMapper.xml
  57. 24 0
      gyee-sample-impala/src/main/resources/mapper/slave/FaulthistoryMapper.xml
  58. 35 0
      gyee-sample-impala/src/main/resources/mapper/slave/FaultsnapMapper.xml
  59. 1 1
      gyee-sample-impala/src/main/resources/mapper/slave/WindturbinecurvefittingmonthMapper.xml
  60. 32 0
      gyee-sample-impala/src/main/resources/mapper/slave/Windturbinetestingpointai2Mapper.xml
  61. 160 0
      gyee-sample-impala/src/test/java/com/gyee/impala/FaultHistoryFilterTest.java
  62. 21 0
      src/main/java/com/gyee/impala/controller/Windturbinetestingpointai2Controller.java
  63. 16 0
      src/main/java/com/gyee/impala/mapper/Windturbinetestingpointai2Mapper.java
  64. 86 0
      src/main/java/com/gyee/impala/model/Windturbinetestingpointai2.java
  65. 16 0
      src/main/java/com/gyee/impala/service/Windturbinetestingpointai2Service.java
  66. 20 0
      src/main/java/com/gyee/impala/service/impl/Windturbinetestingpointai2ServiceImpl.java
  67. 32 0
      src/main/resources/mapper/Windturbinetestingpointai2Mapper.xml

+ 19 - 0
gyee-sample-impala/pom.xml

@@ -177,6 +177,25 @@
             <version>11.2.0.3</version>
         </dependency>
 
+        <!--解析excel-->
+        <dependency>
+            <groupId>com.alibaba</groupId>
+            <artifactId>easyexcel</artifactId>
+            <version>2.2.4</version>
+        </dependency>
+        <!--xls-->
+        <dependency>
+            <groupId>org.apache.poi</groupId>
+            <artifactId>poi</artifactId>
+            <version>3.17</version>
+        </dependency>
+        <dependency>
+            <groupId>org.apache.poi</groupId>
+            <artifactId>poi-ooxml</artifactId>
+            <version>3.17</version>
+        </dependency>
+
+
         <!-- 添加 lib -->
         <dependency>
             <groupId>ImpalaJDBC</groupId>

+ 6 - 1
gyee-sample-impala/src/main/java/com/gyee/impala/common/config/MapperGenerator.java

@@ -27,13 +27,18 @@ public class MapperGenerator {
     //作者
     private static String authorName = "chenmh";
     //要生成的表名
-    private static String[] tables = {""};
+    private static String[] tables = {"WINDTURBINETESTINGPOINTAI2"};
     //table前缀
     private static String prefix = "";
 
     //数据库类型
     private static DbType dbType = DbType.ORACLE;
     //数据库配置四要素
+//    private static String driverName = "com.mysql.cj.jdbc.Driver";
+//    private static String url = "jdbc:mysql://localhost:3306/gyee_sample_kudu?useUnicode=true&useSSL=false&characterEncoding=utf8&serverTimezone=UTC";
+//    private static String username = "root";
+//    private static String password = "";
+
     private static String driverName = "oracle.jdbc.driver.OracleDriver";
     private static String url = "jdbc:oracle:thin:@192.168.1.105:1521:gdnxfd";
     private static String username = "nxfdprod";

+ 2 - 0
gyee-sample-impala/src/main/java/com/gyee/impala/common/constant/Constants.java

@@ -13,6 +13,8 @@ public class Constants {
     public static final String FDJZSB = "AI012B";
     // 明细状态
     public static final String FJMXZT = "ZTMX";
+    // 风机状态
+    public static final String FJZT = "FJZT";
     // 风机风速
     public static final String POINT_SPEED = "AI022";
     // 风机实发功率

+ 28 - 6
gyee-sample-impala/src/main/java/com/gyee/impala/common/feign/IAdapterService.java

@@ -1,7 +1,8 @@
 package com.gyee.impala.common.feign;
 
 import com.alibaba.fastjson.JSONObject;
-import com.gyee.impala.model.custom.TsPointData;
+import com.gyee.impala.model.custom.TsBooleanData;
+import com.gyee.impala.model.custom.TsDoubleData;
 import feign.Headers;
 import feign.Param;
 import feign.RequestLine;
@@ -19,16 +20,37 @@ public interface IAdapterService {
 
     @Headers({"Content-Type: application/json", "Accept: application/json"})
     @RequestLine("GET /ts/history/snap?tagName={tagName}&startTs={startTs}&endTs={endTs}&interval={interval}")
-    List<TsPointData> getHistorySnap(@Param(value = "tagName") String tagName, @Param(value = "startTs") long startTs,
-                                     @Param(value = "endTs") long endTs, @Param(value = "interval") Integer interval);
+    List<TsDoubleData> getHistorySnapAI(@Param(value = "tagName") String tagName, @Param(value = "startTs") long startTs,
+                                        @Param(value = "endTs") long endTs, @Param(value = "interval") Integer interval);
+
+
+    @Headers({"Content-Type: application/json", "Accept: application/json"})
+    @RequestLine("GET /ts/history/raw?tagName={tagName}&startTs={startTs}&endTs={endTs}")
+    List<TsDoubleData> getHistoryRawAI(@Param(value = "tagName") String tagName, @Param(value = "startTs") long startTs,
+                                       @Param(value = "endTs") long endTs);
+
+
+    @Headers({"Content-Type: application/json", "Accept: application/json"})
+    @RequestLine("GET /ts/history/section?tagNames={tagNames}&ts={ts}")
+    List<TsDoubleData> getHistorySectionAI(@Param(value = "tagNames") String tagNames, @Param(value = "ts") long ts);
+
+
+
+
+    @Headers({"Content-Type: application/json", "Accept: application/json"})
+    @RequestLine("GET /ts/history/snap?tagName={tagName}&startTs={startTs}&endTs={endTs}&interval={interval}")
+    List<TsBooleanData> getHistorySnapDI(@Param(value = "tagName") String tagName, @Param(value = "startTs") long startTs,
+                                         @Param(value = "endTs") long endTs, @Param(value = "interval") Integer interval);
+
 
     @Headers({"Content-Type: application/json", "Accept: application/json"})
     @RequestLine("GET /ts/history/raw?tagName={tagName}&startTs={startTs}&endTs={endTs}")
-    List<TsPointData> getHistoryRaw(@Param(value = "tagName") String tagName, @Param(value = "startTs") long startTs,
-                                    @Param(value = "endTs") long endTs);
+    List<TsBooleanData> getHistoryRawDI(@Param(value = "tagName") String tagName, @Param(value = "startTs") long startTs,
+                                        @Param(value = "endTs") long endTs);
+
 
     @Headers({"Content-Type: application/json", "Accept: application/json"})
     @RequestLine("GET /ts/history/section?tagNames={tagNames}&ts={ts}")
-    List<TsPointData> getHistorySection(@Param(value = "tagNames") String tagNames, @Param(value = "ts") long ts);
+    List<TsBooleanData> getHistorySectionDI(@Param(value = "tagNames") String tagNames, @Param(value = "ts") long ts);
 
 }

+ 124 - 0
gyee-sample-impala/src/main/java/com/gyee/impala/common/util/Base64Util.java

@@ -0,0 +1,124 @@
+package com.gyee.impala.common.util;
+
+import java.io.UnsupportedEncodingException;
+import java.util.Base64;
+
+public class Base64Util {
+
+    public static final String UTF_8 = "UTF-8";
+    public static Base64.Encoder encoder;
+    //即为安全的编码方式,替换“+” “/” “-”为“_”
+    public static Base64.Encoder urlEncoder;
+    public static Base64.Decoder decoder;
+    public static Base64.Decoder urlDecoder;
+
+    static {
+        encoder = Base64.getEncoder();
+        urlEncoder = Base64.getUrlEncoder();
+        decoder = Base64.getDecoder();
+        urlDecoder = Base64.getUrlDecoder();
+    }
+
+    //encode
+    public static byte[] encode(byte[] bytes) {
+        return encoder.encode(bytes);
+    }
+
+
+    public static String encode(String string) {
+        byte[] encode = encode(string.getBytes());
+        try {
+            return new String(encode, UTF_8);
+        } catch (UnsupportedEncodingException e) {
+            e.printStackTrace();
+        }
+        return null;
+    }
+
+    public static String encode2String(byte[] bytes) {
+        return encoder.encodeToString(bytes);
+    }
+
+    public static byte[] encode2Byte(String string) {
+        return encode(string.getBytes());
+    }
+
+    //urlEncoder
+    public static byte[] urlEncode(byte[] bytes) {
+        return urlEncoder.encode(bytes);
+    }
+
+    public static String urlEncode(String string) {
+        byte[] encode = urlEncode(string.getBytes());
+        try {
+            return new String(encode, UTF_8);
+        } catch (UnsupportedEncodingException e) {
+            e.printStackTrace();
+        }
+        return null;
+    }
+
+    public static String urlEncode2String(byte[] bytes) {
+        return urlEncoder.encodeToString(bytes);
+    }
+
+    public static byte[] urlEncode2Byte(String string) {
+        return urlEncode(string.getBytes());
+    }
+
+    //decode
+    public static byte[] decode(byte[] bytes) {
+        return decoder.decode(bytes);
+    }
+
+    public static byte[] decode2Byte(String string) {
+        return decoder.decode(string.getBytes());
+    }
+
+    public static String decode2String(byte[] bytes) {
+        try {
+            return new String(decoder.decode(bytes),UTF_8);
+        } catch (UnsupportedEncodingException e) {
+            e.printStackTrace();
+        }
+        return null;
+    }
+
+    public static String decode(String string) {
+        byte[] decode = decode(string.getBytes());
+        try {
+            return new String(decode, UTF_8);
+        } catch (UnsupportedEncodingException e) {
+            e.printStackTrace();
+        }
+        return null;
+    }
+
+    //urlDecode
+    public static byte[] urlDecode(byte[] bytes) {
+        return urlDecoder.decode(bytes);
+    }
+
+    public static byte[] urlDecode2Byte(String string) {
+        return urlDecode(string.getBytes());
+    }
+
+    public static String urlDecode2String(byte[] bytes) {
+        try {
+            return new String(urlDecode(bytes),UTF_8);
+        } catch (UnsupportedEncodingException e) {
+            e.printStackTrace();
+        }
+        return null;
+    }
+
+    public static String urlDecode(String string) {
+        byte[] decode = urlDecode(string.getBytes());
+        try {
+            return new String(decode, UTF_8);
+        } catch (UnsupportedEncodingException e) {
+            e.printStackTrace();
+        }
+        return null;
+    }
+}

+ 177 - 0
gyee-sample-impala/src/main/java/com/gyee/impala/common/util/ExcelUtil.java

@@ -0,0 +1,177 @@
+package com.gyee.impala.common.util;
+
+import com.alibaba.excel.ExcelWriter;
+import com.alibaba.excel.support.ExcelTypeEnum;
+import lombok.extern.slf4j.Slf4j;
+import org.apache.poi.hssf.usermodel.HSSFCell;
+import org.apache.poi.hssf.usermodel.HSSFRow;
+import org.apache.poi.hssf.usermodel.HSSFSheet;
+import org.apache.poi.hssf.usermodel.HSSFWorkbook;
+import org.apache.poi.poifs.filesystem.POIFSFileSystem;
+import org.apache.poi.ss.usermodel.Row;
+import org.apache.poi.ss.usermodel.Sheet;
+import org.apache.poi.ss.usermodel.Workbook;
+import org.apache.poi.xssf.usermodel.XSSFWorkbook;
+import org.springframework.util.StringUtils;
+
+import java.io.*;
+import java.text.SimpleDateFormat;
+import java.util.*;
+
+/**
+ */
+@Slf4j
+public class ExcelUtil {
+
+    /**
+     * 解析场站的部件DI测点
+     *
+     * @param fileName 文件名
+     * @return
+     */
+    public static Map<String, List<String>> readExcelToMap(String fileName) {
+        Map<String, List<String>> map = new HashMap<>();
+        File file = new File(fileName);
+
+        if (!file.isFile() && file.exists()) {
+            log.error("解析的excel文件不存在!");
+            return map;
+        }
+
+        Workbook wb;
+        FileInputStream fis = null;
+        try {
+            fis = new FileInputStream(file);
+            if (checkFile(fileName) == 1) {
+                wb = new XSSFWorkbook(file);
+            } else if (checkFile(fileName) == 2) {
+                wb = new HSSFWorkbook(fis);
+            } else {
+                log.error("解析的文件类型错误!");
+                return map;
+            }
+
+            // 解析文件  第一个sheet用不到
+            for (int i = 1; i < wb.getNumberOfSheets(); i++) {
+                Sheet sheet = wb.getSheetAt(i);
+                if (sheet == null)
+                    continue;
+                if(i == 2)
+                    break;
+                String key = null;
+                List<String> list = new ArrayList<>();
+                // 第一行是标题,不解析
+                for (int j = 1; j <= sheet.getLastRowNum(); j++) {
+                    Row row = sheet.getRow(j);
+                    if (row == null)
+                        continue;
+
+                    String temp = "";
+                    key = row.getCell(0).toString() + row.getCell(1).toString();
+                    for (int k = 2; k < row.getLastCellNum(); k++) {
+                        String data = row.getCell(k).toString();
+                        if (StringUtils.hasText(data))
+                            temp += data;
+                        if (k < row.getLastCellNum() - 1)
+                            temp += ",";
+                    }
+                    list.add(temp);
+                }
+
+                map.put(key, list);
+            }
+
+        } catch (Exception e) {
+            log.error("excel文件解析异常:" + e.getMessage());
+        } finally {
+            if (fis != null) {
+                try {
+                    fis.close();
+                } catch (IOException e) {
+                    e.printStackTrace();
+                }
+            }
+        }
+
+        return map;
+    }
+
+
+    /**
+     * 解析风机基础配置
+     *
+     * @param fileName
+     * @return
+     */
+    public static List<String[]> readExcelToList(String fileName) {
+        List<String[]> list = new ArrayList<>();
+        File file = new File(fileName);
+
+        if (!file.isFile() && file.exists()) {
+            log.error("解析的excel文件不存在!");
+            return list;
+        }
+
+        Workbook wb;
+        FileInputStream fis = null;
+        try {
+            fis = new FileInputStream(file);
+            if (checkFile(fileName) == 1) {
+                wb = new XSSFWorkbook(file);
+            } else if (checkFile(fileName) == 2) {
+                wb = new HSSFWorkbook(fis);
+            } else {
+                log.error("解析的文件类型错误!");
+                return list;
+            }
+
+            // 解析文件  读第一个sheet
+
+            Sheet sheet = wb.getSheetAt(0);
+            // 第一行是标题,不解析
+            for (int i = 1; i <= sheet.getLastRowNum(); i++) {
+                Row row = sheet.getRow(i);
+                if (row == null)
+                    continue;
+
+                String[] str = new String[row.getLastCellNum()];
+                for (int j = 0; j < row.getLastCellNum(); j++) {
+                    String data = row.getCell(j) + "";
+                    str[j] = data;
+                }
+                list.add(str);
+            }
+        } catch (Exception e) {
+            e.printStackTrace();
+        } finally {
+            if (fis != null) {
+                try {
+                    fis.close();
+                } catch (IOException e) {
+                    e.printStackTrace();
+                }
+            }
+        }
+
+        return list;
+    }
+
+
+    /**
+     * 判断File文件的类型
+     *
+     * @param fileName 传入的文件
+     * @return 1-XLS文件,2-XLSX文件,3-文件类型错误
+     */
+    public static int checkFile(String fileName) {
+        if (fileName.endsWith("xlsx")) {
+            return 1;
+        }
+        if (fileName.endsWith("xls")) {
+            return 2;
+        }
+
+        return 3;
+    }
+}
+

+ 13 - 17
gyee-sample-impala/src/main/java/com/gyee/impala/controller/AnalyseScatterController.java

@@ -2,28 +2,16 @@ package com.gyee.impala.controller;
 
 
 import com.alibaba.fastjson.JSONObject;
-import com.alibaba.fastjson.TypeReference;
-import com.gyee.impala.common.constant.Constants;
-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.util.DateUtil;
-import com.gyee.impala.model.custom.TsPointData;
 import com.gyee.impala.model.custom.YawValuesVo;
-import com.gyee.impala.model.master.Tempscatterpoint;
-import com.gyee.impala.model.master.Windturbinepoint;
-import com.gyee.impala.model.slave.Windturbinecurvefittingmonth;
-import com.gyee.impala.model.slave.Windturbinewindyaw;
 import com.gyee.impala.service.custom.AnalyseScatterService;
-import com.gyee.impala.service.master.TempscatterpointService;
-import com.gyee.impala.service.master.WindturbinepointService;
-import com.gyee.impala.service.slave.WindturbinecurvefittingmonthService;
+import com.gyee.impala.service.custom.GoldenService;
 import com.gyee.impala.service.slave.WindturbinewindyawService;
-import org.apache.commons.lang3.StringUtils;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.web.bind.annotation.*;
 
-import java.text.DecimalFormat;
 import java.util.*;
 
 /**
@@ -38,6 +26,8 @@ public class AnalyseScatterController {
     private WindturbinewindyawService windturbinewindyawService;
     @Autowired
     private AnalyseScatterService scatterService;
+    @Autowired
+    private GoldenService goldenService;
 
 
     /**
@@ -100,10 +90,16 @@ public class AnalyseScatterController {
 
         scatterService.getTotalRangeCal(wtId, startTime, endTime);
 
-        if (null != list) {
-            return JsonResult.successData(ResultCode.SUCCESS, list);
-        } else {
+//        if (null != list) {
+//            return JsonResult.successData(ResultCode.SUCCESS, list);
+//        } else {
             return JsonResult.error(ResultCode.ERROR);
-        }
+//        }
+    }
+
+    @GetMapping("/test")
+    public JSONObject test(String point, long start, long end){
+        List<List<Long>> connectData = goldenService.getConnectData(point, start, end);
+        return JsonResult.successData(ResultCode.SUCCESS, connectData);
     }
 }

+ 2 - 2
gyee-sample-impala/src/main/java/com/gyee/impala/controller/BasicQueryConditionsController.java

@@ -6,6 +6,7 @@ import com.gyee.impala.common.result.JsonResult;
 import com.gyee.impala.common.result.ResultCode;
 import com.gyee.impala.model.master.Knowfaulttype;
 import com.gyee.impala.model.master.Windpowerstation;
+import com.gyee.impala.model.master.Windturbine;
 import com.gyee.impala.service.custom.TablePropService;
 import com.gyee.impala.service.master.KnowfaulttypeService;
 import com.gyee.impala.service.master.WindpowerstationService;
@@ -87,12 +88,11 @@ public class BasicQueryConditionsController {
     @GetMapping("/windturbine/all")
     @ResponseBody
     public JSONObject windsAll(String station){
-        List<Object> list = windturbineService.getWindTurbineAll(station);
+        List<Windturbine> list = windturbineService.getWindTurbineId(station);
         return JsonResult.successData(ResultCode.SUCCESS, list);
     }
 
 
-
     @PostMapping("/station/insert")
     @ResponseBody
     public JSONObject stationInsert(Windpowerstation obj){

+ 13 - 4
gyee-sample-impala/src/main/java/com/gyee/impala/controller/KnowBasicController.java

@@ -14,9 +14,10 @@ import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.web.bind.annotation.*;
 
 import java.util.List;
+import java.util.Map;
 
 /**
- * 知识库的基础数据
+ * 知识库数据查询
  */
 @CrossOrigin
 @RestController
@@ -148,15 +149,23 @@ public class KnowBasicController {
         return JsonResult.error(ResultCode.ERROR);
     }
 
-
-
     /**
      * 查询所有故障检修数据
      * @return
      */
     @GetMapping("/fault/fix/all")
+    public JSONObject faultFixWidgetAll(String... faultCode){
+        List<Knowfaultfix> list = knowfaultfixService.getAll(faultCode);
+        return JsonResult.successData(ResultCode.SUCCESS, list);
+    }
+
+    /**
+     * 查询所有故障检修数据
+     * @return
+     */
+    @GetMapping("/fault/fix/widget")
     public JSONObject faultFixAll(){
-        List<Knowfaultfix> list = knowfaultfixService.getAll();
+        List<Map<String, String>> list = knowfaultfixService.getWidgetAll();
         return JsonResult.successData(ResultCode.SUCCESS, list);
     }
 

+ 97 - 0
gyee-sample-impala/src/main/java/com/gyee/impala/controller/KnowFaultProcessController.java

@@ -0,0 +1,97 @@
+package com.gyee.impala.controller;
+
+
+import com.alibaba.fastjson.JSONObject;
+import com.gyee.impala.common.result.JsonResult;
+import com.gyee.impala.common.result.ResultCode;
+import com.gyee.impala.model.master.Knowfaultprocess;
+import com.gyee.impala.service.master.KnowfaultprocessService;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.*;
+
+import java.util.List;
+import java.util.Map;
+
+/**
+ * 知识库故障处理流程
+ */
+@CrossOrigin
+@RestController
+@RequestMapping("/know")
+public class KnowFaultProcessController {
+
+    @Autowired
+    private KnowfaultprocessService knowfaultprocessService;
+
+    /**
+     * 查询机组及型号
+     * @return
+     */
+    @GetMapping("/process/type")
+    public JSONObject knowFaultProcessType(){
+        List<Map<String, String>> list = knowfaultprocessService.getManufacturerAndModel();
+        return JsonResult.successData(ResultCode.SUCCESS, list);
+    }
+
+    /**
+     * 根据机组分类查询对应的部件
+     * @return
+     */
+    @GetMapping("/process/widget/list")
+    public JSONObject KnowFaultProcessWidgetAll(String category){
+        List<Map<String, String>> list = knowfaultprocessService.getWidgetAll(category);
+        return JsonResult.successData(ResultCode.SUCCESS, list);
+    }
+
+    /**
+     * 根据机组分类的部件查询相应的故障名
+     * @return
+     */
+    @GetMapping("/process/name/list")
+    public JSONObject KnowFaultProcessNameAll(String code, String category){
+        List<Knowfaultprocess> list = knowfaultprocessService.getNameAll(code, category);
+        return JsonResult.successData(ResultCode.SUCCESS, list);
+    }
+
+
+    /**
+     * 根据机组分类的部件查询相应的故障名
+     * @return
+     */
+    @GetMapping("/process/list")
+    public JSONObject KnowFaultProcessList(String... id){
+        List<Knowfaultprocess> list = knowfaultprocessService.getList(id);
+        return JsonResult.successData(ResultCode.SUCCESS, list);
+    }
+
+
+    /**
+     * 批量新增
+     * @param obj
+     * @return
+     */
+    @PostMapping("/process/insert")
+    public JSONObject knowMaintenanceInsert(@RequestBody List<Knowfaultprocess> obj){
+        boolean flag = knowfaultprocessService.insertOrUpdate(obj);
+        if (flag){
+            return JsonResult.success(ResultCode.SUCCESS);
+        }
+
+        return JsonResult.error(ResultCode.ERROR);
+    }
+
+    /**
+     * 删除故障处理手册数据
+     * @param id
+     * @return
+     */
+    @PostMapping("/process/delete")
+    public JSONObject maintenanceDelete(String id){
+        boolean flag = knowfaultprocessService.deleteItem(id);
+        if (flag){
+            return JsonResult.success(ResultCode.SUCCESS);
+        }
+
+        return JsonResult.error(ResultCode.ERROR);
+    }
+}

+ 74 - 0
gyee-sample-impala/src/main/java/com/gyee/impala/controller/KnowMaintenanceController.java

@@ -0,0 +1,74 @@
+package com.gyee.impala.controller;
+
+import com.alibaba.fastjson.JSONObject;
+import com.gyee.impala.common.result.JsonResult;
+import com.gyee.impala.common.result.ResultCode;
+import com.gyee.impala.model.master.Knowmaintenance;
+import com.gyee.impala.service.master.KnowmaintenanceService;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.*;
+
+import java.util.List;
+import java.util.Map;
+
+/**
+ * 知识库检修数据查询
+ */
+@CrossOrigin
+@RestController
+@RequestMapping("/know")
+public class KnowMaintenanceController {
+
+    @Autowired
+    private KnowmaintenanceService knowmaintenanceService;
+
+    /**
+     * 查询部件并过滤
+     * @return
+     */
+    @GetMapping("/maintenance/type")
+    public JSONObject knowMaintenanceAll(){
+        List<Map<String, String>> list = knowmaintenanceService.getWidgetAll();
+        return JsonResult.successData(ResultCode.SUCCESS, list);
+    }
+
+    /**
+     * 根据部件查询检修数据
+     * @return
+     */
+    @GetMapping("/maintenance/list")
+    public JSONObject knowMaintenanceAll(String widget, String code){
+        List<Knowmaintenance> list = knowmaintenanceService.getAll(widget ,code);
+        return JsonResult.successData(ResultCode.SUCCESS, list);
+    }
+
+    /**
+     * 新增检修数据
+     * @param obj
+     * @return
+     */
+    @PostMapping("/maintenance/insert")
+    public JSONObject knowMaintenanceInsert(@RequestBody List<Knowmaintenance> obj){
+        boolean flag = knowmaintenanceService.insertOrUpdate(obj);
+        if (flag){
+            return JsonResult.success(ResultCode.SUCCESS);
+        }
+
+        return JsonResult.error(ResultCode.ERROR);
+    }
+
+    /**
+     * 删除检修规则数据
+     * @param id
+     * @return
+     */
+    @PostMapping("/maintenance/delete")
+    public JSONObject maintenanceDelete(String id){
+        boolean flag = knowmaintenanceService.deleteItem(id);
+        if (flag){
+            return JsonResult.success(ResultCode.SUCCESS);
+        }
+
+        return JsonResult.error(ResultCode.ERROR);
+    }
+}

+ 16 - 0
gyee-sample-impala/src/main/java/com/gyee/impala/mapper/master/KnowfaultprocessMapper.java

@@ -0,0 +1,16 @@
+package com.gyee.impala.mapper.master;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.gyee.impala.model.master.Knowfaultprocess;
+
+/**
+ * <p>
+ *  Mapper 接口
+ * </p>
+ *
+ * @author chenmh
+ * @since 2022-02-21
+ */
+public interface KnowfaultprocessMapper extends BaseMapper<Knowfaultprocess> {
+
+}

+ 7 - 0
gyee-sample-impala/src/main/java/com/gyee/impala/mapper/master/KnowmaintenanceMapper.java

@@ -0,0 +1,7 @@
+package com.gyee.impala.mapper.master;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.gyee.impala.model.master.Knowmaintenance;
+
+public interface KnowmaintenanceMapper extends BaseMapper<Knowmaintenance> {
+}

+ 8 - 0
gyee-sample-impala/src/main/java/com/gyee/impala/mapper/master/PowercurvefittingMapper.java

@@ -0,0 +1,8 @@
+package com.gyee.impala.mapper.master;
+
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.gyee.impala.model.master.Powercurvefitting;
+
+public interface PowercurvefittingMapper extends BaseMapper<Powercurvefitting> {
+}

+ 0 - 8
gyee-sample-impala/src/main/java/com/gyee/impala/mapper/master/TempscatterpointMapper.java

@@ -1,8 +0,0 @@
-package com.gyee.impala.mapper.master;
-
-
-import com.baomidou.mybatisplus.core.mapper.BaseMapper;
-import com.gyee.impala.model.master.Tempscatterpoint;
-
-public interface TempscatterpointMapper extends BaseMapper<Tempscatterpoint> {
-}

+ 17 - 0
gyee-sample-impala/src/main/java/com/gyee/impala/mapper/slave/FaulthistoryMapper.java

@@ -0,0 +1,17 @@
+package com.gyee.impala.mapper.slave;
+
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.gyee.impala.model.slave.Faulthistory;
+
+/**
+ * <p>
+ *  Mapper 接口
+ * </p>
+ *
+ * @author chenmh
+ * @since 2022-03-01
+ */
+public interface FaulthistoryMapper extends BaseMapper<Faulthistory> {
+
+}

+ 16 - 0
gyee-sample-impala/src/main/java/com/gyee/impala/mapper/slave/FaultsnapMapper.java

@@ -0,0 +1,16 @@
+package com.gyee.impala.mapper.slave;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.gyee.impala.model.slave.Faultsnap;
+
+/**
+ * <p>
+ *  Mapper 接口
+ * </p>
+ *
+ * @author chenmh
+ * @since 2022-03-01
+ */
+public interface FaultsnapMapper extends BaseMapper<Faultsnap> {
+
+}

+ 17 - 0
gyee-sample-impala/src/main/java/com/gyee/impala/mapper/slave/Windturbinetestingpointai2Mapper.java

@@ -0,0 +1,17 @@
+package com.gyee.impala.mapper.slave;
+
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.gyee.impala.model.slave.Windturbinetestingpointai2;
+
+/**
+ * <p>
+ *  Mapper 接口
+ * </p>
+ *
+ * @author chenmh
+ * @since 2022-03-02
+ */
+public interface Windturbinetestingpointai2Mapper extends BaseMapper<Windturbinetestingpointai2> {
+
+}

+ 33 - 0
gyee-sample-impala/src/main/java/com/gyee/impala/model/custom/TsBooleanData.java

@@ -0,0 +1,33 @@
+package com.gyee.impala.model.custom;
+
+
+public class TsBooleanData {
+
+    private long ts;
+    private int status;
+    private boolean booleanValue;
+
+    public long getTs() {
+        return ts;
+    }
+
+    public void setTs(long ts) {
+        this.ts = ts;
+    }
+
+    public int getStatus() {
+        return status;
+    }
+
+    public void setStatus(int status) {
+        this.status = status;
+    }
+
+    public boolean getBooleanValue() {
+        return booleanValue;
+    }
+
+    public void setBooleanValue(boolean booleanValue) {
+        this.booleanValue = booleanValue;
+    }
+}

+ 1 - 1
gyee-sample-impala/src/main/java/com/gyee/impala/model/custom/TsPointData.java

@@ -2,7 +2,7 @@ package com.gyee.impala.model.custom;
 
 import java.math.BigDecimal;
 
-public class TsPointData {
+public class TsDoubleData {
 
     private long ts;
     private int status;

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

@@ -73,6 +73,10 @@ public class Casefault extends Model<Casefault> {
     @TableField("category")
     private String category;
 
+    @TableField("createtime")
+    private String createtime;
+
+
 
     /**
      * 前端精度丢失

+ 56 - 0
gyee-sample-impala/src/main/java/com/gyee/impala/model/master/Knowfaultprocess.java

@@ -0,0 +1,56 @@
+package com.gyee.impala.model.master;
+
+import com.baomidou.mybatisplus.annotation.TableName;
+import com.baomidou.mybatisplus.extension.activerecord.Model;
+import java.io.Serializable;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+
+/**
+ * <p>
+ * 
+ * </p>
+ *
+ * @author chenmh
+ * @since 2022-02-21
+ */
+@Data
+@EqualsAndHashCode(callSuper = false)
+@TableName("knowfaultprocess")
+public class Knowfaultprocess extends Model<Knowfaultprocess> {
+
+    private static final long serialVersionUID=1L;
+
+      private String id;
+
+    private String widget;
+
+    private String widgetcode;
+
+    private String type;
+
+    private String name;
+
+    private String identification;
+
+    private String cause;
+
+    private String process;
+
+    private String manufacturer;
+
+    private String model;
+
+    private String createtime;
+
+    private String remark;
+
+    private String category;
+
+
+    @Override
+    protected Serializable pkVal() {
+        return this.id;
+    }
+
+}

+ 45 - 0
gyee-sample-impala/src/main/java/com/gyee/impala/model/master/Knowmaintenance.java

@@ -0,0 +1,45 @@
+package com.gyee.impala.model.master;
+
+import com.baomidou.mybatisplus.annotation.TableName;
+import com.baomidou.mybatisplus.extension.activerecord.Model;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+
+import java.io.Serializable;
+
+
+/**
+ * <p>
+ *
+ * </p>
+ *
+ * @author chenmh
+ * @since 2021-10-25
+ */
+@Data
+@EqualsAndHashCode(callSuper = false)
+@TableName("knowmaintenance")
+public class Knowmaintenance extends Model<Knowmaintenance> {
+
+    private static final long serialVersionUID=1L;
+
+    private String id;
+
+    private String widget;
+
+    private String code;
+
+    private String process;
+
+    private String createtime;
+
+    private String remark;
+
+    private String category;
+
+
+    @Override
+    protected Serializable pkVal() {
+        return this.id;
+    }
+}

+ 6 - 2
gyee-sample-impala/src/main/java/com/gyee/impala/model/master/Tempscatterpoint.java

@@ -10,8 +10,8 @@ import java.io.Serializable;
 
 @Data
 @EqualsAndHashCode(callSuper = false)
-@TableName("tempscatterpoint")
-public class Tempscatterpoint extends Model<Tempscatterpoint> {
+@TableName("Powercurvefitting")
+public class Powercurvefitting extends Model<Powercurvefitting> {
 
     private static final long serialVersionUID=1L;
 
@@ -29,6 +29,10 @@ public class Tempscatterpoint extends Model<Tempscatterpoint> {
 
     private String lineoptimal;
 
+    private String remark;
+
+    private String category;
+
 
     @Override
     protected Serializable pkVal() {

+ 73 - 0
gyee-sample-impala/src/main/java/com/gyee/impala/model/slave/Faulthistory.java

@@ -0,0 +1,73 @@
+package com.gyee.impala.model.slave;
+
+import com.baomidou.mybatisplus.annotation.TableName;
+import com.baomidou.mybatisplus.extension.activerecord.Model;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.TableField;
+import java.io.Serializable;
+import java.util.Date;
+
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+
+/**
+ * <p>
+ * 
+ * </p>
+ *
+ * @author chenmh
+ * @since 2022-03-01
+ */
+@Data
+@EqualsAndHashCode(callSuper = false)
+@TableName("FAULTHISTORY")
+public class Faulthistory extends Model<Faulthistory> {
+
+    private static final long serialVersionUID=1L;
+
+      @TableId("ID")
+    private String id;
+
+    @TableField("FAULTTIME")
+    private Date faulttime;
+
+    @TableField("SNAPID")
+    private String snapid;
+
+    @TableField("OPERATOR")
+    private String operator;
+
+    /**
+     * 1-?? 2-?? 3-?????
+     */
+    @TableField("CONFIRMTYPE")
+    private String confirmtype;
+
+    @TableField("CONFIRMTIME")
+    private Date confirmtime;
+
+    @TableField("CONFIRMPERSON")
+    private String confirmperson;
+
+    /**
+     * 1-???? 3-????
+     */
+    @TableField("MESSAGETYPE")
+    private String messagetype;
+
+    @TableField("ALERTSNAPID")
+    private String alertsnapid;
+
+    /**
+     * ?????????,???????????0, ??????--??,????1?,?????--??
+     */
+    @TableField("ALERTTEXTLAST")
+    private String alerttextlast;
+
+
+    @Override
+    protected Serializable pkVal() {
+        return this.id;
+    }
+
+}

+ 97 - 0
gyee-sample-impala/src/main/java/com/gyee/impala/model/slave/Faultsnap.java

@@ -0,0 +1,97 @@
+package com.gyee.impala.model.slave;
+
+import com.baomidou.mybatisplus.annotation.TableName;
+import com.baomidou.mybatisplus.extension.activerecord.Model;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.TableField;
+import java.io.Serializable;
+import java.util.Date;
+
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+
+/**
+ * <p>
+ * 
+ * </p>
+ *
+ * @author chenmh
+ * @since 2022-03-01
+ */
+@Data
+@EqualsAndHashCode(callSuper = false)
+@TableName("FAULTSNAP")
+public class Faultsnap extends Model<Faultsnap> {
+
+    private static final long serialVersionUID=1L;
+
+      @TableId("ID")
+    private String id;
+
+    @TableField("STATIONID")
+    private String stationid;
+
+    @TableField("PROJECTID")
+    private String projectid;
+
+    @TableField("LINEID")
+    private String lineid;
+
+    @TableField("WINDTURBINEID")
+    private String windturbineid;
+
+    @TableField("ALERTVALUE")
+    private String alertvalue;
+
+    @TableField("CATEGORY1")
+    private String category1;
+
+    @TableField("CATEGORY2")
+    private String category2;
+
+    @TableField("CATEGORY3")
+    private String category3;
+
+    @TableField("RANK")
+    private String rank;
+
+    @TableField("ISOPENED")
+    private String isopened;
+
+    @TableField("LASTUPDATETIME")
+    private Date lastupdatetime;
+
+    @TableField("LASTUPDATEPERSON")
+    private String lastupdateperson;
+
+    @TableField("STATIONNAME")
+    private String stationname;
+
+    @TableField("PROJECTNAME")
+    private String projectname;
+
+    @TableField("LINENAME")
+    private String linename;
+
+    @TableField("WINDTURBINENAME")
+    private String windturbinename;
+
+    @TableField("ALERTTEXT")
+    private String alerttext;
+
+    @TableField("MODELID")
+    private String modelid;
+
+    @TableField("TESTINGPOINTKEY")
+    private String testingpointkey;
+
+    @TableField("ALARMSNAPID")
+    private String alarmsnapid;
+
+
+    @Override
+    protected Serializable pkVal() {
+        return this.id;
+    }
+
+}

+ 1 - 1
gyee-sample-impala/src/main/java/com/gyee/impala/model/slave/Windturbinecurvefittingmonth.java

@@ -24,7 +24,7 @@ public class Windturbinecurvefittingmonth extends Model<Windturbinecurvefittingm
     private static final long serialVersionUID=1L;
 
       @TableId("ID")
-    private Integer id;
+    private Long id;
 
     @TableField("WINDTURBINEID")
     private String windturbineid;

+ 86 - 0
gyee-sample-impala/src/main/java/com/gyee/impala/model/slave/Windturbinetestingpointai2.java

@@ -0,0 +1,86 @@
+package com.gyee.impala.model.slave;
+
+import com.baomidou.mybatisplus.annotation.TableName;
+import com.baomidou.mybatisplus.extension.activerecord.Model;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.TableField;
+import java.io.Serializable;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+
+/**
+ * <p>
+ * 
+ * </p>
+ *
+ * @author chenmh
+ * @since 2022-03-02
+ */
+@Data
+@EqualsAndHashCode(callSuper = false)
+@TableName("WINDTURBINETESTINGPOINTAI2")
+public class Windturbinetestingpointai2 extends Model<Windturbinetestingpointai2> {
+
+    private static final long serialVersionUID=1L;
+
+      @TableId("ID")
+    private String id;
+
+    @TableField("CODE")
+    private String code;
+
+    @TableField("NAME")
+    private String name;
+
+    @TableField("MODEL")
+    private String model;
+
+    @TableField("VALUEUNIT")
+    private String valueunit;
+
+    @TableField("ENGLISHNAME")
+    private String englishname;
+
+    @TableField("TYPEID")
+    private String typeid;
+
+    @TableField("MODELID")
+    private String modelid;
+
+    @TableField("MAXVAL")
+    private String maxval;
+
+    @TableField("MINVAL")
+    private String minval;
+
+    @TableField("REASONABLEMAXVAL")
+    private String reasonablemaxval;
+
+    @TableField("REASONABLEMINVAL")
+    private String reasonableminval;
+
+    @TableField("WINDTURBINEID")
+    private String windturbineid;
+
+    @TableField("UNIFORMCODE")
+    private String uniformcode;
+
+    @TableField("SHORTID")
+    private String shortid;
+
+    @TableField("LONGID")
+    private String longid;
+
+    @TableField("WINDPOWERSTATIONID")
+    private String windpowerstationid;
+
+    @TableField("REALTIMEID")
+    private String realtimeid;
+
+
+    @Override
+    protected Serializable pkVal() {
+        return this.id;
+    }
+
+}

+ 9 - 9
gyee-sample-impala/src/main/java/com/gyee/impala/schdule/TaskPerformance.java

@@ -4,7 +4,7 @@ import com.gyee.impala.common.feign.RemoteServiceBuilder;
 import com.gyee.impala.common.util.DateUtil;
 import com.gyee.impala.common.util.FileUtil;
 import com.gyee.impala.common.util.SnowFlakeUtil;
-import com.gyee.impala.model.custom.TsPointData;
+import com.gyee.impala.model.custom.TsDoubleData;
 import com.gyee.impala.model.master.Windturbine;
 import com.gyee.impala.model.master.Windturbinepoint;
 import com.gyee.impala.service.master.WindturbineService;
@@ -62,18 +62,18 @@ public class TaskPerformance {
                 break;
 
             System.out.println("======: " + listNSS.get(i).getId());
-            Windturbinepoint wp_zs = windturbinepointService.getListByWtIdAndUniformCode(listNSS.get(i).getId(), FDJZS);
-            Windturbinepoint wp_zt = windturbinepointService.getListByWtIdAndUniformCode(listNSS.get(i).getId(), FJMXZT);
-            Windturbinepoint wp_qf = windturbinepointService.getListByWtIdAndUniformCode(listNSS.get(i).getId(), RSSQFZT);
-            Windturbinepoint wp_jy = windturbinepointService.getListByWtIdAndUniformCode(listNSS.get(i).getId(), JYJD);
+            Windturbinepoint wp_zs = windturbinepointService.getItemByWtIdAndUniformCode(listNSS.get(i).getId(), FDJZS);
+            Windturbinepoint wp_zt = windturbinepointService.getItemByWtIdAndUniformCode(listNSS.get(i).getId(), FJMXZT);
+            Windturbinepoint wp_qf = windturbinepointService.getItemByWtIdAndUniformCode(listNSS.get(i).getId(), RSSQFZT);
+            Windturbinepoint wp_jy = windturbinepointService.getItemByWtIdAndUniformCode(listNSS.get(i).getId(), JYJD);
 
-            List<TsPointData> zsData = remoteServiceBuilder.ShardingService().getHistorySnap(wp_zs.getPoint(),
+            List<TsDoubleData> zsData = remoteServiceBuilder.ShardingService().getHistorySnapAI(wp_zs.getPoint(),
                     DateUtil.covertDateTimestamp(START_TIME), DateUtil.covertDateTimestamp(END_TIME), interval);
-            List<TsPointData> ztData = remoteServiceBuilder.ShardingService().getHistorySnap(wp_zt.getPoint(),
+            List<TsDoubleData> ztData = remoteServiceBuilder.ShardingService().getHistorySnapAI(wp_zt.getPoint(),
                     DateUtil.covertDateTimestamp(START_TIME), DateUtil.covertDateTimestamp(END_TIME), interval);
-            List<TsPointData> qfData = remoteServiceBuilder.ShardingService().getHistorySnap(wp_qf.getPoint(),
+            List<TsDoubleData> qfData = remoteServiceBuilder.ShardingService().getHistorySnapAI(wp_qf.getPoint(),
                     DateUtil.covertDateTimestamp(START_TIME), DateUtil.covertDateTimestamp(END_TIME), interval);
-            List<TsPointData> jdData = remoteServiceBuilder.ShardingService().getHistorySnap(wp_jy.getPoint(),
+            List<TsDoubleData> jdData = remoteServiceBuilder.ShardingService().getHistorySnapAI(wp_jy.getPoint(),
                     DateUtil.covertDateTimestamp(START_TIME), DateUtil.covertDateTimestamp(END_TIME), interval);
 
             int k = 0;

+ 130 - 82
gyee-sample-impala/src/main/java/com/gyee/impala/service/custom/AnalyseScatterService.java

@@ -1,18 +1,23 @@
 package com.gyee.impala.service.custom;
 
 
+import com.alibaba.fastjson.JSON;
+import com.alibaba.fastjson.JSONObject;
 import com.gyee.impala.common.constant.Constants;
 import com.gyee.impala.common.exception.CustomException;
 import com.gyee.impala.common.feign.RemoteServiceBuilder;
 import com.gyee.impala.common.result.ResultCode;
+import com.gyee.impala.common.util.Base64Util;
 import com.gyee.impala.common.util.DateUtil;
-import com.gyee.impala.model.custom.TsPointData;
+import com.gyee.impala.model.custom.TsDoubleData;
+import com.gyee.impala.model.master.Powercurvefitting;
 import com.gyee.impala.model.master.Windturbinepoint;
 import com.gyee.impala.model.slave.Windturbinecurvefittingmonth;
-import com.gyee.impala.service.master.TempscatterpointService;
+import com.gyee.impala.model.slave.Windturbinetestingpointai2;
+import com.gyee.impala.service.master.PowercurvefittingService;
 import com.gyee.impala.service.master.WindturbinepointService;
 import com.gyee.impala.service.slave.WindturbinecurvefittingmonthService;
-import com.gyee.impala.service.slave.WindturbinewindyawService;
+import com.gyee.impala.service.slave.Windturbinetestingpointai2Service;
 import lombok.extern.slf4j.Slf4j;
 import org.apache.commons.lang3.StringUtils;
 import org.springframework.beans.factory.annotation.Autowired;
@@ -29,16 +34,20 @@ import java.util.*;
 public class AnalyseScatterService {
 
     // 读取golden数据库的时间间隔
-    private final int interval = 150;
+    private final int interval = 1200;
 
     @Autowired
     private WindturbinepointService windturbinepointService;
     @Autowired
-    private TempscatterpointService tempscatterpointService;
+    private Windturbinetestingpointai2Service windturbinetestingpointai2Service;
+    @Autowired
+    private PowercurvefittingService powercurvefittingService;
     @Autowired
     private WindturbinecurvefittingmonthService windturbinecurvefittingmonthService;
     @Autowired
     private RemoteServiceBuilder remoteServiceBuilder;
+    @Autowired
+    private GoldenService goldenService;
 
 
     /**
@@ -56,94 +65,124 @@ public class AnalyseScatterService {
         List<List<Double>> optimal = new ArrayList<>(); //最优功率
 
         Calendar cal = Calendar.getInstance();
-//        Tempscatterpoint item = tempscatterpointService.getOne(station, wtId, time);
-//
-//        if (item != null){
-//            // 缓存有数据直接读取
-//            scatter = JSONObject.parseObject(item.getScatter(), new TypeReference<List<List<Double>>>() {});
-//            actual = JSONObject.parseObject(item.getLineactual(), new TypeReference<List<List<Double>>>() {});
-//            optimal = JSONObject.parseObject(item.getLineoptimal(), new TypeReference<List<List<Double>>>() {});
-//        } else{
-        // 缓存没数据,先查golden,在缓存
-        cal.setTime(DateUtil.dateTime(DateUtil.YYYY_MM, time));
-        int year = cal.get(Calendar.YEAR);
-        int month = cal.get(Calendar.MONTH);
-
-        time = year + "-" + StringUtils.leftPad(String.valueOf(month + 1), 2, "0");
-
-        cal.set(Calendar.DAY_OF_MONTH, cal.getActualMinimum(Calendar.DAY_OF_MONTH));
-        long startTime = cal.getTime().getTime();
-        cal.set(Calendar.DAY_OF_MONTH, cal.getActualMaximum(Calendar.DAY_OF_MONTH));
-        long endTime = cal.getTime().getTime();
-
-        try{
-            /** --------------  散点图  风速、功率  -------------**/
-            Windturbinepoint power = windturbinepointService.getListByWtIdAndUniformCode(wtId, Constants.POINT_POWER);
-            Windturbinepoint speed = windturbinepointService.getListByWtIdAndUniformCode(wtId, Constants.POINT_SPEED);
-            List<TsPointData> listPower = remoteServiceBuilder.ShardingService().getHistorySnap(power.getPoint(), startTime, endTime, interval);
-            List<TsPointData> listSpeed = remoteServiceBuilder.ShardingService().getHistorySnap(speed.getPoint(), startTime, endTime, interval);
-            /** --------------  散点图  风速、功率  -------------**/
-
-            DecimalFormat dcmFmt = new DecimalFormat("0.00");
-            if (!listPower.isEmpty() && !listSpeed.isEmpty()) {
-                for (int i = 0; i < listPower.size(); i++) {
-                    List<Double> ds = new ArrayList<>();
-
-                    double f = listSpeed.get(i).getDoubleValue();
-                    ds.add(Double.valueOf(dcmFmt.format(f)));
-                    f = listPower.get(i).getDoubleValue();
-                    ds.add(Double.valueOf(dcmFmt.format(f)));
-                    ds.add((double) listPower.get(i).getTs());
-                    scatter.add(ds);
+        Powercurvefitting item = powercurvefittingService.getOne(station, wtId, time);
+
+        if (item != null) {
+            // 缓存有数据直接使用缓存
+        } else {
+            // 缓存没数据,先查golden,在缓存
+            cal.setTime(DateUtil.dateTime(DateUtil.YYYY_MM, time));
+            int year = cal.get(Calendar.YEAR);
+            int month = cal.get(Calendar.MONTH);
+
+            time = year + "-" + StringUtils.leftPad(String.valueOf(month + 1), 2, "0");
+
+            cal.set(Calendar.DAY_OF_MONTH, cal.getActualMinimum(Calendar.DAY_OF_MONTH));
+            long startTime = cal.getTime().getTime();
+            cal.set(Calendar.DAY_OF_MONTH, cal.getActualMaximum(Calendar.DAY_OF_MONTH));
+            long endTime = cal.getTime().getTime();
+
+            try{
+    //            /** --------------  散点图  风速、功率  -------------**/
+                Windturbinetestingpointai2 power = windturbinetestingpointai2Service.getItemByStationAndCode(station, wtId, Constants.POINT_POWER);
+                Windturbinetestingpointai2 speed = windturbinetestingpointai2Service.getItemByStationAndCode(station, wtId, Constants.POINT_SPEED);
+                Windturbinetestingpointai2 status = windturbinetestingpointai2Service.getItemByStationAndCode(station, wtId, Constants.FJZT);
+
+                List<TsDoubleData> listPower = remoteServiceBuilder.ShardingService().getHistorySnapAI(power.getId(), startTime, endTime, interval);
+                List<TsDoubleData> listSpeed = remoteServiceBuilder.ShardingService().getHistorySnapAI(speed.getId(), startTime, endTime, interval);
+                /** --------------  散点图  风速、功率  -------------**/
+
+                DecimalFormat dcmFmt = new DecimalFormat("0.00");
+                if (!listPower.isEmpty() && !listSpeed.isEmpty()) {
+                    for (int j = 0; j < listPower.size(); j++) {
+                        List<Double> ds = new ArrayList<>();
+
+                        double f = listSpeed.get(j).getDoubleValue();
+                        ds.add(Double.valueOf(dcmFmt.format(f)));
+                        f = listPower.get(j).getDoubleValue() < 0 ? 0 : listPower.get(j).getDoubleValue();
+                        ds.add(Double.valueOf(dcmFmt.format(f)));
+                        scatter.add(ds);
+                    }
                 }
-            }
 
-            List<Windturbinecurvefittingmonth> curve = windturbinecurvefittingmonthService.getListByWtIdAndYearAndMonth(wtId, String.valueOf(year), String.valueOf(month));
-            for (Windturbinecurvefittingmonth wc : curve) {
-                List<Double> ap = new ArrayList<>();
-                List<Double> op = new ArrayList<>();
-                int c = wc.getSpeed().intValue();
-
-                if (c == wc.getSpeed()) {
-                    ap.add(wc.getSpeed());
-                    ap.add(wc.getActualpower());// 实际拟合功率
-                    op.add(wc.getSpeed());// 风速
-                    op.add(wc.getOptimalpower());// 最优拟合功率
-                    actual.add(ap);
-                    optimal.add(op);
+
+                /** --------------  散点图  风速、功率  -------------**/
+    //
+    //            List<List<Long>> listStatus = goldenService.getConnectData(status.getId(), startTime, endTime);
+    ////            if (listStatus.size() > 0){
+    ////                for (int i = 0; i< listStatus.size(); i++){
+    ////                    for (List<Long> ls : listStatus){
+    ////                        List<TsDoubleData> listPower = remoteServiceBuilder.ShardingService().getHistorySnapAI(power.getId(), ls.get(0), ls.get(1), interval);
+    ////                        List<TsDoubleData> listSpeed = remoteServiceBuilder.ShardingService().getHistorySnapAI(speed.getId(), ls.get(0), ls.get(1), interval);
+    ////                        /** --------------  散点图  风速、功率  -------------**/
+    ////
+    ////                        DecimalFormat dcmFmt = new DecimalFormat("0.00");
+    ////                        if (!listPower.isEmpty() && !listSpeed.isEmpty()) {
+    ////                            for (int j = 0; j < listPower.size(); j++) {
+    ////                                List<Double> ds = new ArrayList<>();
+    ////
+    ////                                double f = listSpeed.get(j).getDoubleValue();
+    ////                                ds.add(Double.valueOf(dcmFmt.format(f)));
+    ////                                f = listPower.get(j).getDoubleValue() < 0 ? 0 : listPower.get(j).getDoubleValue();
+    ////                                ds.add(Double.valueOf(dcmFmt.format(f)));
+    ////                                scatter.add(ds);
+    ////                            }
+    ////                        }
+    ////                    }
+    ////                }
+    ////            }
+
+                List<Windturbinecurvefittingmonth> curve = windturbinecurvefittingmonthService.getListByWtIdAndYearAndMonth(wtId, String.valueOf(year), String.valueOf(month));
+                for (Windturbinecurvefittingmonth wc : curve) {
+                    List<Double> ap = new ArrayList<>();
+                    List<Double> op = new ArrayList<>();
+                    int c = wc.getSpeed().intValue();
+
+                    if (c == wc.getSpeed()) {
+                        ap.add(wc.getSpeed());
+                        ap.add(wc.getActualpower());// 实际拟合功率
+                        op.add(wc.getSpeed());// 风速
+                        op.add(wc.getOptimalpower());// 最优拟合功率
+                        actual.add(ap);
+                        optimal.add(op);
+                    }
                 }
-            }
 
-            //新风机的拟合数据插入缓存
-//            Tempscatterpoint temp = new Tempscatterpoint();
-//            temp.setStation(station);
-//            temp.setWindturbineid(wtId);
-//            temp.setTime(time);
-//            temp.setScatter(JSON.toJSONString(scatter));
-//            temp.setLineactual(JSON.toJSONString(actual));
-//            temp.setLineoptimal(JSON.toJSONString(optimal));
-//            tempscatterpointService.insertItem(temp);
-//        }
-
-            result.put("scatter", scatter);
-            result.put("lineactual", actual);
-            result.put("lineoptimal", optimal);
-
-            return result;
-        } catch (CustomException e) {
-            log.error(e.getMessage());
-            throw new CustomException(ResultCode.ERROR_DATA);
+
+                //新风机的拟合数据插入缓存
+//                Powercurvefitting temp = new Powercurvefitting();
+//                temp.setStation(station);
+//                temp.setWindturbineid(wtId);
+//                temp.setTime(time);
+//                System.out.println("===" + Base64Util.encode(scatter.toString()).length());
+//                temp.setScatter(Base64Util.encode(scatter.toString()));
+//                temp.setLineactual(Base64Util.encode(actual.toString()));
+//                temp.setLineoptimal(Base64Util.encode(optimal.toString()));
+//                temp.setRemark("1");
+//                temp.setCategory("1");
+//                powercurvefittingService.insertItem(temp);
+
+            } catch (CustomException e) {
+                log.error(e.getMessage());
+                throw new CustomException(ResultCode.ERROR_DATA);
+            }
         }
+
+        result.put("scatter", scatter);
+        result.put("lineactual", actual);
+        result.put("lineoptimal", optimal);
+
+        return result;
     }
 
 
     public void getTotalRangeCal(String wtId, long startTime, long endTime) {
         try{
             /** --------------  对风偏差  风速、风向  -------------**/
-            Windturbinepoint direct = windturbinepointService.getListByWtIdAndUniformCode(wtId, Constants.POINT_WIND_DIRECT);
-            Windturbinepoint angle = windturbinepointService.getListByWtIdAndUniformCode(wtId, Constants.POINT_WIND_ANGLE);
-            List<TsPointData> listDirect = remoteServiceBuilder.ShardingService().getHistorySnap(direct.getPoint(), startTime, endTime, interval);
-            List<TsPointData> listAngle = remoteServiceBuilder.ShardingService().getHistorySnap(angle.getPoint(), startTime, endTime, interval);
+            Windturbinepoint direct = windturbinepointService.getItemByWtIdAndUniformCode(wtId, Constants.POINT_WIND_DIRECT);
+            Windturbinepoint angle = windturbinepointService.getItemByWtIdAndUniformCode(wtId, Constants.POINT_WIND_ANGLE);
+            List<TsDoubleData> listDirect = remoteServiceBuilder.ShardingService().getHistorySnapAI(direct.getPoint(), startTime, endTime, interval);
+            List<TsDoubleData> listAngle = remoteServiceBuilder.ShardingService().getHistorySnapAI(angle.getPoint(), startTime, endTime, interval);
             /** --------------  对风偏差  风速、风向  -------------**/
 
         } catch (CustomException e) {
@@ -151,4 +190,13 @@ public class AnalyseScatterService {
             throw new CustomException(ResultCode.ERROR_DATA);
         }
     }
+
+
+    public static void main(String[] args){
+        StringBuilder sb = new StringBuilder();
+        for(int i = 0; i < 200000; i++)
+            sb.append("A");
+
+        System.out.println(sb.toString().length());
+    }
 }

+ 48 - 6
gyee-sample-impala/src/main/java/com/gyee/impala/service/custom/GoldenService.java

@@ -6,7 +6,8 @@ import com.gyee.impala.common.exception.CustomException;
 import com.gyee.impala.common.feign.RemoteServiceBuilder;
 import com.gyee.impala.common.result.ResultCode;
 import com.gyee.impala.common.util.DateUtil;
-import com.gyee.impala.model.custom.TsPointData;
+import com.gyee.impala.model.custom.TsBooleanData;
+import com.gyee.impala.model.custom.TsDoubleData;
 import com.gyee.impala.model.master.Caseperformance;
 import com.gyee.impala.model.master.Windturbinepoint;
 import com.gyee.impala.service.master.CaseperformanceService;
@@ -46,12 +47,12 @@ public class GoldenService {
 
             for (String point : points) {
                 Windturbinepoint w = windturbinepointService.getByPoint(point);
-                List<TsPointData> data = new ArrayList<>();
+                List<TsDoubleData> data = new ArrayList<>();
                 Map m = new HashMap();
                 if (interval <= 0) {
-                    data = remoteService.ShardingService().getHistoryRaw(point, startTs, endTs);
+                    data = remoteService.ShardingService().getHistoryRawAI(point, startTs, endTs);
                 } else {
-                    data = remoteService.ShardingService().getHistorySnap(point, startTs, endTs, interval);
+                    data = remoteService.ShardingService().getHistorySnapAI(point, startTs, endTs, interval);
                 }
                 m.put("name", w.getPointdes());
                 m.put("code", w.getWidgetcode());
@@ -88,9 +89,9 @@ public class GoldenService {
                 List<Windturbinepoint> winds = windturbinepointService.getListByStationAndWtIdAndUniformCode(cp.getStationen(), cp.getWindturbineid(), codes);
 
                 //golden适配器取数据
-                List<TsPointData> speedList = remoteService.ShardingService().getHistorySnap(winds.get(0).getPoint(), DateUtil.covertDateTimestamp(cp.getStarttime()),
+                List<TsDoubleData> speedList = remoteService.ShardingService().getHistorySnapAI(winds.get(0).getPoint(), DateUtil.covertDateTimestamp(cp.getStarttime()),
                         DateUtil.covertDateTimestamp(cp.getEndtime()), interval);
-                List<TsPointData> powerList = remoteService.ShardingService().getHistorySnap(winds.get(1).getPoint(), DateUtil.covertDateTimestamp(cp.getStarttime()),
+                List<TsDoubleData> powerList = remoteService.ShardingService().getHistorySnapAI(winds.get(1).getPoint(), DateUtil.covertDateTimestamp(cp.getStarttime()),
                         DateUtil.covertDateTimestamp(cp.getEndtime()), interval);
 
                 if (speedList == null || powerList == null)
@@ -138,4 +139,45 @@ public class GoldenService {
         }
 
     }
+
+
+    /**
+     * 过滤并网的数据时间
+     * @param point
+     * @param startTime
+     * @param endTime
+     * @return
+     */
+    public List<List<Long>> getConnectData(String point, long startTime, long endTime) {
+        List<List<Long>> list = new ArrayList<>();
+
+        try{
+            List<TsDoubleData> data = remoteService.ShardingService().getHistoryRawAI(point, startTime, endTime);
+            int index = 0;
+            boolean flag = false;
+            if (data != null && data.size() > 0){
+                for (int i = 0; i < data.size() - 1; i++){
+                    TsDoubleData obj = data.get(i);
+                    // 1表示并网
+                    if (flag == false && obj.getDoubleValue() == 1){
+                        index = i;
+                        flag = true;
+                        continue;
+                    }
+                    if (flag == true && obj.getDoubleValue() == 0){
+                        List<Long> ls = new ArrayList<>();
+                        ls.add(data.get(index).getTs());
+                        ls.add(obj.getTs());
+                        list.add(ls);
+                        flag = false;
+                    }
+                }
+            }
+        }catch (Exception e) {
+            log.error(e.getMessage());
+            throw new CustomException(ResultCode.ERROR_DATA);
+        }
+
+        return list;
+    }
 }

+ 3 - 3
gyee-sample-impala/src/main/java/com/gyee/impala/service/custom/IRealTimeData.java

@@ -1,7 +1,7 @@
 package com.gyee.impala.service.custom;
 
 import com.gyee.impala.common.exception.CustomException;
-import com.gyee.impala.model.custom.TsPointData;
+import com.gyee.impala.model.custom.TsDoubleData;
 
 import java.util.List;
 
@@ -13,7 +13,7 @@ public interface IRealTimeData {
      * @return
      * @throws CustomException
      */
-    List<TsPointData> getRealData(List<String> points) throws CustomException;
+    List<TsDoubleData> getRealData(List<String> points) throws CustomException;
 
 
     /**
@@ -23,5 +23,5 @@ public interface IRealTimeData {
      * @param endTs   结束时间
      * @return
      */
-    List<TsPointData> getHistoryDataRaw(String point, Long startTs, Long endTs);
+    List<TsDoubleData> getHistoryDataRaw(String point, Long startTs, Long endTs);
 }

+ 2 - 0
gyee-sample-impala/src/main/java/com/gyee/impala/service/impl/master/CasefaultServiceImpl.java

@@ -5,6 +5,7 @@ import com.gyee.impala.common.base.ExcludeQueryWrapper;
 import com.gyee.impala.common.exception.CustomException;
 import com.gyee.impala.common.feign.RemoteServiceBuilder;
 import com.gyee.impala.common.result.ResultCode;
+import com.gyee.impala.common.util.DateUtil;
 import com.gyee.impala.common.util.SnowFlakeUtil;
 import com.gyee.impala.model.master.Casefault;
 import com.gyee.impala.mapper.master.CasefaultMapper;
@@ -73,6 +74,7 @@ public class CasefaultServiceImpl extends ServiceImpl<CasefaultMapper, Casefault
                 if (StringUtils.isEmpty(fault.getId())) {
                     // 新增
                     fault.setId(SnowFlakeUtil.generateId());
+                    fault.setCreatetime(DateUtil.getCurrentDate());
                 }
             }
 

+ 6 - 6
gyee-sample-impala/src/main/java/com/gyee/impala/service/impl/master/CaseperformanceServiceImpl.java

@@ -11,7 +11,7 @@ import com.gyee.impala.common.util.DateUtil;
 import com.gyee.impala.common.util.SnowFlakeUtil;
 import com.gyee.impala.common.util.StationMapperUtil;
 import com.gyee.impala.mapper.master.CaseperformanceMapper;
-import com.gyee.impala.model.custom.TsPointData;
+import com.gyee.impala.model.custom.TsDoubleData;
 import com.gyee.impala.model.master.Caseperformance;
 import com.gyee.impala.model.master.Windturbinepoint;
 import com.gyee.impala.service.master.CaseperformanceService;
@@ -133,9 +133,9 @@ public class CaseperformanceServiceImpl extends ServiceImpl<CaseperformanceMappe
             List<Windturbinepoint> winds = windturbinepointService.getListByStationAndWtIdAndUniformCode(cp.getStationen(), cp.getWindturbineid(), codes);
 
             //golden适配器取数据
-            List<TsPointData> speedList = remoteService.ShardingService().getHistorySnap(winds.get(0).getPoint(), DateUtil.covertDateTimestamp(cp.getStarttime()),
+            List<TsDoubleData> speedList = remoteService.ShardingService().getHistorySnapAI(winds.get(0).getPoint(), DateUtil.covertDateTimestamp(cp.getStarttime()),
                     DateUtil.covertDateTimestamp(cp.getEndtime()), interval);
-            List<TsPointData> powerList = remoteService.ShardingService().getHistorySnap(winds.get(1).getPoint(), DateUtil.covertDateTimestamp(cp.getStarttime()),
+            List<TsDoubleData> powerList = remoteService.ShardingService().getHistorySnapAI(winds.get(1).getPoint(), DateUtil.covertDateTimestamp(cp.getStarttime()),
                     DateUtil.covertDateTimestamp(cp.getEndtime()), interval);
 
             if (speedList == null || powerList == null)
@@ -315,11 +315,11 @@ public class CaseperformanceServiceImpl extends ServiceImpl<CaseperformanceMappe
             //查询测点名
             List<Windturbinepoint> winds = windturbinepointService.getListByStationAndWtIdAndUniformCode(cp.getStationen(), cp.getWindturbineid(), codes);
             //golden适配器取数据
-            List<TsPointData> speedList = remoteService.ShardingService().getHistorySnap(winds.get(0).getPoint(), DateUtil.covertDateTimestamp(cp.getStarttime()),
+            List<TsDoubleData> speedList = remoteService.ShardingService().getHistorySnapAI(winds.get(0).getPoint(), DateUtil.covertDateTimestamp(cp.getStarttime()),
                     DateUtil.covertDateTimestamp(cp.getEndtime()), interval);
-            List<TsPointData> powerList = remoteService.ShardingService().getHistorySnap(winds.get(1).getPoint(), DateUtil.covertDateTimestamp(cp.getStarttime()),
+            List<TsDoubleData> powerList = remoteService.ShardingService().getHistorySnapAI(winds.get(1).getPoint(), DateUtil.covertDateTimestamp(cp.getStarttime()),
                     DateUtil.covertDateTimestamp(cp.getEndtime()), interval);
-            List<TsPointData> llglList = remoteService.ShardingService().getHistorySnap(winds.get(2).getPoint(), DateUtil.covertDateTimestamp(cp.getStarttime()),
+            List<TsDoubleData> llglList = remoteService.ShardingService().getHistorySnapAI(winds.get(2).getPoint(), DateUtil.covertDateTimestamp(cp.getStarttime()),
                     DateUtil.covertDateTimestamp(cp.getEndtime()), interval);
 
             if (speedList == null || powerList == null || llglList == null)

+ 35 - 4
gyee-sample-impala/src/main/java/com/gyee/impala/service/impl/master/KnowfaultfixServiceImpl.java

@@ -1,6 +1,7 @@
 package com.gyee.impala.service.impl.master;
 
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.gyee.impala.common.base.ExcludeQueryWrapper;
 import com.gyee.impala.common.exception.CustomException;
 import com.gyee.impala.common.result.ResultCode;
 import com.gyee.impala.common.util.SnowFlakeUtil;
@@ -11,7 +12,10 @@ import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import org.apache.commons.lang3.StringUtils;
 import org.springframework.stereotype.Service;
 
+import java.util.ArrayList;
+import java.util.HashMap;
 import java.util.List;
+import java.util.Map;
 
 /**
  * <p>
@@ -25,15 +29,42 @@ import java.util.List;
 public class KnowfaultfixServiceImpl extends ServiceImpl<KnowfaultfixMapper, Knowfaultfix> implements KnowfaultfixService {
 
     @Override
-    public List<Knowfaultfix> getAll() {
+    public List<Knowfaultfix> getAll(String... faultCode) {
+        List<Knowfaultfix> list;
+        ExcludeQueryWrapper<Knowfaultfix> wrapper = new ExcludeQueryWrapper<>();
         try {
-            List<Knowfaultfix> list = baseMapper.selectList(null);
-
-            return list;
+            wrapper.in("faultcode", faultCode);
+            list = baseMapper.selectList(wrapper);
         } catch (CustomException e){
             log.error(e.getMessage());
             throw new CustomException(ResultCode.ERROR_DATA);
         }
+
+        return list;
+    }
+
+    @Override
+    public List<Map<String, String>> getWidgetAll() {
+        List<Map<String, String>> list = new ArrayList<>();
+        ExcludeQueryWrapper<Knowfaultfix> wrapper = new ExcludeQueryWrapper<>();
+
+        wrapper.select("distinct faulttype,faultcode");
+        try {
+            List<Knowfaultfix> data = baseMapper.selectList(wrapper);
+            if (data != null && data.size() > 0) {
+                for (Knowfaultfix obj : data) {
+                    Map<String, String> map = new HashMap<>();
+                    map.put("widget", obj.getFaulttype());
+                    map.put("code", obj.getFaultcode());
+                    list.add(map);
+                }
+            }
+        } catch (Exception e) {
+            log.error(e.getMessage());
+            throw new CustomException(ResultCode.ERROR_DATA);
+        }
+
+        return list;
     }
 
     @Override

+ 161 - 0
gyee-sample-impala/src/main/java/com/gyee/impala/service/impl/master/KnowfaultprocessServiceImpl.java

@@ -0,0 +1,161 @@
+package com.gyee.impala.service.impl.master;
+
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.gyee.impala.common.base.ExcludeQueryWrapper;
+import com.gyee.impala.common.exception.CustomException;
+import com.gyee.impala.common.result.ResultCode;
+import com.gyee.impala.common.util.DateUtil;
+import com.gyee.impala.common.util.SnowFlakeUtil;
+import com.gyee.impala.mapper.master.KnowfaultprocessMapper;
+import com.gyee.impala.model.master.Knowfaultprocess;
+import com.gyee.impala.service.master.KnowfaultprocessService;
+import org.springframework.stereotype.Service;
+import org.springframework.util.StringUtils;
+
+import java.util.ArrayList;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+
+/**
+ * <p>
+ * 服务实现类
+ * </p>
+ *
+ * @author chenmh
+ * @since 2022-02-21
+ */
+@Service
+public class KnowfaultprocessServiceImpl extends ServiceImpl<KnowfaultprocessMapper, Knowfaultprocess> implements KnowfaultprocessService {
+
+    @Override
+    public List<Map<String, String>> getManufacturerAndModel() {
+        List<Map<String, String>> list = new ArrayList<>();
+        ExcludeQueryWrapper<Knowfaultprocess> wrapper = new ExcludeQueryWrapper<>();
+
+        wrapper.select("distinct manufacturer,model,category");
+        try {
+            List<Knowfaultprocess> data = baseMapper.selectList(wrapper);
+            if (data != null && data.size() > 0) {
+                for (Knowfaultprocess obj : data) {
+                    Map<String, String> map = new HashMap<>();
+                    if (obj.getModel().contains("2000"))
+                        map.put("name", obj.getManufacturer() + "风机2.0MW");
+                    else
+                        map.put("name", obj.getManufacturer() + "风机1.5MW");
+
+                    map.put("category", obj.getCategory());
+                    list.add(map);
+                }
+            }
+        } catch (Exception e) {
+            log.error(e.getMessage());
+            throw new CustomException(ResultCode.ERROR_DATA);
+        }
+
+        return list;
+    }
+
+
+    @Override
+    public List<Map<String, String>> getWidgetAll(String category) {
+        List<Map<String, String>> list = new ArrayList<>();
+        ExcludeQueryWrapper<Knowfaultprocess> wrapper = new ExcludeQueryWrapper<>();
+
+        wrapper.select("distinct widget,widgetcode")
+                .eq("category", category);
+        try {
+            List<Knowfaultprocess> data = baseMapper.selectList(wrapper);
+            if (data != null && data.size() > 0) {
+                for (Knowfaultprocess obj : data) {
+                    Map<String, String> map = new HashMap<>();
+                    map.put("widget", obj.getWidget());
+                    map.put("code", obj.getWidgetcode());
+                    list.add(map);
+                }
+            }
+        } catch (Exception e) {
+            log.error(e.getMessage());
+            throw new CustomException(ResultCode.ERROR_DATA);
+        }
+
+        return list;
+    }
+
+    @Override
+    public List<Knowfaultprocess> getNameAll(String widgetCode, String category) {
+        ExcludeQueryWrapper<Knowfaultprocess> wrapper = new ExcludeQueryWrapper<>();
+
+        wrapper.eq("widgetcode", widgetCode)
+                .eq("category", category);
+        try {
+            return baseMapper.selectList(wrapper);
+
+        } catch (Exception e) {
+            log.error(e.getMessage());
+            throw new CustomException(ResultCode.ERROR_DATA);
+        }
+    }
+
+    @Override
+    public List<Knowfaultprocess> getList(String... id) {
+        List<Knowfaultprocess> list;
+        ExcludeQueryWrapper<Knowfaultprocess> wrapper = new ExcludeQueryWrapper<>();
+
+        wrapper.in("id", id);
+        try {
+            list = baseMapper.selectList(wrapper);
+        } catch (Exception e) {
+            log.error(e.getMessage());
+            throw new CustomException(ResultCode.ERROR_DATA);
+        }
+
+        return list;
+    }
+
+    @Override
+    public boolean editItem(Knowfaultprocess obj) {
+        return false;
+    }
+
+    @Override
+    public boolean insertOrUpdate(List<Knowfaultprocess> list) {
+        boolean flag = false;
+
+        if (list == null || list.size() < 0)
+            return flag;
+
+        try {
+            for (Knowfaultprocess obj : list) {
+                if (StringUtils.isEmpty(obj.getId())) {
+                    // 新增
+                    obj.setId(SnowFlakeUtil.generateId());
+                    obj.setCreatetime(DateUtil.getCurrentDate());
+                }
+            }
+
+            flag = saveOrUpdateBatch(list, list.size());
+
+        } catch (CustomException e) {
+            log.error(e.getMessage());
+            throw new CustomException(ResultCode.ERROR_DATA);
+        }
+
+        return flag;
+    }
+
+    @Override
+    public boolean deleteItem(String id) {
+        QueryWrapper<Knowfaultprocess> query = new QueryWrapper<>();
+        query.eq("id", id);
+
+        try {
+            baseMapper.delete(query);
+            return true;
+        } catch (CustomException e) {
+            log.error(e.getMessage());
+            throw new CustomException(ResultCode.ERROR_DATA);
+        }
+    }
+}

+ 117 - 0
gyee-sample-impala/src/main/java/com/gyee/impala/service/impl/master/KnowmaintenanceServiceImpl.java

@@ -0,0 +1,117 @@
+package com.gyee.impala.service.impl.master;
+
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.gyee.impala.common.base.ExcludeQueryWrapper;
+import com.gyee.impala.common.exception.CustomException;
+import com.gyee.impala.common.result.ResultCode;
+import com.gyee.impala.common.util.DateUtil;
+import com.gyee.impala.common.util.SnowFlakeUtil;
+import com.gyee.impala.mapper.master.KnowmaintenanceMapper;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.gyee.impala.model.master.Knowmaintenance;
+import com.gyee.impala.service.master.KnowmaintenanceService;
+import lombok.extern.slf4j.Slf4j;
+import org.apache.commons.lang3.StringUtils;
+import org.springframework.stereotype.Service;
+
+import java.util.ArrayList;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+
+/**
+ * <p>
+ * 服务实现类
+ * </p>
+ *
+ * @author chenmh
+ * @since 2021-10-25
+ */
+@Service
+@Slf4j
+public class KnowmaintenanceServiceImpl extends ServiceImpl<KnowmaintenanceMapper, Knowmaintenance> implements KnowmaintenanceService {
+
+    @Override
+    public List<Knowmaintenance> getAll(String widget, String code) {
+        ExcludeQueryWrapper<Knowmaintenance> wrapper = new ExcludeQueryWrapper<>();
+
+        wrapper.eq("widget", widget)
+                .eq("code", code);
+        try {
+            List<Knowmaintenance> list = baseMapper.selectList(wrapper);
+            return list;
+        } catch (Exception e) {
+            log.error(e.getMessage());
+            throw new CustomException(ResultCode.ERROR_DATA);
+        }
+    }
+
+    @Override
+    public List<Map<String, String>> getWidgetAll() {
+        List<Map<String, String>> list = new ArrayList<>();
+        ExcludeQueryWrapper<Knowmaintenance> wrapper = new ExcludeQueryWrapper<>();
+
+        wrapper.select("distinct widget,code");
+        try {
+            List<Knowmaintenance> data = baseMapper.selectList(wrapper);
+            if (data != null && data.size() > 0){
+                for (Knowmaintenance obj : data){
+                    Map<String, String> map = new HashMap<>();
+                    map.put("widget", obj.getWidget());
+                    map.put("code", obj.getCode());
+                    list.add(map);
+                }
+            }
+        } catch (Exception e) {
+            log.error(e.getMessage());
+            throw new CustomException(ResultCode.ERROR_DATA);
+        }
+
+        return list;
+    }
+
+    @Override
+    public boolean editItem(Knowmaintenance obj) {
+        return false;
+    }
+
+    @Override
+    public boolean insertOrUpdate(List<Knowmaintenance> list) {
+        boolean flag = false;
+
+        if (list == null || list.size() < 0)
+            return flag;
+
+        try {
+            for (Knowmaintenance obj : list) {
+                if (StringUtils.isEmpty(obj.getId())) {
+                    // 新增
+                    obj.setId(SnowFlakeUtil.generateId());
+                    obj.setCreatetime(DateUtil.getCurrentDate());
+                }
+            }
+
+            flag = saveOrUpdateBatch(list, list.size());
+
+        } catch (CustomException e) {
+            log.error(e.getMessage());
+            throw new CustomException(ResultCode.ERROR_DATA);
+        }
+
+        return flag;
+    }
+
+    @Override
+    public boolean deleteItem(String id) {
+        QueryWrapper<Knowmaintenance> query = new QueryWrapper<>();
+        query.eq("id", id);
+
+        try {
+            baseMapper.delete(query);
+            return true;
+        } catch (CustomException e) {
+            log.error(e.getMessage());
+            throw new CustomException(ResultCode.ERROR_DATA);
+        }
+    }
+}

+ 9 - 8
gyee-sample-impala/src/main/java/com/gyee/impala/service/impl/master/TempscatterpointServiceImpl.java

@@ -1,29 +1,30 @@
 package com.gyee.impala.service.impl.master;
 
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import com.gyee.impala.common.base.ExcludeQueryWrapper;
 import com.gyee.impala.common.exception.CustomException;
 import com.gyee.impala.common.result.ResultCode;
 import com.gyee.impala.common.util.SnowFlakeUtil;
-import com.gyee.impala.mapper.master.TempscatterpointMapper;
-import com.gyee.impala.model.master.Tempscatterpoint;
-import com.gyee.impala.service.master.TempscatterpointService;
+import com.gyee.impala.mapper.master.PowercurvefittingMapper;
+import com.gyee.impala.model.master.Powercurvefitting;
+import com.gyee.impala.service.master.PowercurvefittingService;
 import org.springframework.stereotype.Service;
 
 
 @Service
-public class TempscatterpointServiceImpl extends ServiceImpl<TempscatterpointMapper, Tempscatterpoint> implements TempscatterpointService {
+public class PowercurvefittingServiceImpl extends ServiceImpl<PowercurvefittingMapper, Powercurvefitting> implements PowercurvefittingService {
 
 
     @Override
-    public Tempscatterpoint getOne(String station, String wtId, String time) {
-        ExcludeQueryWrapper<Tempscatterpoint> wrapper = new ExcludeQueryWrapper<>();
+    public Powercurvefitting getOne(String station, String wtId, String time) {
+        QueryWrapper<Powercurvefitting> wrapper = new QueryWrapper<>();
 
         wrapper.eq("station", station)
                 .eq("windturbineid", wtId)
                 .eq("time", time);
         try {
-            Tempscatterpoint obj = baseMapper.selectOne(wrapper);
+            Powercurvefitting obj = baseMapper.selectOne(wrapper);
 
             return obj;
 
@@ -34,7 +35,7 @@ public class TempscatterpointServiceImpl extends ServiceImpl<TempscatterpointMap
     }
 
     @Override
-    public boolean insertItem(Tempscatterpoint obj) {
+    public boolean insertItem(Powercurvefitting obj) {
         try {
             // 设置一个新ID
             if (obj != null)

+ 1 - 2
gyee-sample-impala/src/main/java/com/gyee/impala/service/impl/master/WindturbineServiceImpl.java

@@ -56,13 +56,12 @@ public class WindturbineServiceImpl extends ServiceImpl<WindturbineMapper, Windt
     @Cacheable(value = "windturbineid")
     @Override
     public List<Windturbine> getWindTurbineId(String station) {
-        List<Windturbine> list;
         try {
             QueryWrapper<Windturbine> wrapper = new QueryWrapper<>();
             wrapper.eq("station", station);
             wrapper.orderByAsc("id");
 
-            list = baseMapper.selectList(wrapper);
+            List<Windturbine> list = baseMapper.selectList(wrapper);
 
             return list;
 

+ 1 - 1
gyee-sample-impala/src/main/java/com/gyee/impala/service/impl/master/WindturbinepointServiceImpl.java

@@ -163,7 +163,7 @@ public class WindturbinepointServiceImpl extends ServiceImpl<WindturbinepointMap
 
     @Cacheable(value = "windturbinepointidandncode")
     @Override
-    public Windturbinepoint getListByWtIdAndUniformCode(String wtId, String uniformCode) {
+    public Windturbinepoint getItemByWtIdAndUniformCode(String wtId, String uniformCode) {
         try {
             ExcludeQueryWrapper<Windturbinepoint> wrapper = new ExcludeQueryWrapper<>();
             wrapper.eq("windturbineid", wtId)

+ 39 - 0
gyee-sample-impala/src/main/java/com/gyee/impala/service/impl/slave/FaulthistoryServiceImpl.java

@@ -0,0 +1,39 @@
+package com.gyee.impala.service.impl.slave;
+
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.gyee.impala.common.base.ExcludeQueryWrapper;
+import com.gyee.impala.common.exception.CustomException;
+import com.gyee.impala.common.result.ResultCode;
+import com.gyee.impala.mapper.slave.FaulthistoryMapper;
+import com.gyee.impala.model.slave.Faulthistory;
+import com.gyee.impala.service.slave.FaulthistoryService;
+import org.springframework.stereotype.Service;
+
+import java.util.Date;
+import java.util.List;
+
+/**
+ * <p>
+ *  服务实现类
+ * </p>
+ *
+ * @author chenmh
+ * @since 2022-03-01
+ */
+@Service
+public class FaulthistoryServiceImpl extends ServiceImpl<FaulthistoryMapper, Faulthistory> implements FaulthistoryService {
+
+    @Override
+    public List<Faulthistory> getListBySnapIdAndFaultTime(String snapId, Date startTime, Date endTime) {
+        ExcludeQueryWrapper<Faulthistory> wrapper = new ExcludeQueryWrapper<>();
+
+        wrapper.eq("snapid", snapId)
+                .between("faulttime", startTime, endTime);
+        try {
+            return baseMapper.selectList(wrapper);
+        } catch (Exception e) {
+            log.error(e.getMessage());
+            throw new CustomException(ResultCode.ERROR_DATA);
+        }
+    }
+}

+ 39 - 0
gyee-sample-impala/src/main/java/com/gyee/impala/service/impl/slave/FaultsnapServiceImpl.java

@@ -0,0 +1,39 @@
+package com.gyee.impala.service.impl.slave;
+
+
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.gyee.impala.common.base.ExcludeQueryWrapper;
+import com.gyee.impala.common.exception.CustomException;
+import com.gyee.impala.common.result.ResultCode;
+import com.gyee.impala.mapper.slave.FaultsnapMapper;
+import com.gyee.impala.model.slave.Faultsnap;
+import com.gyee.impala.service.slave.FaultsnapService;
+import org.springframework.stereotype.Service;
+
+
+/**
+ * <p>
+ *  服务实现类
+ * </p>
+ *
+ * @author chenmh
+ * @since 2022-03-01
+ */
+@Service
+public class FaultsnapServiceImpl extends ServiceImpl<FaultsnapMapper, Faultsnap> implements FaultsnapService {
+
+    @Override
+    public Faultsnap getOneByStationIDAndWtIDAndRank(String stationId, String wtId, String rank) {
+        ExcludeQueryWrapper<Faultsnap> wrapper = new ExcludeQueryWrapper<>();
+
+        wrapper.eq("stationid", stationId)
+                .eq("windturbineid", wtId)
+                .eq("rank", rank);
+        try {
+            return baseMapper.selectOne(wrapper);
+        } catch (Exception e) {
+            log.error(e.getMessage());
+            throw new CustomException(ResultCode.ERROR_DATA);
+        }
+    }
+}

+ 45 - 0
gyee-sample-impala/src/main/java/com/gyee/impala/service/impl/slave/Windturbinetestingpointai2ServiceImpl.java

@@ -0,0 +1,45 @@
+package com.gyee.impala.service.impl.slave;
+
+
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.gyee.impala.common.base.ExcludeQueryWrapper;
+import com.gyee.impala.common.exception.CustomException;
+import com.gyee.impala.common.result.ResultCode;
+import com.gyee.impala.mapper.slave.Windturbinetestingpointai2Mapper;
+import com.gyee.impala.model.master.Windturbinepoint;
+import com.gyee.impala.model.slave.Windturbinetestingpointai2;
+import com.gyee.impala.service.slave.Windturbinetestingpointai2Service;
+import org.springframework.cache.annotation.Cacheable;
+import org.springframework.stereotype.Service;
+
+/**
+ * <p>
+ *  服务实现类
+ * </p>
+ *
+ * @author chenmh
+ * @since 2022-03-02
+ */
+@Cacheable(value = "windturbinepointai2")
+@Service
+public class Windturbinetestingpointai2ServiceImpl extends ServiceImpl<Windturbinetestingpointai2Mapper, Windturbinetestingpointai2> implements Windturbinetestingpointai2Service {
+
+    @Cacheable(value = "windturbinepointaicode")
+    @Override
+    public Windturbinetestingpointai2 getItemByStationAndCode(String station, String wtId, String uniformCode) {
+        ExcludeQueryWrapper<Windturbinetestingpointai2> wrapper = new ExcludeQueryWrapper<>();
+        try {
+            wrapper.eq("windpowerstationid", station)
+                    .eq("windturbineid", wtId)
+                    .in("uniformcode", uniformCode);
+
+            Windturbinetestingpointai2 point = baseMapper.selectOne(wrapper);
+
+            return point;
+
+        } catch (CustomException e) {
+            log.error(e.getMessage());
+            throw new CustomException(ResultCode.ERROR_DATA);
+        }
+    }
+}

+ 8 - 1
gyee-sample-impala/src/main/java/com/gyee/impala/service/master/KnowfaultfixService.java

@@ -4,6 +4,7 @@ import com.gyee.impala.model.master.Knowfaultfix;
 import com.baomidou.mybatisplus.extension.service.IService;
 
 import java.util.List;
+import java.util.Map;
 
 /**
  * <p>
@@ -18,7 +19,13 @@ public interface KnowfaultfixService extends IService<Knowfaultfix> {
      * 查询全部故障检修数据
      * @return
      */
-    List<Knowfaultfix> getAll();
+    List<Knowfaultfix> getAll(String... faultCode);
+
+    /**
+     * 查询部件,过滤重复数据
+     * @return
+     */
+    List<Map<String, String>> getWidgetAll();
 
     /**
      * 编辑数据

+ 67 - 0
gyee-sample-impala/src/main/java/com/gyee/impala/service/master/KnowfaultprocessService.java

@@ -0,0 +1,67 @@
+package com.gyee.impala.service.master;
+
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.gyee.impala.model.master.Knowfaultprocess;
+
+import java.util.List;
+import java.util.Map;
+
+/**
+ * <p>
+ *  服务类
+ * </p>
+ *
+ * @author chenmh
+ * @since 2022-02-21
+ */
+public interface KnowfaultprocessService extends IService<Knowfaultprocess> {
+
+    /**
+     * 通过category过滤机组(机组厂商+型号)
+     * @return
+     */
+    List<Map<String, String>> getManufacturerAndModel();
+
+    /**
+     * 查询部件,过滤重复数据
+     * @return
+     */
+    List<Map<String, String>> getWidgetAll(String category);
+
+
+    /**
+     * 查询报警名称
+     * @return
+     */
+    List<Knowfaultprocess> getNameAll(String widgetCode, String category);
+
+
+    /**
+     * 根据id查询详情
+     * @return
+     */
+    List<Knowfaultprocess> getList(String... id);
+
+
+
+    /**
+     * 编辑数据
+     * @param obj
+     * @return
+     */
+    boolean editItem(Knowfaultprocess obj);
+
+    /**
+     * 批量插入或更新
+     * @param list
+     * @return
+     */
+    boolean insertOrUpdate(List<Knowfaultprocess> list);
+
+    /**
+     * 通过id删除数据
+     * @param id
+     * @return
+     */
+    boolean deleteItem(String id);
+}

+ 43 - 0
gyee-sample-impala/src/main/java/com/gyee/impala/service/master/KnowmaintenanceService.java

@@ -0,0 +1,43 @@
+package com.gyee.impala.service.master;
+
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.gyee.impala.model.master.Knowmaintenance;
+
+import java.util.List;
+import java.util.Map;
+
+public interface KnowmaintenanceService extends IService<Knowmaintenance> {
+
+    /**
+     * 通过部件查询全部检修规则数据
+     * @return
+     */
+    List<Knowmaintenance> getAll(String widget, String code);
+
+    /**
+     * 查询部件,过滤重复数据
+     * @return
+     */
+    List<Map<String, String>> getWidgetAll();
+
+    /**
+     * 编辑数据
+     * @param obj
+     * @return
+     */
+    boolean editItem(Knowmaintenance obj);
+
+    /**
+     * 批量插入或更新
+     * @param list
+     * @return
+     */
+    boolean insertOrUpdate(List<Knowmaintenance> list);
+
+    /**
+     * 通过id删除数据
+     * @param id
+     * @return
+     */
+    boolean deleteItem(String id);
+}

+ 4 - 4
gyee-sample-impala/src/main/java/com/gyee/impala/service/master/TempscatterpointService.java

@@ -1,12 +1,12 @@
 package com.gyee.impala.service.master;
 
 import com.baomidou.mybatisplus.extension.service.IService;
-import com.gyee.impala.model.master.Tempscatterpoint;
+import com.gyee.impala.model.master.Powercurvefitting;
 
 /**
  * 缓存的风功率数据
  */
-public interface TempscatterpointService extends IService<Tempscatterpoint> {
+public interface PowercurvefittingService extends IService<Powercurvefitting> {
 
     /**
      * 通过风机ID和时间查询缓存的风功率数据
@@ -15,12 +15,12 @@ public interface TempscatterpointService extends IService<Tempscatterpoint> {
      * @param time
      * @return
      */
-    Tempscatterpoint getOne(String station, String wtId, String time);
+    Powercurvefitting getOne(String station, String wtId, String time);
 
     /**
      * 插入数据
      * @param obj
      * @return
      */
-    boolean insertItem(Tempscatterpoint obj);
+    boolean insertItem(Powercurvefitting obj);
 }

+ 1 - 1
gyee-sample-impala/src/main/java/com/gyee/impala/service/master/WindturbinepointService.java

@@ -99,5 +99,5 @@ public interface WindturbinepointService extends IService<Windturbinepoint> {
      * @param uniformCode 统一编码
      * @return
      */
-    Windturbinepoint getListByWtIdAndUniformCode(String wtId, String uniformCode);
+    Windturbinepoint getItemByWtIdAndUniformCode(String wtId, String uniformCode);
 }

+ 28 - 0
gyee-sample-impala/src/main/java/com/gyee/impala/service/slave/FaulthistoryService.java

@@ -0,0 +1,28 @@
+package com.gyee.impala.service.slave;
+
+
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.gyee.impala.model.slave.Faulthistory;
+
+import java.util.Date;
+import java.util.List;
+
+/**
+ * <p>
+ *  服务类
+ * </p>
+ *
+ * @author chenmh
+ * @since 2022-03-01
+ */
+public interface FaulthistoryService extends IService<Faulthistory> {
+
+    /**
+     * 通过场站和风机ID查询
+     * @param snapId
+     * @param startTime
+     * @param endTime
+     * @return
+     */
+    List<Faulthistory> getListBySnapIdAndFaultTime(String snapId, Date startTime, Date endTime);
+}

+ 27 - 0
gyee-sample-impala/src/main/java/com/gyee/impala/service/slave/FaultsnapService.java

@@ -0,0 +1,27 @@
+package com.gyee.impala.service.slave;
+
+
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.gyee.impala.model.slave.Faultsnap;
+
+/**
+ * <p>
+ *  服务类
+ * </p>
+ *
+ * @author chenmh
+ * @since 2022-03-01
+ */
+public interface FaultsnapService extends IService<Faultsnap> {
+
+
+    /**
+     * 通过场站和风机ID查询
+     * @param stationId
+     * @param wtId
+     * @param rank
+     * @return
+     */
+    Faultsnap getOneByStationIDAndWtIDAndRank(String stationId, String wtId, String rank);
+
+}

+ 25 - 0
gyee-sample-impala/src/main/java/com/gyee/impala/service/slave/Windturbinetestingpointai2Service.java

@@ -0,0 +1,25 @@
+package com.gyee.impala.service.slave;
+
+
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.gyee.impala.model.slave.Windturbinetestingpointai2;
+
+/**
+ * <p>
+ *  服务类
+ * </p>
+ *
+ * @author chenmh
+ * @since 2022-03-02
+ */
+public interface Windturbinetestingpointai2Service extends IService<Windturbinetestingpointai2> {
+
+    /**
+     * 通过风机ID和统一编码查询测点
+     *
+     * @param wtId        风机编码
+     * @param uniformCode 统一编码
+     * @return
+     */
+    Windturbinetestingpointai2 getItemByStationAndCode(String station, String wtId, String uniformCode);
+}

+ 2 - 2
gyee-sample-impala/src/main/resources/application.yaml

@@ -21,14 +21,14 @@ spring:
       #kudu数据库
       master:
         driver-class-name: com.cloudera.impala.jdbc41.Driver
-        jdbc-url: jdbc:impala://192.168.1.61:21050/gyee_sample_kudu
+        jdbc-url: jdbc:impala://192.168.1.62:21050/gyee_sample_kudu
 
       #oracle数据库
       slave:
         jdbc-url: jdbc:oracle:thin:@192.168.1.105:1521:gdnxfd
         username: nxfdprod
         password: gdnxfd123
-        driver-class-name: oracle.jdbc.driver.OracleDriver
+        driver-class-name: oracle.jdbc.OracleDriver
       max-active: 5
       initial-size: 1
       min-idle: 3

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

@@ -20,11 +20,12 @@
         <result column="stationen" property="stationen" />
         <result column="remark" property="remark" />
         <result column="category" property="category" />
+        <result column="createtime" property="createtime" />
     </resultMap>
 
     <!-- 通用查询结果列 -->
     <sql id="Base_Column_List">
-        id, tag, stationcn, windturbineid, faulttype, faultcode, symptom, symptomcode, starttime, endtime, manufacturer, model, stationen, remark, category
+        id, tag, stationcn, windturbineid, faulttype, faultcode, symptom, symptomcode, starttime, endtime, manufacturer, model, stationen, remark, category, createtime
     </sql>
 
 </mapper>

+ 27 - 0
gyee-sample-impala/src/main/resources/mapper/master/KnowfaultprocessMapper.xml

@@ -0,0 +1,27 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="com.gyee.impala.mapper.master.KnowfaultprocessMapper">
+
+    <!-- 通用查询映射结果 -->
+    <resultMap id="BaseResultMap" type="com.gyee.impala.model.master.Knowfaultprocess">
+        <id column="id" property="id" />
+        <result column="widget" property="widget" />
+        <result column="widgetcode" property="widgetcode" />
+        <result column="type" property="type" />
+        <result column="name" property="name" />
+        <result column="identification" property="identification" />
+        <result column="cause" property="cause" />
+        <result column="process" property="process" />
+        <result column="manufacturer" property="manufacturer" />
+        <result column="model" property="model" />
+        <result column="createtime" property="createtime" />
+        <result column="remark" property="remark" />
+        <result column="category" property="category" />
+    </resultMap>
+
+    <!-- 通用查询结果列 -->
+    <sql id="Base_Column_List">
+        id, widget, widgetcode, type, name, identification, cause, process, manufacturer, model, createtime, remark, category
+    </sql>
+
+</mapper>

+ 21 - 0
gyee-sample-impala/src/main/resources/mapper/master/KnowmaintenanceMapper.xml

@@ -0,0 +1,21 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="com.gyee.impala.mapper.master.KnowmaintenanceMapper">
+
+    <!-- 通用查询映射结果 -->
+    <resultMap id="BaseResultMap" type="com.gyee.impala.model.master.Knowmaintenance">
+        <id column="id" property="id" />
+        <result column="widget" property="widget" />
+        <result column="code" property="code" />
+        <result column="process" property="process" />
+        <result column="createtime" property="createtime" />
+        <result column="remark" property="remark" />
+        <result column="category" property="category" />
+    </resultMap>
+
+    <!-- 通用查询结果列 -->
+    <sql id="Base_Column_List">
+        id, widget, code, process, createtime, remark, category
+    </sql>
+
+</mapper>

+ 4 - 2
gyee-sample-impala/src/main/resources/mapper/master/TempscatterpointMapper.xml

@@ -1,9 +1,9 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
-<mapper namespace="com.gyee.impala.mapper.master.TempscatterpointMapper">
+<mapper namespace="com.gyee.impala.mapper.master.PowercurvefittingMapper">
 
     <!-- 通用查询映射结果 -->
-    <resultMap id="BaseResultMap" type="com.gyee.impala.model.master.Tempscatterpoint">
+    <resultMap id="BaseResultMap" type="com.gyee.impala.model.master.Powercurvefitting">
         <id column="id" property="id" />
         <result column="station" property="station" />
         <result column="windturbineid" property="windturbineid" />
@@ -11,6 +11,8 @@
         <result column="scatter" property="scatter" />
         <result column="lineactual" property="lineactual" />
         <result column="lineoptimal" property="lineoptimal" />
+        <result column="remark" property="remark" />
+        <result column="category" property="category" />
     </resultMap>
 
     <!-- 通用查询结果列 -->

+ 24 - 0
gyee-sample-impala/src/main/resources/mapper/slave/FaulthistoryMapper.xml

@@ -0,0 +1,24 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="com.gyee.impala.mapper.slave.FaulthistoryMapper">
+
+    <!-- 通用查询映射结果 -->
+    <resultMap id="BaseResultMap" type="com.gyee.impala.model.slave.Faulthistory">
+        <id column="ID" property="id" />
+        <result column="FAULTTIME" property="faulttime" />
+        <result column="SNAPID" property="snapid" />
+        <result column="OPERATOR" property="operator" />
+        <result column="CONFIRMTYPE" property="confirmtype" />
+        <result column="CONFIRMTIME" property="confirmtime" />
+        <result column="CONFIRMPERSON" property="confirmperson" />
+        <result column="MESSAGETYPE" property="messagetype" />
+        <result column="ALERTSNAPID" property="alertsnapid" />
+        <result column="ALERTTEXTLAST" property="alerttextlast" />
+    </resultMap>
+
+    <!-- 通用查询结果列 -->
+    <sql id="Base_Column_List">
+        ID, FAULTTIME, SNAPID, OPERATOR, CONFIRMTYPE, CONFIRMTIME, CONFIRMPERSON, MESSAGETYPE, ALERTSNAPID, ALERTTEXTLAST
+    </sql>
+
+</mapper>

+ 35 - 0
gyee-sample-impala/src/main/resources/mapper/slave/FaultsnapMapper.xml

@@ -0,0 +1,35 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="com.gyee.impala.mapper.slave.FaultsnapMapper">
+
+    <!-- 通用查询映射结果 -->
+    <resultMap id="BaseResultMap" type="com.gyee.impala.model.slave.Faultsnap">
+        <id column="ID" property="id" />
+        <result column="STATIONID" property="stationid" />
+        <result column="PROJECTID" property="projectid" />
+        <result column="LINEID" property="lineid" />
+        <result column="WINDTURBINEID" property="windturbineid" />
+        <result column="ALERTVALUE" property="alertvalue" />
+        <result column="CATEGORY1" property="category1" />
+        <result column="CATEGORY2" property="category2" />
+        <result column="CATEGORY3" property="category3" />
+        <result column="RANK" property="rank" />
+        <result column="ISOPENED" property="isopened" />
+        <result column="LASTUPDATETIME" property="lastupdatetime" />
+        <result column="LASTUPDATEPERSON" property="lastupdateperson" />
+        <result column="STATIONNAME" property="stationname" />
+        <result column="PROJECTNAME" property="projectname" />
+        <result column="LINENAME" property="linename" />
+        <result column="WINDTURBINENAME" property="windturbinename" />
+        <result column="ALERTTEXT" property="alerttext" />
+        <result column="MODELID" property="modelid" />
+        <result column="TESTINGPOINTKEY" property="testingpointkey" />
+        <result column="ALARMSNAPID" property="alarmsnapid" />
+    </resultMap>
+
+    <!-- 通用查询结果列 -->
+    <sql id="Base_Column_List">
+        ID, STATIONID, PROJECTID, LINEID, WINDTURBINEID, ALERTVALUE, CATEGORY1, CATEGORY2, CATEGORY3, RANK, ISOPENED, LASTUPDATETIME, LASTUPDATEPERSON, STATIONNAME, PROJECTNAME, LINENAME, WINDTURBINENAME, ALERTTEXT, MODELID, TESTINGPOINTKEY, ALARMSNAPID
+    </sql>
+
+</mapper>

+ 1 - 1
gyee-sample-impala/src/main/resources/mapper/slave/WindturbinecurvefittingmonthMapper.xml

@@ -1,6 +1,6 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
-<mapper namespace="com.gyee.impala.mapper.WindturbinecurvefittingmonthMapper">
+<mapper namespace="com.gyee.impala.mapper.slave.WindturbinecurvefittingmonthMapper">
 
     <!-- 通用查询映射结果 -->
     <resultMap id="BaseResultMap" type="com.gyee.impala.model.slave.Windturbinecurvefittingmonth">

+ 32 - 0
gyee-sample-impala/src/main/resources/mapper/slave/Windturbinetestingpointai2Mapper.xml

@@ -0,0 +1,32 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="com.gyee.impala.mapper.slave.Windturbinetestingpointai2Mapper">
+
+    <!-- 通用查询映射结果 -->
+    <resultMap id="BaseResultMap" type="com.gyee.impala.model.slave.Windturbinetestingpointai2">
+        <id column="ID" property="id" />
+        <result column="CODE" property="code" />
+        <result column="NAME" property="name" />
+        <result column="MODEL" property="model" />
+        <result column="VALUEUNIT" property="valueunit" />
+        <result column="ENGLISHNAME" property="englishname" />
+        <result column="TYPEID" property="typeid" />
+        <result column="MODELID" property="modelid" />
+        <result column="MAXVAL" property="maxval" />
+        <result column="MINVAL" property="minval" />
+        <result column="REASONABLEMAXVAL" property="reasonablemaxval" />
+        <result column="REASONABLEMINVAL" property="reasonableminval" />
+        <result column="WINDTURBINEID" property="windturbineid" />
+        <result column="UNIFORMCODE" property="uniformcode" />
+        <result column="SHORTID" property="shortid" />
+        <result column="LONGID" property="longid" />
+        <result column="WINDPOWERSTATIONID" property="windpowerstationid" />
+        <result column="REALTIMEID" property="realtimeid" />
+    </resultMap>
+
+    <!-- 通用查询结果列 -->
+    <sql id="Base_Column_List">
+        ID, CODE, NAME, MODEL, VALUEUNIT, ENGLISHNAME, TYPEID, MODELID, MAXVAL, MINVAL, REASONABLEMAXVAL, REASONABLEMINVAL, WINDTURBINEID, UNIFORMCODE, SHORTID, LONGID, WINDPOWERSTATIONID, REALTIMEID
+    </sql>
+
+</mapper>

+ 160 - 0
gyee-sample-impala/src/test/java/com/gyee/impala/FaultHistoryFilterTest.java

@@ -0,0 +1,160 @@
+package com.gyee.impala;
+
+
+import com.gyee.impala.common.util.ExcelUtil;
+import com.gyee.impala.model.slave.Faulthistory;
+import com.gyee.impala.model.slave.Faultsnap;
+import com.gyee.impala.service.slave.FaulthistoryService;
+import com.gyee.impala.service.slave.FaultsnapService;
+import javafx.scene.control.DateCell;
+import org.apache.poi.hssf.usermodel.HSSFCell;
+import org.apache.poi.hssf.usermodel.HSSFRow;
+import org.apache.poi.hssf.usermodel.HSSFSheet;
+import org.apache.poi.hssf.usermodel.HSSFWorkbook;
+import org.apache.poi.ss.usermodel.*;
+import org.apache.poi.xssf.usermodel.XSSFWorkbook;
+import org.junit.Test;
+import org.junit.runner.RunWith;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.boot.test.context.SpringBootTest;
+import org.springframework.format.datetime.DateFormatter;
+import org.springframework.test.context.junit4.SpringRunner;
+
+import java.io.File;
+import java.io.FileInputStream;
+import java.io.FileOutputStream;
+import java.io.IOException;
+import java.text.DateFormat;
+import java.text.DecimalFormat;
+import java.text.SimpleDateFormat;
+import java.util.*;
+
+@RunWith(SpringRunner.class)
+@SpringBootTest
+public class FaultHistoryFilterTest {
+
+    @Autowired
+    private FaultsnapService faultsnapService;
+    @Autowired
+    private FaulthistoryService faulthistoryService;
+
+    private final String FILE_NAME = "D:\\document\\大数据\\大数据训练样本库\\样本库故障数据表\\业主维修故障数据\\风机故障数据.xlsx";
+    private final String FILE_NAME_WRITE = "D:\\document\\大数据\\大数据训练样本库\\样本库故障数据表\\业主维修故障数据\\风机故障数据过滤.xls";
+
+    @Test
+    public void faultFilterTest(){
+        File file = new File(FILE_NAME);
+
+        if (!file.isFile() && file.exists()) {
+            System.out.println("解析的excel文件不存在!");
+            return;
+        }
+
+        //创建一个workbook对应一个excel文件
+        HSSFWorkbook workbook = new HSSFWorkbook();
+        //在workbook中创建一个sheet对应excel中的sheet
+        HSSFSheet sheetw = workbook.createSheet("故障");
+
+        SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd hh:mm:ss");
+
+        Workbook wb = null;
+        FileInputStream fis = null;
+        try {
+            fis = new FileInputStream(file);
+            if (ExcelUtil.checkFile(FILE_NAME) == 1) {
+                wb = new XSSFWorkbook(file);
+            } else if (ExcelUtil.checkFile(FILE_NAME) == 2) {
+                wb = new HSSFWorkbook(fis);
+            } else {
+                System.out.println("解析的文件类型错误!");
+                return;
+            }
+
+            // 解析文件  读第一个sheet
+            Sheet sheet = wb.getSheetAt(0);
+            HSSFRow row2 = sheetw.createRow(0);
+            // 第一行是标题
+            Row head = sheet.getRow(0);
+            for (int i = 0; i < head.getLastCellNum(); i++){
+                row2.createCell(i).setCellValue(head.getCell(i).toString());
+            }
+            for (int i = 1; i <= sheet.getLastRowNum(); i++) {
+                Row row = sheet.getRow(i);
+                if (row == null)
+                    continue;
+
+//                String[] str = new String[row.getLastCellNum()];
+//                for (int j = 0; j < row.getLastCellNum(); j++) {
+//                   //解析列
+//                }
+
+                String wtId = row.getCell(4, Row.MissingCellPolicy.CREATE_NULL_AS_BLANK).toString();
+                Date starttime = row.getCell(9).getDateCellValue();
+                String stationen = row.getCell(13, Row.MissingCellPolicy.CREATE_NULL_AS_BLANK).toString();
+
+                Faultsnap snap = faultsnapService.getOneByStationIDAndWtIDAndRank(stationen, wtId, "5");
+                if (snap == null)
+                    continue;
+
+                // 时间提起那一小时
+                Calendar cal = Calendar.getInstance();
+                cal.setTime(starttime);
+                cal.set(Calendar.HOUR , Calendar.HOUR -24);
+                Date s = cal.getTime();
+                List<Faulthistory> list = faulthistoryService.getListBySnapIdAndFaultTime(snap.getId(), s, starttime);
+
+                // 写入数据
+                HSSFRow row1 = sheetw.createRow(i);
+                row1.createCell(0).setCellValue(row.getCell(0, Row.MissingCellPolicy.CREATE_NULL_AS_BLANK).toString());
+                row1.createCell(1).setCellValue(row.getCell(1, Row.MissingCellPolicy.CREATE_NULL_AS_BLANK).toString());
+                row1.createCell(3).setCellValue(row.getCell(3, Row.MissingCellPolicy.CREATE_NULL_AS_BLANK).getStringCellValue());
+                row1.createCell(4).setCellValue(row.getCell(4, Row.MissingCellPolicy.CREATE_NULL_AS_BLANK).getStringCellValue());
+                row1.createCell(5).setCellValue(row.getCell(5, Row.MissingCellPolicy.CREATE_NULL_AS_BLANK).getStringCellValue());
+                row1.createCell(6).setCellValue(row.getCell(6, Row.MissingCellPolicy.CREATE_NULL_AS_BLANK).getStringCellValue());
+                row1.createCell(7).setCellValue(row.getCell(7, Row.MissingCellPolicy.CREATE_NULL_AS_BLANK).getStringCellValue());
+                row1.createCell(8).setCellValue(row.getCell(8, Row.MissingCellPolicy.CREATE_NULL_AS_BLANK).getStringCellValue());
+                row1.createCell(10).setCellValue(format.format(row.getCell(10, Row.MissingCellPolicy.CREATE_NULL_AS_BLANK).getDateCellValue()));
+                row1.createCell(11).setCellValue(row.getCell(11, Row.MissingCellPolicy.CREATE_NULL_AS_BLANK).getStringCellValue());
+                row1.createCell(12).setCellValue(row.getCell(12, Row.MissingCellPolicy.CREATE_NULL_AS_BLANK).getStringCellValue());
+                row1.createCell(13).setCellValue(row.getCell(13, Row.MissingCellPolicy.CREATE_NULL_AS_BLANK).getStringCellValue());
+                row1.createCell(14).setCellValue(row.getCell(14, Row.MissingCellPolicy.CREATE_NULL_AS_BLANK).getStringCellValue());
+                row1.createCell(15).setCellValue(row.getCell(15, Row.MissingCellPolicy.CREATE_NULL_AS_BLANK).getStringCellValue());
+                if (list != null && list.size() > 0){
+                    Faulthistory fault = list.get(0);
+                    row1.createCell(2).setCellValue(fault.getId());
+                    row1.createCell(9).setCellValue(format.format(fault.getFaulttime()));
+                }else{
+                    row1.createCell(2).setCellValue(row.getCell(2, Row.MissingCellPolicy.CREATE_NULL_AS_BLANK).toString());
+                    row1.createCell(9).setCellValue(format.format(row.getCell(9, Row.MissingCellPolicy.CREATE_NULL_AS_BLANK).getDateCellValue()));
+                }
+            }
+
+            //将文件保存到指定的位置
+
+            FileOutputStream out = null;
+            try {
+                out = new FileOutputStream(FILE_NAME_WRITE);
+                workbook.write(out);
+                out.flush();
+                System.out.println(FILE_NAME_WRITE + "-文件写入成功");
+            } catch (Exception e) {
+                System.out.println("文件写入失败" + e.getMessage());
+            } finally {
+                if (null != out) {
+                    out.close();
+                }
+            }
+
+        } catch (Exception e) {
+            e.printStackTrace();
+        } finally {
+            if (fis != null) {
+                try {
+                    fis.close();
+                } catch (IOException e) {
+                    e.printStackTrace();
+                }
+            }
+        }
+    }
+}

+ 21 - 0
src/main/java/com/gyee/impala/controller/Windturbinetestingpointai2Controller.java

@@ -0,0 +1,21 @@
+package com.gyee.impala.controller;
+
+
+import org.springframework.web.bind.annotation.RequestMapping;
+
+import org.springframework.web.bind.annotation.RestController;
+
+/**
+ * <p>
+ *  前端控制器
+ * </p>
+ *
+ * @author chenmh
+ * @since 2022-03-02
+ */
+@RestController
+@RequestMapping("/windturbinetestingpointai2")
+public class Windturbinetestingpointai2Controller {
+
+}
+

+ 16 - 0
src/main/java/com/gyee/impala/mapper/Windturbinetestingpointai2Mapper.java

@@ -0,0 +1,16 @@
+package com.gyee.impala.mapper;
+
+import com.gyee.impala.model.Windturbinetestingpointai2;
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+
+/**
+ * <p>
+ *  Mapper 接口
+ * </p>
+ *
+ * @author chenmh
+ * @since 2022-03-02
+ */
+public interface Windturbinetestingpointai2Mapper extends BaseMapper<Windturbinetestingpointai2> {
+
+}

+ 86 - 0
src/main/java/com/gyee/impala/model/Windturbinetestingpointai2.java

@@ -0,0 +1,86 @@
+package com.gyee.impala.model;
+
+import com.baomidou.mybatisplus.annotation.TableName;
+import com.baomidou.mybatisplus.extension.activerecord.Model;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.TableField;
+import java.io.Serializable;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+
+/**
+ * <p>
+ * 
+ * </p>
+ *
+ * @author chenmh
+ * @since 2022-03-02
+ */
+@Data
+@EqualsAndHashCode(callSuper = false)
+@TableName("WINDTURBINETESTINGPOINTAI2")
+public class Windturbinetestingpointai2 extends Model<Windturbinetestingpointai2> {
+
+    private static final long serialVersionUID=1L;
+
+      @TableId("ID")
+    private String id;
+
+    @TableField("CODE")
+    private String code;
+
+    @TableField("NAME")
+    private String name;
+
+    @TableField("MODEL")
+    private String model;
+
+    @TableField("VALUEUNIT")
+    private String valueunit;
+
+    @TableField("ENGLISHNAME")
+    private String englishname;
+
+    @TableField("TYPEID")
+    private String typeid;
+
+    @TableField("MODELID")
+    private String modelid;
+
+    @TableField("MAXVAL")
+    private String maxval;
+
+    @TableField("MINVAL")
+    private String minval;
+
+    @TableField("REASONABLEMAXVAL")
+    private String reasonablemaxval;
+
+    @TableField("REASONABLEMINVAL")
+    private String reasonableminval;
+
+    @TableField("WINDTURBINEID")
+    private String windturbineid;
+
+    @TableField("UNIFORMCODE")
+    private String uniformcode;
+
+    @TableField("SHORTID")
+    private String shortid;
+
+    @TableField("LONGID")
+    private String longid;
+
+    @TableField("WINDPOWERSTATIONID")
+    private String windpowerstationid;
+
+    @TableField("REALTIMEID")
+    private String realtimeid;
+
+
+    @Override
+    protected Serializable pkVal() {
+        return this.id;
+    }
+
+}

+ 16 - 0
src/main/java/com/gyee/impala/service/Windturbinetestingpointai2Service.java

@@ -0,0 +1,16 @@
+package com.gyee.impala.service;
+
+import com.gyee.impala.model.Windturbinetestingpointai2;
+import com.baomidou.mybatisplus.extension.service.IService;
+
+/**
+ * <p>
+ *  服务类
+ * </p>
+ *
+ * @author chenmh
+ * @since 2022-03-02
+ */
+public interface Windturbinetestingpointai2Service extends IService<Windturbinetestingpointai2> {
+
+}

+ 20 - 0
src/main/java/com/gyee/impala/service/impl/Windturbinetestingpointai2ServiceImpl.java

@@ -0,0 +1,20 @@
+package com.gyee.impala.service.impl;
+
+import com.gyee.impala.model.Windturbinetestingpointai2;
+import com.gyee.impala.mapper.Windturbinetestingpointai2Mapper;
+import com.gyee.impala.service.Windturbinetestingpointai2Service;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import org.springframework.stereotype.Service;
+
+/**
+ * <p>
+ *  服务实现类
+ * </p>
+ *
+ * @author chenmh
+ * @since 2022-03-02
+ */
+@Service
+public class Windturbinetestingpointai2ServiceImpl extends ServiceImpl<Windturbinetestingpointai2Mapper, Windturbinetestingpointai2> implements Windturbinetestingpointai2Service {
+
+}

+ 32 - 0
src/main/resources/mapper/Windturbinetestingpointai2Mapper.xml

@@ -0,0 +1,32 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="com.gyee.impala.mapper.Windturbinetestingpointai2Mapper">
+
+    <!-- 通用查询映射结果 -->
+    <resultMap id="BaseResultMap" type="com.gyee.impala.model.Windturbinetestingpointai2">
+        <id column="ID" property="id" />
+        <result column="CODE" property="code" />
+        <result column="NAME" property="name" />
+        <result column="MODEL" property="model" />
+        <result column="VALUEUNIT" property="valueunit" />
+        <result column="ENGLISHNAME" property="englishname" />
+        <result column="TYPEID" property="typeid" />
+        <result column="MODELID" property="modelid" />
+        <result column="MAXVAL" property="maxval" />
+        <result column="MINVAL" property="minval" />
+        <result column="REASONABLEMAXVAL" property="reasonablemaxval" />
+        <result column="REASONABLEMINVAL" property="reasonableminval" />
+        <result column="WINDTURBINEID" property="windturbineid" />
+        <result column="UNIFORMCODE" property="uniformcode" />
+        <result column="SHORTID" property="shortid" />
+        <result column="LONGID" property="longid" />
+        <result column="WINDPOWERSTATIONID" property="windpowerstationid" />
+        <result column="REALTIMEID" property="realtimeid" />
+    </resultMap>
+
+    <!-- 通用查询结果列 -->
+    <sql id="Base_Column_List">
+        ID, CODE, NAME, MODEL, VALUEUNIT, ENGLISHNAME, TYPEID, MODELID, MAXVAL, MINVAL, REASONABLEMAXVAL, REASONABLEMINVAL, WINDTURBINEID, UNIFORMCODE, SHORTID, LONGID, WINDPOWERSTATIONID, REALTIMEID
+    </sql>
+
+</mapper>