|
@@ -1,6 +1,7 @@
|
|
|
package com.nb.web.service.bus.service;
|
|
package com.nb.web.service.bus.service;
|
|
|
|
|
|
|
|
import cn.hutool.core.collection.CollUtil;
|
|
import cn.hutool.core.collection.CollUtil;
|
|
|
|
|
+import cn.hutool.core.collection.CollectionUtil;
|
|
|
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;
|
|
@@ -12,9 +13,14 @@ import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
|
|
|
import com.baomidou.mybatisplus.core.metadata.IPage;
|
|
import com.baomidou.mybatisplus.core.metadata.IPage;
|
|
|
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
|
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
|
|
import com.nb.aliyun.api.service.AliyunIotSdk;
|
|
import com.nb.aliyun.api.service.AliyunIotSdk;
|
|
|
|
|
+import com.nb.web.api.entity.BusClinicEntity;
|
|
|
|
|
+import com.nb.web.api.entity.BusInfusionHistoryEntity;
|
|
|
import com.nb.web.api.feign.IDeviceClient;
|
|
import com.nb.web.api.feign.IDeviceClient;
|
|
|
|
|
+import com.nb.web.api.feign.query.PatientMonitorQuery;
|
|
|
|
|
+import com.nb.web.api.feign.result.PatientMonitorResult;
|
|
|
import com.nb.web.api.utils.Constants;
|
|
import com.nb.web.api.utils.Constants;
|
|
|
import com.nb.web.api.bean.AliIotConfig;
|
|
import com.nb.web.api.bean.AliIotConfig;
|
|
|
|
|
+import com.nb.web.service.bus.entity.BusPatientEntity;
|
|
|
import com.nb.web.service.bus.registry.constant.DeviceKeyConstant;
|
|
import com.nb.web.service.bus.registry.constant.DeviceKeyConstant;
|
|
|
import com.nb.web.service.bus.registry.device.DeviceRegistry;
|
|
import com.nb.web.service.bus.registry.device.DeviceRegistry;
|
|
|
import com.nb.web.api.entity.BusDeviceEntity;
|
|
import com.nb.web.api.entity.BusDeviceEntity;
|
|
@@ -51,6 +57,17 @@ public class LocalBusDeviceService extends BaseService<BusDeviceMapper, BusDevic
|
|
|
@Lazy
|
|
@Lazy
|
|
|
private DeviceRegistry deviceRegistry;
|
|
private DeviceRegistry deviceRegistry;
|
|
|
|
|
|
|
|
|
|
+ @Autowired
|
|
|
|
|
+ @Lazy
|
|
|
|
|
+ private LocalBusPatientService patientService;
|
|
|
|
|
+
|
|
|
|
|
+ @Autowired
|
|
|
|
|
+ @Lazy
|
|
|
|
|
+ private LocalBusInfusionHistoryService infusionHistoryService;
|
|
|
|
|
+
|
|
|
|
|
+ @Autowired
|
|
|
|
|
+ @Lazy
|
|
|
|
|
+ private LocalBusClinicService clinicService;
|
|
|
@Autowired
|
|
@Autowired
|
|
|
private AliyunIotSdk aliyunIotSdk;
|
|
private AliyunIotSdk aliyunIotSdk;
|
|
|
|
|
|
|
@@ -213,7 +230,8 @@ public class LocalBusDeviceService extends BaseService<BusDeviceMapper, BusDevic
|
|
|
@Override
|
|
@Override
|
|
|
public BusDeviceEntity getByDeviceId(String deviceId) {
|
|
public BusDeviceEntity getByDeviceId(String deviceId) {
|
|
|
BusDeviceEntity device = getOne(new QueryWrapper<BusDeviceEntity>().lambda()
|
|
BusDeviceEntity device = getOne(new QueryWrapper<BusDeviceEntity>().lambda()
|
|
|
- .eq(BusDeviceEntity::getDeviceId,deviceId));
|
|
|
|
|
|
|
+ .eq(BusDeviceEntity::getDeviceId,deviceId)
|
|
|
|
|
+ .last("limit 1"));
|
|
|
return device;
|
|
return device;
|
|
|
}
|
|
}
|
|
|
|
|
|
|
@@ -379,6 +397,51 @@ public class LocalBusDeviceService extends BaseService<BusDeviceMapper, BusDevic
|
|
|
operators
|
|
operators
|
|
|
.stream()
|
|
.stream()
|
|
|
.filter(Objects::nonNull)
|
|
.filter(Objects::nonNull)
|
|
|
- .forEach(deviceOperator -> deviceOperator.getCache().remove(DeviceKeyConstant.TENANT_ID));
|
|
|
|
|
|
|
+ .forEach(deviceOperator -> deviceOperator.getCache().clear());
|
|
|
|
|
+ //对进行中的输注进行换绑,其他医院切换到主医院不进行输注换绑
|
|
|
|
|
+ if ("1".equals(afterTenantId)) {
|
|
|
|
|
+ return;
|
|
|
|
|
+ }
|
|
|
|
|
+ List<PatientMonitorResult> results = patientService.selectAll(new PatientMonitorQuery());
|
|
|
|
|
+ if(CollectionUtil.isEmpty(results)){
|
|
|
|
|
+ return;
|
|
|
|
|
+ }
|
|
|
|
|
+ Map<String, PatientMonitorResult> deviceIdMap = results
|
|
|
|
|
+ .stream()
|
|
|
|
|
+ .collect(Collectors.groupingBy(PatientMonitorResult::getDeviceId, Collectors.collectingAndThen(Collectors.toList(), CollectionUtil::getFirst)));
|
|
|
|
|
+ //输注信息需要变化的设备
|
|
|
|
|
+ Collection<String> changeDeviceIds = CollectionUtil.intersection(deviceIdMap.keySet(), deviceIds);
|
|
|
|
|
+ if(CollectionUtil.isEmpty(changeDeviceIds)){
|
|
|
|
|
+ return;
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ List<PatientMonitorResult> patientMonitorResults = results
|
|
|
|
|
+ .stream()
|
|
|
|
|
+ .filter(patientMonitorResult -> changeDeviceIds.contains(patientMonitorResult.getDeviceId()))
|
|
|
|
|
+ .collect(Collectors.toList());
|
|
|
|
|
+ //输注切换
|
|
|
|
|
+ infusionHistoryService.update(new UpdateWrapper<BusInfusionHistoryEntity>().lambda()
|
|
|
|
|
+ .in(BusInfusionHistoryEntity::getId,patientMonitorResults
|
|
|
|
|
+ .stream()
|
|
|
|
|
+ .map(PatientMonitorResult::getInfusionId)
|
|
|
|
|
+ .collect(Collectors.toList()))
|
|
|
|
|
+ .set(BusInfusionHistoryEntity::getTenantId,afterTenantId));
|
|
|
|
|
+
|
|
|
|
|
+
|
|
|
|
|
+ //病人切换
|
|
|
|
|
+ patientService.update(new UpdateWrapper<BusPatientEntity>().lambda()
|
|
|
|
|
+ .in(BusPatientEntity::getId,patientMonitorResults
|
|
|
|
|
+ .stream()
|
|
|
|
|
+ .map(PatientMonitorResult::getPatientId)
|
|
|
|
|
+ .collect(Collectors.toList()))
|
|
|
|
|
+ .set(BusPatientEntity::getTenantId,afterTenantId));
|
|
|
|
|
+
|
|
|
|
|
+ //临床切换
|
|
|
|
|
+ clinicService.update(new UpdateWrapper<BusClinicEntity>().lambda()
|
|
|
|
|
+ .in(BusClinicEntity::getId,patientMonitorResults
|
|
|
|
|
+ .stream()
|
|
|
|
|
+ .map(PatientMonitorResult::getClinicId)
|
|
|
|
|
+ .collect(Collectors.toList()))
|
|
|
|
|
+ .set(BusClinicEntity::getTenantId,afterTenantId));
|
|
|
}
|
|
}
|
|
|
}
|
|
}
|