|
|
|
@ -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(); |
|
|
|
|
|
|
|
|