Ver código fonte

feat:
新增根据设备id查询医院编码

18339543638 1 ano atrás
pai
commit
75a8ec4ee4

+ 1 - 0
nb-auth/src/main/java/com/nb/auth/sa/SaTokenConfig.java

@@ -67,6 +67,7 @@ public class SaTokenConfig {
         IGNORE_URL.add("/system/sysConfig/getTime");
         IGNORE_URL.add("/system/sysDept/**");
         IGNORE_URL.add("/assist/phone/**");
+        IGNORE_URL.add("/bus/device/info/hospitalCode");
     }
 
 }

+ 1 - 1
nb-common/config-common/src/main/java/com/nb/common/config/mybatisplus/interceptor/DefaultTenantLineInnerInterceptor.java

@@ -38,7 +38,7 @@ import static org.springframework.web.context.request.RequestAttributes.SCOPE_RE
 @ConditionalOnBean(TenantIdManager.class)
 @Configuration
 public class DefaultTenantLineInnerInterceptor {
-    private final List<String> ignoreUrlTenantId= Arrays.asList("/login","/getUserInfo","/token");
+    private final List<String> ignoreUrlTenantId= Arrays.asList("/login","/getUserInfo","/token","/bus/device/info/hospitalCode");
     private final List<Class<?>> tableClass;
 
     private Set<String> ignoreTableName;

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

@@ -1,12 +1,15 @@
 package com.nb.web.service.bus.controller;
 
 import cn.dev33.satoken.annotation.SaCheckPermission;
+import cn.dev33.satoken.annotation.SaIgnore;
 import cn.hutool.core.collection.CollectionUtil;
 import cn.hutool.core.text.CharSequenceUtil;
 import cn.hutool.core.util.ObjectUtil;
 import cn.hutool.core.util.StrUtil;
+import com.baomidou.mybatisplus.annotation.TableField;
 import com.baomidou.mybatisplus.core.mapper.Mapper;
 import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.nb.web.api.feign.query.AlarmQuery;
 import com.nb.web.service.bus.controller.vo.DeviceBindVo;
 import com.nb.web.api.entity.BusDeviceEntity;
 import com.nb.web.api.enums.DeviceAlarmEnum;
@@ -21,6 +24,7 @@ import com.nb.core.result.R;
 import io.swagger.annotations.*;
 import lombok.AllArgsConstructor;
 import lombok.extern.slf4j.Slf4j;
+import org.springframework.validation.annotation.Validated;
 import org.springframework.web.bind.annotation.*;
 
 import java.util.List;
@@ -183,4 +187,12 @@ public class BusDeviceController implements
             return R.fail("同步失败");
         }
     }
+
+
+    @PostMapping("/hospitalCode")
+    @SaIgnore
+    @ApiOperation(value = "根据设备id查询设备所在的医院编码")
+    public R<String> hospitalCode(@RequestBody String deviceId){
+        return R.success(deviceService.hospitalCode(deviceId));
+    }
 }

+ 2 - 0
nb-service/web-service/src/main/java/com/nb/web/service/bus/mapper/BusDeviceMapper.java

@@ -42,4 +42,6 @@ public interface BusDeviceMapper extends BaseMapper<BusDeviceEntity> {
     DeviceResult view(@Param("id") String id);
 
     List<BusDeviceEntity> ignoreLogicAll(@Param("ids") Set<String> pollDeviceIds);
+
+    String hospitalCode(@Param("deviceId") String deviceId);
 }

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

@@ -97,6 +97,10 @@ public class LocalBusDeviceService extends BaseService<BusDeviceMapper, BusDevic
 
     }
 
+    public String hospitalCode(String deviceId){
+        return baseMapper.hospitalCode(deviceId);
+    }
+
     @Override
     public void postUpdate(BusDeviceEntity entity) {
         DeviceOperator deviceOperator = deviceRegistry

+ 17 - 1
nb-service/web-service/src/main/java/com/nb/web/service/bus/service/LocalBusHospitalService.java

@@ -4,6 +4,7 @@ import cn.hutool.core.bean.BeanUtil;
 import cn.hutool.core.collection.CollUtil;
 import cn.hutool.core.util.ObjectUtil;
 import cn.hutool.core.util.StrUtil;
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.baomidou.mybatisplus.core.toolkit.IdWorker;
@@ -93,7 +94,22 @@ public class LocalBusHospitalService extends BaseService<BusHospitalMapper, BusH
             entity.setStrategy(HisStrategyEnum.NONE);
         }
         entity.setScriptOnline(false);
-        entity.setCode(CodeUtils.genInviteCode(id));
+
+        String code="";
+        for (int i = 0; i < 10; i++) {
+            String tmpCode = CodeUtils.genInviteCode(id);
+            BusHospitalEntity hospital = baseMapper.selectOne(new LambdaQueryWrapper<BusHospitalEntity>().eq(BusHospitalEntity::getCode, tmpCode).last("limit 1"));
+            if(ObjectUtil.isNull(hospital)){
+                code=tmpCode;
+            }
+            if(StrUtil.isNotBlank(code)){
+                break;
+            }
+        }
+        if(StrUtil.isBlank(code)){
+            throw new CustomException("医院编码已用尽,请联系管理员");
+        }
+        entity.setCode(code);
         entity.setId(String.valueOf(id));
     }
 

+ 14 - 11
nb-service/web-service/src/main/java/com/nb/web/service/bus/utils/CodeUtils.java

@@ -1,6 +1,8 @@
 package com.nb.web.service.bus.utils;
 
 
+import cn.hutool.core.util.RandomUtil;
+
 import java.util.*;
 /**
  * @author lifang
@@ -56,17 +58,18 @@ public class CodeUtils {
 
 
     public static String genInviteCode(long id) {
-        int key = (int) (id % 36);
-        char[] cs = new char[4];
-        cs[0] = INDEX.charAt(key);
-        String select = baseList.get(key);
-        id=id/36;
-        long code = 1_0000_0000 + id * 13;
-        for (int i = 1; i < cs.length; i++) {
-            cs[i] = select.charAt((int) (code % 36));
-            code = code / 36;
-        }
-        return new String(cs);
+//        int key = (int) (id % 36);
+//        char[] cs = new char[4];
+//        cs[0] = INDEX.charAt(key);
+//        String select = baseList.get(key);
+//        id=id/36;
+//        long code = 1_0000_0000 + id * 13;
+//        for (int i = 1; i < cs.length; i++) {
+//            cs[i] = select.charAt((int) (code % 36));
+//            code = code / 36;
+//        }
+//        return new String(cs);
+        return String.valueOf( RandomUtil.randomInts(5));
     }
 
 }

+ 4 - 0
nb-service/web-service/src/main/resources/mapper/bus/BusDeviceMapper.xml

@@ -125,4 +125,8 @@
             </if>
         </where>
     </select>
+
+    <select id="hospitalCode" resultType="java.lang.String">
+        select  bh.code from  bus_device as bd join bus_hospital as bh on bd.tenant_id = bh.tenant_id  where bd.device_id = #{deviceId}
+    </select>
 </mapper>