From e6456d2196b3e57bd06be0fbc74dd3e0fc28fdeb Mon Sep 17 00:00:00 2001 From: liusheng <337615773@qq.com> Date: 星期二, 22 七月 2025 19:17:55 +0800 Subject: [PATCH] 代码提交 --- smartor/src/main/java/com/smartor/service/impl/ServiceExternalServiceImpl.java | 53 ++++++++++++++++++++++++++++++++++++++++++++++++++++- 1 files changed, 52 insertions(+), 1 deletions(-) diff --git a/smartor/src/main/java/com/smartor/service/impl/ServiceExternalServiceImpl.java b/smartor/src/main/java/com/smartor/service/impl/ServiceExternalServiceImpl.java index 73f905f..ebc4af6 100644 --- a/smartor/src/main/java/com/smartor/service/impl/ServiceExternalServiceImpl.java +++ b/smartor/src/main/java/com/smartor/service/impl/ServiceExternalServiceImpl.java @@ -396,6 +396,9 @@ //鏂板鎮h�呭熀鏈俊鎭柊澧炴垨淇敼 PatArchive patArchive = addPatArchive(externalInHospPatientInfo, externalInHospPatientAddrInfo, externalInHospPatientLiaisonInfo); + + + PatMedInhosp patMedInhosp = new PatMedInhosp(); patMedInhosp.setInhospno(externalInHospPatientInfo.getBingAnHao()); patMedInhosp.setSerialnum(externalInHospPatientInfo.getJiuZhenYWID()); @@ -826,6 +829,9 @@ @Override public Boolean addFinshJZInfo(Map dataMap) { log.info("ServiceExternalServiceImpl---addFinshJZInfo鐨勬柊澧炵殑鍊间负锛歿}", dataMap); + //鍏堝琛ㄨ繘琛岀淮鎶� + tableMaintenance(); + Map yeWuXX = (Map) dataMap.get("YeWuXX"); Map XiaoXiTou = (Map) dataMap.get("XiaoXiTou"); String FaSongJGID = ObjectUtils.isNotEmpty(XiaoXiTou.get("FaSongJGID")) ? XiaoXiTou.get("FaSongJGID").toString() : null; @@ -908,10 +914,55 @@ if (i > 0) { return true; } - return false; } + + public void tableMaintenance() { + // 1. 鍒ゆ柇琛ㄦ暟鎹噺 + int count = patMedOuthospMapper.countPatMedOuthosp(); + if (count > 3000000) { + // 2. 鍐疯棌琛ㄥ苟鏂板缓 + String timeSuffix = new SimpleDateFormat("yyyyMM").format(new Date()); + String oldName = "pat_med_outhosp"; + String newName = oldName + "_" + timeSuffix; + + // 鍐疯棌 + patMedOuthospMapper.renameTable(oldName, newName); + + // 3. 璁$畻鎵�鏈夎〃鐨勬渶澶d + List<String> tableNames = patMedOuthospMapper.getAllOuthospTableNames(); + long maxId = 0; + for (String tableName : tableNames) { + Long tableMaxId = patMedOuthospMapper.getMaxIdFromTable(tableName); + if (tableMaxId != null && tableMaxId > maxId) { + maxId = tableMaxId; + } + } + + // 4. 鏂板缓(姝ゆ椂鍙墿鍐疯〃锛孭atMedOuthosp娌′簡锛岄渶瑕佹柊寤轰竴涓�) + patMedOuthospMapper.createPatMedOuthosp(newName, oldName); + + //5.璁剧疆鏂拌〃鑷涓婚敭 + patMedOuthospMapper.createPatMedOuthospAutoAdd(oldName); + //6. 璁剧疆鏂拌〃鑷璧峰鍊� + patMedOuthospMapper.setAutoIncrement(oldName, maxId + 1); + + // 7. 鏇存柊/鏂板缓瑙嗗浘 + // 閲嶆柊鑾峰彇鎵�鏈夎〃鍚嶏紙鍖呭惈鍒氭柊寤虹殑涓昏〃锛� + List<String> allTables = patMedOuthospMapper.getAllOuthospTableNames(); + StringBuilder sb = new StringBuilder(); + sb.append("CREATE OR REPLACE VIEW v_pat_med_outhosp AS "); + for (int i = 0; i < allTables.size(); i++) { + sb.append("SELECT * FROM ").append(allTables.get(i)); + if (i < allTables.size() - 1) { + sb.append(" UNION ALL "); + } + } + patMedOuthospMapper.createOrReplaceView(sb.toString()); + } + } + @Override public Boolean addDiseaseInfo(Map dataMap) { log.info("ServiceExternalServiceImpl---addDiseaseInfo鐨勬柊澧炵殑鍊间负锛歿}", dataMap); -- Gitblit v1.9.3