Browse Source

月能耗趋势 2025年4月1日14:33:07

qingyuan_dev_new
jiangc 10 months ago
parent
commit
9efc913710
  1. 4
      modules/qingyuan/src/main/java/com/thing/qingyuan/board/controller/BoardNewController.java
  2. 83
      modules/qingyuan/src/main/java/com/thing/qingyuan/board/service/impl/BoardNewServiceImpl.java

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

@ -156,7 +156,7 @@ public class BoardNewController {
@Operation(summary ="月用能趋势")
@Parameters({
@Parameter(name = "month", description = "日期:例如2023-06", required = true),
@Parameter(name = "type", description = "类型:传参:电/水/蒸汽/压缩空气", required = true)
@Parameter(name = "type", description = "类型:传参:电/水/蒸汽/压缩空气/天然气", required = true)
})
public Result<EnergyDataAnalyseDTO> qcMonthEnergyAnalyse(@Parameter(hidden = true) @RequestParam Map<String, Object> params){
String key = "A29dd";
@ -169,6 +169,8 @@ public class BoardNewController {
key = "E3dd";
}else if("压缩空气".equals(type)){
key = "D2dd";
}else if ("天然气".equals(type)){
key = "C2dd";
}
String month;
if (params.get("month") != null){

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

@ -16,6 +16,7 @@ import org.springframework.stereotype.Service;
import java.math.BigDecimal;
import java.math.RoundingMode;
import java.text.SimpleDateFormat;
import java.time.LocalDate;
import java.time.LocalDateTime;
import java.time.YearMonth;
@ -411,31 +412,72 @@ public class BoardNewServiceImpl implements BoardNewService {
//当日开始结束时间
String dayStartTime = month + "-01 00:00:00";
String dayEndTime = getLastDayOfMonth(month);
//将当月时间转换为时间戳
//将当月第一天时间转换为时间戳
Long dayStartTimeStamp = DateTimeUtils.dateToStamp(dayStartTime);
//当月结束时间
Long dayEndTimeStamp = DateTimeUtils.dateToStamp(dayEndTime);
/**
* 总code 参数格式{"总用电": "G01","总用水": "G03","总蒸汽": "G02","总压缩空气": "D_V0000151_1"}
*/
String cqStr = sysParamsService.getValue("BOARD_TOTAL_ENERGY");
Map<String, String> codeMap = JSONObject.parseObject(cqStr, Map.class);
List<String> keys = new ArrayList<>();
keys.add(key);
String code = null;
List<String> attrs = new ArrayList<>();
if ("电".equals(type)) {
code = codeMap.get("总用电");
attrs.add("A29dd");
} else if ("水".equals(type)) {
code = codeMap.get("总用水");
attrs.add("B2dd");
} else if ("蒸汽".equals(type)) {
code = codeMap.get("总蒸汽");
attrs.add("E3dd");
} else if ("压缩空气".equals(type)) {
code = codeMap.get("总压缩空气");
attrs.add("D2dd");
} else if ("天然气".equals(type)) {
attrs.add("C2dd");
}
/**
* todo 获取各用能数据
*/
//获取租户编码
Long realTenantCode = UserContext.getRealTenantCode();
List<TsKvDTO> tsKvByCodeAndAttrs = tsKvService.findTsKvByCodeAndAttrs("CO_" + realTenantCode, attrs, dayStartTimeStamp, dayEndTimeStamp, true);
if (CollectionUtil.isNotEmpty(tsKvByCodeAndAttrs)) {
for (TsKvDTO kv : tsKvByCodeAndAttrs) {
// 获取时间戳
Long timestamp = kv.getTs();
//获取值
String value = kv.getVal();
// 将时间戳转换为日期格式
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
String date = sdf.format(new Date(timestamp));
EnergyDataAnalyseDetailDTO detailDTO = new EnergyDataAnalyseDetailDTO();
detailDTO.setDate(date);
detailDTO.setValue(new BigDecimal(value));
currentMonthData.add(detailDTO);
}
}
// 将当前月的数据填充到result中
result.setCurrentMonthData(currentMonthData);
return result;
}
// /**
// * 总code 参数格式{"总用电": "G01","总用水": "G03","总蒸汽": "G02","总压缩空气": "D_V0000151_1"}
// */
// String cqStr = sysParamsService.getValue("BOARD_TOTAL_ENERGY");
//
// Map<String, String> codeMap = JSONObject.parseObject(cqStr, Map.class);
// List<String> keys = new ArrayList<>();
// keys.add(key);
// String code = null;
// if ("电".equals(type)) {
// code = codeMap.get("总用电");
// } else if ("水".equals(type)) {
// code = codeMap.get("总用水");
// } else if ("蒸汽".equals(type)) {
// code = codeMap.get("总蒸汽");
// } else if ("压缩空气".equals(type)) {
// code = codeMap.get("总压缩空气");
// }
// /**
// * todo 获取各用能数据
// */
// ThingsDTO thingsDTO = thingsService.getThingsByCode(code);
// if(thingsDTO==null && StringUtils.isBlank(thingsDTO.getEntityId())){
// return result;
@ -453,16 +495,14 @@ public class BoardNewServiceImpl implements BoardNewService {
// currentMonthData.add(energyDataAnalyseDetailDTO);
// }
// }
result.setCurrentMonthData(currentMonthData);
return result;
}
@Override
public EnergyDayDataDTO getEachEnergy(String day) {
EnergyDayDataDTO result = new EnergyDayDataDTO();
String month = day.substring(0, 7);
//月时间
Long dayTime = DateTimeUtils.dateToStamp(month + "-01 00:00:00");
//次月第一天时间戳
//当月结束时间戳
String monthEndTime = DateTimeUtils.getMonthEndTime(day);
Long endTime = DateTimeUtils.convertTimeToLong(monthEndTime);
//获取此租户编码
@ -501,10 +541,9 @@ public class BoardNewServiceImpl implements BoardNewService {
String year = day.substring(0, 4);
//年时间
Long dayTime = DateTimeUtils.dateToStamp(year + "-01-01 00:00:00");
//次年第一天的时间戳
//当年结束时间戳
String yearEndTime = DateTimeUtils.getYearEndTime(day);
Long endTime = DateTimeUtils.convertTimeToLong(yearEndTime);
//获取此租户编码
Long realTenantCode = UserContext.getRealTenantCode();

Loading…
Cancel
Save