Browse Source

qy新增模块 2025年4月14日09:11:28

qingyuan_dev_new
jiangc 9 months ago
parent
commit
4d95c37a79
  1. 20
      modules/qingyuan/src/main/java/com/thing/qingyuan/board/controller/BoardNewController.java
  2. 1
      modules/qingyuan/src/main/java/com/thing/qingyuan/board/dto/EnergyDataAnalyseDTO.java
  3. 19
      modules/qingyuan/src/main/java/com/thing/qingyuan/board/dto/EnergyDayTrendDataDTO.java
  4. 3
      modules/qingyuan/src/main/java/com/thing/qingyuan/board/service/BoardNewService.java
  5. 58
      modules/qingyuan/src/main/java/com/thing/qingyuan/board/service/impl/BoardNewServiceImpl.java

20
modules/qingyuan/src/main/java/com/thing/qingyuan/board/controller/BoardNewController.java

@ -101,10 +101,28 @@ public class BoardNewController {
return new Result<EnergyDataAnalyseDTO>().ok(result);
}
@GetMapping("dayEnergy/trend")
@Operation(summary ="火灾24小时分布趋势")
@Parameters({
@Parameter(name = "day", description = "日期:例如2023-06-01", required = true)
})
public Result<EnergyDayTrendDataDTO> qcdayEnergyAnalyse(@Parameter(hidden = true) @RequestParam Map<String, Object> params){
String day;
if (params.get("day") != null){
day = params.get("day").toString();
}else{
LocalDate currentDate = LocalDate.now();
DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM");
day = currentDate.format(formatter);
}
EnergyDayTrendDataDTO result = boardService.qcdayEnergyAnalyse(day);
return new Result<EnergyDayTrendDataDTO>().ok(result);
}
@GetMapping("energyCost")
@Operation(summary ="能耗统计")
@Parameters({
@Parameter(name = "day", description = "日期:例如2023-06-01", required = true)
@Parameter(name = "day", description = "日期:例如2023-06-01", required = true),
})
public Result<List<EnergyCostProportionDataDTO>> getEnergyCost(@Parameter(hidden = true) @RequestParam Map<String, Object> params){
String day;

1
modules/qingyuan/src/main/java/com/thing/qingyuan/board/dto/EnergyDataAnalyseDTO.java

@ -13,4 +13,5 @@ public class EnergyDataAnalyseDTO {
// @ApiModelProperty(value = "上月数据")
// private List<EnergyDataAnalyseDetailDTO> lastMonthData;
}

19
modules/qingyuan/src/main/java/com/thing/qingyuan/board/dto/EnergyDayTrendDataDTO.java

@ -0,0 +1,19 @@
package com.thing.qingyuan.board.dto;
import com.thing.common.data.tskv.TsKvDTO;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;
import java.util.List;
@Data
public class EnergyDayTrendDataDTO {
@Schema(description = "日用电量")
private List<TsKvDTO>electricityDayList;
@Schema(description = "日水电量")
private List<TsKvDTO> waterDayList;
@Schema(description = "日蒸汽电量")
private List<TsKvDTO> steamDayList;
@Schema(description = "日天然气量")
private List<TsKvDTO> gasDayList;
}

3
modules/qingyuan/src/main/java/com/thing/qingyuan/board/service/BoardNewService.java

@ -19,6 +19,8 @@ public interface BoardNewService {
EnergyDataAnalyseDTO qcMonthEnergyAnalyse(String month, String key, String type);
EnergyDayTrendDataDTO qcdayEnergyAnalyse(String day);
List<EnergyCostProportionDataDTO> getEnergyCost(String day);
List<EnergyDataDTO> getMonthEnergyRanking(String month, String key, String type);
@ -28,4 +30,5 @@ public interface BoardNewService {
CarbonAndConsumptionDataDTO getCarbonAndConsumption(String day);
EnergyBuildDataDTO getBuildEnergy(BuildRequestDTO dto);
}

58
modules/qingyuan/src/main/java/com/thing/qingyuan/board/service/impl/BoardNewServiceImpl.java

@ -12,6 +12,7 @@ import com.thing.thing.entity.dto.IotThingEntityDTO;
import com.thing.thing.entity.service.IotThingEntityService;
import lombok.RequiredArgsConstructor;
import org.apache.commons.lang3.StringUtils;
import org.apache.poi.ss.formula.functions.T;
import org.springframework.stereotype.Service;
import java.math.BigDecimal;
@ -161,6 +162,63 @@ public class BoardNewServiceImpl implements BoardNewService {
return result;
}
@Override
public EnergyDayTrendDataDTO qcdayEnergyAnalyse(String day) {
EnergyDayTrendDataDTO result = new EnergyDayTrendDataDTO();
List<TsKvDTO> electricityDayList = new ArrayList<>();
List<TsKvDTO> waterDayList = new ArrayList<>();
List<TsKvDTO> steamDayList = new ArrayList<>();
List<TsKvDTO> airDayList = new ArrayList<>();
//日时间
Long dayTime = DateTimeUtils.dateToStamp(day + " 00:00:00");
//当天结束时间戳
Long endTime = DateTimeUtils.dateToStamp(day + " 23:59:59");
//获取租户编码
Long realTenantCode = UserContext.getRealTenantCode();
List<TsKvDTO> tsKvByCodeAndAttrs = tsKvService.findTsKvByCodeAndAttrs("CO_" + realTenantCode, Lists.newArrayList("A29hh", "B2hh", "E3hh","C2hh"), dayTime, endTime, true);
if (CollectionUtil.isNotEmpty(tsKvByCodeAndAttrs)) {
for (TsKvDTO kv : tsKvByCodeAndAttrs) {
// 获取时间戳
Long timestamp = kv.getTs();
// 获取值
String value = kv.getVal();
// 获取属性编码
String attrKey = kv.getAttrKey();
// 将时间戳转换为日期格式
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH");
String date = sdf.format(new Date(timestamp));
EnergyDataAnalyseDetailDTO detailDTO = new EnergyDataAnalyseDetailDTO();
detailDTO.setDate(date);
detailDTO.setValue(new BigDecimal(value));
// 根据属性编码分类数据
if ("A29hh".equals(attrKey)) {
// 电力数据
electricityDayList.add(kv);
} else if ("B2hh".equals(attrKey)) {
// 水数据
waterDayList.add(kv);
} else if ("E3hh".equals(attrKey)) {
// 蒸汽数据
steamDayList.add(kv);
} else if ("C2hh".equals(attrKey)) {
// 天然气数据
airDayList.add(kv);
}
}
}
// 将当天的数据填充到result中
result.setElectricityDayList(electricityDayList);
result.setWaterDayList(waterDayList);
result.setSteamDayList(steamDayList);
result.setGasDayList(airDayList);
return result;
}
@Override
public List<EnergyCostProportionDataDTO> getEnergyCost(String day) {

Loading…
Cancel
Save