Browse Source

Merge branch 'master' into energy-manage-shiyue

shiyue 9 months ago
parent
commit
7f91be983c

+ 25 - 0
energy-manage-common/src/main/java/com/energy/manage/common/po/chartsdata/ChartsDataPo.java

@@ -0,0 +1,25 @@
+package com.energy.manage.common.po.chartsdata;
+
+import lombok.Data;
+
+import javax.persistence.Table;
+
+/**
+ * @author chy
+ * @date 2024/8/15 10:11
+ * @desc
+ */
+@Table(name = "WOF053600062-WOB00021_minute")
+@Data
+public class ChartsDataPo {
+
+    /**
+     * 功率
+     */
+    private Double activePower;
+
+    /**
+     * 绝对风向
+     */
+    private Double trueWindDirection;
+}

+ 40 - 0
energy-manage-service/src/main/java/com/energy/manage/service/controller/chartsdata/CreateChartsDataController.java

@@ -0,0 +1,40 @@
+package com.energy.manage.service.controller.chartsdata;
+
+import com.energy.manage.common.base.Page;
+import com.energy.manage.common.reponse.ResultResp;
+import com.energy.manage.service.config.annotations.UserLoginToken;
+import com.energy.manage.service.controller.base.BaseServiceController;
+import com.energy.manage.service.domain.dto.analysis.PlotlyDataItem;
+import com.energy.manage.service.service.chartsdata.ChartsDataService;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.GetMapping;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
+
+import java.util.List;
+
+/**
+ * @author chy
+ * @date 2024/8/15 09:31
+ * @desc
+ */
+@RestController
+@RequestMapping("/createChartsData")
+public class CreateChartsDataController extends BaseServiceController {
+
+    @Autowired
+    private ChartsDataService chartsDataService;
+
+    @UserLoginToken
+    @GetMapping("/getChartsData")
+    public ResultResp<Page<PlotlyDataItem>> getChartsData(Integer pageNum) {
+        return success(chartsDataService.queryChartsData(pageNum));
+
+    }
+
+    @UserLoginToken
+    @GetMapping("/getCharstDataCount")
+    public ResultResp getChartsDataCount() {
+        return success(chartsDataService.getChartsDataCount());
+    }
+}

+ 2 - 0
energy-manage-service/src/main/java/com/energy/manage/service/domain/dto/BaseDto.java

@@ -4,9 +4,11 @@ package com.energy.manage.service.domain.dto;
 import io.swagger.annotations.ApiModelProperty;
 import lombok.Getter;
 import lombok.Setter;
+import lombok.experimental.Accessors;
 
 @Getter
 @Setter
+@Accessors(chain = true)
 public class BaseDto {
 
     @ApiModelProperty(value = "当前页 从1开始")

+ 0 - 1
energy-manage-service/src/main/java/com/energy/manage/service/domain/dto/analysis/AnalysisResultDto.java

@@ -4,7 +4,6 @@ import com.energy.manage.service.domain.dto.BaseDto;
 import com.fasterxml.jackson.annotation.JsonFormat;
 import lombok.Data;
 
-import javax.persistence.Table;
 import java.util.Date;
 
 /**

+ 32 - 0
energy-manage-service/src/main/java/com/energy/manage/service/domain/dto/analysis/PlotlyDataDto.java

@@ -0,0 +1,32 @@
+package com.energy.manage.service.domain.dto.analysis;
+
+import com.energy.manage.common.base.Page;
+import lombok.Data;
+
+import java.util.ArrayList;
+import java.util.List;
+
+/**
+ * @author chy
+ * @date 2024/8/15 09:15
+ * @desc
+ */
+@Data
+public class PlotlyDataDto extends Page {
+
+    /**
+     * 分析类型编码
+     */
+    private String analysisTypeCode = "active_power";
+
+    /**
+     * 机型名称
+     */
+    private String engineTypeName = "WOM0000014";
+
+    /**
+     * 机型编码
+     */
+    private String engineTypeCode="f01";
+
+}

+ 44 - 0
energy-manage-service/src/main/java/com/energy/manage/service/domain/dto/analysis/PlotlyDataItem.java

@@ -0,0 +1,44 @@
+package com.energy.manage.service.domain.dto.analysis;
+
+import lombok.Data;
+import lombok.experimental.Accessors;
+
+import java.math.BigDecimal;
+import java.util.ArrayList;
+import java.util.List;
+
+/**
+ * @author chy
+ * @date 2024/8/15 09:19
+ * @desc
+ */
+@Data
+@Accessors(chain = true)
+public class PlotlyDataItem {
+
+    /**
+     * 风机编号
+     */
+    private String engineCode;
+
+    /**
+     * 风机名称
+     */
+    private String engineName;
+
+    /**
+     * x轴数据
+     */
+    private List<Double> xData =  new ArrayList<>();
+
+    /**
+     * y轴数据
+     */
+    private List<Double> yData  =  new ArrayList<>();
+
+    /**
+     * z轴数据
+     */
+    private List<Double> zData  =  new ArrayList<>();
+
+}

+ 0 - 2
energy-manage-service/src/main/java/com/energy/manage/service/domain/vo/analysis/AnalysisTypeVo.java

@@ -2,8 +2,6 @@ package com.energy.manage.service.domain.vo.analysis;
 
 import lombok.Data;
 
-import javax.persistence.Table;
-
 /**
  * 分析类型表
  * @author chy

+ 25 - 0
energy-manage-service/src/main/java/com/energy/manage/service/mappers/chartsdata/ChartsDataMapper.java

@@ -0,0 +1,25 @@
+package com.energy.manage.service.mappers.chartsdata;
+
+import com.energy.manage.common.mapper.MyMapper;
+import com.energy.manage.common.po.chartsdata.ChartsDataPo;
+import org.apache.ibatis.annotations.Param;
+import org.springframework.stereotype.Repository;
+
+import java.util.List;
+
+/**
+ * @author chy
+ * @date 2024/8/15 10:09
+ * @desc
+ */
+
+@Repository
+public interface ChartsDataMapper extends MyMapper<ChartsDataPo> {
+
+    List<ChartsDataPo> queryData(@Param("startNum") int startNum, @Param("pageSize") Integer pageSize);
+
+    List<ChartsDataPo> queryDataByTime(@Param("timeStamp") String timeStamp, @Param("pageSize") Integer pageSize);
+
+    Integer selectAllCount();
+
+}

+ 22 - 0
energy-manage-service/src/main/java/com/energy/manage/service/service/chartsdata/ChartsDataService.java

@@ -0,0 +1,22 @@
+package com.energy.manage.service.service.chartsdata;
+
+import com.energy.manage.service.domain.dto.analysis.PlotlyDataItem;
+
+import java.util.List;
+
+/**
+ * @author chy
+ * @date 2024/8/15 10:24
+ * @desc
+ */
+public interface ChartsDataService {
+
+    Integer PAGE_SIZE = 100;
+
+    List<PlotlyDataItem> queryChartsData(Integer pageNum);
+
+    int getChartsDataCount();
+
+
+    List<PlotlyDataItem> queryChartsDataByTime(String timeStamp);
+}

+ 76 - 0
energy-manage-service/src/main/java/com/energy/manage/service/service/chartsdata/impl/ChartsDataServiceImpl.java

@@ -0,0 +1,76 @@
+package com.energy.manage.service.service.chartsdata.impl;
+
+import com.energy.manage.common.po.chartsdata.ChartsDataPo;
+import com.energy.manage.common.util.UUIDTools;
+import com.energy.manage.service.domain.dto.analysis.PlotlyDataItem;
+import com.energy.manage.service.mappers.chartsdata.ChartsDataMapper;
+import com.energy.manage.service.service.chartsdata.ChartsDataService;
+import com.github.pagehelper.PageInfo;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+
+import java.util.ArrayList;
+import java.util.List;
+
+/**
+ * @author chy
+ * @date 2024/8/15 10:25
+ * @desc
+ */
+@Slf4j
+@Service
+public class ChartsDataServiceImpl implements ChartsDataService {
+
+    @Autowired
+    private ChartsDataMapper chartsDataMapper;
+
+    @Override
+    public List<PlotlyDataItem> queryChartsData(Integer pageNum) {
+        List<PlotlyDataItem> plotlyDataItems = new ArrayList<>();
+        long time = System.currentTimeMillis();
+        int startNum = (pageNum - 1) * PAGE_SIZE;
+        List<ChartsDataPo> chartsDataPos = chartsDataMapper.queryData(startNum,PAGE_SIZE);
+        log.info("数据库执行时间time = {}",System.currentTimeMillis() - time);
+        for(int i = 0 ; i < chartsDataPos.size();i++){
+            if(i % 10 == 0){
+                PlotlyDataItem plotlyDataItem = new PlotlyDataItem();
+                plotlyDataItem.setEngineCode(UUIDTools.getShortUUID())
+                        .setEngineName(UUIDTools.getShortUUID());
+                plotlyDataItems.add(plotlyDataItem);
+            }
+            PlotlyDataItem plotlyDataItem = plotlyDataItems.get(plotlyDataItems.size() -1);
+            plotlyDataItem.getXData().add(chartsDataPos.get(i).getActivePower());
+            plotlyDataItem.getYData().add(chartsDataPos.get(i).getTrueWindDirection());
+        }
+        return plotlyDataItems;
+    }
+
+    @Override
+    public int getChartsDataCount() {
+        int count = chartsDataMapper.selectAllCount();
+        return count / PAGE_SIZE;
+    }
+
+    @Override
+    public List<PlotlyDataItem> queryChartsDataByTime(String timeStamp) {
+        List<PlotlyDataItem> plotlyDataItems = new ArrayList<>();
+        long time = System.currentTimeMillis();
+        List<ChartsDataPo> chartsDataPos = chartsDataMapper.queryDataByTime(timeStamp, PAGE_SIZE);
+        log.info("数据库执行时间time = {}",System.currentTimeMillis() - time);
+        PageInfo<ChartsDataPo> pageInfo = new PageInfo<>(chartsDataPos);
+        pageInfo.setTotal(pageInfo.getTotal()/PAGE_SIZE);
+        for(int i = 0 ; i < chartsDataPos.size();i++){
+            if(i % 10 == 0){
+                PlotlyDataItem plotlyDataItem = new PlotlyDataItem();
+                plotlyDataItem.setEngineCode(UUIDTools.getShortUUID())
+                        .setEngineName(UUIDTools.getShortUUID());
+                plotlyDataItems.add(plotlyDataItem);
+            }
+            PlotlyDataItem plotlyDataItem = plotlyDataItems.get(plotlyDataItems.size() -1);
+            plotlyDataItem.getXData().add(chartsDataPos.get(i).getActivePower());
+            plotlyDataItem.getYData().add(chartsDataPos.get(i).getTrueWindDirection());
+        }
+        return plotlyDataItems;
+    }
+}

+ 29 - 0
energy-manage-service/src/main/resources/mybatis/chartsdata/ChartsData.xml

@@ -0,0 +1,29 @@
+<?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.energy.manage.service.mappers.chartsdata.ChartsDataMapper">
+    <resultMap id="resultMap" type="com.energy.manage.common.po.chartsdata.ChartsDataPo">
+        <result column="active_power" property="activePower" jdbcType="DOUBLE"/>
+        <result column="true_wind_direction" property="trueWindDirection" jdbcType="DOUBLE"/>
+    </resultMap>
+    <select id="queryData" resultType="com.energy.manage.common.po.chartsdata.ChartsDataPo">
+
+        SELECT
+            active_power AS activePower,
+            true_wind_direction AS trueWindDirection
+        FROM `WOF053600062-WOB00021_minute`
+        limit #{startNum}, #{pageSize}
+    </select>
+
+    <select id="queryDataByTime" resultType="com.energy.manage.common.po.chartsdata.ChartsDataPo">
+        SELECT
+            active_power AS activePower,
+            true_wind_direction AS trueWindDirection
+        FROM `WOF053600062-WOB00021_minute`
+        where time_stamp >= #{timeStamp}
+        limit #{pageSize}
+    </select>
+    <select id="selectAllCount" resultType="java.lang.Integer">
+        select count(*) from `WOF053600062-WOB00021_minute`
+    </select>
+</mapper>