From 7bdd62f0266f8caa8fbb167c8906a756f0299428 Mon Sep 17 00:00:00 2001 From: zhitan-cloud <394600+ustcyc@user.noreply.gitee.com> Date: 星期三, 12 二月 2025 23:02:55 +0800 Subject: [PATCH] !67 !66 电能质量分析,匹配模板编码 Merge pull request !67 from zhitan-cloud/develop1.0 --- zhitan-admin/src/main/java/com/zhitan/web/controller/comprehensivestatistics/MonthlyComprehensiveController.java | 6 zhitan-system/src/main/java/com/zhitan/model/service/impl/EnergyIndexServiceImpl.java | 6 zhitan-system/src/main/java/com/zhitan/realtimedata/service/impl/RealtimeDatabaseServiceImpl.java | 21 + zhitan-system/src/main/java/com/zhitan/dataitem/service/impl/DataItemServiceImpl.java | 9 zhitan-vue/src/views/deepanalysis/deepAnalysis.vue | 304 +++++++++++++++--------- zhitan-admin/src/main/java/com/zhitan/web/controller/energyMonitor/ElectricLoadController.java | 13 + zhitan-common/src/main/java/com/zhitan/common/constant/CommonConst.java | 16 zhitan-system/src/main/java/com/zhitan/energyMonitor/service/impl/ElectricLoadServiceImpl.java | 30 ++ zhitan-vue/src/api/energyAnalysis/energyAnalysis.js | 46 ++- zhitan-system/src/main/resources/mapper/basicdata/MeterImplementMapper.xml | 22 + zhitan-admin/src/main/java/com/zhitan/web/controller/comprehensivestatistics/DailyComprehensiveController.java | 4 zhitan-admin/src/main/java/com/zhitan/web/controller/comprehensivestatistics/YearComprehensiveController.java | 6 /dev/null | 163 ------------- zhitan-system/src/main/java/com/zhitan/energyMonitor/service/IElectricLoadService.java | 12 zhitan-system/src/main/java/com/zhitan/model/mapper/EnergyIndexMapper.java | 4 zhitan-system/src/main/java/com/zhitan/basicdata/mapper/MeterImplementMapper.java | 8 zhitan-system/src/main/java/com/zhitan/realtimedata/domain/DataItem.java | 12 zhitan-system/src/main/resources/mapper/model/EnergyIndexMapper.xml | 17 + zhitan-admin/src/main/java/com/zhitan/web/controller/keyequipment/MonthlyKeyEquipmentController.java | 4 zhitan-admin/src/main/java/com/zhitan/web/controller/keyequipment/DailyKeyEquipmenteController.java | 4 zhitan-admin/src/main/java/com/zhitan/web/controller/keyequipment/YearKeyEquipmentController.java | 5 21 files changed, 355 insertions(+), 357 deletions(-) diff --git a/zhitan-admin/src/main/java/com/zhitan/web/controller/comprehensivestatistics/DailyComprehensiveController.java b/zhitan-admin/src/main/java/com/zhitan/web/controller/comprehensivestatistics/DailyComprehensiveController.java index 4ce9a69..879ecce 100644 --- a/zhitan-admin/src/main/java/com/zhitan/web/controller/comprehensivestatistics/DailyComprehensiveController.java +++ b/zhitan-admin/src/main/java/com/zhitan/web/controller/comprehensivestatistics/DailyComprehensiveController.java @@ -67,7 +67,7 @@ i++; } List<DailyComprehensive> list = dailyComprehensiveService.getDailyComprehensiveList(modelNode.getNodeId(), - dataList, dataItem.getBeginTime(), dataItem.getEndTime(), dataItem.getTimeType(), dataItem.getIndexStorageId()); + dataList, dataItem.getBeginTime(), dataItem.getEndTime(), dataItem.getTimeType(), dataItem.getEnergyType()); return AjaxResult.success(list); } catch (Exception ex) { logger.error("鑾峰彇鍑洪敊锛�", ex); @@ -87,7 +87,7 @@ dataItem.setBeginTime(dataItem.getDataTime()); String endTime=aa+" 24:00:00"; dataItem.setEndTime(sf.parse(endTime)); - List<DailyComprehensive> list = dailyComprehensiveService.getListChart(dataItem.getIndexId(),dataItem.getBeginTime(),dataItem.getEndTime(), dataItem.getTimeType(),dataItem.getIndexStorageId()); + List<DailyComprehensive> list = dailyComprehensiveService.getListChart(dataItem.getIndexId(),dataItem.getBeginTime(),dataItem.getEndTime(), dataItem.getTimeType(),dataItem.getEnergyType()); return AjaxResult.success(list); } diff --git a/zhitan-admin/src/main/java/com/zhitan/web/controller/comprehensivestatistics/MonthlyComprehensiveController.java b/zhitan-admin/src/main/java/com/zhitan/web/controller/comprehensivestatistics/MonthlyComprehensiveController.java index 8e41cf7..0a98ba3 100644 --- a/zhitan-admin/src/main/java/com/zhitan/web/controller/comprehensivestatistics/MonthlyComprehensiveController.java +++ b/zhitan-admin/src/main/java/com/zhitan/web/controller/comprehensivestatistics/MonthlyComprehensiveController.java @@ -82,7 +82,7 @@ return AjaxResult.success(reportList); } List<MonthlyComprehensive> list = monthlyComprehensive.getMonthlyComprehensiveList(modelNode.getNodeId(), - dataList, dataItem.getBeginTime(), dataItem.getEndTime(), dataItem.getTimeType(), dataItem.getIndexStorageId()); + dataList, dataItem.getBeginTime(), dataItem.getEndTime(), dataItem.getTimeType(), dataItem.getEnergyType()); int count = Integer.parseInt(getLastDayOfMonth(aa).substring(getLastDayOfMonth(aa).length() - 2)); list.forEach(monthlyReport -> monthlyReport.setCount(count)); reportList.setTabledata(list); @@ -107,7 +107,7 @@ dataItem.setBeginTime(sf.parse(beginTime)); String endTime=aa+"-"+Integer.valueOf(getLastDayOfMonth(aa).substring(getLastDayOfMonth(aa).length()-2))+" 00:00:00"; dataItem.setEndTime(sf.parse(endTime)); - List<MonthlyComprehensive> list = monthlyComprehensive.getListChart(dataItem.getIndexId(),dataItem.getBeginTime(),dataItem.getEndTime(), dataItem.getTimeType(),dataItem.getIndexStorageId()); + List<MonthlyComprehensive> list = monthlyComprehensive.getListChart(dataItem.getIndexId(),dataItem.getBeginTime(),dataItem.getEndTime(), dataItem.getTimeType(),dataItem.getEnergyType()); return AjaxResult.success(list); } public static String getLastDayOfMonth(String yearMonth) { @@ -171,7 +171,7 @@ return AjaxResult.success(reportList); } List<MonthlyComprehensive> list = monthlyComprehensive.getMonthlyComprehensiveList(modelNode.getNodeId(), dataList, - dataItem.getBeginTime(), dataItem.getEndTime(), dataItem.getTimeType(), dataItem.getIndexStorageId()); + dataItem.getBeginTime(), dataItem.getEndTime(), dataItem.getTimeType(), dataItem.getEnergyType()); int count = Integer.parseInt(getLastDayOfMonth(aa).substring(getLastDayOfMonth(aa).length() - 2)); list.forEach(monthlyReport -> monthlyReport.setCount(count)); if (CollectionUtils.isNotEmpty(list)) { diff --git a/zhitan-admin/src/main/java/com/zhitan/web/controller/comprehensivestatistics/YearComprehensiveController.java b/zhitan-admin/src/main/java/com/zhitan/web/controller/comprehensivestatistics/YearComprehensiveController.java index fc5a46c..3f6a91b 100644 --- a/zhitan-admin/src/main/java/com/zhitan/web/controller/comprehensivestatistics/YearComprehensiveController.java +++ b/zhitan-admin/src/main/java/com/zhitan/web/controller/comprehensivestatistics/YearComprehensiveController.java @@ -74,7 +74,7 @@ i++; } List<YearComperhensive> list = yearComprehensive.getYearComprehensiveList(modelNode.getNodeId(), - dataList,dataItem.getBeginTime(), dataItem.getEndTime(), dataItem.getTimeType(),dataItem.getIndexStorageId()); + dataList,dataItem.getBeginTime(), dataItem.getEndTime(), dataItem.getTimeType(),dataItem.getEnergyType()); return AjaxResult.success(list); } catch (Exception ex) { logger.error("鑾峰彇鍑洪敊锛�", ex); @@ -92,7 +92,7 @@ dataItem.setBeginTime(DateUtil.beginOfYear(dataItem.getDataTime())); dataItem.setEndTime(DateUtil.endOfYear(dataItem.getDataTime())); - List<YearComperhensive> list = yearComprehensive.getListChart(dataItem.getIndexId(),dataItem.getBeginTime(),dataItem.getEndTime(), dataItem.getTimeType(),dataItem.getIndexStorageId()); + List<YearComperhensive> list = yearComprehensive.getListChart(dataItem.getIndexId(),dataItem.getBeginTime(),dataItem.getEndTime(), dataItem.getTimeType(),dataItem.getEnergyType()); return AjaxResult.success(list); } @@ -127,7 +127,7 @@ i++; } List<YearComperhensive> list = yearComprehensive.getYearComprehensiveList(modelNode.getNodeId(), - dataList,dataItem.getBeginTime(),dataItem.getEndTime(), dataItem.getTimeType(),dataItem.getIndexStorageId()); + dataList,dataItem.getBeginTime(),dataItem.getEndTime(), dataItem.getTimeType(),dataItem.getEnergyType()); if(CollectionUtils.isNotEmpty(list)){ list.forEach(this::valueRep); } diff --git a/zhitan-admin/src/main/java/com/zhitan/web/controller/energyMonitor/ElectricLoadController.java b/zhitan-admin/src/main/java/com/zhitan/web/controller/energyMonitor/ElectricLoadController.java index b20411c..be5615e 100644 --- a/zhitan-admin/src/main/java/com/zhitan/web/controller/energyMonitor/ElectricLoadController.java +++ b/zhitan-admin/src/main/java/com/zhitan/web/controller/energyMonitor/ElectricLoadController.java @@ -5,6 +5,7 @@ import com.zhitan.common.core.controller.BaseController; import com.zhitan.common.core.domain.AjaxResult; import com.zhitan.energyMonitor.domain.vo.ListElectricLoadVO; +import com.zhitan.energyMonitor.domain.vo.ListElectricityMeterVO; import com.zhitan.energyMonitor.service.IElectricLoadService; import com.zhitan.model.domain.EnergyIndex; import com.zhitan.model.service.IEnergyIndexService; @@ -16,6 +17,8 @@ import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestParam; import org.springframework.web.bind.annotation.RestController; + +import java.util.List; /** * @Description: 璐熻嵎鍒嗘瀽 @@ -50,7 +53,15 @@ @RequestParam(name = "timeCode") String timeCode) { EnergyIndex energyIndex = energyIndexService.getDeviceIndexByCode(nodeId, meterId, CommonConst.TAG_CODE_ZYGGL); - ListElectricLoadVO vo = electricLoadService.list(timeType, timeCode, energyIndex); + ListElectricLoadVO vo = electricLoadService.list(timeType, timeCode, energyIndex, meterId); + return AjaxResult.success(vo); + } + + @Log(title = "鑾峰彇鑺傜偣涓嬫墍鏈夌數琛�") + @ApiOperation(value = "鑾峰彇鑺傜偣涓嬫墍鏈夌數琛�", notes = "鑾峰彇鑺傜偣涓嬫墍鏈夌數琛�") + @GetMapping(value = "/listElectricMeter") + public AjaxResult listElectricMeter(@RequestParam(name = "nodeId") String nodeId) { + List<ListElectricityMeterVO> vo = electricLoadService.listElectricMeter(nodeId); return AjaxResult.success(vo); } diff --git a/zhitan-admin/src/main/java/com/zhitan/web/controller/keyequipment/DailyKeyEquipmenteController.java b/zhitan-admin/src/main/java/com/zhitan/web/controller/keyequipment/DailyKeyEquipmenteController.java index aa80c65..07dbc79 100644 --- a/zhitan-admin/src/main/java/com/zhitan/web/controller/keyequipment/DailyKeyEquipmenteController.java +++ b/zhitan-admin/src/main/java/com/zhitan/web/controller/keyequipment/DailyKeyEquipmenteController.java @@ -75,7 +75,7 @@ i++; }; startPage(); - List<DailyKeyEquipment> list = dailykeyEquipment.getdailyKeyEquipmentList(indexIds, dataList,dataItem.getBeginTime(),dataItem.getEndTime(), dataItem.getTimeType(),dataItem.getIndexStorageId()); + List<DailyKeyEquipment> list = dailykeyEquipment.getdailyKeyEquipmentList(indexIds, dataList,dataItem.getBeginTime(),dataItem.getEndTime(), dataItem.getTimeType(),dataItem.getEnergyType()); return getDataTable(list); } @@ -88,7 +88,7 @@ dataItem.setBeginTime(dataItem.getDataTime()); String endTime=aa+" 24:00:00"; dataItem.setEndTime(sf.parse(endTime)); - List<DailyKeyEquipment> list = dailykeyEquipment.getListChart(dataItem.getIndexId(),dataItem.getBeginTime(),dataItem.getEndTime(), dataItem.getTimeType(),dataItem.getIndexStorageId()); + List<DailyKeyEquipment> list = dailykeyEquipment.getListChart(dataItem.getIndexId(),dataItem.getBeginTime(),dataItem.getEndTime(), dataItem.getTimeType(),dataItem.getEnergyType()); return AjaxResult.success(list); } /*鎵�鏈夎澶�*/ diff --git a/zhitan-admin/src/main/java/com/zhitan/web/controller/keyequipment/MonthlyKeyEquipmentController.java b/zhitan-admin/src/main/java/com/zhitan/web/controller/keyequipment/MonthlyKeyEquipmentController.java index da8f636..7cb93ba 100644 --- a/zhitan-admin/src/main/java/com/zhitan/web/controller/keyequipment/MonthlyKeyEquipmentController.java +++ b/zhitan-admin/src/main/java/com/zhitan/web/controller/keyequipment/MonthlyKeyEquipmentController.java @@ -84,7 +84,7 @@ List<String> indexIds = energyList.stream().map(EnergyIndex::getIndexId).collect(Collectors.toList()); startPage(); - List<MonthlyKeyEquipment> list = monthlyKeyEquipmentService.getMonthlyKeyEquipmentList(indexIds, dataList,dataItem.getBeginTime(),dataItem.getEndTime(), dataItem.getTimeType(),dataItem.getIndexStorageId()); + List<MonthlyKeyEquipment> list = monthlyKeyEquipmentService.getMonthlyKeyEquipmentList(indexIds, dataList,dataItem.getBeginTime(),dataItem.getEndTime(), dataItem.getTimeType(),dataItem.getEnergyType()); int count=Integer.valueOf(getLastDayOfMonth(aa).substring(getLastDayOfMonth(aa).length()-2)); list.forEach(monthlyReport -> monthlyReport.setCount(count)); reportList.setTabledata(list); @@ -107,7 +107,7 @@ dataItem.setBeginTime(sf.parse(beginTime)); String endTime=aa+"-"+Integer.valueOf(getLastDayOfMonth(aa).substring(getLastDayOfMonth(aa).length()-2))+" 00:00:00"; dataItem.setEndTime(sf.parse(endTime)); - List<MonthlyKeyEquipment> list = monthlyKeyEquipmentService.getListChart(dataItem.getIndexId(),dataItem.getBeginTime(),dataItem.getEndTime(), dataItem.getTimeType(),dataItem.getIndexStorageId()); + List<MonthlyKeyEquipment> list = monthlyKeyEquipmentService.getListChart(dataItem.getIndexId(),dataItem.getBeginTime(),dataItem.getEndTime(), dataItem.getTimeType(),dataItem.getEnergyType()); return AjaxResult.success(list); } public static String getLastDayOfMonth(String yearMonth) { diff --git a/zhitan-admin/src/main/java/com/zhitan/web/controller/keyequipment/YearKeyEquipmentController.java b/zhitan-admin/src/main/java/com/zhitan/web/controller/keyequipment/YearKeyEquipmentController.java index 8f0c4c5..4b1b56b 100644 --- a/zhitan-admin/src/main/java/com/zhitan/web/controller/keyequipment/YearKeyEquipmentController.java +++ b/zhitan-admin/src/main/java/com/zhitan/web/controller/keyequipment/YearKeyEquipmentController.java @@ -4,7 +4,6 @@ import com.zhitan.common.core.controller.BaseController; import com.zhitan.common.core.domain.AjaxResult; import com.zhitan.common.core.page.TableDataInfo; -import com.zhitan.comprehensivestatistics.domain.YearComperhensive; import com.zhitan.keyequipment.domain.YearKeyEquipment; import com.zhitan.keyequipment.service.IYearKeyEquipmentService; import com.zhitan.model.domain.EnergyIndex; @@ -77,7 +76,7 @@ i++; } startPage(); - List<YearKeyEquipment> list = yearKeyEquipmentService.getYearKeyEquipmentList(indexIds, dataList,dataItem.getBeginTime(),dataItem.getEndTime(), dataItem.getTimeType(),dataItem.getIndexStorageId()); + List<YearKeyEquipment> list = yearKeyEquipmentService.getYearKeyEquipmentList(indexIds, dataList,dataItem.getBeginTime(),dataItem.getEndTime(), dataItem.getTimeType(),dataItem.getEnergyType()); return getDataTable(list); } @@ -85,7 +84,7 @@ @ApiOperation(value = "閲嶇偣璁惧鑳借�楃粺璁★紙骞达級鍥捐〃") public AjaxResult listChart(DataItem dataItem){ - List<YearKeyEquipment> list = yearKeyEquipmentService.getListChart(dataItem.getIndexId(),dataItem.getBeginTime(),dataItem.getEndTime(), dataItem.getTimeType(),dataItem.getIndexStorageId()); + List<YearKeyEquipment> list = yearKeyEquipmentService.getListChart(dataItem.getIndexId(),dataItem.getBeginTime(),dataItem.getEndTime(), dataItem.getTimeType(),dataItem.getEnergyType()); return AjaxResult.success(list); } } diff --git a/zhitan-common/src/main/java/com/zhitan/common/constant/CommonConst.java b/zhitan-common/src/main/java/com/zhitan/common/constant/CommonConst.java index c328731..73fea42 100644 --- a/zhitan-common/src/main/java/com/zhitan/common/constant/CommonConst.java +++ b/zhitan-common/src/main/java/com/zhitan/common/constant/CommonConst.java @@ -867,7 +867,7 @@ /** * 鎬绘湁鍔熷姛鐜囩偣浣嶆ā鏉縞ode */ - public static final String TAG_CODE_ZYGGL = "\\_ActivePower_Total"; + public static final String TAG_CODE_ZYGGL = "ActivePow"; /** * 鎬绘湁鍔熷姛鐜囩偣浣嶆ā鏉縞ode */ @@ -887,7 +887,7 @@ /** * 鎬诲姛鐜囧洜鏁� 鐐逛綅妯℃澘code */ - public static final String TAG_CODE_GLYS = "PowerFactor_Total"; + public static final String TAG_CODE_GLYS = "PowFactorT"; /** * 鐢垫祦 */ @@ -935,27 +935,27 @@ /** * A鐩哥數娴� */ - public static final String TAG_CODE_CURRENT_A = "Current_A"; + public static final String TAG_CODE_CURRENT_A = "CurrentA"; /** * B鐩哥數娴� */ - public static final String TAG_CODE_CURRENT_B = "Current_B"; + public static final String TAG_CODE_CURRENT_B = "CurrentB"; /** * C鐩哥數娴� */ - public static final String TAG_CODE_CURRENT_C = "Current_C"; + public static final String TAG_CODE_CURRENT_C = "CurrentC"; /** * A鐩哥數鍘� */ - public static final String TAG_CODE_VOLTAGE_A = "Voltage_A"; + public static final String TAG_CODE_VOLTAGE_A = "VoltageA"; /** * B鐩哥數鍘� */ - public static final String TAG_CODE_VOLTAGE_B = "Voltage_B"; + public static final String TAG_CODE_VOLTAGE_B = "VoltageB"; /** * C鐩哥數鍘� */ - public static final String TAG_CODE_VOLTAGE_C = "Voltage_C"; + public static final String TAG_CODE_VOLTAGE_C = "VoltageC"; /** * A鐩稿姛鐜囧洜鏁� */ diff --git a/zhitan-system/src/main/java/com/zhitan/basicdata/mapper/MeterImplementMapper.java b/zhitan-system/src/main/java/com/zhitan/basicdata/mapper/MeterImplementMapper.java index b744816..ae25bae 100644 --- a/zhitan-system/src/main/java/com/zhitan/basicdata/mapper/MeterImplementMapper.java +++ b/zhitan-system/src/main/java/com/zhitan/basicdata/mapper/MeterImplementMapper.java @@ -88,4 +88,12 @@ MeterImplement selectByNodeIdIndexId(@Param("nodeId") String nodeId, @Param("indexId") String indexId); List<MeterImplement> listMeterImplByInstallLocation(@Param("installactionLocation") String installactionLocation); + + /** + * 鏍规嵁鑺傜偣id鏌ヨ璁¢噺鍣ㄥ叿淇℃伅 + * + * @param nodeId + * @return + */ + List<MeterImplement> selectByNodeId(@Param("nodeId") String nodeId); } diff --git a/zhitan-system/src/main/java/com/zhitan/dataitem/service/impl/DataItemServiceImpl.java b/zhitan-system/src/main/java/com/zhitan/dataitem/service/impl/DataItemServiceImpl.java index 27fb12a..2256b65 100644 --- a/zhitan-system/src/main/java/com/zhitan/dataitem/service/impl/DataItemServiceImpl.java +++ b/zhitan-system/src/main/java/com/zhitan/dataitem/service/impl/DataItemServiceImpl.java @@ -158,18 +158,13 @@ if(ObjectUtils.isEmpty(modelNodes)){ throw new RuntimeException("鏈煡璇㈠埌妯″瀷淇℃伅"); } - Optional<ModelNode> modelNodeInfo = modelNodes.stream().findFirst(); - String nodeId = modelNodeInfo.map(ModelNode::getNodeId).toString(); + ModelNode modelNode = modelNodes.stream().findFirst().get(); + String nodeId = modelNode.getNodeId(); dto.setNodeId(nodeId); String energyType = dto.getEnergyType(); LocalDate queryTime = dto.getQueryTime(); TimeType timeType = dto.getTimeType(); - // 鑾峰彇鑺傜偣淇℃伅 - ModelNode modelNode = modelNodeMapper.selectModelNodeById(nodeId); - if (ObjectUtils.isEmpty(modelNode)) { - return flowChartsVO; - } // 鑾峰彇鏌ヨ鏃堕棿 Map<String, LocalDateTime> dateTimeMap = getDataItemByIndexId(timeType, queryTime); diff --git a/zhitan-system/src/main/java/com/zhitan/energyMonitor/service/IElectricLoadService.java b/zhitan-system/src/main/java/com/zhitan/energyMonitor/service/IElectricLoadService.java index f3c4448..cfc6098 100644 --- a/zhitan-system/src/main/java/com/zhitan/energyMonitor/service/IElectricLoadService.java +++ b/zhitan-system/src/main/java/com/zhitan/energyMonitor/service/IElectricLoadService.java @@ -1,7 +1,10 @@ package com.zhitan.energyMonitor.service; import com.zhitan.energyMonitor.domain.vo.ListElectricLoadVO; +import com.zhitan.energyMonitor.domain.vo.ListElectricityMeterVO; import com.zhitan.model.domain.EnergyIndex; + +import java.util.List; /** * @Description: @@ -14,5 +17,12 @@ /** * 鑾峰彇璐熻嵎鍒嗘瀽鏁版嵁 */ - ListElectricLoadVO list(String timeType, String timeCode, EnergyIndex energyIndex); + ListElectricLoadVO list(String timeType, String timeCode, EnergyIndex energyIndex, String meterId); + + /** + * 鑾峰彇鑺傜偣涓嬫墍鏈夌數琛� + * @param nodeId + * @return + */ + List<ListElectricityMeterVO> listElectricMeter(String nodeId); } diff --git a/zhitan-system/src/main/java/com/zhitan/energyMonitor/service/impl/ElectricLoadServiceImpl.java b/zhitan-system/src/main/java/com/zhitan/energyMonitor/service/impl/ElectricLoadServiceImpl.java index a01fd03..2e47b66 100644 --- a/zhitan-system/src/main/java/com/zhitan/energyMonitor/service/impl/ElectricLoadServiceImpl.java +++ b/zhitan-system/src/main/java/com/zhitan/energyMonitor/service/impl/ElectricLoadServiceImpl.java @@ -14,7 +14,9 @@ import com.zhitan.energyMonitor.domain.vo.ListElectricLoadDetail; import com.zhitan.energyMonitor.domain.vo.ListElectricLoadItem; import com.zhitan.energyMonitor.domain.vo.ListElectricLoadVO; +import com.zhitan.energyMonitor.domain.vo.ListElectricityMeterVO; import com.zhitan.energyMonitor.service.IElectricLoadService; +import com.zhitan.knowledgeBase.domain.enums.EnergyTypeEnum; import com.zhitan.model.domain.EnergyIndex; import com.zhitan.realtimedata.domain.TagValue; import com.zhitan.realtimedata.service.RealtimeDatabaseService; @@ -28,6 +30,7 @@ import java.util.ArrayList; import java.util.Date; import java.util.List; +import java.util.stream.Collectors; /** * @Description: sensor_alarm_item @@ -43,7 +46,7 @@ private MeterImplementMapper meterImplementMapper; @Override - public ListElectricLoadVO list(String timeType, String timeCode, EnergyIndex energyIndex) { + public ListElectricLoadVO list(String timeType, String timeCode, EnergyIndex energyIndex, String meterId) { ListElectricLoadVO vo = new ListElectricLoadVO(); List<ListElectricLoadItem> itemList = new ArrayList<>(); vo.setItemList(itemList); @@ -56,7 +59,7 @@ detail.setRate(CommonConst.DOUBLE_MINUS_SIGN); vo.setDetail(detail); - MeterImplement meterImplement = meterImplementMapper.selectById(energyIndex.getMeterId()); + MeterImplement meterImplement = meterImplementMapper.selectById(meterId); if (ObjectUtil.isEmpty(meterImplement)) { return vo; @@ -124,6 +127,7 @@ List<TagValue> minList = new ArrayList<>(); List<TagValue> avgList = new ArrayList<>(); if (TimeTypeConst.TIME_TYPE_DAY.equals(timeType)) { + } else { String tempTimeCode = StringUtil.ifEmptyOrNullReturnValue(timeCode).replace(CommonConst.SINGLE_MINUS_SIGN, CommonConst.EMPTY); Date start = DateTimeUtil.toDateTime(tempTimeCode, DateTimeUtil.COMMON_PATTERN_MONTH); @@ -230,13 +234,13 @@ TagValue rt3 = realtimeDatabaseService.statistics(code, date, endTime, CollectionModes.max); TagValue rt4 = realtimeDatabaseService.statistics(code, date, endTime, CollectionModes.min); TagValue rt2 = realtimeDatabaseService.statistics(code, date, endTime, CollectionModes.mean); - if (ObjectUtils.isNotEmpty(rt2.getValue())) { + if (ObjectUtils.isNotEmpty(rt2)) { temp.setAvg(String.valueOf(DoubleUtil.formatDouble(rt2.getValue()))); } - if (ObjectUtils.isNotEmpty(rt3.getValue())) { + if (ObjectUtils.isNotEmpty(rt3)) { temp.setMax(String.valueOf(DoubleUtil.formatDouble(rt3.getValue()))); } - if (ObjectUtils.isNotEmpty(rt4.getValue())) { + if (ObjectUtils.isNotEmpty(rt4)) { temp.setMin(String.valueOf(DoubleUtil.formatDouble(rt4.getValue()))); } } @@ -255,4 +259,20 @@ } + /** + * 鑾峰彇鐢佃〃鍒楄〃 + */ + @Override + public List<ListElectricityMeterVO> listElectricMeter(String nodeId) { + List<MeterImplement> meterImplements = meterImplementMapper.selectByNodeId(nodeId); + meterImplements = meterImplements.stream().filter(x -> "electric".equals(x.getEnergyType())).collect(Collectors.toList()); + List<ListElectricityMeterVO> list = new ArrayList<>(); + for (MeterImplement meterImplement : meterImplements) { + ListElectricityMeterVO vo = new ListElectricityMeterVO(); + vo.setCode(meterImplement.getId()); + vo.setLabel(meterImplement.getMeterName()); + list.add(vo); + } + return list; + } } diff --git a/zhitan-system/src/main/java/com/zhitan/model/mapper/EnergyIndexMapper.java b/zhitan-system/src/main/java/com/zhitan/model/mapper/EnergyIndexMapper.java index 3c4928a..3c02acc 100644 --- a/zhitan-system/src/main/java/com/zhitan/model/mapper/EnergyIndexMapper.java +++ b/zhitan-system/src/main/java/com/zhitan/model/mapper/EnergyIndexMapper.java @@ -99,5 +99,7 @@ Page<EnergyIndex> selectEnergyIndexPage(@Param("page")Page<?> page, @Param("query") EnergyIndexQuery energyIndexQuery); - List<EnergyIndex> getIndexByCode(@Param("code")String code, @Param("nodeId")String nodeId); + List<EnergyIndex> getIndexByCode(@Param("code")String code, @Param("nodeId")String nodeId); + + List<EnergyIndex> getIndexByMeterIdIndexCode(@Param("meterId") String meterId, @Param("indexCode") String indexCode, @Param("nodeId") String nodeId); } diff --git a/zhitan-system/src/main/java/com/zhitan/model/service/impl/EnergyIndexServiceImpl.java b/zhitan-system/src/main/java/com/zhitan/model/service/impl/EnergyIndexServiceImpl.java index aa5f76f..16d8a62 100644 --- a/zhitan-system/src/main/java/com/zhitan/model/service/impl/EnergyIndexServiceImpl.java +++ b/zhitan-system/src/main/java/com/zhitan/model/service/impl/EnergyIndexServiceImpl.java @@ -345,10 +345,8 @@ * @return */ public List<EnergyIndex> listDeviceIndexByCode(String nodeId, String meterId, String indexCode) { - return energyIndexMapper.selectList(Wrappers.<EnergyIndex>lambdaQuery() - .eq(EnergyIndex::getNodeId, nodeId) - .eq(EnergyIndex::getMeterId, meterId) - .like(EnergyIndex::getCode, indexCode)); + List<EnergyIndex> energyIndexList = energyIndexMapper.getIndexByMeterIdIndexCode(meterId,indexCode,nodeId); + return energyIndexList; } /** diff --git a/zhitan-system/src/main/java/com/zhitan/realtimedata/data/RealtimeDatabaseManager.java b/zhitan-system/src/main/java/com/zhitan/realtimedata/data/RealtimeDatabaseManager.java deleted file mode 100644 index f3914ff..0000000 --- a/zhitan-system/src/main/java/com/zhitan/realtimedata/data/RealtimeDatabaseManager.java +++ /dev/null @@ -1,163 +0,0 @@ -package com.zhitan.realtimedata.data; - -import com.influxdb.client.InfluxDBClient; -import com.influxdb.client.InfluxDBClientFactory; -import com.influxdb.client.domain.HealthCheck; -import com.zhitan.common.enums.CollectionModes; -import com.zhitan.common.enums.RetrievalModes; -import com.zhitan.realtimedata.config.RtdbConfig; -import com.zhitan.realtimedata.domain.TagValue; -import com.zhitan.realtimedata.service.RealtimeDatabase; -import org.apache.commons.lang3.StringUtils; -import org.apache.logging.log4j.LogManager; -import org.apache.logging.log4j.Logger; -import org.springframework.stereotype.Component; - -import java.util.ArrayList; -import java.util.Date; -import java.util.List; -import java.util.Optional; - -/** - * @author 鑼冩柊瀵� 瀹炴椂鏁版嵁搴撹闂鐞�. - */ -@Component -public class RealtimeDatabaseManager { - - private final RealtimeDatabase connection; - - private final Logger logger = LogManager.getLogger(RealtimeDatabaseManager.class); - - public RealtimeDatabaseManager(RtdbConfig config) { - connection = new VirtualRtdb(); - try { - InfluxDBClient influxDBClient = InfluxDBClientFactory.create(config.getHost(), - config.getToken().toCharArray(), config.getOrg(), config.getBucket()); - - logger.error("--------------------瀹炴椂搴撹繛鎺ユ垚鍔�--------------------"); - HealthCheck health = influxDBClient.health(); - if (health.getStatus() == HealthCheck.StatusEnum.FAIL) { - influxDBClient.close(); - } - } catch (Exception e) { - logger.error(e); - } - } - - public TagValue retrieve(String tagCode) { - List<String> tagCodes = new ArrayList<>(); - tagCodes.add(tagCode); - List<TagValue> tagValues = retrieve(tagCodes); - if (!tagValues.isEmpty()) { - return tagValues.get(0); - } - - return null; - } - - public List<TagValue> retrieve(List<String> tagCodes) { - List<TagValue> tagValues = new ArrayList<>(); - try { - tagValues = connection.retrieve(tagCodes); - } catch (Exception e) { - logger.error(e); - } - - return tagValues; - } - - public TagValue retrieve(String tagCode, Date dataTime, String timeCode) { - List<String> tagCodes = new ArrayList<>(); - tagCodes.add(tagCode); - List<TagValue> tagValues = retrieve(tagCodes, dataTime, timeCode); - if (!tagValues.isEmpty()) { - return tagValues.get(0); - } - - return null; - } - - public List<TagValue> retrieve(List<String> tagCodes, Date dataTime, String timeCode) { - List<TagValue> tagValues = new ArrayList<>(); - try { - List<TagValue> tmp = connection.retrieve(tagCodes, dataTime, timeCode); - for (String tagCode : tagCodes) { - Optional<TagValue> tagValue = tmp.stream() - .filter(f -> StringUtils.equalsIgnoreCase(f.getTagCode(), tagCode)).findAny(); - TagValue value; - if (!tagValue.isPresent()) { - value = new TagValue(); - value.setTagCode(tagCode); - value.setDataTime(dataTime); - } else { - value = tagValue.get(); - } - - tagValues.add(value); - } - } catch (Exception e1) { - logger.error(e1); - } - - return tagValues; - } - - public List<TagValue> retrieve(String tagCode, Date beginTime, Date endTime, - RetrievalModes retrievalModes, int pointCount) { - List<String> tagCodes = new ArrayList<>(); - tagCodes.add(tagCode); - return retrieve(tagCodes, beginTime, endTime, retrievalModes, pointCount); - } - - public List<TagValue> retrieve(List<String> tagCodes, Date beginTime, Date endTime, - RetrievalModes retrievalModes, int pointCount) { - List<TagValue> tagValues = new ArrayList<>(); - try { - tagValues = connection.retrieve(tagCodes, beginTime, endTime, retrievalModes, pointCount); - } catch (Exception e1) { - logger.error(e1); - } - - return tagValues; - } - - public TagValue statistics(String tagCode, Date beginTime, Date endTime, - CollectionModes collectionModes) { - List<String> tagCodes = new ArrayList<>(); - tagCodes.add(tagCode); - List<TagValue> tagValues = statistics(tagCodes, beginTime, endTime, collectionModes); - if (!tagValues.isEmpty()) { - return tagValues.get(0); - } - - return null; - } - - public List<TagValue> statistics(List<String> tagCodes, Date beginTime, Date endTime, - CollectionModes collectionModes) { - List<TagValue> tagValues = new ArrayList<>(); - try { - tagValues = connection.statistics(tagCodes, beginTime, endTime, collectionModes); - } catch (Exception e1) { - logger.error(e1); - } - - return tagValues; - } - - public void storeData(List<TagValue> tagValues) { - try { - connection.storeData(tagValues); - } catch (Exception e1) { - logger.error(e1); - } - } - - public void insertData(List<TagValue> tagValues) { - try { - connection.insertData(tagValues); - } catch (Exception e1) { - logger.error(e1); - } - } -} diff --git a/zhitan-system/src/main/java/com/zhitan/realtimedata/domain/DataItem.java b/zhitan-system/src/main/java/com/zhitan/realtimedata/domain/DataItem.java index e5127f0..08eac67 100644 --- a/zhitan-system/src/main/java/com/zhitan/realtimedata/domain/DataItem.java +++ b/zhitan-system/src/main/java/com/zhitan/realtimedata/domain/DataItem.java @@ -17,8 +17,8 @@ @ApiModelProperty(value = "鎸囨爣id") private String indexId; - @ApiModelProperty(value = "鎸囨爣搴搃d") - private String indexStorageId; + @ApiModelProperty(value = "鑳芥簮鍝佺") + private String energyType; @ApiModelProperty(value = "鎸囨爣code") private String indexCode; @ApiModelProperty(value = "鎸囨爣鍚嶇О") @@ -54,12 +54,12 @@ this.indexId = indexId; } - public String getIndexStorageId() { - return indexStorageId; + public String getEnergyType() { + return energyType; } - public void setIndexStorageId(String indexStorageId) { - this.indexStorageId = indexStorageId; + public void setEnergyType(String energyType) { + this.energyType = energyType; } public String getIndexCode() { diff --git a/zhitan-system/src/main/java/com/zhitan/realtimedata/service/impl/RealtimeDatabaseServiceImpl.java b/zhitan-system/src/main/java/com/zhitan/realtimedata/service/impl/RealtimeDatabaseServiceImpl.java index 9e16113..796fa5f 100644 --- a/zhitan-system/src/main/java/com/zhitan/realtimedata/service/impl/RealtimeDatabaseServiceImpl.java +++ b/zhitan-system/src/main/java/com/zhitan/realtimedata/service/impl/RealtimeDatabaseServiceImpl.java @@ -6,11 +6,12 @@ import com.zhitan.common.enums.CollectionModes; import com.zhitan.common.enums.GroupTimeType; import com.zhitan.common.enums.RetrievalModes; -import com.zhitan.realtimedata.data.RealtimeDatabaseManager; import com.zhitan.realtimedata.data.influxdb.InfluxDBRepository; import com.zhitan.realtimedata.domain.TagValue; import com.zhitan.realtimedata.service.RealtimeDatabaseService; import org.apache.commons.collections4.CollectionUtils; +import org.joda.time.DateTime; +import org.joda.time.Seconds; import org.springframework.stereotype.Service; import java.util.*; @@ -23,11 +24,10 @@ private final InfluxDBRepository repository; - private final RealtimeDatabaseManager realtimeDatabaseManager; - public RealtimeDatabaseServiceImpl(InfluxDBRepository repository, RealtimeDatabaseManager realtimeDatabaseManager) { + public RealtimeDatabaseServiceImpl(InfluxDBRepository repository + ) { this.repository = repository; - this.realtimeDatabaseManager = realtimeDatabaseManager; } /** @@ -115,7 +115,7 @@ @Override public TagValue statistics(String tagCode, Date beginTime, Date endTime, CollectionModes collectionModes) { List<TagValue> tagValues = repository.statistics(Collections.singletonList(tagCode), beginTime, endTime, collectionModes); - return CollectionUtils.isEmpty(tagValues) ? tagValues.get(0) : null; + return CollectionUtils.isNotEmpty(tagValues) ? tagValues.get(0) : null; } /** @@ -169,6 +169,15 @@ @Override public List<TagValue> retrieve(String tagCode, Date beginTime, Date endTime, RetrievalModes retrievalModes, int pointCount) { - return realtimeDatabaseManager.retrieve(tagCode, beginTime, endTime, retrievalModes, pointCount); + repository.getHistoryData(Collections.singletonList(tagCode), beginTime, endTime, pointCount); + pointCount = retrievalModes == RetrievalModes.Full ? 200 : pointCount; + int span = + Seconds.secondsBetween(new DateTime(beginTime), new DateTime(endTime)).getSeconds(); + int interval = span / pointCount; + List<String> tagCodes = new ArrayList<>(); + tagCodes.add(tagCode); + List<TagValue> historyData = repository.getHistoryData(tagCodes, beginTime, endTime, interval); + return historyData; +// return realtimeDatabaseManager.retrieve(tagCode, beginTime, endTime, retrievalModes, pointCount); } } diff --git a/zhitan-system/src/main/resources/mapper/basicdata/MeterImplementMapper.xml b/zhitan-system/src/main/resources/mapper/basicdata/MeterImplementMapper.xml index 9635b86..da977d8 100644 --- a/zhitan-system/src/main/resources/mapper/basicdata/MeterImplementMapper.xml +++ b/zhitan-system/src/main/resources/mapper/basicdata/MeterImplementMapper.xml @@ -4,7 +4,7 @@ "http://mybatis.org/dtd/mybatis-3-mapper.dtd"> <mapper namespace="com.zhitan.basicdata.mapper.MeterImplementMapper"> - <resultMap type="MeterImplement" id="MeterImplementResult"> + <resultMap type="com.zhitan.basicdata.domain.MeterImplement" id="MeterImplementResult"> <result property="id" column="id" /> <result property="code" column="code" /> <result property="meterName" column="meter_name" /> @@ -31,7 +31,7 @@ <result property="gatewayId" column="gateway_id" /> <result property="gatewayName" column="gateway_name" /> </resultMap> - <resultMap type="MeterImplementExcel" id="MeterImplementResultExcel"> + <resultMap type="com.zhitan.basicdata.domain.MeterImplementExcel" id="MeterImplementResultExcel"> <result property="id" column="id" /> <result property="code" column="code" /> <result property="meterName" column="meter_name" /> @@ -59,7 +59,7 @@ select id,energy_type, code, meter_name, meter_type, model_number, measure_range, manufacturer, person_charge, installaction_location, start_time, check_cycle, reminder_cycle, meter_status, del_flage, remark, putrun_time,create_time, create_by, update_time, update_by,(start_time+check_cycle-reminder_cycle)<=current_date as txflage,wire_diameter,max_allowable_power,gateway_id,gateway_name from meter_implement </sql> - <select id="selectMeterImplementList" parameterType="MeterImplement" resultMap="MeterImplementResult"> + <select id="selectMeterImplementList" parameterType="com.zhitan.basicdata.domain.MeterImplement" resultMap="MeterImplementResult"> <include refid="selectMeterImplementVo"/> <where> del_flage='N' @@ -73,7 +73,7 @@ order by code </select> - <select id="exectMeterImplementList" parameterType="MeterImplement" resultMap="MeterImplementResultExcel"> + <select id="exectMeterImplementList" parameterType="com.zhitan.basicdata.domain.MeterImplement" resultMap="MeterImplementResultExcel"> select id,energy_type, code, meter_name, fun_getDiceData('sys_device_type',meter_status) as meter_type, model_number, measure_range, manufacturer, person_charge, installaction_location, to_char(start_time,'YYYY-MM-DD') start_time, check_cycle, reminder_cycle, fun_getDiceData('meter_status',meter_status) as meter_status, del_flage, remark, create_time, create_by, update_time, update_by,wire_diameter,max_allowable_power,gateway_name @@ -95,7 +95,7 @@ where id = #{id} </select> - <select id="selectMeterImplementByCode" parameterType="MeterImplement" resultMap="MeterImplementResult"> + <select id="selectMeterImplementByCode" parameterType="com.zhitan.basicdata.domain.MeterImplement" resultMap="MeterImplementResult"> <include refid="selectMeterImplementVo"/> where code = #{code} <if test="id != null and id != ''"> and id != #{id} or id is null</if> @@ -133,8 +133,16 @@ installaction_location = #{installactionLocation} </where> </select> + <select id="selectByNodeId" resultType="com.zhitan.basicdata.domain.MeterImplement"> + <include refid="selectMeterImplementVo"/> + mi + left join node_device nd on mi.id = nd.device_id + where + mi.del_flage = 'N' + AND nd.node_id = #{nodeId} + </select> - <insert id="insertMeterImplement" parameterType="MeterImplement"> + <insert id="insertMeterImplement" parameterType="com.zhitan.basicdata.domain.MeterImplement"> insert into meter_implement <trim prefix="(" suffix=")" suffixOverrides=","> <if test="id != null and id != ''">id,</if> @@ -192,7 +200,7 @@ </trim> </insert> - <update id="updateMeterImplement" parameterType="MeterImplement"> + <update id="updateMeterImplement" parameterType="com.zhitan.basicdata.domain.MeterImplement"> update meter_implement <trim prefix="SET" suffixOverrides=","> <if test="code != null and code != ''">code = #{code},</if> diff --git a/zhitan-system/src/main/resources/mapper/model/EnergyIndexMapper.xml b/zhitan-system/src/main/resources/mapper/model/EnergyIndexMapper.xml index 3ea43ac..78d0144 100644 --- a/zhitan-system/src/main/resources/mapper/model/EnergyIndexMapper.xml +++ b/zhitan-system/src/main/resources/mapper/model/EnergyIndexMapper.xml @@ -391,4 +391,21 @@ </if> </where> </select> + <select id="getIndexByMeterIdIndexCode" resultType="com.zhitan.model.domain.EnergyIndex"> + SELECT ei.code,mi.meter_name||'_'||ei.name as name from energy_index ei + LEFT JOIN node_device nd on ei.meter_id = nd.device_id + LEFT JOIN meter_implement mi on mi."id" = nd.device_id + <where> + <if test="nodeId != null and nodeId != ''">and nd.node_id = #{nodeId}</if> + <if test="indexCode != null and indexCode != ''"> + and (mi.meter_name like concat('%', #{indexCode}, '%') + or ei.code like concat('%', #{indexCode}, '%') + or ei.name like concat('%', #{indexCode}, '%') + ) + </if> + <if test="meterId != null and meterId != ''"> + and ei.meter_id = #{meterId} + </if> + </where> + </select> </mapper> diff --git a/zhitan-vue/src/api/energyAnalysis/energyAnalysis.js b/zhitan-vue/src/api/energyAnalysis/energyAnalysis.js index 510703c..cbb5712 100644 --- a/zhitan-vue/src/api/energyAnalysis/energyAnalysis.js +++ b/zhitan-vue/src/api/energyAnalysis/energyAnalysis.js @@ -1,54 +1,62 @@ -import request from '@/utils/request' +import request from "@/utils/request" // 鑳借�楀姣斿垎鏋�-鍖哄煙鑳借�楀垎鏋�-鑳借�楄秼鍔�/鍖哄煙鑳借�楃粺璁″垎鏋愯〃-鍒楄〃 // 鑳借�楀姣斿垎鏋�-绉戝鑳借�楀垎鏋�-鑳借�楄秼鍔�/鑳借�楃粺璁″垎鏋愯〃-鍒楄〃 // 鑳借�楀姣斿垎鏋�-璁惧鑳借�楀垎鏋�-鑳借�楄秼鍔�/鑳借�楃粺璁″垎鏋愯〃-鍒楄〃 export function listRegion(query) { return request({ - url: '/consumptionanalysis/getByArea', - method: 'get', - params: query + url: "/consumptionanalysis/getByArea", + method: "get", + params: query, }) } // 鑳借�楀姣斿垎鏋�-绉戝鑳借�楀垎鏋�-鑳借�楁帓鍚�-鍒楄〃 // 鑳借�楀姣斿垎鏋�-璁惧鑳借�楀垎鏋�-鑳借�楁帓鍚�-鍒楄〃 export function listDepartment(query) { return request({ - url: '/consumptionanalysis/getByDepartment', - method: 'get', - params: query + url: "/consumptionanalysis/getByDepartment", + method: "get", + params: query, }) } // 鑳借�楀姣斿垎鏋�-鑳借�楁寚鏍囪�冩牳-鑳借�楄秼鍔�/鍖哄煙鑳借�楃粺璁″垎鏋愯〃 export function listIndicatorassessment(query) { return request({ - url: '/consumptionanalysis/getPlanAndProdCount', - method: 'get', - params: query + url: "/consumptionanalysis/getPlanAndProdCount", + method: "get", + params: query, }) } // 鑳借�楀姣斿垎鏋�-缁煎悎鑳借�楀垎鏋�-缁煎悎鑳借�楄秼鍔�/鍚勪粙璐ㄨ兘鑰楀崰姣�/鍖哄煙鑳借�楃粺璁″垎鏋愯〃-鍒楄〃 export function listComprehensive(query) { return request({ - url: '/consumptionanalysis/getComprehensiveEnergy', - method: 'get', - params: query + url: "/consumptionanalysis/getComprehensiveEnergy", + method: "get", + params: query, }) } // 鑳借�楀姣斿垎鏋�-缁煎悎鑳借�楀垎鏋�-鑳借�楀悓姣旂幆姣�-鍒楄〃 export function listYoY(query) { return request({ - url: '/consumptionanalysis/getYOY', - method: 'get', - params: query + url: "/consumptionanalysis/getYOY", + method: "get", + params: query, }) } // 鑳借�楀姣斿垎鏋�-缁煎悎鑳借�楀垎鏋�-鐢ㄨ兘鍗曞厓鑳借�楁帓鍚�-鍒楄〃 export function listEnergyRanking(query) { return request({ - url: '/consumptionanalysis/getEnergyRanking', - method: 'get', - params: query + url: "/consumptionanalysis/getEnergyRanking", + method: "get", + params: query, }) } +// statisticsAnalysis/getFlowCharts +export function getFlowCharts(query) { + return request({ + url: "/statisticsAnalysis/getFlowCharts", + method: "get", + params: query, + }) +} diff --git a/zhitan-vue/src/views/deepanalysis/deepAnalysis.vue b/zhitan-vue/src/views/deepanalysis/deepAnalysis.vue index 11e5ea0..c4b13c4 100644 --- a/zhitan-vue/src/views/deepanalysis/deepAnalysis.vue +++ b/zhitan-vue/src/views/deepanalysis/deepAnalysis.vue @@ -4,19 +4,28 @@ <el-form :model="form" ref="queryRef" :inline="true" label-width="80px"> <el-form-item label="鑳芥簮绫诲瀷" prop="energyType"> <el-select v-model="form.energyType" placeholder="璇烽�夋嫨鑳芥簮绫诲瀷"> - <el-option :label="item.enername" :value="item.enersno" v-for="item in energyTypeList" - :key="item.enersno" /> + <el-option + :label="item.enername" + :value="item.enersno" + v-for="item in energyTypeList" + :key="item.enersno" + /> </el-select> </el-form-item> - <el-form-item label="鏈熼棿" prop="timeType" > + <el-form-item label="鏈熼棿" prop="timeType"> <el-select v-model="form.timeType" placeholder="鏈熼棿" clearable style="width: 120px" @change="handleTimeType"> <el-option v-for="dict in period" :key="dict.value" :label="dict.label" :value="dict.value" /> </el-select> </el-form-item> <el-form-item label="鏃堕棿閫夋嫨" prop="dataTime"> - <el-date-picker v-if="form.type == 1" v-model="form.dataTime" type="year" /> - <el-date-picker v-else-if="form.type == 2" v-model="form.dataTime" type="month" format="YYYY-MM" - value-format="YYYY-MM" /> + <el-date-picker v-if="form.timeType == 'YEAR'" v-model="form.dataTime" type="year" /> + <el-date-picker + v-else-if="form.timeType == 'MONTH'" + v-model="form.dataTime" + type="month" + format="YYYY-MM" + value-format="YYYY-MM" + /> <el-date-picker v-else v-model="form.dataTime" type="date" format="YYYY-MM-DD" value-format="YYYY-MM-DD" /> </el-form-item> <el-form-item> @@ -46,178 +55,245 @@ </div> </template> <script setup> -import useSettingsStore from '@/store/modules/settings' -import { listEnergyTypeList } from "@/api/modelConfiguration/energyType"; +import useSettingsStore from "@/store/modules/settings" +import { listEnergyTypeList } from "@/api/modelConfiguration/energyType" +import { getFlowCharts } from "@/api/energyAnalysis/energyAnalysis" const settingsStore = useSettingsStore() -import * as echarts from 'echarts'; +import * as echarts from "echarts" let { proxy } = getCurrentInstance() -import { onMounted } from 'vue'; -const { period } = proxy.useDict("period"); +import { nextTick, onMounted } from "vue" +const { period } = proxy.useDict("period") +console.log(period) let form = ref({ energyType: null, timeType: null, dataTime: null, }) function handleTimeType(e) { - form.value.timeType = e; - form.value.dataTime = proxy.dayjs(new Date()).format("YYYY-MM-DD"); + form.value.timeType = e + form.value.dataTime = proxy.dayjs(new Date()).format("YYYY-MM-DD") + getData() } -const energyTypeList = ref(); +const energyTypeList = ref() function getEnergyTypeList() { listEnergyTypeList().then((res) => { - energyTypeList.value = res.data; + energyTypeList.value = res.data form.value.energyType = energyTypeList.value[0].enersno - handleTimeType(period.value[0].value); - }); + handleTimeType(period.value[0].value) + }) } -getEnergyTypeList() function handleSelect(e) { console.log(e, form.value.type) if (form.value.type == 1) { - form.value.time = proxy.dayjs().format('YYYY') + form.value.time = proxy.dayjs().format("YYYY") } else if (form.value.type == 2) { - form.value.time = proxy.dayjs().format('YYYY-MM') + form.value.time = proxy.dayjs().format("YYYY-MM") } else { - form.value.time = proxy.dayjs().format('YYYY-MM-DD') + form.value.time = proxy.dayjs().format("YYYY-MM-DD") } } -function handleQuery() { } +function handleQuery() { + getData() +} function resetQuery() { form.value = { type: 1, - time: proxy.dayjs().format('YYYY'), + time: proxy.dayjs().format("YYYY"), } } -import icon1 from '@/assets/images/period/icon1.png' -import icon2 from '@/assets/images/period/icon2.png' -import icon3 from '@/assets/images/period/icon3.png' -import icon4 from '@/assets/images/period/icon4.png' -import icon5 from '@/assets/images/period/icon5.png' +import icon1 from "@/assets/images/period/icon1.png" +import icon2 from "@/assets/images/period/icon2.png" +import icon3 from "@/assets/images/period/icon3.png" +import icon4 from "@/assets/images/period/icon4.png" +import icon5 from "@/assets/images/period/icon5.png" const periodList = ref([ { icon: icon1, color: "#3371eb", title: "绱鑳借��", - data: '1000.1 m鲁' + data: "1000.1 m鲁", }, { icon: icon3, color: "#ff6200", title: "鍒嗚〃鑳借��", - data: ' 0 m鲁' + data: " 0 m鲁", }, { icon: icon4, color: "#ffce0c", title: "鎹熷け閲�", - data: '1000.1 m鲁' + data: "1000.1 m鲁", }, { icon: icon5, color: "#78e801", title: "鎹熷け姣斾緥", - data: '100.00%' + data: "100.00%", }, ]) -watch(() => settingsStore.sideTheme, (val) => { - getChart() -}) +const flowData = ref({}) +function getData() { + getFlowCharts({ + energyType: form.value.energyType, + nodeId: "", + queryTime: form.value.dataTime, + timeType: form.value.timeType, + modelCode: proxy.$route.query.modelCode, + }).then((res) => { + periodList.value[0].data = res.data.totalAccumulatedAmount + periodList.value[1].data = res.data.childNodeAccumulatedAmount + periodList.value[2].data = res.data.difference + periodList.value[3].data = res.data.energyLossRatio + "%" + flowData.value = res.data.itemVOList + nextTick(() => { + getChart() + }) + }) +} + +watch( + () => settingsStore.sideTheme, + (val) => { + getChart() + } +) function getChart() { + let colors = ["#FBB4AE", "#B3CDE3", "#CCEBC5", "#DECBE4", "#5470C6"] + let mydata = [] + let mylinks = [] + if (flowData.value.length) { + mylinks = flowData.value || [] + let nodes = [] + mylinks.forEach((element) => { + nodes.push(element.source) + nodes.push(element.target) + }) + mydata = Array.from(new Set(nodes)).map((item) => { + return { + name: item, + } + }) + } + console.log(mydata) + console.log(mylinks) - - let colors = ['#FBB4AE', '#B3CDE3', '#CCEBC5', '#DECBE4', '#5470C6']; - let mydata = [ - { name: 'L1', itemStyle: { color: colors[0] }, depth: 0 }, - { name: 'L1-1', itemStyle: { color: colors[0] }, depth: 0 }, - { name: 'L1-2', itemStyle: { color: colors[0] }, depth: 0 }, - { name: 'L1-3', itemStyle: { color: colors[0] }, depth: 0 }, - - - { name: 'L2', itemStyle: { color: colors[1] }, depth: 1 }, - { name: 'L2-1', itemStyle: { color: colors[1] }, depth: 1 }, - { name: 'L2-2', itemStyle: { color: colors[1] }, depth: 1 }, - { name: 'L2-3', itemStyle: { color: colors[1] }, depth: 1 }, - - - { name: 'L3', itemStyle: { color: colors[2] }, depth: 2 }, - { name: 'L3-1', itemStyle: { color: colors[2] }, depth: 2 }, - { name: 'L3-2', itemStyle: { color: colors[2] }, depth: 2 }, - - - { name: 'L4', itemStyle: { color: colors[3] }, depth: 3 }, - - - - ]; - // mydata.reverse() - let mylinks = [ - // L1鈫扡4 9720 - { source: 'L1', target: 'L4', value: 9720 }, - // L2鈫扡4 24396 - { source: 'L2', target: 'L4', value: 24396 }, - // L3鈫扡4 1462 - { source: 'L3', target: 'L4', value: 1462 }, - - // L1鈫扡2鈫扡3鈫扡4 215 - { source: 'L1-1', target: 'L2-1', value: 215 }, - { source: 'L2-1', target: 'L3-1', value: 215 }, - { source: 'L3-1', target: 'L4', value: 215 }, - - // L1鈫扡2鈫扡4 4518 - { source: 'L1-2', target: 'L2-2', value: 4518 }, - { source: 'L2-2', target: 'L4', value: 4518 }, - // L1鈫扡3鈫扡4 217 - { source: 'L1-3', target: 'L3-2', value: 217 }, - { source: 'L3-2', target: 'L4', value: 217 }, - - // L2鈫扡3鈫扡4 893 - { source: 'L2-3', target: 'L3-3', value: 893 }, - { source: 'L3-3', target: 'L4', value: 893 }, - - ]; - - - const myChart1 = echarts.init(document.getElementById("Chart1")); + const myChart1 = echarts.init(document.getElementById("Chart1")) myChart1.setOption({ tooltip: { - trigger: 'item', - triggerOn: 'mousemove', + trigger: "item", + triggerOn: "mousemove", }, - series: { - type: 'sankey', - lineStyle: { - opacity: 0.3, - color: 'gradient', - curveness: 0.7, + // series: { + // type: "sankey", + // lineStyle: { + // opacity: 0.3, + // color: "gradient", + // curveness: 0.7, + // }, + // // nodeAlign: 'left', + // nodeGap: 18, + // layoutIterations: 1, + // emphasis: { + // focus: "adjacency", + // }, + // data: mydata, + // links: mylinks, + // }, + series: [ + { + type: "sankey", + left: 50.0, + top: 20.0, + right: 100.0, + bottom: 25.0, + data: mydata, + links: mylinks, + nodeGap: 18, + layoutIterations: 1, + //emphasis: { + // focus: 'adjacency', + //}, + nodeAlign: "left", + lineStyle: { + color: "source", + curveness: 0.7, + opacity: 0.3, + }, + itemStyle: { + color: "#333", + borderColor: "#1f77b4", + }, + // label: { + // color: "rgba(0,0,0,0.7)", + // fontSize: 10, + // }, + levels: [ + { + depth: 0, + itemStyle: { + color: colors[0], + }, + lineStyle: { + color: "source", + opacity: 0.3, + }, + }, + { + depth: 1, + itemStyle: { + color: colors[1], + }, + lineStyle: { + color: "source", + opacity: 0.3, + }, + }, + { + depth: 2, + itemStyle: { + color: colors[2], + }, + lineStyle: { + color: "source", + opacity: 0.3, + }, + }, + { + depth: 3, + itemStyle: { + color: colors[3], + }, + lineStyle: { + color: "source", + opacity: 0.3, + }, + }, + ], }, - // nodeAlign: 'left', - nodeGap: 18, - layoutIterations: 1, - emphasis: { - focus: 'adjacency', - }, - data: mydata, - links: mylinks, - }, + ], }) - window.addEventListener("resize", () => { - myChart1.resize(); - }, { passive: true }); + window.addEventListener( + "resize", + () => { + myChart1.resize() + }, + { passive: true } + ) } onMounted(() => { - getChart() + getEnergyTypeList() }) </script> <style scoped lang="scss"> @import "@/assets/styles/page.scss"; .themeDark { - .card-list { display: flex; justify-content: space-between; @@ -295,7 +371,7 @@ height: 167px; background: #fff; border-radius: 5px 5px 5px 5px; - border: 1px solid #E8E8E8; + border: 1px solid #e8e8e8; background-size: 100% 100%; box-sizing: border-box; padding: 20px 18px 23px 16px; @@ -337,7 +413,7 @@ font-family: OPPOSans, OPPOSans; font-weight: 500; font-size: 14px; - color: #5D5C5C; + color: #5d5c5c; } .bottom-right { @@ -360,4 +436,4 @@ height: 100%; } } -</style> \ No newline at end of file +</style> -- Gitblit v1.9.3