Browse Source

数据管理-用能月报-用电统计图查询

jichaobo 3 years ago
parent
commit
ba92c41188

+ 8 - 0
fiveep-controller/src/main/java/com/bizmatics/controller/web/HtAnalogDataController.java

@@ -117,5 +117,13 @@ public class HtAnalogDataController {
     public ApiResult<List<CommonIcoOneVO>> ringRatioList(@RequestBody DataManagementVO dataManagementVO) {
         return ApiResult.success(htAnalogDataService.ringRatioList(dataManagementVO));
     }
+
+    @GetMapping("monthlyReport")
+    public ApiResult<List<CommonIcoVO>> monthlyReport(@RequestParam String deviceCode,
+                                                         @RequestParam int cycle,
+                                                         @RequestParam String startTime,
+                                                         @RequestParam String endTime) {
+        return ApiResult.success(htAnalogDataService.monthlyReport(deviceCode, cycle, startTime, endTime));
+    }
 }
 

+ 18 - 12
fiveep-persistence/src/main/java/com/bizmatics/persistence/mapper/HtAnalogDataMapper.java

@@ -62,20 +62,20 @@ public interface HtAnalogDataMapper extends CrudMapper<HtAnalogData> {
                                           @Param("endTime") Date endTime);
 
     List<HtAnalogDataVo> yearOnYearOne(@Param("deviceCode") String deviceCode,
-                                     @Param("startTime") String startTime,
-                                     @Param("endTime") String endTime);
+                                       @Param("startTime") String startTime,
+                                       @Param("endTime") String endTime);
 
     List<HtAnalogDataVo> yearOnYearTwo(@Param("deviceCode") String deviceCode,
                                        @Param("startTime") String startTime,
                                        @Param("endTime") String endTime);
 
     List<HtAnalogDataVo> yearOnYearThree(@Param("deviceCode") String deviceCode,
-                                       @Param("startTime") String startTime,
-                                       @Param("endTime") String endTime);
+                                         @Param("startTime") String startTime,
+                                         @Param("endTime") String endTime);
 
     List<HtAnalogDataVo> dayMaxDataList(@Param("deviceCode") String deviceCode,
-                                       @Param("startTime") String startTime,
-                                       @Param("endTime") String endTime);
+                                        @Param("startTime") String startTime,
+                                        @Param("endTime") String endTime);
 
     List<HtAnalogDataVo> dayMinDataList(@Param("deviceCode") String deviceCode,
                                         @Param("startTime") String startTime,
@@ -86,15 +86,21 @@ public interface HtAnalogDataMapper extends CrudMapper<HtAnalogData> {
                                         @Param("endTime") String endTime);
 
     List<HtAnalogDataVo> monthMaxDataList(@Param("deviceCode") String deviceCode,
-                                        @Param("startTime") String startTime,
-                                        @Param("endTime") String endTime);
+                                          @Param("startTime") String startTime,
+                                          @Param("endTime") String endTime);
 
     List<HtAnalogDataVo> monthMinDataList(@Param("deviceCode") String deviceCode,
-                                        @Param("startTime") String startTime,
-                                        @Param("endTime") String endTime);
+                                          @Param("startTime") String startTime,
+                                          @Param("endTime") String endTime);
 
     List<HtAnalogDataVo> monthSumDataList(@Param("deviceCode") String deviceCode,
-                                        @Param("startTime") String startTime,
-                                        @Param("endTime") String endTime);
+                                          @Param("startTime") String startTime,
+                                          @Param("endTime") String endTime);
+
+    List<HtAnalogDataVo> energyUseList(@Param("deviceCode") String deviceCode,
+                                       @Param("startTime") String startTime,
+                                       @Param("endTime") String endTime,
+                                       @Param("cycle") int cycle,
+                                       @Param("sign") int sign);
 
 }

+ 111 - 0
fiveep-persistence/src/main/resources/mapper/mysql/HtAnalogDataMapper.xml

@@ -264,6 +264,117 @@
         GROUP BY freezingTimes
     </select>
 
+    <select id="energyUseList" resultType="com.bizmatics.model.vo.HtAnalogDataVo">
+        <if test="cycle == 1">
+        SELECT
+        b.id,
+        a.minid,
+        b.Epp,
+        freezingTime AS freezingTimes
+        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>
+        <if test="cycle == 2">
+            SELECT
+            b.id,
+            a.minid,
+            b.Epp,
+            FROM_UNIXTIME(
+            UNIX_TIMESTAMP(b.dataTime),
+            '%Y-%m'
+            ) AS freezingTimes
+            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>
+        <if test="cycle == 3">
+            SELECT
+            b.id,
+            a.minid,
+            b.Epp,
+            FROM_UNIXTIME(
+            UNIX_TIMESTAMP(b.dataTime),
+            '%Y-%m'
+            ) AS freezingTimes
+            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>
+    </select>
+
 
     <select id="yearOnYearThree" resultType="com.bizmatics.model.vo.HtAnalogDataVo">
         select

+ 2 - 0
fiveep-service/src/main/java/com/bizmatics/service/HtAnalogDataService.java

@@ -76,5 +76,7 @@ public interface HtAnalogDataService extends CrudService<HtAnalogData> {
 
     List<CommonIcoOneVO> ringRatioList(DataManagementVO dataManagementVO);
 
+    List<CommonIcoVO> monthlyReport(String deviceCode, int cycle, String startTime, String endTime);
+
 
 }

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

@@ -18,6 +18,8 @@ import com.fasterxml.jackson.core.type.TypeReference;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 
+import javax.swing.plaf.PanelUI;
+import java.math.BigDecimal;
 import java.text.SimpleDateFormat;
 import java.time.LocalDateTime;
 import java.util.*;
@@ -1037,4 +1039,22 @@ public class HtAnalogDataServiceImpl extends AbstractCrudService<HtAnalogDataMap
         return list;
     }
 
+    @Override
+    public List<CommonIcoVO> monthlyReport(String deviceCode, int cycle,String startTime,String endTime){
+        List<Object> eppList = new ArrayList<>();               List<Object> freezingTimesList = new ArrayList<>();
+        List<HtAnalogDataVo> maxMonthlyReport = baseMapper.energyUseList(deviceCode, startTime, endTime,cycle,1);
+        List<HtAnalogDataVo> minMonthlyReport = baseMapper.energyUseList(deviceCode, startTime, endTime,cycle,2);
+        if (maxMonthlyReport.size()>0){
+            for (int i = 0; i < maxMonthlyReport.size(); i++) {
+                BigDecimal b1 = new BigDecimal(maxMonthlyReport.get(i).getEpp().toString());
+                BigDecimal b2 = new BigDecimal(minMonthlyReport.get(i).getEpp().toString());
+                eppList.add(b1.subtract(b2).doubleValue());
+                freezingTimesList.add(maxMonthlyReport.get(i).getFreezingTimes());
+            }
+        }
+        List<CommonIcoVO> list = new ArrayList<>();
+        list.add(CommonIcoVO.builder().name("电量").list(eppList).listDate(freezingTimesList).build());
+        return list;
+    }
+
 }