Bläddra i källkod

用能月报导出1

jichaobo 3 år sedan
förälder
incheckning
4d3c8ef43f

+ 37 - 13
fiveep-controller/src/main/java/com/bizmatics/controller/web/HtAnalogDataController.java

@@ -3,9 +3,11 @@ package com.bizmatics.controller.web;
 
 
 import com.bizmatics.common.core.bean.ApiResult;
 import com.bizmatics.common.core.bean.ApiResult;
 import com.bizmatics.model.vo.DataManagementOneVO;
 import com.bizmatics.model.vo.DataManagementOneVO;
-import com.bizmatics.model.vo.DataManagementVO;
 import com.bizmatics.service.HtAnalogDataService;
 import com.bizmatics.service.HtAnalogDataService;
-import com.bizmatics.service.vo.*;
+import com.bizmatics.service.vo.CommonIcoVO;
+import com.bizmatics.service.vo.HadCountVO;
+import com.bizmatics.service.vo.RealScoreVO;
+import com.bizmatics.service.vo.TimeShareVO;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.web.bind.annotation.*;
 import org.springframework.web.bind.annotation.*;
 
 
@@ -106,6 +108,7 @@ public class HtAnalogDataController {
 
 
     /**
     /**
      * 历史电流电压评分
      * 历史电流电压评分
+     *
      * @param deviceCode
      * @param deviceCode
      * @param startTime
      * @param startTime
      * @param endTime
      * @param endTime
@@ -113,13 +116,14 @@ public class HtAnalogDataController {
      */
      */
     @GetMapping("rtRealScore")
     @GetMapping("rtRealScore")
     public ApiResult<List<RealScoreVO>> rtRealScore(@RequestParam String deviceCode,
     public ApiResult<List<RealScoreVO>> rtRealScore(@RequestParam String deviceCode,
-                                                            @RequestParam Date startTime,
-                                                            @RequestParam Date endTime) {
-        return ApiResult.success(htAnalogDataService.rtRealScore(deviceCode, startTime,endTime));
+                                                    @RequestParam Date startTime,
+                                                    @RequestParam Date endTime) {
+        return ApiResult.success(htAnalogDataService.rtRealScore(deviceCode, startTime, endTime));
     }
     }
 
 
     /**
     /**
-     *数据管理-同比分析报表-统计图数据查询
+     * 数据管理-同比分析报表-统计图数据查询
+     *
      * @param dataManagementOneVO
      * @param dataManagementOneVO
      * @return
      * @return
      */
      */
@@ -130,7 +134,8 @@ public class HtAnalogDataController {
 
 
 
 
     /**
     /**
-     *数据管理-环比分析报表-统计图数据查询
+     * 数据管理-环比分析报表-统计图数据查询
+     *
      * @param dataManagementOneVO
      * @param dataManagementOneVO
      * @return
      * @return
      */
      */
@@ -140,11 +145,12 @@ public class HtAnalogDataController {
     }
     }
 
 
     /**
     /**
-     *数据管理-用能月报-统计图数据查询
+     * 数据管理-用能月报-统计图数据查询
+     *
      * @param deviceCode 设备编号
      * @param deviceCode 设备编号
-     * @param cycle 1.日报表 2.月报表 3.年报表
-     * @param startTime 开始时间
-     * @param endTime 结束时间
+     * @param cycle      1.日报表 2.月报表 3.年报表
+     * @param startTime  开始时间
+     * @param endTime    结束时间
      * @return
      * @return
      */
      */
     @GetMapping("monthlyReport")
     @GetMapping("monthlyReport")
@@ -157,9 +163,10 @@ public class HtAnalogDataController {
 
 
     /**
     /**
      * 数据管理-需量分析-统计图数据查询
      * 数据管理-需量分析-统计图数据查询
+     *
      * @param deviceCode 设备编号
      * @param deviceCode 设备编号
-     * @param cycle 1.电费结算周期 2.自然月
-     * @param monthDate 时间 xxxx-xx
+     * @param cycle      1.电费结算周期 2.自然月
+     * @param monthDate  时间 xxxx-xx
      * @return
      * @return
      */
      */
     @GetMapping("demandAnalysis")
     @GetMapping("demandAnalysis")
@@ -169,5 +176,22 @@ public class HtAnalogDataController {
         return ApiResult.success(htAnalogDataService.demandAnalysis(deviceCode, monthDate, cycle));
         return ApiResult.success(htAnalogDataService.demandAnalysis(deviceCode, monthDate, cycle));
 
 
     }
     }
+
+    /**
+     * 数据管理-用能月报-导出
+     *
+     * @param deviceCode 设备编号
+     * @param cycle      1.日报表 2.月报表 3.年报表
+     * @param startTime  开始时间
+     * @param endTime    结束时间
+     * @return
+     */
+    @GetMapping("monthlyReportExport")
+    public ApiResult<String> monthlyReportExport(@RequestParam String deviceCode,
+                                                 @RequestParam int cycle,
+                                                 @RequestParam String startTime,
+                                                 @RequestParam String endTime) {
+        return ApiResult.success(htAnalogDataService.monthlyReportExport(deviceCode, startTime, endTime, cycle));
+    }
 }
 }
 
 

+ 42 - 0
fiveep-model/src/main/java/com/bizmatics/model/vo/HtAnalogDataOneVo.java

@@ -0,0 +1,42 @@
+package com.bizmatics.model.vo;
+
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableId;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+import lombok.experimental.Accessors;
+
+import java.io.Serializable;
+import java.util.Date;
+
+/**
+ * <p>
+ *
+ * </p>
+ *
+ * @author ya
+ * @since 2021-07-07
+ */
+@Data
+@EqualsAndHashCode(callSuper = false)
+@Accessors(chain = true)
+public class HtAnalogDataOneVo implements Serializable {
+
+    /**
+     * 伍继电力test_183消费组模拟量数据表ID
+     */
+    @TableId(value = "id", type = IdType.AUTO)
+    private Integer id;
+
+    /**
+     * 三相正向有功电度
+     */
+    private Double Epp;
+
+    /**
+     * 冻结时间
+     */
+    private Date freezingTime;
+
+
+}

+ 11 - 4
fiveep-persistence/src/main/java/com/bizmatics/persistence/mapper/HtAnalogDataMapper.java

@@ -1,10 +1,8 @@
 package com.bizmatics.persistence.mapper;
 package com.bizmatics.persistence.mapper;
 
 
-import com.baomidou.mybatisplus.core.metadata.IPage;
-import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
-import com.bizmatics.model.AlarmPower;
-import com.bizmatics.model.HtAnalogData;
 import com.bizmatics.common.mvc.base.CrudMapper;
 import com.bizmatics.common.mvc.base.CrudMapper;
+import com.bizmatics.model.HtAnalogData;
+import com.bizmatics.model.vo.HtAnalogDataOneVo;
 import com.bizmatics.model.vo.HtAnalogDataVo;
 import com.bizmatics.model.vo.HtAnalogDataVo;
 import org.apache.ibatis.annotations.MapKey;
 import org.apache.ibatis.annotations.MapKey;
 import org.apache.ibatis.annotations.Param;
 import org.apache.ibatis.annotations.Param;
@@ -118,4 +116,13 @@ public interface HtAnalogDataMapper extends CrudMapper<HtAnalogData> {
     List<HtAnalogDataVo> demandAnalysisList(@Param("deviceCode") String deviceCode,
     List<HtAnalogDataVo> demandAnalysisList(@Param("deviceCode") String deviceCode,
                                             @Param("monthDate") String monthDate);
                                             @Param("monthDate") String monthDate);
 
 
+
+    List<HtAnalogDataOneVo> energyUseListOne(@Param("deviceCode") String deviceCode,
+                                             @Param("startTime") String startTime,
+                                             @Param("endTime") String endTime,
+                                             @Param("cycle") Integer cycle,
+                                             @Param("sign") Integer sign,
+                                             @Param("size") Integer size,
+                                             @Param("startCurrent") Integer startCurrent);
+
 }
 }

+ 164 - 43
fiveep-persistence/src/main/resources/mapper/mysql/HtAnalogDataMapper.xml

@@ -50,7 +50,7 @@
         select max(Demand) as demandMax,min(Demand) as demandMin,avg(Demand) as demandAvg,
         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
         max(Epp) as eppMax,min(Epp) as eppMin,avg(Epp) as eppAvg
         from device as d
         from device as d
-        inner join  ht_analog_data as had
+        inner join ht_analog_data as had
         on d.device_code = had.deviceName
         on d.device_code = had.deviceName
         <where>
         <where>
             <if test="siteId != null and siteId != 0">
             <if test="siteId != null and siteId != 0">
@@ -78,7 +78,8 @@
         select
         select
         had.id,deviceName,Busot,COS,COSa,COSb,COSc,Demand,DevResetTimes,DeviceTemp,Epn,Epn1,Epn2,Epn3,Epn4,Epp,
         had.id,deviceName,Busot,COS,COSa,COSb,COSc,Demand,DevResetTimes,DeviceTemp,Epn,Epn1,Epn2,Epn3,Epn4,Epp,
         Epp1,Epp2,Epp3,Epp4,Eqn,Eqp,F,I0,I2,IHa,IHb,IHc,Ia,Ib,Ic,Ir,LastDayMD,LastDayMDt,P,Pa,Pb,Pc,Q,Qa,Qb,Qc,SignalIntensity,
         Epp1,Epp2,Epp3,Epp4,Eqn,Eqp,F,I0,I2,IHa,IHb,IHc,Ia,Ib,Ic,Ir,LastDayMD,LastDayMDt,P,Pa,Pb,Pc,Q,Qa,Qb,Qc,SignalIntensity,
-        T1,T2,T3,T4,THDUa,THDUb,THDUc,Ua,Uab,Ub,Ubc,UblU0,UblU2,Uc,Uca,Udt,Ul,Upt,Ust,freezingTime,dataTime,d.site_id as siteId
+        T1,T2,T3,T4,THDUa,THDUb,THDUc,Ua,Uab,Ub,Ubc,UblU0,UblU2,Uc,Uca,Udt,Ul,Upt,Ust,freezingTime,dataTime,d.site_id as
+        siteId
         from ht_analog_data as had
         from ht_analog_data as had
         left join device as d
         left join device as d
         on had.deviceName = d.device_code
         on had.deviceName = d.device_code
@@ -107,7 +108,7 @@
         select
         select
         IFNULL(sum(had.epp),0)
         IFNULL(sum(had.epp),0)
         from device as d
         from device as d
-        inner join  ht_analog_data as had
+        inner join ht_analog_data as had
         on d.device_code = had.deviceName
         on d.device_code = had.deviceName
         <where>
         <where>
             <if test="siteId != null and siteId != 0">
             <if test="siteId != null and siteId != 0">
@@ -196,12 +197,12 @@
         JOIN device_analog_variable_list AS c ON a.deviceName = c.device_code
         JOIN device_analog_variable_list AS c ON a.deviceName = c.device_code
         JOIN device_attribute AS d ON c.monitoring_equipment = d.id
         JOIN device_attribute AS d ON c.monitoring_equipment = d.id
         <where>
         <where>
-                and a.deviceName IN
-            <foreach item="item"  collection="deviceCode" open="(" separator="," close=")">
+            and a.deviceName IN
+            <foreach item="item" collection="deviceCode" open="(" separator="," close=")">
                 #{item.displayField}
                 #{item.displayField}
             </foreach>
             </foreach>
             AND c.variable_coding in
             AND c.variable_coding in
-            <foreach item="item"  collection="variableCoding" open="(" separator="," close=")">
+            <foreach item="item" collection="variableCoding" open="(" separator="," close=")">
                 #{item.variableCoding}
                 #{item.variableCoding}
             </foreach>
             </foreach>
             <if test="endTime != null and startTime != null and endTime != '' and startTime != ''">
             <if test="endTime != null and startTime != null and endTime != '' and startTime != ''">
@@ -288,11 +289,11 @@
         JOIN device_attribute AS d ON c.monitoring_equipment = d.id
         JOIN device_attribute AS d ON c.monitoring_equipment = d.id
         <where>
         <where>
             a.deviceName IN
             a.deviceName IN
-            <foreach item="item"  collection="deviceCode" open="(" separator="," close=")">
+            <foreach item="item" collection="deviceCode" open="(" separator="," close=")">
                 #{item.displayField}
                 #{item.displayField}
             </foreach>
             </foreach>
             AND c.variable_coding in
             AND c.variable_coding in
-            <foreach item="item"  collection="variableCoding" open="(" separator="," close=")">
+            <foreach item="item" collection="variableCoding" open="(" separator="," close=")">
                 #{item.variableCoding}
                 #{item.variableCoding}
             </foreach>
             </foreach>
             <if test="endTime != null and startTime != null and endTime != '' and startTime != ''">
             <if test="endTime != null and startTime != null and endTime != '' and startTime != ''">
@@ -380,11 +381,11 @@
         JOIN device_attribute AS d ON c.monitoring_equipment = d.id
         JOIN device_attribute AS d ON c.monitoring_equipment = d.id
         <where>
         <where>
             and a.deviceName IN
             and a.deviceName IN
-            <foreach item="item"  collection="deviceCode" open="(" separator="," close=")">
+            <foreach item="item" collection="deviceCode" open="(" separator="," close=")">
                 #{item.displayField}
                 #{item.displayField}
             </foreach>
             </foreach>
             AND c.variable_coding in
             AND c.variable_coding in
-            <foreach item="item"  collection="variableCoding" open="(" separator="," close=")">
+            <foreach item="item" collection="variableCoding" open="(" separator="," close=")">
                 #{item.variableCoding}
                 #{item.variableCoding}
             </foreach>
             </foreach>
             <if test="endTime != null and startTime != null and endTime != '' and startTime != ''">
             <if test="endTime != null and startTime != null and endTime != '' and startTime != ''">
@@ -471,11 +472,11 @@
         JOIN device_attribute AS d ON c.monitoring_equipment = d.id
         JOIN device_attribute AS d ON c.monitoring_equipment = d.id
         <where>
         <where>
             and a.deviceName in
             and a.deviceName in
-            <foreach item="item"  collection="deviceCode" open="(" separator="," close=")">
+            <foreach item="item" collection="deviceCode" open="(" separator="," close=")">
                 #{item.displayField}
                 #{item.displayField}
             </foreach>
             </foreach>
             AND c.variable_coding in
             AND c.variable_coding in
-            <foreach item="item"  collection="variableCoding" open="(" separator="," close=")">
+            <foreach item="item" collection="variableCoding" open="(" separator="," close=")">
                 #{item.variableCoding}
                 #{item.variableCoding}
             </foreach>
             </foreach>
             <if test="endTime != null and startTime != null and endTime != '' and startTime != ''">
             <if test="endTime != null and startTime != null and endTime != '' and startTime != ''">
@@ -562,11 +563,11 @@
         JOIN device_attribute AS d ON c.monitoring_equipment = d.id
         JOIN device_attribute AS d ON c.monitoring_equipment = d.id
         <where>
         <where>
             and a.deviceName in
             and a.deviceName in
-            <foreach item="item"  collection="deviceCode" open="(" separator="," close=")">
+            <foreach item="item" collection="deviceCode" open="(" separator="," close=")">
                 #{item.displayField}
                 #{item.displayField}
             </foreach>
             </foreach>
             AND c.variable_coding in
             AND c.variable_coding in
-            <foreach item="item"  collection="variableCoding" open="(" separator="," close=")">
+            <foreach item="item" collection="variableCoding" open="(" separator="," close=")">
                 #{item.variableCoding}
                 #{item.variableCoding}
             </foreach>
             </foreach>
             <if test="endTime != null and startTime != null and endTime != '' and startTime != ''">
             <if test="endTime != null and startTime != null and endTime != '' and startTime != ''">
@@ -653,11 +654,11 @@
         JOIN device_attribute AS d ON c.monitoring_equipment = d.id
         JOIN device_attribute AS d ON c.monitoring_equipment = d.id
         <where>
         <where>
             and a.deviceName in
             and a.deviceName in
-            <foreach item="item"  collection="deviceCode" open="(" separator="," close=")">
+            <foreach item="item" collection="deviceCode" open="(" separator="," close=")">
                 #{item.displayField}
                 #{item.displayField}
             </foreach>
             </foreach>
             AND c.variable_coding in
             AND c.variable_coding in
-            <foreach item="item"  collection="variableCoding" open="(" separator="," close=")">
+            <foreach item="item" collection="variableCoding" open="(" separator="," close=")">
                 #{item.variableCoding}
                 #{item.variableCoding}
             </foreach>
             </foreach>
             <if test="endTime != null and startTime != null and endTime != '' and startTime != ''">
             <if test="endTime != null and startTime != null and endTime != '' and startTime != ''">
@@ -744,11 +745,11 @@
         JOIN device_attribute AS d ON c.monitoring_equipment = d.id
         JOIN device_attribute AS d ON c.monitoring_equipment = d.id
         <where>
         <where>
             and a.deviceName in
             and a.deviceName in
-            <foreach item="item"  collection="deviceCode" open="(" separator="," close=")">
+            <foreach item="item" collection="deviceCode" open="(" separator="," close=")">
                 #{item.displayField}
                 #{item.displayField}
             </foreach>
             </foreach>
             AND c.variable_coding in
             AND c.variable_coding in
-            <foreach item="item"  collection="variableCoding" open="(" separator="," close=")">
+            <foreach item="item" collection="variableCoding" open="(" separator="," close=")">
                 #{item.variableCoding}
                 #{item.variableCoding}
             </foreach>
             </foreach>
             <if test="endTime != null and startTime != null and endTime != '' and startTime != ''">
             <if test="endTime != null and startTime != null and endTime != '' and startTime != ''">
@@ -835,11 +836,11 @@
         JOIN device_attribute AS d ON c.monitoring_equipment = d.id
         JOIN device_attribute AS d ON c.monitoring_equipment = d.id
         <where>
         <where>
             and a.deviceName in
             and a.deviceName in
-            <foreach item="item"  collection="deviceCode" open="(" separator="," close=")">
+            <foreach item="item" collection="deviceCode" open="(" separator="," close=")">
                 #{item.displayField}
                 #{item.displayField}
             </foreach>
             </foreach>
             AND c.variable_coding in
             AND c.variable_coding in
-            <foreach item="item"  collection="variableCoding" open="(" separator="," close=")">
+            <foreach item="item" collection="variableCoding" open="(" separator="," close=")">
                 #{item.variableCoding}
                 #{item.variableCoding}
             </foreach>
             </foreach>
             <if test="endTime != null and startTime != null and endTime != '' and startTime != ''">
             <if test="endTime != null and startTime != null and endTime != '' and startTime != ''">
@@ -851,14 +852,14 @@
 
 
     <select id="energyUseList" resultType="com.bizmatics.model.vo.HtAnalogDataVo">
     <select id="energyUseList" resultType="com.bizmatics.model.vo.HtAnalogDataVo">
         <if test="cycle == 1">
         <if test="cycle == 1">
-        SELECT
-        b.id,
-        a.minid,
-        b.Epp,
-        b.Demand,
-        freezingTime AS freezingTimes
-        FROM
-        (
+            SELECT
+            b.id,
+            a.minid,
+            b.Epp,
+            b.Demand,
+            freezingTime AS freezingTimes
+            FROM
+            (
             <if test="sign == 1">
             <if test="sign == 1">
                 SELECT
                 SELECT
                 max(id) AS minid,
                 max(id) AS minid,
@@ -869,8 +870,8 @@
                 min(id) AS minid,
                 min(id) AS minid,
                 freezingTime AS freezingTimess
                 freezingTime AS freezingTimess
             </if>
             </if>
-        FROM
-        ht_analog_data
+            FROM
+            ht_analog_data
             <where>
             <where>
                 and deviceName = #{deviceCode}
                 and deviceName = #{deviceCode}
                 <if test="endTime != null and startTime != null and endTime != '' and startTime != ''">
                 <if test="endTime != null and startTime != null and endTime != '' and startTime != ''">
@@ -878,8 +879,8 @@
                 </if>
                 </if>
             </where>
             </where>
             GROUP BY freezingTimess
             GROUP BY freezingTimess
-        ) a
-        LEFT JOIN ht_analog_data b ON a.minid = b.id;
+            ) a
+            LEFT JOIN ht_analog_data b ON a.minid = b.id;
         </if>
         </if>
         <if test="cycle == 2">
         <if test="cycle == 2">
             SELECT
             SELECT
@@ -963,19 +964,139 @@
         </if>
         </if>
     </select>
     </select>
 
 
+    <select id="energyUseListOne" resultType="com.bizmatics.model.vo.HtAnalogDataOneVo">
+        <if test="cycle == 1">
+            SELECT
+            b.id,
+            b.Epp,
+            freezingTime AS freezingTime
+            FROM
+            (
+            <if test="sign == 1">
+                SELECT
+                max(id) AS minid,
+                freezingTime AS freezingTimess
+            </if>
+            <if test="sign == 2">
+                SELECT
+                min(id) AS minid,
+                freezingTime AS freezingTimess
+            </if>
+            FROM
+            ht_analog_data
+            <where>
+                and deviceName = #{deviceCode}
+                <if test="endTime != null and startTime != null and endTime != '' and startTime != ''">
+                    and dataTime BETWEEN #{startTime} and #{endTime}
+                </if>
+            </where>
+            GROUP BY freezingTimess
+            ) a
+            LEFT JOIN ht_analog_data b ON a.minid = b.id
+            <if test="startCurrent != null and size !=0 and size!=null">
+                LIMIT #{startCurrent},
+                #{size}
+            </if>
+        </if>
+        <if test="cycle == 2">
+            SELECT
+            b.id,
+            b.Epp,
+            FROM_UNIXTIME(
+            UNIX_TIMESTAMP(b.dataTime),
+            '%Y-%m'
+            ) AS freezingTime
+            FROM
+            (
+            <if test="sign == 1">
+                SELECT
+                max(id) AS minid,
+                FROM_UNIXTIME(
+                UNIX_TIMESTAMP(dataTime),
+                '%Y-%m'
+                ) AS freezingTimess
+            </if>
+            <if test="sign == 2">
+                SELECT
+                min(id) AS minid,
+                FROM_UNIXTIME(
+                UNIX_TIMESTAMP(dataTime),
+                '%Y-%m'
+                ) AS freezingTimess
+            </if>
+            FROM
+            ht_analog_data
+            <where>
+                and deviceName = #{deviceCode}
+                <if test="endTime != null and startTime != null and endTime != '' and startTime != ''">
+                    and dataTime BETWEEN #{startTime} and #{endTime}
+                </if>
+            </where>
+            GROUP BY freezingTimess
+            ) a
+            LEFT JOIN ht_analog_data b ON a.minid = b.id
+            <if test="startCurrent != null and size !=0 and size!=null">
+                LIMIT #{startCurrent},
+                #{size}
+            </if>
+        </if>
+        <if test="cycle == 3">
+            SELECT
+            b.id,
+            b.Epp,
+            FROM_UNIXTIME(
+            UNIX_TIMESTAMP(b.dataTime),
+            '%Y-%m'
+            ) AS freezingTime
+            FROM
+            (
+            <if test="sign == 1">
+                SELECT
+                max(id) AS minid,
+                FROM_UNIXTIME(
+                UNIX_TIMESTAMP(dataTime),
+                '%Y'
+                ) AS freezingTimess
+            </if>
+            <if test="sign == 2">
+                SELECT
+                min(id) AS minid,
+                FROM_UNIXTIME(
+                UNIX_TIMESTAMP(dataTime),
+                '%Y'
+                ) AS freezingTimess
+            </if>
+            FROM
+            ht_analog_data
+            <where>
+                and deviceName = #{deviceCode}
+                <if test="endTime != null and startTime != null and endTime != '' and startTime != ''">
+                    and dataTime BETWEEN #{startTime} and #{endTime}
+                </if>
+            </where>
+            GROUP BY freezingTimess
+            ) a
+            LEFT JOIN ht_analog_data b ON a.minid = b.id
+            <if test="startCurrent != null and size !=0 and size!=null">
+                LIMIT #{startCurrent},
+                #{size}
+            </if>
+        </if>
+    </select>
+
     <select id="demandAnalysisList" resultType="com.bizmatics.model.vo.HtAnalogDataVo">
     <select id="demandAnalysisList" resultType="com.bizmatics.model.vo.HtAnalogDataVo">
         SELECT
         SELECT
         MAX(Demand) as Demand,
         MAX(Demand) as Demand,
         freezingTime AS freezingTimes
         freezingTime AS freezingTimes
         FROM
         FROM
         ht_analog_data
         ht_analog_data
-            <where>
-                and deviceName = #{deviceCode}
-                <if test="monthDate != null and monthDate != ''">
-                    and freezingTime LIKE CONCAT(CONCAT('%', #{monthDate}), '%')
-                </if>
-            </where>
-            GROUP BY freezingTime;
+        <where>
+            and deviceName = #{deviceCode}
+            <if test="monthDate != null and monthDate != ''">
+                and freezingTime LIKE CONCAT(CONCAT('%', #{monthDate}), '%')
+            </if>
+        </where>
+        GROUP BY freezingTime;
     </select>
     </select>
 
 
 
 
@@ -983,10 +1104,10 @@
         SELECT
         SELECT
         a.id,
         a.id,
         a.deviceName,
         a.deviceName,
-        <foreach collection="list" item="fieldDisplay"   open=" " separator="," close=" ">
+        <foreach collection="list" item="fieldDisplay" open=" " separator="," close=" ">
             ${fieldDisplay}
             ${fieldDisplay}
         </foreach>
         </foreach>
-                ,
+        ,
         FROM_UNIXTIME(
         FROM_UNIXTIME(
         UNIX_TIMESTAMP(a.dataTime),
         UNIX_TIMESTAMP(a.dataTime),
         '%m-%d %H:%i'
         '%m-%d %H:%i'
@@ -1000,11 +1121,11 @@
         JOIN device_attribute AS d ON c.monitoring_equipment = d.id
         JOIN device_attribute AS d ON c.monitoring_equipment = d.id
         <where>
         <where>
             and a.deviceName in
             and a.deviceName in
-            <foreach item="item"  collection="deviceCode" open="(" separator="," close=")">
+            <foreach item="item" collection="deviceCode" open="(" separator="," close=")">
                 #{item.displayField}
                 #{item.displayField}
             </foreach>
             </foreach>
             AND c.variable_coding in
             AND c.variable_coding in
-            <foreach item="item"  collection="variableCoding" open="(" separator="," close=")">
+            <foreach item="item" collection="variableCoding" open="(" separator="," close=")">
                 #{item.variableCoding}
                 #{item.variableCoding}
             </foreach>
             </foreach>
             <if test="endTime != null and startTime != null and endTime != '' and startTime != ''">
             <if test="endTime != null and startTime != null and endTime != '' and startTime != ''">

+ 19 - 5
fiveep-service/src/main/java/com/bizmatics/service/HtAnalogDataService.java

@@ -3,15 +3,18 @@ package com.bizmatics.service;
 import com.bizmatics.common.mvc.base.CrudService;
 import com.bizmatics.common.mvc.base.CrudService;
 import com.bizmatics.model.HtAnalogData;
 import com.bizmatics.model.HtAnalogData;
 import com.bizmatics.model.vo.DataManagementOneVO;
 import com.bizmatics.model.vo.DataManagementOneVO;
-import com.bizmatics.model.vo.DataManagementVO;
-import com.bizmatics.service.vo.*;
+import com.bizmatics.model.vo.HtAnalogDataOneVo;
+import com.bizmatics.service.vo.CommonIcoVO;
+import com.bizmatics.service.vo.HadCountVO;
+import com.bizmatics.service.vo.RealScoreVO;
+import com.bizmatics.service.vo.TimeShareVO;
 
 
 import java.util.Date;
 import java.util.Date;
 import java.util.List;
 import java.util.List;
 
 
 /**
 /**
  * <p>
  * <p>
- *  服务类
+ * 服务类
  * </p>
  * </p>
  *
  *
  * @author ya
  * @author ya
@@ -22,12 +25,14 @@ public interface HtAnalogDataService extends CrudService<HtAnalogData> {
 
 
     /**
     /**
      * 日/月/年用电量
      * 日/月/年用电量
+     *
      * @return
      * @return
      */
      */
     HadCountVO selectCount();
     HadCountVO selectCount();
 
 
     /**
     /**
      * 用电趋势图
      * 用电趋势图
+     *
      * @param siteId
      * @param siteId
      * @return
      * @return
      */
      */
@@ -36,14 +41,15 @@ public interface HtAnalogDataService extends CrudService<HtAnalogData> {
 
 
     /**
     /**
      * 用电趋势图
      * 用电趋势图
+     *
      * @return
      * @return
      */
      */
     List<CommonIcoVO> selectTrendByMonth();
     List<CommonIcoVO> selectTrendByMonth();
 
 
 
 
-
     /**
     /**
      * 站点日/月/年用电量
      * 站点日/月/年用电量
+     *
      * @return
      * @return
      */
      */
     HadCountVO getCountBySite(Integer siteId);
     HadCountVO getCountBySite(Integer siteId);
@@ -51,6 +57,7 @@ public interface HtAnalogDataService extends CrudService<HtAnalogData> {
 
 
     /**
     /**
      * 分时电量
      * 分时电量
+     *
      * @param siteId
      * @param siteId
      * @param type
      * @param type
      * @return
      * @return
@@ -59,6 +66,7 @@ public interface HtAnalogDataService extends CrudService<HtAnalogData> {
 
 
     /**
     /**
      * 需量趋势图
      * 需量趋势图
+     *
      * @param siteId
      * @param siteId
      * @return
      * @return
      */
      */
@@ -66,14 +74,16 @@ public interface HtAnalogDataService extends CrudService<HtAnalogData> {
 
 
     /**
     /**
      * 电流
      * 电流
+     *
      * @param siteId
      * @param siteId
      * @param date
      * @param date
      * @return
      * @return
      */
      */
-    List<CommonIcoVO> getElectricIco(Integer siteId,Date date);
+    List<CommonIcoVO> getElectricIco(Integer siteId, Date date);
 
 
     /**
     /**
      * 根据设备和时间查看电流电压
      * 根据设备和时间查看电流电压
+     *
      * @param deviceCode
      * @param deviceCode
      * @param startTime
      * @param startTime
      * @param endTime
      * @param endTime
@@ -89,5 +99,9 @@ public interface HtAnalogDataService extends CrudService<HtAnalogData> {
 
 
     List<CommonIcoVO> demandAnalysis(String deviceCode, String monthDate, int cycle);
     List<CommonIcoVO> demandAnalysis(String deviceCode, String monthDate, int cycle);
 
 
+    String monthlyReportExport(String deviceCode, String startTime, String endTime, int cycle);
+
+    List<HtAnalogDataOneVo> monthlyReportlist(String deviceCode, String startTime, String endTime, int cycle, Integer startCurrent);
+
 
 
 }
 }

+ 137 - 75
fiveep-service/src/main/java/com/bizmatics/service/impl/HtAnalogDataServiceImpl.java

@@ -1,5 +1,7 @@
 package com.bizmatics.service.impl;
 package com.bizmatics.service.impl;
 
 
+import cn.afterturn.easypoi.excel.ExcelExportUtil;
+import cn.afterturn.easypoi.excel.entity.ExportParams;
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.baomidou.mybatisplus.core.toolkit.CollectionUtils;
 import com.baomidou.mybatisplus.core.toolkit.CollectionUtils;
 import com.baomidou.mybatisplus.core.toolkit.Wrappers;
 import com.baomidou.mybatisplus.core.toolkit.Wrappers;
@@ -7,24 +9,28 @@ import com.bizmatics.common.core.exception.BusinessException;
 import com.bizmatics.common.core.util.Arith;
 import com.bizmatics.common.core.util.Arith;
 import com.bizmatics.common.core.util.BeanMapperUtils;
 import com.bizmatics.common.core.util.BeanMapperUtils;
 import com.bizmatics.common.core.util.DateUtils;
 import com.bizmatics.common.core.util.DateUtils;
+import com.bizmatics.common.core.util.FileUtils;
 import com.bizmatics.common.mvc.base.AbstractCrudService;
 import com.bizmatics.common.mvc.base.AbstractCrudService;
+import com.bizmatics.common.spring.util.GlobalUtils;
 import com.bizmatics.common.spring.util.JsonUtils;
 import com.bizmatics.common.spring.util.JsonUtils;
 import com.bizmatics.model.*;
 import com.bizmatics.model.*;
 import com.bizmatics.model.vo.DataManagementOneVO;
 import com.bizmatics.model.vo.DataManagementOneVO;
 import com.bizmatics.model.vo.DataManagementVO;
 import com.bizmatics.model.vo.DataManagementVO;
+import com.bizmatics.model.vo.HtAnalogDataOneVo;
 import com.bizmatics.model.vo.HtAnalogDataVo;
 import com.bizmatics.model.vo.HtAnalogDataVo;
 import com.bizmatics.persistence.mapper.HtAnalogDataMapper;
 import com.bizmatics.persistence.mapper.HtAnalogDataMapper;
 import com.bizmatics.service.*;
 import com.bizmatics.service.*;
 import com.bizmatics.service.util.FieldEscapeUtils;
 import com.bizmatics.service.util.FieldEscapeUtils;
 import com.bizmatics.service.util.SecurityUtils;
 import com.bizmatics.service.util.SecurityUtils;
-import com.bizmatics.service.vo.CommonIcoVO;
-import com.bizmatics.service.vo.HadCountVO;
-import com.bizmatics.service.vo.RealScoreVO;
-import com.bizmatics.service.vo.TimeShareVO;
+import com.bizmatics.service.vo.*;
 import com.fasterxml.jackson.core.type.TypeReference;
 import com.fasterxml.jackson.core.type.TypeReference;
+import org.apache.poi.ss.usermodel.Workbook;
 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.io.File;
+import java.io.FileOutputStream;
+import java.io.IOException;
 import java.math.BigDecimal;
 import java.math.BigDecimal;
 import java.text.SimpleDateFormat;
 import java.text.SimpleDateFormat;
 import java.util.*;
 import java.util.*;
@@ -288,33 +294,33 @@ public class HtAnalogDataServiceImpl extends AbstractCrudService<HtAnalogDataMap
     @Override
     @Override
     public List<RealScoreVO> rtRealScore(String deviceCode, Date startTime, Date endTime) {
     public List<RealScoreVO> rtRealScore(String deviceCode, Date startTime, Date endTime) {
         LambdaQueryWrapper<HtAnalogData> queryWrapper = Wrappers.lambdaQuery();
         LambdaQueryWrapper<HtAnalogData> queryWrapper = Wrappers.lambdaQuery();
-        queryWrapper.select(HtAnalogData::getIa,HtAnalogData::getIb,HtAnalogData::getIc,
-                HtAnalogData::getUa,HtAnalogData::getUb,HtAnalogData::getUc,HtAnalogData::getDataTime,
+        queryWrapper.select(HtAnalogData::getIa, HtAnalogData::getIb, HtAnalogData::getIc,
+                HtAnalogData::getUa, HtAnalogData::getUb, HtAnalogData::getUc, HtAnalogData::getDataTime,
                 HtAnalogData::getCos)
                 HtAnalogData::getCos)
-                .eq(HtAnalogData::getDeviceName,deviceCode)
-                .between(HtAnalogData::getDataTime,startTime,endTime);
+                .eq(HtAnalogData::getDeviceName, deviceCode)
+                .between(HtAnalogData::getDataTime, startTime, endTime);
         List<HtAnalogData> list = this.list(queryWrapper);
         List<HtAnalogData> list = this.list(queryWrapper);
         //查询设备
         //查询设备
         LambdaQueryWrapper<Device> deviceQuery = Wrappers.lambdaQuery();
         LambdaQueryWrapper<Device> deviceQuery = Wrappers.lambdaQuery();
-        deviceQuery.eq(Device::getDeviceCode,deviceCode);
+        deviceQuery.eq(Device::getDeviceCode, deviceCode);
         Device device = deviceService.getOne(deviceQuery);
         Device device = deviceService.getOne(deviceQuery);
         Optional.ofNullable(device).orElseThrow(() -> new BusinessException("设备不存在"));
         Optional.ofNullable(device).orElseThrow(() -> new BusinessException("设备不存在"));
         //查询sd
         //查询sd
         LambdaQueryWrapper<SiteDynamicProperties> sdQuery = Wrappers.lambdaQuery();
         LambdaQueryWrapper<SiteDynamicProperties> sdQuery = Wrappers.lambdaQuery();
-        sdQuery.eq(SiteDynamicProperties::getSiteId,device.getSiteId());
+        sdQuery.eq(SiteDynamicProperties::getSiteId, device.getSiteId());
         SiteDynamicProperties siteDynamicProperties = siteDynamicPropertiesService.getOne(sdQuery);
         SiteDynamicProperties siteDynamicProperties = siteDynamicPropertiesService.getOne(sdQuery);
         Optional.ofNullable(siteDynamicProperties).orElseThrow(() -> new BusinessException("sd不存在"));
         Optional.ofNullable(siteDynamicProperties).orElseThrow(() -> new BusinessException("sd不存在"));
         LambdaQueryWrapper<DeviceAttribute> adQuery = Wrappers.lambdaQuery();
         LambdaQueryWrapper<DeviceAttribute> adQuery = Wrappers.lambdaQuery();
-        adQuery.eq(DeviceAttribute::getSiteId,device.getSiteId());
+        adQuery.eq(DeviceAttribute::getSiteId, device.getSiteId());
         List<DeviceAttribute> deviceAttributes = deviceAttributeService.list(adQuery);
         List<DeviceAttribute> deviceAttributes = deviceAttributeService.list(adQuery);
-        if (CollectionUtils.isEmpty(deviceAttributes)){
+        if (CollectionUtils.isEmpty(deviceAttributes)) {
             throw new BusinessException("da不存在");
             throw new BusinessException("da不存在");
         }
         }
         DeviceAttribute deviceAttribute = deviceAttributes.stream().min(Comparator.comparing(DeviceAttribute::getId)).get();
         DeviceAttribute deviceAttribute = deviceAttributes.stream().min(Comparator.comparing(DeviceAttribute::getId)).get();
         List<RealScoreVO> realScoreVOS = new ArrayList<>();
         List<RealScoreVO> realScoreVOS = new ArrayList<>();
-        for (HtAnalogData htAnalogData:list) {
+        for (HtAnalogData htAnalogData : list) {
             RtAnalogData rtAnalogData = BeanMapperUtils.map(htAnalogData, RtAnalogData.class);
             RtAnalogData rtAnalogData = BeanMapperUtils.map(htAnalogData, RtAnalogData.class);
-            realScoreVOS.add(rtAnalogDataService.fillRealScoreData(rtAnalogData,siteDynamicProperties,deviceAttribute));
+            realScoreVOS.add(rtAnalogDataService.fillRealScoreData(rtAnalogData, siteDynamicProperties, deviceAttribute));
         }
         }
         return realScoreVOS;
         return realScoreVOS;
     }
     }
@@ -337,57 +343,57 @@ public class HtAnalogDataServiceImpl extends AbstractCrudService<HtAnalogDataMap
             newListOne.add(dataManagementOneVO.getDisplayField().get(i).split("_")[1]);
             newListOne.add(dataManagementOneVO.getDisplayField().get(i).split("_")[1]);
             newListTwo.add(dataManagementOneVO.getDisplayField().get(i).split("_")[2]);
             newListTwo.add(dataManagementOneVO.getDisplayField().get(i).split("_")[2]);
             fieldDisplay.add(dataManagementOneVO.getDisplayField().get(i).split("_")[1]);
             fieldDisplay.add(dataManagementOneVO.getDisplayField().get(i).split("_")[1]);
-            newListThree.add(dataManagementOneVO.getDisplayField().get(i).split("_")[1]+"_"+dataManagementOneVO.getDisplayField().get(i).split("_")[2]);
+            newListThree.add(dataManagementOneVO.getDisplayField().get(i).split("_")[1] + "_" + dataManagementOneVO.getDisplayField().get(i).split("_")[2]);
             DeviceAnalogVariableList deviceAnalogVariableList = new DeviceAnalogVariableList();
             DeviceAnalogVariableList deviceAnalogVariableList = new DeviceAnalogVariableList();
-            deviceAnalogVariableList.setVariableCoding(dataManagementOneVO.getDisplayField().get(i).split("_")[0]+"_"+dataManagementOneVO.getDisplayField().get(i).split("_")[1]);
+            deviceAnalogVariableList.setVariableCoding(dataManagementOneVO.getDisplayField().get(i).split("_")[0] + "_" + dataManagementOneVO.getDisplayField().get(i).split("_")[1]);
             variableCodingList.add(deviceAnalogVariableList);
             variableCodingList.add(deviceAnalogVariableList);
         }
         }
-        Set set = new  HashSet();
-        List<DataManagementVO> newList = new  ArrayList();
+        Set set = new HashSet();
+        List<DataManagementVO> newList = new ArrayList();
         set.addAll(dataManagementVOList);
         set.addAll(dataManagementVOList);
         newList.addAll(set);
         newList.addAll(set);
 
 
-        Set set1 = new  HashSet();
-        List<String> list = new  ArrayList();
+        Set set1 = new HashSet();
+        List<String> list = new ArrayList();
         set1.addAll(newListOne);
         set1.addAll(newListOne);
         list.addAll(set1);
         list.addAll(set1);
 
 
-        Set set2 = new  HashSet();
-        List<String> monitor_list = new  ArrayList();
+        Set set2 = new HashSet();
+        List<String> monitor_list = new ArrayList();
         set2.addAll(newListTwo);
         set2.addAll(newListTwo);
         monitor_list.addAll(set2);
         monitor_list.addAll(set2);
 
 
-        Set set3 = new  HashSet();
-        List<String> fieldDisplayOne = new  ArrayList();
+        Set set3 = new HashSet();
+        List<String> fieldDisplayOne = new ArrayList();
         set3.addAll(fieldDisplay);
         set3.addAll(fieldDisplay);
         fieldDisplayOne.addAll(set3);
         fieldDisplayOne.addAll(set3);
 
 
         if (dataManagementOneVO.getType() == 1) {
         if (dataManagementOneVO.getType() == 1) {
             if (dataManagementOneVO.getValueCalculation() == 1) {
             if (dataManagementOneVO.getValueCalculation() == 1) {
-                yearOnYearList = baseMapper.yearOnYearOne(newList, dataManagementOneVO.getStartTime(), dataManagementOneVO.getEndTime(),variableCodingList);
+                yearOnYearList = baseMapper.yearOnYearOne(newList, dataManagementOneVO.getStartTime(), dataManagementOneVO.getEndTime(), variableCodingList);
             } else if (dataManagementOneVO.getValueCalculation() == 2) {
             } else if (dataManagementOneVO.getValueCalculation() == 2) {
-                yearOnYearList = baseMapper.dayMaxDataList(newList, dataManagementOneVO.getStartTime(), dataManagementOneVO.getEndTime(),variableCodingList);
+                yearOnYearList = baseMapper.dayMaxDataList(newList, dataManagementOneVO.getStartTime(), dataManagementOneVO.getEndTime(), variableCodingList);
             } else if (dataManagementOneVO.getValueCalculation() == 3) {
             } else if (dataManagementOneVO.getValueCalculation() == 3) {
-                yearOnYearList = baseMapper.dayMinDataList(newList, dataManagementOneVO.getStartTime(), dataManagementOneVO.getEndTime(),variableCodingList);
+                yearOnYearList = baseMapper.dayMinDataList(newList, dataManagementOneVO.getStartTime(), dataManagementOneVO.getEndTime(), variableCodingList);
             } else if (dataManagementOneVO.getValueCalculation() == 4) {
             } else if (dataManagementOneVO.getValueCalculation() == 4) {
-                yearOnYearList = baseMapper.daySumDataList(newList, dataManagementOneVO.getStartTime(), dataManagementOneVO.getEndTime(),variableCodingList);
+                yearOnYearList = baseMapper.daySumDataList(newList, dataManagementOneVO.getStartTime(), dataManagementOneVO.getEndTime(), variableCodingList);
             }
             }
         } else if (dataManagementOneVO.getType() == 2) {
         } else if (dataManagementOneVO.getType() == 2) {
             if (dataManagementOneVO.getValueCalculation() == 1) {
             if (dataManagementOneVO.getValueCalculation() == 1) {
-                yearOnYearList = baseMapper.yearOnYearTwo(newList, dataManagementOneVO.getStartTime(), dataManagementOneVO.getEndTime(),variableCodingList);
+                yearOnYearList = baseMapper.yearOnYearTwo(newList, dataManagementOneVO.getStartTime(), dataManagementOneVO.getEndTime(), variableCodingList);
             } else if (dataManagementOneVO.getValueCalculation() == 2) {
             } else if (dataManagementOneVO.getValueCalculation() == 2) {
-                yearOnYearList = baseMapper.monthMaxDataList(newList, dataManagementOneVO.getStartTime(), dataManagementOneVO.getEndTime(),variableCodingList);
+                yearOnYearList = baseMapper.monthMaxDataList(newList, dataManagementOneVO.getStartTime(), dataManagementOneVO.getEndTime(), variableCodingList);
             } else if (dataManagementOneVO.getValueCalculation() == 3) {
             } else if (dataManagementOneVO.getValueCalculation() == 3) {
-                yearOnYearList = baseMapper.monthMinDataList(newList, dataManagementOneVO.getStartTime(), dataManagementOneVO.getEndTime(),variableCodingList);
+                yearOnYearList = baseMapper.monthMinDataList(newList, dataManagementOneVO.getStartTime(), dataManagementOneVO.getEndTime(), variableCodingList);
             } else if (dataManagementOneVO.getValueCalculation() == 4) {
             } else if (dataManagementOneVO.getValueCalculation() == 4) {
-                yearOnYearList = baseMapper.monthSumDataList(newList, dataManagementOneVO.getStartTime(), dataManagementOneVO.getEndTime(),variableCodingList);
+                yearOnYearList = baseMapper.monthSumDataList(newList, dataManagementOneVO.getStartTime(), dataManagementOneVO.getEndTime(), variableCodingList);
             }
             }
         } else {
         } else {
-            yearOnYearList = baseMapper.yearOnYearThree(newList, dataManagementOneVO.getStartTime(), dataManagementOneVO.getEndTime(),variableCodingList,fieldDisplayOne);
+            yearOnYearList = baseMapper.yearOnYearThree(newList, dataManagementOneVO.getStartTime(), dataManagementOneVO.getEndTime(), variableCodingList, fieldDisplayOne);
         }
         }
         FieldEscapeUtils.remove1(list);
         FieldEscapeUtils.remove1(list);
         List<CommonIcoVO> reListOne = new ArrayList<>();
         List<CommonIcoVO> reListOne = new ArrayList<>();
-        if (yearOnYearList!=null && !yearOnYearList.isEmpty()){
+        if (yearOnYearList != null && !yearOnYearList.isEmpty()) {
             for (int i = 0; i < monitor_list.size(); i++) {
             for (int i = 0; i < monitor_list.size(); i++) {
                 for (int j = 0; j < list.size(); j++) {
                 for (int j = 0; j < list.size(); j++) {
                     List<Object> data = new ArrayList<>();
                     List<Object> data = new ArrayList<>();
@@ -395,20 +401,20 @@ public class HtAnalogDataServiceImpl extends AbstractCrudService<HtAnalogDataMap
                     List<Object> time = new ArrayList<>();
                     List<Object> time = new ArrayList<>();
                     for (int k = 0; k < yearOnYearList.size(); k++) {
                     for (int k = 0; k < yearOnYearList.size(); k++) {
                         String variable_one = list.get(j) + "_" + monitor_list.get(i);
                         String variable_one = list.get(j) + "_" + monitor_list.get(i);
-                        String variable_two = list.get(j)+"_"+yearOnYearList.get(k).getDeviceAttributeId();
-                        System.out.println("variable_one:"+variable_one+"---variable_two:"+variable_two);
-                        if (variable_one.equals(variable_two)){
-                            String variable_three = list.get(j)+"_"+yearOnYearList.get(k).getDeviceAttributeId();
-                            System.out.println("variable_one_a:"+newListThree+"---variable_two_b:"+variable_three+"---value:"+newListThree.contains(variable_three));
-                            if (newListThree.contains(variable_three)){
+                        String variable_two = list.get(j) + "_" + yearOnYearList.get(k).getDeviceAttributeId();
+                        System.out.println("variable_one:" + variable_one + "---variable_two:" + variable_two);
+                        if (variable_one.equals(variable_two)) {
+                            String variable_three = list.get(j) + "_" + yearOnYearList.get(k).getDeviceAttributeId();
+                            System.out.println("variable_one_a:" + newListThree + "---variable_two_b:" + variable_three + "---value:" + newListThree.contains(variable_three));
+                            if (newListThree.contains(variable_three)) {
                                 name = yearOnYearList.get(k).getMonitorDeviceName() + "/" + FieldEscapeUtils.fieldEscapeUtils(list.get(j));
                                 name = yearOnYearList.get(k).getMonitorDeviceName() + "/" + FieldEscapeUtils.fieldEscapeUtils(list.get(j));
                                 time.add(yearOnYearList.get(k).getDataTime());
                                 time.add(yearOnYearList.get(k).getDataTime());
 //                                System.out.println();
 //                                System.out.println();
-                                data.add(FieldEscapeUtils.transformation(yearOnYearList.get(k),list.get(j)));
+                                data.add(FieldEscapeUtils.transformation(yearOnYearList.get(k), list.get(j)));
                             }
                             }
                         }
                         }
                     }
                     }
-                    if (data!=null && !data.isEmpty()){
+                    if (data != null && !data.isEmpty()) {
                         reListOne.add(CommonIcoVO.builder().name(name).list(data).listDate(time).build());
                         reListOne.add(CommonIcoVO.builder().name(name).list(data).listDate(time).build());
                     }
                     }
 
 
@@ -437,28 +443,28 @@ public class HtAnalogDataServiceImpl extends AbstractCrudService<HtAnalogDataMap
             newListOne.add(dataManagementOneVO.getDisplayField().get(i).split("_")[1]);
             newListOne.add(dataManagementOneVO.getDisplayField().get(i).split("_")[1]);
             fieldDisplay.add(dataManagementOneVO.getDisplayField().get(i).split("_")[1]);
             fieldDisplay.add(dataManagementOneVO.getDisplayField().get(i).split("_")[1]);
             newListTwo.add(dataManagementOneVO.getDisplayField().get(i).split("_")[2]);
             newListTwo.add(dataManagementOneVO.getDisplayField().get(i).split("_")[2]);
-            newListThree.add(dataManagementOneVO.getDisplayField().get(i).split("_")[1]+"_"+dataManagementOneVO.getDisplayField().get(i).split("_")[2]);
+            newListThree.add(dataManagementOneVO.getDisplayField().get(i).split("_")[1] + "_" + dataManagementOneVO.getDisplayField().get(i).split("_")[2]);
             DeviceAnalogVariableList deviceAnalogVariableList = new DeviceAnalogVariableList();
             DeviceAnalogVariableList deviceAnalogVariableList = new DeviceAnalogVariableList();
-            deviceAnalogVariableList.setVariableCoding(dataManagementOneVO.getDisplayField().get(i).split("_")[0]+"_"+dataManagementOneVO.getDisplayField().get(i).split("_")[1]);
+            deviceAnalogVariableList.setVariableCoding(dataManagementOneVO.getDisplayField().get(i).split("_")[0] + "_" + dataManagementOneVO.getDisplayField().get(i).split("_")[1]);
             variableCodingList.add(deviceAnalogVariableList);
             variableCodingList.add(deviceAnalogVariableList);
         }
         }
-        Set set = new  HashSet();
-        List<DataManagementVO> newList = new  ArrayList();
+        Set set = new HashSet();
+        List<DataManagementVO> newList = new ArrayList();
         set.addAll(dataManagementVOList);
         set.addAll(dataManagementVOList);
         newList.addAll(set);
         newList.addAll(set);
 
 
-        Set set1 = new  HashSet();
-        List<String> list = new  ArrayList();
+        Set set1 = new HashSet();
+        List<String> list = new ArrayList();
         set1.addAll(newListOne);
         set1.addAll(newListOne);
         list.addAll(set1);
         list.addAll(set1);
 
 
-        Set set2 = new  HashSet();
-        List<String> monitor_list = new  ArrayList();
+        Set set2 = new HashSet();
+        List<String> monitor_list = new ArrayList();
         set2.addAll(newListTwo);
         set2.addAll(newListTwo);
         monitor_list.addAll(set2);
         monitor_list.addAll(set2);
 
 
-        Set set3 = new  HashSet();
-        List<String> fieldDisplayOne = new  ArrayList();
+        Set set3 = new HashSet();
+        List<String> fieldDisplayOne = new ArrayList();
         set3.addAll(fieldDisplay);
         set3.addAll(fieldDisplay);
         fieldDisplayOne.addAll(set3);
         fieldDisplayOne.addAll(set3);
 
 
@@ -470,32 +476,32 @@ public class HtAnalogDataServiceImpl extends AbstractCrudService<HtAnalogDataMap
 //        String lastPeriodStartTime = sfOne.format(new Date(startLong - (interval * 14)));
 //        String lastPeriodStartTime = sfOne.format(new Date(startLong - (interval * 14)));
         if (dataManagementOneVO.getType() == 1) {
         if (dataManagementOneVO.getType() == 1) {
             if (dataManagementOneVO.getValueCalculation() == 1) {
             if (dataManagementOneVO.getValueCalculation() == 1) {
-                currentPeriodRingRatioList = baseMapper.yearOnYearOne(newList, dataManagementOneVO.getStartTime(), dataManagementOneVO.getEndTime(),variableCodingList);
+                currentPeriodRingRatioList = baseMapper.yearOnYearOne(newList, dataManagementOneVO.getStartTime(), dataManagementOneVO.getEndTime(), variableCodingList);
             } else if (dataManagementOneVO.getValueCalculation() == 2) {
             } else if (dataManagementOneVO.getValueCalculation() == 2) {
-                currentPeriodRingRatioList = baseMapper.dayMaxDataList(newList, dataManagementOneVO.getStartTime(), dataManagementOneVO.getEndTime(),variableCodingList);
+                currentPeriodRingRatioList = baseMapper.dayMaxDataList(newList, dataManagementOneVO.getStartTime(), dataManagementOneVO.getEndTime(), variableCodingList);
             } else if (dataManagementOneVO.getValueCalculation() == 3) {
             } else if (dataManagementOneVO.getValueCalculation() == 3) {
-                currentPeriodRingRatioList = baseMapper.dayMinDataList(newList, dataManagementOneVO.getStartTime(), dataManagementOneVO.getEndTime(),variableCodingList);
+                currentPeriodRingRatioList = baseMapper.dayMinDataList(newList, dataManagementOneVO.getStartTime(), dataManagementOneVO.getEndTime(), variableCodingList);
             } else if (dataManagementOneVO.getValueCalculation() == 4) {
             } else if (dataManagementOneVO.getValueCalculation() == 4) {
-                currentPeriodRingRatioList = baseMapper.daySumDataList(newList, dataManagementOneVO.getStartTime(), dataManagementOneVO.getEndTime(),variableCodingList);
+                currentPeriodRingRatioList = baseMapper.daySumDataList(newList, dataManagementOneVO.getStartTime(), dataManagementOneVO.getEndTime(), variableCodingList);
             }
             }
         } else if (dataManagementOneVO.getType() == 2) {
         } else if (dataManagementOneVO.getType() == 2) {
             if (dataManagementOneVO.getValueCalculation() == 1) {
             if (dataManagementOneVO.getValueCalculation() == 1) {
-                currentPeriodRingRatioList = baseMapper.yearOnYearTwo(newList, dataManagementOneVO.getStartTime(), dataManagementOneVO.getEndTime(),variableCodingList);
+                currentPeriodRingRatioList = baseMapper.yearOnYearTwo(newList, dataManagementOneVO.getStartTime(), dataManagementOneVO.getEndTime(), variableCodingList);
             } else if (dataManagementOneVO.getValueCalculation() == 2) {
             } else if (dataManagementOneVO.getValueCalculation() == 2) {
-                currentPeriodRingRatioList = baseMapper.monthMaxDataList(newList, dataManagementOneVO.getStartTime(), dataManagementOneVO.getEndTime(),variableCodingList);
+                currentPeriodRingRatioList = baseMapper.monthMaxDataList(newList, dataManagementOneVO.getStartTime(), dataManagementOneVO.getEndTime(), variableCodingList);
             } else if (dataManagementOneVO.getValueCalculation() == 3) {
             } else if (dataManagementOneVO.getValueCalculation() == 3) {
-                currentPeriodRingRatioList = baseMapper.monthMinDataList(newList, dataManagementOneVO.getStartTime(), dataManagementOneVO.getEndTime(),variableCodingList);
+                currentPeriodRingRatioList = baseMapper.monthMinDataList(newList, dataManagementOneVO.getStartTime(), dataManagementOneVO.getEndTime(), variableCodingList);
             } else if (dataManagementOneVO.getValueCalculation() == 4) {
             } else if (dataManagementOneVO.getValueCalculation() == 4) {
-                currentPeriodRingRatioList = baseMapper.monthSumDataList(newList, dataManagementOneVO.getStartTime(), dataManagementOneVO.getEndTime(),variableCodingList);
+                currentPeriodRingRatioList = baseMapper.monthSumDataList(newList, dataManagementOneVO.getStartTime(), dataManagementOneVO.getEndTime(), variableCodingList);
             }
             }
         } else {
         } else {
 //            String[] a={"Epn3","Epp"};
 //            String[] a={"Epn3","Epp"};
-            currentPeriodRingRatioList = baseMapper.yearOnYearThree(newList, dataManagementOneVO.getStartTime(), dataManagementOneVO.getEndTime(),variableCodingList,fieldDisplayOne);
+            currentPeriodRingRatioList = baseMapper.yearOnYearThree(newList, dataManagementOneVO.getStartTime(), dataManagementOneVO.getEndTime(), variableCodingList, fieldDisplayOne);
         }
         }
 
 
         FieldEscapeUtils.remove1(list);
         FieldEscapeUtils.remove1(list);
         List<CommonIcoVO> reListOne = new ArrayList<>();
         List<CommonIcoVO> reListOne = new ArrayList<>();
-        if (currentPeriodRingRatioList!=null && !currentPeriodRingRatioList.isEmpty()){
+        if (currentPeriodRingRatioList != null && !currentPeriodRingRatioList.isEmpty()) {
             for (int i = 0; i < monitor_list.size(); i++) {
             for (int i = 0; i < monitor_list.size(); i++) {
                 for (int j = 0; j < list.size(); j++) {
                 for (int j = 0; j < list.size(); j++) {
                     List<Object> data = new ArrayList<>();
                     List<Object> data = new ArrayList<>();
@@ -503,20 +509,20 @@ public class HtAnalogDataServiceImpl extends AbstractCrudService<HtAnalogDataMap
                     List<Object> time = new ArrayList<>();
                     List<Object> time = new ArrayList<>();
                     for (int k = 0; k < currentPeriodRingRatioList.size(); k++) {
                     for (int k = 0; k < currentPeriodRingRatioList.size(); k++) {
                         String variable_one = list.get(j) + "_" + monitor_list.get(i);
                         String variable_one = list.get(j) + "_" + monitor_list.get(i);
-                        String variable_two = list.get(j)+"_"+currentPeriodRingRatioList.get(k).getDeviceAttributeId();
-                        System.out.println("variable_one:"+variable_one+"---variable_two:"+variable_two);
-                        if (variable_one.equals(variable_two)){
-                            String variable_three = list.get(j)+"_"+currentPeriodRingRatioList.get(k).getDeviceAttributeId();
-                            System.out.println("variable_one_a:"+newListThree+"---variable_two_b:"+variable_three+"---value:"+newListThree.contains(variable_three));
-                            if (newListThree.contains(variable_three)){
+                        String variable_two = list.get(j) + "_" + currentPeriodRingRatioList.get(k).getDeviceAttributeId();
+                        System.out.println("variable_one:" + variable_one + "---variable_two:" + variable_two);
+                        if (variable_one.equals(variable_two)) {
+                            String variable_three = list.get(j) + "_" + currentPeriodRingRatioList.get(k).getDeviceAttributeId();
+                            System.out.println("variable_one_a:" + newListThree + "---variable_two_b:" + variable_three + "---value:" + newListThree.contains(variable_three));
+                            if (newListThree.contains(variable_three)) {
                                 name = currentPeriodRingRatioList.get(k).getMonitorDeviceName() + "/" + FieldEscapeUtils.fieldEscapeUtils(list.get(j));
                                 name = currentPeriodRingRatioList.get(k).getMonitorDeviceName() + "/" + FieldEscapeUtils.fieldEscapeUtils(list.get(j));
                                 time.add(currentPeriodRingRatioList.get(k).getDataTime());
                                 time.add(currentPeriodRingRatioList.get(k).getDataTime());
 //                                System.out.println();
 //                                System.out.println();
-                                data.add(FieldEscapeUtils.transformation(currentPeriodRingRatioList.get(k),list.get(j)));
+                                data.add(FieldEscapeUtils.transformation(currentPeriodRingRatioList.get(k), list.get(j)));
                             }
                             }
                         }
                         }
                     }
                     }
-                    if (data!=null && !data.isEmpty()){
+                    if (data != null && !data.isEmpty()) {
                         reListOne.add(CommonIcoVO.builder().name(name).list(data).listDate(time).build());
                         reListOne.add(CommonIcoVO.builder().name(name).list(data).listDate(time).build());
                     }
                     }
 
 
@@ -545,12 +551,13 @@ public class HtAnalogDataServiceImpl extends AbstractCrudService<HtAnalogDataMap
         return list;
         return list;
     }
     }
 
 
+
     @Override
     @Override
     public List<CommonIcoVO> demandAnalysis(String deviceCode, String monthDate, int cycle) {
     public List<CommonIcoVO> demandAnalysis(String deviceCode, String monthDate, int cycle) {
         SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
         SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
         SimpleDateFormat formatter1 = new SimpleDateFormat("yyyy-MM-dd");
         SimpleDateFormat formatter1 = new SimpleDateFormat("yyyy-MM-dd");
         String date = FieldEscapeUtils.getLastDayOfMonth(monthDate);
         String date = FieldEscapeUtils.getLastDayOfMonth(monthDate);
-        String date1=monthDate+"-01 00:00:00";
+        String date1 = monthDate + "-01 00:00:00";
         String date2 = date + " 23:59:59";
         String date2 = date + " 23:59:59";
         Date startTime;
         Date startTime;
         Date endTime;
         Date endTime;
@@ -562,14 +569,14 @@ public class HtAnalogDataServiceImpl extends AbstractCrudService<HtAnalogDataMap
         }
         }
 
 
         LambdaQueryWrapper<HtAnalogData> queryWrapper = Wrappers.lambdaQuery();
         LambdaQueryWrapper<HtAnalogData> queryWrapper = Wrappers.lambdaQuery();
-        queryWrapper.select(HtAnalogData::getDemand,HtAnalogData::getFreezingTime)
-                .eq(HtAnalogData::getDeviceName,deviceCode)
-                .between(HtAnalogData::getFreezingTime,startTime,endTime)
+        queryWrapper.select(HtAnalogData::getDemand, HtAnalogData::getFreezingTime)
+                .eq(HtAnalogData::getDeviceName, deviceCode)
+                .between(HtAnalogData::getFreezingTime, startTime, endTime)
                 .groupBy(HtAnalogData::getFreezingTime);
                 .groupBy(HtAnalogData::getFreezingTime);
         List<HtAnalogData> list1 = this.list(queryWrapper);
         List<HtAnalogData> list1 = this.list(queryWrapper);
         List<Object> demandList = new ArrayList<>();
         List<Object> demandList = new ArrayList<>();
         List<Object> freezingTimesList = new ArrayList<>();
         List<Object> freezingTimesList = new ArrayList<>();
-        for (int i = 0; i < list1.size(); i++){
+        for (int i = 0; i < list1.size(); i++) {
             demandList.add(list1.get(i).getDemand());
             demandList.add(list1.get(i).getDemand());
             freezingTimesList.add(formatter1.format(list1.get(i).getFreezingTime()));
             freezingTimesList.add(formatter1.format(list1.get(i).getFreezingTime()));
         }
         }
@@ -587,4 +594,59 @@ public class HtAnalogDataServiceImpl extends AbstractCrudService<HtAnalogDataMap
         return list;
         return list;
     }
     }
 
 
+    @Override
+    public String monthlyReportExport(String deviceCode, String startTime, String endTime, int cycle) {
+        Workbook workbook = null;
+        File file = null;
+        try {
+            ExportParams params = new ExportParams(null, "用能月报");
+            workbook = ExcelExportUtil.exportBigExcel(params, HtAnalogDataTwoExportVo.class,
+                    (o, i) -> {
+                        int startCurrent = (i - 1) * 30;
+                        List<HtAnalogDataOneVo> listOne = this.monthlyReportlist(deviceCode, startTime, endTime, cycle, startCurrent);
+                        return new ArrayList<>(BeanMapperUtils.mapList(listOne, HtAnalogDataOneVo.class, HtAnalogDataTwoExportVo.class));
+                    }, null);
+            if (null != workbook) {
+                file = FileUtils.getFile(GlobalUtils.getTempBaseDir(), String.format("%s-%s.xlsx", "用能月报", System.currentTimeMillis() + ""));
+                FileUtils.createFile(file.getAbsolutePath());
+                FileOutputStream allListingFileOutputStream = new FileOutputStream(file);
+                workbook.write(allListingFileOutputStream);
+            } else {
+                throw new BusinessException("表格数据为空");
+            }
+        } catch (Exception e) {
+            log.error("导出文件失败", e);
+            throw new BusinessException("导出文件失败");
+        } finally {
+            if (workbook != null) {
+                try {
+                    workbook.close();
+                } catch (IOException e) {
+                    log.error("===export spec=== 关闭workbook失败", e);
+                }
+            }
+        }
+        return file.getName();
+    }
+
+
+    @Override
+    public List<HtAnalogDataOneVo> monthlyReportlist(String deviceCode, String startTime, String endTime, int cycle, Integer startCurrent) {
+        List<HtAnalogDataOneVo> listOne = new ArrayList<>();
+        List<HtAnalogDataOneVo> maxMonthlyReport = baseMapper.energyUseListOne(deviceCode, startTime, endTime, cycle, 1, 30, startCurrent);
+        List<HtAnalogDataOneVo> minMonthlyReport = baseMapper.energyUseListOne(deviceCode, startTime, endTime, cycle, 2, 30, startCurrent);
+        if (maxMonthlyReport.size() > 0) {
+            for (int j = 0; j < maxMonthlyReport.size(); j++) {
+                HtAnalogDataOneVo htAnalogDataOneVo = new HtAnalogDataOneVo();
+                BigDecimal b1 = new BigDecimal(maxMonthlyReport.get(j).getEpp().toString());
+                BigDecimal b2 = new BigDecimal(minMonthlyReport.get(j).getEpp().toString());
+                htAnalogDataOneVo.setEpp(b1.subtract(b2).doubleValue());
+//                htAnalogDataOneVo.setEpp("0.01");
+                htAnalogDataOneVo.setFreezingTime(maxMonthlyReport.get(j).getFreezingTime());
+                listOne.add(htAnalogDataOneVo);
+            }
+        }
+        return listOne;
+    }
+
 }
 }

+ 29 - 0
fiveep-service/src/main/java/com/bizmatics/service/vo/HtAnalogDataTwoExportVo.java

@@ -0,0 +1,29 @@
+package com.bizmatics.service.vo;
+
+import cn.afterturn.easypoi.excel.annotation.Excel;
+import lombok.Data;
+
+import java.util.Date;
+
+/**
+ * <p>
+ *
+ * </p>
+ *
+ * @author ya
+ * @since 2021-07-07
+ */
+@Data
+public class HtAnalogDataTwoExportVo {
+
+    private Integer id;
+
+
+    @Excel(name = "电量one", height = 6, width = 20)
+    private Double Epp;
+
+
+    @Excel(name = "名称", height = 6, width = 20)
+    private Date freezingTime;
+
+}