Просмотр исходного кода

添加振动中根据诊断类型获取数据相关接口

wzl 2 месяцев назад
Родитель
Сommit
b3e1a014b5
30 измененных файлов с 810 добавлено и 43 удалено
  1. 56 8
      pom.xml
  2. 32 0
      spy.log
  3. 0 1
      src/main/java/com/dskj/znzn/transData/web/dataTransfer/controller/WindFarmDayCountController.java
  4. 36 4
      src/main/java/com/dskj/znzn/transData/web/waveData/controller/WaveDataController.java
  5. 31 0
      src/main/java/com/dskj/znzn/transData/web/waveData/entity/WaveConf.java
  6. 42 4
      src/main/java/com/dskj/znzn/transData/web/waveData/entity/WaveData.java
  7. 22 0
      src/main/java/com/dskj/znzn/transData/web/waveData/indata/GetAllWindFarmAndFirstInData.java
  8. 35 0
      src/main/java/com/dskj/znzn/transData/web/waveData/indata/GetByFunctionTypeInData.java
  9. 27 0
      src/main/java/com/dskj/znzn/transData/web/waveData/indata/GetSamplingFrequencyByParamsInData.java
  10. 16 0
      src/main/java/com/dskj/znzn/transData/web/waveData/mapper/WaveConfMapper.java
  11. 16 2
      src/main/java/com/dskj/znzn/transData/web/waveData/mapper/WaveDataMapper.java
  12. 11 0
      src/main/java/com/dskj/znzn/transData/web/waveData/outdata/GetAllWindFarmAndFirstOutData.java
  13. 24 0
      src/main/java/com/dskj/znzn/transData/web/waveData/outdata/GetByFunctionTypeSummaryInnerDataOutData.java
  14. 24 0
      src/main/java/com/dskj/znzn/transData/web/waveData/outdata/GetByFunctionTypeSummaryOutData.java
  15. 33 0
      src/main/java/com/dskj/znzn/transData/web/waveData/outdata/ItemOutData.java
  16. 16 0
      src/main/java/com/dskj/znzn/transData/web/waveData/service/IWaveConfService.java
  17. 14 4
      src/main/java/com/dskj/znzn/transData/web/waveData/service/IWaveDataService.java
  18. 15 0
      src/main/java/com/dskj/znzn/transData/web/waveData/service/impl/WaveConfServiceImpl.java
  19. 183 5
      src/main/java/com/dskj/znzn/transData/web/waveData/service/impl/WaveDataServiceImpl.java
  20. 1 1
      src/main/resources/application-datang.yml
  21. 1 1
      src/main/resources/application-dev.yml
  22. 1 1
      src/main/resources/application-huadian.yml
  23. 13 3
      src/main/resources/application-local.yml
  24. 2 1
      src/main/resources/application-prod.yml
  25. 1 1
      src/main/resources/application-zhongguanghe.yml
  26. 3 2
      src/main/resources/application.yml
  27. 1 1
      src/main/resources/logback-prod.xml
  28. 6 0
      src/main/resources/mapper/WaveConfMapper.xml
  29. 121 4
      src/main/resources/mapper/WaveDataMapper.xml
  30. 27 0
      src/main/resources/spy.properties

+ 56 - 8
pom.xml

@@ -117,28 +117,76 @@
             <version>2.15.2</version>
             <version>2.15.2</version>
         </dependency>
         </dependency>
 
 
+        <dependency>
+            <groupId>p6spy</groupId>
+            <artifactId>p6spy</artifactId>
+            <version>3.9.1</version>
+        </dependency>
+
     </dependencies>
     </dependencies>
 
 
+<!--    <build>-->
+<!--        <plugins>-->
+<!--            <plugin>-->
+<!--                <groupId>org.springframework.boot</groupId>-->
+<!--                <artifactId>spring-boot-maven-plugin</artifactId>-->
+<!--                <version>2.7.18</version>-->
+<!--                <executions>-->
+<!--                    <execution>-->
+<!--                        <goals>-->
+<!--                            <goal>repackage</goal>-->
+<!--                        </goals>-->
+<!--                    </execution>-->
+<!--                </executions>-->
+<!--                &lt;!&ndash; 可选地指定 mainClass,但通常不是必需的 &ndash;&gt;-->
+<!--                <configuration>-->
+<!--                    <mainClass>com.dskj.znzn.transData.Application</mainClass>-->
+<!--                </configuration>-->
+<!--            </plugin>-->
+<!--            &lt;!&ndash; 其他插件配置... &ndash;&gt;-->
+<!--        </plugins>-->
+<!--    </build>-->
+
+
     <build>
     <build>
         <plugins>
         <plugins>
+            <!-- 1. 把所有依赖复制到 target/lib 目录 -->
             <plugin>
             <plugin>
-                <groupId>org.springframework.boot</groupId>
-                <artifactId>spring-boot-maven-plugin</artifactId>
-                <version>2.7.18</version>
+                <groupId>org.apache.maven.plugins</groupId>
+                <artifactId>maven-dependency-plugin</artifactId>
+                <version>3.6.1</version>
                 <executions>
                 <executions>
                     <execution>
                     <execution>
+                        <id>copy-dependencies</id>
+                        <phase>package</phase>
                         <goals>
                         <goals>
-                            <goal>repackage</goal>
+                            <goal>copy-dependencies</goal>
                         </goals>
                         </goals>
+                        <configuration>
+                            <outputDirectory>${project.build.directory}/lib</outputDirectory>
+                        </configuration>
                     </execution>
                     </execution>
                 </executions>
                 </executions>
-                <!-- 可选地指定 mainClass,但通常不是必需的 -->
+            </plugin>
+
+            <!-- 2. 打包项目 jar,并配置 classpath 自动加载 lib 下所有依赖 -->
+            <plugin>
+                <groupId>org.apache.maven.plugins</groupId>
+                <artifactId>maven-jar-plugin</artifactId>
+                <version>3.3.0</version>
                 <configuration>
                 <configuration>
-                    <mainClass>com.dskj.znzn.transData.Application</mainClass>
+                    <archive>
+                        <manifest>
+                            <!-- 你的主类(改成你自己的包路径) -->
+                            <mainClass>com.dskj.znzn.transData.Application</mainClass>
+                            <!-- 自动添加所有依赖到 classpath -->
+                            <addClasspath>true</addClasspath>
+                            <!-- 依赖所在目录 -->
+                            <classpathPrefix>lib/</classpathPrefix>
+                        </manifest>
+                    </archive>
                 </configuration>
                 </configuration>
             </plugin>
             </plugin>
-            <!-- 其他插件配置... -->
         </plugins>
         </plugins>
     </build>
     </build>
-
 </project>
 </project>

Разница между файлами не показана из-за своего большого размера
+ 32 - 0
spy.log


+ 0 - 1
src/main/java/com/dskj/znzn/transData/web/dataTransfer/controller/WindFarmDayCountController.java

@@ -55,5 +55,4 @@ public class WindFarmDayCountController {
     public R<List<HistoryDataSummaryOutData>> getIndexOnlineData() {
     public R<List<HistoryDataSummaryOutData>> getIndexOnlineData() {
         return R.ok(windFarmDayCountService.getIndexOnlineData());
         return R.ok(windFarmDayCountService.getIndexOnlineData());
     }
     }
-
 }
 }

+ 36 - 4
src/main/java/com/dskj/znzn/transData/web/waveData/controller/WaveDataController.java

@@ -4,8 +4,8 @@ package com.dskj.znzn.transData.web.waveData.controller;
 import com.dskj.znzn.transData.common.base.PageR;
 import com.dskj.znzn.transData.common.base.PageR;
 import com.dskj.znzn.transData.common.base.R;
 import com.dskj.znzn.transData.common.base.R;
 import com.dskj.znzn.transData.web.waveData.entity.WaveData;
 import com.dskj.znzn.transData.web.waveData.entity.WaveData;
-import com.dskj.znzn.transData.web.waveData.indata.GetMesureDataInData;
-import com.dskj.znzn.transData.web.waveData.indata.GetMesureWithSFDataInData;
+import com.dskj.znzn.transData.web.waveData.indata.*;
+import com.dskj.znzn.transData.web.waveData.outdata.GetByFunctionTypeSummaryOutData;
 import com.dskj.znzn.transData.web.waveData.outdata.ItemOutData;
 import com.dskj.znzn.transData.web.waveData.outdata.ItemOutData;
 import com.dskj.znzn.transData.web.waveData.service.IWaveDataService;
 import com.dskj.znzn.transData.web.waveData.service.IWaveDataService;
 import io.swagger.annotations.Api;
 import io.swagger.annotations.Api;
@@ -45,19 +45,51 @@ public class WaveDataController {
 
 
     @GetMapping("/getAllSamplingFrequency/{windCode}")
     @GetMapping("/getAllSamplingFrequency/{windCode}")
     @ApiOperation("获取风场所有采样频率")
     @ApiOperation("获取风场所有采样频率")
-    public R<List<String>> getAllSamplingFrequency(@PathVariable String windCode) {
+    public R<List<Integer>> getAllSamplingFrequency(@PathVariable String windCode) {
         return R.ok(waveDataService.getAllSamplingFrequency(windCode));
         return R.ok(waveDataService.getAllSamplingFrequency(windCode));
     }
     }
 
 
     @GetMapping("/getWindTurbineNumberSamplingFrequency/{windCode}/{windTurbineNumber}")
     @GetMapping("/getWindTurbineNumberSamplingFrequency/{windCode}/{windTurbineNumber}")
     @ApiOperation("获取风场风机采样频率")
     @ApiOperation("获取风场风机采样频率")
-    public R<List<String>> getWindTurbineNumberSamplingFrequency(@PathVariable String windCode, @PathVariable String windTurbineNumber) {
+    public R<List<Integer>> getWindTurbineNumberSamplingFrequency(@PathVariable String windCode, @PathVariable String windTurbineNumber) {
         return R.ok(waveDataService.getWindTurbineNumberSamplingFrequency(windCode, windTurbineNumber));
         return R.ok(waveDataService.getWindTurbineNumberSamplingFrequency(windCode, windTurbineNumber));
     }
     }
 
 
+    @PostMapping("/getSamplingFrequencyByParams")
+    @ApiOperation("通过各参数获取采样频率")
+    public R<List<Integer>> getSamplingFrequencyByParams(@RequestBody @Valid GetSamplingFrequencyByParamsInData inData) {
+        return R.ok(waveDataService.getSamplingFrequencyByParams(inData));
+    }
+
+
     @PostMapping("/getAllMesurePointName/{windCode}/{windTurbineNumber}")
     @PostMapping("/getAllMesurePointName/{windCode}/{windTurbineNumber}")
     @ApiOperation("获取风场风机已存在测点")
     @ApiOperation("获取风场风机已存在测点")
     public R<List<ItemOutData>> getWindTurbineNumberMesurePointName(@PathVariable String windCode, @PathVariable String windTurbineNumber) {
     public R<List<ItemOutData>> getWindTurbineNumberMesurePointName(@PathVariable String windCode, @PathVariable String windTurbineNumber) {
         return R.ok(waveDataService.getWindTurbineNumberMesurePointName(windCode, windTurbineNumber));
         return R.ok(waveDataService.getWindTurbineNumberMesurePointName(windCode, windTurbineNumber));
     }
     }
+
+
+    @PostMapping("/getAllWindFarmAndFirstData")
+    @ApiOperation("获取振动所有风场以及第一个风场的数据")
+    public R<List<ItemOutData>> getAllWindFarmAndFirstData(@RequestBody @Valid GetAllWindFarmAndFirstInData inData) {
+        return R.ok(waveDataService.getAllWindFarmAndFirstData(inData));
+    }
+
+    @PostMapping("/getWindFarmData")
+    @ApiOperation("获取具体风场的数据")
+    public R<List<ItemOutData>> getWindFarmData(@RequestBody @Valid GetAllWindFarmAndFirstInData inData) {
+        return R.ok(waveDataService.getWindFarmData(inData));
+    }
+
+    @PostMapping({"getByFunctionTypeInData"})
+    @ApiOperation("根据诊断类型获取数据(这个才是汇总,开发结束才改,脑壳疼)")
+    public PageR<WaveData> getByFunctionTypeInData(@RequestBody @Valid GetByFunctionTypeInData inData) {
+        return this.waveDataService.getByFunctionTypeInData(inData);
+    }
+
+    @PostMapping({"getByFunctionTypeInDataSummary"})
+    @ApiOperation("根据诊断类型获取数据(非汇总)")
+    public R<List<GetByFunctionTypeSummaryOutData>> getByFunctionTypeInDataSummary(@RequestBody @Valid GetByFunctionTypeInData inData) {
+        return R.ok(this.waveDataService.getByFunctionTypeInDataSummary(inData));
+    }
 }
 }

+ 31 - 0
src/main/java/com/dskj/znzn/transData/web/waveData/entity/WaveConf.java

@@ -0,0 +1,31 @@
+
+package com.dskj.znzn.transData.web.waveData.entity;
+
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.TableName;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import io.swagger.v3.oas.annotations.Hidden;
+import lombok.Data;
+
+import java.io.Serializable;
+
+@TableName("wave_conf")
+@ApiModel("振动配置")
+@Data
+public class WaveConf implements Serializable {
+
+    @ApiModelProperty("主键")
+    @TableId(value = "id", type = IdType.AUTO)
+    private Integer id;
+
+    @ApiModelProperty("风机编号")
+    private String windCode;
+
+    @ApiModelProperty("原始风机编号")
+    private String windName;
+
+    @Hidden
+    private Integer status;
+}

+ 42 - 4
src/main/java/com/dskj/znzn/transData/web/waveData/entity/WaveData.java

@@ -2,6 +2,7 @@
 package com.dskj.znzn.transData.web.waveData.entity;
 package com.dskj.znzn.transData.web.waveData.entity;
 
 
 import com.baomidou.mybatisplus.annotation.IdType;
 import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableField;
 import com.baomidou.mybatisplus.annotation.TableId;
 import com.baomidou.mybatisplus.annotation.TableId;
 import com.baomidou.mybatisplus.annotation.TableName;
 import com.baomidou.mybatisplus.annotation.TableName;
 import com.fasterxml.jackson.annotation.JsonFormat;
 import com.fasterxml.jackson.annotation.JsonFormat;
@@ -13,7 +14,7 @@ import java.io.Serializable;
 import java.util.Date;
 import java.util.Date;
 
 
 @TableName("wave_data")
 @TableName("wave_data")
-@ApiModel("动数据")
+@ApiModel("动数据")
 @Data
 @Data
 public class WaveData implements Serializable {
 public class WaveData implements Serializable {
 
 
@@ -35,12 +36,49 @@ public class WaveData implements Serializable {
     private Float rotationalSpeed;
     private Float rotationalSpeed;
 
 
     @ApiModelProperty("分析频率")
     @ApiModelProperty("分析频率")
-    private String samplingFrequency;
+    private Integer samplingFrequency;
 
 
     @ApiModelProperty("测点名称")
     @ApiModelProperty("测点名称")
     private String mesurePointName;
     private String mesurePointName;
 
 
-    @ApiModelProperty("测点数据")
-    private String mesureData;
+    @ApiModelProperty("测点名称-中文")
+    private String detectionPointCn;
+
+    @ApiModelProperty("频谱单位")
+    private String euSpectrum;
+
+    @ApiModelProperty("频谱的检测类型 0:None,1:Peak,2:Peak-to-peak,3:RMS")
+    private Integer detectionType;
+
+    @ApiModelProperty(" 窗函数类型:0:Hanning,1:Uniform,2:Flat Top")
+    private Integer windowType;
+
+    @ApiModelProperty("频谱的起始频率(Hz)")
+    private Integer startFrequency;
+
+    @ApiModelProperty("频谱的结束频率(Hz)")
+    private Integer endFrequency;
+
+    @ApiModelProperty("采样点数(时域波形)或谱线数(频谱)")
+    private Integer samples;
+
+    @ApiModelProperty("品牌")
+    @TableField(exist = false)
+    private String brand;
+
+    @ApiModelProperty("品牌型号")
+    @TableField(exist = false)
+    private String brandType;
+
+    @ApiModelProperty("-1:不存在 0:角度 1:速度 2:加速度 3:位移 4:包络,默认 -1")
+    private Integer type;
+
+    @ApiModelProperty("按类型(1:轴承诊断 2:齿轮诊断 3:不对中诊断 4:不平衡诊断 5:松动诊断)返回的诊断数据")
+    private Integer status;
+
+    @ApiModelProperty("类型1")
+    @TableField(exist = false)
+    private String functionTypeName;
+
 
 
 }
 }

+ 22 - 0
src/main/java/com/dskj/znzn/transData/web/waveData/indata/GetAllWindFarmAndFirstInData.java

@@ -0,0 +1,22 @@
+package com.dskj.znzn.transData.web.waveData.indata;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+@ApiModel
+@Data
+public class GetAllWindFarmAndFirstInData {
+
+    @ApiModelProperty("风场编码")
+    private String windFarmCode;
+
+    @ApiModelProperty("风场名称")
+    private String windFarmName;
+
+    @ApiModelProperty("开始时间")
+    private String beginTime;
+
+    @ApiModelProperty("结束时间")
+    private String endTime;
+}

+ 35 - 0
src/main/java/com/dskj/znzn/transData/web/waveData/indata/GetByFunctionTypeInData.java

@@ -0,0 +1,35 @@
+package com.dskj.znzn.transData.web.waveData.indata;
+
+
+import com.dskj.znzn.transData.common.base.PageInfo;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import javax.validation.constraints.NotBlank;
+
+@ApiModel
+@Data
+public class GetByFunctionTypeInData extends PageInfo {
+
+    @ApiModelProperty("风场编号")
+    @NotBlank(message = "风场编号不能为空")
+    private String windCode;
+
+    @ApiModelProperty("风机编号")
+    @NotBlank(message = "必须选择风机")
+    private String windTurbineNumber;
+
+    @ApiModelProperty("开始时间,yyyy-MM-dd HH:mm:ss")
+    @NotBlank(message = "开始时间不能为空")
+    private String startTime;
+
+    @ApiModelProperty("结束时间,yyyy-MM-dd hh:mm:ss")
+    @NotBlank(message = "结束时间不能为空")
+    private String endTime;
+
+    @ApiModelProperty("故障诊断可做功能,1:轴承诊断;2:齿轮诊断;3:不对中;4:不平衡;5:松动)")
+    @NotBlank(message = "诊断类型不能为空")
+    private String functionType;
+
+}

+ 27 - 0
src/main/java/com/dskj/znzn/transData/web/waveData/indata/GetSamplingFrequencyByParamsInData.java

@@ -0,0 +1,27 @@
+package com.dskj.znzn.transData.web.waveData.indata;
+
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import javax.validation.constraints.NotBlank;
+
+@ApiModel
+@Data
+public class GetSamplingFrequencyByParamsInData {
+
+    @ApiModelProperty("风场编码")
+    @NotBlank
+    private String windFarmCode;
+
+    @ApiModelProperty("风机编号")
+    @NotBlank
+    private String windTurbineNumber;
+
+    @ApiModelProperty("测点名称")
+    @NotBlank
+    private String mesurePointName;
+
+
+}

+ 16 - 0
src/main/java/com/dskj/znzn/transData/web/waveData/mapper/WaveConfMapper.java

@@ -0,0 +1,16 @@
+package com.dskj.znzn.transData.web.waveData.mapper;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.dskj.znzn.transData.web.waveData.entity.WaveConf;
+import com.dskj.znzn.transData.web.waveData.entity.WaveData;
+import com.dskj.znzn.transData.web.waveData.indata.GetMesureWithSFDataInData;
+import com.dskj.znzn.transData.web.waveData.outdata.ItemOutData;
+import org.apache.ibatis.annotations.Mapper;
+
+import java.util.List;
+
+@Mapper
+public interface WaveConfMapper extends BaseMapper<WaveConf> {
+
+}

+ 16 - 2
src/main/java/com/dskj/znzn/transData/web/waveData/mapper/WaveDataMapper.java

@@ -3,11 +3,16 @@ package com.dskj.znzn.transData.web.waveData.mapper;
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.dskj.znzn.transData.web.waveData.entity.WaveData;
 import com.dskj.znzn.transData.web.waveData.entity.WaveData;
+import com.dskj.znzn.transData.web.waveData.indata.GetByFunctionTypeInData;
 import com.dskj.znzn.transData.web.waveData.indata.GetMesureWithSFDataInData;
 import com.dskj.znzn.transData.web.waveData.indata.GetMesureWithSFDataInData;
+import com.dskj.znzn.transData.web.waveData.indata.GetSamplingFrequencyByParamsInData;
 import com.dskj.znzn.transData.web.waveData.outdata.ItemOutData;
 import com.dskj.znzn.transData.web.waveData.outdata.ItemOutData;
+import org.apache.ibatis.annotations.MapKey;
 import org.apache.ibatis.annotations.Mapper;
 import org.apache.ibatis.annotations.Mapper;
+import org.apache.ibatis.annotations.Param;
 
 
 import java.util.List;
 import java.util.List;
+import java.util.Map;
 
 
 @Mapper
 @Mapper
 public interface WaveDataMapper extends BaseMapper<WaveData> {
 public interface WaveDataMapper extends BaseMapper<WaveData> {
@@ -18,10 +23,19 @@ public interface WaveDataMapper extends BaseMapper<WaveData> {
 
 
     Page<WaveData> getMesureDataWithSF(Page<WaveData> page, GetMesureWithSFDataInData inData);
     Page<WaveData> getMesureDataWithSF(Page<WaveData> page, GetMesureWithSFDataInData inData);
 
 
-    List<String> getAllSamplingFrequency(String windCode);
+    List<Integer> getAllSamplingFrequency(String windCode);
 
 
 
 
-    List<String> getWindTurbineNumberSamplingFrequency(String windCode, String windTurbineNumber);
+    List<Integer> getWindTurbineNumberSamplingFrequency(String windCode, String windTurbineNumber);
 
 
     List<ItemOutData> getWindTurbineNumberMesurePointName(String windCode, String windTurbineNumber);
     List<ItemOutData> getWindTurbineNumberMesurePointName(String windCode, String windTurbineNumber);
+
+    @MapKey(value = "id")
+    List<Map<String, String>> getTableTreeData(String windCode, String beginTime, String endTime);
+
+    List<Integer> getSamplingFrequencyByParams(GetSamplingFrequencyByParamsInData inData);
+
+    Page<WaveData> getByFunctionTypeInData(Page<WaveData> queryPage, GetByFunctionTypeInData inData);
+
+    List<WaveData> getByFunctionTypeInDataSummary(@Param("inData")GetByFunctionTypeInData inData);
 }
 }

+ 11 - 0
src/main/java/com/dskj/znzn/transData/web/waveData/outdata/GetAllWindFarmAndFirstOutData.java

@@ -0,0 +1,11 @@
+package com.dskj.znzn.transData.web.waveData.outdata;
+
+import io.swagger.annotations.ApiModel;
+import lombok.Data;
+
+@ApiModel
+@Data
+public class GetAllWindFarmAndFirstOutData {
+
+
+}

+ 24 - 0
src/main/java/com/dskj/znzn/transData/web/waveData/outdata/GetByFunctionTypeSummaryInnerDataOutData.java

@@ -0,0 +1,24 @@
+package com.dskj.znzn.transData.web.waveData.outdata;
+
+import com.fasterxml.jackson.annotation.JsonFormat;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.util.Date;
+
+@ApiModel
+@Data
+public class GetByFunctionTypeSummaryInnerDataOutData {
+
+    @ApiModelProperty("ID")
+    private Integer id;
+
+    @ApiModelProperty("时间")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    private Date timeStamp;
+
+    @ApiModelProperty("状态")
+    private Integer status;
+
+}

+ 24 - 0
src/main/java/com/dskj/znzn/transData/web/waveData/outdata/GetByFunctionTypeSummaryOutData.java

@@ -0,0 +1,24 @@
+package com.dskj.znzn.transData.web.waveData.outdata;
+
+import com.dskj.znzn.transData.web.waveData.entity.WaveData;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.util.List;
+
+@ApiModel
+@Data
+public class GetByFunctionTypeSummaryOutData {
+
+    @ApiModelProperty("测点名称-中文")
+    private String pointNameCn;
+
+    @ApiModelProperty("诊断数据")
+//    private List<GetByFunctionTypeSummaryInnerDataOutData> innerDatas;
+    private List<WaveData> innerDatas;
+
+
+}
+
+

+ 33 - 0
src/main/java/com/dskj/znzn/transData/web/waveData/outdata/ItemOutData.java

@@ -1,13 +1,46 @@
 package com.dskj.znzn.transData.web.waveData.outdata;
 package com.dskj.znzn.transData.web.waveData.outdata;
 
 
+import com.alibaba.fastjson.JSONObject;
 import io.swagger.annotations.ApiModel;
 import io.swagger.annotations.ApiModel;
+import lombok.AllArgsConstructor;
 import lombok.Data;
 import lombok.Data;
+import lombok.NoArgsConstructor;
+
+import java.util.ArrayList;
+import java.util.List;
+
 
 
 @ApiModel
 @ApiModel
 @Data
 @Data
+@NoArgsConstructor
+@AllArgsConstructor
 public class ItemOutData {
 public class ItemOutData {
 
 
     private String itemKey;
     private String itemKey;
 
 
     private String itemValue;
     private String itemValue;
+
+    private boolean hasNext = false;
+
+    private JSONObject otherData;
+
+    List<ItemOutData> nextData;
+
+    public ItemOutData(String itemKey, String itemValue, boolean hasNext) {
+        this.itemKey = itemKey;
+        this.itemValue = itemValue;
+        this.hasNext = hasNext;
+        this.nextData = new ArrayList<>();
+    }
+
+    public ItemOutData(String itemKey, String itemValue, boolean hasNext, JSONObject jsonObject) {
+        this.itemKey = itemKey;
+        this.itemValue = itemValue;
+        this.hasNext = hasNext;
+        this.nextData = new ArrayList<>();
+        if (null == jsonObject) {
+            jsonObject = new JSONObject();
+        }
+        this.otherData = jsonObject;
+    }
 }
 }

+ 16 - 0
src/main/java/com/dskj/znzn/transData/web/waveData/service/IWaveConfService.java

@@ -0,0 +1,16 @@
+package com.dskj.znzn.transData.web.waveData.service;
+
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.dskj.znzn.transData.common.base.PageR;
+import com.dskj.znzn.transData.web.waveData.entity.WaveConf;
+import com.dskj.znzn.transData.web.waveData.entity.WaveData;
+import com.dskj.znzn.transData.web.waveData.indata.GetAllWindFarmAndFirstInData;
+import com.dskj.znzn.transData.web.waveData.indata.GetMesureDataInData;
+import com.dskj.znzn.transData.web.waveData.indata.GetMesureWithSFDataInData;
+import com.dskj.znzn.transData.web.waveData.outdata.ItemOutData;
+
+import java.util.List;
+
+public interface IWaveConfService extends IService<WaveConf> {
+
+}

+ 14 - 4
src/main/java/com/dskj/znzn/transData/web/waveData/service/IWaveDataService.java

@@ -3,8 +3,8 @@ package com.dskj.znzn.transData.web.waveData.service;
 import com.baomidou.mybatisplus.extension.service.IService;
 import com.baomidou.mybatisplus.extension.service.IService;
 import com.dskj.znzn.transData.common.base.PageR;
 import com.dskj.znzn.transData.common.base.PageR;
 import com.dskj.znzn.transData.web.waveData.entity.WaveData;
 import com.dskj.znzn.transData.web.waveData.entity.WaveData;
-import com.dskj.znzn.transData.web.waveData.indata.GetMesureDataInData;
-import com.dskj.znzn.transData.web.waveData.indata.GetMesureWithSFDataInData;
+import com.dskj.znzn.transData.web.waveData.indata.*;
+import com.dskj.znzn.transData.web.waveData.outdata.GetByFunctionTypeSummaryOutData;
 import com.dskj.znzn.transData.web.waveData.outdata.ItemOutData;
 import com.dskj.znzn.transData.web.waveData.outdata.ItemOutData;
 
 
 import java.util.List;
 import java.util.List;
@@ -16,9 +16,19 @@ public interface IWaveDataService extends IService<WaveData> {
 
 
     PageR<WaveData> getMesureDataWithSF(GetMesureWithSFDataInData inData);
     PageR<WaveData> getMesureDataWithSF(GetMesureWithSFDataInData inData);
 
 
-    List<String> getAllSamplingFrequency(String windCode);
+    List<Integer> getAllSamplingFrequency(String windCode);
 
 
     List<ItemOutData> getWindTurbineNumberMesurePointName(String windCode, String windTurbineNumber);
     List<ItemOutData> getWindTurbineNumberMesurePointName(String windCode, String windTurbineNumber);
 
 
-    List<String> getWindTurbineNumberSamplingFrequency(String windCode, String windTurbineNumber);
+    List<Integer> getWindTurbineNumberSamplingFrequency(String windCode, String windTurbineNumber);
+
+    List<ItemOutData> getAllWindFarmAndFirstData(GetAllWindFarmAndFirstInData inData);
+
+    List<ItemOutData> getWindFarmData(GetAllWindFarmAndFirstInData inData);
+
+    List<Integer> getSamplingFrequencyByParams(GetSamplingFrequencyByParamsInData inData);
+
+    PageR<WaveData> getByFunctionTypeInData(GetByFunctionTypeInData inData);
+
+    List<GetByFunctionTypeSummaryOutData> getByFunctionTypeInDataSummary(GetByFunctionTypeInData inData);
 }
 }

+ 15 - 0
src/main/java/com/dskj/znzn/transData/web/waveData/service/impl/WaveConfServiceImpl.java

@@ -0,0 +1,15 @@
+package com.dskj.znzn.transData.web.waveData.service.impl;
+
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.dskj.znzn.transData.web.waveData.entity.WaveConf;
+import com.dskj.znzn.transData.web.waveData.mapper.WaveConfMapper;
+import com.dskj.znzn.transData.web.waveData.service.IWaveConfService;
+import lombok.RequiredArgsConstructor;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+
+@Service
+@RequiredArgsConstructor(onConstructor = @__({@Autowired}))
+public class WaveConfServiceImpl extends ServiceImpl<WaveConfMapper, WaveConf> implements IWaveConfService {
+
+}

+ 183 - 5
src/main/java/com/dskj/znzn/transData/web/waveData/service/impl/WaveDataServiceImpl.java

@@ -1,26 +1,35 @@
 
 
 package com.dskj.znzn.transData.web.waveData.service.impl;
 package com.dskj.znzn.transData.web.waveData.service.impl;
 
 
+import com.alibaba.fastjson.JSONObject;
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.baomidou.mybatisplus.core.toolkit.StringUtils;
+import com.baomidou.mybatisplus.core.toolkit.Wrappers;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import com.dskj.znzn.transData.common.base.PageR;
 import com.dskj.znzn.transData.common.base.PageR;
 import com.dskj.znzn.transData.common.exception.BusinessException;
 import com.dskj.znzn.transData.common.exception.BusinessException;
+import com.dskj.znzn.transData.web.waveData.entity.WaveConf;
 import com.dskj.znzn.transData.web.waveData.entity.WaveData;
 import com.dskj.znzn.transData.web.waveData.entity.WaveData;
-import com.dskj.znzn.transData.web.waveData.indata.GetMesureDataInData;
-import com.dskj.znzn.transData.web.waveData.indata.GetMesureWithSFDataInData;
+import com.dskj.znzn.transData.web.waveData.indata.*;
 import com.dskj.znzn.transData.web.waveData.mapper.WaveDataMapper;
 import com.dskj.znzn.transData.web.waveData.mapper.WaveDataMapper;
+import com.dskj.znzn.transData.web.waveData.outdata.GetByFunctionTypeSummaryInnerDataOutData;
+import com.dskj.znzn.transData.web.waveData.outdata.GetByFunctionTypeSummaryOutData;
 import com.dskj.znzn.transData.web.waveData.outdata.ItemOutData;
 import com.dskj.znzn.transData.web.waveData.outdata.ItemOutData;
+import com.dskj.znzn.transData.web.waveData.service.IWaveConfService;
 import com.dskj.znzn.transData.web.waveData.service.IWaveDataService;
 import com.dskj.znzn.transData.web.waveData.service.IWaveDataService;
 import lombok.RequiredArgsConstructor;
 import lombok.RequiredArgsConstructor;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 import org.springframework.stereotype.Service;
 
 
-import java.util.List;
+import java.util.*;
+import java.util.stream.Collectors;
 
 
 @Service
 @Service
 @RequiredArgsConstructor(onConstructor = @__({@Autowired}))
 @RequiredArgsConstructor(onConstructor = @__({@Autowired}))
 public class WaveDataServiceImpl extends ServiceImpl<WaveDataMapper, WaveData> implements IWaveDataService {
 public class WaveDataServiceImpl extends ServiceImpl<WaveDataMapper, WaveData> implements IWaveDataService {
     private final WaveDataMapper waveDataMapper;
     private final WaveDataMapper waveDataMapper;
+    private final IWaveConfService waveConfService;
 
 
     public List<WaveData> getMesureData(GetMesureDataInData inData) {
     public List<WaveData> getMesureData(GetMesureDataInData inData) {
         if (inData.getWindCode().contains(" ")) {
         if (inData.getWindCode().contains(" ")) {
@@ -51,8 +60,63 @@ public class WaveDataServiceImpl extends ServiceImpl<WaveDataMapper, WaveData> i
         }
         }
     }
     }
 
 
+
+    @Override
+    public List<Integer> getSamplingFrequencyByParams(GetSamplingFrequencyByParamsInData inData) {
+        String winFarmCode = inData.getWindFarmCode();
+        if (winFarmCode.contains(" ")) {
+            throw new BusinessException("风场参数异常");
+        } else {
+            winFarmCode = winFarmCode + "_wave";
+            inData.setWindFarmCode(winFarmCode);
+            return waveDataMapper.getSamplingFrequencyByParams(inData);
+        }
+    }
+
+    @Override
+    public PageR<WaveData> getByFunctionTypeInData(GetByFunctionTypeInData inData) {
+        if (inData.getWindCode().contains(" ")) {
+            throw new BusinessException("风场参数异常");
+        } else {
+
+            Page<WaveData> queryPage = Page.of(inData.getPageNo(), inData.getPageSize());
+            inData.setWindCode(inData.getWindCode() + "_wave");
+            Page<WaveData> pageData = this.waveDataMapper.getByFunctionTypeInData(queryPage, inData);
+            return PageR.page(pageData);
+        }
+    }
+
     @Override
     @Override
-    public List<String> getAllSamplingFrequency(String windCode) {
+    public List<GetByFunctionTypeSummaryOutData> getByFunctionTypeInDataSummary(GetByFunctionTypeInData inData) {
+        if (inData.getWindCode().contains(" ")) {
+            throw new BusinessException("风场参数异常");
+        } else {
+            inData.setWindCode(inData.getWindCode() + "_wave");
+            Map<String, List<WaveData>> nameGrooup = waveDataMapper.getByFunctionTypeInDataSummary(inData).stream()
+                    .collect(Collectors.groupingBy(data -> data.getDetectionPointCn()));
+            List<GetByFunctionTypeSummaryOutData> datas = new ArrayList<>();
+            for (Map.Entry<String, List<WaveData>> entry : nameGrooup.entrySet()) {
+                GetByFunctionTypeSummaryOutData outData = new GetByFunctionTypeSummaryOutData();
+                outData.setPointNameCn(entry.getKey());
+//                List<GetByFunctionTypeSummaryInnerDataOutData> innerDatas = new ArrayList<>();
+//                for (WaveData value : entry.getValue()) {
+//                    GetByFunctionTypeSummaryInnerDataOutData innerDataOutData = new GetByFunctionTypeSummaryInnerDataOutData();
+//                    innerDataOutData.setTimeStamp(value.getTimeStamp());
+//                    innerDataOutData.setStatus(value.getStatus());
+//                    innerDataOutData.setId(value.getId());
+//                    innerDatas.add(innerDataOutData);
+//                }
+//                innerDatas.sort(Comparator.comparing(GetByFunctionTypeSummaryInnerDataOutData::getTimeStamp));
+                outData.setInnerDatas(entry.getValue());
+                datas.add(outData);
+            }
+
+            return datas;
+        }
+    }
+
+    @Override
+    public List<Integer> getAllSamplingFrequency(String windCode) {
 
 
         if (windCode.contains(" ")) {
         if (windCode.contains(" ")) {
             throw new BusinessException("风场参数异常");
             throw new BusinessException("风场参数异常");
@@ -73,7 +137,7 @@ public class WaveDataServiceImpl extends ServiceImpl<WaveDataMapper, WaveData> i
     }
     }
 
 
     @Override
     @Override
-    public List<String> getWindTurbineNumberSamplingFrequency(String windCode, String windTurbineNumber) {
+    public List<Integer> getWindTurbineNumberSamplingFrequency(String windCode, String windTurbineNumber) {
         if (windCode.contains(" ")) {
         if (windCode.contains(" ")) {
             throw new BusinessException("风场参数异常");
             throw new BusinessException("风场参数异常");
         } else {
         } else {
@@ -81,4 +145,118 @@ public class WaveDataServiceImpl extends ServiceImpl<WaveDataMapper, WaveData> i
             return waveDataMapper.getWindTurbineNumberSamplingFrequency(windCode, windTurbineNumber);
             return waveDataMapper.getWindTurbineNumberSamplingFrequency(windCode, windTurbineNumber);
         }
         }
     }
     }
+
+    @Override
+    public List<ItemOutData> getAllWindFarmAndFirstData(GetAllWindFarmAndFirstInData inData) {
+
+        LambdaQueryWrapper<WaveConf> waveConfLambdaQueryWrapper = Wrappers.lambdaQuery(WaveConf.class);
+        waveConfLambdaQueryWrapper.eq(WaveConf::getStatus, 1);
+        if (StringUtils.isNotBlank(inData.getWindFarmName())) {
+            waveConfLambdaQueryWrapper.eq(WaveConf::getWindName, inData.getWindFarmName());
+        }
+        waveConfLambdaQueryWrapper.orderByDesc(WaveConf::getId);
+
+        List<WaveConf> waveConfs = waveConfService.list(waveConfLambdaQueryWrapper);
+        boolean first = true;
+        List<ItemOutData> list = new ArrayList<>();
+        for (WaveConf conf : waveConfs) {
+            ItemOutData outData = new ItemOutData();
+            outData.setItemKey(conf.getWindCode());
+            outData.setItemValue(conf.getWindName());
+            if (first) {
+                first = false;
+                outData.setHasNext(true);
+                List<Map<String, String>> maps = waveDataMapper.getTableTreeData(conf.getWindCode() + "_wave", inData.getBeginTime(), inData.getEndTime());
+                outData.setNextData(buildItemOutData(maps));
+            }
+
+            list.add(outData);
+        }
+
+        return list;
+    }
+
+    @Override
+    public List<ItemOutData> getWindFarmData(GetAllWindFarmAndFirstInData inData) {
+        if (StringUtils.isBlank(inData.getWindFarmCode()) || inData.getWindFarmCode().contains(" ")) {
+            throw new BusinessException("风场参数异常");
+        }
+        List<Map<String, String>> maps = waveDataMapper.getTableTreeData(inData.getWindFarmCode() + "_wave", inData.getBeginTime(), inData.getEndTime());
+        if (null == maps || maps.isEmpty()) {
+            return Collections.emptyList();
+        }
+
+        return buildItemOutData(maps);
+    }
+
+
+    /**
+     * 核心方法:按新的key/value规则构建层级化的ItemOutData列表
+     */
+    private List<ItemOutData> buildItemOutData(List<Map<String, String>> maps) {
+        List<ItemOutData> rootList = new ArrayList<>();
+
+        // 第一步:按风机编号(wind_turbine_number)分组(保证风机节点唯一)
+        Map<String, List<Map<String, String>>> turbineGroup = maps.stream()
+                .collect(Collectors.groupingBy(map -> map.get("wind_turbine_number")));
+
+        // 遍历每个风机分组,构建第一层(风机)
+        for (Map.Entry<String, List<Map<String, String>>> turbineEntry : turbineGroup.entrySet()) {
+            String turbineNumber = turbineEntry.getKey(); // itemKey = 风机编号
+            List<Map<String, String>> turbineDataList = turbineEntry.getValue();
+            // 取风机名称(同一风机编号下名称一致,取第一个即可)
+            String turbineName = turbineDataList.get(0).get("wind_turbine_name");
+
+            // 构建风机层级ItemOutData:key=风机编号,value=风机名称,hasNext=true
+            ItemOutData turbineItem = new ItemOutData(turbineNumber, turbineName, true);
+
+            // 第二步:在当前风机下,按测点英文名称(detection_point_en)分组
+            Map<String, List<Map<String, String>>> pointGroup = turbineDataList.stream()
+                    .collect(Collectors.groupingBy(map -> map.get("detection_point_en")));
+
+            // 遍历每个测点分组,构建第二层(测点)
+            for (Map.Entry<String, List<Map<String, String>>> pointEntry : pointGroup.entrySet()) {
+                String pointEn = pointEntry.getKey(); // itemKey = 测点英文名称
+                List<Map<String, String>> pointDataList = pointEntry.getValue();
+                // 取测点中文名称(同一英文标识下中文名称一致,取第一个即可)
+                String pointCn = pointDataList.get(0).get("detection_point_cn");
+
+                // 构建测点层级ItemOutData:key=测点英文,value=测点中文,hasNext=true
+                ItemOutData pointItem = new ItemOutData(pointEn, pointCn, true);
+
+                // 第三步:遍历当前测点下的所有数据,构建第三层(时间)
+                // 时间层:key=id,value=time_stamp(每个id对应一条时间记录,无需去重)
+                for (Map<String, String> timeMap : pointDataList) {
+                    String id = String.valueOf(timeMap.get("id")); // itemKey = id
+                    String timeStamp = String.valueOf(timeMap.get("time_stamp")).replace("T", " "); // itemValue = 时间戳
+                    String hz = String.valueOf(timeMap.get("sampling_frequency"));
+                    String rotational_speed = String.valueOf(timeMap.get("rotational_speed"));
+                    String type = String.valueOf(timeMap.get("type"));
+                    String brand = timeMap.get("brand");
+                    String brandType = timeMap.get("brand_type");
+                    JSONObject jsonObject = new JSONObject();
+                    jsonObject.put("Hz", hz);
+                    jsonObject.put("RPM", rotational_speed);
+                    jsonObject.put("type", type);
+//                    jsonObject.put("type_detail", "-1:不存在 0:角度 1:速度 2:加速度 3:位移 4:包络,默认 -1");
+                    jsonObject.put("brand", brand);
+                    jsonObject.put("brandType", brandType);
+
+                    // 构建时间层级ItemOutData:key=id,value=时间戳,hasNext=false
+                    ItemOutData timeItem = new ItemOutData(id, timeStamp, false, jsonObject);
+                    pointItem.getNextData().add(timeItem);
+
+                }
+
+                // 将测点Item添加到风机Item的nextData中
+                turbineItem.getNextData().add(pointItem);
+            }
+
+            // 将风机Item添加到顶层列表
+            rootList.add(turbineItem);
+        }
+
+        return rootList;
+    }
+
 }
 }

+ 1 - 1
src/main/resources/application-datang.yml

@@ -22,7 +22,7 @@ token:
 
 
 spring:
 spring:
   datasource:
   datasource:
-    url: jdbc:mysql://127.0.0.1:3306/energy_data_prod?useUnicode=true&characterEncoding=UTF-8&allowMultiQueries=true&useSSL=false
+    url: jdbc:p6spy:mysql://127.0.0.1:3306/energy_data_prod?useUnicode=true&characterEncoding=UTF-8&allowMultiQueries=true&useSSL=false
     username: root
     username: root
     password: admin123456
     password: admin123456
 
 

+ 1 - 1
src/main/resources/application-dev.yml

@@ -8,7 +8,7 @@ knife4j:
 
 
 spring:
 spring:
   datasource:
   datasource:
-    url: jdbc:mysql://192.168.50.235:30306/energy_data?useUnicode=true&characterEncoding=UTF-8&allowMultiQueries=true&useSSL=false
+    url: jdbc:p6spy:mysql://192.168.50.235:30306/energy_data_qianan?useUnicode=true&characterEncoding=UTF-8&allowMultiQueries=true&useSSL=false
     username: root
     username: root
     password: admin123456
     password: admin123456
 
 

+ 1 - 1
src/main/resources/application-huadian.yml

@@ -2,7 +2,7 @@ server:
   port: 9002
   port: 9002
 spring:
 spring:
   datasource:
   datasource:
-    url: jdbc:mysql://127.0.0.1:3306/energy_data_prod?useUnicode=true&characterEncoding=UTF-8&allowMultiQueries=true&useSSL=false
+    url: jdbc:p6spy:mysql://127.0.0.1:3306/energy_data_prod?useUnicode=true&characterEncoding=UTF-8&allowMultiQueries=true&useSSL=false
     username: root
     username: root
     password: admin123456
     password: admin123456
     driver-class-name: com.mysql.cj.jdbc.Driver
     driver-class-name: com.mysql.cj.jdbc.Driver

+ 13 - 3
src/main/resources/application-jilin.yml → src/main/resources/application-local.yml

@@ -1,5 +1,5 @@
 server:
 server:
-  port: 9002
+  port: 9001
 knife4j:
 knife4j:
   enable: true
   enable: true
   setting:
   setting:
@@ -8,9 +8,19 @@ knife4j:
 
 
 spring:
 spring:
   datasource:
   datasource:
-    url: jdbc:mysql://127.0.0.1:3306/energy_data?useUnicode=true&characterEncoding=UTF-8&allowMultiQueries=true&useSSL=false&serverTimezone=Asia/Shanghai
+    url: jdbc:p6spy:mysql://127.0.0.1:3306/energy_data?useUnicode=true&characterEncoding=UTF-8&allowMultiQueries=true&useSSL=false
     username: root
     username: root
+    password: admin123456
+
+  redis:
+    host: 192.168.50.233
+    port: 6379
     password: 123456
     password: 123456
+    jedis:
+      pool:
+        max-active: 8
+        max-wait: -1
+    database: 1
 
 
 
 
 logging:
 logging:
@@ -22,4 +32,4 @@ logging:
     com.dskj.znzn.transData.web.common.mapper: debug
     com.dskj.znzn.transData.web.common.mapper: debug
 
 
 
 
-  config: classpath:logback-prod.xml
+  config: classpath:logback-dev.xml

+ 2 - 1
src/main/resources/application-prod.yml

@@ -14,7 +14,8 @@ knife4j:
 
 
 spring:
 spring:
   datasource:
   datasource:
-    url: jdbc:mysql://192.168.50.235:30306/energy_data_prod?useUnicode=true&characterEncoding=UTF-8&allowMultiQueries=true&useSSL=false
+    url: jdbc:p6spy:mysql://192.168.50.235:30306/energy_data_prod?useUnicode=true&characterEncoding=UTF-8&allowMultiQueries=true&useSSL=false
+#    url: jdbc:mysql://106.120.102.238:10336/energy_data_prod?useUnicode=true&characterEncoding=UTF-8&allowMultiQueries=true&useSSL=false
     username: root
     username: root
     password: admin123456
     password: admin123456
 
 

+ 1 - 1
src/main/resources/application-zhongguanghe.yml

@@ -14,7 +14,7 @@ knife4j:
 
 
 spring:
 spring:
   datasource:
   datasource:
-    url: jdbc:mysql://127.0.0.1:3306/energy_data?useUnicode=true&characterEncoding=UTF-8&allowMultiQueries=true&useSSL=false
+    url: jdbc:p6spy:mysql://127.0.0.1:3306/energy_data?useUnicode=true&characterEncoding=UTF-8&allowMultiQueries=true&useSSL=false
     username: root
     username: root
     password: VzHXkVrKSEm5pCcXBQpA
     password: VzHXkVrKSEm5pCcXBQpA
 
 

+ 3 - 2
src/main/resources/application.yml

@@ -2,10 +2,11 @@ server:
   port: 9001
   port: 9001
 spring:
 spring:
   profiles:
   profiles:
-    active: jilin
+    active: dev
 
 
   datasource:
   datasource:
-    driver-class-name: com.mysql.cj.jdbc.Driver
+#    driver-class-name: com.mysql.cj.jdbc.Driver
+    driver-class-name: com.p6spy.engine.spy.P6SpyDriver
     druid:
     druid:
       initial-size: 30
       initial-size: 30
       log-abandoned: false
       log-abandoned: false

+ 1 - 1
src/main/resources/logback-prod.xml

@@ -5,7 +5,7 @@
     <property name="CHARSET" value="utf-8"/>
     <property name="CHARSET" value="utf-8"/>
     <property name="MAX_FILE_SIZE" value="200MB"/>
     <property name="MAX_FILE_SIZE" value="200MB"/>
     <property name="MAX_HISTORY" value="30"/>
     <property name="MAX_HISTORY" value="30"/>
-    <property name="BASE_LOG_PATH" value="${user.home}/logs/"/>
+    <property name="BASE_LOG_PATH" value="/data/logs/"/>
     <property name="SERVICE_NAME" value="WindDataTrans"/>
     <property name="SERVICE_NAME" value="WindDataTrans"/>
 
 
     <appender name="console" class="ch.qos.logback.core.ConsoleAppender">
     <appender name="console" class="ch.qos.logback.core.ConsoleAppender">

+ 6 - 0
src/main/resources/mapper/WaveConfMapper.xml

@@ -0,0 +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.dskj.znzn.transData.web.waveData.mapper.WaveConfMapper">
+
+
+</mapper>

+ 121 - 4
src/main/resources/mapper/WaveDataMapper.xml

@@ -47,17 +47,19 @@
 
 
     </select>
     </select>
 
 
-    <select id="getAllSamplingFrequency" resultType="java.lang.String">
+    <select id="getAllSamplingFrequency" resultType="java.lang.Integer">
         select distinct sampling_frequency
         select distinct sampling_frequency
         from ${windCode}
         from ${windCode}
         where rotational_speed > 0
         where rotational_speed > 0
+        order by sampling_frequency asc
     </select>
     </select>
 
 
-    <select id="getWindTurbineNumberSamplingFrequency" resultType="java.lang.String">
+    <select id="getWindTurbineNumberSamplingFrequency" resultType="java.lang.Integer">
         select distinct sampling_frequency
         select distinct sampling_frequency
         from ${windCode}
         from ${windCode}
         where wind_turbine_number = #{windTurbineNumber}
         where wind_turbine_number = #{windTurbineNumber}
-        and rotational_speed > 0
+          and rotational_speed > 0
+        order by sampling_frequency asc
     </select>
     </select>
 
 
 
 
@@ -68,7 +70,122 @@
         FROM ${windCode} t
         FROM ${windCode} t
                  LEFT JOIN detection_point_dic a ON t.mesure_point_name = a.detection_point_en
                  LEFT JOIN detection_point_dic a ON t.mesure_point_name = a.detection_point_en
         where wind_turbine_number = #{windTurbineNumber}
         where wind_turbine_number = #{windTurbineNumber}
-        and rotational_speed > 0
+          and rotational_speed > 0
+    </select>
+
+
+    <select id="getTableTreeData" resultType="java.util.Map">
+        SELECT a.id,
+        a.wind_turbine_number,
+        a.wind_turbine_name,
+        # concat(a.time_stamp,' ',a.sampling_frequency, 'Hz',' ', a.rotational_speed,'RPM') as 'time_stamp',
+        a.time_stamp,
+        a.sampling_frequency,
+        a.rotational_speed,
+        a.type,
+        b.brand,
+        b.brand_type,
+        b.detection_point_cn,
+        b.detection_point_en
+        FROM ${windCode} a
+        INNER JOIN detection_point_dic b
+        ON a.mesure_point_name = b.detection_point_en
+        AND a.rotational_speed > 0
+        <!-- 非空判断并添加时间范围筛选 -->
+        <where>
+            <if test="beginTime != null and beginTime != ''">
+                AND a.time_stamp &gt;= #{beginTime}
+            </if>
+            <if test="endTime != null and endTime != ''">
+                AND a.time_stamp &lt;= #{endTime}
+            </if>
+        </where>
+    </select>
+
+    <select id="getSamplingFrequencyByParams" resultType="java.lang.Integer">
+        select distinct sampling_frequency
+        from ${windFarmCode}
+        where wind_turbine_number = #{windTurbineNumber}
+          and mesure_point_name = #{mesurePointName}
+          and rotational_speed > 0
+        order by sampling_frequency asc
+    </select>
+
+
+    <select id="getByFunctionTypeInData" resultType="com.dskj.znzn.transData.web.waveData.entity.WaveData">
+        SELECT a.wind_turbine_number,
+               a.wind_turbine_name,
+               b.brand,
+               b.brand_type,
+               b.function_type_name,
+               b.sort_num,
+               max(a.status_${inData.functionType}) as status
+        FROM ${inData.windCode} a
+                 INNER JOIN (SELECT t.brand,
+                                    t.brand_type,
+                                    t.detection_point_cn,
+                                    t.detection_point_en,
+                                    t.sort_num,
+                                    SUBSTRING_INDEX(
+                                            SUBSTRING(t.function_type_name,
+                                                      LOCATE('${inData.functionType}_', t.function_type_name) + 2),
+                                            ',',
+                                            1
+                                    ) AS function_type_name
+                             FROM detection_point_dic t
+                             WHERE t.function_type_name LIKE '%${inData.functionType}\\_%') b
+                            ON a.mesure_point_name = b.detection_point_en
+        where a.diag_flag = 1
+          and a.time_stamp between #{inData.startTime} and #{inData.endTime}
+          and a.rotational_speed > 0
+          and a.wind_turbine_number = #{inData.windTurbineNumber}
+        group by a.wind_turbine_number, a.wind_turbine_name, b.brand, b.brand_type, b.function_type_name,b.sort_num
+        order by b.sort_num
+
+    </select>
+
+
+    <select id="getByFunctionTypeInDataSummary" resultType="com.dskj.znzn.transData.web.waveData.entity.WaveData">
+        SELECT a.id,
+               a.wind_turbine_number,
+               a.wind_turbine_name,
+               a.time_stamp,
+               a.eu_spectrum,
+               a.detection_type,
+               a.window_type,
+               a.start_frequency,
+               a.end_frequency,
+               a.samples,
+               a.rotational_speed,
+               a.sampling_frequency,
+               a.mesure_point_name,
+               a.type,
+               a.status_${inData.functionType} as status,
+               b.brand,
+               b.brand_type,
+               b.detection_point_cn,
+               b.detection_point_en,
+               b.function_type_name
+        FROM ${inData.windCode} a
+                 INNER JOIN (SELECT t.brand,
+                                    t.brand_type,
+                                    t.detection_point_cn,
+                                    t.detection_point_en,
+                                    SUBSTRING_INDEX(
+                                            SUBSTRING(t.function_type_name,
+                                                      LOCATE('${inData.functionType}_', t.function_type_name) + 2),
+                                            ',',
+                                            1
+                                    ) AS function_type_name
+                             FROM detection_point_dic t
+                             WHERE t.function_type_name LIKE '%${inData.functionType}\\_%') b
+                            ON a.mesure_point_name = b.detection_point_en
+        where a.diag_flag = 1
+          and a.time_stamp between #{inData.startTime} and #{inData.endTime}
+          and a.rotational_speed > 0
+          and a.wind_turbine_number = #{inData.windTurbineNumber}
+        order by a.time_stamp asc
+
     </select>
     </select>
 
 
 </mapper>
 </mapper>

+ 27 - 0
src/main/resources/spy.properties

@@ -0,0 +1,27 @@
+# P6Spy???
+# ???????
+modulelist=com.baomidou.mybatisplus.extension.p6spy.MybatisPlusLogFactory,com.p6spy.engine.outage.P6OutageFactory
+# ???????
+logMessageFormat=com.baomidou.mybatisplus.extension.p6spy.P6SpyLogger
+# ????????
+appender=com.baomidou.mybatisplus.extension.p6spy.StdoutLogger
+# ???????? sql
+#appender=com.p6spy.engine.spy.appender.Slf4JLogger
+# ?? p6spy driver ??
+deregisterdrivers=true
+# ??JDBC URL??
+useprefix=true
+# ???? Log ??,????????error,info,batch,debug,statement,commit,rollback,result,resultset.
+excludecategories=info,debug,result,commit,resultset
+# ????
+dateformat=yyyy-MM-dd HH:mm:ss
+# ???? ???
+driverlist=com.mysql.cj.jdbc.Driver
+# ?????SQL??
+outagedetection=true
+# ?SQL???? 2 ?
+outagedetectioninterval=2
+# ???? Log
+filter=true
+# ?? Log ????? sql ?????????
+exclude=select 1 from dual

Некоторые файлы не были показаны из-за большого количества измененных файлов