信创改造V1

This commit is contained in:
xiaocp2009 2025-08-08 14:42:24 +08:00
parent 6cae8e3c20
commit a4e1e94bde
22 changed files with 150 additions and 106 deletions

6
.idea/vcs.xml Normal file
View File

@ -0,0 +1,6 @@
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="VcsDirectoryMappings">
<mapping directory="" vcs="Git" />
</component>
</project>

View File

@ -9,3 +9,10 @@ src/App.vue
--------watermark------------
录入时,增加了营销人员列表
src/views/mps/private-ebank-new/modules/private-ebank-new-operate-drawer.vue
-------tomcat 部署-----------
https://www.cnblogs.com/Fooo/p/17807277.html
-------tong web 部署---------
https://blog.csdn.net/user990378983/article/details/130324181

View File

@ -1,11 +1,14 @@
服务器2台,一台应用、一台数据库
---------------------应用服务器-----------------------------
操作系统:银河麒麟系统V10 (Ubuntu 18.04 LTS内核)
JDK:Alibaba Dragonwell 17 (兼容OPENJDK17)
中间件:东方通TongWeb 版本待定
代理:东方通TongHttpServer 版本待定 (如果不考虑后续扩展(软负载等),可以略掉,与后端一同使用中间件部署即可)
应用服务器放弃monitor与job,只部署admin应用即可
数据库服务器部署数据库+缓存
---------------------应用服务器-----------------------------
操作系统:银河麒麟系统V10 (Ubuntu 18.04 LTS内核)
JDK:Alibaba Dragonwell 17 (兼容OPENJDK17)
中间件:东方通TongWeb 8.0+ (8.0以下不兼容OPENJDK17) 开发阶段继续暂时使用 undertow+tomcat
代理:东方通TongHttpServer 版本待定 (如果不考虑后续扩展(软负载等),可以略掉,与后端一同使用中间件部署即可)
报表:开源JasperReports 6.0+? (作为插件集成到应用内,与应用一同启动,需验证信创兼容性,评估问题不大)
---------------------数据库服务器-----------------------------
@ -13,3 +16,6 @@
数据库:达梦 版本待定
缓存:TongRDS 2.2(2.2.1.7) (2.2版本兼容redis6.x、7.x)
JDK:Alibaba Dragonwell 8 (TongRDS依赖JDK1.8)

View File

@ -8,7 +8,7 @@
<version>${revision}</version>
</parent>
<modelVersion>4.0.0</modelVersion>
<packaging>jar</packaging>
<packaging>war</packaging>
<artifactId>ruoyi-admin</artifactId>
<description>

View File

@ -17,7 +17,7 @@ public class DromaraApplication {
SpringApplication application = new SpringApplication(DromaraApplication.class);
application.setApplicationStartup(new BufferingApplicationStartup(2048));
application.run(args);
System.out.println("(♥◠‿◠)ノ゙ RuoYi-Vue-Plus启动成功 ლ(´ڡ`ლ)゙");
System.out.println("mps started successfully!");
}
}

View File

@ -1,7 +1,7 @@
--- # 监控中心配置
spring.boot.admin.client:
# 增加客户端开关
enabled: true
enabled: false
url: http://localhost:9090/admin
instance:
service-host-type: IP
@ -13,9 +13,9 @@ spring.boot.admin.client:
--- # snail-job 配置
snail-job:
enabled: true
enabled: false
# 需要在 SnailJob 后台组管理创建对应名称的组,然后创建任务的时候选择对应的组,才能正确分派任务
group: "ruoyi_group"
group: "mps_group"
# SnailJob 接入验证令牌 详见 script/sql/ry_job.sql `sj_group_config` 表
token: "SJ_cKqBTPzCsWA3VyuCfFoccmuIEGXjr5KT"
server:
@ -105,7 +105,7 @@ spring.data:
# 数据库索引
database: 0
# redis 密码必须配置
password: 123456
password: 123456 #TongRDS->cfg.xml->Listen.Secure2或3需要密码(RedisPassword),其他不需要
# 连接超时时间
timeout: 10s
# 是否开启ssl
@ -122,7 +122,7 @@ redisson:
# 单节点配置
singleServerConfig:
# 客户端名称 不能用中文
clientName: RuoYi-Vue-Plus
clientName: Mps
# 最小空闲连接数
connectionMinimumIdleSize: 8
# 连接池大小
@ -265,7 +265,6 @@ justauth:
client-secret: 1f7d08**********5b7**********29e
redirect-uri: ${justauth.address}/social-callback?source=gitlab
gitea:
# 前端改动 https://gitee.com/JavaLionLi/plus-ui/pulls/204
# gitea 服务器地址
server-url: https://demo.gitea.com
client-id: 10**********6

View File

@ -1,10 +1,10 @@
--- # 临时文件存储位置 避免临时文件被系统清理报错
spring.servlet.multipart.location: /ruoyi/server/temp
spring.servlet.multipart.location: /mps/server/temp
--- # 监控中心配置
spring.boot.admin.client:
# 增加客户端开关
enabled: true
enabled: false
url: http://localhost:9090/admin
instance:
service-host-type: IP
@ -16,9 +16,9 @@ spring.boot.admin.client:
--- # snail-job 配置
snail-job:
enabled: true
enabled: false
# 需要在 SnailJob 后台组管理创建对应名称的组,然后创建任务的时候选择对应的组,才能正确分派任务
group: "ruoyi_group"
group: "mps_group"
# SnailJob 接入验证令牌 详见 script/sql/ry_job.sql `sj_group_config`表
token: "SJ_cKqBTPzCsWA3VyuCfFoccmuIEGXjr5KT"
server:
@ -124,7 +124,7 @@ redisson:
# 单节点配置
singleServerConfig:
# 客户端名称 不能用中文
clientName: RuoYi-Vue-Plus
clientName: Mps
# 最小空闲连接数
connectionMinimumIdleSize: 32
# 连接池大小

View File

@ -6,19 +6,29 @@ server:
# 应用的访问路径
context-path: /
# undertow 配置
undertow:
#undertow:
# HTTP post内容的最大大小。当值为-1时默认值为大小是无限的
max-http-post-size: -1
#max-http-post-size: -1
# 以下的配置会影响buffer,这些buffer会用于服务器连接的IO操作,有点类似netty的池化内存管理
# 每块buffer的空间大小,越小的空间被利用越充分
buffer-size: 512
#buffer-size: 512
# 是否分配的直接内存
direct-buffers: true
threads:
#direct-buffers: true
#threads:
# 设置IO线程数, 它主要执行非阻塞的任务,它们会负责多个连接, 默认设置每个CPU核心一个线程
io: 8
#io: 8
# 阻塞任务线程池, 当执行类似servlet请求阻塞操作, undertow会从这个线程池中取得线程,它的值设置取决于系统的负载
worker: 256
#worker: 256
#tomcat:
# tomcat的URI编码
#uri-encoding: UTF-8
# 连接数满后的排队数默认为100
#accept-count: 1000
#threads:
# tomcat最大线程数默认为200
#max: 800
# Tomcat启动初始化的线程数默认值10
#min-spare: 100
captcha:
# 是否启用验证码校验
@ -176,10 +186,10 @@ api-decrypt:
springdoc:
api-docs:
# 是否开启接口文档
enabled: true
enabled: false
info:
# 标题
title: '标题:RuoYi-Vue-Plus多租户管理系统_接口文档'
title: '标题:cds_接口文档'
# 描述
description: '描述:用于管理集团旗下公司的人员信息,具体包括XXX,XXX模块...'
# 版本
@ -188,7 +198,7 @@ springdoc:
contact:
name: Lion Li
email: crazylionli@163.com
url: https://gitee.com/dromara/RuoYi-Vue-Plus
url: https://gtop.com/cds/mps
components:
# 鉴权方式配置
security-schemes:
@ -263,9 +273,9 @@ websocket:
--- # warm-flow工作流配置
warm-flow:
# 是否开启工作流默认true
enabled: true
enabled: false
# 是否开启设计器ui
ui: true
ui: false
# 默认Authorization如果有多个token用逗号分隔
token-name: ${sa-token.token-name},clientid
# 流程状态对应的三元色

View File

@ -1,6 +1,6 @@
<?xml version="1.0" encoding="UTF-8"?>
<configuration>
<property name="log.path" value="./logs"/>
<property name="log.path" value="/log"/>
<property name="console.log.pattern"
value="%cyan(%d{yyyy-MM-dd HH:mm:ss}) %green([%thread]) %highlight(%-5level) %boldMagenta(%logger{36}%n) - %msg%n"/>
<property name="log.pattern" value="%d{yyyy-MM-dd HH:mm:ss} [%thread] %-5level %logger{36} - %msg%n"/>

View File

@ -135,7 +135,7 @@ public class RedisConfig {
* # 集群配置
* clusterServersConfig:
* # 客户端名称
* clientName: ${ruoyi.name}
* clientName: ${cds.name}
* # master最小空闲连接数
* masterConnectionMinimumIdleSize: 32
* # master连接池大小

View File

@ -38,10 +38,10 @@
</exclusions>
</dependency>
<!-- web 容器使用 undertow 性能更强 -->
<dependency>
<!--<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-undertow</artifactId>
</dependency>
</dependency>-->
<dependency>
<groupId>org.springframework.boot</groupId>

View File

@ -1,63 +0,0 @@
package org.dromara.common.web.config;
import io.undertow.server.DefaultByteBufferPool;
import io.undertow.server.handlers.DisallowedMethodsHandler;
import io.undertow.util.HttpString;
import io.undertow.websockets.jsr.WebSocketDeploymentInfo;
import org.dromara.common.core.utils.SpringUtils;
import org.springframework.boot.autoconfigure.AutoConfiguration;
import org.springframework.boot.web.embedded.undertow.UndertowServletWebServerFactory;
import org.springframework.boot.web.server.WebServerFactoryCustomizer;
import org.springframework.core.task.VirtualThreadTaskExecutor;
/**
* Undertow 自定义配置
*
* @author Lion Li
*/
@AutoConfiguration
public class UndertowConfig implements WebServerFactoryCustomizer<UndertowServletWebServerFactory> {
/**
* 自定义 Undertow 配置
* <p>
* 主要配置内容包括
* 1. 配置 WebSocket 部署信息
* 2. 在虚拟线程模式下使用虚拟线程池
* 3. 禁用不安全的 HTTP 方法 CONNECTTRACETRACK
* </p>
*
* @param factory Undertow Web 服务器工厂
*/
@Override
public void customize(UndertowServletWebServerFactory factory) {
factory.addDeploymentInfoCustomizers(deploymentInfo -> {
// 配置 WebSocket 部署信息设置 WebSocket 使用的缓冲区池
WebSocketDeploymentInfo webSocketDeploymentInfo = new WebSocketDeploymentInfo();
webSocketDeploymentInfo.setBuffers(new DefaultByteBufferPool(true, 1024));
deploymentInfo.addServletContextAttribute("io.undertow.websockets.jsr.WebSocketDeploymentInfo", webSocketDeploymentInfo);
// 如果启用了虚拟线程配置 Undertow 使用虚拟线程池
if (SpringUtils.isVirtual()) {
// 创建虚拟线程池线程池前缀为 "undertow-"
VirtualThreadTaskExecutor executor = new VirtualThreadTaskExecutor("undertow-");
// 设置虚拟线程池为执行器和异步执行器
deploymentInfo.setExecutor(executor);
deploymentInfo.setAsyncExecutor(executor);
}
// 配置禁止某些不安全的 HTTP 方法 CONNECTTRACETRACK
deploymentInfo.addInitialHandlerChainWrapper(handler -> {
// 禁止三个方法 CONNECT/TRACE/TRACK 也是不安全的 避免爬虫骚扰
HttpString[] disallowedHttpMethods = {
HttpString.tryFromString("CONNECT"),
HttpString.tryFromString("TRACE"),
HttpString.tryFromString("TRACK")
};
// 使用 DisallowedMethodsHandler 拦截并拒绝这些方法的请求
return new DisallowedMethodsHandler(handler, disallowedHttpMethods);
});
});
}
}

View File

@ -2,4 +2,4 @@ org.dromara.common.web.config.CaptchaConfig
org.dromara.common.web.config.FilterConfig
org.dromara.common.web.config.I18nConfig
org.dromara.common.web.config.ResourcesConfig
org.dromara.common.web.config.UndertowConfig

View File

@ -8,7 +8,7 @@
<version>${revision}</version>
</parent>
<modelVersion>4.0.0</modelVersion>
<packaging>jar</packaging>
<packaging>war</packaging>
<artifactId>ruoyi-monitor-admin</artifactId>
<dependencies>
@ -24,10 +24,10 @@
</exclusions>
</dependency>
<!-- web 容器使用 undertow 性能更强 -->
<dependency>
<!--<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-undertow</artifactId>
</dependency>
</dependency>-->
<!-- spring security 安全认证 -->
<dependency>
@ -50,6 +50,12 @@
<artifactId>lombok</artifactId>
</dependency>
<dependency>
<groupId>org.dromara</groupId>
<artifactId>ruoyi-common-core</artifactId>
</dependency>
</dependencies>
<build>
@ -67,6 +73,23 @@
</execution>
</executions>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-jar-plugin</artifactId>
<version>${maven-jar-plugin.version}</version>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-war-plugin</artifactId>
<version>${maven-war-plugin.version}</version>
<configuration>
<failOnMissingWebXml>false</failOnMissingWebXml>
<warName>${project.artifactId}</warName>
</configuration>
</plugin>
</plugins>
</build>

View File

@ -0,0 +1,18 @@
package org.dromara.monitor.admin;
import org.springframework.boot.builder.SpringApplicationBuilder;
import org.springframework.boot.web.servlet.support.SpringBootServletInitializer;
/**
* web容器中进行部署
*
* @author Lion Li
*/
public class MonitorServletInitializer extends SpringBootServletInitializer {
@Override
protected SpringApplicationBuilder configure(SpringApplicationBuilder application) {
return application.sources(MonitorAdminApplication.class);
}
}

View File

@ -44,5 +44,6 @@ spring.boot.admin.client:
metadata:
username: ${spring.boot.admin.client.username}
userpassword: ${spring.boot.admin.client.password}
service-base-url: http://localhost:9090/
username: @monitor.username@
password: @monitor.password@

View File

@ -8,7 +8,7 @@
<version>${revision}</version>
</parent>
<modelVersion>4.0.0</modelVersion>
<packaging>jar</packaging>
<packaging>war</packaging>
<artifactId>ruoyi-snailjob-server</artifactId>
<dependencies>
@ -35,6 +35,9 @@
<artifactId>spring-boot-admin-starter-client</artifactId>
<version>${spring-boot-admin.version}</version>
</dependency>
</dependencies>
<build>
@ -52,6 +55,22 @@
</execution>
</executions>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-jar-plugin</artifactId>
<version>${maven-jar-plugin.version}</version>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-war-plugin</artifactId>
<version>${maven-war-plugin.version}</version>
<configuration>
<failOnMissingWebXml>false</failOnMissingWebXml>
<warName>${project.artifactId}</warName>
</configuration>
</plugin>
</plugins>
</build>

View File

@ -0,0 +1,18 @@
package org.dromara.snailjob;
import org.springframework.boot.builder.SpringApplicationBuilder;
import org.springframework.boot.web.servlet.support.SpringBootServletInitializer;
/**
* web容器中进行部署
*
* @author Lion Li
*/
public class JobServletInitializer extends SpringBootServletInitializer {
@Override
protected SpringApplicationBuilder configure(SpringApplicationBuilder application) {
return application.sources(SnailJobServerApplication.class);
}
}

View File

@ -30,7 +30,7 @@ snail-job:
--- # 监控中心配置
spring.boot.admin.client:
# 增加客户端开关
enabled: true
enabled: false
url: http://localhost:9090/admin
instance:
service-host-type: IP

View File

@ -197,7 +197,7 @@ public class GenController extends BaseController {
response.reset();
response.addHeader("Access-Control-Allow-Origin", "*");
response.addHeader("Access-Control-Expose-Headers", "Content-Disposition");
response.setHeader("Content-Disposition", "attachment; filename=\"ruoyi.zip\"");
response.setHeader("Content-Disposition", "attachment; filename=\"cds.zip\"");
response.addHeader("Content-Length", "" + data.length);
response.setContentType("application/octet-stream; charset=UTF-8");
IoUtil.write(response.getOutputStream(), false, data);

View File

@ -24,7 +24,7 @@ services:
# 时区上海
TZ: Asia/Shanghai
ACCEPT_EULA: "Y"
SA_PASSWORD: "Ruoyi@123"
SA_PASSWORD: "mps@123"
ports:
- "1433:1433"
volumes:

View File

@ -1,5 +1,5 @@
# redis 密码
requirepass ruoyi123
requirepass mps123
# key 监听器配置
# notify-keyspace-events Ex