zhitan-admin/src/main/java/com/zhitan/web/controller/energyMonitor/ElectricLoadController.java
@@ -4,10 +4,8 @@ import com.zhitan.common.constant.CommonConst; import com.zhitan.common.core.controller.BaseController; import com.zhitan.common.core.domain.AjaxResult; import com.zhitan.energyMonitor.domain.EnergyUnitToDevice; import com.zhitan.energyMonitor.domain.vo.ListElectricLoadVO; import com.zhitan.energyMonitor.service.IElectricLoadService; import com.zhitan.energyMonitor.service.IEnergyUnitToDeviceService; import com.zhitan.model.domain.EnergyIndex; import com.zhitan.model.service.IEnergyIndexService; import io.swagger.annotations.Api; @@ -31,8 +29,6 @@ @Slf4j public class ElectricLoadController extends BaseController { @Autowired private IEnergyUnitToDeviceService energyUnitToDeviceService; @Autowired private IElectricLoadService electricLoadService; @Autowired private IEnergyIndexService energyIndexService; @@ -40,23 +36,21 @@ /** * æ ¹æ®çµè¡¨idè·åè´è·åææ°æ® * * @param energyUnitId ç¨è½åå id * @param meterId çµè¡¨id * @param timeType æ¶é´ç±»å DAY/MONTH/YEAR * @param timeCode æ¶é´å¼ 䏿¶é´ç±»å对åºï¼2022-03-21/2022-03/2022 * @return * @param nodeId ç¨è½åå id * @param meterId çµè¡¨id * @param timeType æ¶é´ç±»å DAY/MONTH/YEAR * @param timeCode æ¶é´å¼ 䏿¶é´ç±»å对åºï¼2022-03-21/2022-03/2022 */ @Log(title = "æ ¹æ®çµè¡¨idè·åè´è·åææ°æ®") @ApiOperation(value = "æ ¹æ®çµè¡¨idè·åè´è·åææ°æ®", notes = "æ ¹æ®çµè¡¨idè·åè´è·åææ°æ®") @GetMapping(value = "/detail") public AjaxResult list(@RequestParam(name = "energyUnitId") String energyUnitId, public AjaxResult list(@RequestParam(name = "nodeId") String nodeId, @RequestParam(name = "meterId") String meterId, @RequestParam(name = "timeType") String timeType, @RequestParam(name = "timeCode") String timeCode) { EnergyIndex energyIndex = energyIndexService.getDeviceIndexByCode(energyUnitId, meterId, CommonConst.TAG_CODE_ZYGGL); EnergyIndex energyIndex = energyIndexService.getDeviceIndexByCode(nodeId, meterId, CommonConst.TAG_CODE_ZYGGL); EnergyUnitToDevice energyUnitToDevice = energyUnitToDeviceService.getEnergyUnitToDeviceById(energyUnitId, meterId); ListElectricLoadVO vo = electricLoadService.list(timeType, timeCode, energyIndex, energyUnitToDevice); ListElectricLoadVO vo = electricLoadService.list(timeType, timeCode, energyIndex); return AjaxResult.success(vo); } zhitan-system/src/main/java/com/zhitan/energyMonitor/domain/ElectricLoadEntity.java
ÎļþÒÑɾ³ý zhitan-system/src/main/java/com/zhitan/energyMonitor/domain/EnergyUnitToDevice.java
ÎļþÒÑɾ³ý zhitan-system/src/main/java/com/zhitan/energyMonitor/mapper/ElectricLoadMapper.java
ÎļþÒÑɾ³ý zhitan-system/src/main/java/com/zhitan/energyMonitor/mapper/EnergyUnitToDeviceMapper.java
ÎļþÒÑɾ³ý zhitan-system/src/main/java/com/zhitan/energyMonitor/service/IElectricLoadService.java
@@ -1,8 +1,5 @@ package com.zhitan.energyMonitor.service; import com.baomidou.mybatisplus.extension.service.IService; import com.zhitan.energyMonitor.domain.ElectricLoadEntity; import com.zhitan.energyMonitor.domain.EnergyUnitToDevice; import com.zhitan.energyMonitor.domain.vo.ListElectricLoadVO; import com.zhitan.model.domain.EnergyIndex; @@ -12,15 +9,10 @@ * @Date: 2022-04-19 * @Version: V1.0 */ public interface IElectricLoadService extends IService<ElectricLoadEntity> { public interface IElectricLoadService { /** * è·åè´è·åææ°æ® * * @param timeType * @param timeCode * @param energyIndex * @return */ ListElectricLoadVO list(String timeType, String timeCode, EnergyIndex energyIndex, EnergyUnitToDevice energyUnitToDevice); ListElectricLoadVO list(String timeType, String timeCode, EnergyIndex energyIndex); } zhitan-system/src/main/java/com/zhitan/energyMonitor/service/IEnergyUnitToDeviceService.java
ÎļþÒÑɾ³ý zhitan-system/src/main/java/com/zhitan/energyMonitor/service/impl/ElectricLoadServiceImpl.java
@@ -1,7 +1,8 @@ package com.zhitan.energyMonitor.service.impl; import cn.hutool.core.util.ObjectUtil; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.zhitan.basicdata.domain.MeterImplement; import com.zhitan.basicdata.mapper.MeterImplementMapper; import com.zhitan.common.constant.CommonConst; import com.zhitan.common.constant.TimeTypeConst; import com.zhitan.common.enums.CollectionModes; @@ -10,12 +11,9 @@ import com.zhitan.common.utils.DateTimeUtil; import com.zhitan.common.utils.DoubleUtil; import com.zhitan.common.utils.StringUtil; import com.zhitan.energyMonitor.domain.ElectricLoadEntity; import com.zhitan.energyMonitor.domain.EnergyUnitToDevice; 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.mapper.ElectricLoadMapper; import com.zhitan.energyMonitor.service.IElectricLoadService; import com.zhitan.model.domain.EnergyIndex; import com.zhitan.realtimedata.domain.TagValue; @@ -26,6 +24,7 @@ import org.springframework.stereotype.Service; import org.springframework.util.CollectionUtils; import javax.annotation.Resource; import java.util.ArrayList; import java.util.Date; import java.util.List; @@ -37,12 +36,14 @@ * @Version: V1.0 */ @Service public class ElectricLoadServiceImpl extends ServiceImpl<ElectricLoadMapper, ElectricLoadEntity> implements IElectricLoadService { public class ElectricLoadServiceImpl implements IElectricLoadService { @Autowired private RealtimeDatabaseService realtimeDatabaseService; @Resource private MeterImplementMapper meterImplementMapper; @Override public ListElectricLoadVO list(String timeType, String timeCode, EnergyIndex energyIndex, EnergyUnitToDevice energyUnitToDevice) { public ListElectricLoadVO list(String timeType, String timeCode, EnergyIndex energyIndex) { ListElectricLoadVO vo = new ListElectricLoadVO(); List<ListElectricLoadItem> itemList = new ArrayList<>(); vo.setItemList(itemList); @@ -54,16 +55,19 @@ detail.setAvg(CommonConst.DOUBLE_MINUS_SIGN); detail.setRate(CommonConst.DOUBLE_MINUS_SIGN); vo.setDetail(detail); if (ObjectUtil.isEmpty(energyIndex) || ObjectUtil.isEmpty(energyUnitToDevice)) { MeterImplement meterImplement = meterImplementMapper.selectById(energyIndex.getMeterId()); if (ObjectUtil.isEmpty(meterImplement)) { return vo; } List<Date> dateList = new ArrayList<>(); ChartUtils.generateDateList(timeType, timeCode, dateList); // å 为influxdb没ææç §æåç»åæ°æ®ï¼åªè½æç §æ¥æå¾ªç¯åæ°æ® if (TimeTypeConst.TIME_TYPE_YEAR.equals(timeType)) { getYearData(timeType, dateList, energyIndex, energyUnitToDevice, detail, itemList); getYearData(timeType, dateList, energyIndex, meterImplement.getMeterName(), itemList); } else { getDayAndMonthData(timeType, timeCode, energyIndex, energyUnitToDevice, detail, itemList); getDayAndMonthData(timeType, timeCode, energyIndex, meterImplement.getMeterName(), itemList); } if (!StringUtil.isEmptyOrNull(energyIndex.getCode())) { Date start = ChartUtils.getDateTime(timeType, timeCode); @@ -113,15 +117,8 @@ /** * è·åæåå¤©æ°æ®,å 为influxdbå¯ä»¥æç §åãæ¶ã天åç»åæ°ï¼ä¸å¯ä»¥æç §æåç»åæ°ï¼æä»¥åæä¸¤ä¸ªæ¹æ³æ¥å * * @param timeType * @param timeCode * @param energyIndex * @param energyUnitToDevice * @param detail * @param itemList */ private void getDayAndMonthData(String timeType, String timeCode, EnergyIndex energyIndex, EnergyUnitToDevice energyUnitToDevice, ListElectricLoadDetail detail, List<ListElectricLoadItem> itemList) { private void getDayAndMonthData(String timeType, String timeCode, EnergyIndex energyIndex, String meterName, List<ListElectricLoadItem> itemList) { String tagCodes = energyIndex.getCode(); List<TagValue> maxList = new ArrayList<>(); List<TagValue> minList = new ArrayList<>(); @@ -165,7 +162,7 @@ for (Date date : dateList) { ListElectricLoadItem temp = new ListElectricLoadItem(); temp.setTimeCode(ChartUtils.getTimeCode(timeType, date)); temp.setName(ObjectUtils.isNotEmpty(energyUnitToDevice) ? energyUnitToDevice.getName() : ""); temp.setName(ObjectUtils.isNotEmpty(meterName) ? meterName : ""); temp.setMax(CommonConst.DOUBLE_MINUS_SIGN); temp.setMin(CommonConst.DOUBLE_MINUS_SIGN); temp.setAvg(CommonConst.DOUBLE_MINUS_SIGN); @@ -219,15 +216,8 @@ /** * è·åå¹´æ°æ® * * @param timeType * @param dateList * @param energyIndex * @param energyUnitToDevice * @param detail * @param itemList */ private void getYearData(String timeType, List<Date> dateList, EnergyIndex energyIndex, EnergyUnitToDevice energyUnitToDevice, ListElectricLoadDetail detail, List<ListElectricLoadItem> itemList) { private void getYearData(String timeType, List<Date> dateList, EnergyIndex energyIndex, String meterName, List<ListElectricLoadItem> itemList) { String tagCode = StringUtil.ifEmptyOrNullReturnValue(energyIndex.getCode()); for (Date date : dateList) { ListElectricLoadItem temp = new ListElectricLoadItem(); @@ -253,7 +243,7 @@ temp.setTimeCode(ChartUtils.getTimeCode(timeType, date)); temp.setTimeCodeChart(ChartUtils.getTimeCodeChart(timeType, date)); temp.setName(StringUtil.ifEmptyOrNullReturnValue(energyUnitToDevice.getName())); temp.setName(StringUtil.ifEmptyOrNullReturnValue(meterName)); temp.setRate(CommonConst.DOUBLE_MINUS_SIGN); temp.setValue(CommonConst.DOUBLE_MINUS_SIGN); if (!temp.getMax().equals(CommonConst.DOUBLE_MINUS_SIGN) && Double.parseDouble(temp.getMax()) != CommonConst.DIGIT_DOUBLE_0) { zhitan-system/src/main/java/com/zhitan/energyMonitor/service/impl/EnergyUnitToDeviceServiceImpl.java
ÎļþÒÑɾ³ý zhitan-system/src/main/java/com/zhitan/model/domain/EnergyIndex.java
@@ -75,6 +75,7 @@ @ApiModelProperty(value = "表计id") private String meterId; @ApiModelProperty(value = "顺åºå·") @Excel(name = "顺åºå·") private int orderNum; @@ -85,35 +86,9 @@ @ApiModelProperty(value = "id") private String energyId; /** * ç¨è½åå id */ private String energyUnitId; /** * åå å°è®¾å¤çid */ private String energyUnitToDeviceId; @Transient @TableField(exist = false) private String meterName; public String getEnergyUnitId() { return energyUnitId; } public String getEnergyUnitToDeviceId() { return energyUnitToDeviceId; } public void setEnergyUnitId(String energyUnitId) { this.energyUnitId = energyUnitId; } public void setEnergyUnitToDeviceId(String energyUnitToDeviceId) { this.energyUnitToDeviceId = energyUnitToDeviceId; } public void setIndexId(String indexId) { this.indexId = indexId; zhitan-system/src/main/java/com/zhitan/model/service/impl/EnergyIndexServiceImpl.java
@@ -321,15 +321,15 @@ /** * æ ¹æ®ç¨è½åå idå设å¤idï¼ä»¥åç¹ä½ç¼ç è·åç¹ä½ * * @param energyUnitId ç¨è½åå id * @param nodeId èç¹id * @param meterId 设å¤id * @param indexCode ç¹ä½ç¼ç æè ç¹ä½ç¼ç çä¸é¨å * @return */ @Override public EnergyIndex getDeviceIndexByCode(String energyUnitId, String meterId, String indexCode) { public EnergyIndex getDeviceIndexByCode(String nodeId, String meterId, String indexCode) { List<EnergyIndex> energyIndexList = listDeviceIndexByCode(energyUnitId, meterId, indexCode); List<EnergyIndex> energyIndexList = listDeviceIndexByCode(nodeId, meterId, indexCode); EnergyIndex energyIndex = energyIndexList.stream().findFirst().orElse(null); if (ObjectUtils.isEmpty(energyIndex)) { energyIndex = new EnergyIndex(); @@ -347,8 +347,8 @@ */ public List<EnergyIndex> listDeviceIndexByCode(String energyUnitId, String meterId, String indexCode) { return energyIndexMapper.selectList(Wrappers.<EnergyIndex>lambdaQuery() .eq(EnergyIndex::getEnergyUnitId, energyUnitId) .eq(EnergyIndex::getEnergyUnitToDeviceId, meterId) .eq(EnergyIndex::getNodeId, energyUnitId) .eq(EnergyIndex::getMeterId, meterId) .like(EnergyIndex::getCode, indexCode)); } } zhitan-system/src/main/resources/mapper/energyMonitor/ElectricLoadMapper.xml
ÎļþÒÑɾ³ý