18339543638 пре 2 година
родитељ
комит
2124416a27

+ 2 - 2
nb-service/web-service/src/main/java/com/nb/web/service/bus/controller/BusDeviceController.java

@@ -46,11 +46,11 @@ public class BusDeviceController implements
     @PostMapping("/shift/bind")
     @SaCheckPermission("device:info:shift")
     @ApiOperation(value = "设备换绑",notes = "权限【device:info:shift】")
-    public R shift(@RequestBody DeviceBindVo vo){
+    public R shift(@RequestBody DeviceBindVo vo, @RequestAttribute("tenantId")@ApiParam(hidden = true) String tenantId){
         if(StrUtil.isEmpty(vo.getBindTenantId())|| CollectionUtil.isEmpty(vo.getDeviceIds())){
             throw new CustomException("选择的医院、设备不能为空");
         }
-        deviceService.shift(vo.getDeviceIds(),vo.getBindTenantId());
+        deviceService.shift(vo.getDeviceIds(),vo.getBindTenantId(),tenantId);
         return R.success(DeviceAlarmEnum.values());
     }
 

+ 7 - 1
nb-service/web-service/src/main/java/com/nb/web/service/bus/listener/DeviceInfoListener.java

@@ -18,6 +18,7 @@ import com.nb.web.api.enums.DeviceTypeEnum;
 import com.nb.web.api.enums.FlowStatusEnum;
 import com.nb.web.api.enums.PatientAlarmEnum;
 import com.nb.web.service.bus.hospital.HospitalManagerRegister;
+import com.nb.web.service.bus.registry.constant.DeviceKeyConstant;
 import com.nb.web.service.bus.registry.device.DeviceOperator;
 import com.nb.web.service.bus.registry.device.DeviceRegistry;
 import com.nb.web.service.bus.registry.patient.PatientOperator;
@@ -277,7 +278,12 @@ public class DeviceInfoListener implements IIotMsgHandler {
     }
 
     private boolean isNewInFusion(String deviceId, String classification){
-        return ObjectUtil.notEqual(classification,deviceRegistry.getOperator(deviceId).getClassification());
+        String originClassification = deviceRegistry.getOperator(deviceId).getClassification();
+        if(StrUtil.equalsIgnoreCase(originClassification, DeviceKeyConstant.DEFAULT_CLASSIFY)
+        ||ObjectUtil.notEqual(classification,deviceRegistry.getOperator(deviceId).getClassification())){
+            return true;
+        }
+        return false;
     }
 
     /**

+ 4 - 3
nb-service/web-service/src/main/java/com/nb/web/service/bus/service/LocalBusDeviceService.java

@@ -39,6 +39,7 @@ import org.springframework.context.annotation.Lazy;
 import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
 
+import javax.security.auth.login.LoginContext;
 import java.util.*;
 import java.util.concurrent.CompletableFuture;
 import java.util.concurrent.atomic.AtomicReference;
@@ -386,11 +387,11 @@ public class LocalBusDeviceService extends BaseService<BusDeviceMapper, BusDevic
      * @return void
      */
     @Transactional(rollbackFor = Exception.class)
-    public void shift(List<String> deviceIds, String afterTenantId) {
+    public void shift(List<String> deviceIds, String afterTenantId,String originTenantId) {
         List<DeviceOperator> operators = deviceIds.stream()
                 .map(deviceRegistry::getOperator)
                 .collect(Collectors.toList());
-        if (CollUtil.isEmpty(operators)) {
+        if (CollUtil.isEmpty(operators)||StrUtil.equalsIgnoreCase(originTenantId,afterTenantId)) {
             return;
         }
         this.update(new UpdateWrapper<BusDeviceEntity>().lambda()
@@ -402,7 +403,7 @@ public class LocalBusDeviceService extends BaseService<BusDeviceMapper, BusDevic
                 .filter(Objects::nonNull)
                 .forEach(deviceOperator -> {
                     RMapCache<String, Value> cache = deviceOperator.getCache();
-                    cache.remove(DeviceKeyConstant.TENANT_ID);
+                    cache.clear();
                     cache.put(DeviceKeyConstant.CLASSIFY,Value.simple(DeviceKeyConstant.DEFAULT_CLASSIFY));
                 });
     }