Przeglądaj źródła

feat:
新增本地化部署方案

18339543638 2 lat temu
rodzic
commit
ca9e6bcfe0

+ 4 - 1
nb-admin/src/main/resources/application.yml

@@ -94,4 +94,7 @@ management:
   endpoints:
     web:
       exposure:
-        include: heapdump,metrics
+        include: heapdump,metrics
+hospital:
+  code: test
+  name: 测试医院

+ 2 - 2
nb-service/iot-service/src/main/java/com/nb/aliyun/service/AliyunConsumerGroupService.java

@@ -18,7 +18,7 @@ import java.util.concurrent.atomic.AtomicInteger;
  * @Version 1.0
  * @Description 阿里云物联网平台服务端订阅
  */
-@Service
+//@Service
 @Slf4j
 @ConditionalOnProperty(name = "aliyun.server-subscription.enable",havingValue = "true",matchIfMissing = false)
 public class AliyunConsumerGroupService implements CommandLineRunner {
@@ -107,4 +107,4 @@ public class AliyunConsumerGroupService implements CommandLineRunner {
             log.error("阿里云数据【{}】处理失败 ", JSONUtil.toJsonStr(message), e);
         }
     }
-}
+}

+ 31 - 0
nb-service/iot-service/src/main/java/com/nb/aliyun/service/distribute/SlaveDistributeMsgListener.java

@@ -0,0 +1,31 @@
+package com.nb.aliyun.service.distribute;
+
+import cn.hutool.json.JSONUtil;
+import com.nb.aliyun.service.bean.AliIotMessagePojo;
+import com.nb.aliyun.service.process.DeviceMsgHandler;
+import lombok.AllArgsConstructor;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.amqp.rabbit.annotation.RabbitHandler;
+import org.springframework.amqp.rabbit.annotation.RabbitListener;
+import org.springframework.boot.autoconfigure.AutoConfigureAfter;
+import org.springframework.stereotype.Component;
+
+/**
+ * @ClassName : MasterMsgListener
+ * @Description : 接受来自分发器的消息
+ * @Author : LF
+ * @Date: 2023年08月01日
+ */
+@Slf4j
+@Component
+@AllArgsConstructor
+@AutoConfigureAfter(SlaveDistributeQueueConfig.class)
+public class SlaveDistributeMsgListener {
+    private final DeviceMsgHandler deviceMsgHandler;
+    @RabbitHandler
+    @RabbitListener(queues = "${hospital.code}")
+    public void handleMsg(AliIotMessagePojo  msg){
+        log.info("[分发器消息]:{}",JSONUtil.toJsonStr(msg));
+        deviceMsgHandler.handleMessage(msg,false);
+    }
+}

+ 39 - 0
nb-service/iot-service/src/main/java/com/nb/aliyun/service/distribute/SlaveDistributeQueueConfig.java

@@ -0,0 +1,39 @@
+package com.nb.aliyun.service.distribute;
+
+import com.nb.aliyun.service.AliIotConstant;
+import com.nb.web.api.HospitalProperties;
+import lombok.AllArgsConstructor;
+import org.springframework.amqp.core.Binding;
+import org.springframework.amqp.core.BindingBuilder;
+import org.springframework.amqp.core.DirectExchange;
+import org.springframework.amqp.core.Queue;
+import org.springframework.boot.context.properties.EnableConfigurationProperties;
+import org.springframework.context.annotation.Bean;
+import org.springframework.stereotype.Component;
+
+/**
+ * @ClassName : RabbitMqChannelConfig
+ * @Description :
+ * @Author : LF
+ * @Date: 2023年07月31日
+ */
+@Component
+@AllArgsConstructor
+@EnableConfigurationProperties(HospitalProperties.class)
+public class SlaveDistributeQueueConfig {
+    private final HospitalProperties hospitalProperties;
+    @Bean
+    public Queue distributeQueue() {
+        return new Queue(hospitalProperties.getCode(),true,true,true);
+    }
+
+    @Bean
+    DirectExchange distributeExchange() {
+        return new DirectExchange(AliIotConstant.Exchange,true,false);
+    }
+
+    @Bean
+    Binding bindingDirect() {
+        return BindingBuilder.bind(distributeQueue()).to(distributeExchange()).with(hospitalProperties.getCode());
+    }
+}

+ 9 - 2
nb-service/web-service/src/main/java/com/nb/web/service/bus/service/LocalBusHospitalService.java

@@ -9,6 +9,7 @@ import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.baomidou.mybatisplus.core.toolkit.IdWorker;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.nb.auth.utils.SecurityUtil;
+import com.nb.web.api.HospitalProperties;
 import com.nb.web.api.bean.GeoPoint;
 import com.nb.web.api.entity.BusHospitalConfigEntity;
 import com.nb.web.api.feign.IHospitalClient;
@@ -54,6 +55,9 @@ import java.util.stream.Collectors;
  */
 @Service
 public class LocalBusHospitalService extends BaseService<BusHospitalMapper, BusHospitalEntity,String> implements CommandLineRunner, GetNameInterface<String,String>, HospitalCodeCheck, IHospitalClient {
+    @Autowired
+    private HospitalProperties hospitalProperties;
+
     @Autowired
     @Lazy
     private ConfigStorageManager configStorageManager;
@@ -94,7 +98,9 @@ public class LocalBusHospitalService extends BaseService<BusHospitalMapper, BusH
             entity.setStrategy(HisStrategyEnum.NONE);
         }
         entity.setScriptOnline(false);
-        entity.setCode(CodeUtils.genInviteCode(id));
+        if(StrUtil.isBlank(entity.getCode())){
+            entity.setCode(CodeUtils.genInviteCode(id));
+        }
         entity.setId(String.valueOf(id));
     }
 
@@ -222,7 +228,8 @@ public class LocalBusHospitalService extends BaseService<BusHospitalMapper, BusH
     private void saveDefaultHospital(){
         BusHospitalEntity hospital = new BusHospitalEntity();
         hospital.setId("1");
-        hospital.setName("驼人医疗器械有限公司");
+        hospital.setName(StrUtil.isNotBlank(hospitalProperties.getName())?hospitalProperties.getName():"驼人医疗器械有限公司");
+        hospital.setCode(hospitalProperties.getCode());
         hospital.setRemark("系统级医院,不可删除、修改");
         GeoPoint geoPoint = new GeoPoint();
         geoPoint.setLon("35.135106");