!67 !66 电能质量分析,匹配模板编码
Merge pull request !67 from zhitan-cloud/develop1.0
| | |
| | | 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); |
| | |
| | | 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); |
| | | } |
| | | |
| | |
| | | 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); |
| | |
| | | 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) { |
| | |
| | | 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)) { |
| | |
| | | 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); |
| | |
| | | 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); |
| | | } |
| | | |
| | |
| | | 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); |
| | | } |
| | |
| | | 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; |
| | |
| | | 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: è´è·åæ |
| | |
| | | @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); |
| | | } |
| | | |
| | |
| | | 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); |
| | | } |
| | | |
| | |
| | | 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); |
| | | } |
| | | /*ææè®¾å¤*/ |
| | |
| | | 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); |
| | |
| | | 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) { |
| | |
| | | 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; |
| | |
| | | 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); |
| | | } |
| | | |
| | |
| | | @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); |
| | | } |
| | | } |
| | |
| | | /** |
| | | * æ»æååçç¹ä½æ¨¡æ¿code |
| | | */ |
| | | public static final String TAG_CODE_ZYGGL = "\\_ActivePower_Total"; |
| | | public static final String TAG_CODE_ZYGGL = "ActivePow"; |
| | | /** |
| | | * æ»æååçç¹ä½æ¨¡æ¿code |
| | | */ |
| | |
| | | /** |
| | | * æ»åçå æ° ç¹ä½æ¨¡æ¿code |
| | | */ |
| | | public static final String TAG_CODE_GLYS = "PowerFactor_Total"; |
| | | public static final String TAG_CODE_GLYS = "PowFactorT"; |
| | | /** |
| | | * çµæµ |
| | | */ |
| | |
| | | /** |
| | | * 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ç¸åçå æ° |
| | | */ |
| | |
| | | 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); |
| | | } |
| | |
| | | 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); |
| | | |
| | |
| | | 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: |
| | |
| | | /** |
| | | * è·åè´è·åææ°æ® |
| | | */ |
| | | 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); |
| | | } |
| | |
| | | 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; |
| | |
| | | import java.util.ArrayList; |
| | | import java.util.Date; |
| | | import java.util.List; |
| | | import java.util.stream.Collectors; |
| | | |
| | | /** |
| | | * @Description: sensor_alarm_item |
| | |
| | | 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); |
| | |
| | | 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; |
| | |
| | | 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); |
| | |
| | | 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()))); |
| | | } |
| | | } |
| | |
| | | } |
| | | |
| | | |
| | | /** |
| | | * è·åçµè¡¨å表 |
| | | */ |
| | | @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; |
| | | } |
| | | } |
| | |
| | | |
| | | 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); |
| | | } |
| | |
| | | * @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; |
| | | } |
| | | |
| | | /** |
| | |
| | | |
| | | @ApiModelProperty(value = "ææ id") |
| | | private String indexId; |
| | | @ApiModelProperty(value = "ææ åºid") |
| | | private String indexStorageId; |
| | | @ApiModelProperty(value = "è½æºåç§") |
| | | private String energyType; |
| | | @ApiModelProperty(value = "ææ code") |
| | | private String indexCode; |
| | | @ApiModelProperty(value = "ææ åç§°") |
| | |
| | | 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() { |
| | |
| | | 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.*; |
| | |
| | | |
| | | private final InfluxDBRepository repository; |
| | | |
| | | private final RealtimeDatabaseManager realtimeDatabaseManager; |
| | | |
| | | public RealtimeDatabaseServiceImpl(InfluxDBRepository repository, RealtimeDatabaseManager realtimeDatabaseManager) { |
| | | public RealtimeDatabaseServiceImpl(InfluxDBRepository repository |
| | | ) { |
| | | this.repository = repository; |
| | | this.realtimeDatabaseManager = realtimeDatabaseManager; |
| | | } |
| | | |
| | | /** |
| | |
| | | @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; |
| | | } |
| | | |
| | | /** |
| | |
| | | @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); |
| | | } |
| | | } |
| | |
| | | "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" /> |
| | |
| | | <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" /> |
| | |
| | | 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' |
| | |
| | | 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 |
| | |
| | | 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> |
| | |
| | | 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> |
| | |
| | | </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> |
| | |
| | | </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> |
| | |
| | | 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, |
| | | }) |
| | | } |
| | |
| | | <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> |
| | |
| | | </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âL4 9720 |
| | | { source: 'L1', target: 'L4', value: 9720 }, |
| | | // L2âL4 24396 |
| | | { source: 'L2', target: 'L4', value: 24396 }, |
| | | // L3âL4 1462 |
| | | { source: 'L3', target: 'L4', value: 1462 }, |
| | | |
| | | // L1âL2âL3âL4 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âL2âL4 4518 |
| | | { source: 'L1-2', target: 'L2-2', value: 4518 }, |
| | | { source: 'L2-2', target: 'L4', value: 4518 }, |
| | | // L1âL3âL4 217 |
| | | { source: 'L1-3', target: 'L3-2', value: 217 }, |
| | | { source: 'L3-2', target: 'L4', value: 217 }, |
| | | |
| | | // L2âL3âL4 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; |
| | |
| | | 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; |
| | |
| | | font-family: OPPOSans, OPPOSans; |
| | | font-weight: 500; |
| | | font-size: 14px; |
| | | color: #5D5C5C; |
| | | color: #5d5c5c; |
| | | } |
| | | |
| | | .bottom-right { |
| | |
| | | height: 100%; |
| | | } |
| | | } |
| | | </style> |
| | | </style> |