From 0a68d1ae4a7e797342cf039a757fae4fc357faef Mon Sep 17 00:00:00 2001
From: zjh <1084500556@qq.com>
Date: 星期四, 07 八月 2025 08:46:07 +0800
Subject: [PATCH] zjh202500807
---
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