|
|
@@ -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());
|