소스 검색

add
记录最后一次密码修改时间

lifang 1 일 전
부모
커밋
17810ead87
1개의 변경된 파일11개의 추가작업 그리고 5개의 파일을 삭제
  1. 11 5
      nb-service/web-service/src/main/java/com/nb/web/service/bus/listener/DeviceInfoListener.java

+ 11 - 5
nb-service/web-service/src/main/java/com/nb/web/service/bus/listener/DeviceInfoListener.java

@@ -5,7 +5,7 @@ import cn.hutool.core.map.MapUtil;
 import cn.hutool.core.util.ObjectUtil;
 import cn.hutool.core.util.StrUtil;
 import cn.hutool.json.JSONUtil;
-import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
 import com.baomidou.mybatisplus.core.toolkit.IdWorker;
 import com.nb.web.api.entity.BusDeviceAlarmEntity;
@@ -208,11 +208,17 @@ public class DeviceInfoListener implements IIotMsgHandler {
 
             // 保存或更新输注历史记录
             if(device.isNewInfusion()){
-                deviceService.update(new UpdateWrapper<BusDeviceEntity>()
+                // 优化:只在设备的输注ID实际发生变化时才更新
+                BusDeviceEntity existingDevice = deviceService.getOne(new QueryWrapper<BusDeviceEntity>()
                         .lambda()
-                        .eq(BusDeviceEntity::getDeviceId,device.getDeviceId())
-                        .set(BusDeviceEntity::getInfusionId,device.getInfusionId())
-                );
+                        .eq(BusDeviceEntity::getDeviceId, device.getDeviceId()));
+                if (existingDevice != null && !ObjectUtil.equal(existingDevice.getInfusionId(), device.getInfusionId())) {
+                    deviceService.update(new UpdateWrapper<BusDeviceEntity>()
+                            .lambda()
+                            .eq(BusDeviceEntity::getDeviceId, device.getDeviceId())
+                            .set(BusDeviceEntity::getInfusionId, device.getInfusionId())
+                    );
+                }
                 infusionHistoryService.save(infusionHistory);
                 if(log.isDebugEnabled()){
                     log.debug("消息【{}】,设备号【{}】产生了新的输注【{}】",device.getMsgId(),device.getDeviceId(),device.getInfusionId());