refactor(device): 优化设备交付服务和终端回复服务

- 移除未使用的 EngineeringFeignClient 和 IMqttUserService 依赖
- 添加 CsTerminalLogsService 用于管理前置推送日志
- 在删除设备时同步清理相关的前置推送日志记录
- 简化终端回复查询逻辑,移除不必要的分组判断
- 注释掉废弃的 queryReplyData 方法以提高代码整洁性
- 统一设备操作结果的消息返回格式
This commit is contained in:
xy
2026-04-21 19:47:29 +08:00
parent d8b292d447
commit 8559d7548a
2 changed files with 92 additions and 44 deletions

View File

@@ -24,7 +24,6 @@ import com.njcn.access.utils.MqttUtil;
import com.njcn.common.pojo.dto.DeviceLogDTO;
import com.njcn.common.pojo.exception.BusinessException;
import com.njcn.csdevice.api.CsLogsFeignClient;
import com.njcn.csdevice.api.EngineeringFeignClient;
import com.njcn.csdevice.constant.DataParam;
import com.njcn.csdevice.enums.AlgorithmResponseEnum;
import com.njcn.csdevice.mapper.CsEquipmentDeliveryMapper;
@@ -103,7 +102,6 @@ public class CsEquipmentDeliveryServiceImpl extends ServiceImpl<CsEquipmentDeliv
private final AskDeviceDataFeignClient askDeviceDataFeignClient;
private final RedisUtil redisUtil;
private final CsSoftInfoMapper csSoftInfoMapper;
private final IMqttUserService mqttUserService;
private final MqttUtil mqttUtil;
private final CsLogsFeignClient csLogsFeignClient;
private final INodeService nodeService;
@@ -112,8 +110,8 @@ public class CsEquipmentDeliveryServiceImpl extends ServiceImpl<CsEquipmentDeliv
private final CsTerminalLogsMapper csTerminalLogsMapper;
private final ICsCommunicateService csCommunicateService;
private final ICsUserPinsService csUserPinsService;
private final EngineeringFeignClient engineeringFeignClient;
private final EventUserFeignClient eventUserFeignClient;
private final ICsTerminalLogsService csTerminalLogsService;
@Override
public void refreshDeviceDataCache() {
@@ -929,6 +927,11 @@ public class CsEquipmentDeliveryServiceImpl extends ServiceImpl<CsEquipmentDeliv
csLedgerLambdaQueryWrapper.eq(CsLedger::getPid,id);
csLedgerService.remove(csLedgerLambdaQueryWrapper);
csDevModelRelationService.lambdaUpdate().eq(CsDevModelRelationPO::getDevId,id).set(CsDevModelRelationPO::getStatus,0).update();
//删除前置推送日志
LambdaQueryWrapper<CsTerminalLogs> queryWrap = new LambdaQueryWrapper<>();
queryWrap.eq(CsTerminalLogs::getDeviceId,id);
csTerminalLogsService.remove(queryWrap);
if (update) {
refreshDeviceDataCache();
}

View File

@@ -57,53 +57,98 @@ public class CsTerminalReplyServiceImpl extends ServiceImpl<CsTerminalReplyMappe
List<String> redisList = Stream.of(object.toString().split(",")).collect(Collectors.toList());
List<CsTerminalReply> list = this.lambdaQuery().in(CsTerminalReply::getReplyId,redisList).orderByAsc(CsTerminalReply::getCreateTime).list();
if (CollectionUtil.isNotEmpty(list)) {
Map<Integer,List<CsTerminalReply>> map = list.stream().collect(Collectors.groupingBy(CsTerminalReply::getIsReceived));
List<CsTerminalReply> list1 = map.get(1);
if (CollectionUtil.isEmpty(list1)) {
String key = "更新失败,未收到前置应答,请查看应答报文是否发送";
result.add(key);
//将cs_terminal_logs数据置为未发送
list.forEach(item->{
list.forEach(item->{
String key;
String code = "";
if (Objects.equals(item.getCode(), "add_terminal")) {
code = "新增";
} else if (Objects.equals(item.getCode(), "ledger_modify")) {
code = "修改";
} else if (Objects.equals(item.getCode(), "delete_terminal")){
code = "删除";
}
String nodeName = nodeService.getNodeById(item.getNodeId()).getName();
List<CsEquipmentDeliveryPO> devList1 = csEquipmentDeliveryService.getAll();
List<CsEquipmentDeliveryPO> devList2 = devList1.stream().filter(item1 -> Objects.equals(item1.getId(), item.getDeviceId())).collect(Collectors.toList());
List<String> devNameList = devList2.stream().map(CsEquipmentDeliveryPO::getName).collect(Collectors.toList());
String devNameListString;
if (CollectionUtil.isNotEmpty(devNameList)) {
devNameListString = devNameList.toString();
} else {
devNameListString = "[" + item.getDeviceName() + "]";
}
if (item.getIsReceived() == 0) {
key = nodeName + item.getProcessNo() + "号进程下," + devNameListString + "设备未收到应答";
//将cs_terminal_logs数据置为未发送
csTerminalLogsService.updateLaterData(item.getDeviceId(),item.getCode());
});
} else {
list.forEach(item->{
String key;
String code = "";
if (Objects.equals(item.getCode(), "add_terminal")) {
code = "新增";
} else if (Objects.equals(item.getCode(), "ledger_modify")) {
code = "修改";
} else if (Objects.equals(item.getCode(), "delete_terminal")){
code = "删除";
}
String nodeName = nodeService.getNodeById(item.getNodeId()).getName();
List<CsEquipmentDeliveryPO> devList1 = csEquipmentDeliveryService.getAll();
List<CsEquipmentDeliveryPO> devList2 = devList1.stream().filter(item1 -> Objects.equals(item1.getId(), item.getDeviceId())).collect(Collectors.toList());
List<String> devNameList = devList2.stream().map(CsEquipmentDeliveryPO::getName).collect(Collectors.toList());
String devNameListString;
if (CollectionUtil.isNotEmpty(devNameList)) {
devNameListString = devNameList.toString();
} else {
devNameListString = "[" + item.getDeviceName() + "]";
}
if (item.getIsReceived() == 0) {
key = nodeName + item.getProcessNo() + "号进程下," + devNameListString + "设备未收到应答";
//将cs_terminal_logs数据置为未发送
csTerminalLogsService.updateLaterData(item.getDeviceId(),item.getCode());
} else if (item.getIsReceived() == 1){
key = nodeName + item.getProcessNo() + "号进程下," + devNameListString + "设备" + code + "数据成功";
} else {
key = nodeName + item.getProcessNo() + "号进程下," + devNameListString + "设备" + code + "数据失败";
}
result.add(key);
});
}
} else if (item.getIsReceived() == 1){
key = nodeName + item.getProcessNo() + "号进程下," + devNameListString + "设备" + code + "数据成功";
} else {
key = nodeName + item.getProcessNo() + "号进程下," + devNameListString + "设备" + code + "数据失败";
}
result.add(key);
});
}
}
return result;
}
// @Override
// public List<String> queryReplyData() {
// List<String> result = new ArrayList<>();
// Object object = redisUtil.getObjectByKey(RequestUtil.getUserIndex()+"reply");
// if (object != null) {
// List<String> redisList = Stream.of(object.toString().split(",")).collect(Collectors.toList());
// List<CsTerminalReply> list = this.lambdaQuery().in(CsTerminalReply::getReplyId,redisList).orderByAsc(CsTerminalReply::getCreateTime).list();
// if (CollectionUtil.isNotEmpty(list)) {
// Map<Integer,List<CsTerminalReply>> map = list.stream().collect(Collectors.groupingBy(CsTerminalReply::getIsReceived));
// List<CsTerminalReply> list1 = map.get(1);
// if (CollectionUtil.isEmpty(list1)) {
// String key = "更新失败,未收到前置应答,请查看应答报文是否发送";
// result.add(key);
// //将cs_terminal_logs数据置为未发送
// list.forEach(item->{
// csTerminalLogsService.updateLaterData(item.getDeviceId(),item.getCode());
// });
// } else {
// list.forEach(item->{
// String key;
// String code = "";
// if (Objects.equals(item.getCode(), "add_terminal")) {
// code = "新增";
// } else if (Objects.equals(item.getCode(), "ledger_modify")) {
// code = "修改";
// } else if (Objects.equals(item.getCode(), "delete_terminal")){
// code = "删除";
// }
// String nodeName = nodeService.getNodeById(item.getNodeId()).getName();
// List<CsEquipmentDeliveryPO> devList1 = csEquipmentDeliveryService.getAll();
// List<CsEquipmentDeliveryPO> devList2 = devList1.stream().filter(item1 -> Objects.equals(item1.getId(), item.getDeviceId())).collect(Collectors.toList());
// List<String> devNameList = devList2.stream().map(CsEquipmentDeliveryPO::getName).collect(Collectors.toList());
// String devNameListString;
// if (CollectionUtil.isNotEmpty(devNameList)) {
// devNameListString = devNameList.toString();
// } else {
// devNameListString = "[" + item.getDeviceName() + "]";
// }
// if (item.getIsReceived() == 0) {
// key = nodeName + item.getProcessNo() + "号进程下," + devNameListString + "设备未收到应答";
// //将cs_terminal_logs数据置为未发送
// csTerminalLogsService.updateLaterData(item.getDeviceId(),item.getCode());
// } else if (item.getIsReceived() == 1){
// key = nodeName + item.getProcessNo() + "号进程下," + devNameListString + "设备" + code + "数据成功";
// } else {
// key = nodeName + item.getProcessNo() + "号进程下," + devNameListString + "设备" + code + "数据失败";
// }
// result.add(key);
// });
// }
// }
// }
// return result;
// }
@Override
public void updateReplyData(IcdBzReplyParam param) {
LambdaUpdateWrapper<CsTerminalReply> wrapper = new LambdaUpdateWrapper<>();