From dedacd79c93f8ef95e0cb986f5e7fbd27ddbd907 Mon Sep 17 00:00:00 2001 From: zhaowenxuan <chacca165@163.com> Date: 星期四, 03 七月 2025 09:12:49 +0800 Subject: [PATCH] 2025-07-03 --- ltkj-hosp/src/main/java/com/ltkj/hosp/mapper/LtkjHysqdMapper.java | 12 + ltkj-hosp/src/main/java/com/ltkj/hosp/service/LtkjHysqdService.java | 8 + ltkj-admin/src/main/java/com/ltkj/web/websocket/interceptor/TokenHandshakeInterceptor.java | 59 ++++++++ ltkj-admin/src/main/java/com/ltkj/web/websocket/ClientSessionInfo.java | 2 ltkj-admin/src/main/java/com/ltkj/web/controller/lis/LisApiMethod.java | 15 ++ ltkj-hosp/src/main/resources/mapper/hosp/LtkjHysqdMapper.xml | 13 + ltkj-admin/src/main/java/com/ltkj/web/controller/system/SysNoticeController.java | 17 ++ ltkj-admin/src/main/java/com/ltkj/web/controller/system/TjCheckController.java | 218 +++++++++++++++++++++---------- ltkj-admin/src/main/java/com/ltkj/web/websocket/MyWebSocketConfig.java | 5 ltkj-admin/src/main/java/com/ltkj/web/websocket/WebSockerManager.java | 33 +++- ltkj-framework/src/main/java/com/ltkj/framework/web/service/TokenService.java | 9 + ltkj-hosp/src/main/java/com/ltkj/hosp/service/impl/LtkjHysqdServiceImpl.java | 23 +++ 12 files changed, 323 insertions(+), 91 deletions(-) diff --git a/ltkj-admin/src/main/java/com/ltkj/web/controller/lis/LisApiMethod.java b/ltkj-admin/src/main/java/com/ltkj/web/controller/lis/LisApiMethod.java index 515599d..58b31bf 100644 --- a/ltkj-admin/src/main/java/com/ltkj/web/controller/lis/LisApiMethod.java +++ b/ltkj-admin/src/main/java/com/ltkj/web/controller/lis/LisApiMethod.java @@ -263,12 +263,14 @@ lisSaveSqdxxDto.setYbbm(s.substring(s.indexOf("_") + 1)); + String hisBms =""; for (TjProject tjProject : entry.getValue()) { LisSaveSqdxxJyxmlistDto dto = new LisSaveSqdxxJyxmlistDto(); dto.setXh(String.valueOf(xh.getAndIncrement() + 1)); dto.setJyxm(tjProject.getLisXmbm()); dto.setXmmc(tjProject.getProName()); dtos.add(dto); + hisBms+=tjProject.getHisXmbm()+","; } @@ -283,6 +285,19 @@ log.error("璇锋眰澶辫触 ->{}", lisSaveSqdxxDto); flag = false; break; + }else { + LtkjJianchajianyanTree tree = new LtkjJianchajianyanTree(); + tree.setCardId(tjOrder.getCardId()); + tree.setPationid(tjCustomer.getPationId()); + tree.setSqdh("jk"+jyxh); + tree.setFyhj(String.valueOf(allPrice)); + tree.setHisXmdm(hisBms.substring(0,hisBms.length()-1)); + tree.setType("妫�楠�"); + tree.setService("lis"); + tree.setTjPrice(String.valueOf(allPrice)); + tree.setCreateTime(DateUtil.date()); + tree.setXmfl(lisSaveSqdxxDto.getYbbm()); + ltkjJianchajianyanTreeService.save(tree); } } return flag; diff --git a/ltkj-admin/src/main/java/com/ltkj/web/controller/system/SysNoticeController.java b/ltkj-admin/src/main/java/com/ltkj/web/controller/system/SysNoticeController.java index 4acc06a..637fa40 100644 --- a/ltkj-admin/src/main/java/com/ltkj/web/controller/system/SysNoticeController.java +++ b/ltkj-admin/src/main/java/com/ltkj/web/controller/system/SysNoticeController.java @@ -1,10 +1,13 @@ package com.ltkj.web.controller.system; +import java.io.IOException; import java.util.List; +import java.util.Map; import java.util.stream.Collectors; import cn.hutool.core.util.IdUtil; import cn.hutool.core.util.StrUtil; +import cn.hutool.json.JSONUtil; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.ltkj.common.core.domain.entity.SysUser; import com.ltkj.common.core.domain.model.LoginUser; @@ -12,6 +15,8 @@ import com.ltkj.hosp.domain.SysNoticeUser; import com.ltkj.hosp.service.SysNoticeUserService; import com.ltkj.system.service.ISysUserService; +import com.ltkj.web.websocket.ClientSessionInfo; +import com.ltkj.web.websocket.WebSockerManager; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.security.access.prepost.PreAuthorize; import org.springframework.transaction.annotation.Transactional; @@ -31,6 +36,8 @@ import com.ltkj.common.enums.BusinessType; import com.ltkj.system.domain.SysNotice; import com.ltkj.system.service.ISysNoticeService; +import org.springframework.web.socket.TextMessage; +import org.springframework.web.socket.WebSocketSession; /** * 鍏憡 淇℃伅鎿嶄綔澶勭悊 @@ -46,6 +53,8 @@ private SysNoticeUserService sysNoticeUserService; @Autowired private ISysUserService userService; + @Autowired + private WebSockerManager webSockerManager; /** * 鑾峰彇閫氱煡鍏憡鍒楄〃 @@ -113,6 +122,14 @@ sysNoticeUserService.save(user); } }else return AjaxResult.error(); + for (Map.Entry<String, ClientSessionInfo> entry : webSockerManager.userSessions.entrySet()) { + if (!notice.getUserIds().contains(entry.getKey())) continue; + WebSocketSession session = entry.getValue().getSession(); + try { + session.sendMessage(new TextMessage(JSONUtil.toJsonStr(notice))); + } catch (IOException ignored) { + } + } return AjaxResult.success(); } diff --git a/ltkj-admin/src/main/java/com/ltkj/web/controller/system/TjCheckController.java b/ltkj-admin/src/main/java/com/ltkj/web/controller/system/TjCheckController.java index 2230d62..314cf36 100644 --- a/ltkj-admin/src/main/java/com/ltkj/web/controller/system/TjCheckController.java +++ b/ltkj-admin/src/main/java/com/ltkj/web/controller/system/TjCheckController.java @@ -465,15 +465,22 @@ //鍚屾妫�楠� if (null != baoGaoDans && baoGaoDans.size() > 0) { Date dates = new Date(); - Map<String, Object> map = new HashMap<>(); - map.put("his_registration_id", order.getCardId()); - map.put("ksbm", ""); - map.put("pationid", ""); - map.put("ksrq", DateUtil.format(DateUtil.beginOfDay(order.getCreateTime()), "yyyy-MM-dd HH:mm:ss")); - map.put("jsrq", DateUtil.format(DateUtil.endOfDay(dates), "yyyy-MM-dd HH:mm:ss")); - map.put("pagecount", 10); - map.put("page", 1); - AjaxResult result = controller.Getlabreportinfo(map); + String jytbfs = configService.selectConfigByKey("jytbfs"); + AjaxResult result; + if (StrUtil.isBlank(jytbfs) || jytbfs.equalsIgnoreCase("Y")){ + Map<String, Object> map = new HashMap<>(); + map.put("his_registration_id", order.getCardId()); + map.put("ksbm", ""); + map.put("pationid", ""); + map.put("ksrq", DateUtil.format(DateUtil.beginOfDay(order.getCreateTime()), "yyyy-MM-dd HH:mm:ss")); + map.put("jsrq", DateUtil.format(DateUtil.endOfDay(dates), "yyyy-MM-dd HH:mm:ss")); + map.put("pagecount", 10); + map.put("page", 1); + result = controller.Getlabreportinfo(map); + }else{ + result = ltkjHysqdService.getAsyncDataByPro("浣撴涓績", order.getCardId(), "''", 100, 1); + } + String result1 = getAjaxResult(result); JSONObject object = getJSONObject(result1); String code = object.getStr("ResultCode"); @@ -505,68 +512,71 @@ hysqd.setShrxm(jsonObject.getStr("JYYSQM")); hysqd.setJybgjg(jsonObject.getStr("JYBGJG")); if (ltkjHysqdService.save(hysqd)) { - Map<String, Object> hashMap = new HashMap<>(); - hashMap.put("jybgid", hysqd.getTmh()); - AjaxResult bgdres = controller.Getlabdetailinfo(hashMap); - String result2 = getAjaxResult(bgdres); - JSONObject object1 = getJSONObject(result2); - String code1 = object1.getStr("ResultCode"); - if (null != code1 && code1.equals("0")) { - JSONArray datas = object1.getJSONArray("ResultData"); - for (Object o : datas) { - JSONObject js = (JSONObject) o; + if(StrUtil.isBlank(jytbfs) || jytbfs.equalsIgnoreCase("Y")){ + Map<String, Object> hashMap = new HashMap<>(); + hashMap.put("jybgid", hysqd.getTmh()); + AjaxResult bgdres = controller.Getlabdetailinfo(hashMap); + String result2 = getAjaxResult(bgdres); + JSONObject object1 = getJSONObject(result2); + String code1 = object1.getStr("ResultCode"); + if (null != code1 && code1.equals("0")) { + JSONArray datas = object1.getJSONArray("ResultData"); + for (Object o : datas) { + JSONObject js = (JSONObject) o; // ltkjHybgdService.deletedLtkjHybgdByTjhAndTmh(jsonObject.getStr("JYBGID")); - LtkjHybgd bgd = new LtkjHybgd(); - bgd.setTmh(hysqd.getTmh()); - bgd.setJcxmid(js.getStr("JCZBDM")); - bgd.setJcxm(js.getStr("JCZBMC")); - bgd.setTdh(js.getStr("")); - bgd.setJyjg(js.getStr("JCZBJG")); - bgd.setJgdw(js.getStr("JLDW")); - bgd.setFwzdz(js.getStr("")); - bgd.setFwzgz(js.getStr("")); - bgd.setFwz(js.getStr("CKZFW")); - bgd.setJysj(js.getStr("BGRQ")); - bgd.setJyys(js.getStr("JCRBH")); - bgd.setShsj(js.getStr("BGRQ")); - bgd.setShsj(js.getStr("BGRQ")); - bgd.setShys(js.getStr("SHRBH")); - bgd.setShysmc(js.getStr("SHRXM")); - bgd.setYcbz(js.getStr("YCTS")); + LtkjHybgd bgd = new LtkjHybgd(); + bgd.setTmh(hysqd.getTmh()); + bgd.setJcxmid(js.getStr("JCZBDM")); + bgd.setJcxm(js.getStr("JCZBMC")); + bgd.setTdh(js.getStr("")); + bgd.setJyjg(js.getStr("JCZBJG")); + bgd.setJgdw(js.getStr("JLDW")); + bgd.setFwzdz(js.getStr("")); + bgd.setFwzgz(js.getStr("")); + bgd.setFwz(js.getStr("CKZFW")); + bgd.setJysj(js.getStr("BGRQ")); + bgd.setJyys(js.getStr("JCRBH")); + bgd.setShsj(js.getStr("BGRQ")); + bgd.setShsj(js.getStr("BGRQ")); + bgd.setShys(js.getStr("SHRBH")); + bgd.setShysmc(js.getStr("SHRXM")); + bgd.setYcbz(js.getStr("YCTS")); // bgd.setTpurl(js.getStr("")); - ltkjHybgdService.save(bgd); + ltkjHybgdService.save(bgd); + } } - } - Map<String, Object> fbhashMap = new HashMap<>(); - fbhashMap.put("jybgid", hysqd.getTmh()); - AjaxResult fbres = controller.Getlabgermrepinfo(fbhashMap); - String ajaxResult = getAjaxResult(fbres); - JSONObject fbobject = getJSONObject(ajaxResult); - String fbcode = fbobject.getStr("ResultCode"); - if (null != fbcode && fbcode.equals("0")) { - JSONArray datas = fbobject.getJSONArray("ResultData"); - for (Object o : datas) { - JSONObject js = (JSONObject) o; - LtkjHybgd bgd = new LtkjHybgd(); - bgd.setTmh(hysqd.getTmh()); - bgd.setJcxmid(hysqd.getXmid()); - bgd.setJcxm(hysqd.getXmmc()); - bgd.setTdh(js.getStr("")); - bgd.setJyjg(js.getStr("JCJG")); - bgd.setJgdw("/"); - bgd.setFwzdz("/"); - bgd.setFwzgz("/"); - bgd.setFwz("/"); - bgd.setJysj(js.getStr("BGRQ")); - bgd.setJyys(hysqd.getSqrxm()); - bgd.setShsj(js.getStr("BGRQ")); - bgd.setShys(hysqd.getShrdm()); - bgd.setShysmc(hysqd.getShrxm()); - ltkjHybgdService.save(bgd); + Map<String, Object> fbhashMap = new HashMap<>(); + fbhashMap.put("jybgid", hysqd.getTmh()); + AjaxResult fbres = controller.Getlabgermrepinfo(fbhashMap); + String ajaxResult = getAjaxResult(fbres); + JSONObject fbobject = getJSONObject(ajaxResult); + String fbcode = fbobject.getStr("ResultCode"); + if (null != fbcode && fbcode.equals("0")) { + JSONArray datas = fbobject.getJSONArray("ResultData"); + for (Object o : datas) { + JSONObject js = (JSONObject) o; + LtkjHybgd bgd = new LtkjHybgd(); + bgd.setTmh(hysqd.getTmh()); + bgd.setJcxmid(hysqd.getXmid()); + bgd.setJcxm(hysqd.getXmmc()); + bgd.setTdh(js.getStr("")); + bgd.setJyjg(js.getStr("JCJG")); + bgd.setJgdw("/"); + bgd.setFwzdz("/"); + bgd.setFwzgz("/"); + bgd.setFwz("/"); + bgd.setJysj(js.getStr("BGRQ")); + bgd.setJyys(hysqd.getSqrxm()); + bgd.setShsj(js.getStr("BGRQ")); + bgd.setShys(hysqd.getShrdm()); + bgd.setShysmc(hysqd.getShrxm()); + ltkjHybgdService.save(bgd); + } } + }else { + saveHybgdPro(hysqd); } - } } //鍚屾鍖栭獙椤圭洰 @@ -779,7 +789,7 @@ map.put("page", 1); result = controller.Getlabreportinfo(map); }else { - result = ltkjHysqdService.getAsyncDataByPro("浣撴涓績", order.getCardId(), "''", 100, 1, "'1'"); + result = ltkjHysqdService.getAsyncDataByPro("浣撴涓績", order.getCardId(), "''", 100, 1); } log.info("妫�楠岄」鐩煡璇㈣繑鍥炲��: " + JSONUtil.toJsonStr(result)); @@ -816,10 +826,18 @@ List<LtkjHysqd> list = ltkjHysqdService.list(queryWrapper); if (list.isEmpty()) isInsertHysqd = true; - if (isInsertHysqd) { - saveHysqd(hysqd); - } else { - saveHybgd(hysqd); + if(StrUtil.isBlank(jytbfs) || jytbfs.equalsIgnoreCase("Y")){ + if (isInsertHysqd) { + saveHysqd(hysqd); + } else { + saveHybgd(hysqd); + } + }else { + if (isInsertHysqd) { + saveHysqdPro(hysqd); + } else { + saveHybgdPro(hysqd); + } } } } else { @@ -946,6 +964,12 @@ } } + private void saveHysqdPro(LtkjHysqd hysqd) { + if (ltkjHysqdService.save(hysqd)) { + saveHybgdPro(hysqd); + } + } + private void saveHybgd(LtkjHysqd hysqd) { Map<String, Object> hashMap = new HashMap<>(); hashMap.put("jybgid", hysqd.getTmh()); @@ -1017,6 +1041,60 @@ } } + private void saveHybgdPro(LtkjHysqd hysqd) { + List<Map<String, Object>> mapList = ltkjHysqdService.getAsyncJybgdByPro(hysqd.getTmh()); + log.info("usp_his_getlabdetailinfolttj 杩斿洖->\n{}",JSONUtil.toJsonStr(mapList)); + for (Map<String, Object> map : mapList) { + JSONObject js = JSONUtil.parseObj(map); + LtkjHybgd bgd = new LtkjHybgd(); + bgd.setTmh(hysqd.getTmh()); + bgd.setJcxmid(js.getStr("JCZBDM")); + bgd.setJcxm(js.getStr("JCZBMC")); + bgd.setTdh(js.getStr("")); + bgd.setJyjg(js.getStr("JCZBJG")); + bgd.setJgdw(js.getStr("JLDW")); + bgd.setFwzdz(js.getStr("")); + bgd.setFwzgz(js.getStr("")); + bgd.setFwz(js.getStr("CKZFW")); + bgd.setJysj(js.getStr("BGRQ")); + bgd.setJyys(js.getStr("JCRBH")); + bgd.setShsj(js.getStr("BGRQ")); + bgd.setShsj(js.getStr("BGRQ")); + bgd.setShys(js.getStr("SHRBH")); + bgd.setShysmc(js.getStr("SHRXM")); + bgd.setYcbz(js.getStr("YCTS")); + bgd.setCreateTime(new Date()); + QueryWrapper<LtkjHybgd> queryWrapper = new QueryWrapper<>(bgd); + List<LtkjHybgd> list = ltkjHybgdService.list(queryWrapper); + if (list.isEmpty()) + ltkjHybgdService.save(bgd); + } + List<Map<String, Object>> mapList1 = ltkjHysqdService.getAsyncJybgdWswByPro(hysqd.getTmh()); + log.info("usp_his_getlabgermrepinfolttj 杩斿洖->\n{}",JSONUtil.toJsonStr(mapList1)); + for (Map<String, Object> map : mapList1) { + JSONObject js = JSONUtil.parseObj(map); + LtkjHybgd bgd = new LtkjHybgd(); + bgd.setTmh(hysqd.getTmh()); + bgd.setJcxmid(hysqd.getXmid()); + bgd.setJcxm(hysqd.getXmmc()); + bgd.setTdh(js.getStr("")); + bgd.setJyjg(js.getStr("JCJG")); + bgd.setJgdw("/"); + bgd.setFwzdz("/"); + bgd.setFwzgz("/"); + bgd.setFwz("/"); + bgd.setJysj(js.getStr("BGRQ")); + bgd.setJyys(hysqd.getSqrxm()); + bgd.setShsj(js.getStr("BGRQ")); + bgd.setShys(hysqd.getShrdm()); + bgd.setShysmc(hysqd.getShrxm()); + QueryWrapper<LtkjHybgd> queryWrapper = new QueryWrapper<>(bgd); + List<LtkjHybgd> list = ltkjHybgdService.list(queryWrapper); + if (list.isEmpty()) + ltkjHybgdService.save(bgd); + } + } + //灏嗘柟娉曡繑鍥炲�艰В鏋愭垚json鏍煎紡 public JSONObject getJSONObject(String builder) { String Response = JSONUtil.parseObj(builder).getStr("Response"); diff --git a/ltkj-admin/src/main/java/com/ltkj/web/websocket/ClientSessionInfo.java b/ltkj-admin/src/main/java/com/ltkj/web/websocket/ClientSessionInfo.java index 248734b..0500ba9 100644 --- a/ltkj-admin/src/main/java/com/ltkj/web/websocket/ClientSessionInfo.java +++ b/ltkj-admin/src/main/java/com/ltkj/web/websocket/ClientSessionInfo.java @@ -2,10 +2,12 @@ import lombok.AllArgsConstructor; import lombok.Data; +import lombok.NoArgsConstructor; import org.springframework.web.socket.WebSocketSession; @Data @AllArgsConstructor +@NoArgsConstructor public class ClientSessionInfo { private WebSocketSession session; private String code; diff --git a/ltkj-admin/src/main/java/com/ltkj/web/websocket/MyWebSocketConfig.java b/ltkj-admin/src/main/java/com/ltkj/web/websocket/MyWebSocketConfig.java index 1532224..e7bc060 100644 --- a/ltkj-admin/src/main/java/com/ltkj/web/websocket/MyWebSocketConfig.java +++ b/ltkj-admin/src/main/java/com/ltkj/web/websocket/MyWebSocketConfig.java @@ -1,5 +1,6 @@ package com.ltkj.web.websocket; +import com.ltkj.web.websocket.interceptor.TokenHandshakeInterceptor; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.context.annotation.Configuration; import org.springframework.web.socket.config.annotation.EnableWebSocket; @@ -16,10 +17,12 @@ public class MyWebSocketConfig implements WebSocketConfigurer { @Autowired private WebSockerManager webSockerManager; + @Autowired + private TokenHandshakeInterceptor tokenHandshakeInterceptor; @Override public void registerWebSocketHandlers(WebSocketHandlerRegistry registry) { registry.addHandler(webSockerManager, "/ws") -// .addInterceptors(tokenHandshakeInterceptor) + .addInterceptors(tokenHandshakeInterceptor) .setAllowedOrigins("*"); // 鍏佽璺ㄥ煙 } } diff --git a/ltkj-admin/src/main/java/com/ltkj/web/websocket/WebSockerManager.java b/ltkj-admin/src/main/java/com/ltkj/web/websocket/WebSockerManager.java index e1efb33..5bdaba0 100644 --- a/ltkj-admin/src/main/java/com/ltkj/web/websocket/WebSockerManager.java +++ b/ltkj-admin/src/main/java/com/ltkj/web/websocket/WebSockerManager.java @@ -1,6 +1,7 @@ package com.ltkj.web.websocket; import cn.hutool.json.JSONUtil; +import com.ltkj.common.core.domain.model.LoginUser; import lombok.extern.slf4j.Slf4j; import org.springframework.stereotype.Component; import org.springframework.web.socket.CloseStatus; @@ -9,7 +10,10 @@ import org.springframework.web.socket.handler.TextWebSocketHandler; import redis.clients.jedis.util.SafeEncoder; +import java.util.ArrayList; +import java.util.Map; import java.util.concurrent.ConcurrentHashMap; +import java.util.stream.Collectors; /** * @Company: 瑗垮畨璺嘲绉戞妧鏈夐檺鍏徃 @@ -20,20 +24,19 @@ @Component public class WebSockerManager extends TextWebSocketHandler { - private static final ConcurrentHashMap<Long, ClientSessionInfo> userSessions = new ConcurrentHashMap<>(); + public final ConcurrentHashMap<String, ClientSessionInfo> userSessions = new ConcurrentHashMap<>(); private static final ConcurrentHashMap<String, WebSocketClientInfo> sessions = new ConcurrentHashMap<>(); private WebSocketClientInfo getUser(WebSocketSession session) { -// long uid = Long.parseLong(session.getAttributes().get("uid").toString()); -// String hospId = session.getAttributes().get("hospId").toString(); -// WebSocketClientInfo info = new WebSocketClientInfo(); -// info.setUid(uid); -// info.setHospId(hospId); -// return info; - WebSocketClientInfo clientInfo = new WebSocketClientInfo(); - clientInfo.setUid(123L); - clientInfo.setHospId("hosp"); - return clientInfo; + LoginUser loginUser = (LoginUser) session.getAttributes().get("user"); + WebSocketClientInfo info = new WebSocketClientInfo(); + info.setUid(Long.parseLong(loginUser.getUserId())); + info.setHospId(loginUser.getHospName()); + return info; +// WebSocketClientInfo clientInfo = new WebSocketClientInfo(); +// clientInfo.setUid(123L); +// clientInfo.setHospId("hosp"); +// return clientInfo; } @Override @@ -41,8 +44,12 @@ WebSocketClientInfo clientInfo = getUser(session); // userSessions.put(clientInfo.getUid(), new ClientSessionInfo(session, clientInfo.getHospId())); sessions.put(session.getId(),clientInfo); - log.info(JSONUtil.toJsonStr(sessions)); + ClientSessionInfo sessionInfo = new ClientSessionInfo(); + sessionInfo.setSession(session); + sessionInfo.setCode(clientInfo.getHospId()); + userSessions.put(String.valueOf(clientInfo.getUid()), sessionInfo); session.sendMessage(new TextMessage("杩炴帴鎴愬姛")); + log.info("[WebSocket] 鍦ㄧ嚎鍒楄〃UserIds\n{}",JSONUtil.toJsonStr(new ArrayList<>(userSessions.keySet()))); } @Override @@ -62,5 +69,7 @@ @Override public void afterConnectionClosed(WebSocketSession session, CloseStatus status) throws Exception { log.info("[WebSocket] 杩炴帴鍏抽棴: " + status); + WebSocketClientInfo clientInfo = sessions.get(session.getId()); + userSessions.remove(String.valueOf(clientInfo.getUid())); } } diff --git a/ltkj-admin/src/main/java/com/ltkj/web/websocket/interceptor/TokenHandshakeInterceptor.java b/ltkj-admin/src/main/java/com/ltkj/web/websocket/interceptor/TokenHandshakeInterceptor.java new file mode 100644 index 0000000..a6748ca --- /dev/null +++ b/ltkj-admin/src/main/java/com/ltkj/web/websocket/interceptor/TokenHandshakeInterceptor.java @@ -0,0 +1,59 @@ +package com.ltkj.web.websocket.interceptor; + +import com.ltkj.common.core.domain.model.LoginUser; +import com.ltkj.framework.web.service.TokenService; +import io.jsonwebtoken.Claims; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.http.server.ServerHttpRequest; +import org.springframework.http.server.ServerHttpResponse; +import org.springframework.stereotype.Component; +import org.springframework.web.socket.WebSocketHandler; +import org.springframework.web.socket.server.HandshakeInterceptor; + +import java.net.URI; +import java.util.Map; + +@Component +public class TokenHandshakeInterceptor implements HandshakeInterceptor { + @Autowired + private TokenService tokenService; + + @Override + public boolean beforeHandshake(ServerHttpRequest request, + ServerHttpResponse response, + WebSocketHandler wsHandler, + Map<String, Object> attributes) { + URI uri = request.getURI(); + String query = uri.getQuery(); + String token = null; + if (query != null && query.startsWith("token=")) { + token = query.substring("token=".length()); + } + if (token == null) { + System.out.println("[WebSocket] 浠ょ墝鏃犳晥鎷掔粷"); + return false; + } + LoginUser validToken = isValidToken(token); + if (validToken == null) { + System.out.println("[WebSocket] 浠ょ墝鏃犳晥鎷掔粷"); + return false; + } + attributes.put("user", validToken); + return true; + } + + @Override + public void afterHandshake(ServerHttpRequest request, + ServerHttpResponse response, + WebSocketHandler wsHandler, + Exception exception) { + } + + private LoginUser isValidToken(String token) { + String tokenStr = token.replace("Bearer", "").trim(); + Claims claims = tokenService.parseToken(tokenStr); + return tokenService.getLoginUser(claims); + } + + +} diff --git a/ltkj-framework/src/main/java/com/ltkj/framework/web/service/TokenService.java b/ltkj-framework/src/main/java/com/ltkj/framework/web/service/TokenService.java index 3c021cd..f72eaee 100644 --- a/ltkj-framework/src/main/java/com/ltkj/framework/web/service/TokenService.java +++ b/ltkj-framework/src/main/java/com/ltkj/framework/web/service/TokenService.java @@ -73,6 +73,13 @@ return null; } + public LoginUser getLoginUser(Claims claims){ + // 瑙f瀽瀵瑰簲鐨勬潈闄愪互鍙婄敤鎴蜂俊鎭� + String uuid = (String) claims.get(Constants.LOGIN_USER_KEY); + String userKey = getTokenKey(uuid); + return redisCache.getCacheObject(userKey); + } + /** * 璁剧疆鐢ㄦ埛韬唤淇℃伅 */ @@ -186,7 +193,7 @@ * @param token 浠ょ墝 * @return 鏁版嵁澹版槑 */ - private Claims parseToken(String token) { + public Claims parseToken(String token) { return Jwts.parser() .setSigningKey(secret) .parseClaimsJws(token) diff --git a/ltkj-hosp/src/main/java/com/ltkj/hosp/mapper/LtkjHysqdMapper.java b/ltkj-hosp/src/main/java/com/ltkj/hosp/mapper/LtkjHysqdMapper.java index 296dc21..62e0c4d 100644 --- a/ltkj-hosp/src/main/java/com/ltkj/hosp/mapper/LtkjHysqdMapper.java +++ b/ltkj-hosp/src/main/java/com/ltkj/hosp/mapper/LtkjHysqdMapper.java @@ -111,6 +111,14 @@ @Param("str_in")String strIn, @Param("brid")String brid, @Param("pagecount")int pagecount, - @Param("page")int page, - @Param("status")String status); + @Param("page")int page); + + + @DataSource(value = DataSourceType.SLAVE_HIS) + @Qualifier(value = "slaveHisDataSource") + List<Map<String ,Object>> getAsyncHybgdDataByPro(@Param("str_in")String strIn); + + @DataSource(value = DataSourceType.SLAVE_HIS) + @Qualifier(value = "slaveHisDataSource") + List<Map<String ,Object>> getAsyncHybgdWswDataByPro(@Param("str_in")String strIn); } diff --git a/ltkj-hosp/src/main/java/com/ltkj/hosp/service/LtkjHysqdService.java b/ltkj-hosp/src/main/java/com/ltkj/hosp/service/LtkjHysqdService.java index 33775e1..84d8fe7 100644 --- a/ltkj-hosp/src/main/java/com/ltkj/hosp/service/LtkjHysqdService.java +++ b/ltkj-hosp/src/main/java/com/ltkj/hosp/service/LtkjHysqdService.java @@ -1,5 +1,6 @@ package com.ltkj.hosp.service; +import cn.hutool.json.JSONObject; import com.baomidou.mybatisplus.extension.service.IService; import com.ltkj.common.core.domain.AjaxResult; import com.ltkj.hosp.domain.TjCustomer; @@ -9,6 +10,7 @@ import java.util.Date; import java.util.List; +import java.util.Map; /** * @Company: 瑗垮畨璺嘲绉戞妧鏈夐檺鍏徃 @@ -32,5 +34,9 @@ void deletedByTjhAndXmId(String tjh, String xmid); - AjaxResult getAsyncDataByPro(String ksmc,String strIn,String brid,int pagecount,int page,String status); + AjaxResult getAsyncDataByPro(String ksmc,String strIn,String brid,int pagecount,int page); + + List<Map<String ,Object>> getAsyncJybgdByPro(String strIn); + + List<Map<String ,Object>> getAsyncJybgdWswByPro(String strIn); } diff --git a/ltkj-hosp/src/main/java/com/ltkj/hosp/service/impl/LtkjHysqdServiceImpl.java b/ltkj-hosp/src/main/java/com/ltkj/hosp/service/impl/LtkjHysqdServiceImpl.java index 6b65031..6e3da02 100644 --- a/ltkj-hosp/src/main/java/com/ltkj/hosp/service/impl/LtkjHysqdServiceImpl.java +++ b/ltkj-hosp/src/main/java/com/ltkj/hosp/service/impl/LtkjHysqdServiceImpl.java @@ -1,5 +1,7 @@ package com.ltkj.hosp.service.impl; +import cn.hutool.json.JSONObject; +import cn.hutool.json.JSONUtil; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.ltkj.common.core.domain.AjaxResult; import com.ltkj.hosp.domain.TjCustomer; @@ -16,6 +18,7 @@ import java.util.Collections; import java.util.Date; import java.util.List; +import java.util.Map; /** * 鐥呯+鎰忚Service涓氬姟灞傚鐞� @@ -65,7 +68,23 @@ } @Override - public AjaxResult getAsyncDataByPro(String ksmc,String strIn,String brid,int pagecount,int page,String status) { - return AjaxResult.success().put("ResultData",mapper.getAsyncDataByPro(ksmc,strIn,brid,pagecount,page,status)).put("code",0); + public AjaxResult getAsyncDataByPro(String ksmc,String strIn,String brid,int pagecount,int page) { + List<Map<String, Object>> maps = mapper.getAsyncDataByPro(ksmc, strIn, brid, pagecount, page); + JSONObject entries = JSONUtil.createObj(); + entries.putOpt("ResultCode","0"); + entries.putOpt("ResultData",maps); + JSONObject object = JSONUtil.createObj(); + object.putOpt("Response",entries); + return AjaxResult.success().put("data",object).put("code",0); + } + + @Override + public List<Map<String ,Object>> getAsyncJybgdByPro(String strIn) { + return mapper.getAsyncHybgdDataByPro(strIn); + } + + @Override + public List<Map<String, Object>> getAsyncJybgdWswByPro(String strIn) { + return mapper.getAsyncHybgdWswDataByPro(strIn); } } diff --git a/ltkj-hosp/src/main/resources/mapper/hosp/LtkjHysqdMapper.xml b/ltkj-hosp/src/main/resources/mapper/hosp/LtkjHysqdMapper.xml index e2fd732..c8eb61e 100644 --- a/ltkj-hosp/src/main/resources/mapper/hosp/LtkjHysqdMapper.xml +++ b/ltkj-hosp/src/main/resources/mapper/hosp/LtkjHysqdMapper.xml @@ -10,8 +10,17 @@ ${brid}, ${str_in}, ${pagecount}, - ${page}, - ${status} + ${page} + </select> + + <select id="getAsyncHybgdDataByPro" resultType="java.util.Map"> + exec usp_his_getlabdetailinfolttj + ${str_in} + </select> + + <select id="getAsyncHybgdWswDataByPro" resultType="java.util.Map"> + exec usp_his_getlabgermrepinfolttj + ${str_in} </select> </mapper> -- Gitblit v1.8.0