From 4e5108cf18b4f1aa003563694f2aa4ea81792b00 Mon Sep 17 00:00:00 2001
From: zhang <zc857179121@qq.com>
Date: 星期一, 22 九月 2025 13:35:13 +0800
Subject: [PATCH] 双数据源;同时解决忽略第二数据源的报错

---
 src/main/resources/mapper/asrs/WaitPakinMapper.xml                   |    0 
 src/main/resources/mapper/asrs/RowLastnoMapper.xml                   |    0 
 src/main/resources/mapper/third/ConfigMapper.xml                     |    0 
 src/main/resources/mapper/asrs/BasWrkStatusMapper.xml                |    0 
 src/main/resources/mapper/asrs/DocTypeMapper.xml                     |    0 
 .idea/misc.xml                                                       |    2 
 src/main/java/com/zy/common/config/ds/DynamicDataSource.java         |   11 ++
 src/main/resources/mapper/asrs/BasWhsMapper.xml                      |    0 
 src/main/java/com/zy/common/config/ds/SecondaryDataSourceConfig.java |   46 +++++++++
 src/main/resources/mapper/asrs/OrderSettleMapper.xml                 |    0 
 src/main/resources/mapper/asrs/BasDevpMapper.xml                     |    0 
 src/main/java/com/zy/asrs/task/ErrorStockScheduler.java              |    2 
 src/main/resources/mapper/asrs/ApiMapper.xml                         |    0 
 src/main/resources/mapper/asrs/LocMastMapper.xml                     |    0 
 src/main/resources/mapper/asrs/ManLocDetlMapper.xml                  |    0 
 src/main/resources/mapper/asrs/TagMapper.xml                         |    0 
 src/main/java/com/zy/asrs/task/NotifyLogScheduler.java               |    2 
 src/main/java/com/zy/common/config/ds/PrimaryDataSourceConfig.java   |   40 ++++++++
 src/main/resources/mapper/asrs/WrkLastnoMapper.xml                   |    0 
 src/main/java/com/zy/common/config/ds/DataSourceType.java            |   32 ++++++
 src/main/resources/mapper/asrs/HostMapper.xml                        |    0 
 src/main/resources/mapper/asrs/ConfigMapper.xml                      |    0 
 src/main/resources/mapper/asrs/TrayCodeMapper.xml                    |    0 
 src/main/resources/mapper/asrs/SaasLogMapper.xml                     |    0 
 src/main/java/com/zy/asrs/task/WorkMastScheduler.java                |    4 
 src/main/resources/mapper/asrs/BasWrkIotypeMapper.xml                |    0 
 src/main/resources/mapper/asrs/WrkDetlLogMapper.xml                  |    0 
 src/main/resources/mapper/asrs/WrkMastLogMapper.xml                  |    0 
 src/main/resources/mapper/asrs/DocLogMapper.xml                      |    0 
 src/main/resources/mapper/asrs/LocCheckMapper.xml                    |    0 
 src/main/resources/mapper/asrs/OperateLogMapper.xml                  |    0 
 src/main/resources/mapper/asrs/RolePermissionMapper.xml              |    0 
 src/main/resources/mapper/asrs/LicenseInfosMapper.xml                |    0 
 src/main/resources/mapper/asrs/BasCrnpMapper.xml                     |    0 
 src/main/resources/mapper/asrs/BasCrnErrorMapper.xml                 |    0 
 src/main/java/com/zy/asrs/task/AutoAssignAGVTasks.java               |   10 +-
 src/main/resources/mapper/asrs/BasCrnStatusMapper.xml                |    0 
 src/main/resources/mapper/asrs/StkPlcmMapper.xml                     |    0 
 src/main/resources/mapper/asrs/UserLoginMapper.xml                   |    0 
 src/main/java/com/zy/common/config/ds/DataSourceConfig.java          |   54 ++++++++++
 src/main/resources/mapper/asrs/ViewStayTimeMapper.xml                |    0 
 src/main/resources/mapper/asrs/AdjDetlMapper.xml                     |    0 
 src/main/resources/mapper/asrs/StaDescMapper.xml                     |    0 
 src/main/resources/mapper/asrs/PermissionMapper.xml                  |    0 
 src/main/resources/mapper/asrs/RoleResourceMapper.xml                |    0 
 src/main/resources/mapper/asrs/OrderDetlMapper.xml                   |    0 
 src/main/resources/mapper/asrs/WaitPakinLogMapper.xml                |    0 
 src/main/java/com/zy/asrs/task/PlcLogScheduler.java                  |    2 
 src/main/resources/mapper/asrs/RequestLogMapper.xml                  |    0 
 src/main/resources/mapper/asrs/ResourceMapper.xml                    |    0 
 src/main/resources/mapper/asrs/BasCrnOptMapper.xml                   |    0 
 src/main/resources/mapper/asrs/PackMapper.xml                        |    0 
 src/main/java/com/zy/asrs/task/CheckDeepScheduler.java               |    2 
 src/main/resources/mapper/asrs/BasPlcerrorMapper.xml                 |    0 
 src/main/resources/mapper/asrs/BasLocStsMapper.xml                   |    0 
 src/main/resources/mapper/asrs/MatMapper.xml                         |    0 
 src/main/resources/mapper/asrs/WrkDetlMapper.xml                     |    0 
 src/main/java/com/zy/asrs/task/OverYearLogScheduler.java             |    2 
 src/main/resources/mapper/asrs/WrkMastMapper.xml                     |    0 
 src/main/resources/mapper/asrs/ViewInOutMapper.xml                   |    0 
 src/main/java/com/zy/common/config/ds/DataSourceAop.java             |   27 +++++
 src/main/resources/mapper/asrs/LocDetlMapper.xml                     |    0 
 src/main/resources/mapper/asrs/ViewStockUseMapper.xml                |    0 
 src/main/resources/mapper/asrs/ViewWorkInMapper.xml                  |    0 
 src/main/java/com/zy/common/config/ds/AbstractRoutingDataSource.java |   38 +++++++
 src/main/resources/mapper/asrs/NodeMapper.xml                        |    0 
 src/main/resources/mapper/asrs/BasErrLogMapper.xml                   |    0 
 src/main/java/com/zy/asrs/task/WorkLogScheduler.java                 |    2 
 src/main/resources/mapper/asrs/ApiLogMapper.xml                      |    0 
 src/main/resources/mapper/asrs/OrderMapper.xml                       |    0 
 src/main/resources/mapper/asrs/UserMapper.xml                        |    0 
 src/main/resources/application.yml                                   |   11 +-
 src/main/resources/mapper/asrs/RoleMapper.xml                        |    0 
 73 files changed, 268 insertions(+), 19 deletions(-)

diff --git a/.idea/misc.xml b/.idea/misc.xml
index afca537..1035788 100644
--- a/.idea/misc.xml
+++ b/.idea/misc.xml
@@ -14,7 +14,7 @@
       </list>
     </option>
   </component>
-  <component name="ProjectRootManager" version="2" languageLevel="JDK_1_8" default="true" project-jdk-name="1.8" project-jdk-type="JavaSDK">
+  <component name="ProjectRootManager" version="2" languageLevel="JDK_1_8" project-jdk-name="1.8" project-jdk-type="JavaSDK">
     <output url="file://$PROJECT_DIR$/out" />
   </component>
 </project>
\ No newline at end of file
diff --git a/src/main/java/com/zy/asrs/task/AutoAssignAGVTasks.java b/src/main/java/com/zy/asrs/task/AutoAssignAGVTasks.java
index 6452017..ca91d38 100644
--- a/src/main/java/com/zy/asrs/task/AutoAssignAGVTasks.java
+++ b/src/main/java/com/zy/asrs/task/AutoAssignAGVTasks.java
@@ -30,7 +30,7 @@
  */
 @Component
 public class AutoAssignAGVTasks {
-    private static final Logger log = LoggerFactory.getLogger(WorkMastScheduler.class);
+    private static final Logger log = LoggerFactory.getLogger(AutoAssignAGVTasks.class);
 
     @Autowired
     private WaitPakinService waitPakinService;
@@ -51,7 +51,7 @@
      * 鑷姩娲惧彂鍏ュ簱浠诲姟缁橝GV
      */
     @Scheduled(cron = "0/3 * * * * ? ")
-    private synchronized void execute(){
+    public synchronized void execute(){
         /**
          * agv鐘舵��
          * be_batch
@@ -174,7 +174,7 @@
      * 鑷姩娲惧彂琛ョ┖鏉夸换鍔$粰AGV
      */
     @Scheduled(cron = "0/3 * * * * ? ")
-    private synchronized void autoFillEmptyPallets(){
+    public synchronized void autoFillEmptyPallets(){
         /**
          * 璇ュ瓧娈垫槸缁勬墭鍏ュ簱鑷姩鍑哄彂琛ョ┖鎵樼洏鏍囪
          * item_num
@@ -220,7 +220,7 @@
      * 鑷姩娲惧彂鍑哄簱浠诲姟缁檃gv鎼繍
      */
     @Scheduled(cron = "0/3 * * * * ? ")
-    private synchronized void autoOut(){
+    public synchronized void autoOut(){
         List<WrkMast> wrkMasts = wrkMastService.selectList(new EntityWrapper<WrkMast>().eq("wrk_sts", 30));
         if (wrkMasts.isEmpty()) {
             return;
@@ -265,7 +265,7 @@
      * 鍏ュ簱浠诲姟鑷姩瑙g粦agv绔欑偣
      */
     @Scheduled(cron = "0/3 * * * * ? ")
-    private synchronized void UnbindTheSite(){
+    public synchronized void UnbindTheSite(){
         List<WrkMast> wrkMasts = wrkMastService.selectList(new EntityWrapper<WrkMast>()
                 .in("io_type",1,53)
                 .ge("wrk_sts", 2)
diff --git a/src/main/java/com/zy/asrs/task/CheckDeepScheduler.java b/src/main/java/com/zy/asrs/task/CheckDeepScheduler.java
index db1adb8..addb2f7 100644
--- a/src/main/java/com/zy/asrs/task/CheckDeepScheduler.java
+++ b/src/main/java/com/zy/asrs/task/CheckDeepScheduler.java
@@ -47,7 +47,7 @@
      * 灏嗕袱涓繁搴撲綅鍚堝苟涓烘繁娴呭簱浣�,鐗╂枡鍙风浉鍚岋紝婧愬簱浣嶅叆搴撴棩鏈熸棭浜庣洰鏍囧簱浣嶅搴旀繁搴撲綅鍏ュ簱鏃ユ湡锛屽簱浣嶇姸鎬侀兘涓篎
      */
     @Scheduled(cron = "0/30 * * * * ?")
-    private void execute() throws ParseException {
+    public void execute() throws ParseException {
         if (!confirmDeep) return;
 
         ReturnT<String> result = checkDeepHandler.start();
diff --git a/src/main/java/com/zy/asrs/task/ErrorStockScheduler.java b/src/main/java/com/zy/asrs/task/ErrorStockScheduler.java
index 917cfc4..4d79614 100644
--- a/src/main/java/com/zy/asrs/task/ErrorStockScheduler.java
+++ b/src/main/java/com/zy/asrs/task/ErrorStockScheduler.java
@@ -20,7 +20,7 @@
     private ErrorStockHandler errorStockHandler;
 
     @Scheduled(cron = "0/3 * * * * ? ")
-    private void execute(){
+    public void execute(){
         ReturnT<String> returnT = errorStockHandler.start();
         if (!returnT.isSuccess()) {
             log.error(returnT.getMsg());
diff --git a/src/main/java/com/zy/asrs/task/NotifyLogScheduler.java b/src/main/java/com/zy/asrs/task/NotifyLogScheduler.java
index 93799d9..c69354e 100644
--- a/src/main/java/com/zy/asrs/task/NotifyLogScheduler.java
+++ b/src/main/java/com/zy/asrs/task/NotifyLogScheduler.java
@@ -20,7 +20,7 @@
     private NotifyLogHandler notifyLogHandler;
 
     @Scheduled(cron = "0/3 * * * * ? ")
-    private void execute(){
+    public void execute(){
         ReturnT<String> returnT = notifyLogHandler.start();
         if (!returnT.isSuccess()) {
             log.error(returnT.getMsg());
diff --git a/src/main/java/com/zy/asrs/task/OverYearLogScheduler.java b/src/main/java/com/zy/asrs/task/OverYearLogScheduler.java
index 95a8a29..60387eb 100644
--- a/src/main/java/com/zy/asrs/task/OverYearLogScheduler.java
+++ b/src/main/java/com/zy/asrs/task/OverYearLogScheduler.java
@@ -20,7 +20,7 @@
     private OverYearLogHandler overYearLogHandler;
 
     @Scheduled(cron = "0/3 * * * * ? ")
-    private void execute(){
+    public void execute(){
         ReturnT<String> returnT = overYearLogHandler.start();
         if (!returnT.isSuccess()) {
             log.error(returnT.getMsg());
diff --git a/src/main/java/com/zy/asrs/task/PlcLogScheduler.java b/src/main/java/com/zy/asrs/task/PlcLogScheduler.java
index 708392f..57517fe 100644
--- a/src/main/java/com/zy/asrs/task/PlcLogScheduler.java
+++ b/src/main/java/com/zy/asrs/task/PlcLogScheduler.java
@@ -20,7 +20,7 @@
     private PlcLogHandler plcLogHandler;
 
     @Scheduled(cron = "0/3 * * * * ? ")
-    private void execute(){
+    public void execute(){
         ReturnT<String> returnT = plcLogHandler.start();
         if (!returnT.isSuccess()) {
             log.error(returnT.getMsg());
diff --git a/src/main/java/com/zy/asrs/task/WorkLogScheduler.java b/src/main/java/com/zy/asrs/task/WorkLogScheduler.java
index 06a0624..ee29a50 100644
--- a/src/main/java/com/zy/asrs/task/WorkLogScheduler.java
+++ b/src/main/java/com/zy/asrs/task/WorkLogScheduler.java
@@ -24,7 +24,7 @@
     private WrkMastService wrkMastService;
 
     @Scheduled(cron = "0/3 * * * * ? ")
-    private void execute(){
+    public void execute(){
         List<WrkMast> wrkMasts = wrkMastService.selectToBeHistoryData();
         if (wrkMasts.isEmpty()) {
             return;
diff --git a/src/main/java/com/zy/asrs/task/WorkMastScheduler.java b/src/main/java/com/zy/asrs/task/WorkMastScheduler.java
index 36ce070..5453129 100644
--- a/src/main/java/com/zy/asrs/task/WorkMastScheduler.java
+++ b/src/main/java/com/zy/asrs/task/WorkMastScheduler.java
@@ -28,7 +28,7 @@
     private WorkMastHandler workMastHandler;
 
     @Scheduled(cron = "0/3 * * * * ? ")
-    private void execute(){
+    public void execute(){
         List<WrkMast> wrkMasts = wrkMastService.selectToBeCompleteData();
         if (wrkMasts.isEmpty()) {
             return;
@@ -48,7 +48,7 @@
 
     //鎷f枡浠诲姟澶勭悊
     @Scheduled(cron = "0/3 * * * * ? ")
-    private void jl(){
+    public void jl(){
         List<WrkMast> wrkMasts = wrkMastService.selectList(new EntityWrapper<WrkMast>()
                 .eq("io_type",103)
                 .eq("wrk_sts",14L)
diff --git a/src/main/java/com/zy/common/config/ds/AbstractRoutingDataSource.java b/src/main/java/com/zy/common/config/ds/AbstractRoutingDataSource.java
new file mode 100644
index 0000000..d8b8519
--- /dev/null
+++ b/src/main/java/com/zy/common/config/ds/AbstractRoutingDataSource.java
@@ -0,0 +1,38 @@
+package com.zy.common.config.ds;
+
+import org.springframework.beans.factory.InitializingBean;
+import org.springframework.jdbc.datasource.AbstractDataSource;
+import org.springframework.util.Assert;
+
+import javax.sql.DataSource;
+import java.util.Map;
+
+public abstract class AbstractRoutingDataSource extends AbstractDataSource implements InitializingBean {
+    //澶氭暟鎹簮map闆嗗悎
+    private Map<Object, Object> targetDataSources;
+    //榛樿鏁版嵁婧�
+    private Object defaultTargetDataSource;
+    //鍏跺疄灏辨槸targetDataSources锛屽悗闈㈢殑afterPropertiesSet锛堬級鏂规硶浼氬皢targetDataSources璧嬪�肩粰resolvedDataSources
+    private Map<Object, DataSource> resolvedDataSources;
+    private DataSource resolvedDefaultDataSource;
+
+    public void setTargetDataSources(Map<Object, Object> targetDataSources) {
+        this.targetDataSources = targetDataSources;
+    }
+
+    protected DataSource determineTargetDataSource() {
+        Assert.notNull(this.resolvedDataSources, "DataSource router not initialized");
+        Object lookupKey = this.determineCurrentLookupKey();
+        DataSource dataSource = (DataSource) this.resolvedDataSources.get(lookupKey);
+        if (dataSource == null && ( lookupKey == null)) {
+            dataSource = this.resolvedDefaultDataSource;
+        }
+        if (dataSource == null) {
+            throw new IllegalStateException("Cannot determine target DataSource for lookup key [" + lookupKey + "]");
+        } else {
+            return dataSource;
+        }
+    }
+
+    protected abstract Object determineCurrentLookupKey();
+}
\ No newline at end of file
diff --git a/src/main/java/com/zy/common/config/ds/DataSourceAop.java b/src/main/java/com/zy/common/config/ds/DataSourceAop.java
new file mode 100644
index 0000000..9b23cf2
--- /dev/null
+++ b/src/main/java/com/zy/common/config/ds/DataSourceAop.java
@@ -0,0 +1,27 @@
+package com.zy.common.config.ds;
+
+import org.aspectj.lang.annotation.Aspect;
+import org.aspectj.lang.annotation.Before;
+import org.springframework.stereotype.Component;
+
+@Aspect
+@Component
+public class DataSourceAop {
+    @Before("execution(* com.zy.asrs..*(..))")
+    public void setDataSource2test01() {
+        //System.err.println("test01涓氬姟");
+        DataSourceType.setDataBaseType(DataSourceType.DataBaseType.TEST01);
+    }
+
+    @Before("execution(* com.zy.system..*(..))")
+    public void setDataSource2test012() {
+        //System.err.println("test01涓氬姟");
+        DataSourceType.setDataBaseType(DataSourceType.DataBaseType.TEST01);
+    }
+
+    @Before("execution(* com.zy.third..*(..))")
+    public void setDataSource2test02() {
+        //System.err.println("test02涓氬姟");
+        DataSourceType.setDataBaseType(DataSourceType.DataBaseType.TEST02);
+    }
+}
diff --git a/src/main/java/com/zy/common/config/ds/DataSourceConfig.java b/src/main/java/com/zy/common/config/ds/DataSourceConfig.java
new file mode 100644
index 0000000..e0cd18e
--- /dev/null
+++ b/src/main/java/com/zy/common/config/ds/DataSourceConfig.java
@@ -0,0 +1,54 @@
+package com.zy.common.config.ds;
+
+import com.zaxxer.hikari.HikariConfig;
+import com.zaxxer.hikari.HikariDataSource;
+import org.springframework.beans.factory.annotation.Value;
+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.context.annotation.Primary;
+
+import javax.sql.DataSource;
+
+
+@Configuration
+public class DataSourceConfig {
+
+    @Value("${other.datasource.jdbc-url}")
+    private String url;
+    @Value("${other.datasource.username}")
+    private String username;
+    @Value("${other.datasource.password}")
+    private String password;
+    @Value("${other.datasource.driver-class-name}")
+    private String driverClassName;
+
+    // 涓绘暟鎹簮
+    @Bean(name = "dataSource")
+    @Primary
+    @ConfigurationProperties(prefix = "spring.datasource")
+    public DataSource primaryDataSource() {
+        return DataSourceBuilder.create().build();
+    }
+
+    // 娆℃暟鎹簮
+    @Bean(name = "slaveDataSource")
+    public DataSource secondaryDataSource() {
+        HikariConfig config = new HikariConfig();
+        config.setJdbcUrl(url);
+        config.setUsername(username);
+        config.setPassword(password);
+        config.setDriverClassName(driverClassName);
+        config.setInitializationFailTimeout(0L);
+        return new HikariDataSource( config);
+//        return DataSourceBuilder.create()
+//                .driverClassName(driverClassName)
+//                .url(url)
+//                .username(username)
+//                .password(password)
+//                .build();
+
+    }
+
+}
diff --git a/src/main/java/com/zy/common/config/ds/DataSourceType.java b/src/main/java/com/zy/common/config/ds/DataSourceType.java
new file mode 100644
index 0000000..57ce62b
--- /dev/null
+++ b/src/main/java/com/zy/common/config/ds/DataSourceType.java
@@ -0,0 +1,32 @@
+package com.zy.common.config.ds;
+
+public class DataSourceType {
+
+    public enum DataBaseType {
+        TEST01, TEST02
+    }
+
+    // 浣跨敤ThreadLocal淇濊瘉绾跨▼瀹夊叏
+    private static final ThreadLocal<DataBaseType> TYPE = new ThreadLocal<DataBaseType>();
+
+    // 寰�褰撳墠绾跨▼閲岃缃暟鎹簮绫诲瀷
+    public static void setDataBaseType(DataBaseType dataBaseType) {
+        if (dataBaseType == null) {
+            throw new NullPointerException();
+        }
+        //System.err.println("[灏嗗綋鍓嶆暟鎹簮鏀逛负]锛�" + dataBaseType);
+        TYPE.set(dataBaseType);
+    }
+
+    // 鑾峰彇鏁版嵁婧愮被鍨�
+    public static DataBaseType getDataBaseType() {
+        DataBaseType dataBaseType = TYPE.get() == null ? DataBaseType.TEST01 : TYPE.get();
+        //System.err.println("[鑾峰彇褰撳墠鏁版嵁婧愮殑绫诲瀷涓篯锛�" + dataBaseType);
+        return dataBaseType;
+    }
+
+    // 娓呯┖鏁版嵁绫诲瀷
+    public static void clearDataBaseType() {
+        TYPE.remove();
+    }
+}
diff --git a/src/main/java/com/zy/common/config/ds/DynamicDataSource.java b/src/main/java/com/zy/common/config/ds/DynamicDataSource.java
new file mode 100644
index 0000000..a0e228c
--- /dev/null
+++ b/src/main/java/com/zy/common/config/ds/DynamicDataSource.java
@@ -0,0 +1,11 @@
+package com.zy.common.config.ds;
+
+import org.springframework.jdbc.datasource.lookup.AbstractRoutingDataSource;
+
+public class DynamicDataSource  extends AbstractRoutingDataSource {
+    @Override
+    protected Object determineCurrentLookupKey() {
+        DataSourceType.DataBaseType dataBaseType = DataSourceType.getDataBaseType();
+        return dataBaseType;
+    }
+}
diff --git a/src/main/java/com/zy/common/config/ds/PrimaryDataSourceConfig.java b/src/main/java/com/zy/common/config/ds/PrimaryDataSourceConfig.java
new file mode 100644
index 0000000..16b482c
--- /dev/null
+++ b/src/main/java/com/zy/common/config/ds/PrimaryDataSourceConfig.java
@@ -0,0 +1,40 @@
+package com.zy.common.config.ds;
+
+import com.baomidou.mybatisplus.plugins.PaginationInterceptor;
+import com.baomidou.mybatisplus.spring.MybatisSqlSessionFactoryBean;
+import org.apache.ibatis.plugin.Interceptor;
+import org.mybatis.spring.annotation.MapperScan;
+import org.springframework.beans.factory.annotation.Qualifier;
+import org.springframework.context.annotation.Bean;
+import org.springframework.context.annotation.Configuration;
+import org.springframework.context.annotation.Primary;
+import org.springframework.core.io.support.PathMatchingResourcePatternResolver;
+import org.springframework.jdbc.datasource.DataSourceTransactionManager;
+
+import javax.sql.DataSource;
+
+@Configuration
+@MapperScan(basePackages = {"com.zy.asrs.mapper", "com.zy.system.mapper"}, sqlSessionFactoryRef = "primarySqlSessionFactory")
+public class PrimaryDataSourceConfig {
+
+    @Bean(name = "primarySqlSessionFactory")
+    @Primary
+    public MybatisSqlSessionFactoryBean primarySqlSessionFactory(@Qualifier("dataSource") DataSource dataSource, PaginationInterceptor paginationInterceptor) throws Exception {
+        MybatisSqlSessionFactoryBean sessionFactory = new MybatisSqlSessionFactoryBean();
+        sessionFactory.setDataSource(dataSource);
+        // 璁剧疆MyBatis鐨凪apper XML鏂囦欢璺緞
+        sessionFactory.setMapperLocations(new PathMatchingResourcePatternResolver()
+                .getResources("classpath:mapper/asrs/*.xml"));
+        Interceptor[] interceptors = new Interceptor[]{paginationInterceptor};
+        sessionFactory.setPlugins(interceptors);
+        return sessionFactory;
+    }
+
+    @Bean(name = "transactionManager")
+    @Primary
+    public DataSourceTransactionManager primaryTransactionManager(@Qualifier("dataSource") DataSource dataSource) {
+        return new DataSourceTransactionManager(dataSource);
+    }
+
+
+}
diff --git a/src/main/java/com/zy/common/config/ds/SecondaryDataSourceConfig.java b/src/main/java/com/zy/common/config/ds/SecondaryDataSourceConfig.java
new file mode 100644
index 0000000..095c284
--- /dev/null
+++ b/src/main/java/com/zy/common/config/ds/SecondaryDataSourceConfig.java
@@ -0,0 +1,46 @@
+package com.zy.common.config.ds;
+
+import com.baomidou.mybatisplus.plugins.PaginationInterceptor;
+import com.baomidou.mybatisplus.spring.MybatisSqlSessionFactoryBean;
+import org.apache.ibatis.plugin.Interceptor;
+import org.apache.ibatis.session.SqlSessionFactory;
+import org.mybatis.spring.SqlSessionTemplate;
+import org.mybatis.spring.annotation.MapperScan;
+import org.springframework.beans.factory.annotation.Qualifier;
+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;
+
+@Configuration
+@MapperScan(basePackages = "com.zy.third.mapper", sqlSessionFactoryRef = "secondarySqlSessionFactory")
+public class SecondaryDataSourceConfig {
+
+    @Bean(name = "secondarySqlSessionFactory")
+    public SqlSessionFactory secondarySqlSessionFactory(@Qualifier("slaveDataSource") DataSource dataSource, PaginationInterceptor paginationInterceptor) throws Exception {
+        try {
+            MybatisSqlSessionFactoryBean sessionFactory = new MybatisSqlSessionFactoryBean();
+            sessionFactory.setDataSource(dataSource);
+            // 璁剧疆MyBatis鐨凪apper XML鏂囦欢璺緞
+            sessionFactory.setMapperLocations(new PathMatchingResourcePatternResolver()
+                    .getResources("classpath:mapper/third/*.xml"));
+            Interceptor[] interceptors = new Interceptor[]{paginationInterceptor};
+            sessionFactory.setPlugins(interceptors);
+            return sessionFactory.getObject();
+        } catch (Exception e) {
+            e.printStackTrace();
+        }
+        return null;
+    }
+
+
+
+    @Bean(name = "secondaryTransactionManager")
+    public DataSourceTransactionManager secondaryTransactionManager(@Qualifier("slaveDataSource") DataSource dataSource) {
+        return new DataSourceTransactionManager(dataSource);
+    }
+
+
+}
diff --git a/src/main/resources/application.yml b/src/main/resources/application.yml
index 684c1e5..2a09f70 100644
--- a/src/main/resources/application.yml
+++ b/src/main/resources/application.yml
@@ -10,8 +10,8 @@
     enabled: false
   datasource:
     driver-class-name: com.microsoft.sqlserver.jdbc.SQLServerDriver
-    url: jdbc:sqlserver://172.17.3.20:1433;databasename=ycawdasrs
-#    url: jdbc:sqlserver://127.0.0.1:1433;databasename=ycawdasrs
+    #jdbc-url: jdbc:sqlserver://172.17.3.20:1433;databasename=ycawdasrs
+    jdbc-url: jdbc:sqlserver://127.0.0.1:1433;databasename=ycawdasrs
     username: sa
     password: sa@123
   mvc:
@@ -31,10 +31,11 @@
     #    jdbc-url: jdbc:mysql://127.0.0.1:3306/wmsdata
     #    username: root
     #    password: root
+    #driver-class-name: com.mysql.cj.jdbc.Driver
     driver-class-name: com.microsoft.sqlserver.jdbc.SQLServerDriver
-    url: jdbc:sqlserver://127.0.0.1:1433;databasename=ycawdasrs
-    username: liku
-    password: 123456
+    jdbc-url: jdbc:sqlserver://127.0.0.2:1433;databasename=hcwcs
+    username: sa
+    password: sa@123
 
 mybatis-plus:
   mapper-locations: classpath:mapper/*.xml 
diff --git a/src/main/resources/mapper/AdjDetlMapper.xml b/src/main/resources/mapper/asrs/AdjDetlMapper.xml
similarity index 100%
rename from src/main/resources/mapper/AdjDetlMapper.xml
rename to src/main/resources/mapper/asrs/AdjDetlMapper.xml
diff --git a/src/main/resources/mapper/ApiLogMapper.xml b/src/main/resources/mapper/asrs/ApiLogMapper.xml
similarity index 100%
rename from src/main/resources/mapper/ApiLogMapper.xml
rename to src/main/resources/mapper/asrs/ApiLogMapper.xml
diff --git a/src/main/resources/mapper/ApiMapper.xml b/src/main/resources/mapper/asrs/ApiMapper.xml
similarity index 100%
rename from src/main/resources/mapper/ApiMapper.xml
rename to src/main/resources/mapper/asrs/ApiMapper.xml
diff --git a/src/main/resources/mapper/BasCrnErrorMapper.xml b/src/main/resources/mapper/asrs/BasCrnErrorMapper.xml
similarity index 100%
rename from src/main/resources/mapper/BasCrnErrorMapper.xml
rename to src/main/resources/mapper/asrs/BasCrnErrorMapper.xml
diff --git a/src/main/resources/mapper/BasCrnOptMapper.xml b/src/main/resources/mapper/asrs/BasCrnOptMapper.xml
similarity index 100%
rename from src/main/resources/mapper/BasCrnOptMapper.xml
rename to src/main/resources/mapper/asrs/BasCrnOptMapper.xml
diff --git a/src/main/resources/mapper/BasCrnStatusMapper.xml b/src/main/resources/mapper/asrs/BasCrnStatusMapper.xml
similarity index 100%
rename from src/main/resources/mapper/BasCrnStatusMapper.xml
rename to src/main/resources/mapper/asrs/BasCrnStatusMapper.xml
diff --git a/src/main/resources/mapper/BasCrnpMapper.xml b/src/main/resources/mapper/asrs/BasCrnpMapper.xml
similarity index 100%
rename from src/main/resources/mapper/BasCrnpMapper.xml
rename to src/main/resources/mapper/asrs/BasCrnpMapper.xml
diff --git a/src/main/resources/mapper/BasDevpMapper.xml b/src/main/resources/mapper/asrs/BasDevpMapper.xml
similarity index 100%
rename from src/main/resources/mapper/BasDevpMapper.xml
rename to src/main/resources/mapper/asrs/BasDevpMapper.xml
diff --git a/src/main/resources/mapper/BasErrLogMapper.xml b/src/main/resources/mapper/asrs/BasErrLogMapper.xml
similarity index 100%
rename from src/main/resources/mapper/BasErrLogMapper.xml
rename to src/main/resources/mapper/asrs/BasErrLogMapper.xml
diff --git a/src/main/resources/mapper/BasLocStsMapper.xml b/src/main/resources/mapper/asrs/BasLocStsMapper.xml
similarity index 100%
rename from src/main/resources/mapper/BasLocStsMapper.xml
rename to src/main/resources/mapper/asrs/BasLocStsMapper.xml
diff --git a/src/main/resources/mapper/BasPlcerrorMapper.xml b/src/main/resources/mapper/asrs/BasPlcerrorMapper.xml
similarity index 100%
rename from src/main/resources/mapper/BasPlcerrorMapper.xml
rename to src/main/resources/mapper/asrs/BasPlcerrorMapper.xml
diff --git a/src/main/resources/mapper/BasWhsMapper.xml b/src/main/resources/mapper/asrs/BasWhsMapper.xml
similarity index 100%
rename from src/main/resources/mapper/BasWhsMapper.xml
rename to src/main/resources/mapper/asrs/BasWhsMapper.xml
diff --git a/src/main/resources/mapper/BasWrkIotypeMapper.xml b/src/main/resources/mapper/asrs/BasWrkIotypeMapper.xml
similarity index 100%
rename from src/main/resources/mapper/BasWrkIotypeMapper.xml
rename to src/main/resources/mapper/asrs/BasWrkIotypeMapper.xml
diff --git a/src/main/resources/mapper/BasWrkStatusMapper.xml b/src/main/resources/mapper/asrs/BasWrkStatusMapper.xml
similarity index 100%
rename from src/main/resources/mapper/BasWrkStatusMapper.xml
rename to src/main/resources/mapper/asrs/BasWrkStatusMapper.xml
diff --git a/src/main/resources/mapper/ConfigMapper.xml b/src/main/resources/mapper/asrs/ConfigMapper.xml
similarity index 100%
rename from src/main/resources/mapper/ConfigMapper.xml
rename to src/main/resources/mapper/asrs/ConfigMapper.xml
diff --git a/src/main/resources/mapper/DocLogMapper.xml b/src/main/resources/mapper/asrs/DocLogMapper.xml
similarity index 100%
rename from src/main/resources/mapper/DocLogMapper.xml
rename to src/main/resources/mapper/asrs/DocLogMapper.xml
diff --git a/src/main/resources/mapper/DocTypeMapper.xml b/src/main/resources/mapper/asrs/DocTypeMapper.xml
similarity index 100%
rename from src/main/resources/mapper/DocTypeMapper.xml
rename to src/main/resources/mapper/asrs/DocTypeMapper.xml
diff --git a/src/main/resources/mapper/HostMapper.xml b/src/main/resources/mapper/asrs/HostMapper.xml
similarity index 100%
rename from src/main/resources/mapper/HostMapper.xml
rename to src/main/resources/mapper/asrs/HostMapper.xml
diff --git a/src/main/resources/mapper/LicenseInfosMapper.xml b/src/main/resources/mapper/asrs/LicenseInfosMapper.xml
similarity index 100%
rename from src/main/resources/mapper/LicenseInfosMapper.xml
rename to src/main/resources/mapper/asrs/LicenseInfosMapper.xml
diff --git a/src/main/resources/mapper/LocCheckMapper.xml b/src/main/resources/mapper/asrs/LocCheckMapper.xml
similarity index 100%
rename from src/main/resources/mapper/LocCheckMapper.xml
rename to src/main/resources/mapper/asrs/LocCheckMapper.xml
diff --git a/src/main/resources/mapper/LocDetlMapper.xml b/src/main/resources/mapper/asrs/LocDetlMapper.xml
similarity index 100%
rename from src/main/resources/mapper/LocDetlMapper.xml
rename to src/main/resources/mapper/asrs/LocDetlMapper.xml
diff --git a/src/main/resources/mapper/LocMastMapper.xml b/src/main/resources/mapper/asrs/LocMastMapper.xml
similarity index 100%
rename from src/main/resources/mapper/LocMastMapper.xml
rename to src/main/resources/mapper/asrs/LocMastMapper.xml
diff --git a/src/main/resources/mapper/ManLocDetlMapper.xml b/src/main/resources/mapper/asrs/ManLocDetlMapper.xml
similarity index 100%
rename from src/main/resources/mapper/ManLocDetlMapper.xml
rename to src/main/resources/mapper/asrs/ManLocDetlMapper.xml
diff --git a/src/main/resources/mapper/MatMapper.xml b/src/main/resources/mapper/asrs/MatMapper.xml
similarity index 100%
rename from src/main/resources/mapper/MatMapper.xml
rename to src/main/resources/mapper/asrs/MatMapper.xml
diff --git a/src/main/resources/mapper/NodeMapper.xml b/src/main/resources/mapper/asrs/NodeMapper.xml
similarity index 100%
rename from src/main/resources/mapper/NodeMapper.xml
rename to src/main/resources/mapper/asrs/NodeMapper.xml
diff --git a/src/main/resources/mapper/OperateLogMapper.xml b/src/main/resources/mapper/asrs/OperateLogMapper.xml
similarity index 100%
rename from src/main/resources/mapper/OperateLogMapper.xml
rename to src/main/resources/mapper/asrs/OperateLogMapper.xml
diff --git a/src/main/resources/mapper/OrderDetlMapper.xml b/src/main/resources/mapper/asrs/OrderDetlMapper.xml
similarity index 100%
rename from src/main/resources/mapper/OrderDetlMapper.xml
rename to src/main/resources/mapper/asrs/OrderDetlMapper.xml
diff --git a/src/main/resources/mapper/OrderMapper.xml b/src/main/resources/mapper/asrs/OrderMapper.xml
similarity index 100%
rename from src/main/resources/mapper/OrderMapper.xml
rename to src/main/resources/mapper/asrs/OrderMapper.xml
diff --git a/src/main/resources/mapper/OrderSettleMapper.xml b/src/main/resources/mapper/asrs/OrderSettleMapper.xml
similarity index 100%
rename from src/main/resources/mapper/OrderSettleMapper.xml
rename to src/main/resources/mapper/asrs/OrderSettleMapper.xml
diff --git a/src/main/resources/mapper/PackMapper.xml b/src/main/resources/mapper/asrs/PackMapper.xml
similarity index 100%
rename from src/main/resources/mapper/PackMapper.xml
rename to src/main/resources/mapper/asrs/PackMapper.xml
diff --git a/src/main/resources/mapper/PermissionMapper.xml b/src/main/resources/mapper/asrs/PermissionMapper.xml
similarity index 100%
rename from src/main/resources/mapper/PermissionMapper.xml
rename to src/main/resources/mapper/asrs/PermissionMapper.xml
diff --git a/src/main/resources/mapper/RequestLogMapper.xml b/src/main/resources/mapper/asrs/RequestLogMapper.xml
similarity index 100%
rename from src/main/resources/mapper/RequestLogMapper.xml
rename to src/main/resources/mapper/asrs/RequestLogMapper.xml
diff --git a/src/main/resources/mapper/ResourceMapper.xml b/src/main/resources/mapper/asrs/ResourceMapper.xml
similarity index 100%
rename from src/main/resources/mapper/ResourceMapper.xml
rename to src/main/resources/mapper/asrs/ResourceMapper.xml
diff --git a/src/main/resources/mapper/RoleMapper.xml b/src/main/resources/mapper/asrs/RoleMapper.xml
similarity index 100%
rename from src/main/resources/mapper/RoleMapper.xml
rename to src/main/resources/mapper/asrs/RoleMapper.xml
diff --git a/src/main/resources/mapper/RolePermissionMapper.xml b/src/main/resources/mapper/asrs/RolePermissionMapper.xml
similarity index 100%
rename from src/main/resources/mapper/RolePermissionMapper.xml
rename to src/main/resources/mapper/asrs/RolePermissionMapper.xml
diff --git a/src/main/resources/mapper/RoleResourceMapper.xml b/src/main/resources/mapper/asrs/RoleResourceMapper.xml
similarity index 100%
rename from src/main/resources/mapper/RoleResourceMapper.xml
rename to src/main/resources/mapper/asrs/RoleResourceMapper.xml
diff --git a/src/main/resources/mapper/RowLastnoMapper.xml b/src/main/resources/mapper/asrs/RowLastnoMapper.xml
similarity index 100%
rename from src/main/resources/mapper/RowLastnoMapper.xml
rename to src/main/resources/mapper/asrs/RowLastnoMapper.xml
diff --git a/src/main/resources/mapper/SaasLogMapper.xml b/src/main/resources/mapper/asrs/SaasLogMapper.xml
similarity index 100%
rename from src/main/resources/mapper/SaasLogMapper.xml
rename to src/main/resources/mapper/asrs/SaasLogMapper.xml
diff --git a/src/main/resources/mapper/StaDescMapper.xml b/src/main/resources/mapper/asrs/StaDescMapper.xml
similarity index 100%
rename from src/main/resources/mapper/StaDescMapper.xml
rename to src/main/resources/mapper/asrs/StaDescMapper.xml
diff --git a/src/main/resources/mapper/StkPlcmMapper.xml b/src/main/resources/mapper/asrs/StkPlcmMapper.xml
similarity index 100%
rename from src/main/resources/mapper/StkPlcmMapper.xml
rename to src/main/resources/mapper/asrs/StkPlcmMapper.xml
diff --git a/src/main/resources/mapper/TagMapper.xml b/src/main/resources/mapper/asrs/TagMapper.xml
similarity index 100%
rename from src/main/resources/mapper/TagMapper.xml
rename to src/main/resources/mapper/asrs/TagMapper.xml
diff --git a/src/main/resources/mapper/TrayCodeMapper.xml b/src/main/resources/mapper/asrs/TrayCodeMapper.xml
similarity index 100%
rename from src/main/resources/mapper/TrayCodeMapper.xml
rename to src/main/resources/mapper/asrs/TrayCodeMapper.xml
diff --git a/src/main/resources/mapper/UserLoginMapper.xml b/src/main/resources/mapper/asrs/UserLoginMapper.xml
similarity index 100%
rename from src/main/resources/mapper/UserLoginMapper.xml
rename to src/main/resources/mapper/asrs/UserLoginMapper.xml
diff --git a/src/main/resources/mapper/UserMapper.xml b/src/main/resources/mapper/asrs/UserMapper.xml
similarity index 100%
rename from src/main/resources/mapper/UserMapper.xml
rename to src/main/resources/mapper/asrs/UserMapper.xml
diff --git a/src/main/resources/mapper/ViewInOutMapper.xml b/src/main/resources/mapper/asrs/ViewInOutMapper.xml
similarity index 100%
rename from src/main/resources/mapper/ViewInOutMapper.xml
rename to src/main/resources/mapper/asrs/ViewInOutMapper.xml
diff --git a/src/main/resources/mapper/ViewStayTimeMapper.xml b/src/main/resources/mapper/asrs/ViewStayTimeMapper.xml
similarity index 100%
rename from src/main/resources/mapper/ViewStayTimeMapper.xml
rename to src/main/resources/mapper/asrs/ViewStayTimeMapper.xml
diff --git a/src/main/resources/mapper/ViewStockUseMapper.xml b/src/main/resources/mapper/asrs/ViewStockUseMapper.xml
similarity index 100%
rename from src/main/resources/mapper/ViewStockUseMapper.xml
rename to src/main/resources/mapper/asrs/ViewStockUseMapper.xml
diff --git a/src/main/resources/mapper/ViewWorkInMapper.xml b/src/main/resources/mapper/asrs/ViewWorkInMapper.xml
similarity index 100%
rename from src/main/resources/mapper/ViewWorkInMapper.xml
rename to src/main/resources/mapper/asrs/ViewWorkInMapper.xml
diff --git a/src/main/resources/mapper/WaitPakinLogMapper.xml b/src/main/resources/mapper/asrs/WaitPakinLogMapper.xml
similarity index 100%
rename from src/main/resources/mapper/WaitPakinLogMapper.xml
rename to src/main/resources/mapper/asrs/WaitPakinLogMapper.xml
diff --git a/src/main/resources/mapper/WaitPakinMapper.xml b/src/main/resources/mapper/asrs/WaitPakinMapper.xml
similarity index 100%
rename from src/main/resources/mapper/WaitPakinMapper.xml
rename to src/main/resources/mapper/asrs/WaitPakinMapper.xml
diff --git a/src/main/resources/mapper/WrkDetlLogMapper.xml b/src/main/resources/mapper/asrs/WrkDetlLogMapper.xml
similarity index 100%
rename from src/main/resources/mapper/WrkDetlLogMapper.xml
rename to src/main/resources/mapper/asrs/WrkDetlLogMapper.xml
diff --git a/src/main/resources/mapper/WrkDetlMapper.xml b/src/main/resources/mapper/asrs/WrkDetlMapper.xml
similarity index 100%
rename from src/main/resources/mapper/WrkDetlMapper.xml
rename to src/main/resources/mapper/asrs/WrkDetlMapper.xml
diff --git a/src/main/resources/mapper/WrkLastnoMapper.xml b/src/main/resources/mapper/asrs/WrkLastnoMapper.xml
similarity index 100%
rename from src/main/resources/mapper/WrkLastnoMapper.xml
rename to src/main/resources/mapper/asrs/WrkLastnoMapper.xml
diff --git a/src/main/resources/mapper/WrkMastLogMapper.xml b/src/main/resources/mapper/asrs/WrkMastLogMapper.xml
similarity index 100%
rename from src/main/resources/mapper/WrkMastLogMapper.xml
rename to src/main/resources/mapper/asrs/WrkMastLogMapper.xml
diff --git a/src/main/resources/mapper/WrkMastMapper.xml b/src/main/resources/mapper/asrs/WrkMastMapper.xml
similarity index 100%
rename from src/main/resources/mapper/WrkMastMapper.xml
rename to src/main/resources/mapper/asrs/WrkMastMapper.xml
diff --git a/src/main/resources/mapper/ConfigMapper.xml b/src/main/resources/mapper/third/ConfigMapper.xml
similarity index 100%
copy from src/main/resources/mapper/ConfigMapper.xml
copy to src/main/resources/mapper/third/ConfigMapper.xml

--
Gitblit v1.9.1