diff --git a/outbridge/pom.xml b/outbridge/pom.xml
new file mode 100644
index 00000000..7455e4bf
--- /dev/null
+++ b/outbridge/pom.xml
@@ -0,0 +1,142 @@
+
+
+ 4.0.0
+
+ com.sdm
+ SDM
+ 1.0-SNAPSHOT
+
+ outbridge
+ 0.0.1-SNAPSHOT
+ outbridge
+ outbridge
+
+ 17
+ UTF-8
+ UTF-8
+ 3.3.5
+
+
+
+ org.springframework.cloud
+ spring-cloud-starter-loadbalancer
+ 4.1.4
+ provided
+
+
+ org.springframework.cloud
+ spring-cloud-loadbalancer
+ 4.1.4
+ provided
+
+
+ org.springframework.boot
+ spring-boot-configuration-processor
+ true
+
+
+ org.springframework.boot
+ spring-boot-starter-web
+
+
+ org.springframework.boot
+ spring-boot-starter-validation
+
+
+
+ commons-net
+ commons-net
+ 3.11.1
+
+
+ org.projectlombok
+ lombok
+
+
+ org.springdoc
+ springdoc-openapi-starter-webmvc-ui
+
+
+
+
+ org.aspectj
+ aspectjrt
+
+
+ com.auth0
+ java-jwt
+ 4.4.0
+
+
+
+
+ jakarta.servlet
+ jakarta.servlet-api
+ 5.0.0
+ provided
+
+
+
+
+ com.sdm
+ common
+ 0.0.1-SNAPSHOT
+
+
+ *
+ *
+
+
+
+
+
+
+
+
+ org.springframework.boot
+ spring-boot-dependencies
+ ${spring-boot.version}
+ pom
+ import
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ org.apache.maven.plugins
+ maven-compiler-plugin
+ 3.8.1
+
+ 17
+ 17
+ UTF-8
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/common/src/main/java/com/sdm/common/config/CommonConfig.java b/outbridge/src/main/java/com/sdm/outbridge/config/CommonConfig.java
similarity index 93%
rename from common/src/main/java/com/sdm/common/config/CommonConfig.java
rename to outbridge/src/main/java/com/sdm/outbridge/config/CommonConfig.java
index 003ce1a2..fe7d40cc 100644
--- a/common/src/main/java/com/sdm/common/config/CommonConfig.java
+++ b/outbridge/src/main/java/com/sdm/outbridge/config/CommonConfig.java
@@ -1,5 +1,4 @@
-// common模块:com.xxx.common.config.CommonConfig
-package com.sdm.common.config;
+package com.sdm.outbridge.config; //// common模块:com.xxx.common.config.CommonConfig
import org.springframework.boot.env.YamlPropertySourceLoader;
import org.springframework.context.annotation.Configuration;
diff --git a/outbridge/src/main/java/com/sdm/outbridge/config/SecondMybatisPlusConfig.java b/outbridge/src/main/java/com/sdm/outbridge/config/SecondMybatisPlusConfig.java
new file mode 100644
index 00000000..25fb93be
--- /dev/null
+++ b/outbridge/src/main/java/com/sdm/outbridge/config/SecondMybatisPlusConfig.java
@@ -0,0 +1,79 @@
+package com.sdm.outbridge.config;
+
+import com.baomidou.mybatisplus.core.MybatisConfiguration;
+import com.baomidou.mybatisplus.extension.spring.MybatisSqlSessionFactoryBean;
+import org.mybatis.spring.SqlSessionTemplate;
+import org.mybatis.spring.annotation.MapperScan;
+import org.springframework.beans.factory.annotation.Qualifier;
+import org.springframework.boot.context.properties.ConfigurationProperties;
+import org.springframework.boot.jdbc.DataSourceBuilder;
+import org.springframework.context.annotation.Bean;
+import org.springframework.context.annotation.Configuration;
+import org.springframework.core.io.support.PathMatchingResourcePatternResolver;
+import org.springframework.jdbc.datasource.DataSourceTransactionManager;
+
+import javax.sql.DataSource;
+import java.io.IOException;
+
+/**
+ * 第二个数据源的MyBatis-Plus配置
+ * 扫描专属的Mapper包,使用独立的数据源
+ */
+@Configuration
+// 扫描第二个数据源的Mapper包,指定专属的sqlSessionFactory
+@MapperScan(
+ basePackages = "com.sdm.outbridge.dao",
+ sqlSessionFactoryRef = "secondSqlSessionFactory"
+)
+public class SecondMybatisPlusConfig {
+
+ /**
+ * 初始化第二个数据源
+ */
+ @Bean(name = "secondDataSource")
+ @ConfigurationProperties(prefix = "spring.datasource.second") // 对应yml中的second数据源配置
+ public DataSource secondDataSource() {
+ return DataSourceBuilder.create().build();
+ }
+
+ /**
+ * 第二个数据源的事务管理器
+ * 非Primary,因为原有动态数据源已标记为Primary
+ */
+ @Bean(name = "secondTransactionManager")
+ public DataSourceTransactionManager secondTransactionManager(
+ @Qualifier("secondDataSource") DataSource dataSource) {
+ return new DataSourceTransactionManager(dataSource);
+ }
+
+ /**
+ * 第二个数据源的SqlSessionFactory
+ */
+ @Bean(name = "secondSqlSessionFactory")
+ public MybatisSqlSessionFactoryBean secondSqlSessionFactory(
+ @Qualifier("secondDataSource") DataSource dataSource) throws IOException {
+ MybatisSqlSessionFactoryBean fb = new MybatisSqlSessionFactoryBean();
+ // 设置第二个数据源的Mapper.xml路径(建议独立存放,避免冲突)
+ fb.setMapperLocations(new PathMatchingResourcePatternResolver()
+ .getResources("classpath*:mapper/second/*.xml"));
+ // 绑定第二个数据源
+ fb.setDataSource(dataSource);
+ // 开启下划线转驼峰(和原有配置保持一致)
+ MybatisConfiguration configuration = new MybatisConfiguration();
+ configuration.setMapUnderscoreToCamelCase(true);
+ fb.setConfiguration(configuration);
+ // 如需分页插件,可在此添加(和原有配置一致)
+ // fb.setPlugins(new MybatisPlusInterceptor(new PaginationInnerInterceptor(DbType.MYSQL)));
+ return fb;
+ }
+
+ /**
+ * 第二个数据源的SqlSessionTemplate(可选,MyBatis-Plus可自动适配,建议添加)
+ */
+ @Bean(name = "secondSqlSessionTemplate")
+ public SqlSessionTemplate secondSqlSessionTemplate(
+ @Qualifier("secondSqlSessionFactory") MybatisSqlSessionFactoryBean sqlSessionFactory) throws Exception {
+ return new SqlSessionTemplate(sqlSessionFactory.getObject());
+ }
+
+}
\ No newline at end of file
diff --git a/outbridge/src/main/java/com/sdm/outbridge/dao/ViewLyricConfigMapper.java b/outbridge/src/main/java/com/sdm/outbridge/dao/ViewLyricConfigMapper.java
new file mode 100644
index 00000000..df064f0c
--- /dev/null
+++ b/outbridge/src/main/java/com/sdm/outbridge/dao/ViewLyricConfigMapper.java
@@ -0,0 +1,13 @@
+package com.sdm.outbridge.dao;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.sdm.outbridge.entity.ViewLyricconfig;
+
+/**
+ *
+ * @author author
+ * @since 2025-11-05
+ */
+public interface ViewLyricConfigMapper extends BaseMapper {
+
+}
diff --git a/outbridge/src/main/java/com/sdm/outbridge/entity/ViewLyricconfig.java b/outbridge/src/main/java/com/sdm/outbridge/entity/ViewLyricconfig.java
new file mode 100644
index 00000000..682c09a4
--- /dev/null
+++ b/outbridge/src/main/java/com/sdm/outbridge/entity/ViewLyricconfig.java
@@ -0,0 +1,50 @@
+package com.sdm.outbridge.entity;
+
+
+import com.baomidou.mybatisplus.annotation.*;
+import com.fasterxml.jackson.annotation.JsonFormat;
+import com.fasterxml.jackson.annotation.JsonIgnore;
+import io.swagger.v3.oas.annotations.media.Schema;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+import lombok.experimental.Accessors;
+
+import java.io.Serializable;
+import java.time.LocalDateTime;
+
+/**
+ *
+ * 测试查询视图
+ *
+ *
+ * @author author
+ * @since 2025-12-01
+ */
+@Data
+@EqualsAndHashCode(callSuper = false)
+@Accessors(chain = true)
+@TableName("view_lyricconfig")
+@Schema(description = "测试查询视图")
+public class ViewLyricconfig implements Serializable {
+
+ private static final long serialVersionUID = 1L;
+
+ @Schema(description = "自增主键")
+ @TableId(value = "id", type = IdType.AUTO)
+ private Long id;
+
+ @Schema(description = "占位符英文名称")
+ @TableField("keyEnName")
+ private String keyEnName;
+
+ @Schema(description = "占位符中文名称")
+ @TableField("keyCnName")
+ private String keyCnName;
+
+ @Schema(description = "创建时间")
+ @TableField(value = "createTime", fill = FieldFill.INSERT)
+ @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+ @JsonIgnore
+ private LocalDateTime createTime;
+
+}
\ No newline at end of file
diff --git a/common/src/main/java/com/sdm/common/service/lyric/HkCloudSignObject.java b/outbridge/src/main/java/com/sdm/outbridge/mode/HkCloudSignObject.java
similarity index 70%
rename from common/src/main/java/com/sdm/common/service/lyric/HkCloudSignObject.java
rename to outbridge/src/main/java/com/sdm/outbridge/mode/HkCloudSignObject.java
index 8826f8d3..03024151 100644
--- a/common/src/main/java/com/sdm/common/service/lyric/HkCloudSignObject.java
+++ b/outbridge/src/main/java/com/sdm/outbridge/mode/HkCloudSignObject.java
@@ -1,4 +1,4 @@
-package com.sdm.common.service.lyric;
+package com.sdm.outbridge.mode;
public class HkCloudSignObject {
diff --git a/common/src/main/java/com/sdm/common/service/lyric/HkUploadFileReq.java b/outbridge/src/main/java/com/sdm/outbridge/mode/HkUploadFileReq.java
similarity index 96%
rename from common/src/main/java/com/sdm/common/service/lyric/HkUploadFileReq.java
rename to outbridge/src/main/java/com/sdm/outbridge/mode/HkUploadFileReq.java
index 28d7e5b4..1d47be76 100644
--- a/common/src/main/java/com/sdm/common/service/lyric/HkUploadFileReq.java
+++ b/outbridge/src/main/java/com/sdm/outbridge/mode/HkUploadFileReq.java
@@ -1,4 +1,4 @@
-package com.sdm.common.service.lyric;
+package com.sdm.outbridge.mode;
import io.swagger.v3.oas.annotations.media.Schema;
diff --git a/common/src/main/java/com/sdm/common/service/lyric/LyricAttachmentInfo.java b/outbridge/src/main/java/com/sdm/outbridge/mode/LyricAttachmentInfo.java
similarity index 93%
rename from common/src/main/java/com/sdm/common/service/lyric/LyricAttachmentInfo.java
rename to outbridge/src/main/java/com/sdm/outbridge/mode/LyricAttachmentInfo.java
index c7bfc161..557328d9 100644
--- a/common/src/main/java/com/sdm/common/service/lyric/LyricAttachmentInfo.java
+++ b/outbridge/src/main/java/com/sdm/outbridge/mode/LyricAttachmentInfo.java
@@ -1,4 +1,4 @@
-package com.sdm.common.service.lyric;
+package com.sdm.outbridge.mode;
public class LyricAttachmentInfo {
diff --git a/common/src/main/java/com/sdm/common/service/lyric/LyricMainPlanInfo.java b/outbridge/src/main/java/com/sdm/outbridge/mode/LyricMainPlanInfo.java
similarity index 96%
rename from common/src/main/java/com/sdm/common/service/lyric/LyricMainPlanInfo.java
rename to outbridge/src/main/java/com/sdm/outbridge/mode/LyricMainPlanInfo.java
index 37cab5dd..29fbd348 100644
--- a/common/src/main/java/com/sdm/common/service/lyric/LyricMainPlanInfo.java
+++ b/outbridge/src/main/java/com/sdm/outbridge/mode/LyricMainPlanInfo.java
@@ -1,4 +1,4 @@
-package com.sdm.common.service.lyric;
+package com.sdm.outbridge.mode;
import io.swagger.v3.oas.annotations.media.Schema;
diff --git a/common/src/main/java/com/sdm/common/service/lyric/LyricProjectBaseInfo.java b/outbridge/src/main/java/com/sdm/outbridge/mode/LyricProjectBaseInfo.java
similarity index 95%
rename from common/src/main/java/com/sdm/common/service/lyric/LyricProjectBaseInfo.java
rename to outbridge/src/main/java/com/sdm/outbridge/mode/LyricProjectBaseInfo.java
index 3f61c8ec..27773c40 100644
--- a/common/src/main/java/com/sdm/common/service/lyric/LyricProjectBaseInfo.java
+++ b/outbridge/src/main/java/com/sdm/outbridge/mode/LyricProjectBaseInfo.java
@@ -1,4 +1,4 @@
-package com.sdm.common.service.lyric;
+package com.sdm.outbridge.mode;
public class LyricProjectBaseInfo {
public String project_num;
diff --git a/common/src/main/java/com/sdm/common/service/lyric/LyricProjectBatchInfo.java b/outbridge/src/main/java/com/sdm/outbridge/mode/LyricProjectBatchInfo.java
similarity index 95%
rename from common/src/main/java/com/sdm/common/service/lyric/LyricProjectBatchInfo.java
rename to outbridge/src/main/java/com/sdm/outbridge/mode/LyricProjectBatchInfo.java
index e27b2055..59430099 100644
--- a/common/src/main/java/com/sdm/common/service/lyric/LyricProjectBatchInfo.java
+++ b/outbridge/src/main/java/com/sdm/outbridge/mode/LyricProjectBatchInfo.java
@@ -1,4 +1,4 @@
-package com.sdm.common.service.lyric;
+package com.sdm.outbridge.mode;
import io.swagger.v3.oas.annotations.media.Schema;
diff --git a/common/src/main/java/com/sdm/common/service/lyric/LyricProjectPdt.java b/outbridge/src/main/java/com/sdm/outbridge/mode/LyricProjectPdt.java
similarity index 93%
rename from common/src/main/java/com/sdm/common/service/lyric/LyricProjectPdt.java
rename to outbridge/src/main/java/com/sdm/outbridge/mode/LyricProjectPdt.java
index fef782bc..5fc2fbfa 100644
--- a/common/src/main/java/com/sdm/common/service/lyric/LyricProjectPdt.java
+++ b/outbridge/src/main/java/com/sdm/outbridge/mode/LyricProjectPdt.java
@@ -1,4 +1,4 @@
-package com.sdm.common.service.lyric;
+package com.sdm.outbridge.mode;
import io.swagger.v3.oas.annotations.media.Schema;
diff --git a/common/src/main/java/com/sdm/common/service/lyric/LyricTodoEntity.java b/outbridge/src/main/java/com/sdm/outbridge/mode/LyricTodoEntity.java
similarity index 98%
rename from common/src/main/java/com/sdm/common/service/lyric/LyricTodoEntity.java
rename to outbridge/src/main/java/com/sdm/outbridge/mode/LyricTodoEntity.java
index d71439aa..d9d2e21a 100644
--- a/common/src/main/java/com/sdm/common/service/lyric/LyricTodoEntity.java
+++ b/outbridge/src/main/java/com/sdm/outbridge/mode/LyricTodoEntity.java
@@ -1,6 +1,5 @@
-package com.sdm.common.service.lyric;
+package com.sdm.outbridge.mode;
-import io.netty.channel.ChannelHandler;
import io.swagger.v3.oas.annotations.media.Schema;
public class LyricTodoEntity {
diff --git a/outbridge/src/main/java/com/sdm/outbridge/service/impl/lyric/ViewLyricConfigServiceImpl.java b/outbridge/src/main/java/com/sdm/outbridge/service/impl/lyric/ViewLyricConfigServiceImpl.java
new file mode 100644
index 00000000..bd6cb01c
--- /dev/null
+++ b/outbridge/src/main/java/com/sdm/outbridge/service/impl/lyric/ViewLyricConfigServiceImpl.java
@@ -0,0 +1,11 @@
+package com.sdm.outbridge.service.impl.lyric;
+
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.sdm.outbridge.dao.ViewLyricConfigMapper;
+import com.sdm.outbridge.entity.ViewLyricconfig;
+import com.sdm.outbridge.service.lyric.IViewLyricConfigService;
+import org.springframework.stereotype.Service;
+
+@Service
+public class ViewLyricConfigServiceImpl extends ServiceImpl implements IViewLyricConfigService {
+}
diff --git a/outbridge/src/main/java/com/sdm/outbridge/service/lyric/IViewLyricConfigService.java b/outbridge/src/main/java/com/sdm/outbridge/service/lyric/IViewLyricConfigService.java
new file mode 100644
index 00000000..b3adec96
--- /dev/null
+++ b/outbridge/src/main/java/com/sdm/outbridge/service/lyric/IViewLyricConfigService.java
@@ -0,0 +1,8 @@
+package com.sdm.outbridge.service.lyric;
+
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.sdm.outbridge.entity.ViewLyricconfig;
+
+/* 这个接口只是测试的 */
+public interface IViewLyricConfigService extends IService {
+}
diff --git a/common/src/main/java/com/sdm/common/service/lyric/LyricIntegrateService.java b/outbridge/src/main/java/com/sdm/outbridge/service/lyric/LyricIntegrateService.java
similarity index 99%
rename from common/src/main/java/com/sdm/common/service/lyric/LyricIntegrateService.java
rename to outbridge/src/main/java/com/sdm/outbridge/service/lyric/LyricIntegrateService.java
index 82e3ea15..1ad91926 100644
--- a/common/src/main/java/com/sdm/common/service/lyric/LyricIntegrateService.java
+++ b/outbridge/src/main/java/com/sdm/outbridge/service/lyric/LyricIntegrateService.java
@@ -1,12 +1,12 @@
-package com.sdm.common.service.lyric;
+package com.sdm.outbridge.service.lyric;
import com.alibaba.fastjson2.JSONArray;
import com.alibaba.fastjson2.JSONObject;
import com.alibaba.fastjson2.JSONWriter;
-import com.fasterxml.jackson.databind.ser.SerializerFactory;
import com.sdm.common.common.SdmResponse;
import com.sdm.common.utils.HttpUtil;
+import com.sdm.outbridge.mode.HkUploadFileReq;
import lombok.extern.slf4j.Slf4j;
import org.apache.http.client.config.RequestConfig;
import org.apache.http.client.methods.CloseableHttpResponse;
diff --git a/common/src/main/resources/common.yml b/outbridge/src/main/resources/common.yml
similarity index 81%
rename from common/src/main/resources/common.yml
rename to outbridge/src/main/resources/common.yml
index 47dc1d96..35536468 100644
--- a/common/src/main/resources/common.yml
+++ b/outbridge/src/main/resources/common.yml
@@ -1,3 +1,13 @@
+spring:
+ application:
+ name: pbs
+ datasource:
+ second:
+ username: root
+ password: mysql
+ jdbc-url: jdbc:mysql://192.168.65.161:3306/spdm_baseline?useUnicode=true&characterEncoding=utf-8&useSSL=true&serverTimezone=Asia/Shanghai
+ driver-class-name: com.mysql.cj.jdbc.Driver
+
# 测试开发环境
#appKey : 380ad3deb578424c9ca5178383f732c1
#appSecret : 805c316f35024b8b9566ca67b4991c42
diff --git a/pbs/pom.xml b/pbs/pom.xml
index f0d02196..bd84be5a 100644
--- a/pbs/pom.xml
+++ b/pbs/pom.xml
@@ -30,6 +30,19 @@
+
+
+ com.sdm
+ outbridge
+ 0.0.1-SNAPSHOT
+
+
+ *
+ *
+
+
+
+
org.springframework.boot
spring-boot-starter
diff --git a/pbs/src/main/java/com/sdm/pbs/PbsApplication.java b/pbs/src/main/java/com/sdm/pbs/PbsApplication.java
index ad80d7b7..34415183 100644
--- a/pbs/src/main/java/com/sdm/pbs/PbsApplication.java
+++ b/pbs/src/main/java/com/sdm/pbs/PbsApplication.java
@@ -6,7 +6,7 @@ import org.springframework.cloud.client.discovery.EnableDiscoveryClient;
import org.springframework.cloud.openfeign.EnableFeignClients;
import org.springframework.scheduling.annotation.EnableScheduling;
-@SpringBootApplication(scanBasePackages = {"com.sdm.pbs","com.sdm.common"})
+@SpringBootApplication(scanBasePackages = {"com.sdm.pbs","com.sdm.common","com.sdm.outbridge"})
@EnableDiscoveryClient
@EnableScheduling
@EnableFeignClients(basePackages = "com.sdm.common.feign")
diff --git a/pbs/src/main/java/com/sdm/pbs/controller/TestSecondDbController.java b/pbs/src/main/java/com/sdm/pbs/controller/TestSecondDbController.java
new file mode 100644
index 00000000..3fff7797
--- /dev/null
+++ b/pbs/src/main/java/com/sdm/pbs/controller/TestSecondDbController.java
@@ -0,0 +1,43 @@
+package com.sdm.pbs.controller;
+
+import com.alibaba.fastjson2.JSONObject;
+import com.sdm.common.common.SdmResponse;
+import com.sdm.outbridge.entity.ViewLyricconfig;
+import com.sdm.outbridge.service.lyric.IViewLyricConfigService;
+import com.sdm.pbs.model.entity.SimulationCommandPlaceholder;
+import com.sdm.pbs.service.ISimulationCommandPlaceholderService;
+import io.swagger.v3.oas.annotations.Operation;
+import io.swagger.v3.oas.annotations.tags.Tag;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.*;
+
+import java.util.List;
+
+@Slf4j
+@RestController
+@RequestMapping("/sec")
+@Tag(name = "测试外部模块系统交互", description = "测试外部模块系统交互")
+public class TestSecondDbController {
+
+ @Autowired
+ private ISimulationCommandPlaceholderService simulationCommandPlaceholderService;
+
+ @Autowired
+ private IViewLyricConfigService viewLyricConfigService;
+
+
+ @GetMapping("/testSec")
+ @Operation(summary = "测试多数据源")
+ public SdmResponse testSec() {
+ // 查询主数据源
+ List placeholders = simulationCommandPlaceholderService.lambdaQuery().list();
+ // 查询从数据源
+ List seconds = viewLyricConfigService.lambdaQuery().list();
+ System.out.println(JSONObject.toJSONString(placeholders));
+ System.out.println(JSONObject.toJSONString(seconds));
+ return SdmResponse.success(JSONObject.toJSONString(seconds));
+ }
+
+
+}
diff --git a/pom.xml b/pom.xml
index 177ad680..f008c093 100644
--- a/pom.xml
+++ b/pom.xml
@@ -21,6 +21,7 @@
system
common
flowable
+ outbridge