refactor(service): 优化设备容量计算和事件处理逻辑

- 重构CsDevCapacityPOServiceImpl中的设备容量获取方法,简化代码逻辑并添加空值检查
- 在CsEquipmentDeliveryServiceImpl中添加二维码信息更新功能
- 优化CsEventPOServiceImpl中的事件处理,添加处理标志位设置和幅度值转换
- 增强CsFeedbackServiceImpl中的工程ID验证,防止空值异常
- 优化CsLinePOServiceImpl中的线路数据处理,统一设备ID格式化
- 移除无用的包导入并修复MQTT消息处理器中的大小写问题
- 更新离线数据上传服务中的等待逻辑和设备版本获取方式
- 修复InfluxDB查询中的值类型大小写问题
This commit is contained in:
xy
2026-06-24 20:32:59 +08:00
parent 6f66e1d336
commit a27315075c
10 changed files with 66 additions and 61 deletions

View File

@@ -1,25 +1,19 @@
package com.njcn.csdevice.service.impl;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.njcn.common.pojo.exception.BusinessException;
import com.njcn.csdevice.enums.AlgorithmResponseEnum;
import com.njcn.csdevice.pojo.po.CsLinePO;
import com.njcn.csdevice.service.CsLinePOService;
import com.njcn.system.api.DicDataFeignClient;
import com.njcn.system.enums.DicDataEnum;
import lombok.RequiredArgsConstructor;
import org.springframework.stereotype.Service;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.njcn.csdevice.mapper.CsDevCapacityPOMapper;
import com.njcn.csdevice.pojo.po.CsDevCapacityPO;
import com.njcn.csdevice.pojo.po.CsLinePO;
import com.njcn.csdevice.service.CsDevCapacityPOService;
import com.njcn.csdevice.service.CsLinePOService;
import com.njcn.system.api.DicDataFeignClient;
import lombok.RequiredArgsConstructor;
import org.springframework.stereotype.Service;
import java.text.DecimalFormat;
import java.util.List;
import java.util.Objects;
import java.util.Optional;
import java.util.stream.Collectors;
/**
*
@@ -48,16 +42,13 @@ public class CsDevCapacityPOServiceImpl extends ServiceImpl<CsDevCapacityPOMappe
@Override
public Double getDevCapacity(String id) {
List<CsLinePO> csLinePOS = csLinePOService.queryByDevId(id);
//String areaId = dicDataFeignClient.getDicDataByCode(DicDataEnum.OUTPUT_SIDE.getCode()).getData().getId();
//Optional.ofNullable(csLinePOS).orElseThrow(()-> new BusinessException(AlgorithmResponseEnum.LINE_DATA_ERROR));
//List<CsLinePO> collect1 = csLinePOS.stream().filter(temp -> Objects.equals(areaId, temp.getPosition())).collect(Collectors.toList());
List<CsLinePO> pos = csLinePOService.queryByDevId(id);
/*治理侧监测点*/
CsLinePO csLinePO = csLinePOS.get(0);
CsDevCapacityPO one = this.lambdaQuery().eq(CsDevCapacityPO::getLineId, csLinePO.getLineId()).eq(CsDevCapacityPO::getCldid, 0).one();
// Optional.ofNullable(one).orElseThrow(()-> new BusinessException(AlgorithmResponseEnum.DATA_MISSING));
CsLinePO po = pos.stream().filter(item -> Objects.equals(item.getClDid(),0)).findFirst().orElse(null);
if (po == null) {
return 0.0;
}
CsDevCapacityPO one = this.lambdaQuery().eq(CsDevCapacityPO::getLineId, po.getLineId()).eq(CsDevCapacityPO::getCldid, 0).one();
if(Objects.isNull(one)){
return 0.0;
}

View File

@@ -396,6 +396,9 @@ public class CsEquipmentDeliveryServiceImpl extends ServiceImpl<CsEquipmentDeliv
csEquipmentDeliveryPo.setStatus(2);
//4.清空老mac的数据模板
stringRedisTemplate.convertAndSend("model_cache_clear", "clear");
//5.修改二维码信息
String qr = this.createQr(csEquipmentDeliveryAuditParm.getNdid());
csEquipmentDeliveryPo.setQrPath(qr);
}
List<CsEquipmentDeliveryPO> list = this.lambdaQuery().ne(CsEquipmentDeliveryPO::getId, csEquipmentDeliveryAuditParm.getId()).ne(CsEquipmentDeliveryPO::getNdid, csEquipmentDeliveryAuditParm.getNdid()).eq(CsEquipmentDeliveryPO::getName, csEquipmentDeliveryAuditParm.getName()).ne(CsEquipmentDeliveryPO::getRunStatus, 0).list();
if (!CollectionUtils.isEmpty(list)) {

View File

@@ -154,7 +154,8 @@ public class CsLinePOServiceImpl extends ServiceImpl<CsLinePOMapper, CsLinePO> i
@Transactional(rollbackFor = Exception.class)
public CsLinePO addCldLine(CsLineParam param) {
String lineId = IdUtil.fastSimpleUUID();
List<CsDeviceRegistry> data = csDeviceRegistryService.queryByCurrentNdid(param.getDevMac().replace(":", ""));
String nDid = param.getDevMac().replace(":", "");
List<CsDeviceRegistry> data = csDeviceRegistryService.queryByCurrentNdid(nDid);
Map<Integer, String> clDidToIdMap;
if (CollUtil.isNotEmpty(data)) {
clDidToIdMap = data.stream().collect(Collectors.toMap(CsDeviceRegistry::getClDid, CsDeviceRegistry::getId, (a, b) -> a));
@@ -208,8 +209,8 @@ public class CsLinePOServiceImpl extends ServiceImpl<CsLinePOMapper, CsLinePO> i
if (Objects.isNull(clDidToIdMap.get(param.getLineNo()))) {
CsDeviceRegistry registry = new CsDeviceRegistry();
registry.setId(lineId);
registry.setCurrentNdid(param.getDevMac());
registry.setOldNdid(param.getDevMac());
registry.setCurrentNdid(nDid);
registry.setOldNdid(nDid);
registry.setClDid(param.getLineNo());
registry.setFirstSeenTime(LocalDateTime.now());
csDeviceRegistryService.add(Collections.singletonList(registry));