From 97a161a5042d9ef92605f306163f040823491f1f Mon Sep 17 00:00:00 2001 From: liusheng <337615773@qq.com> Date: 星期四, 10 七月 2025 18:06:46 +0800 Subject: [PATCH] 代码提交 --- smartor/src/main/java/com/smartor/service/impl/ServiceExternalServiceImpl.java | 49 ++++++++++++++++++++++++++++++++++++++++++++++++- 1 files changed, 48 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..b6e641e 100644 --- a/smartor/src/main/java/com/smartor/service/impl/ServiceExternalServiceImpl.java +++ b/smartor/src/main/java/com/smartor/service/impl/ServiceExternalServiceImpl.java @@ -826,6 +826,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 +911,54 @@ 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); + //璁剧疆鏂拌〃鑷涓婚敭 + patMedOuthospMapper.createPatMedOuthospAutoAdd(oldName); + // 5. 璁剧疆鏂拌〃鑷璧峰鍊� + patMedOuthospMapper.setAutoIncrement(oldName, maxId + 1); + + // 6. 鏇存柊/鏂板缓瑙嗗浘 + // 閲嶆柊鑾峰彇鎵�鏈夎〃鍚嶏紙鍖呭惈鍒氭柊寤虹殑涓昏〃锛� + 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