From 4eb089d803756cbfca4ea1aa6268e815f02d4b35 Mon Sep 17 00:00:00 2001 From: republicline <1464474399@qq.com> Date: Tue, 1 Apr 2025 11:20:30 +0800 Subject: [PATCH] =?UTF-8?q?commit:=20=E6=8F=90=E4=BA=A4=E5=8C=97=E6=A3=80?= =?UTF-8?q?=E6=89=80=E6=B5=8B=E8=AF=95=E7=89=88=E6=9C=ACV0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../admin/controller/SysUserController.java | 1 + .../com/rax/vital/v1/handler/ChatHandler.java | 37 +- .../service/impl/AIMedicineServiceImpl.java | 12 +- .../service/impl/VitalSignServiceImpl.java | 270 +++++++++---- .../rax/vital/v1/timer/VitalSignTimerWS.java | 9 +- .../src/main/resources/application-dev.yml | 115 ++++++ .../src/main/resources/application-loc.yml | 10 +- .../src/main/resources/application-old.yml | 374 +++++++++--------- .../src/main/resources/application.yml | 8 +- 9 files changed, 556 insertions(+), 280 deletions(-) create mode 100644 upms/upms-biz/src/main/resources/application-dev.yml diff --git a/upms/upms-biz/src/main/java/com/rax/admin/controller/SysUserController.java b/upms/upms-biz/src/main/java/com/rax/admin/controller/SysUserController.java index 5a01deb..d0ff088 100644 --- a/upms/upms-biz/src/main/java/com/rax/admin/controller/SysUserController.java +++ b/upms/upms-biz/src/main/java/com/rax/admin/controller/SysUserController.java @@ -132,6 +132,7 @@ public class SysUserController { @PostMapping @PreAuthorize("@pms.hasPermission('sys_user_add')") public R user(@RequestBody UserDTO userDto) { + System.out.println("userDto = " + userDto); boolean matches = Pattern.matches(PASSWD_PATTERN, userDto.getPassword()); if (!matches) { return R.failed("密码至少8~16位字母或数字(区分大小写)"); diff --git a/upms/upms-biz/src/main/java/com/rax/vital/v1/handler/ChatHandler.java b/upms/upms-biz/src/main/java/com/rax/vital/v1/handler/ChatHandler.java index f24a3fb..fdafd58 100644 --- a/upms/upms-biz/src/main/java/com/rax/vital/v1/handler/ChatHandler.java +++ b/upms/upms-biz/src/main/java/com/rax/vital/v1/handler/ChatHandler.java @@ -112,9 +112,14 @@ public class ChatHandler implements WebSocketHandler { // redisTemplate.opsForHash().putAll("chat_sessionId_" + dbName, sessionDbMap); // redisTemplate.expire("chat_" + dbName, 60 * 60, TimeUnit.SECONDS); } - else if ("msg".equals(jsonObject.getString("msgType"))) { + else if ("msg".equals(jsonObject.getString("msgType"))) { // 消息推送 //String patientName = jsonObject.getString("patientName"); + String dbName = "a" + jsonObject.getString("idNum"); + for (WebSocketSession webSocketSession : dbNameSessionList.get(dbName)) { + System.out.println("webSocketSession Size = " + dbNameSessionList.get(dbName).size()); + System.out.println("webSocketSession = " + webSocketSession); + } //String date = jsonObject.getString("date"); String msgType = jsonObject.getString("msgType"); // 消息内容 @@ -129,7 +134,9 @@ public class ChatHandler implements WebSocketHandler { param.put("msg", content); param.put("dbName", dbName); for (WebSocketSession webSocketSession : webSocketSessions) { - webSocketSession.sendMessage(new TextMessage(param.toJSONString().getBytes())); + if (webSocketSession.isOpen()) { + webSocketSession.sendMessage(new TextMessage(param.toJSONString().getBytes())); + } } // 异步入库 EXECUTOR_SERVICE.execute(() -> saveChatMsg(param.toJSONString())); @@ -145,7 +152,7 @@ public class ChatHandler implements WebSocketHandler { Connection connection = source.getConnection(); if (connection != null) { Statement statement = connection.createStatement(); - String sql = "select content, create_time, create_user from t_chat where deleted = 0 and revoked = 0 order by create_time asc "; + String sql = "select content, create_time, create_user from t_chat_server where deleted = 0 and revoked = 0 order by create_time asc "; ResultSet resultSet = statement.executeQuery(sql); while (resultSet.next()) { Map map = new HashMap(); @@ -217,11 +224,25 @@ public class ChatHandler implements WebSocketHandler { } private void stopMap(WebSocketSession session) { + System.out.println("stopMap is running"); String dbName = sessionDbMap.get(session.getId()); if (dbName != null) { - dbNameSessionList.remove(dbName); + List sessionList = dbNameSessionList.get(dbName); + if (sessionList.isEmpty()) { + dbNameSessionList.remove(dbName); + sessionDbMap.remove(session.getId()); + }else { + // 定时删除 + boolean remove = sessionList.remove(session); + System.out.println("remove = " + remove + "removeListSize = " + sessionList.size()); + String remove1 = sessionDbMap.remove(session.getId()); + System.out.println("remove1 = " + remove1); + ScheduledExecutorService scheduledRemoveService = Executors.newScheduledThreadPool(1); + scheduledRemoveService.schedule(() -> { + dbNameSessionList.remove(dbName); + }, 180, TimeUnit.MINUTES); + } } - sessionDbMap.remove(session.getId()); } // 初始化聊天表格 @@ -232,7 +253,7 @@ public class ChatHandler implements WebSocketHandler { source.open(); Connection connection = source.getConnection(); if (connection != null) { - String tableName = "t_chat"; + String tableName = "t_chat_server"; Statement statement = connection.createStatement(); // 检查表是否存在的 SQL 语句 String checkTableSQL = "SELECT COUNT(*) FROM information_schema.tables " + @@ -292,8 +313,6 @@ public class ChatHandler implements WebSocketHandler { // } // } } - - // 保存聊天消息到数据库 private void saveChatMsg(String jsonStr) { // 发消息, 入库 @@ -312,7 +331,7 @@ public class ChatHandler implements WebSocketHandler { Connection connection = source.getConnection(); PreparedStatement preparedStatement = null; try { - preparedStatement = connection.prepareStatement("INSERT INTO t_chat (content, create_time, create_user, msg_type, deleted, revoked) VALUES (?, ?, ?, ?, ?, ?)"); + preparedStatement = connection.prepareStatement("INSERT INTO t_chat_server (content, create_time, create_user, msg_type, deleted, revoked) VALUES (?, ?, ?, ?, ?, ?)"); preparedStatement.setString(1, content); preparedStatement.setString(2, now); preparedStatement.setString(3, username); diff --git a/upms/upms-biz/src/main/java/com/rax/vital/v1/medicine/service/impl/AIMedicineServiceImpl.java b/upms/upms-biz/src/main/java/com/rax/vital/v1/medicine/service/impl/AIMedicineServiceImpl.java index ae17cc4..11563cb 100644 --- a/upms/upms-biz/src/main/java/com/rax/vital/v1/medicine/service/impl/AIMedicineServiceImpl.java +++ b/upms/upms-biz/src/main/java/com/rax/vital/v1/medicine/service/impl/AIMedicineServiceImpl.java @@ -33,10 +33,10 @@ public class AIMedicineServiceImpl implements AIMedicineService { put("丙泊酚", "丙泊酚"); put("舒芬太尼", "舒芬太尼"); put("瑞芬太尼", "瑞芬太尼"); - put("顺阿曲库胺", "顺阿曲库胺"); + put("顺阿曲库铵", "顺阿曲库铵"); put("尼卡地平", "尼卡地平"); put("艾司洛尔", "艾司洛尔"); - put("麻黄素", "麻黄素"); + put("麻黄碱", "麻黄碱"); put("阿托品", "阿托品"); } }; @@ -123,14 +123,14 @@ public class AIMedicineServiceImpl implements AIMedicineService { medicine.put("舒芬太尼sum", resultSet.getString("cumu_2")); medicine.put("瑞芬太尼", resultSet.getString("rate_3")); medicine.put("瑞芬太尼sum", resultSet.getString("cumu_3")); - medicine.put("顺阿曲库胺", resultSet.getString("rate_4")); - medicine.put("顺阿曲库胺sum", resultSet.getString("cumu_4")); + medicine.put("顺阿曲库铵", resultSet.getString("rate_4")); + medicine.put("顺阿曲库铵sum", resultSet.getString("cumu_4")); medicine.put("尼卡地平", resultSet.getString("rate_5")); medicine.put("尼卡地平sum", resultSet.getString("cumu_5")); medicine.put("艾司洛尔", resultSet.getString("rate_6")); medicine.put("艾司洛尔sum", resultSet.getString("cumu_6")); - medicine.put("麻黄素", resultSet.getString("rate_7")); - medicine.put("麻黄素sum", resultSet.getString("cumu_7")); + medicine.put("麻黄碱", resultSet.getString("rate_7")); + medicine.put("麻黄碱sum", resultSet.getString("cumu_7")); medicine.put("阿托品", resultSet.getString("rate_8")); medicine.put("阿托品sum", resultSet.getString("cumu_8")); medicine.put("Time", resultSet.getString("time")); diff --git a/upms/upms-biz/src/main/java/com/rax/vital/v1/medicine/service/impl/VitalSignServiceImpl.java b/upms/upms-biz/src/main/java/com/rax/vital/v1/medicine/service/impl/VitalSignServiceImpl.java index 4cfd631..b59943d 100644 --- a/upms/upms-biz/src/main/java/com/rax/vital/v1/medicine/service/impl/VitalSignServiceImpl.java +++ b/upms/upms-biz/src/main/java/com/rax/vital/v1/medicine/service/impl/VitalSignServiceImpl.java @@ -101,90 +101,226 @@ public class VitalSignServiceImpl implements VitalSignsService { return vitalList; } + //@Override + //public Map getVitalSignsList(Connection connection, String username, String dbName) { + // // 获取生命体征数据, 10条 + // List vitalList = getVitalList(connection); + // //System.out.println("vitalList = " + vitalList); + // Collections.reverse(vitalList); // time 小到大 十条数据 + // List last = (List) redisTemplate.opsForValue().get(dbName + "_" + username + "_vital_last"); + // + // if (last != null && !last.isEmpty()) { + // if (redisTemplate.hasKey(dbName + "_" + username + "_vital")) { + // // 数据有变化, 更新缓存 + // if (!last.get(last.size() - 1).get("Time").equals(vitalList.get(vitalList.size() - 1).get("Time"))) { + // // 比较last和vitalList 计算出需要更新的条目 + // for (int i = 0; i < vitalList.size(); i++) { + // if (last.get(last.size() - 1).get("Time").equals(vitalList.get(i).get("Time"))) { + // List updateList = vitalList.subList(i, vitalList.size()); + // System.out.println("updateList = " + updateList); + // // todo delete + // for (Map map : updateList) { + // // 低 -> 高 + // redisTemplate.opsForList().rightPush(dbName + "_" + username + "_vital", map); + // } + // // 更新缓存 + // //redisTemplate.delete(dbName + "_" + username + "_vital_last"); + // //redisTemplate.opsForValue().set(dbName + "_" + username + "_vital_last", vitalList, 100, TimeUnit.SECONDS); + // + // redisTemplate.opsForList().trim(dbName + "_" + username + "_vital_last", 0, 9); // 保留最新的10条数据 + // redisTemplate.delete(dbName + "_" + username + "_vital_last"); + // redisTemplate.opsForValue().set(dbName + "_" + username + "_vital_last", vitalList, 100, TimeUnit.SECONDS); + // + // break; + // } + // } + // } + // }else { + // // 缓存中没有数据,存进去, 低 -> 高 + // redisTemplate.opsForList().rightPushAll(dbName + "_" + username + "_vital", last); + // redisTemplate.opsForList().trim(dbName + "_" + username + "_vital", 0, 9); + // // 设置过期时间 + // redisTemplate.expire(dbName + "_" + username + "_vital", Duration.ofSeconds(100)); + // } + // // 右进左出 + // Object o = redisTemplate.opsForList().leftPop(dbName + "_" + username + "_vital"); + // return (Map) o; + // } + // // 第一个缓存存储上一次查询到的数据 + // redisTemplate.opsForValue().set(dbName + "_" + username + "_vital_last", vitalList, 100, TimeUnit.SECONDS); + // return Map.of(); + //} + + @Override public Map getVitalSignsList(Connection connection, String username, String dbName) { + String sbpKey = dbName + username + "_sbp"; + String dbpKey = dbName + username + "_dbp"; // 获取生命体征数据, 10条 - List vitalList = getVitalList(connection); - Collections.reverse(vitalList); - List last = (List) redisTemplate.opsForValue().get(dbName + "_" + username + "_vital_last"); + List vitalList = getVitalList(connection, sbpKey, dbpKey); - if (last != null && !last.isEmpty()) { - if (redisTemplate.hasKey(dbName + "_" + username + "_vital")) { - // 数据有变化, 更新缓存 - if (!last.get(last.size() - 1).get("Time").equals(vitalList.get(vitalList.size() - 1).get("Time"))) { - // 比较last和vitalList 计算出需要更新的条目 - for (int i = 0; i < vitalList.size(); i++) { - if (last.get(last.size() - 1).get("Time").equals(vitalList.get(i).get("Time"))) { - List updateList = vitalList.subList(i, vitalList.size()); - // todo delete -// System.out.println("updateList = " + updateList); - for (Map map : updateList) { - // 低 -> 高 - redisTemplate.opsForList().rightPush(dbName + "_" + username + "_vital", map); - } - // 更新缓存 - redisTemplate.delete(dbName + "_" + username + "_vital_last"); - redisTemplate.opsForValue().set(dbName + "_" + username + "_vital_last", vitalList, 100, TimeUnit.SECONDS); - break; - } - } - } - }else { - // 缓存中没有数据,存进去, 低 -> 高 - redisTemplate.opsForList().rightPushAll(dbName + "_" + username + "_vital", last); - redisTemplate.opsForList().trim(dbName + "_" + username + "_vital", 0, 10); - // 设置过期时间 - redisTemplate.expire(dbName + "_" + username + "_vital", Duration.ofSeconds(100)); - } - // 右进左出 - Object o = redisTemplate.opsForList().leftPop(dbName + "_" + username + "_vital"); - return (Map) o; + String key = dbName + "_" + username + "_vital"; + String lastKey = dbName + "_" + username + "_vital_last"; + + // 从缓存中获取最新的生命体征列表 + List cachedVitals = (List) redisTemplate.opsForValue().get(lastKey); + + // 如果缓存有数据且数据库查询结果与缓存不同,则更新缓存 + if (cachedVitals != null && !cachedVitals.isEmpty() && !cachedVitals.get(cachedVitals.size() - 1).get("Time").equals(vitalList.get(vitalList.size() - 1).get("Time"))) { + // 清空已有的Redis列表 + redisTemplate.delete(key); + // 将新的生命体征数据推入Redis列表 + redisTemplate.opsForList().rightPushAll(key, vitalList); + // 保留最新的10条数据 + redisTemplate.opsForList().trim(key, 0, 9); + // 更新缓存中的生命体征列表 + redisTemplate.delete(lastKey); + redisTemplate.opsForValue().set(lastKey, vitalList, 100, TimeUnit.SECONDS); } - // 第一个缓存存储上一次查询到的数据 - redisTemplate.opsForValue().set(dbName + "_" + username + "_vital_last", vitalList, 100, TimeUnit.SECONDS); - return Map.of(); + + // 如果没有缓存,则初始化缓存 + if (cachedVitals == null || cachedVitals.isEmpty()) { + redisTemplate.opsForList().rightPushAll(key, vitalList); + redisTemplate.opsForList().trim(key, 0, 9); + // 设置过期时间 + redisTemplate.expire(key, Duration.ofSeconds(100)); + redisTemplate.opsForValue().set(lastKey, vitalList, 100, TimeUnit.SECONDS); + } + + // 返回最新的数据 + Object latestVital = redisTemplate.opsForList().index(key, 0); + return latestVital != null ? (Map) latestVital : Map.of(); + } - private List getVitalList(Connection connection) { + // done + private List getVitalList(Connection connection,String sbpKey, String dbpKey) { + //List vitalList = new ArrayList<>(); + //try { + // 查询生命体征数据 +// String sql2 = "SELECT id,Phase, BIS, HR, SBP, DBP, ST, TEMP, SPO2, EtCO2, PPG, ABG, TOF, Time " + +// " FROM `featuretable` " + +// " ORDER BY id DESC LIMIT 10;"; +// PreparedStatement statement = connection.prepareStatement(sql2); +// ResultSet resultSet = statement.executeQuery(sql2); + + // + //while (resultSet.next()) { + // Map vital = new HashMap(); + // vital.put("Phase", resultSet.getString("Phase")); + // vital.put("BIS", resultSet.getString("BIS")); + // vital.put("HR", resultSet.getString("HR")); + // vital.put("ST", resultSet.getString("ST")); + // vital.put("TEMP", resultSet.getString("TEMP")); + // vital.put("SPO2", resultSet.getString("SPO2")); + // vital.put("EtCO2", resultSet.getString("EtCO2")); + // vital.put("PPG", resultSet.getString("PPG")); + // vital.put("ABG", resultSet.getString("ABG")); + // vital.put("TOF", resultSet.getString("TOF")); + // vital.put("Time", resultSet.getString("Time")); + // + // Double bis = resultSet.getDouble("BIS"); + // // exception 值 + // vital.put("BIS_except", bis <= 39 || bis >= 61); + // Double hr = resultSet.getDouble("HR"); + // vital.put("HR_except", hr <= 45 || hr >= 90); + // Double sbp = resultSet.getDouble("SBP"); + // if (sbp == 0) { + // sbp = lastSbp != null ? lastSbp : sbp; + // } else { + // lastSbp = sbp; // 更新上一次的非零值 + // } + // vital.put("SBP", sbp); + // vital.put("SBP_except", sbp > 0 && sbp < 80 || sbp > 130); + // Double dbp = resultSet.getDouble("DBP"); + // if (dbp == 0) { + // dbp = lastDbp != null ? lastDbp : dbp; + // } else { + // lastDbp = dbp; // 更新上一次的非零值 + // } + // vital.put("DBP", dbp); + // vital.put("DBP_except", dbp > 0 && dbp < 60 || dbp > 90); + // Double st = resultSet.getDouble("ST"); + // vital.put("ST_except", st < -0.2 || st > 0.2); + // Double etCO2 = resultSet.getDouble("EtCO2"); + // vital.put("EtCO2_except", etCO2 < 30 || etCO2 > 45); + // vitalList.add(vital); + //} + List vitalList = new ArrayList<>(); try { // 查询生命体征数据 String sql2 = "SELECT id,Phase, BIS, HR, SBP, DBP, ST, TEMP, SPO2, EtCO2, PPG, ABG, TOF, Time " + " FROM `featuretable` " + -// " GROUP BY Phase, BIS, HR, SBP, DBP, ST, TEMP, SPO2, EtCO2, PPG, ABG, TOF, Time " + - " ORDER BY id DESC LIMIT 20;"; + " ORDER BY id DESC LIMIT 10;"; PreparedStatement statement = connection.prepareStatement(sql2); - ResultSet resultSet = statement.executeQuery(sql2); - while (resultSet.next()) { + ResultSet rs = statement.executeQuery(sql2); + + // 将结果集存储在一个临时列表中 + List> tempVitalList = new ArrayList<>(); + while (rs.next()) { Map vital = new HashMap(); - vital.put("Phase", resultSet.getString("Phase")); - vital.put("BIS", resultSet.getString("BIS")); - vital.put("HR", resultSet.getString("HR")); - vital.put("SBP", resultSet.getString("SBP")); - vital.put("DBP", resultSet.getString("DBP")); - vital.put("ST", resultSet.getString("ST")); - vital.put("TEMP", resultSet.getString("TEMP")); - vital.put("SPO2", resultSet.getString("SPO2")); - vital.put("EtCO2", resultSet.getString("EtCO2")); - vital.put("PPG", resultSet.getString("PPG")); - vital.put("ABG", resultSet.getString("ABG")); - vital.put("TOF", resultSet.getString("TOF")); - vital.put("Time", resultSet.getString("Time")); - Double bis = resultSet.getDouble("BIS"); - vital.put("BIS_except", bis <= 40 || bis >= 60); - Double hr = resultSet.getDouble("HR"); - vital.put("HR_except", hr <= 50 || hr >= 80); - Double sbp = resultSet.getDouble("SBP"); - vital.put("SBP_except", sbp <= 90 || sbp >= 120); - Double dbp = resultSet.getDouble("DBP"); - vital.put("DBP_except", dbp <= 60 || dbp >= 90); - Double st = resultSet.getDouble("ST"); - vital.put("ST_except", st <= -0.2 || st >= 0.2); - Double etCO2 = resultSet.getDouble("EtCO2"); - vital.put("EtCO2_except", etCO2 <= 30 || etCO2 >= 45); + vital.put("BIS", rs.getDouble("BIS")); + vital.put("HR", rs.getDouble("HR")); + vital.put("SBP", rs.getDouble("SBP")); + vital.put("DBP", rs.getDouble("DBP")); + vital.put("ST", rs.getDouble("ST")); + vital.put("TEMP", rs.getDouble("TEMP")); + vital.put("SPO2", rs.getDouble("SPO2")); + vital.put("EtCO2", rs.getDouble("EtCO2")); + vital.put("PPG", rs.getDouble("PPG")); + vital.put("ABG", rs.getDouble("ABG")); + vital.put("TOF", rs.getDouble("TOF")); + vital.put("Time", rs.getString("Time")); + tempVitalList.add(vital); + } + + Collections.reverse(tempVitalList); + + // 从后向前遍历临时列表,替换0值 + for (Map tempVital : tempVitalList) { + Map vital = new HashMap(); + Double bis = (Double) tempVital.get("BIS"); + vital.put("BIS", bis); + vital.put("BIS_except", bis <= 39 || bis >= 61); + Double hr = (Double) tempVital.get("HR"); + vital.put("HR", hr); + vital.put("HR_except", (hr <= 45 && hr >= 0) || hr >= 90); + Double sbp = (Double) tempVital.get("SBP"); + if (sbp != 0) { + redisTemplate.opsForValue().set(sbpKey, sbp); + } + Double sbpValue = (Double) redisTemplate.opsForValue().get(sbpKey); + vital.put("SBP", sbpValue); + vital.put("SBP_except", sbpValue != null && sbpValue > 0 && sbpValue < 80 || sbpValue !=null && sbpValue > 130); + Double dbp = (Double) tempVital.get("DBP"); + if (dbp != 0) { + redisTemplate.opsForValue().set(dbpKey, dbp); + } + Double dbpValue = (Double) redisTemplate.opsForValue().get(dbpKey); + vital.put("DBP", redisTemplate.opsForValue().get(dbpKey)); + vital.put("DBP_except", dbpValue!= null && dbpValue > 0 && dbpValue < 60 || dbpValue!=null && dbpValue > 90); + Double st = (Double) tempVital.get("ST"); + vital.put("ST", st); + vital.put("ST_except", st < -0.2 || st > 0.2); + Double etCO2 = (Double) tempVital.get("EtCO2"); + vital.put("EtCO2", etCO2); + vital.put("EtCO2_except", etCO2 < 30 || etCO2 > 45); + Double spo2 = (Double) tempVital.get("SPO2"); + vital.put("SPO2", spo2); + Double temp = (Double) tempVital.get("TEMP"); + vital.put("TEMP", temp); + Object ppg = tempVital.get("PPG"); + Object abg = tempVital.get("ABG"); + Double tof = (Double) tempVital.get("TOF"); + vital.put("TOF", tof); + vital.put("TOF_except", tof >= 10); + Object time = tempVital.get("Time"); + vital.put("Time", time); vitalList.add(vital); } + //System.out.println("vitalList = " + vitalList); return vitalList; } catch (SQLException e) { throw new RuntimeException(e); diff --git a/upms/upms-biz/src/main/java/com/rax/vital/v1/timer/VitalSignTimerWS.java b/upms/upms-biz/src/main/java/com/rax/vital/v1/timer/VitalSignTimerWS.java index c2a13f2..5135186 100644 --- a/upms/upms-biz/src/main/java/com/rax/vital/v1/timer/VitalSignTimerWS.java +++ b/upms/upms-biz/src/main/java/com/rax/vital/v1/timer/VitalSignTimerWS.java @@ -224,13 +224,16 @@ public class VitalSignTimerWS { // 诱导期给药, 暂时不用 // List revulsionList = revulsionService.getRevulsionServiceList(connection); // jsonObject.put("revulsionList", revulsionList); - Map flags = flagService.getFlag(connection); - jsonObject.put("flags", flags); + // 暂时不用 +// Map flags = flagService.getFlag(connection); +// jsonObject.put("flags", flags); jsonObject.put("msgType", "msg"); WebSocketMessage message = new TextMessage(jsonObject.toJSONString().getBytes()); try { - session.sendMessage(message); + if (session.isOpen()) { + session.sendMessage(message); + } } catch (IOException e) { throw new RuntimeException(e); } diff --git a/upms/upms-biz/src/main/resources/application-dev.yml b/upms/upms-biz/src/main/resources/application-dev.yml new file mode 100644 index 0000000..1b8456d --- /dev/null +++ b/upms/upms-biz/src/main/resources/application-dev.yml @@ -0,0 +1,115 @@ +server: + port: 6679 + servlet: + context-path: /admin + address: 0.0.0.0 + +spring: + # 定时任务属性配置 + quartz: + properties: + org: + quartz: + scheduler: + instanceName: clusteredScheduler + instanceId: AUTO + jobStore: + class: org.springframework.scheduling.quartz.LocalDataSourceJobStore + driverDelegateClass: org.quartz.impl.jdbcjobstore.StdJDBCDelegate + tablePrefix: QRTZ_ + isClustered: true + clusterCheckinInterval: 10000 + useProperties: false + threadPool: + class: org.quartz.simpl.SimpleThreadPool + threadCount: 50 + threadPriority: 5 + threadsInheritContextClassLoaderOfInitializingThread: true + job-store-type: jdbc + jdbc: + initialize-schema: never # 生产注意设置为 never + # 上传文件大小限制 + servlet: + multipart: + max-file-size: 100MB + max-request-size: 100MB + # 静态资源文件 + mvc: + static-path-pattern: /static/** + # 缓存相关配置 + cache: + type: redis + # 数据库相关配置 + datasource: + driver-class-name: com.mysql.cj.jdbc.Driver + username: root + password: Xg137839 + # 一期 + url: jdbc:mysql://110.41.142.124:3306/rax_backend1?characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&allowPublicKeyRetrieval=true&useSSL=false&useJDBCCompliantTimezoneShift=true&useLegacyDatetimeCode=false&serverTimezone=GMT%2B8&allowMultiQueries=true&nullCatalogMeansCurrent=true + data: + redis: + host: 110.41.142.124 + port: 16373 + password: rax137839 + connect-timeout: 5000 + database: 1 # 一期 + + + +# 本地文件系统 +file: + local: + enable: true + base-path: /Users/wangchi/Downloads/img + +## spring security 对外暴露接口设置 +security: + oauth2: + ignore: + urls: + - /webjars/** + - /v3/api-docs/** + - /doc.html + - /swagger-ui.html + - /swagger-ui/** + - /swagger-resources + - /token/check_token + - /error + - /actuator/** + - /code/** + - /rax/** + - /hospital/getHospitalList +# 临时白名单 + + +#--------------如下配置尽量不要变动------------- +# mybatis-plus 配置 +mybatis-plus: + mapper-locations: classpath*:/mapper/*Mapper.xml + global-config: + banner: false + db-config: + id-type: auto + where-strategy: not_empty + insert-strategy: not_empty + update-strategy: not_null + type-handlers-package: com.rax.common.mybatis.handler + configuration: + jdbc-type-for-null: 'null' + call-setters-on-nulls: true + shrink-whitespaces-in-sql: true +# log-impl: org.apache.ibatis.logging.stdout.StdOutImpl + + +vital-sign: + mongodb: + host: localhost + port: 27017 + username: xxx + password: xxx + except-database: admin,config + information-database: adaw + mysql: + host: 110.41.142.124:3306 + password: Xg137839 + username: root \ No newline at end of file diff --git a/upms/upms-biz/src/main/resources/application-loc.yml b/upms/upms-biz/src/main/resources/application-loc.yml index 2a9a302..b854d29 100644 --- a/upms/upms-biz/src/main/resources/application-loc.yml +++ b/upms/upms-biz/src/main/resources/application-loc.yml @@ -45,12 +45,12 @@ spring: username: root password: Xg137839 # 一期 -# url: jdbc:mysql://localhost:3306/rax_backend1?characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&allowPublicKeyRetrieval=true&useSSL=false&useJDBCCompliantTimezoneShift=true&useLegacyDatetimeCode=false&serverTimezone=GMT%2B8&allowMultiQueries=true&nullCatalogMeansCurrent=true - url: jdbc:mysql://110.41.142.124:3306/rax_backend1?characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&allowPublicKeyRetrieval=true&useSSL=false&useJDBCCompliantTimezoneShift=true&useLegacyDatetimeCode=false&serverTimezone=GMT%2B8&allowMultiQueries=true&nullCatalogMeansCurrent=true + url: jdbc:mysql://localhost:3306/rax_backend1?characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&allowPublicKeyRetrieval=true&useSSL=false&useJDBCCompliantTimezoneShift=true&useLegacyDatetimeCode=false&serverTimezone=GMT%2B8&allowMultiQueries=true&nullCatalogMeansCurrent=true +# url: jdbc:mysql://110.41.142.124:3306/rax_backend1?characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&allowPublicKeyRetrieval=true&useSSL=false&useJDBCCompliantTimezoneShift=true&useLegacyDatetimeCode=false&serverTimezone=GMT%2B8&allowMultiQueries=true&nullCatalogMeansCurrent=true data: redis: - host: 110.41.142.124 -# host: localhost +# host: 110.41.142.124 + host: localhost port: 16373 password: rax137839 connect-timeout: 5000 @@ -112,6 +112,6 @@ vital-sign: except-database: admin,config information-database: adaw mysql: - host: 110.41.142.124:3306 + host: localhost:3306 password: Xg137839 username: root \ No newline at end of file diff --git a/upms/upms-biz/src/main/resources/application-old.yml b/upms/upms-biz/src/main/resources/application-old.yml index 7a42bf2..d523f0e 100644 --- a/upms/upms-biz/src/main/resources/application-old.yml +++ b/upms/upms-biz/src/main/resources/application-old.yml @@ -1,187 +1,187 @@ -spring: - profiles: - active: prod - application: - name: ${project.artifactId} - # 定时任务属性配置 - quartz: - properties: - org: - quartz: - scheduler: - instanceName: clusteredScheduler - instanceId: AUTO - jobStore: - class: org.springframework.scheduling.quartz.LocalDataSourceJobStore - driverDelegateClass: org.quartz.impl.jdbcjobstore.StdJDBCDelegate - tablePrefix: QRTZ_ - isClustered: true - clusterCheckinInterval: 10000 - useProperties: false - threadPool: - class: org.quartz.simpl.SimpleThreadPool - threadCount: 50 - threadPriority: 5 - threadsInheritContextClassLoaderOfInitializingThread: true - job-store-type: jdbc - jdbc: - initialize-schema: always # 生产注意设置为 never - # 上传文件大小限制 - servlet: - multipart: - max-file-size: 100MB - max-request-size: 100MB - # 静态资源文件 - mvc: - static-path-pattern: /static/** - -gateway: - # 前端密码登录解密密钥,和前端 .env 保存一致(16位) - encodeKey: thanks,rax4cloud - # 跳过验证码的客户端 clientId1,clientId2 - ignore-clients: test,rax - -# 本地文件系统 -file: - local: - enable: true - base-path: /Users/lengleng/Downloads/img - -## spring security 对外暴露接口设置 -security: - oauth2: - ignore: - urls: - - /webjars/** - - /v3/api-docs/** - - /doc.html - - /swagger-ui.html - - /swagger-ui/** - - /swagger-resources - - /token/check_token - - /error - - /actuator/** - - /code/** - - /rax/** - - /hospital/getHospitalList -# 临时白名单 - -# 阿里云短信 -ali: - sms: - templateCode: SMS_471660037 # 模板code - accessKeyId: LTAI5tPrmvr4zavsjHXMozrc #阿里云AK - accessKeySecret: R4aGC4qYaYGcl41xc9anpBPQ0gzxD3 #阿里云SK - signName: AAceshi #阿里云签名名 - -# 使用阿里提供的smsClient类 -aliyun: - sms: - SMS_471660037: - accessKeyId: LTAI5tPrmvr4zavsjHXMozrc #阿里云AK - accessKeySecret: R4aGC4qYaYGcl41xc9anpBPQ0gzxD3 #阿里云SK - signName: AAceshi #阿里云签名名 - templateCode: SMS_471660037 # 模板code - - -#--------------如下配置尽量不要变动------------- -# mybatis-plus 配置 -mybatis-plus: - mapper-locations: classpath*:/mapper/*Mapper.xml - global-config: - banner: false - db-config: - id-type: auto - where-strategy: not_empty - insert-strategy: not_empty - update-strategy: not_null - type-handlers-package: com.rax.common.mybatis.handler - configuration: - jdbc-type-for-null: 'null' - call-setters-on-nulls: true - shrink-whitespaces-in-sql: true -# log-impl: org.apache.ibatis.logging.stdout.StdOutImpl - ---- -spring: - config: - activate: - on-profile: prod - # 缓存相关配置 - cache: - type: redis - data: - redis: - host: 110.41.142.124 - port: 16373 - password: rax137839 - connect-timeout: 5000 - # database: 0 # 二期 - database: 1 # 一期 - - # 数据库相关配置 - datasource: - driver-class-name: com.mysql.cj.jdbc.Driver - username: root - password: Xg137839 - # 一期 - url: jdbc:mysql://110.41.142.124:3306/rax_backend1?characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&allowPublicKeyRetrieval=true&useSSL=false&useJDBCCompliantTimezoneShift=true&useLegacyDatetimeCode=false&serverTimezone=GMT%2B8&allowMultiQueries=true&nullCatalogMeansCurrent=true - # 二期 -# url: jdbc:mysql://110.41.142.124:3306/rax_backend?characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&allowPublicKeyRetrieval=true&useSSL=false&useJDBCCompliantTimezoneShift=true&useLegacyDatetimeCode=false&serverTimezone=GMT%2B8&allowMultiQueries=true&nullCatalogMeansCurrent=true - -server: - port: 6679 #一期 - # port: 6379 #二期 - servlet: - context-path: /admin - -vital-sign: - except-database: admin,config,local - information-database: information - mongodb: - host: 110.41.142.124:27017 - password: Xg137839mg - username: useradmin - - mysql: - host: 110.41.142.124:3306 - password: Xg137839 - username: root - ---- -spring: - config: - activate: - on-profile: dev - # 缓存相关配置 - cache: - type: redis - data: - redis: - host: localhost - - # 数据库相关配置 - datasource: - driver-class-name: com.mysql.cj.jdbc.Driver - username: root - password: root - url: jdbc:mysql://110.41.142.124:3306/rax_backend1?characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&allowPublicKeyRetrieval=true&useSSL=false&useJDBCCompliantTimezoneShift=true&useLegacyDatetimeCode=false&serverTimezone=GMT%2B8&allowMultiQueries=true&nullCatalogMeansCurrent=true # 一期 - # url: jdbc:mysql://localhost:3306/rax_backend?characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&allowPublicKeyRetrieval=true&useSSL=false&useJDBCCompliantTimezoneShift=true&useLegacyDatetimeCode=false&serverTimezone=GMT%2B8&allowMultiQueries=true&nullCatalogMeansCurrent=true # 二期 - -server: - port: 9999 - servlet: - context-path: /admin - -vital-sign: - except-database: admin,config,local - information-database: information - mongodb: - host: localhost:27017 - password: root - username: root - - mysql: - host: localhost:3306 - password: root - username: root \ No newline at end of file +#spring: +# profiles: +# active: prod +# application: +# name: ${project.artifactId} +# # 定时任务属性配置 +# quartz: +# properties: +# org: +# quartz: +# scheduler: +# instanceName: clusteredScheduler +# instanceId: AUTO +# jobStore: +# class: org.springframework.scheduling.quartz.LocalDataSourceJobStore +# driverDelegateClass: org.quartz.impl.jdbcjobstore.StdJDBCDelegate +# tablePrefix: QRTZ_ +# isClustered: true +# clusterCheckinInterval: 10000 +# useProperties: false +# threadPool: +# class: org.quartz.simpl.SimpleThreadPool +# threadCount: 50 +# threadPriority: 5 +# threadsInheritContextClassLoaderOfInitializingThread: true +# job-store-type: jdbc +# jdbc: +# initialize-schema: always # 生产注意设置为 never +# # 上传文件大小限制 +# servlet: +# multipart: +# max-file-size: 100MB +# max-request-size: 100MB +# # 静态资源文件 +# mvc: +# static-path-pattern: /static/** +# +#gateway: +# # 前端密码登录解密密钥,和前端 .env 保存一致(16位) +# encodeKey: thanks,rax4cloud +# # 跳过验证码的客户端 clientId1,clientId2 +# ignore-clients: test,rax +# +## 本地文件系统 +#file: +# local: +# enable: true +# base-path: /Users/lengleng/Downloads/img +# +### spring security 对外暴露接口设置 +#security: +# oauth2: +# ignore: +# urls: +# - /webjars/** +# - /v3/api-docs/** +# - /doc.html +# - /swagger-ui.html +# - /swagger-ui/** +# - /swagger-resources +# - /token/check_token +# - /error +# - /actuator/** +# - /code/** +# - /rax/** +# - /hospital/getHospitalList +## 临时白名单 +# +## 阿里云短信 +#ali: +# sms: +# templateCode: SMS_471660037 # 模板code +# accessKeyId: LTAI5tPrmvr4zavsjHXMozrc #阿里云AK +# accessKeySecret: R4aGC4qYaYGcl41xc9anpBPQ0gzxD3 #阿里云SK +# signName: AAceshi #阿里云签名名 +# +## 使用阿里提供的smsClient类 +#aliyun: +# sms: +# SMS_471660037: +# accessKeyId: LTAI5tPrmvr4zavsjHXMozrc #阿里云AK +# accessKeySecret: R4aGC4qYaYGcl41xc9anpBPQ0gzxD3 #阿里云SK +# signName: AAceshi #阿里云签名名 +# templateCode: SMS_471660037 # 模板code +# +# +##--------------如下配置尽量不要变动------------- +## mybatis-plus 配置 +#mybatis-plus: +# mapper-locations: classpath*:/mapper/*Mapper.xml +# global-config: +# banner: false +# db-config: +# id-type: auto +# where-strategy: not_empty +# insert-strategy: not_empty +# update-strategy: not_null +# type-handlers-package: com.rax.common.mybatis.handler +# configuration: +# jdbc-type-for-null: 'null' +# call-setters-on-nulls: true +# shrink-whitespaces-in-sql: true +## log-impl: org.apache.ibatis.logging.stdout.StdOutImpl +# +#--- +#spring: +# config: +# activate: +# on-profile: prod +# # 缓存相关配置 +# cache: +# type: redis +# data: +# redis: +# host: 110.41.142.124 +# port: 16373 +# password: rax137839 +# connect-timeout: 5000 +# # database: 0 # 二期 +# database: 1 # 一期 +# +# # 数据库相关配置 +# datasource: +# driver-class-name: com.mysql.cj.jdbc.Driver +# username: root +# password: Xg137839 +# # 一期 +# url: jdbc:mysql://110.41.142.124:3306/rax_backend1?characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&allowPublicKeyRetrieval=true&useSSL=false&useJDBCCompliantTimezoneShift=true&useLegacyDatetimeCode=false&serverTimezone=GMT%2B8&allowMultiQueries=true&nullCatalogMeansCurrent=true +# # 二期 +## url: jdbc:mysql://110.41.142.124:3306/rax_backend?characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&allowPublicKeyRetrieval=true&useSSL=false&useJDBCCompliantTimezoneShift=true&useLegacyDatetimeCode=false&serverTimezone=GMT%2B8&allowMultiQueries=true&nullCatalogMeansCurrent=true +# +#server: +# port: 6679 #一期 +# # port: 6379 #二期 +# servlet: +# context-path: /admin +# +#vital-sign: +# except-database: admin,config,local +# information-database: information +# mongodb: +# host: 110.41.142.124:27017 +# password: Xg137839mg +# username: useradmin +# +# mysql: +# host: 110.41.142.124:3306 +# password: Xg137839 +# username: root +# +#--- +#spring: +# config: +# activate: +# on-profile: dev +# # 缓存相关配置 +# cache: +# type: redis +# data: +# redis: +# host: localhost +# +# # 数据库相关配置 +# datasource: +# driver-class-name: com.mysql.cj.jdbc.Driver +# username: root +# password: root +# url: jdbc:mysql://110.41.142.124:3306/rax_backend1?characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&allowPublicKeyRetrieval=true&useSSL=false&useJDBCCompliantTimezoneShift=true&useLegacyDatetimeCode=false&serverTimezone=GMT%2B8&allowMultiQueries=true&nullCatalogMeansCurrent=true # 一期 +# # url: jdbc:mysql://localhost:3306/rax_backend?characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&allowPublicKeyRetrieval=true&useSSL=false&useJDBCCompliantTimezoneShift=true&useLegacyDatetimeCode=false&serverTimezone=GMT%2B8&allowMultiQueries=true&nullCatalogMeansCurrent=true # 二期 +# +#server: +# port: 9999 +# servlet: +# context-path: /admin +# +#vital-sign: +# except-database: admin,config,local +# information-database: information +# mongodb: +# host: localhost:27017 +# password: root +# username: root +# +# mysql: +# host: localhost:3306 +# password: root +# username: root \ No newline at end of file diff --git a/upms/upms-biz/src/main/resources/application.yml b/upms/upms-biz/src/main/resources/application.yml index 7ae62cf..359f92d 100644 --- a/upms/upms-biz/src/main/resources/application.yml +++ b/upms/upms-biz/src/main/resources/application.yml @@ -2,10 +2,12 @@ spring: profiles: active: loc - - gateway: # 前端密码登录解密密钥,和前端 .env 保存一致(16位) encodeKey: thanks,rax4cloud # 跳过验证码的客户端 clientId1,clientId2 - ignore-clients: test,rax \ No newline at end of file + ignore-clients: test,rax + + +# a202503280555000000: +# t_chat: \ No newline at end of file