Просмотр исходного кода

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

lifang 1 день назад
Родитель
Сommit
17810ead87

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