Kaynağa Gözat

新天龙多数据源更新

pruple_boy 2 yıl önce
ebeveyn
işleme
50ef878376

+ 92 - 17
mjava-xintianlong/src/main/java/com/malk/xintianlong/controller/HSController.java

@@ -24,6 +24,7 @@ import com.malk.xintianlong.service.HSService;
 import lombok.extern.slf4j.Slf4j;
 import org.apache.commons.lang3.StringUtils;
 import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.beans.factory.annotation.Qualifier;
 import org.springframework.data.domain.Page;
 import org.springframework.data.domain.PageRequest;
 import org.springframework.data.domain.Pageable;
@@ -274,8 +275,13 @@ public class HSController {
     }
 
 
+    @Qualifier("primaryHJDao")
     @Autowired
-    private HSViewDao hsOrderPlanDao;
+    private HSViewDao hsOrderPlanDao_HJ;
+
+    @Qualifier("slaveJTDao")
+    @Autowired
+    private com.malk.xintianlong.repository.dao.slave.HSViewDao hsOrderPlanDao_JT;
 
     /**
      * 查询生产计划
@@ -293,19 +299,19 @@ public class HSController {
         if (UtilMap.isNotBlankString(data, "startTime") && UtilMap.isNotBlankString(data, "endTime")) {
             Date sTime = new Date(UtilMap.getLong(data, "startTime"));
             Date eTime = new Date(UtilMap.getLong(data, "endTime"));
-            page = hsOrderPlanDao.queryOrderPlan(sTime, eTime, sOrderNo, pageable);
-            total = hsOrderPlanDao.queryOrderPlan_sum(sTime, eTime, sOrderNo);
+            page = hsOrderPlanDao_HJ.queryOrderPlan(sTime, eTime, sOrderNo, pageable);
+            total = hsOrderPlanDao_HJ.queryOrderPlan_sum(sTime, eTime, sOrderNo);
         } else if (UtilMap.isNotBlankString(data, "startTime")) {
             Date sTime = new Date(UtilMap.getLong(data, "startTime"));
-            page = hsOrderPlanDao.queryOrderPlan_start(sTime, sOrderNo, pageable);
-            total = hsOrderPlanDao.queryOrderPlan_start_sum(sTime, sOrderNo);
+            page = hsOrderPlanDao_HJ.queryOrderPlan_start(sTime, sOrderNo, pageable);
+            total = hsOrderPlanDao_HJ.queryOrderPlan_start_sum(sTime, sOrderNo);
         } else if (UtilMap.isNotBlankString(data, "endTime")) {
             Date eTime = new Date(UtilMap.getLong(data, "endTime"));
-            page = hsOrderPlanDao.queryOrderPlan_end(eTime, sOrderNo, pageable);
-            total = hsOrderPlanDao.queryOrderPlan_end_sum(eTime, sOrderNo);
+            page = hsOrderPlanDao_HJ.queryOrderPlan_end(eTime, sOrderNo, pageable);
+            total = hsOrderPlanDao_HJ.queryOrderPlan_end_sum(eTime, sOrderNo);
         } else {
-            page = hsOrderPlanDao.queryOrderPlan(sOrderNo, pageable);
-            total = hsOrderPlanDao.queryOrderPlan_sum(sOrderNo);
+            page = hsOrderPlanDao_HJ.queryOrderPlan(sOrderNo, pageable);
+            total = hsOrderPlanDao_HJ.queryOrderPlan_sum(sOrderNo);
         }
         Map result = YDR.formatPage(page);
         result.put("sum_total", UtilNumber.formatPrecision(total)); // 投入数量合计
@@ -327,19 +333,88 @@ public class HSController {
         if (UtilMap.isNotBlankString(data, "startTime") && UtilMap.isNotBlankString(data, "endTime")) {
             Date sTime = new Date(UtilMap.getLong(data, "startTime"));
             Date eTime = new Date(UtilMap.getLong(data, "endTime"));
-            page = hsOrderPlanDao.queryStoreWarehouse(sTime, eTime, sStoreInNo, pageable);
-            total = hsOrderPlanDao.queryStoreWarehouse(sTime, eTime, sStoreInNo);
+            page = hsOrderPlanDao_HJ.queryStoreWarehouse(sTime, eTime, sStoreInNo, pageable);
+            total = hsOrderPlanDao_HJ.queryStoreWarehouse(sTime, eTime, sStoreInNo);
+        } else if (UtilMap.isNotBlankString(data, "startTime")) {
+            Date sTime = new Date(UtilMap.getLong(data, "startTime"));
+            page = hsOrderPlanDao_HJ.queryStoreWarehouse_start(sTime, sStoreInNo, pageable);
+            total = hsOrderPlanDao_HJ.queryStoreWarehouse_start(sTime, sStoreInNo);
+        } else if (UtilMap.isNotBlankString(data, "endTime")) {
+            Date eTime = new Date(UtilMap.getLong(data, "endTime"));
+            page = hsOrderPlanDao_HJ.queryStoreWarehouse_end(eTime, sStoreInNo, pageable);
+            total = hsOrderPlanDao_HJ.queryStoreWarehouse_end(eTime, sStoreInNo);
+        } else {
+            page = hsOrderPlanDao_HJ.queryStoreWarehouse(sStoreInNo, pageable);
+            total = hsOrderPlanDao_HJ.queryStoreWarehouse(sStoreInNo);
+        }
+        Map result = YDR.formatPage(page);
+        result.put("sum_total", UtilNumber.formatPrecision(total * 100)); // 入库数量合计
+        return McR.success(BaseDto.jsonFormatDateTime(result));
+    }
+
+    /**
+     * 查询生产计划2
+     */
+    @PostMapping("view/queryOrderPlan2")
+    McR queryOrderPlan2(@RequestBody Map data) {
+
+        log.info("查询生产计划2, {}", data);
+
+        String sOrderNo = UtilMap.getString(data, "sOrderNo");
+        Pageable pageable = PageRequest.of(UtilMap.getInt(data, "page") - 1, UtilMap.getInt(data, "size"));
+
+        Page page;
+        double total;
+        if (UtilMap.isNotBlankString(data, "startTime") && UtilMap.isNotBlankString(data, "endTime")) {
+            Date sTime = new Date(UtilMap.getLong(data, "startTime"));
+            Date eTime = new Date(UtilMap.getLong(data, "endTime"));
+            page = hsOrderPlanDao_JT.queryOrderPlan(sTime, eTime, sOrderNo, pageable);
+            total = hsOrderPlanDao_JT.queryOrderPlan_sum(sTime, eTime, sOrderNo);
+        } else if (UtilMap.isNotBlankString(data, "startTime")) {
+            Date sTime = new Date(UtilMap.getLong(data, "startTime"));
+            page = hsOrderPlanDao_JT.queryOrderPlan_start(sTime, sOrderNo, pageable);
+            total = hsOrderPlanDao_JT.queryOrderPlan_start_sum(sTime, sOrderNo);
+        } else if (UtilMap.isNotBlankString(data, "endTime")) {
+            Date eTime = new Date(UtilMap.getLong(data, "endTime"));
+            page = hsOrderPlanDao_JT.queryOrderPlan_end(eTime, sOrderNo, pageable);
+            total = hsOrderPlanDao_JT.queryOrderPlan_end_sum(eTime, sOrderNo);
+        } else {
+            page = hsOrderPlanDao_JT.queryOrderPlan(sOrderNo, pageable);
+            total = hsOrderPlanDao_JT.queryOrderPlan_sum(sOrderNo);
+        }
+        Map result = YDR.formatPage(page);
+        result.put("sum_total", UtilNumber.formatPrecision(total)); // 投入数量合计
+        return McR.success(BaseDto.jsonFormatDateTime(result));
+    }
+
+    /**
+     * 查询成品库存
+     */
+    @PostMapping("view/queryStoreWarehouse2")
+    McR queryStoreWarehouse2(@RequestBody Map data) {
+
+        log.info("查询成品库存2, {}", data);
+        String sStoreInNo = UtilMap.getString(data, "sStoreInNo");
+        Pageable pageable = PageRequest.of(UtilMap.getInt(data, "page") - 1, UtilMap.getInt(data, "size"));
+
+        Page page;
+        double total;
+        if (UtilMap.isNotBlankString(data, "startTime") && UtilMap.isNotBlankString(data, "endTime")) {
+            Date sTime = new Date(UtilMap.getLong(data, "startTime"));
+            Date eTime = new Date(UtilMap.getLong(data, "endTime"));
+            page = hsOrderPlanDao_JT.queryStoreWarehouse(sTime, eTime, sStoreInNo, pageable);
+            total = hsOrderPlanDao_JT.queryStoreWarehouse(sTime, eTime, sStoreInNo);
         } else if (UtilMap.isNotBlankString(data, "startTime")) {
             Date sTime = new Date(UtilMap.getLong(data, "startTime"));
-            page = hsOrderPlanDao.queryStoreWarehouse_start(sTime, sStoreInNo, pageable);
-            total = hsOrderPlanDao.queryStoreWarehouse_start(sTime, sStoreInNo);
+            page = hsOrderPlanDao_JT.queryStoreWarehouse_start(sTime, sStoreInNo, pageable);
+            total = hsOrderPlanDao_JT.queryStoreWarehouse_start(sTime, sStoreInNo);
         } else if (UtilMap.isNotBlankString(data, "endTime")) {
             Date eTime = new Date(UtilMap.getLong(data, "endTime"));
-            page = hsOrderPlanDao.queryStoreWarehouse_end(eTime, sStoreInNo, pageable);
-            total = hsOrderPlanDao.queryStoreWarehouse_end(eTime, sStoreInNo);
+            page = hsOrderPlanDao_JT.queryStoreWarehouse_end(eTime, sStoreInNo, pageable);
+            total = hsOrderPlanDao_JT.queryStoreWarehouse_end(eTime, sStoreInNo);
         } else {
-            page = hsOrderPlanDao.queryStoreWarehouse(sStoreInNo, pageable);
-            total = hsOrderPlanDao.queryStoreWarehouse(sStoreInNo);
+            page = hsOrderPlanDao_JT.queryStoreWarehouse(sStoreInNo, pageable);
+            total = hsOrderPlanDao_JT.queryStoreWarehouse(sStoreInNo);
         }
         Map result = YDR.formatPage(page);
         result.put("sum_total", UtilNumber.formatPrecision(total * 100)); // 入库数量合计

+ 2 - 0
mjava-xintianlong/src/main/java/com/malk/xintianlong/repository/dao/primary/HSApproveRecordDao.java

@@ -1,6 +1,7 @@
 package com.malk.xintianlong.repository.dao.primary;
 
 import com.malk.xintianlong.repository.entity.primary.HSApproveRecordPo;
+import org.springframework.context.annotation.Primary;
 import org.springframework.data.jpa.repository.JpaRepository;
 import org.springframework.data.jpa.repository.Modifying;
 import org.springframework.data.jpa.repository.Query;
@@ -8,6 +9,7 @@ import org.springframework.data.jpa.repository.Query;
 import javax.transaction.Transactional;
 import java.util.List;
 
+@Primary
 @Transactional
 public interface HSApproveRecordDao extends JpaRepository<HSApproveRecordPo, Long> {
 

+ 2 - 0
mjava-xintianlong/src/main/java/com/malk/xintianlong/repository/dao/primary/HSViewDao.java

@@ -5,6 +5,7 @@ import org.springframework.data.domain.Page;
 import org.springframework.data.domain.Pageable;
 import org.springframework.data.jpa.repository.Query;
 import org.springframework.data.repository.CrudRepository;
+import org.springframework.stereotype.Repository;
 
 import javax.transaction.Transactional;
 import java.util.Date;
@@ -13,6 +14,7 @@ import java.util.Map;
 /**
  * 视图表查询 [通过Map实现, 无需定义实体, 主键设置Long即可]
  */
+@Repository("primaryHJDao")
 @Transactional
 public interface HSViewDao extends CrudRepository<JpaMap, Long> {
     /**

+ 80 - 0
mjava-xintianlong/src/main/java/com/malk/xintianlong/repository/dao/slave/HSViewDao.java

@@ -0,0 +1,80 @@
+package com.malk.xintianlong.repository.dao.slave;
+
+import com.malk.repository.entity.slave.JpaMapSlave;
+import org.springframework.data.domain.Page;
+import org.springframework.data.domain.Pageable;
+import org.springframework.data.jpa.repository.Query;
+import org.springframework.data.repository.CrudRepository;
+import org.springframework.stereotype.Repository;
+
+import javax.transaction.Transactional;
+import java.util.Date;
+import java.util.Map;
+
+/**
+ * 视图表查询 [通过Map实现, 无需定义实体, 主键设置Long即可]
+ */
+@Repository("slaveJTDao")
+@Transactional
+public interface HSViewDao extends CrudRepository<JpaMapSlave, Long> {
+
+    /**
+     * 查询生产计划
+     */
+    @Query(value = "select * from vwpbCommonDataOrderPlan where dPlanDate >= ?1 and dPlanDate <= ?2 and sOrderNo like LTRIM('%' + ?3 + '%') order by dPlanDate desc", nativeQuery = true)
+    Page<Map> queryOrderPlan(Date start, Date end, String sOrderNo, Pageable pageable);
+
+    @Query(value = "select * from vwpbCommonDataOrderPlan where dPlanDate >= ?1 and sOrderNo like LTRIM('%' + ?2 + '%') order by dPlanDate desc", nativeQuery = true)
+    Page<Map> queryOrderPlan_start(Date end, String sOrderNo, Pageable pageable);
+
+    @Query(value = "select * from vwpbCommonDataOrderPlan where dPlanDate <= ?1 and sOrderNo like LTRIM('%' + ?2 + '%') order by dPlanDate desc", nativeQuery = true)
+    Page<Map> queryOrderPlan_end(Date start, String sOrderNo, Pageable pageable);
+
+    @Query(value = "select * from vwpbCommonDataOrderPlan where sOrderNo like LTRIM('%' + ?1 + '%') order by dPlanDate desc", nativeQuery = true)
+    Page<Map> queryOrderPlan(String sOrderNo, Pageable pageable);
+
+    /**
+     * 查询生产计划_数量
+     */
+    @Query(value = "select sum(trnQty) from vwpbCommonDataOrderPlan where dPlanDate >= ?1 and dPlanDate <= ?2 and sOrderNo like LTRIM('%' + ?3 + '%')", nativeQuery = true)
+    double queryOrderPlan_sum(Date start, Date end, String sOrderNo);
+
+    @Query(value = "select sum(trnQty) from vwpbCommonDataOrderPlan where dPlanDate >= ?1 and sOrderNo like LTRIM('%' + ?2 + '%')", nativeQuery = true)
+    double queryOrderPlan_start_sum(Date end, String sOrderNo);
+
+    @Query(value = "select sum(trnQty) from vwpbCommonDataOrderPlan where dPlanDate <= ?1 and sOrderNo like LTRIM('%' + ?2 + '%')", nativeQuery = true)
+    double queryOrderPlan_end_sum(Date start, String sOrderNo);
+
+    @Query(value = "select sum(trnQty) from vwpbCommonDataOrderPlan where sOrderNo like LTRIM('%' + ?1 + '%')", nativeQuery = true)
+    double queryOrderPlan_sum(String sOrderNo);
+
+    /**
+     * 查询成品库存
+     */
+    @Query(value = "select * from vwmmSTInStoreQuery where tStoreInTime >= ?1 and tStoreInTime <= ?2 and sStoreInNo like LTRIM('%' + ?3 + '%') order by tStoreInTime desc", nativeQuery = true)
+    Page<Map> queryStoreWarehouse(Date start, Date end, String sOrderNo, Pageable pageable);
+
+    @Query(value = "select * from vwmmSTInStoreQuery where tStoreInTime >= ?1 and sStoreInNo like LTRIM('%' + ?2 + '%') order by tStoreInTime desc", nativeQuery = true)
+    Page<Map> queryStoreWarehouse_start(Date end, String sOrderNo, Pageable pageable);
+
+    @Query(value = "select * from vwmmSTInStoreQuery where tStoreInTime <= ?1 and sStoreInNo like LTRIM('%' + ?2 + '%') order by tStoreInTime desc", nativeQuery = true)
+    Page<Map> queryStoreWarehouse_end(Date start, String sOrderNo, Pageable pageable);
+
+    @Query(value = "select * from vwmmSTInStoreQuery where sStoreInNo like LTRIM('%' + ?1 + '%') order by tStoreInTime desc", nativeQuery = true)
+    Page<Map> queryStoreWarehouse(String sStoreInNo, Pageable pageable);
+
+    /**
+     * 查询成品库存_数量
+     */
+    @Query(value = "select sum(nInQty) from vwmmSTInStoreQuery where tStoreInTime >= ?1 and tStoreInTime <= ?2 and sStoreInNo like LTRIM('%' + ?3 + '%')", nativeQuery = true)
+    double queryStoreWarehouse(Date start, Date end, String sOrderNo);
+
+    @Query(value = "select sum(nInQty)  from vwmmSTInStoreQuery where tStoreInTime >= ?1 and sStoreInNo like LTRIM('%' + ?2 + '%')", nativeQuery = true)
+    double queryStoreWarehouse_start(Date end, String sOrderNo);
+
+    @Query(value = "select sum(nInQty)  from vwmmSTInStoreQuery where tStoreInTime <= ?1 and sStoreInNo like LTRIM('%' + ?2 + '%')", nativeQuery = true)
+    double queryStoreWarehouse_end(Date start, String sOrderNo);
+
+    @Query(value = "select sum(nInQty)  from vwmmSTInStoreQuery where sStoreInNo like LTRIM('%' + ?1 + '%')", nativeQuery = true)
+    double queryStoreWarehouse(String sStoreInNo);
+}

+ 11 - 1
mjava-xintianlong/src/main/resources/application-prod.yml

@@ -7,7 +7,7 @@ server:
 # condition
 spel:
   scheduling: false       # 定时任务是否执行
-  multiSource: false      # 是否多数据源配置
+  multiSource: true       # 是否多数据源配置
 
 spring:
   # database
@@ -25,6 +25,16 @@ spring:
     url: jdbc:sqlserver://122.224.41.74:4335;SelectMethod=cursor;DatabaseName=HSDyeingERP
     username: dingding
     password: dd12345678
+    # 灏宇
+    primary:
+      username: dingding
+      password: dd12345678
+      jdbc-url: jdbc:sqlserver://122.224.41.74:4335;SelectMethod=cursor;DatabaseName=HSDyeingERP
+    # 金塔
+    slave:
+      username: dingding
+      password: dd12345678
+      jdbc-url: jdbc:sqlserver://122.224.41.74:4336;SelectMethod=cursor;DatabaseName=HSDyeingERP
     # JPA
     jpa:
       database: sql_server

+ 11 - 1
mjava-xintianlong/target/classes/application-prod.yml

@@ -7,7 +7,7 @@ server:
 # condition
 spel:
   scheduling: false       # 定时任务是否执行
-  multiSource: false      # 是否多数据源配置
+  multiSource: true       # 是否多数据源配置
 
 spring:
   # database
@@ -25,6 +25,16 @@ spring:
     url: jdbc:sqlserver://122.224.41.74:4335;SelectMethod=cursor;DatabaseName=HSDyeingERP
     username: dingding
     password: dd12345678
+    # 灏宇
+    primary:
+      username: dingding
+      password: dd12345678
+      jdbc-url: jdbc:sqlserver://122.224.41.74:4335;SelectMethod=cursor;DatabaseName=HSDyeingERP
+    # 金塔
+    slave:
+      username: dingding
+      password: dd12345678
+      jdbc-url: jdbc:sqlserver://122.224.41.74:4336;SelectMethod=cursor;DatabaseName=HSDyeingERP
     # JPA
     jpa:
       database: sql_server

+ 62 - 0
mjava-xintianlong/target/generated-sources/java/com/malk/xintianlong/repository/entity/primary/QHSApproveRecordPo.java

@@ -0,0 +1,62 @@
+package com.malk.xintianlong.repository.entity.primary;
+
+import static com.querydsl.core.types.PathMetadataFactory.*;
+
+import com.querydsl.core.types.dsl.*;
+
+import com.querydsl.core.types.PathMetadata;
+import javax.annotation.Generated;
+import com.querydsl.core.types.Path;
+
+
+/**
+ * QHSApproveRecordPo is a Querydsl query type for HSApproveRecordPo
+ */
+@Generated("com.querydsl.codegen.EntitySerializer")
+public class QHSApproveRecordPo extends EntityPathBase<HSApproveRecordPo> {
+
+    private static final long serialVersionUID = -856519298L;
+
+    public static final QHSApproveRecordPo hSApproveRecordPo = new QHSApproveRecordPo("hSApproveRecordPo");
+
+    public final com.malk.base.QBasePo _super = new com.malk.base.QBasePo(this);
+
+    public final StringPath approveResult = createString("approveResult");
+
+    public final StringPath corpType = createString("corpType");
+
+    //inherited
+    public final DateTimePath<java.util.Date> createTime = _super.createTime;
+
+    public final StringPath formType = createString("formType");
+
+    public final StringPath hsResponse = createString("hsResponse");
+
+    //inherited
+    public final NumberPath<Long> id = _super.id;
+
+    public final StringPath orderCode = createString("orderCode");
+
+    public final StringPath processInstanceId = createString("processInstanceId");
+
+    public final StringPath proposerCode = createString("proposerCode");
+
+    public final StringPath remark = createString("remark");
+
+    //inherited
+    public final DateTimePath<java.util.Date> updateTime = _super.updateTime;
+
+    public QHSApproveRecordPo(String variable) {
+        super(HSApproveRecordPo.class, forVariable(variable));
+    }
+
+    public QHSApproveRecordPo(Path<? extends HSApproveRecordPo> path) {
+        super(path.getType(), path.getMetadata());
+    }
+
+    public QHSApproveRecordPo(PathMetadata metadata) {
+        super(HSApproveRecordPo.class, metadata);
+    }
+
+}
+

+ 4 - 3
mjava/src/main/java/com/malk/config/JpaConfiguration.java

@@ -16,15 +16,16 @@ import org.springframework.data.jpa.repository.config.EnableJpaRepositories;
  * 4. Specification: Predicate 与 CriteriaBuilder 组合 [谓词, 需要依赖于实体]
  * 5. QueryDSL: 基于ORM框架以及SQL之上的一个通用的查询框架, 分页, 关联查询原生支持 [查询框架] (通过查询关联, 而不是如 @OneToMany 等建立表关联)
  * 6. DSL: 项目在 compile 会执行 apt-maven-plugin 插件, 将 @Entity 注解类, 添加 Q 前缀, 存放到 target 下 generated-source 目录
- * 7. 配置: 扫描基础路径, 涉及子项目也能注册到, 避免启动报错. 子项目 Boot 配置 @SpringBootApplication(scanBasePackages = {"com.malk"})
+ * 7. 配置: 扫描基础路径, 涉及子项目也能注册到, 避免启动报错. 子项目 Boot 配置 @SpringBootApplication(scanBasePackages = {"com.mcli"})
  * 8. 查询: 使用native,查询列不匹配实体属性,会报错The column name xxx is not valid,返回Map可解决 (Map是Jpa的TupleBackedMap, 通过try取值)
  * 9. 单数据源切换: 在dao与entity均添加mutual作为公共模块, 单数据源下服务于JpaConfiguration, 若是多数据源与PrimaryConfig一起作为主数据源配置
  * 10 主子项目, 在单数据源情况下, 扫描全部. [需要注意的是, 在多数据源下同名dao是可以通过指定数据源使用, 此时若开启单数据源启动报错, 会扫描全部]
  */
 @ConditionalOnProperty(name = "spel.multiSource", havingValue = "false")
 @Configuration
-@EnableJpaRepositories(basePackages = {"com.malk"})
-@EntityScan(basePackages = {"com.malk"})
+// 单数据源, 扫描子项目与主项目primary [子项目可以访问到主项目primary]
+@EnableJpaRepositories(basePackages = {"com.malk.*.repository.dao", "com.malk.repository.dao.primary"})
+@EntityScan(basePackages = {"com.malk.*.repository.entity", "com.malk.repository.entity.primary"})
 public class JpaConfiguration {
 
     @Bean

+ 2 - 0
mjava/src/main/java/com/malk/config/mutilSource/DataSourceConfig.java

@@ -38,4 +38,6 @@ public class DataSourceConfig {
     public DataSource slaveDataSource() {
         return DataSourceBuilder.create().build();
     }
+
+
 }

+ 3 - 5
mjava/src/main/java/com/malk/config/mutilSource/PrimaryConfig.java

@@ -32,8 +32,7 @@ import java.util.Objects;
 @EnableJpaRepositories(
         entityManagerFactoryRef = "entityManagerFactoryPrimary", // 配置连接工厂 entityManagerFactory
         transactionManagerRef = "transactionManagerPrimary", // 配置事物管理器  transactionManager
-        basePackages = {"com.malk.repository.dao.primary", "com.malk.repository.dao.mutual",
-                "com.malk.*.com.malk.rongzhi.repository.dao.primary", "com.malk.*.com.malk.rongzhi.repository.dao.mutual"}  // dao层配置主数据&公共所在目录
+        basePackages = {"com.malk.repository.dao.primary", "com.malk.*.repository.dao.primary", "com.malk.base"}  // dao层配置主数据 & 公共所在目录 [子项目可以访问到主项目primary]
 )
 public class PrimaryConfig {
 
@@ -58,9 +57,8 @@ public class PrimaryConfig {
     public LocalContainerEntityManagerFactoryBean entityManagerFactoryBean(EntityManagerFactoryBuilder builder) {
         return builder.dataSource(dataSourcePrimary)
                 .properties(getVendorProperties())
-                // 设置实体类所在目录: 包含主数据源与公共
-                .packages("com.malk.com.malk.rongzhi.repository.entity.primary", "com.malk.com.malk.rongzhi.repository.entity.mutual",
-                        "com.malk.*.com.malk.rongzhi.repository.entity.primary", "com.malk.*.com.malk.rongzhi.repository.entity.mutual")
+                // 设置实体类所在目录: 包含主数据源与公共 [子项目可以访问到主项目primary]
+                .packages("com.malk.repository.entity.primary", "com.malk.*.repository.entity.primary", "com.malk.base")
                 // 持久化单元名称,当存在多个EntityManagerFactory时,需要制定此名称
                 .persistenceUnit("primaryPersistenceUnit")
                 .build();

+ 3 - 3
mjava/src/main/java/com/malk/config/mutilSource/SlaveConfig.java

@@ -23,7 +23,7 @@ import java.util.Objects;
 /**
  * 从数据源配置
  * -
- * -  主子项目, 在多数据源情况下, 子项目需要匹配主项目目录结构, 且符合命名规范. 配置对应扫描 EnableJpaRepositories / EntityScan 添加子项目路径
+ * 主子项目, 在多数据源情况下, 子项目需要匹配主项目目录结构, 且符合命名规范. 配置对应扫描 EnableJpaRepositories / EntityScan 添加子项目路径
  */
 @ConditionalOnProperty(name = "spel.multiSource", havingValue = "true")
 @Configuration
@@ -31,7 +31,7 @@ import java.util.Objects;
 @EnableJpaRepositories(
         entityManagerFactoryRef = "entityManagerFactorySlave",
         transactionManagerRef = "transactionManagerSlave",
-        basePackages = {"com.malk.repository.dao.slave", "com.malk.*.com.malk.rongzhi.repository.dao.slave"}
+        basePackages = {"com.malk.repository.dao.slave", "com.malk.*.repository.dao.slave"}
 )
 public class SlaveConfig {
 
@@ -55,7 +55,7 @@ public class SlaveConfig {
         return builder.dataSource(dataSourceSlave)
                 .properties(getVendorProperties())
                 // 设置实体类所在目录
-                .packages("com.malk.com.malk.rongzhi.repository.entity.slave", "com.malk.*.com.malk.rongzhi.repository.entity.slave")
+                .packages("com.malk.repository.entity.slave", "com.malk.*.repository.entity.slave")
                 // 持久化单元名称,当存在多个EntityManagerFactory时,需要制定此名称
                 .persistenceUnit("slavePersistenceUnit")
                 .build();

+ 15 - 0
mjava/src/main/java/com/malk/repository/entity/slave/JpaMapSlave.java

@@ -0,0 +1,15 @@
+package com.malk.repository.entity.slave;
+
+import com.malk.base.JpaMap;
+
+import javax.persistence.Entity;
+
+/**
+ * 配置参考 JpaMap
+ * -
+ * slave无公共类, 需单独添加. 否则实体无法识别, 导致启动异常
+ */
+@Entity
+public class JpaMapSlave extends JpaMap {
+
+}

+ 40 - 0
mjava/target/generated-sources/java/com/malk/repository/entity/slave/QJpaMapSlave.java

@@ -0,0 +1,40 @@
+package com.malk.repository.entity.slave;
+
+import static com.querydsl.core.types.PathMetadataFactory.*;
+
+import com.querydsl.core.types.dsl.*;
+
+import com.querydsl.core.types.PathMetadata;
+import javax.annotation.Generated;
+import com.querydsl.core.types.Path;
+
+
+/**
+ * QJpaMapSlave is a Querydsl query type for JpaMapSlave
+ */
+@Generated("com.querydsl.codegen.EntitySerializer")
+public class QJpaMapSlave extends EntityPathBase<JpaMapSlave> {
+
+    private static final long serialVersionUID = -1301758614L;
+
+    public static final QJpaMapSlave jpaMapSlave = new QJpaMapSlave("jpaMapSlave");
+
+    public final com.malk.base.QJpaMap _super = new com.malk.base.QJpaMap(this);
+
+    //inherited
+    public final StringPath id = _super.id;
+
+    public QJpaMapSlave(String variable) {
+        super(JpaMapSlave.class, forVariable(variable));
+    }
+
+    public QJpaMapSlave(Path<? extends JpaMapSlave> path) {
+        super(path.getType(), path.getMetadata());
+    }
+
+    public QJpaMapSlave(PathMetadata metadata) {
+        super(JpaMapSlave.class, metadata);
+    }
+
+}
+

+ 1 - 0
mjava/target/maven-status/maven-compiler-plugin/compile/default-compile/createdFiles.lst

@@ -114,6 +114,7 @@ com/malk/test/dto/User.class
 com/malk/config/JpaConfiguration.class
 com/malk/Util/UtilHttp$1.class
 com/malk/service/dingtalk/impl/DDImplService.class
+com/malk/repository/entity/slave/QJpaMapSlave.class
 com/malk/server/dingtalk/DDFormComponentDto.class
 com/malk/service/aliwork/impl/YDServiceImpl.class
 com/malk/service/aliwork/YDService.class

+ 2 - 2
pom.xml

@@ -48,7 +48,7 @@
         <mssql-jdbc.version>6.4.0.jre8</mssql-jdbc.version>
         <mongo-java-driver.version>3.12.7</mongo-java-driver.version>
         <!--        <ojdbc6.version>11.2.0.4</ojdbc6.version>-->
-        <!-- jsp -->`
+        <!-- jsp -->
         <tomcat-embed-jasper.version>9.0.41</tomcat-embed-jasper.version>
         <jstl.version>1.2</jstl.version>
         <javax.servlet-api.version>4.0.1</javax.servlet-api.version>
@@ -61,7 +61,7 @@
         <!-- 网页转pdf -->
         <flying-saucer-pdf-itext5.version>9.0.3</flying-saucer-pdf-itext5.version>
         <!-- 不执行单元测试,也不编译测试类 -->
-        <skipTests>true</skipTests>`
+        <skipTests>true</skipTests>
         <!-- 不执行单元测试,但会编译测试类,并在target/test-classes目录下生成相应的class -->
         <maven.test.skip>true</maven.test.skip>
     </properties>