From e1310d24b502fea752afb403b080aa4eda4046b0 Mon Sep 17 00:00:00 2001
From: jiangping <jp@doumee.com>
Date: 星期五, 15 十一月 2024 17:40:34 +0800
Subject: [PATCH] 最新版本541200007

---
 server/visits/dmvisit_service/src/main/java/com/doumee/core/haikang/model/param/request/RegionTopPowerRequest.java           |   14 +
 server/visits/dmvisit_service/src/main/java/com/doumee/core/haikang/model/param/respose/RegionTopPowerResponse.java          |   16 +
 server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/model/PlatformWaterGas.java                              |    7 
 server/visits/dmvisit_admin/src/main/java/com/doumee/cloud/board/EnergyController.java                                       |   75 +----
 server/visits/dmvisit_service/src/main/java/com/doumee/core/haikang/model/param/respose/RegionEnergyListResponse.java        |   19 +
 server/visits/dmvisit_service/src/main/java/com/doumee/core/haikang/model/param/respose/EnergyTrendYvalueResponse.java       |   10 
 server/visits/dmvisit_service/src/main/java/com/doumee/dao/web/response/platformReport/EnergyBoardVO.java                    |   76 ----
 server/visits/dmvisit_service/src/main/java/com/doumee/core/haikang/model/param/respose/EnergyTrendResponse.java             |   16 +
 server/visits/dmvisit_service/src/main/java/com/doumee/core/haikang/model/param/request/EnergyTrendRequest.java              |   13 +
 server/visits/dmvisit_service/src/main/java/com/doumee/core/haikang/model/param/respose/MonthDataByMeterTypeResponse.java    |   17 +
 server/visits/dmvisit_service/src/main/java/com/doumee/core/haikang/model/HKConstants.java                                   |    6 
 server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/thrid/BoardServiceImpl.java                     |  266 ++++++++++++++++++++
 server/visits/dmvisit_service/src/main/java/com/doumee/core/haikang/service/HKService.java                                   |  117 +++++++++
 server/visits/dmvisit_service/src/main/java/com/doumee/core/haikang/model/param/respose/EnergyTodayLoadDataResponse.java     |   10 
 server/visits/dmvisit_service/src/main/java/com/doumee/core/haikang/model/HKTools.java                                       |   43 +++
 server/visits/dmvisit_service/src/main/java/com/doumee/core/haikang/model/param/respose/LastMonthFeeByMeterTypeResponse.java |   19 +
 server/visits/dmvisit_service/src/main/java/com/doumee/service/business/third/BoardService.java                              |   11 
 server/visits/dmvisit_service/src/main/java/com/doumee/dao/web/response/platformReport/EnergyModelDataVO.java                |   31 ++
 18 files changed, 641 insertions(+), 125 deletions(-)

diff --git a/server/visits/dmvisit_admin/src/main/java/com/doumee/cloud/board/EnergyController.java b/server/visits/dmvisit_admin/src/main/java/com/doumee/cloud/board/EnergyController.java
index cd0e8be..e103374 100644
--- a/server/visits/dmvisit_admin/src/main/java/com/doumee/cloud/board/EnergyController.java
+++ b/server/visits/dmvisit_admin/src/main/java/com/doumee/cloud/board/EnergyController.java
@@ -2,12 +2,15 @@
 
 import com.doumee.api.BaseController;
 import com.doumee.config.annotation.LoginNoRequired;
+import com.doumee.core.haikang.model.param.respose.RegionEnergyListResponse;
 import com.doumee.core.model.ApiResponse;
 import com.doumee.core.utils.Constants;
 import com.doumee.dao.web.response.platformReport.*;
+import com.doumee.service.business.third.BoardService;
 import io.swagger.annotations.*;
 import lombok.extern.slf4j.Slf4j;
 import org.apache.commons.lang3.StringUtils;
+import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.web.bind.annotation.GetMapping;
 import org.springframework.web.bind.annotation.RequestMapping;
 import org.springframework.web.bind.annotation.RequestParam;
@@ -30,36 +33,16 @@
 @Slf4j
 @RequestMapping(Constants.CLOUD_SERVICE_URL_INDEX+"/board/api/energy")
 public class EnergyController extends BaseController {
-
+    @Autowired
+    private BoardService boardService;
 
     @LoginNoRequired
     @ApiOperation("涓績鏁版嵁")
     @GetMapping("/centerData")
     public ApiResponse<EnergyBoardVO> centerData() {
-        EnergyBoardVO data = new EnergyBoardVO();
-        Random random = new Random();
-        data.setSmokeBoxTotal(random.nextInt(20000));
-        data.setCarbon(new BigDecimal(random.nextInt(1000)));
-        data.setElectricityQuantity(random.nextInt(1000));
-        data.setElectricityYear(new BigDecimal(random.nextInt(10)));
-        data.setElectricityMonth(new BigDecimal(random.nextInt(10)));
 
-        data.setWaterQuantity(new BigDecimal(random.nextInt(1000)));
-        data.setWaterYear(new BigDecimal(random.nextInt(10)));
-        data.setWaterMonth(new BigDecimal(random.nextInt(10)));
+        EnergyBoardVO data =boardService.centerEnergyData();
 
-
-        data.setGasQuantity(new BigDecimal(random.nextInt(1000)));
-        data.setGasYear(new BigDecimal(random.nextInt(10)));
-        data.setGasMonth(new BigDecimal(random.nextInt(10)));
-
-        data.setOfficeQuantity(random.nextInt(20));
-        data.setPowerQuantity(random.nextInt(20));
-        data.setWorkHouseQuantity(random.nextInt(20));
-        data.setParkQuantity(random.nextInt(20));
-        data.setTodayElectricity(random.nextInt(20));
-        data.setMonthElectricity(random.nextInt(20));
-        data.setYesterdayElectricity(random.nextInt(20));
         return ApiResponse.success(data);
     }
 
@@ -68,17 +51,18 @@
 
 
     @LoginNoRequired
+    @ApiOperation("鐢ㄧ數鎬昏兘鑰楀悓姣斻�佺幆姣斿拰鍖哄煙鐢ㄧ數閲忛泦鍚�")
+    @GetMapping("/energyRegionData")
+    public ApiResponse< RegionEnergyListResponse> energyRegionData() {
+         RegionEnergyListResponse  data=boardService.energyRegionData();
+        return ApiResponse.success(data);
+    }
+    @LoginNoRequired
     @ApiOperation("瀹炴椂璐熻嵎鏇茬嚎")
     @GetMapping("/loadCurve")
     public ApiResponse<List<EnergyDataVO>> loadCurve() {
-        List<EnergyDataVO> loadCurveList = new ArrayList<>();
-        Random random = new Random();
-        for (int i = 1; i <= 23; i++) {
-            EnergyDataVO data = new EnergyDataVO();
-            data.setTimeData(StringUtils.leftPad(i+"",2,"0") +":00");
-            data.setEnergy(new BigDecimal(random.nextInt(200)));
-            loadCurveList.add(data);
-        }
+
+        List<EnergyDataVO> loadCurveList =boardService.loadEnergyCurve();
         return ApiResponse.success(loadCurveList);
     }
 
@@ -88,17 +72,10 @@
     @ApiOperation("鏈堣兘鑰椼�佹补鑰楀垎鏋�")
     @GetMapping("/energyDataList")
     @ApiImplicitParams({
-            @ApiImplicitParam(paramType = "query", dataType = "Integer", name = "type", value = "鏌ヨ绫诲瀷锛�0=姘达紱1=姘旓紱2=鐢碉紱3=娌硅��", required = true),
+            @ApiImplicitParam(paramType = "query", dataType = "Integer", name = "type", value = "鏌ヨ绫诲瀷锛�0=姘达紱1=姘旓紱2=娌硅�楋紱3=鐢ㄧ數", required = true),
     })
     public ApiResponse<List<EnergyDataVO>> energyDataList(@RequestParam Integer type) {
-        List<EnergyDataVO> energyDataVOList = new ArrayList<>();
-        Random random = new Random();
-        for (int i = 1; i <= 12; i++) {
-            EnergyDataVO data = new EnergyDataVO();
-            data.setTimeData(i +"鏈�");
-            data.setEnergy(new BigDecimal(random.nextInt(200)));
-            energyDataVOList.add(data);
-        }
+        List<EnergyDataVO> energyDataVOList = boardService.energyDataList(type);
         return ApiResponse.success(energyDataVOList);
     }
 
@@ -107,23 +84,7 @@
     @ApiOperation("涓婃湀娌硅�楁帓琛�")
     @GetMapping("/lastMonthOil")
     public ApiResponse<List<OilDataVO>> lastMonthOil() {
-        List<OilDataVO> oilDataVOList = new ArrayList<>();
-        Random random = new Random();
-        BigDecimal maxOil = BigDecimal.ZERO;
-        BigDecimal lastOil = BigDecimal.ZERO;
-        for (int i = 1; i <= 7; i++) {
-            OilDataVO oilDataVO = new OilDataVO();
-            oilDataVO.setCarNo("鐨朅8" + random.nextInt(9) + random.nextInt(9) + random.nextInt(9) + random.nextInt(9));
-            if(i==1){
-                oilDataVO.setQuantity(new BigDecimal(random.nextInt(100)));
-                maxOil = oilDataVO.getQuantity();
-            }else{
-                oilDataVO.setQuantity(new BigDecimal(random.nextInt(lastOil.intValue())));
-            }
-            lastOil = oilDataVO.getQuantity();
-            oilDataVO.setMaxOil(maxOil);
-            oilDataVOList.add(oilDataVO);
-        }
+        List<OilDataVO> oilDataVOList = boardService.energyLastMonthOilSort();
         return ApiResponse.success(oilDataVOList);
     }
 }
diff --git a/server/visits/dmvisit_service/src/main/java/com/doumee/core/haikang/model/HKConstants.java b/server/visits/dmvisit_service/src/main/java/com/doumee/core/haikang/model/HKConstants.java
index 6730e14..dad2856 100644
--- a/server/visits/dmvisit_service/src/main/java/com/doumee/core/haikang/model/HKConstants.java
+++ b/server/visits/dmvisit_service/src/main/java/com/doumee/core/haikang/model/HKConstants.java
@@ -150,6 +150,12 @@
         String[] getSecureDevStatusList= new String[]{"/api/secureDataService/v2/getSecureDevStatusList","瀹夐槻鐪嬫澘-鍥尯瀹夐槻璁惧-鍚勭被鍨嬭澶囩姸鎬佹暟鎹垪琛�"};//瀹夐槻鐪嬫澘-鍥尯瀹夐槻璁惧-鍚勭被鍨嬭澶囩姸鎬佹暟鎹垪琛�
         String[] getSecureDevStatusTotal= new String[]{"/api/secureDataService/v2/getSecureDevStatusTotal","缁熻鍥尯鎬讳綋鐨勫畨闃茶澶囨暟閲忥紝鍦ㄧ嚎鏁般�佸湪绾跨巼銆佺绾挎暟銆佺绾跨巼"};//缁熻鍥尯鎬讳綋鐨勫畨闃茶澶囨暟閲忥紝鍦ㄧ嚎鏁般�佸湪绾跨巼銆佺绾挎暟銆佺绾跨巼
         String[] getParkingStatistics= new String[]{"/api/dataBoardService/v1/getParkingStatistics","瀹夐槻鐪嬫澘--鍥尯瀹炴椂杞︽暟閲�4"};//瀹夐槻鐪嬫澘--鍥尯瀹炴椂杞︽暟閲�4
+        String[] getCurrentMonthDataByMeterType= new String[]{"/api/board/v1/getCurrentMonthDataByMeterType","鑳借�楃湅鏉�-1.鑾峰彇鏈湀鐢ㄨ兘鎬婚噺-鑷劧鏈�"};//鑳借�楃湅鏉�-1.鑾峰彇鏈湀鐢ㄨ兘鎬婚噺-鑷劧鏈�
+        String[] regionTopPower= new String[]{"/api/board/v1/region/topPower","鑳借�楃湅鏉�-2.鑾峰彇鍖哄煙鐢ㄨ兘鍓峃浣�"};//鑳借�楃湅鏉�-2.鑾峰彇鍖哄煙鐢ㄨ兘鍓峃浣�
+        String[] regionEnergyList= new String[]{"/api/board/v1/getRegionEnergyList","鑳借�楃湅鏉�-3.鑾峰彇鍚勫尯鍩熺敤鑳藉強鎬昏兘鑰�"};//鑳借�楃湅鏉�-3.鑾峰彇鍚勫尯鍩熺敤鑳藉強鎬昏兘鑰�
+        String[] lastMonthFeeByMeterType= new String[]{"/api/board/v1/getLastMonthFeeByMeterType","鑳借�楃湅鏉�-4.鑾峰彇涓婃湀鐢ㄨ兘璐圭敤锛屼竴澶╁埛鏂帮紝鍑屾櫒鏌愪釜鐐瑰埛"};//鑳借�楃湅鏉�-4.鑾峰彇涓婃湀鐢ㄨ兘璐圭敤锛屼竴澶╁埛鏂帮紝鍑屾櫒鏌愪釜鐐瑰埛
+        String[] energyTodayLoadData= new String[]{"/api/v1/exhibition/energy/getTodayLoadData","鑳借�楃湅鏉�-5.鍥尯瀹炴椂璐熻嵎鏇茬嚎"};//鑳借�楃湅鏉�-5.鍥尯瀹炴椂璐熻嵎鏇茬嚎
+        String[] energyTrend= new String[]{"/api/v1/report/energyTrend","鑳借�楃湅鏉�-6鎸夋湀鏌ヨ杩�12涓湀鐨勭敤鐢垫�婚噺鏁版嵁"};//鑳借�楃湅鏉�-6鎸夋湀鏌ヨ杩�12涓湀鐨勭敤鐢垫�婚噺鏁版嵁
     }
     /**
      * 闄勫綍A.55娑堥槻璁惧绫诲瀷
diff --git a/server/visits/dmvisit_service/src/main/java/com/doumee/core/haikang/model/HKTools.java b/server/visits/dmvisit_service/src/main/java/com/doumee/core/haikang/model/HKTools.java
index e1fd457..b3c333a 100644
--- a/server/visits/dmvisit_service/src/main/java/com/doumee/core/haikang/model/HKTools.java
+++ b/server/visits/dmvisit_service/src/main/java/com/doumee/core/haikang/model/HKTools.java
@@ -775,6 +775,14 @@
 		return startDoPostStringArtemis(HKConstants.InterfacePath.getSecureDevStatusList,body);
 	}
 	/**
+	 * 鑳借�楃湅鏉�-6鎸夋湀鏌ヨ杩�12涓湀鐨勭敤鐢垫�婚噺鏁版嵁
+	 * @param body
+	 * @return
+	 */
+	public static String energyTrend(String body) {
+		return startDoPostStringArtemis(HKConstants.InterfacePath.energyTrend,body);
+	}
+	/**
 	 * 缁熻鍥尯鎬讳綋鐨勫畨闃茶澶囨暟閲忥紝鍦ㄧ嚎鏁般�佸湪绾跨巼銆佺绾挎暟銆佺绾跨巼
 	 * @param body
 	 * @return
@@ -790,6 +798,41 @@
 		return startDoGetStringArtemis(HKConstants.InterfacePath.getParkingStatistics,null);
 	}
 	/**
+	 * 鑳借�楃湅鏉�-1.鑾峰彇鏈湀鐢ㄨ兘鎬婚噺-鑷劧鏈�
+	 * @return
+	 */
+	public static String getCurrentMonthDataByMeterType(Map<String,String>   powerType) {
+		return startDoGetStringArtemis(HKConstants.InterfacePath.getCurrentMonthDataByMeterType,powerType);
+	}
+	/**
+	 * 鑳借�楃湅鏉�-2.鑾峰彇鍖哄煙鐢ㄨ兘鍓峃浣�
+	 * @return
+	 */
+	public static String regionTopPower(Map<String,String>   params) {
+		return startDoGetStringArtemis(HKConstants.InterfacePath.regionTopPower,params);
+	}
+	/**
+	 * 鑳借�楃湅鏉�-3.鑾峰彇鍚勫尯鍩熺敤鑳藉強鎬昏兘鑰�
+	 * @return
+	 */
+	public static String regionEnergyList(Map<String,String>   params) {
+		return startDoGetStringArtemis(HKConstants.InterfacePath.regionEnergyList,params);
+	}
+	/**
+	 * 鑳借�楃湅鏉�-4.鑾峰彇涓婃湀鐢ㄨ兘璐圭敤锛屼竴澶╁埛鏂帮紝鍑屾櫒鏌愪釜鐐瑰埛
+	 * @return
+	 */
+	public static String lastMonthFeeByMeterType(Map<String,String>   params) {
+		return startDoGetStringArtemis(HKConstants.InterfacePath.lastMonthFeeByMeterType,params);
+	}
+	/**
+	 * 鑳借�楃湅鏉�-5.鍥尯瀹炴椂璐熻嵎鏇茬嚎
+	 * @return
+	 */
+	public static String energyTodayLoadData( ) {
+		return startDoGetStringArtemis(HKConstants.InterfacePath.energyTodayLoadData,null);
+	}
+	/**
 	 * 鑾峰彇鏈堝彴鐘舵��
 	 * @return
 	 */
diff --git a/server/visits/dmvisit_service/src/main/java/com/doumee/core/haikang/model/param/request/EnergyTrendRequest.java b/server/visits/dmvisit_service/src/main/java/com/doumee/core/haikang/model/param/request/EnergyTrendRequest.java
new file mode 100644
index 0000000..4fe73fd
--- /dev/null
+++ b/server/visits/dmvisit_service/src/main/java/com/doumee/core/haikang/model/param/request/EnergyTrendRequest.java
@@ -0,0 +1,13 @@
+package com.doumee.core.haikang.model.param.request;
+
+import lombok.Data;
+
+@Data
+public class EnergyTrendRequest {
+    private String date;//	String	true	鏃ユ湡
+    private int meterType;//	Number	true	浠〃绫诲瀷(1:鐢佃〃;2:姘磋〃;3:姘旇〃;4:鐑〃)
+    private String nodeId	;//String	true	绛涢�夎妭鐐筰d
+    private int nodeType	;//Number	true	绛涢�夎妭鐐圭被鍨嬶紝1閮ㄩ棬/2鍖哄煙
+    private String periodType;//	String	true	缁熻缁村害day/quarter/month/year/custom
+    private String showType;//	String	true	灞曠ず缁村害:1杩�6涓湀/2杩�4涓搴�/3杩�3骞�--------4:鏃ユ湡绫诲瀷
+}
diff --git a/server/visits/dmvisit_service/src/main/java/com/doumee/core/haikang/model/param/request/RegionTopPowerRequest.java b/server/visits/dmvisit_service/src/main/java/com/doumee/core/haikang/model/param/request/RegionTopPowerRequest.java
new file mode 100644
index 0000000..8b094d4
--- /dev/null
+++ b/server/visits/dmvisit_service/src/main/java/com/doumee/core/haikang/model/param/request/RegionTopPowerRequest.java
@@ -0,0 +1,14 @@
+package com.doumee.core.haikang.model.param.request;
+
+import com.doumee.core.haikang.model.param.BaseListPageRequest;
+import lombok.Data;
+
+import java.util.List;
+
+@Data
+public class RegionTopPowerRequest  {
+
+    private int powerType	;//Query	Number	true	鑳芥簮绫诲瀷 鐢�-1 姘�-2 姘�-3 鐑�-4
+    private String timeType;//	Query	String	true	month,琛ㄧず鏈湀
+    private int top;//	Query	Number	true	鍓嶅嚑涓尯鍩熸暟
+}
diff --git a/server/visits/dmvisit_service/src/main/java/com/doumee/core/haikang/model/param/respose/EnergyTodayLoadDataResponse.java b/server/visits/dmvisit_service/src/main/java/com/doumee/core/haikang/model/param/respose/EnergyTodayLoadDataResponse.java
new file mode 100644
index 0000000..49e3251
--- /dev/null
+++ b/server/visits/dmvisit_service/src/main/java/com/doumee/core/haikang/model/param/respose/EnergyTodayLoadDataResponse.java
@@ -0,0 +1,10 @@
+package com.doumee.core.haikang.model.param.respose;
+
+import lombok.Data;
+
+@Data
+public class EnergyTodayLoadDataResponse {
+   private String extra	;//	String	false	杈呭姪瀛楁锛� 鍓嶇涓嶇敤
+   private String name	;//	String	false	妯潗鏍囷紙鎴栭ゼ鐘跺浘鐨勫厓绱犲�硷級
+   private String value;//		String	false	绾靛潗鏍囷紙鎴栭ゼ鐘跺浘鐨勫厓绱犲悕绉帮級
+}
diff --git a/server/visits/dmvisit_service/src/main/java/com/doumee/core/haikang/model/param/respose/EnergyTrendResponse.java b/server/visits/dmvisit_service/src/main/java/com/doumee/core/haikang/model/param/respose/EnergyTrendResponse.java
new file mode 100644
index 0000000..507ac79
--- /dev/null
+++ b/server/visits/dmvisit_service/src/main/java/com/doumee/core/haikang/model/param/respose/EnergyTrendResponse.java
@@ -0,0 +1,16 @@
+package com.doumee.core.haikang.model.param.respose;
+
+import lombok.Data;
+
+import java.util.List;
+
+@Data
+public class EnergyTrendResponse {
+
+   private String names;//	String	false	names
+private String pwValues	;//String	false	pwValues
+private String avgValues;//	String	false	骞冲潎鍊兼暟鎹�
+private String timeNameList	;//String	false	timeNameList
+private String[] xvalues;//	Array	false	x杞存湀浠�
+private List<EnergyTrendYvalueResponse> yvalues;//	Array	false	y杞�
+}
diff --git a/server/visits/dmvisit_service/src/main/java/com/doumee/core/haikang/model/param/respose/EnergyTrendYvalueResponse.java b/server/visits/dmvisit_service/src/main/java/com/doumee/core/haikang/model/param/respose/EnergyTrendYvalueResponse.java
new file mode 100644
index 0000000..580bc98
--- /dev/null
+++ b/server/visits/dmvisit_service/src/main/java/com/doumee/core/haikang/model/param/respose/EnergyTrendYvalueResponse.java
@@ -0,0 +1,10 @@
+package com.doumee.core.haikang.model.param.respose;
+
+import lombok.Data;
+
+@Data
+public class EnergyTrendYvalueResponse {
+
+   private String name;//	String	false	y杞村悕绉�
+   private String[] value	;//	Array	false	y杞村��
+}
diff --git a/server/visits/dmvisit_service/src/main/java/com/doumee/core/haikang/model/param/respose/LastMonthFeeByMeterTypeResponse.java b/server/visits/dmvisit_service/src/main/java/com/doumee/core/haikang/model/param/respose/LastMonthFeeByMeterTypeResponse.java
new file mode 100644
index 0000000..455e517
--- /dev/null
+++ b/server/visits/dmvisit_service/src/main/java/com/doumee/core/haikang/model/param/respose/LastMonthFeeByMeterTypeResponse.java
@@ -0,0 +1,19 @@
+package com.doumee.core.haikang.model.param.respose;
+
+import lombok.Data;
+
+import java.util.List;
+
+@Data
+public class LastMonthFeeByMeterTypeResponse {
+    private String value;//	String	false	鏁板��
+    private String quota;//	String	false	棰濆畾閲�
+    private String samePercent;//	String	false	鍚屾瘮
+    private Boolean samePercentAbnorml;//	Boolean	false	鍚屾瘮鏄惁寮傚父锛堣秴杩囬槇鍊硷級
+    private String ringPercent	;//String	false	鐜瘮
+    private Boolean ringPercentAbnorml	;//Boolean	false	鐜瘮鏄惁寮傚父锛堣秴杩囬槇鍊硷級
+    private Boolean privateOpen	;//Boolean	false	闅愮寮�鍚�
+    private String innerFeeValue	;//String	false	璐圭敤
+    private String feeSamePercent	;//String	false	璐圭敤鍚屾瘮
+    private String feeRingPercent	;//String	false	璐圭敤鐜瘮
+}
diff --git a/server/visits/dmvisit_service/src/main/java/com/doumee/core/haikang/model/param/respose/MonthDataByMeterTypeResponse.java b/server/visits/dmvisit_service/src/main/java/com/doumee/core/haikang/model/param/respose/MonthDataByMeterTypeResponse.java
new file mode 100644
index 0000000..33d64ce
--- /dev/null
+++ b/server/visits/dmvisit_service/src/main/java/com/doumee/core/haikang/model/param/respose/MonthDataByMeterTypeResponse.java
@@ -0,0 +1,17 @@
+package com.doumee.core.haikang.model.param.respose;
+
+import lombok.Data;
+
+@Data
+public class MonthDataByMeterTypeResponse {
+      private String value	;//String	false	鏁板��
+      private String quota;//	String	false	棰濆畾閲�
+      private String samePercent;//	String	false	鍚屾瘮
+      private Boolean samePercentAbnorml;//	Boolean	false	鍚屾瘮鏄惁寮傚父锛堣秴杩囬槇鍊硷級
+      private String ringPercent;//	String	false	鐜瘮
+      private Boolean ringPercentAbnorml	;//Boolean	false	鐜瘮鏄惁寮傚父锛堣秴杩囬槇鍊硷級
+      private Boolean privateOpen	;//Boolean	false	闅愮寮�鍚�
+      private String innerFeeValue	;//String	false	璐圭敤
+      private String feeSamePercent	;//String	false	璐圭敤鍚屾瘮
+      private String feeRingPercent	;//String	false	璐圭敤鐜瘮
+}
diff --git a/server/visits/dmvisit_service/src/main/java/com/doumee/core/haikang/model/param/respose/RegionEnergyListResponse.java b/server/visits/dmvisit_service/src/main/java/com/doumee/core/haikang/model/param/respose/RegionEnergyListResponse.java
new file mode 100644
index 0000000..25b41a6
--- /dev/null
+++ b/server/visits/dmvisit_service/src/main/java/com/doumee/core/haikang/model/param/respose/RegionEnergyListResponse.java
@@ -0,0 +1,19 @@
+package com.doumee.core.haikang.model.param.respose;
+
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.math.BigDecimal;
+import java.util.List;
+
+@Data
+public class RegionEnergyListResponse {
+    @ApiModelProperty(value = "鏍硅妭鐐规�昏兘鑰�")
+    private String rootValue	;//	String	false
+    @ApiModelProperty(value = "鍚屾瘮")
+    private String samePercent;//		String	false	鍚屾瘮
+    @ApiModelProperty(value = "鐜瘮")
+    private String ringPercent;//		String	false	鐜瘮
+    @ApiModelProperty(value = "浜岀骇鍖哄煙鑳借�楁暟鎹�")
+    private List<RegionTopPowerResponse> secondRegionDataList	;//Array	false	浜岀骇鍖哄煙鑳借�楁暟鎹�
+}
diff --git a/server/visits/dmvisit_service/src/main/java/com/doumee/core/haikang/model/param/respose/RegionTopPowerResponse.java b/server/visits/dmvisit_service/src/main/java/com/doumee/core/haikang/model/param/respose/RegionTopPowerResponse.java
new file mode 100644
index 0000000..b3ab95d
--- /dev/null
+++ b/server/visits/dmvisit_service/src/main/java/com/doumee/core/haikang/model/param/respose/RegionTopPowerResponse.java
@@ -0,0 +1,16 @@
+package com.doumee.core.haikang.model.param.respose;
+
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.math.BigDecimal;
+
+@Data
+public class RegionTopPowerResponse {
+    @ApiModelProperty(value = "鍖哄煙鍚嶇О")
+     private String name;//	String	false	鍖哄煙鍚嶇О
+    @ApiModelProperty(value = "鍊�")
+      private BigDecimal value	;//Number	false	鍊�
+    @ApiModelProperty(value = "鍗犳瘮")
+      private BigDecimal percent	;//Number	false	鍗犳瘮
+}
diff --git a/server/visits/dmvisit_service/src/main/java/com/doumee/core/haikang/service/HKService.java b/server/visits/dmvisit_service/src/main/java/com/doumee/core/haikang/service/HKService.java
index a47eb2e..351ff86 100644
--- a/server/visits/dmvisit_service/src/main/java/com/doumee/core/haikang/service/HKService.java
+++ b/server/visits/dmvisit_service/src/main/java/com/doumee/core/haikang/service/HKService.java
@@ -1559,6 +1559,105 @@
         }
         return  null;
     }
+
+    /**
+     * 鑳借�楃湅鏉�-3.鑾峰彇鍚勫尯鍩熺敤鑳藉強鎬昏兘鑰�
+     * @param powerType 鑳芥簮绫诲瀷 鐢�-1 姘�-2 姘�-3 鐑�-4
+     * @return
+     */
+    public  static  BaseResponse<RegionEnergyListResponse>   regionEnergyList(String  powerType){
+        log.info("銆愭捣搴疯兘鑰楃湅鏉�-3.鑾峰彇鍚勫尯鍩熺敤鑳藉強鎬昏兘鑰椼��================寮�濮�====");
+        try {
+            Map<String,String>   map = new HashMap<>();
+            map.put("powerType",powerType);
+            String res = HKTools.regionEnergyList(map);
+            TypeReference typeReference =
+                    new TypeReference< BaseResponse<RegionEnergyListResponse>>(){};
+            BaseResponse<RegionEnergyListResponse>   result = JSONObject.parseObject(res, typeReference.getType());
+            logResult(result,"銆愭捣搴疯兘鑰楃湅鏉�-3.鑾峰彇鍚勫尯鍩熺敤鑳藉強鎬昏兘鑰椼��");
+            return  result;
+        }catch (Exception e){
+            log.error("銆愭捣搴疯兘鑰楃湅鏉�-3.鑾峰彇鍚勫尯鍩熺敤鑳藉強鎬昏兘鑰椼��================澶辫触====锛歕n"+ e.getMessage());
+        }
+        return  null;
+    }
+    /**
+     * 鑳借�楃湅鏉�-4.鑾峰彇涓婃湀鐢ㄨ兘璐圭敤锛屼竴澶╁埛鏂帮紝鍑屾櫒鏌愪釜鐐瑰埛
+     * @param powerType 鑳芥簮绫诲瀷 鐢�-1 姘�-2 姘�-3 鐑�-4
+     * @return
+     */
+    public  static  BaseResponse<LastMonthFeeByMeterTypeResponse>   lastMonthFeeByMeterType(String  powerType){
+        log.info("銆愭捣搴疯兘鑰楃湅鏉�-4.鑾峰彇涓婃湀鐢ㄨ兘璐圭敤锛屼竴澶╁埛鏂帮紝鍑屾櫒鏌愪釜鐐瑰埛銆�================寮�濮�====");
+        try {
+            Map<String,String>   map = new HashMap<>();
+            map.put("powerType",powerType);
+            String res = HKTools.lastMonthFeeByMeterType(map);
+            TypeReference typeReference =  new TypeReference< BaseResponse<LastMonthFeeByMeterTypeResponse>>(){};
+            BaseResponse<LastMonthFeeByMeterTypeResponse>   result = JSONObject.parseObject(res, typeReference.getType());
+            logResult(result,"銆愭捣搴疯兘鑰楃湅鏉�-4.鑾峰彇涓婃湀鐢ㄨ兘璐圭敤锛屼竴澶╁埛鏂帮紝鍑屾櫒鏌愪釜鐐瑰埛銆�");
+            return  result;
+        }catch (Exception e){
+            log.error("銆愭捣搴疯兘鑰楃湅鏉�-4.鑾峰彇涓婃湀鐢ㄨ兘璐圭敤锛屼竴澶╁埛鏂帮紝鍑屾櫒鏌愪釜鐐瑰埛銆�================澶辫触====锛歕n"+ e.getMessage());
+        }
+        return  null;
+    }
+    /**
+     * 娴峰悍鑳借�楃湅鏉�-5.鍥尯瀹炴椂璐熻嵎鏇茬嚎
+     * @return
+     */
+    public  static  BaseResponse<List<EnergyTodayLoadDataResponse>>   energyTodayLoadData(){
+        log.info("銆愭捣搴疯兘鑰楃湅鏉�-5.鍥尯瀹炴椂璐熻嵎鏇茬嚎銆�================寮�濮�====");
+        try {
+            String res = HKTools.energyTodayLoadData();
+            TypeReference typeReference =  new TypeReference< BaseResponse<List<EnergyTodayLoadDataResponse>>>(){};
+            BaseResponse<List<EnergyTodayLoadDataResponse>>   result = JSONObject.parseObject(res, typeReference.getType());
+            logResult(result,"銆愭捣搴疯兘鑰楃湅鏉�-5.鍥尯瀹炴椂璐熻嵎鏇茬嚎銆�");
+            return  result;
+        }catch (Exception e){
+            log.error("銆愭捣搴疯兘鑰楃湅鏉�-5.鍥尯瀹炴椂璐熻嵎鏇茬嚎銆�================澶辫触====锛歕n"+ e.getMessage());
+        }
+        return  null;
+    }
+    /**
+     * 鑳借�楃湅鏉�-2.鑾峰彇鍖哄煙鐢ㄨ兘鍓峃浣�
+     * @param param
+     * @return
+     */
+    public  static  BaseResponse<List<RegionTopPowerResponse>>   regionTopPower(RegionTopPowerRequest   param){
+        log.info("銆愭捣搴疯兘鑰楃湅鏉�-2.鑾峰彇鍖哄煙鐢ㄨ兘鍓峃浣嶃��================寮�濮�====");
+        try {
+            String res = HKTools.regionTopPower(toMap(param));
+            TypeReference typeReference =
+                    new TypeReference< BaseResponse<List<RegionTopPowerResponse>>>(){};
+            BaseResponse<List<RegionTopPowerResponse>>   result = JSONObject.parseObject(res, typeReference.getType());
+            logResult(result,"娴峰悍鑳借�楃湅鏉�-2.鑾峰彇鍖哄煙鐢ㄨ兘鍓峃浣�");
+            return  result;
+        }catch (Exception e){
+            log.error("銆愭捣搴疯兘鑰楃湅鏉�-2.鑾峰彇鍖哄煙鐢ㄨ兘鍓峃浣嶃��================澶辫触====锛歕n"+ e.getMessage());
+        }
+        return  null;
+    }
+    /**
+     * 鑳借�楃湅鏉�-1.鑾峰彇鏈湀鐢ㄨ兘鎬婚噺-鑷劧鏈�
+     * @param powerType 鑳芥簮绫诲瀷 鐢�-1 姘�-2 姘�-3 鐑�-4
+     * @return
+     */
+    public  static  BaseResponse<MonthDataByMeterTypeResponse>   getCurrentMonthDataByMeterType(String  powerType){
+        log.info("銆愯兘鑰楃湅鏉�-1.鑾峰彇鏈湀鐢ㄨ兘鎬婚噺-鑷劧鏈堛��================寮�濮�====");
+        try {
+            Map<String,String>   map = new HashMap<>();
+            map.put("powerType",powerType);
+            String res = HKTools.getCurrentMonthDataByMeterType(map);
+            TypeReference typeReference =
+                    new TypeReference< BaseResponse<MonthDataByMeterTypeResponse>>(){};
+            BaseResponse<MonthDataByMeterTypeResponse>   result = JSONObject.parseObject(res, typeReference.getType());
+            logResult(result,"鑳借�楃湅鏉�-1.鑾峰彇鏈湀鐢ㄨ兘鎬婚噺-鑷劧鏈�");
+            return  result;
+        }catch (Exception e){
+            log.error("銆愯兘鑰楃湅鏉�-1.鑾峰彇鏈湀鐢ㄨ兘鎬婚噺-鑷劧鏈堛��================澶辫触====锛歕n"+ e.getMessage());
+        }
+        return  null;
+    }
     /**
      *缁熻鍥尯鎬讳綋鐨勫畨闃茶澶囨暟閲忥紝鍦ㄧ嚎鏁般�佸湪绾跨巼銆佺绾挎暟銆佺绾跨巼
      * @return
@@ -1596,6 +1695,24 @@
         return  null;
     }
     /**
+     *鑳借�楃湅鏉�-6鎸夋湀鏌ヨ杩�12涓湀鐨勭敤鐢垫�婚噺鏁版嵁
+     * @return
+     */
+    public  static  BaseResponse<EnergyTrendResponse>   energyTrend(EnergyTrendRequest param){
+        log.info("銆愭捣搴疯兘鑰楃湅鏉�-6鎸夋湀鏌ヨ杩�12涓湀鐨勭敤鐢垫�婚噺鏁版嵁銆�================寮�濮�===="+JSONObject.toJSONString(param));
+        try {
+            String res = HKTools.energyTrend(JSONObject.toJSONString(param));
+            TypeReference typeReference =
+                    new TypeReference< BaseResponse<EnergyTrendResponse>>(){};
+            BaseResponse<EnergyTrendResponse>   result = JSONObject.parseObject(res, typeReference.getType());
+            logResult(result,"娴峰悍鑳借�楃湅鏉�-6鎸夋湀鏌ヨ杩�12涓湀鐨勭敤鐢垫�婚噺鏁版嵁");
+            return  result;
+        }catch (Exception e){
+            log.error("銆愭捣搴疯兘鑰楃湅鏉�-6鎸夋湀鏌ヨ杩�12涓湀鐨勭敤鐢垫�婚噺鏁版嵁銆�================澶辫触====锛歕n"+ e.getMessage());
+        }
+        return  null;
+    }
+    /**
      *鏍规嵁鐢ㄦ埛鏍囪瘑鑾峰彇瀹㈡埛绔疶GC鎺ュ彛
      * @return
      */
diff --git a/server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/model/PlatformWaterGas.java b/server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/model/PlatformWaterGas.java
index 3eadc0b..4208907 100644
--- a/server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/model/PlatformWaterGas.java
+++ b/server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/model/PlatformWaterGas.java
@@ -53,8 +53,8 @@
     @ApiModelProperty(value = "鎺掑簭鐮�", example = "1")
     private Integer sortnum;
 
-    @ApiModelProperty(value = "绫诲瀷 0鐢ㄦ按 1鐢ㄦ皵 2鐢ㄦ补", example = "1")
-    @ExcelColumn(name="绫诲瀷",valueMapping = "0=鐢ㄦ按;1=鐢ㄦ皵;2=鐢ㄦ补;",index = 0)
+    @ApiModelProperty(value = "绫诲瀷 0鐢ㄦ按 1鐢ㄦ皵 2鐢ㄦ补 3", example = "1")
+    @ExcelColumn(name="绫诲瀷",valueMapping = "0=鐢ㄦ按;1=鐢ㄦ皵;2=鐢ㄦ补;3=鐑熺;",index = 0)
     private Integer type;
 
     @ApiModelProperty(value = "鏁伴噺 (鐢ㄧ數椤匡紝鐢ㄧ數搴︼紱 娌硅�桳锛�", example = "1")
@@ -72,6 +72,9 @@
     @ApiModelProperty(value = "寮�濮嬫椂闂�")
     @TableField(exist = false)
     private Date startTime;
+    @ApiModelProperty(value = "骞存湀鏃堕棿")
+    @TableField(exist = false)
+    private String timeInfoStr;
     @ApiModelProperty(value = "寮�濮嬫椂闂�")
     @TableField(exist = false)
     private Date endTime;
diff --git a/server/visits/dmvisit_service/src/main/java/com/doumee/dao/web/response/platformReport/EnergyBoardVO.java b/server/visits/dmvisit_service/src/main/java/com/doumee/dao/web/response/platformReport/EnergyBoardVO.java
index 13217a0..719fb55 100644
--- a/server/visits/dmvisit_service/src/main/java/com/doumee/dao/web/response/platformReport/EnergyBoardVO.java
+++ b/server/visits/dmvisit_service/src/main/java/com/doumee/dao/web/response/platformReport/EnergyBoardVO.java
@@ -22,76 +22,24 @@
     @ApiModelProperty(value = "纰虫帓鏀� 鍗曚綅 鍚�")
     private BigDecimal carbon;
 
-    @ApiModelProperty(value = "涓婃湀鐢ㄧ數 鍗曚綅 kw路h")
-    private Integer electricityQuantity;
-
-    @ApiModelProperty(value = "鐢ㄧ數鐜瘮")
-    private BigDecimal electricityYear;
-
-    @ApiModelProperty(value = "鐢ㄧ數鍚屾瘮")
-    private BigDecimal electricityMonth;
+    @ApiModelProperty(value = "涓婃湀鐢ㄧ數 鍗曚綅 kw路h  鎬婚噺銆佸悓姣斻�佺幆姣�")
+    private EnergyModelDataVO electricityQuantity;
 
 
-    @ApiModelProperty(value = "涓婃湀鐢ㄦ按 鍗曚綅 t")
-    private BigDecimal waterQuantity;
-
-    @ApiModelProperty(value = "鐢ㄦ按鐜瘮")
-    private BigDecimal waterYear;
-
-    @ApiModelProperty(value = "鐢ㄦ按鍚屾瘮")
-    private BigDecimal waterMonth;
+    @ApiModelProperty(value = "涓婃湀鐢ㄦ按 鍗曚綅 t 鎬婚噺銆佸悓姣斻�佺幆姣� ")
+    private EnergyModelDataVO waterQuantity;
 
 
+    @ApiModelProperty(value = "涓婃湀鐢ㄦ皵 鍗曚綅 鎬婚噺銆佸悓姣斻�佺幆姣� ")
+    private EnergyModelDataVO gasQuantity;
 
-    @ApiModelProperty(value = "涓婃湀鐢ㄦ皵 鍗曚綅 ")
-    private BigDecimal gasQuantity;
+    @ApiModelProperty(value = "浠婃棩鐢ㄧ數 鍗曚綅 kw路h锛屾�婚噺銆佸悓姣斻�佺幆姣�")
+    private EnergyModelDataVO todayElectricity;
 
-    @ApiModelProperty(value = "鐢ㄦ皵鐜瘮")
-    private BigDecimal gasYear;
+    @ApiModelProperty(value = "鏈湀鐢ㄧ數 鍗曚綅 kw路h 鎬婚噺銆佸悓姣斻�佺幆姣�")
+    private EnergyModelDataVO monthElectricity;
 
-    @ApiModelProperty(value = "鐢ㄦ皵鍚屾瘮")
-    private BigDecimal gasMonth;
+    @ApiModelProperty(value = "鏄ㄦ棩鐢ㄧ數 鍗曚綅 kw路h 鎬婚噺銆佸悓姣斻�佺幆姣�")
+    private EnergyModelDataVO yesterdayElectricity;
 
-
-    @ApiModelProperty(value = "鍔炲叕妤肩敤鐢� 鍗曚綅 kw路h")
-    private Integer officeQuantity;
-
-    @ApiModelProperty(value = "鎴愬搧搴撶敤鐢� 鍗曚綅 kw路h")
-    private Integer productHouseQuantity;
-
-    @ApiModelProperty(value = "鑱斿悎宸ユ埧鐢ㄧ數 鍗曚綅 kw路h")
-    private Integer workHouseQuantity;
-
-    @ApiModelProperty(value = "鐗╂祦鍥尯鐢ㄧ數 鍗曚綅 kw路h")
-    private Integer parkQuantity;
-
-    @ApiModelProperty(value = "鍔ㄥ姏绔欐埧鐢ㄧ數 鍗曚綅 kw路h")
-    private Integer powerQuantity;
-
-    @ApiModelProperty(value = "浠婃棩鐢ㄧ數 鍗曚綅 kw路h")
-    private Integer todayElectricity;
-
-    @ApiModelProperty(value = "鏈湀鐢ㄧ數 鍗曚綅 kw路h")
-    private Integer monthElectricity;
-
-    @ApiModelProperty(value = "鏄ㄦ棩鐢ㄧ數 鍗曚綅 kw路h")
-    private Integer yesterdayElectricity;
-
-    @ApiModelProperty(value = "瀹炴椂璐熻嵎鏇茬嚎",hidden = true)
-    private List<EnergyDataVO> loadCurveList;
-
-    @ApiModelProperty(value = "鏈堣兘鑰楀垎鏋� - 姘�",hidden = true)
-    private List<EnergyDataVO> energyDataWaterList;
-
-    @ApiModelProperty(value = "鏈堣兘鑰楀垎鏋� - 姘�",hidden = true)
-    private List<EnergyDataVO> energyDataGasList;
-
-    @ApiModelProperty(value = "鏈堣兘鑰楀垎鏋� - 鐢�",hidden = true)
-    private List<EnergyDataVO> energyDataElectricityList;
-
-    @ApiModelProperty(value = "鏈堟补鑰楀垎鏋�",hidden = true)
-    private List<EnergyDataVO> oilList;
-
-    @ApiModelProperty(value = "涓婃湀娌硅�楁帓琛�",hidden = true)
-    private List<OilDataVO> lastMonthOilList;
 }
diff --git a/server/visits/dmvisit_service/src/main/java/com/doumee/dao/web/response/platformReport/EnergyModelDataVO.java b/server/visits/dmvisit_service/src/main/java/com/doumee/dao/web/response/platformReport/EnergyModelDataVO.java
new file mode 100644
index 0000000..e06bc95
--- /dev/null
+++ b/server/visits/dmvisit_service/src/main/java/com/doumee/dao/web/response/platformReport/EnergyModelDataVO.java
@@ -0,0 +1,31 @@
+package com.doumee.dao.web.response.platformReport;
+
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.math.BigDecimal;
+
+/**
+ * Created by IntelliJ IDEA.
+ *
+ * @Author : Rk
+ * @create 2024/10/25 16:25
+ */
+@Data
+public class EnergyModelDataVO {
+
+    @ApiModelProperty(value = "鎬婚噺")
+    private String total;
+    @ApiModelProperty(value = "鎬婚噺",hidden = true)
+    private BigDecimal totalNum;
+
+    @ApiModelProperty(value = "鐜瘮")
+    private String ringRate;
+    @ApiModelProperty(value = "鐜瘮鍊�",hidden = true)
+    private BigDecimal ringNum;
+    @ApiModelProperty(value = "鍚屾瘮")
+    private String sameRate;
+    @ApiModelProperty(value = "鍚屾瘮鍊�" ,hidden = true)
+    private BigDecimal sameNum;
+
+}
diff --git a/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/thrid/BoardServiceImpl.java b/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/thrid/BoardServiceImpl.java
index 2feae0f..05fef7f 100644
--- a/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/thrid/BoardServiceImpl.java
+++ b/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/thrid/BoardServiceImpl.java
@@ -49,6 +49,8 @@
     @Autowired
     private PlatformLogMapper platformLogMapper;
     @Autowired
+    private PlatformWaterGasMapper platformWaterGasMapper;
+    @Autowired
     private SystemDictDataBiz systemDictDataBiz;
     @Autowired
     private PlatformWarnEventMapper platformWarnEventMapper;
@@ -395,6 +397,268 @@
         return null;
     }
     @Override
+    public   List<EnergyDataVO>  loadEnergyCurve(){
+        List<EnergyDataVO> loadCurveList = new ArrayList<>();
+        try {
+            BaseResponse<List<EnergyTodayLoadDataResponse>>  response = HKService.energyTodayLoadData();
+            if(response == null || !StringUtils.equals(response.getCode(), HKConstants.RESPONSE_SUCCEE) || response.getData()==null ){
+                for (EnergyTodayLoadDataResponse model :response.getData()) {
+                    EnergyDataVO data = new EnergyDataVO();
+                    data.setTimeData(model.getName());
+                    data.setEnergy(new BigDecimal(model.getName()));
+                    loadCurveList.add(data);
+                }
+            }
+        }catch (Exception e){
+            e.printStackTrace();
+        }
+        return loadCurveList;
+    }
+    @Override
+    public     List<OilDataVO> energyLastMonthOilSort(){
+        List<OilDataVO> oilDataVOList = new ArrayList<>();
+        //涓婃湀娌硅��
+       List<PlatformWaterGas> list =  platformWaterGasMapper.selectList(new QueryWrapper<PlatformWaterGas>().lambda()
+                .eq(PlatformWaterGas::getIsdeleted,Constants.ZERO)
+                .eq(PlatformWaterGas::getType,Constants.TWO)
+                .apply("DATE_FORMAT(time_info, '%Y-%m') = DATE_FORMAT(DATE_SUB(CURDATE(), INTERVAL 1 MONTH), '%Y-%m')")
+                .orderByDesc(PlatformWaterGas::getNum)
+                .last("limit 30" )
+        );
+        for (PlatformWaterGas model :list) {
+            OilDataVO oilDataVO = new OilDataVO();
+            oilDataVO.setCarNo(model.getCarCode());
+            oilDataVO.setQuantity(model.getNum());
+            oilDataVOList.add(oilDataVO);
+        }
+        return oilDataVOList;
+    }
+
+    /**
+     * 鐢ㄧ數鎬昏兘鑰楀悓姣斻�佺幆姣斿拰鍖哄煙鐢ㄧ數閲忛泦鍚�
+     * @return
+     */
+    @Override
+    public  EnergyBoardVO centerEnergyData(){
+        EnergyBoardVO data = new EnergyBoardVO();
+        Random random = new Random();
+       PlatformWaterGas smoke=  platformWaterGasMapper.selectOne(new QueryWrapper<PlatformWaterGas>()
+                 .select("sum(num) as num")
+                .lambda()
+                .eq(PlatformWaterGas::getIsdeleted,Constants.ZERO)
+                .eq(PlatformWaterGas::getType,Constants.THREE)
+                .apply("year(time_info) = year(now())")
+                .last("limit 1 " ));
+
+        data.setSmokeBoxTotal(0);
+        if(smoke!=null){
+            data.setSmokeBoxTotal(Constants.formatBigdecimal(smoke.getNum()).intValue());//褰撳勾鐑熺鏁�
+        }
+        BigDecimal carbonGas = new BigDecimal(0);//鏈湀鐢ㄦ皵
+        BigDecimal carbonWater = new BigDecimal(0);//鏈湀鐢ㄦ按
+        BigDecimal carbonElec = new BigDecimal(0);//鐢ㄧ數
+
+        data.setTodayElectricity(getDefaultData());//浠婃棩鐢ㄧ數
+        data.setElectricityQuantity(getDefaultData());//涓婃湀鐢ㄧ數
+        data.setWaterQuantity(getDefaultData());//涓婃湀鐢ㄦ按
+        data.setGasQuantity(getDefaultData());//涓婃湀鐢ㄦ皵
+        data.setMonthElectricity(getDefaultData());//鏈湀鐢ㄧ數
+        data.setYesterdayElectricity(getDefaultData());//鏄ㄦ棩鐢ㄧ數
+        getMonthElectricityData(data.getMonthElectricity());//閫氳繃瀹夐槻骞宠幏鍙栨湰鏈堟暟鎹�
+        carbonElec = new BigDecimal(StringUtils.defaultString(data.getMonthElectricity().getTotal(), "0"));
+        getLastMonthElectricityData(data.getElectricityQuantity());//閫氳繃瀹夐槻骞宠幏鍙栦笂鏈堟暟鎹�
+        String firstDate = DateUtil.getFirstDayOfThisMonth() +" 00:00:00";
+        Date month0 = DateUtil.getDateFromString(firstDate);
+        Date month1 = DateUtil.increaseMonth(month0,-1);//涓婃湀
+        Date month2 = DateUtil.increaseMonth(month0,-2);//涓婁笂鏈�
+        Date month3 = DateUtil.increaseMonth(month0,-12);//鍘诲勾鍚屾湀
+
+        List<PlatformWaterGas> list =  platformWaterGasMapper.selectList(new QueryWrapper<PlatformWaterGas>()
+                .lambda()
+                .eq(PlatformWaterGas::getIsdeleted,Constants.ZERO)
+                .in(PlatformWaterGas::getType,Constants.ZERO,Constants.ONE)
+                .in(PlatformWaterGas::getTimeInfo,month0,month1,month3,month2)
+        );
+
+        if(list!=null){
+            //绫诲瀷 0鐢ㄦ按 1鐢ㄦ皵 2鐢ㄦ补
+            for(PlatformWaterGas model : list){
+                if(Constants.equalsInteger(model.getType(),Constants.ONE)){
+                    if(model.getTimeInfo().getTime() == month0.getTime()){
+                        carbonGas = Constants.formatBigdecimal(model.getNum());
+                    }
+                    if(model.getTimeInfo().getTime() == month1.getTime()){
+                        data.getGasQuantity().setTotalNum(Constants.formatBigdecimal(model.getNum()) );
+                        data.getGasQuantity().setTotal(Constants.formatBigdecimal(model.getNum())+"");
+                    }
+                    if(model.getTimeInfo().getTime() == month2.getTime()){
+                        data.getGasQuantity().setSameNum(Constants.formatBigdecimal(model.getNum()) );
+                    }
+                    if(model.getTimeInfo().getTime() == month3.getTime()){
+                        data.getGasQuantity().setRingNum(Constants.formatBigdecimal(model.getNum()) );
+                    }
+
+                }else if(Constants.equalsInteger(model.getType(),Constants.ZERO)){
+                    if(model.getTimeInfo().getTime() == month0.getTime()){
+                        carbonWater = Constants.formatBigdecimal(model.getNum());
+                    }
+                    if(model.getTimeInfo().getTime() == month1.getTime()){
+                        data.getWaterQuantity().setTotalNum(Constants.formatBigdecimal(model.getNum()) );
+                        data.getWaterQuantity().setTotal(Constants.formatBigdecimal(model.getNum())+"");
+                    }
+                    if(model.getTimeInfo().getTime() == month2.getTime()){
+                        data.getWaterQuantity().setSameNum(Constants.formatBigdecimal(model.getNum()) );
+                    }
+                    if(model.getTimeInfo().getTime() == month3.getTime()){
+                        data.getWaterQuantity().setRingNum(Constants.formatBigdecimal(model.getNum()) );
+                    }
+                }
+            }
+        }
+        if( data.getGasQuantity().getTotalNum().compareTo(new BigDecimal(0)) !=0){
+            //璁$畻鐢ㄦ皵鍚屾瘮鐜瘮
+            data.getGasQuantity().setSameRate(Constants.formatBigdecimal4Float(data.getGasQuantity().getSameNum().divide(data.getGasQuantity().getTotalNum())).doubleValue()*100 +"");
+            data.getGasQuantity().setRingRate(Constants.formatBigdecimal4Float(data.getGasQuantity().getRingNum().divide(data.getGasQuantity().getTotalNum())).doubleValue()*100 +"");
+        }
+        if( data.getWaterQuantity().getTotalNum().compareTo(new BigDecimal(0)) !=0){
+            // //璁$畻鐢ㄦ按鍚屾瘮鐜瘮
+            data.getWaterQuantity().setSameRate(Constants.formatBigdecimal4Float(data.getWaterQuantity().getSameNum().divide(data.getWaterQuantity().getTotalNum())).doubleValue()*100 +"");
+            data.getWaterQuantity().setRingRate(Constants.formatBigdecimal4Float(data.getWaterQuantity().getRingNum().divide(data.getWaterQuantity().getTotalNum())).doubleValue()*100 +"");
+        }
+
+        /*璁$畻纰虫帓閲忥紝浠ヤ笅涓変釜鍥犵礌涔嬪拰
+        1)鐢ㄧ數鐨勪簩姘у寲纰虫帓鏀鹃噺(kg)=鑰楃數閲�(kWh)x0.785锛�
+        2) 澶╃劧姘斾簩姘у寲纰虫帓鏀鹃噺(kg)=澶╃劧姘斾娇鐢ㄩ噺(m3)脳0.19锛�
+        3) 鑷潵姘翠簩姘у寲纰虫帓鏀鹃噺(kg)=鑷潵姘翠娇鐢ㄩ噺(m3)脳0.91锛�*/
+        data.setCarbon(Constants.formatBigdecimal2Float((carbonElec.multiply(new BigDecimal(0.785)))
+                .add(carbonGas.multiply(new BigDecimal(0.19)))
+                .add(carbonWater.multiply(new BigDecimal(0.91)))));
+        return data;
+
+    }
+
+    /**
+     * 閫氳繃瀹夐槻骞宠幏鍙栨湰鏈堟暟鎹�
+     * @param data
+     */
+    private void getMonthElectricityData(EnergyModelDataVO data) {
+        BaseResponse<MonthDataByMeterTypeResponse> response = HKService.getCurrentMonthDataByMeterType("1");
+        if(response != null && !StringUtils.equals(response.getCode(), HKConstants.RESPONSE_SUCCEE) && response.getData()!=null ){
+           data.setRingRate(StringUtils.defaultString(response.getData().getRingPercent(),"0"));
+           data.setSameRate(StringUtils.defaultString(response.getData().getSamePercent(),"0"));
+           data.setTotal(StringUtils.defaultString(response.getData().getValue(),"0"));
+        }
+    }
+
+    /**
+     * 閫氳繃瀹夐槻骞宠幏鍙栦笂鏈堟暟鎹�
+     * @param data
+     */
+    private void getLastMonthElectricityData(EnergyModelDataVO data) {
+        BaseResponse<LastMonthFeeByMeterTypeResponse> response = HKService.lastMonthFeeByMeterType("1");
+        if(response != null && !StringUtils.equals(response.getCode(), HKConstants.RESPONSE_SUCCEE) && response.getData()!=null ){
+           data.setRingRate(StringUtils.defaultString(response.getData().getRingPercent(),"0"));
+           data.setSameRate(StringUtils.defaultString(response.getData().getSamePercent(),"0"));
+           data.setTotal(StringUtils.defaultString(response.getData().getValue(),"0"));
+        }
+    }
+
+    private EnergyModelDataVO getDefaultData() {
+        EnergyModelDataVO data = new EnergyModelDataVO();
+        data.setTotal("0");
+        data.setSameRate("0");
+        data.setRingRate("0");
+        data.setTotalNum(new BigDecimal(0));
+        data.setSameNum(new BigDecimal(0));
+        data.setRingNum(new BigDecimal(0));
+        return data;
+    }
+
+    /**
+     * 鐢ㄧ數鎬昏兘鑰楀悓姣斻�佺幆姣斿拰鍖哄煙鐢ㄧ數閲忛泦鍚�
+     * @return
+     */
+    @Override
+    public   RegionEnergyListResponse energyRegionData(){
+        RegionEnergyListResponse data = null;
+        BaseResponse<RegionEnergyListResponse> response = HKService.regionEnergyList("1");
+        if(response != null && !StringUtils.equals(response.getCode(), HKConstants.RESPONSE_SUCCEE) && response.getData()!=null ){
+            data = response.getData();
+        }
+        if(data == null){
+            data = new RegionEnergyListResponse();
+            data.setSecondRegionDataList(new ArrayList<>());
+            data.setRootValue("0");
+            data.setSamePercent("0");
+            data.setRingPercent("0");
+            data.setSecondRegionDataList(new ArrayList<>());
+        }
+        return data;
+
+    }
+    /**
+     * 杩�12涓按鐢垫皵娌硅�楁暟鎹粺璁�
+     * @param type
+     * @return
+     */
+    @Override
+    public   List<EnergyDataVO> energyDataList(Integer type){
+        List<EnergyDataVO> energyDataVOList = new ArrayList<>();
+        List<OilDataVO> oilDataVOList = new ArrayList<>();
+        Date lastMonth = DateUtil.increaseMonth(new Date(),-11);
+        if(type >=0 && type <=2){
+            //鐢ㄦ按鐢ㄧ數鐢ㄦ皵
+            List<PlatformWaterGas> list =  platformWaterGasMapper.selectList(new QueryWrapper<PlatformWaterGas>()
+                            .select("DATE_FORMAT(TIME_INFO,'yyyy-MM') as time_info_str,sum(num) as num")
+                    .lambda()
+                    .eq(PlatformWaterGas::getIsdeleted,Constants.ZERO)
+                    .eq(PlatformWaterGas::getType,type)
+                    .apply("time_info BETWEEN DATE_SUB(CURDATE(), INTERVAL 12 MONTH) AND CURDATE()")//杩�12涓湀
+                    .last(" groupby DATE_FORMAT(TIME_INFO,'yyyy-MM')")
+            );
+            for (int i = 0; i < 12; i++) {
+                Date tempDate = DateUtil.increaseMonth(lastMonth,i);
+                EnergyDataVO data = new EnergyDataVO();
+                data.setTimeData(DateUtil.getFomartDate(tempDate,"YYYY-MM"));
+                data.setEnergy(new BigDecimal(0));
+                if(list!=null){
+                    for(PlatformWaterGas m : list){
+                        if(StringUtils.equals(m.getTimeInfoStr(),data.getTimeData())){
+                            data.setEnergy(Constants.formatBigdecimal(m.getNum()));
+                        }
+                    }
+                }
+                energyDataVOList.add(data);
+            }
+        }else{
+            for (int i = 0; i < 12; i++) {
+                Date tempDate = DateUtil.increaseMonth(lastMonth,i);
+                EnergyDataVO data = new EnergyDataVO();
+                data.setTimeData(DateUtil.getFomartDate(tempDate,(i+1)+"鏈�"));
+                data.setEnergy(new BigDecimal(0));
+                energyDataVOList.add(data);
+            }
+            //濡傛灉鏄敤鐢垫暟鎹�
+            EnergyTrendRequest param = new EnergyTrendRequest();
+            param.setDate(DateUtil.getFomartDate(new Date(),"yyyy"));//骞翠唤
+            param.setMeterType(1);
+            param.setNodeType(2);
+            param.setNodeId("root000000");
+            param.setPeriodType("year");
+            BaseResponse<EnergyTrendResponse> response = HKService.energyTrend(param);
+            if(response != null && !StringUtils.equals(response.getCode(), HKConstants.RESPONSE_SUCCEE) && response.getData()!=null&& response.getData().getYvalues()!=null ){
+                for (int i = 0; i < 12; i++) {
+                    if(response.getData().getYvalues().size()>0 &&response.getData().getYvalues().get(0).getValue().length>i){
+                        //鍙栫浉搴旂殑鍙傛暟鍊�
+                        energyDataVOList.get(0).setEnergy(new BigDecimal(response.getData().getYvalues().get(0).getValue()[i]));
+                    }
+                }
+
+            }
+        }
+        return energyDataVOList;
+    }
+    @Override
     public  VisitDataVO visitSecurityData(){
         //寰呰闂�佸凡鐧昏銆佸凡绂诲紑
 
@@ -436,8 +700,6 @@
 
         SecurityBoardVO data = new SecurityBoardVO();
         getParkingCarsNum(data);//鑾峰彇杞︿綅鏁版嵁
-        Random random = new Random();
-
         List<Retention> retentionList = retentionMapper.selectJoinList(Retention.class,
                 new MPJLambdaWrapper<Retention>()
                         .selectAll(Retention.class)
diff --git a/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/third/BoardService.java b/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/third/BoardService.java
index 6a061b6..a465b65 100644
--- a/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/third/BoardService.java
+++ b/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/third/BoardService.java
@@ -3,6 +3,7 @@
 import com.doumee.core.haikang.model.param.respose.PageFireChannelInfoResponse;
 import com.doumee.core.haikang.model.param.respose.PageRegionInfoResponse;
 import com.doumee.core.haikang.model.param.respose.PageSensorStatusResponse;
+import com.doumee.core.haikang.model.param.respose.RegionEnergyListResponse;
 import com.doumee.core.tms.model.request.TmsLockStatusQueryRequest;
 import com.doumee.core.tms.model.request.TmsOrderInfoRequest;
 import com.doumee.core.tms.model.request.TmsOrderListRequest;
@@ -58,4 +59,14 @@
     SecurityBoardVO centerSecurityData();
 
     VisitDataVO visitSecurityData();
+
+    List<EnergyDataVO> loadEnergyCurve();
+
+    List<OilDataVO> energyLastMonthOilSort();
+
+    List<EnergyDataVO> energyDataList(Integer type);
+
+    RegionEnergyListResponse energyRegionData();
+
+    EnergyBoardVO centerEnergyData();
 }

--
Gitblit v1.9.3