From 0a2054c67ba0b243f10edfe84b572c9b4157e3b5 Mon Sep 17 00:00:00 2001
From: zhaowenxuan <chacca165@163.com>
Date: 星期四, 13 二月 2025 10:35:05 +0800
Subject: [PATCH] 20250213

---
 ltkj-admin/src/main/java/com/ltkj/web/controller/system/SysRoleController.java |   82 +++++++++++++++++++++++++++++++++++++++++
 1 files changed, 82 insertions(+), 0 deletions(-)

diff --git a/ltkj-admin/src/main/java/com/ltkj/web/controller/system/SysRoleController.java b/ltkj-admin/src/main/java/com/ltkj/web/controller/system/SysRoleController.java
index 7d4215e..6d114cd 100644
--- a/ltkj-admin/src/main/java/com/ltkj/web/controller/system/SysRoleController.java
+++ b/ltkj-admin/src/main/java/com/ltkj/web/controller/system/SysRoleController.java
@@ -1,10 +1,30 @@
 package com.ltkj.web.controller.system;
 
+import java.io.File;
+import java.io.FileInputStream;
+import java.io.IOException;
+import java.io.InputStreamReader;
+import java.nio.charset.StandardCharsets;
+import java.nio.file.Files;
+import java.nio.file.Paths;
+import java.util.ArrayList;
+import java.util.HashMap;
 import java.util.List;
+import java.util.Map;
 import javax.servlet.http.HttpServletResponse;
 
+import cn.hutool.core.util.IdUtil;
+import cn.hutool.core.util.RandomUtil;
+import com.ltkj.db.DataSourceConfig;
+import com.ltkj.db.DataSourceContextHolder;
+import com.ltkj.hosp.domain.DictHosp;
+import com.ltkj.hosp.service.IDictHospService;
 import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.beans.factory.annotation.Value;
+import org.springframework.core.io.ClassPathResource;
+import org.springframework.jdbc.core.JdbcTemplate;
 import org.springframework.security.access.prepost.PreAuthorize;
+import org.springframework.util.FileCopyUtils;
 import org.springframework.validation.annotation.Validated;
 import org.springframework.web.bind.annotation.DeleteMapping;
 import org.springframework.web.bind.annotation.GetMapping;
@@ -55,6 +75,13 @@
 
     @Autowired
     private ISysDeptService deptService;
+    @Autowired
+    private JdbcTemplate jdbcTemplate;
+    @Autowired
+    private IDictHospService dictHospService;
+
+    @Value("${config.path}")
+    private String path;
 
 //    @PreAuthorize("@ss.hasPermi('system:role:list')")
     @GetMapping("/list")
@@ -245,4 +272,59 @@
         ajax.put("depts", deptService.selectDeptTreeList(new SysDept()));
         return ajax;
     }
+
+    @Autowired
+    private DataSourceConfig dataSourceConfig;
+
+    /**
+     * 浠庡簱鎵归噺鎵цsql
+     * 璇诲彇鏈湴sql鏂囦欢
+     * @return
+     */
+    @GetMapping("/execUpdateSql")
+    public AjaxResult execUpdateSql() {
+        DataSourceContextHolder.setDataSourceKey("default");
+        List<DictHosp> list = dictHospService.list();
+        List<Map<String, Object>> resultList = new ArrayList<>();
+        boolean flag = false;
+        for (DictHosp dictHosp : list) {
+            String dbName = dictHosp.getDbname();
+            Map<String, Object> dbResult = new HashMap<>();
+            dbResult.put("database", dbName);
+            List<String> successList = new ArrayList<>();
+            List<String> errorList = new ArrayList<>();
+            try {
+                InputStreamReader reader = new InputStreamReader(Files.newInputStream(Paths.get(path + File.separator + "update.sql")), StandardCharsets.UTF_8);
+                String sqlContent = FileCopyUtils.copyToString(reader);
+                String[] sqlStatements = sqlContent.split("\\|-\\|");
+                for (String sql : sqlStatements) {
+                    sql = sql.trim();
+                    if (!sql.isEmpty()) {
+                        // INSERT INTO `api_config` (`id`, `api_url`, `api_method`, `tab_name`, `is_response`, `primary_keys`, `remark`, `result_code_key`, `result_data_key`, `type`) VALUES (${id}, '${dbName}', '${randowmStr}', '${randowmStr}', 1, 'ResultData', '1.pas 妫�鏌ョ敵璇蜂俊鎭綔搴�', 'ResultCode', 'ResultData', 'pacs');
+//                        sql = sql.replace("${dbName}",dbName).replace("${id}", IdUtil.getSnowflake().nextIdStr()).replace("${randowmStr}", RandomUtil.randomString(10));
+                        try {
+                            dataSourceConfig.addDataSource(dbName);
+                            DataSourceContextHolder.setDataSourceKey(dbName);
+                            jdbcTemplate.execute(sql);
+                            successList.add(sql);
+                        } catch (Exception e) {
+                            errorList.add(sql + "\nERROR: " + e.getMessage());
+                        }
+                    }
+                }
+            } catch (IOException e) {
+                return AjaxResult.error("璇诲彇SQL鏂囦欢澶辫触锛�" + e.getMessage());
+            }
+            dbResult.put("successSQL", successList);
+            dbResult.put("failedSQL", errorList);
+            resultList.add(dbResult);
+            if (!errorList.isEmpty())
+                flag = true;
+        }
+        DataSourceContextHolder.clear();
+        if (flag)
+            return AjaxResult.error("鎵цsql涓瓨鍦ㄥけ璐�",resultList);
+        return AjaxResult.success(resultList);
+    }
+
 }

--
Gitblit v1.8.0