diff --git a/upms/upms-biz/src/main/resources/application.yml b/upms/upms-biz/src/main/resources/application.yml
index ffeb0fb..31e83c5 100644
--- a/upms/upms-biz/src/main/resources/application.yml
+++ b/upms/upms-biz/src/main/resources/application.yml
@@ -12,11 +12,6 @@ spring:
data:
redis:
host: localhost
- mongodb:
- host: localhost
- password: root
- username: root
- authentication-database: admin
# 数据库相关配置
datasource:
driver-class-name: com.mysql.cj.jdbc.Driver
@@ -105,3 +100,9 @@ mybatis-plus:
jdbc-type-for-null: 'null'
call-setters-on-nulls: true
shrink-whitespaces-in-sql: true
+
+vital-sign:
+ mongodb:
+ host: localhost:27017
+ password: root
+ username: root
diff --git a/upms/upms-biz/src/main/resources/static/html/app.js b/upms/upms-biz/src/main/resources/static/html/app.js
index 4324c5d..9299e61 100644
--- a/upms/upms-biz/src/main/resources/static/html/app.js
+++ b/upms/upms-biz/src/main/resources/static/html/app.js
@@ -5,12 +5,14 @@ const stompClient = new StompJs.Client({
brokerURL: "ws://localhost:8080/test-guide"
})*/
+let user = ""
+
stompClient.onConnect = (frame) => {
setConnected(true);
console.log('Connected: ' + frame);
- stompClient.subscribe('/topic/doctorMedicine', (greeting) => {
+ /*stompClient.subscribe('/topic/user/'+user+'/doctorMedicine', (greeting) => {
showGreeting(greeting.body);
- });
+ });*/
};
/*testClient.onConnect = (data) => {
@@ -55,13 +57,22 @@ function disconnect() {
}
function sendName() {
+ user = Math.random()
+ $("#user-id").val(user)
sendNameToServer();
}
function sendNameToServer(status) {
- stompClient.publish({
+ /*stompClient.publish({
destination: "/front/doctorMedicine",
body: status ? status : $("#name").val()
+ });*/
+ stompClient.publish({
+ destination: "/front/doctorMedicine",
+ body: JSON.stringify({'status': status, "db": "test", user})
+ });
+ stompClient.subscribe('/topic/user/'+user+'/doctorMedicine', (greeting) => {
+ showGreeting(greeting.body);
});
/*testClient.publish({
destination: "/app/test-hello",
diff --git a/upms/upms-biz/src/main/resources/static/html/index.html b/upms/upms-biz/src/main/resources/static/html/index.html
index 5c2f072..314aa04 100644
--- a/upms/upms-biz/src/main/resources/static/html/index.html
+++ b/upms/upms-biz/src/main/resources/static/html/index.html
@@ -29,6 +29,7 @@
+
diff --git a/vital-signs/pom.xml b/vital-signs/pom.xml
index 1104875..f773173 100644
--- a/vital-signs/pom.xml
+++ b/vital-signs/pom.xml
@@ -49,6 +49,12 @@
org.springframework.boot
spring-boot-starter-data-mongodb
+
+ com.alibaba
+ druid-spring-boot-starter
+ 1.2.21
+
+
\ No newline at end of file
diff --git a/vital-signs/src/main/java/com/rax/vital/config/WebSocketConfig.java b/vital-signs/src/main/java/com/rax/vital/config/WebSocketConfig.java
index 4f97f54..d763b01 100644
--- a/vital-signs/src/main/java/com/rax/vital/config/WebSocketConfig.java
+++ b/vital-signs/src/main/java/com/rax/vital/config/WebSocketConfig.java
@@ -19,6 +19,7 @@ public class WebSocketConfig implements WebSocketMessageBrokerConfigurer {
public void configureMessageBroker(MessageBrokerRegistry registry) {
registry.enableSimpleBroker("/topic");
registry.setApplicationDestinationPrefixes("/front");
+ registry.setUserDestinationPrefix("/topic/user");
}
}
diff --git a/vital-signs/src/main/java/com/rax/vital/datasource/MongoDBSource.java b/vital-signs/src/main/java/com/rax/vital/datasource/MongoDBSource.java
index 3c808c8..47b90d6 100644
--- a/vital-signs/src/main/java/com/rax/vital/datasource/MongoDBSource.java
+++ b/vital-signs/src/main/java/com/rax/vital/datasource/MongoDBSource.java
@@ -4,37 +4,44 @@ import com.mongodb.ConnectionString;
import com.mongodb.MongoClientSettings;
import com.mongodb.client.MongoClient;
import com.mongodb.client.MongoClients;
+import lombok.Getter;
import org.springframework.data.mongodb.SpringDataMongoDB;
import org.springframework.data.mongodb.core.MongoTemplate;
import org.springframework.data.mongodb.core.SimpleMongoClientDatabaseFactory;
-import org.springframework.util.StringUtils;
-import java.util.ArrayList;
-import java.util.HashMap;
-import java.util.List;
-import java.util.Map;
import java.util.concurrent.TimeUnit;
+/**
+ * mongoDB链接工具类
+ */
public class MongoDBSource {
+
+ // 地址
private String host;
+
+ // 密码
private String password;
+
+ // 用户名称
private String username;
+
private static final String authenticationDatabase = "admin";
+
+ // 数据库名称
private String database;
+
+ // mongo的客户端
private MongoClient mongoClient;
- private static final Map datasourceList = new HashMap(300);
+ // 被使用的数量
+ @Getter
+ private int count = 0;
public MongoDBSource(String host, String password, String username, String database) {
- String url = datasourceList.get(database);
- if (StringUtils.hasText(url)) {
-
- } else {
- this.host = host;
- this.password = password;
- this.username = username;
- this.database = database;
- }
+ this.host = host;
+ this.password = password;
+ this.username = username;
+ this.database = database;
}
public MongoTemplate open() {
@@ -63,4 +70,13 @@ public class MongoDBSource {
public void close() {
mongoClient.close();
}
+
+ public synchronized void increaseCount() {
+ count++;
+ }
+
+ public synchronized void decreaseCount() {
+ count--;
+ }
+
}
diff --git a/vital-signs/src/main/java/com/rax/vital/datasource/MySQLSource.java b/vital-signs/src/main/java/com/rax/vital/datasource/MySQLSource.java
new file mode 100644
index 0000000..7b2ff49
--- /dev/null
+++ b/vital-signs/src/main/java/com/rax/vital/datasource/MySQLSource.java
@@ -0,0 +1,69 @@
+package com.rax.vital.datasource;
+
+import com.alibaba.druid.pool.DruidDataSource;
+import com.alibaba.druid.pool.DruidPooledConnection;
+import lombok.Getter;
+import lombok.SneakyThrows;
+
+import java.sql.Connection;
+
+public class MySQLSource {
+
+ private String host;
+
+ private String password;
+
+ private String username;
+
+ private String database;
+
+ private String driver = "com.mysql.cj.jdbc.Driver";
+
+ @Getter
+ private int count = 0;
+
+ private DruidDataSource dataSource;
+
+ private DruidPooledConnection druidPooledConnection;
+
+ private Connection connection;
+
+ public MySQLSource(String host, String password, String username, String database) {
+ this.host = host;
+ this.password = password;
+ this.username = username;
+ this.database = database;
+ }
+
+ @SneakyThrows
+ public Connection open() {
+ dataSource = new DruidDataSource();
+ dataSource.setUrl("jdbc:mysql://" + this.host + "/" + this.database);
+ dataSource.setUsername(this.username);
+ dataSource.setPassword(this.password);
+ dataSource.setMinIdle(10);
+ dataSource.setMaxActive(120);
+ dataSource.setMaxWait(60000);
+ druidPooledConnection = dataSource.getConnection();
+ connection = druidPooledConnection.getConnection();
+ return connection;
+ }
+
+ public void close() {
+ try {
+ connection.close();
+ druidPooledConnection.close();
+ dataSource.close();
+ } catch (Exception e) {
+ e.printStackTrace();
+ }
+ }
+
+ public synchronized void increaseCount() {
+ count++;
+ }
+
+ public synchronized void decreaseCount() {
+ count--;
+ }
+}
diff --git a/vital-signs/src/main/java/com/rax/vital/medicine/controller/MedicineController.java b/vital-signs/src/main/java/com/rax/vital/medicine/controller/MedicineController.java
index 394f032..f8c46cd 100644
--- a/vital-signs/src/main/java/com/rax/vital/medicine/controller/MedicineController.java
+++ b/vital-signs/src/main/java/com/rax/vital/medicine/controller/MedicineController.java
@@ -1,17 +1,14 @@
package com.rax.vital.medicine.controller;
-import com.rax.common.core.util.R;
+import com.alibaba.fastjson.JSONObject;
import com.rax.vital.medicine.service.AIMedicineService;
import com.rax.vital.medicine.service.DoctorMedicineService;
import com.rax.vital.timer.VitalSignTimer;
import io.swagger.v3.oas.annotations.security.SecurityRequirement;
import io.swagger.v3.oas.annotations.tags.Tag;
import lombok.RequiredArgsConstructor;
-import org.quartz.Scheduler;
import org.springframework.http.HttpHeaders;
import org.springframework.messaging.handler.annotation.MessageMapping;
-import org.springframework.messaging.handler.annotation.SendTo;
-import org.springframework.messaging.simp.SimpMessagingTemplate;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
@@ -30,16 +27,15 @@ public class MedicineController {
private final DoctorMedicineService doctorMedicineService;
- private final Scheduler scheduler;
-
private final VitalSignTimer vitalSignTimer;
@MessageMapping("/doctorMedicine")
- public void doctorMedicine(String msg) {
- if ("stop".equals(msg)) {
- vitalSignTimer.stopTimerTask("test");
+ public void doctorMedicine(String body) {
+ JSONObject params = JSONObject.parseObject(body);
+ if ("stop".equals(params.getString("status"))) {
+ vitalSignTimer.stopTimerTask(params.getString("db"), params.getString("user"));
} else {
- vitalSignTimer.createAndSendMessage("test");
+ vitalSignTimer.createAndSendMessage(params.getString("db"));
}
}
diff --git a/vital-signs/src/main/java/com/rax/vital/medicine/service/AIMedicineService.java b/vital-signs/src/main/java/com/rax/vital/medicine/service/AIMedicineService.java
index 6f44ed2..104ca99 100644
--- a/vital-signs/src/main/java/com/rax/vital/medicine/service/AIMedicineService.java
+++ b/vital-signs/src/main/java/com/rax/vital/medicine/service/AIMedicineService.java
@@ -3,5 +3,8 @@ package com.rax.vital.medicine.service;
import com.baomidou.mybatisplus.extension.service.IService;
import com.rax.vital.medicine.entity.AIMedicine;
+/**
+ * AI给药
+ */
public interface AIMedicineService extends IService {
}
diff --git a/vital-signs/src/main/java/com/rax/vital/medicine/service/DoctorMedicineService.java b/vital-signs/src/main/java/com/rax/vital/medicine/service/DoctorMedicineService.java
index c3a87e3..664af1a 100644
--- a/vital-signs/src/main/java/com/rax/vital/medicine/service/DoctorMedicineService.java
+++ b/vital-signs/src/main/java/com/rax/vital/medicine/service/DoctorMedicineService.java
@@ -3,5 +3,8 @@ package com.rax.vital.medicine.service;
import com.baomidou.mybatisplus.extension.service.IService;
import com.rax.vital.medicine.entity.DoctorMedicine;
+/**
+ * 医生给药
+ */
public interface DoctorMedicineService extends IService {
}
diff --git a/vital-signs/src/main/java/com/rax/vital/medicine/service/RevulsionService.java b/vital-signs/src/main/java/com/rax/vital/medicine/service/RevulsionService.java
index e02532d..6803580 100644
--- a/vital-signs/src/main/java/com/rax/vital/medicine/service/RevulsionService.java
+++ b/vital-signs/src/main/java/com/rax/vital/medicine/service/RevulsionService.java
@@ -1,4 +1,7 @@
package com.rax.vital.medicine.service;
+/**
+ * 诱导期给药数据
+ */
public interface RevulsionService {
}
diff --git a/vital-signs/src/main/java/com/rax/vital/medicine/service/VitalSignsService.java b/vital-signs/src/main/java/com/rax/vital/medicine/service/VitalSignsService.java
new file mode 100644
index 0000000..a98ee2c
--- /dev/null
+++ b/vital-signs/src/main/java/com/rax/vital/medicine/service/VitalSignsService.java
@@ -0,0 +1,20 @@
+package com.rax.vital.medicine.service;
+
+import com.rax.vital.datasource.MongoDBSource;
+
+import java.util.List;
+import java.util.Map;
+
+/**
+ * 生命体征数据
+ */
+public interface VitalSignsService {
+
+ /**
+ * 获取最新一条生命体征数据
+ *
+ * @param mongoDBSource
+ * @return
+ */
+ List