fix:修复bug

plp
HuangHuiKang 6 days ago
parent a8ca54bb1f
commit 2984fef8f2

@ -170,6 +170,7 @@ public class DeviceServiceImpl implements DeviceService {
for (DeviceModelRulesDO deviceModelRulesDO : deviceModelRulesDOList) {
DevicePointRulesDO devicePointRulesDO = new DevicePointRulesDO();
BeanUtils.copyProperties(deviceModelRulesDO, devicePointRulesDO);
devicePointRulesDO.setId(null);
devicePointRulesDO.setDeviceId(deviceId);
devicePointRulesDOList.add(devicePointRulesDO);
}

@ -30,6 +30,9 @@
left join iot_device iod on mo.machine_id = iod.id
where mo.deleted = 0
and mo.machine_id is not null
and iod.id is not null
and iod.deleted = 0
and mo.deleted = 0
<if test="pageReqVO.lineNode != null and pageReqVO.lineNode != ''">
and mo.code like concat(concat('%', #{pageReqVO.lineNode}), '%')
</if>

@ -313,9 +313,10 @@ public class EnergyDeviceServiceImpl implements EnergyDeviceService {
);
if (energyDevice == null || StringUtils.isBlank(energyDevice.getRules())) {
return Collections.emptyList();
return buildEmptyLast7Hours(LocalDateTime.now());
}
// 2. 解析规则
List<OperationRulesVO> rules = JsonUtils.parseArray(energyDevice.getRules(), OperationRulesVO.class);
if (rules.isEmpty()) return Collections.emptyList();
@ -371,6 +372,35 @@ public class EnergyDeviceServiceImpl implements EnergyDeviceService {
return result;
}
private List<HourEnergyValueVO> buildEmptyLast7Hours(LocalDateTime end) {
List<HourEnergyValueVO> result = new ArrayList<>();
DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd HH");
LocalDateTime start = end.minusHours(7);
for (int i = 0; i < 7; i++) {
LocalDateTime hourTime = start.plusHours(i);
HourEnergyValueVO vo = new HourEnergyValueVO();
vo.setHour(hourTime.format(formatter));
vo.setValue(formatDouble(0D));
result.add(vo);
}
return result;
}
private List<DayEnergyValueVO> buildEmptyLast7Days(LocalDate endDate) {
List<DayEnergyValueVO> result = new ArrayList<>();
int days = 7;
for (int i = 0; i < days; i++) {
LocalDate day = endDate.minusDays(days - i).plusDays(1); // 确保顺序从过去到今天
DayEnergyValueVO vo = new DayEnergyValueVO();
vo.setDay(day.toString());
vo.setValue(formatDouble(0D));
result.add(vo);
}
return result;
}
@Override
public List<DayEnergyValueVO> latestSevenDaysStatistics(Long deviceTypeId, Long orgId) {
@ -383,8 +413,9 @@ public class EnergyDeviceServiceImpl implements EnergyDeviceService {
.last("LIMIT 1")
);
if (energyDevice == null || StringUtils.isBlank(energyDevice.getRules())) {
return Collections.emptyList();
return buildEmptyLast7Days(LocalDate.now());
}
// 解析规则
@ -413,7 +444,7 @@ public class EnergyDeviceServiceImpl implements EnergyDeviceService {
List<Map<String, Object>> rows =
tDengineService.queryLastDataByDaySafe(deviceIds, startDate, days);
// day -> deviceId -> cache
Map<String, Map<Long, TimePointCache>> dayCacheMap = new LinkedHashMap<>();
for (Map<String, Object> row : rows) {

Loading…
Cancel
Save