ソースを参照

第一版优化

yq 4 年 前
コミット
35156b0e75
21 ファイル変更750 行追加208 行削除
  1. 21 0
      fiveep-controller/src/main/java/com/bizmatics/controller/web/HadSiteStaticController.java
  2. 1 1
      fiveep-controller/src/main/java/com/bizmatics/controller/web/MybatisGeneratorUtils.java
  3. 0 0
      fiveep-controller/src/main/resources/static/doc/AllInOne.css
  4. 0 0
      fiveep-controller/src/main/resources/static/doc/index.html
  5. 364 0
      fiveep-controller/src/main/resources/static/doc/search.js
  6. 31 0
      fiveep-model/src/main/java/com/bizmatics/model/HadAllStatic.java
  7. 52 0
      fiveep-model/src/main/java/com/bizmatics/model/HadSiteStatic.java
  8. 16 0
      fiveep-persistence/src/main/java/com/bizmatics/persistence/mapper/HadAllStaticMapper.java
  9. 18 0
      fiveep-persistence/src/main/java/com/bizmatics/persistence/mapper/HadSiteStaticMapper.java
  10. 2 1
      fiveep-persistence/src/main/java/com/bizmatics/persistence/mapper/HtAnalogDataMapper.java
  11. 12 0
      fiveep-persistence/src/main/resources/mapper/mysql/HadAllStaticMapper.xml
  12. 17 0
      fiveep-persistence/src/main/resources/mapper/mysql/HadSiteStaticMapper.xml
  13. 6 4
      fiveep-persistence/src/main/resources/mapper/mysql/HtAnalogDataMapper.xml
  14. 16 0
      fiveep-service/src/main/java/com/bizmatics/service/HadAllStaticService.java
  15. 0 24
      fiveep-service/src/main/java/com/bizmatics/service/HadDataLogService.java
  16. 16 0
      fiveep-service/src/main/java/com/bizmatics/service/HadSiteStaticService.java
  17. 20 0
      fiveep-service/src/main/java/com/bizmatics/service/impl/HadAllStaticServiceImpl.java
  18. 0 76
      fiveep-service/src/main/java/com/bizmatics/service/impl/HadDataLogServiceImpl.java
  19. 20 0
      fiveep-service/src/main/java/com/bizmatics/service/impl/HadSiteStaticServiceImpl.java
  20. 0 5
      fiveep-service/src/main/java/com/bizmatics/service/impl/HtAnalogDataServiceImpl.java
  21. 138 97
      fiveep-service/src/main/java/com/bizmatics/service/job/RatAnalogTask.java

+ 21 - 0
fiveep-controller/src/main/java/com/bizmatics/controller/web/HadSiteStaticController.java

@@ -0,0 +1,21 @@
+package com.bizmatics.controller.web;
+
+
+import org.springframework.web.bind.annotation.RequestMapping;
+
+import org.springframework.stereotype.Controller;
+
+/**
+ * <p>
+ *  前端控制器
+ * </p>
+ *
+ * @author ya
+ * @since 2021-07-20
+ */
+@Controller
+@RequestMapping("/hadSiteStatic")
+public class HadSiteStaticController {
+
+}
+

+ 1 - 1
fiveep-controller/src/main/java/com/bizmatics/controller/web/MybatisGeneratorUtils.java

@@ -70,7 +70,7 @@ public class MybatisGeneratorUtils {
         // strategy.setTablePrefix("t_"); // 表名前缀
         strategy.setEntityLombokModel(true); //使用lombok
         //修改自己想要生成的表
-        strategy.setInclude(new String[]{});  // 逆向工程使用的表   如果要生成多个,这里可以传入String[]
+        strategy.setInclude(new String[]{"had_all_static","had_site_static"});  // 逆向工程使用的表   如果要生成多个,这里可以传入String[]
         mpg.setStrategy(strategy);
 
         // 关闭默认 xml 生成,调整生成 至 根目录

ファイルの差分が大きいため隠しています
+ 0 - 0
fiveep-controller/src/main/resources/static/doc/AllInOne.css


ファイルの差分が大きいため隠しています
+ 0 - 0
fiveep-controller/src/main/resources/static/doc/index.html


+ 364 - 0
fiveep-controller/src/main/resources/static/doc/search.js

@@ -0,0 +1,364 @@
+let api = [];
+api.push({
+    alias: 'AlarmPowerController',
+    order: '1',
+    link: '电力告警',
+    desc: '电力告警',
+    list: []
+})
+api[0].list.push({
+    order: '1',
+    desc: '查询电力告警总数',
+});
+api[0].list.push({
+    order: '2',
+    desc: '告警趋势图',
+});
+api[0].list.push({
+    order: '3',
+    desc: '分页',
+});
+api[0].list.push({
+    order: '4',
+    desc: '',
+});
+api[0].list.push({
+    order: '5',
+    desc: '导出',
+});
+api[0].list.push({
+    order: '6',
+    desc: '运行状态',
+});
+api.push({
+    alias: 'DeviceController',
+    order: '2',
+    link: '设备',
+    desc: '设备',
+    list: []
+})
+api[1].list.push({
+    order: '1',
+    desc: '查询设备总数',
+});
+api[1].list.push({
+    order: '2',
+    desc: '查询不同类型的设备数量',
+});
+api[1].list.push({
+    order: '3',
+    desc: '',
+});
+api.push({
+    alias: 'DeviceStatusController',
+    order: '3',
+    link: '设备状态',
+    desc: '设备状态',
+    list: []
+})
+api.push({
+    alias: 'FacilityController',
+    order: '4',
+    link: 'object',
+    desc: 'object',
+    list: []
+})
+api[3].list.push({
+    order: '1',
+    desc: '查询不同设备的数量',
+});
+api.push({
+    alias: 'HtAnalogDataController',
+    order: '5',
+    link: '历史消费组模拟量',
+    desc: '历史消费组模拟量',
+    list: []
+})
+api[4].list.push({
+    order: '1',
+    desc: '首页日/月/年用电量',
+});
+api[4].list.push({
+    order: '2',
+    desc: '今日/昨日用电趋势',
+});
+api[4].list.push({
+    order: '3',
+    desc: '站点日/月/年用电量',
+});
+api[4].list.push({
+    order: '4',
+    desc: '分时电量',
+});
+api[4].list.push({
+    order: '5',
+    desc: '需量趋势图',
+});
+api[4].list.push({
+    order: '6',
+    desc: '历史记录电流电压',
+});
+api.push({
+    alias: 'HtSwitchDataController',
+    order: '6',
+    link: '历史消费组开关',
+    desc: '历史消费组开关',
+    list: []
+})
+api.push({
+    alias: 'PersonnelController',
+    order: '7',
+    link: '人员信息',
+    desc: '人员信息',
+    list: []
+})
+api[6].list.push({
+    order: '1',
+    desc: '查询不同种类的人员信息',
+});
+api.push({
+    alias: 'RouteController',
+    order: '8',
+    link: '线路表',
+    desc: '线路表',
+    list: []
+})
+api.push({
+    alias: 'RtAnalogDataController',
+    order: '9',
+    link: '实时消费组模拟量',
+    desc: '实时消费组模拟量',
+    list: []
+})
+api[8].list.push({
+    order: '1',
+    desc: '重载/轻载/正常',
+});
+api[8].list.push({
+    order: '2',
+    desc: '查看实时数据详情',
+});
+api[8].list.push({
+    order: '3',
+    desc: '实时负荷',
+});
+api[8].list.push({
+    order: '4',
+    desc: '',
+});
+api[8].list.push({
+    order: '5',
+    desc: '',
+});
+api[8].list.push({
+    order: '6',
+    desc: '',
+});
+api.push({
+    alias: 'RtSwitchDataController',
+    order: '10',
+    link: '实时消费组开关',
+    desc: '实时消费组开关',
+    list: []
+})
+api[9].list.push({
+    order: '1',
+    desc: '查看单个信息',
+});
+api[9].list.push({
+    order: '2',
+    desc: '',
+});
+api.push({
+    alias: 'SiteController',
+    order: '11',
+    link: '站点',
+    desc: '站点',
+    list: []
+})
+api[10].list.push({
+    order: '1',
+    desc: '查看不同状态的站点数量',
+});
+api[10].list.push({
+    order: '2',
+    desc: '查看站点列表',
+});
+api[10].list.push({
+    order: '3',
+    desc: '',
+});
+api[10].list.push({
+    order: '4',
+    desc: '查看站点详情',
+});
+api.push({
+    alias: 'SitedtlController',
+    order: '12',
+    link: '站点详情',
+    desc: '站点详情',
+    list: []
+})
+api.push({
+    alias: 'SiteObjectController',
+    order: '13',
+    link: '',
+    desc: '',
+    list: []
+})
+api.push({
+    alias: 'UserController',
+    order: '14',
+    link: '用户',
+    desc: '用户',
+    list: []
+})
+api[13].list.push({
+    order: '1',
+    desc: '',
+});
+api.push({
+    alias: 'UserSiteController',
+    order: '15',
+    link: '用户站点信息',
+    desc: '用户站点信息',
+    list: []
+})
+api.push({
+    alias: 'WcAccessTokenController',
+    order: '16',
+    link: '&lt;p&gt;_前端控制器&lt;/p&gt;',
+    desc: '&lt;p&gt; 前端控制器&lt;/p&gt;',
+    list: []
+})
+api.push({
+    alias: 'WcBlackoutPlanController',
+    order: '17',
+    link: '&lt;p&gt;_前端控制器&lt;/p&gt;',
+    desc: '&lt;p&gt; 前端控制器&lt;/p&gt;',
+    list: []
+})
+api.push({
+    alias: 'WcKeySecretController',
+    order: '18',
+    link: '&lt;p&gt;_前端控制器&lt;/p&gt;',
+    desc: '&lt;p&gt; 前端控制器&lt;/p&gt;',
+    list: []
+})
+api.push({
+    alias: 'WcMeasTypeController',
+    order: '19',
+    link: '&lt;p&gt;_前端控制器&lt;/p&gt;',
+    desc: '&lt;p&gt; 前端控制器&lt;/p&gt;',
+    list: []
+})
+api.push({
+    alias: 'WcUserController',
+    order: '20',
+    link: '&lt;p&gt;_前端控制器&lt;/p&gt;',
+    desc: '&lt;p&gt; 前端控制器&lt;/p&gt;',
+    list: []
+})
+api.push({
+    alias: 'WcUserTokenController',
+    order: '21',
+    link: '&lt;p&gt;_前端控制器&lt;/p&gt;',
+    desc: '&lt;p&gt; 前端控制器&lt;/p&gt;',
+    list: []
+})
+api.push({
+    alias: 'dict',
+    order: '22',
+    link: 'dict_list',
+    desc: '数据字典',
+    list: []
+})
+document.onkeydown = keyDownSearch;
+function keyDownSearch(e) {
+    const theEvent = e;
+    const code = theEvent.keyCode || theEvent.which || theEvent.charCode;
+    if (code == 13) {
+        const search = document.getElementById('search');
+        const searchValue = search.value;
+        let searchArr = [];
+        for (let i = 0; i < api.length; i++) {
+            let apiData = api[i];
+            const desc = apiData.desc;
+            if (desc.indexOf(searchValue) > -1) {
+                searchArr.push({
+                    order: apiData.order,
+                    desc: apiData.desc,
+                    link: apiData.link,
+                    list: apiData.list
+                });
+            } else {
+                let methodList = apiData.list || [];
+                let methodListTemp = [];
+                for (let j = 0; j < methodList.length; j++) {
+                    const methodData = methodList[j];
+                    const methodDesc = methodData.desc;
+                    if (methodDesc.indexOf(searchValue) > -1) {
+                        methodListTemp.push(methodData);
+                        break;
+                    }
+                }
+                if (methodListTemp.length > 0) {
+                    const data = {
+                        order: apiData.order,
+                        desc: apiData.desc,
+                        link: apiData.link,
+                        list: methodListTemp
+                    };
+                    searchArr.push(data);
+                }
+            }
+        }
+        let html;
+        if (searchValue == '') {
+            const liClass = "";
+            const display = "display: none";
+            html = buildAccordion(api,liClass,display);
+            document.getElementById('accordion').innerHTML = html;
+        } else {
+            const liClass = "open";
+            const display = "display: block";
+            html = buildAccordion(searchArr,liClass,display);
+            document.getElementById('accordion').innerHTML = html;
+        }
+        const Accordion = function (el, multiple) {
+            this.el = el || {};
+            this.multiple = multiple || false;
+            const links = this.el.find('.dd');
+            links.on('click', {el: this.el, multiple: this.multiple}, this.dropdown);
+        };
+        Accordion.prototype.dropdown = function (e) {
+            const $el = e.data.el;
+            $this = $(this), $next = $this.next();
+            $next.slideToggle();
+            $this.parent().toggleClass('open');
+            if (!e.data.multiple) {
+                $el.find('.submenu').not($next).slideUp("20").parent().removeClass('open');
+            }
+        };
+        new Accordion($('#accordion'), false);
+    }
+}
+
+function buildAccordion(apiData, liClass, display) {
+    let html = "";
+    let doc;
+    if (apiData.length > 0) {
+        for (let j = 0; j < apiData.length; j++) {
+            html += '<li class="'+liClass+'">';
+            html += '<a class="dd" href="#_' + apiData[j].link + '">' + apiData[j].order + '.&nbsp;' + apiData[j].desc + '</a>';
+            html += '<ul class="sectlevel2" style="'+display+'">';
+            doc = apiData[j].list;
+            for (let m = 0; m < doc.length; m++) {
+                html += '<li><a href="#_' + apiData[j].order + '_' + doc[m].order + '_' + doc[m].desc + '">' + apiData[j].order + '.' + doc[m].order + '.&nbsp;' + doc[m].desc + '</a> </li>';
+            }
+            html += '</ul>';
+            html += '</li>';
+        }
+    }
+    return html;
+}

+ 31 - 0
fiveep-model/src/main/java/com/bizmatics/model/HadAllStatic.java

@@ -0,0 +1,31 @@
+package com.bizmatics.model;
+
+import java.time.LocalDateTime;
+import java.io.Serializable;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+import lombok.experimental.Accessors;
+
+/**
+ * <p>
+ * 
+ * </p>
+ *
+ * @author ya
+ * @since 2021-07-20
+ */
+@Data
+@EqualsAndHashCode(callSuper = false)
+@Accessors(chain = true)
+public class HadAllStatic implements Serializable {
+
+    private static final long serialVersionUID=1L;
+
+    private Integer id;
+
+    private LocalDateTime hadTime;
+
+    private String dayIco;
+
+
+}

+ 52 - 0
fiveep-model/src/main/java/com/bizmatics/model/HadSiteStatic.java

@@ -0,0 +1,52 @@
+package com.bizmatics.model;
+
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableId;
+import java.time.LocalDateTime;
+import java.io.Serializable;
+import java.util.Date;
+
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+import lombok.experimental.Accessors;
+
+/**
+ * <p>
+ * 
+ * </p>
+ *
+ * @author ya
+ * @since 2021-07-20
+ */
+@Data
+@EqualsAndHashCode(callSuper = false)
+@Accessors(chain = true)
+public class HadSiteStatic implements Serializable {
+
+    private static final long serialVersionUID=1L;
+
+    @TableId(value = "id", type = IdType.AUTO)
+    private Integer id;
+
+    private Integer siteId;
+
+    private Double maxEpp;
+
+    private Double minEpp;
+
+    private Double avgEpp;
+
+    private String loadIco;
+
+    private String hisIco;
+
+    private Date hadTime;
+
+    private Double maxDemand;
+
+    private Double minDemand;
+
+    private Double avgDemand;
+
+
+}

+ 16 - 0
fiveep-persistence/src/main/java/com/bizmatics/persistence/mapper/HadAllStaticMapper.java

@@ -0,0 +1,16 @@
+package com.bizmatics.persistence.mapper;
+
+import com.bizmatics.model.HadAllStatic;
+import com.bizmatics.common.mvc.base.CrudMapper;
+
+/**
+ * <p>
+ *  Mapper 接口
+ * </p>
+ *
+ * @author ya
+ * @since 2021-07-20
+ */
+public interface HadAllStaticMapper extends CrudMapper<HadAllStatic> {
+
+}

+ 18 - 0
fiveep-persistence/src/main/java/com/bizmatics/persistence/mapper/HadSiteStaticMapper.java

@@ -0,0 +1,18 @@
+package com.bizmatics.persistence.mapper;
+
+import com.bizmatics.model.HadSiteStatic;
+import com.bizmatics.common.mvc.base.CrudMapper;
+import org.springframework.stereotype.Repository;
+
+/**
+ * <p>
+ *  Mapper 接口
+ * </p>
+ *
+ * @author ya
+ * @since 2021-07-20
+ */
+@Repository
+public interface HadSiteStaticMapper extends CrudMapper<HadSiteStatic> {
+
+}

+ 2 - 1
fiveep-persistence/src/main/java/com/bizmatics/persistence/mapper/HtAnalogDataMapper.java

@@ -51,5 +51,6 @@ public interface HtAnalogDataMapper extends CrudMapper<HtAnalogData> {
                           @Param("startTime") Date startTime,
                           @Param("endTime") Date endTime);
 
-    Integer selectMaxId();
+
+    List<Date> getDateList();
 }

+ 12 - 0
fiveep-persistence/src/main/resources/mapper/mysql/HadAllStaticMapper.xml

@@ -0,0 +1,12 @@
+<?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.bizmatics.persistence.mapper.HadAllStaticMapper">
+
+    <!-- 通用查询映射结果 -->
+    <resultMap id="BaseResultMap" type="com.bizmatics.model.HadAllStatic">
+        <id column="id" property="id" />
+        <result column="had_time" property="hadTime" />
+        <result column="day_ico" property="dayIco" />
+    </resultMap>
+
+</mapper>

+ 17 - 0
fiveep-persistence/src/main/resources/mapper/mysql/HadSiteStaticMapper.xml

@@ -0,0 +1,17 @@
+<?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.bizmatics.persistence.mapper.HadSiteStaticMapper">
+
+    <!-- 通用查询映射结果 -->
+    <resultMap id="BaseResultMap" type="com.bizmatics.model.HadSiteStatic">
+        <id column="id" property="id" />
+        <result column="site_id" property="siteId" />
+        <result column="max_epp" property="maxEpp" />
+        <result column="min_epp" property="minEpp" />
+        <result column="avg_epp" property="avgEpp" />
+        <result column="load_ico" property="loadIco" />
+        <result column="his_ico" property="hisIco" />
+        <result column="had_time" property="hadTime" />
+    </resultMap>
+
+</mapper>

+ 6 - 4
fiveep-persistence/src/main/resources/mapper/mysql/HtAnalogDataMapper.xml

@@ -47,7 +47,8 @@
         order by had.id asc limit 0,1
     </select>
     <select id="selectMaxAndMinAndAvg" resultType="java.util.Map">
-        select max(Demand) as demandMax,min(Demand) as demandMin,avg(Demand) as demandAvd
+        select max(Demand) as demandMax,min(Demand) as demandMin,avg(Demand) as demandAvg,
+        max(Epp) as eppMax,min(Epp) as eppMin,avg(Epp) as eppAvg
         from device as d
         inner join  ht_analog_data as had
         on d.device_code = had.deviceName
@@ -89,9 +90,10 @@
         order by had.id asc
         limit #{current},#{size}
     </select>
-    <select id="selectMaxId" resultType="java.lang.Integer">
-        select max(id)
-        from ht_analog_data
+    <select id="getDateList" resultType="java.util.Date">
+        SELECT DISTINCT dataTime FROM
+        ht_analog_data
+        GROUP BY dataTime
     </select>
 
 </mapper>

+ 16 - 0
fiveep-service/src/main/java/com/bizmatics/service/HadAllStaticService.java

@@ -0,0 +1,16 @@
+package com.bizmatics.service;
+
+import com.bizmatics.model.HadAllStatic;
+import com.bizmatics.common.mvc.base.CrudService;
+
+/**
+ * <p>
+ *  服务类
+ * </p>
+ *
+ * @author ya
+ * @since 2021-07-20
+ */
+public interface HadAllStaticService extends CrudService<HadAllStatic> {
+
+}

+ 0 - 24
fiveep-service/src/main/java/com/bizmatics/service/HadDataLogService.java

@@ -1,24 +0,0 @@
-package com.bizmatics.service;
-
-import com.bizmatics.model.HadDataLog;
-import com.bizmatics.common.mvc.base.CrudService;
-
-import java.util.Date;
-import java.util.List;
-
-/**
- * <p>
- *  服务类
- * </p>
- *
- * @author ya
- * @since 2021-07-18
- */
-public interface HadDataLogService extends CrudService<HadDataLog> {
-
-
-    List<HadDataLog> list(Date startTime,Date endTime);
-
-
-    List<HadDataLog> maxAndMinList(Date startTime,Date endTime);
-}

+ 16 - 0
fiveep-service/src/main/java/com/bizmatics/service/HadSiteStaticService.java

@@ -0,0 +1,16 @@
+package com.bizmatics.service;
+
+import com.bizmatics.model.HadSiteStatic;
+import com.bizmatics.common.mvc.base.CrudService;
+
+/**
+ * <p>
+ *  服务类
+ * </p>
+ *
+ * @author ya
+ * @since 2021-07-20
+ */
+public interface HadSiteStaticService extends CrudService<HadSiteStatic> {
+
+}

+ 20 - 0
fiveep-service/src/main/java/com/bizmatics/service/impl/HadAllStaticServiceImpl.java

@@ -0,0 +1,20 @@
+package com.bizmatics.service.impl;
+
+import com.bizmatics.model.HadAllStatic;
+import com.bizmatics.persistence.mapper.HadAllStaticMapper;
+import com.bizmatics.service.HadAllStaticService;
+import com.bizmatics.common.mvc.base.AbstractCrudService;
+import org.springframework.stereotype.Service;
+
+/**
+ * <p>
+ *  服务实现类
+ * </p>
+ *
+ * @author ya
+ * @since 2021-07-20
+ */
+@Service
+public class HadAllStaticServiceImpl extends AbstractCrudService<HadAllStaticMapper, HadAllStatic> implements HadAllStaticService {
+
+}

+ 0 - 76
fiveep-service/src/main/java/com/bizmatics/service/impl/HadDataLogServiceImpl.java

@@ -1,76 +0,0 @@
-package com.bizmatics.service.impl;
-
-import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
-import com.baomidou.mybatisplus.core.toolkit.CollectionUtils;
-import com.baomidou.mybatisplus.core.toolkit.Wrappers;
-import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
-import com.bizmatics.common.core.util.DateUtils;
-import com.bizmatics.model.HadDataLog;
-import com.bizmatics.persistence.mapper.HadDataLogMapper;
-import com.bizmatics.service.HadDataLogService;
-import com.bizmatics.common.mvc.base.AbstractCrudService;
-import org.springframework.stereotype.Service;
-
-import java.util.ArrayList;
-import java.util.Date;
-import java.util.List;
-import java.util.Optional;
-import java.util.concurrent.atomic.AtomicReference;
-
-/**
- * <p>
- *  服务实现类
- * </p>
- *
- * @author ya
- * @since 2021-07-18
- */
-@Service
-public class HadDataLogServiceImpl extends AbstractCrudService<HadDataLogMapper, HadDataLog> implements HadDataLogService {
-
-    @Override
-    public List<HadDataLog> list(Date startTime, Date endTime) {
-        LambdaQueryWrapper<HadDataLog> queryWrapper = Wrappers.lambdaQuery();
-        queryWrapper
-                .select(HadDataLog::getDataTime,HadDataLog::getSiteIdList,HadDataLog::getHadData)
-                .between(HadDataLog::getDataTime,startTime,endTime);
-        return this.list(queryWrapper);
-    }
-
-    @Override
-    public List<HadDataLog> maxAndMinList(Date startTime, Date endTime) {
-        Page<HadDataLog> minPage = new Page<>(0, 1);
-        LambdaQueryWrapper<HadDataLog> minQuery = Wrappers.lambdaQuery();
-        minQuery
-                .select(HadDataLog::getDataTime)
-                .between(HadDataLog::getDataTime,startTime,endTime);
-        minPage = baseMapper.selectPage(minPage, minQuery);
-        Page<HadDataLog> maxPage = new Page<>(1, 1);
-        LambdaQueryWrapper<HadDataLog> maxQuery = Wrappers.lambdaQuery();
-        maxQuery
-                .select(HadDataLog::getDataTime)
-                .between(HadDataLog::getDataTime,startTime,endTime)
-                .orderByDesc(HadDataLog::getId);
-        maxPage = baseMapper.selectPage(maxPage, maxQuery);
-        List<HadDataLog> hadDataLogs = addList(minPage);
-        hadDataLogs.addAll(addList(maxPage));
-        return hadDataLogs;
-    }
-
-    public List<HadDataLog> addList(Page<HadDataLog> page){
-        AtomicReference<List<HadDataLog>> list = new AtomicReference<>();
-        if (CollectionUtils.isNotEmpty(page.getRecords())){
-            Optional.ofNullable(page.getRecords().get(0))
-                    .flatMap(hadDataLog -> Optional.ofNullable(hadDataLog.getDataTime()))
-                    .ifPresent(date -> {
-                        LambdaQueryWrapper<HadDataLog> query = Wrappers.lambdaQuery();
-                        query.select(HadDataLog::getDataTime,HadDataLog::getHadData,HadDataLog::getSiteIdList)
-                                .eq(HadDataLog::getDataTime,date);
-                        List<HadDataLog> hadDataLogs = baseMapper.selectList(query);
-                        list.set(hadDataLogs);
-                    });
-        }
-        return Optional.ofNullable(list.get()).orElse(new ArrayList<>());
-    }
-
-}

+ 20 - 0
fiveep-service/src/main/java/com/bizmatics/service/impl/HadSiteStaticServiceImpl.java

@@ -0,0 +1,20 @@
+package com.bizmatics.service.impl;
+
+import com.bizmatics.model.HadSiteStatic;
+import com.bizmatics.persistence.mapper.HadSiteStaticMapper;
+import com.bizmatics.service.HadSiteStaticService;
+import com.bizmatics.common.mvc.base.AbstractCrudService;
+import org.springframework.stereotype.Service;
+
+/**
+ * <p>
+ *  服务实现类
+ * </p>
+ *
+ * @author ya
+ * @since 2021-07-20
+ */
+@Service
+public class HadSiteStaticServiceImpl extends AbstractCrudService<HadSiteStaticMapper, HadSiteStatic> implements HadSiteStaticService {
+
+}

+ 0 - 5
fiveep-service/src/main/java/com/bizmatics/service/impl/HtAnalogDataServiceImpl.java

@@ -5,10 +5,8 @@ import com.bizmatics.common.core.util.DateUtils;
 import com.bizmatics.common.spring.util.JsonUtils;
 import com.bizmatics.model.HadDataLog;
 import com.bizmatics.model.HtAnalogData;
-import com.bizmatics.model.Site;
 import com.bizmatics.persistence.mapper.HtAnalogDataMapper;
 import com.bizmatics.persistence.mapper.SiteMapper;
-import com.bizmatics.service.HadDataLogService;
 import com.bizmatics.service.HtAnalogDataService;
 import com.bizmatics.common.mvc.base.AbstractCrudService;
 import com.bizmatics.service.util.Arith;
@@ -16,9 +14,6 @@ import com.bizmatics.service.util.SessionLocal;
 import com.bizmatics.service.vo.*;
 import com.fasterxml.jackson.core.type.TypeReference;
 import lombok.extern.slf4j.Slf4j;
-import org.apache.lucene.index.IndexFormatTooNewException;
-import org.apache.poi.ss.usermodel.DateUtil;
-import org.checkerframework.checker.units.qual.A;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 import java.util.*;

+ 138 - 97
fiveep-service/src/main/java/com/bizmatics/service/job/RatAnalogTask.java

@@ -1,21 +1,19 @@
 package com.bizmatics.service.job;
 
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.baomidou.mybatisplus.core.toolkit.Wrappers;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.bizmatics.common.core.util.BeanMapperUtils;
 import com.bizmatics.common.core.util.DateUtils;
 import com.bizmatics.common.core.util.JsonMapper;
 import com.bizmatics.common.spring.util.JsonUtils;
-import com.bizmatics.model.AlarmPower;
-import com.bizmatics.model.HadDataLog;
-import com.bizmatics.model.HtAnalogData;
-import com.bizmatics.model.RtAnalogData;
+import com.bizmatics.model.*;
 import com.bizmatics.model.es.RtAnalog;
-import com.bizmatics.persistence.mapper.HadDataLogMapper;
-import com.bizmatics.persistence.mapper.HtAnalogDataMapper;
-import com.bizmatics.persistence.mapper.RtAnalogDataMapper;
+import com.bizmatics.persistence.mapper.*;
 import com.bizmatics.service.HadDataLogService;
 import com.bizmatics.service.es.RtAnalogService;
 import com.bizmatics.service.util.SessionLocal;
+import com.bizmatics.service.vo.CommonIcoVO;
 import com.bizmatics.service.vo.HadDataLogVO;
 import com.google.common.collect.Lists;
 import lombok.extern.slf4j.Slf4j;
@@ -27,6 +25,7 @@ import org.springframework.stereotype.Service;
 
 import java.util.*;
 import java.util.stream.Collectors;
+import java.util.stream.Stream;
 
 /**
  * @author yq
@@ -43,109 +42,151 @@ public class RatAnalogTask {
     @Autowired
     private HadDataLogMapper hadDataLogMapper;
 
+    @Autowired
+    private DeviceMapper deviceMapper;
+
+    @Autowired
+    private HadSiteStaticMapper hadSiteStaticMapper;
+
     public void addAll(){
-        Integer index = 0;
-        Date date = new Date();
-        date = DateUtils.setDays(date,27);
-        date = DateUtils.setMonths(date,4);
-        Date dayStartTime = DateUtils.getDayStartTime(date);
-        Date dayStartTime1 = DateUtils.getDayEndTime(date);
-        Date startTime = dayStartTime;
-        Date endTime = dayStartTime1;
-        Integer integer = htAnalogDataMapper.selectMaxId();
-        Integer maxId = integer;
-        boolean flag = true;
-        while (flag){
-            List<HadDataLogVO> hadVoList = new ArrayList<>();
-            List<HtAnalogData> htAnalogDatas = htAnalogDataMapper.page(index, 500, startTime, endTime);
-            if (!CollectionUtils.isEmpty(htAnalogDatas)){
-                for (HtAnalogData htAnalogData:htAnalogDatas) {
-                    hadVoList.add(insertList(htAnalogData));
-                }
-                insertHadDateLog(hadVoList,startTime);
-                if (htAnalogDatas.size() < 500){
-                    //要进行下个天数的查询
-                    startTime = DateUtils.addDays(startTime,1);
-                    endTime = DateUtils.addDays(endTime,1);
-                    index = 0;
-                }else {
-                    index+=500;
+        List<Device> list = deviceMapper.list(null, null, null, null, null, null);
+        List<Date> dateList = htAnalogDataMapper.getDateList();
+        List<Date> newList = new ArrayList<>();
+        for (Date date:dateList) {
+            newList.add(DateUtils.getDayStartTime(date));
+        }
+        List<Date> collect = newList.stream().distinct().collect(Collectors.toList());
+        for (Device device:list) {
+            long currentTimeMillis = System.currentTimeMillis();
+            for (Date date:collect) {
+                Date dayStartTime = DateUtils.getDayStartTime(date);
+                Date dayEndTime = DateUtils.getDayEndTime(date);
+                LambdaQueryWrapper<HtAnalogData> objectLambdaQueryWrapper = Wrappers.lambdaQuery();
+                objectLambdaQueryWrapper.eq(HtAnalogData::getDeviceName,device.getDeviceCode())
+                        .between(HtAnalogData::getDataTime,dayStartTime,dayEndTime);
+                Integer count = htAnalogDataMapper.selectCount(objectLambdaQueryWrapper);
+                if (count > 0){
+                    Map<String, Double> map = htAnalogDataMapper.selectMaxAndMinAndAvg(device.getSiteId(), dayStartTime, dayEndTime);
+                    if (null != map){
+                        HadSiteStatic hadSiteStatic = new HadSiteStatic();
+                        hadSiteStatic.setSiteId(device.getSiteId());
+                        hadSiteStatic.setHadTime(dayStartTime);
+                        hadSiteStatic.setMaxEpp(map.get("eppMax"));
+                        hadSiteStatic.setMinEpp(map.get("eppMin"));
+                        hadSiteStatic.setAvgEpp(map.get("eppAvg"));
+                        hadSiteStatic.setMaxDemand(map.get("demandMax"));
+                        hadSiteStatic.setMinDemand(map.get("demandMin"));
+                        hadSiteStatic.setAvgDemand(map.get("demandAvg"));
+                        List<Object> objects = new ArrayList<>();
+                        objects.add(0.0);
+                        List<Object> hisList = new ArrayList<>();
+                        hisList.add(0.0);
+                        List<Object> dates = new ArrayList<>();
+                        dates.add("00:00:00");
+                        for (int i = 2; i < 24 ; i+=2) {
+                            //结束时间
+                            Date hours = DateUtils.setHours(dayStartTime, i);
+                            Map<String, Double> loadIco = htAnalogDataMapper.selectMaxAndMinAndAvg(device.getSiteId(), dayStartTime, hours);
+                            if (null == loadIco){
+                                objects.add(0.00);
+                            }else {
+                                objects.add(loadIco.get("eppMax")-loadIco.get("eppMin"));
+                            }
+                            HtAnalogData htAnalogData = htAnalogDataMapper.selectByEndTime(dayStartTime, hours, device.getSiteId(), null);
+                            hisList.add(JsonUtils.toJson(htAnalogData));
+                            dayStartTime = hours;
+                            dates.add(DateUtils.getTime(hours));
+                        }
+                        CommonIcoVO build = CommonIcoVO.builder().name("").list(objects).listDate(dates).build();
+                        CommonIcoVO build1 = CommonIcoVO.builder().name("").list(hisList).listDate(dates).build();
+                        hadSiteStatic.setLoadIco(JsonUtils.toJson(build));
+                        hadSiteStatic.setHisIco(JsonUtils.toJson(build1));
+                        hadSiteStaticMapper.insert(hadSiteStatic);
                 }
-                if (htAnalogDatas.get(htAnalogDatas.size()-1).getId() >= maxId){
-                    flag = false;
                 }
-            }else {
-                //要进行下个天数的查询
-                startTime = DateUtils.addDays(startTime,1);
-                endTime = DateUtils.addDays(endTime,1);
-                index = 0;
             }
+            long e = System.currentTimeMillis();
+            log.info("处理时间"+(e-currentTimeMillis)+"毫秒");
+            log.info("一个设备处理完毕");
         }
-        log.info("批量导入数据处理完成");
     }
 
 
-    public static boolean belongCalendar(Date nowTime, Date beginTime, Date endTime) {
-        Calendar date = Calendar.getInstance();
-        date.setTime(nowTime);
-        Calendar begin = Calendar.getInstance();
-        begin.setTime(beginTime);
-        Calendar end = Calendar.getInstance();
-        end.setTime(endTime);
-        if (date.after(begin) && date.before(end)) {
-            return true;
-        } else if (nowTime.compareTo(beginTime) == 0 || nowTime.compareTo(endTime) == 0) {
-            return true;
-        } else {
-            return false;
+    @Scheduled(cron = "0 0 0 */1 * ?")
+    public void addHadJob(){
+        Date date = new Date();
+        List<Device> list = deviceMapper.list(null, null, null, null, null, null);
+        for (Device device:list) {
+            HadSiteStatic hadSiteStatic = hadSiteStaticMax(device, date);
+            Optional.ofNullable(hadSiteStatic).ifPresent(hads ->{
+                getSiteIco(device,date,hadSiteStatic);
+                hadSiteStaticMapper.insert(hadSiteStatic);
+            });
         }
     }
 
-    public void insertHadDateLog(List<HadDataLogVO> hadVoList,Date startTime){
-        ArrayList<HadDataLogVO> distant = hadVoList.stream().collect(Collectors.collectingAndThen(Collectors.toCollection(() -> new TreeSet<>(Comparator.comparing(HadDataLogVO::getSiteId))), ArrayList::new));
-        List<Integer> siteList = distant.stream().map(HadDataLogVO::getSiteId).collect(Collectors.toList());
-        HadDataLog hadDataLog = new HadDataLog();
-        hadDataLog.setDataTime(startTime);
-        hadDataLog.setSiteIdList(JsonUtils.toJson(siteList));
-        hadDataLog.setHadData(JsonUtils.toJson(hadVoList));
-        hadDataLogMapper.insert(hadDataLog);
-    }
-
-    public HadDataLogVO insertList(HtAnalogData htAnalogData){
-        HadDataLogVO hadDataLogVO = HadDataLogVO.builder()
-                .dataTime(htAnalogData.getDataTime())
-                .deviceCode(htAnalogData.getDeviceName())
-                .epp(htAnalogData.getEpp())
-                .ia(htAnalogData.getIa())
-                .ib(htAnalogData.getIb())
-                .ic(htAnalogData.getIc())
-                .ua(htAnalogData.getUa())
-                .ub(htAnalogData.getUb())
-                .uc(htAnalogData.getUc())
-                .siteId(htAnalogData.getSiteId())
-                .demand(htAnalogData.getDemand())
-                .build();
-        return hadDataLogVO;
+    /**
+     * 添加最大值最小值平均值
+     * @param device
+     * @param date
+     * @return
+     */
+    public HadSiteStatic hadSiteStaticMax(Device device,Date date){
+        Date dayStartTime = DateUtils.getDayStartTime(date);
+        Date dayEndTime = DateUtils.getDayEndTime(date);
+        LambdaQueryWrapper<HtAnalogData> objectLambdaQueryWrapper = Wrappers.lambdaQuery();
+        objectLambdaQueryWrapper.eq(HtAnalogData::getDeviceName,device.getDeviceCode())
+                .between(HtAnalogData::getDataTime,dayStartTime,dayEndTime);
+        Integer count = htAnalogDataMapper.selectCount(objectLambdaQueryWrapper);
+        HadSiteStatic hadSiteStatic = null;
+        if (count > 0){
+            Map<String, Double> map = htAnalogDataMapper.selectMaxAndMinAndAvg(device.getSiteId(), dayStartTime, dayEndTime);
+            if (null != map){
+                hadSiteStatic = new HadSiteStatic();
+                hadSiteStatic.setSiteId(device.getSiteId());
+                hadSiteStatic.setHadTime(dayStartTime);
+                hadSiteStatic.setMaxEpp(map.get("eppMax"));
+                hadSiteStatic.setMinEpp(map.get("eppMin"));
+                hadSiteStatic.setAvgEpp(map.get("eppAvg"));
+                hadSiteStatic.setMaxDemand(map.get("demandMax"));
+                hadSiteStatic.setMinDemand(map.get("demandMin"));
+                hadSiteStatic.setAvgDemand(map.get("demandAvg"));
+            }
+        }
+        return hadSiteStatic;
     }
 
-//    @Scheduled(cron = "*/5 * * * * ?")
-    @Scheduled(cron = "0 0 0 */1 * ?")
-    public void addHadJob(){
-        Integer index = 1;
-        Date date = new Date();
-        List<HtAnalogData> list;
-        do {
-            List<HadDataLogVO> hadVoList = new ArrayList<>();
-            Date dayStartTime = DateUtils.getDayStartTime(date);
-            list = htAnalogDataMapper.page(index, 2000, dayStartTime, DateUtils.getDayEndTime(date));
-            if (!CollectionUtils.isEmpty(list)){
-                for (HtAnalogData htAnalogData:list) {
-                    hadVoList.add(insertList(htAnalogData));
-                }
-                insertHadDateLog(hadVoList,dayStartTime);
-                index++;
+    /**
+     * 获取图标集合
+     * @param device
+     * @param dayStartTime
+     * @param hadSiteStatic
+     */
+    public void getSiteIco(Device device,Date dayStartTime,HadSiteStatic hadSiteStatic){
+        List<Object> objects = new ArrayList<>();
+        objects.add(0.0);
+        List<Object> hisList = new ArrayList<>();
+        hisList.add(0.0);
+        List<Object> dates = new ArrayList<>();
+        dates.add("00:00:00");
+        for (int i = 2; i < 24 ; i+=2) {
+            //结束时间
+            Date hours = DateUtils.setHours(dayStartTime, i);
+            Map<String, Double> loadIco = htAnalogDataMapper.selectMaxAndMinAndAvg(device.getSiteId(), dayStartTime, hours);
+            if (null == loadIco){
+                objects.add(0.00);
+            }else {
+                objects.add(loadIco.get("eppMax")-loadIco.get("eppMin"));
             }
-        }while (!CollectionUtils.isEmpty(list));
-        log.info("处理完成");
+            HtAnalogData htAnalogData = htAnalogDataMapper.selectByEndTime(dayStartTime, hours, device.getSiteId(), null);
+            hisList.add(JsonUtils.toJson(htAnalogData));
+            dayStartTime = hours;
+            dates.add(DateUtils.getTime(hours));
+        }
+        CommonIcoVO build = CommonIcoVO.builder().name("").list(objects).listDate(dates).build();
+        CommonIcoVO build1 = CommonIcoVO.builder().name("").list(hisList).listDate(dates).build();
+        hadSiteStatic.setLoadIco(JsonUtils.toJson(build));
+        hadSiteStatic.setHisIco(JsonUtils.toJson(build1));
+
     }
 }

この差分においてかなりの量のファイルが変更されているため、一部のファイルを表示していません