From de0da7fedd0474fa8f78c592f86216d3d50407f0 Mon Sep 17 00:00:00 2001 From: zt916916 <1903964620@qq.com> Date: 星期四, 27 三月 2025 11:33:25 +0800 Subject: [PATCH] Revert "支路用能分析" --- zhitan-system/src/main/java/com/zhitan/branchanalysis/service/IBranchAnalysisService.java | 16 ++ zhitan-system/src/main/java/com/zhitan/branchanalysis/mapper/BranchAnalysisMapper.java | 26 ++++ zhitan-admin/src/main/resources/application-dev.yml | 6 zhitan-framework/src/main/java/com/zhitan/framework/web/service/SysLoginService.java | 2 zhitan-system/src/main/java/com/zhitan/model/domain/vo/ModelNodeIndexInfor.java | 3 zhitan-system/src/main/java/com/zhitan/branchanalysis/service/impl/BranchAnalysisServiceImpl.java | 90 +++++++++++++++ zhitan-system/src/main/resources/mapper/branchanalysis/BranchAnalysisMapper.xml | 60 ++++++++++ zhitan-common/src/main/java/com/zhitan/common/utils/PropUtils.java | 4 zhitan-system/src/main/java/com/zhitan/branchanalysis/domain/BranchAnalysisVO.java | 75 ++++++++++++ zhitan-admin/src/main/java/com/zhitan/web/controller/branchanalysis/BranchEnergyAnalysisController.java | 37 ++++++ zhitan-system/src/main/java/com/zhitan/realtimedata/domain/dto/BranchAnalysisDTO.java | 17 ++ 11 files changed, 329 insertions(+), 7 deletions(-) diff --git a/zhitan-admin/src/main/java/com/zhitan/web/controller/branchanalysis/BranchEnergyAnalysisController.java b/zhitan-admin/src/main/java/com/zhitan/web/controller/branchanalysis/BranchEnergyAnalysisController.java new file mode 100644 index 0000000..4b7d035 --- /dev/null +++ b/zhitan-admin/src/main/java/com/zhitan/web/controller/branchanalysis/BranchEnergyAnalysisController.java @@ -0,0 +1,37 @@ +package com.zhitan.web.controller.branchanalysis; + +import com.zhitan.branchanalysis.domain.BranchAnalysisVO; +import com.zhitan.common.core.controller.BaseController; +import com.zhitan.common.core.domain.AjaxResult; +import com.zhitan.branchanalysis.service.IBranchAnalysisService; + +import com.zhitan.realtimedata.domain.dto.BranchAnalysisDTO; +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiOperation; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RestController; + +/** + *鏀矾鐢ㄨ兘鍒嗘瀽 + * + * @author zt + * @date 2021-01-11 + */ +@RestController +@RequestMapping("/branchanalysis") +@Api(value = "鏀矾鐢ㄨ兘鑳借�楃粺璁�",tags = {"鏀矾鐢ㄨ兘鍒嗘瀽"}) +public class BranchEnergyAnalysisController extends BaseController { + + @Autowired + private IBranchAnalysisService branchAnalysisService; + + @GetMapping("/list") + @ApiOperation(value = "鏀矾鐢ㄨ兘鑳借�楃粺璁″垪琛�") + public AjaxResult list(BranchAnalysisDTO dataItem) { + BranchAnalysisVO vo = branchAnalysisService.getBranchAnalysisService(dataItem); + return success(vo); + } +} + diff --git a/zhitan-admin/src/main/resources/application-dev.yml b/zhitan-admin/src/main/resources/application-dev.yml index faa025f..2dc8bff 100644 --- a/zhitan-admin/src/main/resources/application-dev.yml +++ b/zhitan-admin/src/main/resources/application-dev.yml @@ -6,9 +6,9 @@ druid: # 涓诲簱鏁版嵁婧� master: - url: jdbc:postgresql://127.0.0.1:5432/zhitan_ems - username: postgres - password: postgres + url: jdbc:postgresql://192.168.110.124:5432/energy_localized + username: energy_localized + password: HaxFsKYFjwzKCDFd # 浠庡簱鏁版嵁婧� slave: # 浠庢暟鎹簮寮�鍏�/榛樿鍏抽棴 diff --git a/zhitan-common/src/main/java/com/zhitan/common/utils/PropUtils.java b/zhitan-common/src/main/java/com/zhitan/common/utils/PropUtils.java index 411b6e5..1be9af3 100644 --- a/zhitan-common/src/main/java/com/zhitan/common/utils/PropUtils.java +++ b/zhitan-common/src/main/java/com/zhitan/common/utils/PropUtils.java @@ -1,6 +1,7 @@ package com.zhitan.common.utils; import com.alibaba.fastjson.JSONObject; +import com.zhitan.common.constant.CommonConst; import java.lang.reflect.Field; import java.math.BigDecimal; @@ -34,7 +35,8 @@ field.set(obj, DoubleUtil.toDouble(value)); } else if (nameTypeName.contains("bigdecimal")) { BigDecimal valueOf = BigDecimal.valueOf(Double.parseDouble(String.valueOf(value))) - .setScale(2, BigDecimal.ROUND_HALF_UP); + .setScale(CommonConst.DIGIT_2, BigDecimal.ROUND_HALF_UP); + field.set(obj, valueOf); } else { field.set(obj, value); diff --git a/zhitan-framework/src/main/java/com/zhitan/framework/web/service/SysLoginService.java b/zhitan-framework/src/main/java/com/zhitan/framework/web/service/SysLoginService.java index be2716a..89ddfce 100644 --- a/zhitan-framework/src/main/java/com/zhitan/framework/web/service/SysLoginService.java +++ b/zhitan-framework/src/main/java/com/zhitan/framework/web/service/SysLoginService.java @@ -61,7 +61,7 @@ public String login(String username, String password, String code, String uuid) { // 楠岃瘉鐮佹牎楠� - validateCaptcha(username, code, uuid); +// validateCaptcha(username, code, uuid); // 鐧诲綍鍓嶇疆鏍¢獙 loginPreCheck(username, password); // 鐢ㄦ埛楠岃瘉 diff --git a/zhitan-system/src/main/java/com/zhitan/branchanalysis/domain/BranchAnalysisVO.java b/zhitan-system/src/main/java/com/zhitan/branchanalysis/domain/BranchAnalysisVO.java new file mode 100644 index 0000000..d92116d --- /dev/null +++ b/zhitan-system/src/main/java/com/zhitan/branchanalysis/domain/BranchAnalysisVO.java @@ -0,0 +1,75 @@ +package com.zhitan.branchanalysis.domain; +import com.zhitan.common.annotation.Excel; +import lombok.Data; + +@Data +public class BranchAnalysisVO { + private String until; + private double total; + @Excel(name = "鑺傜偣id") + private String nodeId; + @Excel(name = "瀛楄妭鍚嶇О") + private String nodeName; + @Excel(name = "1鏃�/1鏃�/1鏈�") + private Double value0; + @Excel(name = "2鏃�/2鏃�/2鏈�") + private Double value1; + @Excel(name = "3鏃�/3鏃�/3鏈�") + private Double value2; + @Excel(name = "4鏃�/4鏃�/4鏈�") + private Double value3; + @Excel(name = "5鏃�/5鏃�/5鏈�") + private Double value4; + @Excel(name = "6鏃�/6鏃�/6鏈�") + private Double value5; + @Excel(name = "7鏃�/7鏃�/7鏈�") + private Double value6; + @Excel(name = "8鏃�/8鏃�/8鏈�") + private Double value7; + @Excel(name = "9鏃�/9鏃�/9鏈�") + private Double value8; + @Excel(name = "10鏃�/10鏃�/10鏈�") + private Double value9; + @Excel(name = "11鏃�/11鏃�/11鏈�") + private Double value10; + @Excel(name = "12鏃�/12鏃�/12鏈�") + private Double value11; + @Excel(name = "13鏃�/13鏃�") + private Double value12; + @Excel(name = "14鏃�/14鏃�") + private Double value13; + @Excel(name = "15鏃�/15鏃�") + private Double value14; + @Excel(name = "16鏃�/16鏃�") + private Double value15; + @Excel(name = "17鏃�/17鏃�") + private Double value16; + @Excel(name = "18鏃�18鏃�") + private Double value17; + @Excel(name = "19鏃�/19鏃�") + private Double value18; + @Excel(name = "20鏃�/20鏃�") + private Double value19; + @Excel(name = "21鏃�/21鏃�") + private Double value20; + @Excel(name = "22鏃�/22鏃�") + private Double value21; + @Excel(name = "23鏃�/23鏃�") + private Double value22; + @Excel(name = "24鏃�/24鏃�") + private Double value23; + @Excel(name = "25鏃�") + private Double value24; + @Excel(name = "26鏃�") + private Double value25; + @Excel(name = "27鏃�") + private Double value26; + @Excel(name = "28鏃�") + private Double value27; + @Excel(name = "29鏃�") + private Double value28; + @Excel(name = "30鏃�") + private Double value29; + @Excel(name = "31鏃�") + private Double value30; +} diff --git a/zhitan-system/src/main/java/com/zhitan/branchanalysis/mapper/BranchAnalysisMapper.java b/zhitan-system/src/main/java/com/zhitan/branchanalysis/mapper/BranchAnalysisMapper.java new file mode 100644 index 0000000..d6d482d --- /dev/null +++ b/zhitan-system/src/main/java/com/zhitan/branchanalysis/mapper/BranchAnalysisMapper.java @@ -0,0 +1,26 @@ +package com.zhitan.branchanalysis.mapper; + +import com.zhitan.branchanalysis.domain.BranchAnalysisVO; +import com.zhitan.common.utils.TypeTime; +import org.apache.ibatis.annotations.Param; + +import java.util.Date; +import java.util.List; + +/** + *鏀矾鐢ㄨ兘鍒嗘瀽 + * + * @author sys + * @date 2021-01-11 + */ +public interface BranchAnalysisMapper { + public List<BranchAnalysisVO> getBranchAnalysisList(@Param("indexIds") List<String> indexIds, + @Param("dataList") List<TypeTime> dataList, + @Param("beginTime") Date beginTime, + @Param("endTime") Date endTime, + @Param("timeType") String timeType, + @Param("indexStorageId") String indexStorageId); + + +} + diff --git a/zhitan-system/src/main/java/com/zhitan/branchanalysis/service/IBranchAnalysisService.java b/zhitan-system/src/main/java/com/zhitan/branchanalysis/service/IBranchAnalysisService.java new file mode 100644 index 0000000..d5d04c3 --- /dev/null +++ b/zhitan-system/src/main/java/com/zhitan/branchanalysis/service/IBranchAnalysisService.java @@ -0,0 +1,16 @@ +package com.zhitan.branchanalysis.service; + + +import com.zhitan.branchanalysis.domain.BranchAnalysisVO; +import com.zhitan.realtimedata.domain.dto.BranchAnalysisDTO; + + +public interface IBranchAnalysisService { + /** + * 鏀矾鐢ㄨ兘鍒嗘瀽 + * + * @author sys + * @date 2021-01-11 + */ + BranchAnalysisVO getBranchAnalysisService(BranchAnalysisDTO dataItem); +} diff --git a/zhitan-system/src/main/java/com/zhitan/branchanalysis/service/impl/BranchAnalysisServiceImpl.java b/zhitan-system/src/main/java/com/zhitan/branchanalysis/service/impl/BranchAnalysisServiceImpl.java new file mode 100644 index 0000000..82f5062 --- /dev/null +++ b/zhitan-system/src/main/java/com/zhitan/branchanalysis/service/impl/BranchAnalysisServiceImpl.java @@ -0,0 +1,90 @@ +package com.zhitan.branchanalysis.service.impl; + +import cn.hutool.core.date.DateTime; +import cn.hutool.core.date.DateUtil; +import cn.hutool.core.util.ObjectUtil; +import com.zhitan.branchanalysis.domain.BranchAnalysisVO; +import com.zhitan.common.constant.TimeTypeConst; +import com.zhitan.common.exception.ServiceException; +import com.zhitan.common.utils.DateTimeUtil; +import com.zhitan.branchanalysis.service.IBranchAnalysisService; +import com.zhitan.common.utils.PropUtils; +import com.zhitan.dataitem.mapper.DataItemMapper; +import com.zhitan.model.domain.vo.ModelNodeIndexInfor; +import com.zhitan.model.mapper.ModelNodeMapper; +import com.zhitan.realtimedata.domain.DataItem; +import com.zhitan.realtimedata.domain.dto.BranchAnalysisDTO; +import lombok.AllArgsConstructor; +import org.springframework.stereotype.Service; + +import java.util.Date; +import java.util.List; +import java.util.stream.Collectors; + +/** + * c + * + * @author sys + * @date 2021-01-11 + */ +@Service +@AllArgsConstructor +public class BranchAnalysisServiceImpl implements IBranchAnalysisService { + + private ModelNodeMapper modelNodeMapper; + private DataItemMapper dataItemMapper; + + @Override + public BranchAnalysisVO getBranchAnalysisService(BranchAnalysisDTO dto) { + String timeType = dto.getTimeType(); + String dataTime = dto.getDataTime(); + Date beginTime = DateTimeUtil.getTypeTime(timeType, dataTime); + DateTime endTime = null; + + List<ModelNodeIndexInfor> nodeIndexInfo = modelNodeMapper.getModelNodeIndexIdByNodeId(dto.getNodeId(), dto.getEnergyType()); + List<String> indexlist = nodeIndexInfo.stream().map(ModelNodeIndexInfor::getIndexId).collect(Collectors.toList()); + + if (ObjectUtil.isEmpty(indexlist)) { + return new BranchAnalysisVO(); + } + + ModelNodeIndexInfor info = nodeIndexInfo.stream().findFirst().get(); + + //鏍规嵁鏃堕棿绫诲瀷璋冩暣鏃堕棿鑼冨洿 + switch (dto.getTimeType()) { + case TimeTypeConst.TIME_TYPE_DAY: + timeType = TimeTypeConst.TIME_TYPE_HOUR; + endTime = DateUtil.endOfDay(beginTime); + break; + case TimeTypeConst.TIME_TYPE_MONTH: + timeType = TimeTypeConst.TIME_TYPE_DAY; + endTime = DateUtil.endOfMonth(beginTime); + break; + case TimeTypeConst.TIME_TYPE_YEAR: + timeType = TimeTypeConst.TIME_TYPE_MONTH; + endTime = DateUtil.endOfYear(beginTime); + break; + default: + throw new ServiceException("鏃堕棿鏍煎紡閿欒"); + } + //鑾峰彇鏁版嵁椤瑰垪琛� + List<DataItem> dataItemlist = dataItemMapper.getDataItemTimeRangeInforByIndexIds(beginTime, endTime, timeType, indexlist); + + BranchAnalysisVO vo = new BranchAnalysisVO(); + double sum = dataItemlist.stream().mapToDouble(DataItem::getValue).sum(); + vo.setTotal(sum); + if (ObjectUtil.isNotEmpty(info.getIndexId())) { + vo.setUntil(info.getUnitId()); + } + + vo.setNodeId(info.getNodeId()); + vo.setNodeName(info.getName()); + for (int i = 0; i < dataItemlist.size(); i++) { + PropUtils.setValue(vo, "value" + i, dataItemlist.get(i).getValue()); + } + + return vo; + + + } +} diff --git a/zhitan-system/src/main/java/com/zhitan/model/domain/vo/ModelNodeIndexInfor.java b/zhitan-system/src/main/java/com/zhitan/model/domain/vo/ModelNodeIndexInfor.java index 559f6c3..a4c0de4 100644 --- a/zhitan-system/src/main/java/com/zhitan/model/domain/vo/ModelNodeIndexInfor.java +++ b/zhitan-system/src/main/java/com/zhitan/model/domain/vo/ModelNodeIndexInfor.java @@ -34,10 +34,9 @@ */ private String energyId; + private String indexType; /** * 鍗曚綅 */ private String unitId; - - private String indexType; } diff --git a/zhitan-system/src/main/java/com/zhitan/realtimedata/domain/dto/BranchAnalysisDTO.java b/zhitan-system/src/main/java/com/zhitan/realtimedata/domain/dto/BranchAnalysisDTO.java new file mode 100644 index 0000000..cdb93b7 --- /dev/null +++ b/zhitan-system/src/main/java/com/zhitan/realtimedata/domain/dto/BranchAnalysisDTO.java @@ -0,0 +1,17 @@ +package com.zhitan.realtimedata.domain.dto; + +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; +@Data +public class BranchAnalysisDTO { + + + @ApiModelProperty(value="鑺傜偣id") + private String nodeId; + @ApiModelProperty(value ="鏃堕棿瀛楃涓�") + private String dataTime; + @ApiModelProperty(value ="鏃堕棿绫诲瀷") + private String timeType; + @ApiModelProperty(value = "鑳芥簮绫诲瀷") + private String energyType; +} diff --git a/zhitan-system/src/main/resources/mapper/branchanalysis/BranchAnalysisMapper.xml b/zhitan-system/src/main/resources/mapper/branchanalysis/BranchAnalysisMapper.xml new file mode 100644 index 0000000..db0ed23 --- /dev/null +++ b/zhitan-system/src/main/resources/mapper/branchanalysis/BranchAnalysisMapper.xml @@ -0,0 +1,60 @@ +<?xml version="1.0" encoding="UTF-8" ?> +<!DOCTYPE mapper + PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" + "http://mybatis.org/dtd/mybatis-3-mapper.dtd"> +<mapper namespace="com.zhitan.branchanalysis.mapper.BranchAnalysisMapper"> + <resultMap id="dataItemMap" type="com.zhitan.branchanalysis.domain.BranchAnalysisVO"> + <result column="index_id" property="indexId"/> + <result column="index_name" property="indexName"/> + <result column="time_type" property="timeType"/> + <result column="time_code" property="timeCode"/> + <result column="unit_id" property="unitId"/> + <result column="value1" property="value1"/> + <result column="value2" property="value2"/> + <result column="value3" property="value3"/> + <result column="value4" property="value4"/> + <result column="value5" property="value5"/> + <result column="value6" property="value6"/> + <result column="value7" property="value7"/> + <result column="value8" property="value8"/> + <result column="value9" property="value9"/> + <result column="value10" property="value10"/> + <result column="value11" property="value11"/> + <result column="value12" property="value12"/> + </resultMap> + <!--鍏ㄥ巶鑳借�楃粺璁�--> + <select id="getBranchAnalysisList" resultMap="dataItemMap"> + SELECT + aa.index_id, + aa.index_name, + <foreach item="item" index="index" collection="dataList"> + MAX ( CASE WHEN data_time = #{item.dateTime} THEN "value" END ) AS ${item.value}, + </foreach> + aa.time_type + FROM + ( + SELECT + ci.index_id, + ci.NAME AS "index_name", + di."value", + di.data_time, + di.time_type + FROM + data_item di LEFT JOIN energy_index ci ON di.index_id = ci.index_id + LEFT JOIN facility_archives f ON f."id"=ci.equipment + WHERE + di.data_time >= #{beginTime} + AND di.data_time < #{endTime} + AND di.index_id IN + <foreach item="indexId" index="index" collection="indexIds" open="(" separator="," close=")"> + #{indexId} + </foreach> + AND di.time_type = #{timeType} + <if test="indexStorageId !='' and indexStorageId !=null"> + and ci.energy_id=#{indexStorageId} + </if> + ) aa + GROUP BY + aa.index_id,aa.index_name,aa.time_type + </select> +</mapper> -- Gitblit v1.9.3