diff --git a/muyu-modules/muyu-data-source/muyu-data-source-client/pom.xml b/muyu-modules/muyu-data-source/muyu-data-source-client/pom.xml index 0fc701a..658e7c7 100644 --- a/muyu-modules/muyu-data-source/muyu-data-source-client/pom.xml +++ b/muyu-modules/muyu-data-source/muyu-data-source-client/pom.xml @@ -22,5 +22,11 @@ muyu-data-source-remote 3.6.3 + + com.muyu + muyu-rule_engine-common + 3.6.3 + compile + diff --git a/muyu-modules/muyu-data-source/muyu-data-source-client/src/main/java/com/muyu/data/source/client/config/SourceClientConfig.java b/muyu-modules/muyu-data-source/muyu-data-source-client/src/main/java/com/muyu/data/source/client/config/SourceClientConfig.java index 3d0776e..1bc8e11 100644 --- a/muyu-modules/muyu-data-source/muyu-data-source-client/src/main/java/com/muyu/data/source/client/config/SourceClientConfig.java +++ b/muyu-modules/muyu-data-source/muyu-data-source-client/src/main/java/com/muyu/data/source/client/config/SourceClientConfig.java @@ -1,5 +1,22 @@ package com.muyu.data.source.client.config; +import com.muyu.common.core.domain.Result; +import com.muyu.data.source.domain.Children; +import com.muyu.data.source.domain.DataSource; +import com.muyu.data.source.domain.DatabaseType; +import com.muyu.data.source.remote.RemoteChildrenService; +import com.muyu.data.source.remote.RemoteDataSourceService; +import com.muyu.data.source.remote.RemoteDataTypeService; +import com.muyu.ruleEngine.model.DataModel; +import java.sql.Connection; +import java.sql.DriverManager; +import java.sql.PreparedStatement; +import java.sql.ResultSet; +import java.sql.ResultSetMetaData; +import java.sql.SQLException; +import java.util.ArrayList; +import java.util.List; +import org.springframework.beans.factory.annotation.Autowired; import org.springframework.context.annotation.ComponentScan; import org.springframework.context.annotation.Import; @@ -12,5 +29,57 @@ import org.springframework.context.annotation.Import; @ComponentScan @Import(value = {SourceClientRunner.class}) public class SourceClientConfig { +@Autowired + private RemoteDataSourceService remoteDataSourceService; +@Autowired + private RemoteDataTypeService remoteDataTypeService; +@Autowired + private RemoteChildrenService remoteChildrenService; + + public List> getDataModel(Long id) { + List> list=new ArrayList<>(); + Result childrenResult = remoteChildrenService.selectChildren(id); + Children children = childrenResult.getData(); + Result dataSourceResult = remoteDataSourceService.getDataSourceById(children.getAssetId()); + DataSource dataSource = dataSourceResult.getData(); + Result databaseTypeResult = remoteDataTypeService.getDataType(dataSource.getDataType()); + DatabaseType databaseType = databaseTypeResult.getData(); + String jdbcUrl=databaseType.getUrlPre()+dataSource.getHost()+":"+dataSource.getPort()+"/"+dataSource.getDatabaseName()+"?"+dataSource.getConnectionParam(); + String sql=""; + if ("mysql".equals(dataSource.getDataType())){ + sql="select * from" +children.getName(); + + } + try { + Class.forName(databaseType.getDriverManager()); + Connection connection = DriverManager.getConnection(jdbcUrl, dataSource.getUser(), dataSource.getPassword()); + PreparedStatement ps = connection.prepareStatement(sql); + ResultSet rs = ps.executeQuery(); + ResultSetMetaData metaData = rs.getMetaData(); + List dataModelList = new ArrayList<>(); + while (rs.next()){ + for (int i = 1; i<= metaData.getColumnCount(); i++) { + String columnName = metaData.getColumnName(i); + Object value = rs.getObject(i); + String columnTypeName = metaData.getColumnTypeName(i); + String columnClassName = metaData.getColumnClassName(i); + DataModel dataModel = DataModel.builder() + .key(columnName) + .value(value) + .sourceType(columnTypeName) + .processType(columnClassName) + .processClass(Class.forName(columnClassName)) + .build(); + dataModelList.add(dataModel); + } + list.add(dataModelList); + + } + + } catch (ClassNotFoundException | SQLException e) { + throw new RuntimeException(e); + } + return list; + } } diff --git a/muyu-modules/muyu-data-source/muyu-data-source-client/src/main/java/com/muyu/data/source/client/config/SourceClientRunner.java b/muyu-modules/muyu-data-source/muyu-data-source-client/src/main/java/com/muyu/data/source/client/config/SourceClientRunner.java index afea6de..5ff9053 100644 --- a/muyu-modules/muyu-data-source/muyu-data-source-client/src/main/java/com/muyu/data/source/client/config/SourceClientRunner.java +++ b/muyu-modules/muyu-data-source/muyu-data-source-client/src/main/java/com/muyu/data/source/client/config/SourceClientRunner.java @@ -43,25 +43,25 @@ public class SourceClientRunner implements ApplicationRunner { DatabaseType databaseType = databaseTypeResult.getData(); DataSourceConfig.init(dataSource,databaseType); }); - Long key = dataSourceList.get(0).getId(); - log.info("查看连接池"); - DataSourceConfig.size(key); - Thread.sleep(500); - log.info("取出一个连接,查看连接池"); - Connection connection = DataSourceConfig.getConnection(key); - DataSourceConfig.size(key); - Thread.sleep(500); - JDBCConcreteClass jdbcConcreteClass = new JDBCConcreteClass(); - ResultSet resultSet = jdbcConcreteClass.getResultSet(connection, "select * from engine_maintenance"); - ResultSetMetaData metaData = resultSet.getMetaData(); - for (int i = 1; i <= metaData.getColumnCount(); i++) { - log.info("字段名称:{}",metaData.getColumnClassName(i)); - log.info("数据库类型:{}",metaData.getColumnTypeName(i)); - log.info("java类型:{}",metaData.getColumnClassName(i)); - } - - log.info("返回一个连接,查看连接池"); - DataSourceConfig.returnConn(connection); - DataSourceConfig.size(key); +// Long key = dataSourceList.get(0).getId(); +// log.info("查看连接池"); +// DataSourceConfig.size(key); +// Thread.sleep(500); +// log.info("取出一个连接,查看连接池"); +// Connection connection = DataSourceConfig.getConnection(key); +// DataSourceConfig.size(key); +// Thread.sleep(500); +// JDBCConcreteClass jdbcConcreteClass = new JDBCConcreteClass(); +// ResultSet resultSet = jdbcConcreteClass.getResultSet(connection, "select * from engine_maintenance"); +// ResultSetMetaData metaData = resultSet.getMetaData(); +// for (int i = 1; i <= metaData.getColumnCount(); i++) { +// log.info("字段名称:{}",metaData.getColumnClassName(i)); +// log.info("数据库类型:{}",metaData.getColumnTypeName(i)); +// log.info("java类型:{}",metaData.getColumnClassName(i)); +// } +// +// log.info("返回一个连接,查看连接池"); +// DataSourceConfig.returnConn(connection); +// DataSourceConfig.size(key); } } diff --git a/muyu-modules/muyu-data-source/muyu-data-source-remote/src/main/java/com/muyu/data/source/remote/RemoteChildrenService.java b/muyu-modules/muyu-data-source/muyu-data-source-remote/src/main/java/com/muyu/data/source/remote/RemoteChildrenService.java new file mode 100644 index 0000000..0c2737b --- /dev/null +++ b/muyu-modules/muyu-data-source/muyu-data-source-remote/src/main/java/com/muyu/data/source/remote/RemoteChildrenService.java @@ -0,0 +1,25 @@ +package com.muyu.data.source.remote; + +import com.muyu.common.core.constant.ServiceNameConstants; +import com.muyu.common.core.domain.Result; +import com.muyu.data.source.domain.Children; +import com.muyu.data.source.remote.factory.RemoteChildrenFactory; +import org.springframework.cloud.openfeign.FeignClient; +import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.PathVariable; + +/** + * 数据源类型远程调用 + * + * @author CHX + * on 2024/5/10 星期五 + */ +@FeignClient(contextId = "RemoteChildrenService", + value = ServiceNameConstants.SOURCE_SERVICE, + fallbackFactory = RemoteChildrenFactory.class, + path = "/children" +) +public interface RemoteChildrenService { + @GetMapping("/selectChildren/{id}") + public Result selectChildren(@PathVariable("id") Long id); +} diff --git a/muyu-modules/muyu-data-source/muyu-data-source-remote/src/main/java/com/muyu/data/source/remote/RemoteDataSourceService.java b/muyu-modules/muyu-data-source/muyu-data-source-remote/src/main/java/com/muyu/data/source/remote/RemoteDataSourceService.java index c173116..3a03704 100644 --- a/muyu-modules/muyu-data-source/muyu-data-source-remote/src/main/java/com/muyu/data/source/remote/RemoteDataSourceService.java +++ b/muyu-modules/muyu-data-source/muyu-data-source-remote/src/main/java/com/muyu/data/source/remote/RemoteDataSourceService.java @@ -7,6 +7,7 @@ import com.muyu.data.source.remote.factory.RemoteDataSourceFactory; import java.util.List; import org.springframework.cloud.openfeign.FeignClient; import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.PathVariable; /** * 数据源远程调用 @@ -24,4 +25,7 @@ import org.springframework.web.bind.annotation.GetMapping; public interface RemoteDataSourceService { @GetMapping("getDataSourceList/") public Result> getDataSourceList(); + +@GetMapping("/getDataSourceById/{id}") +public Result getDataSourceById(@PathVariable("id") Long id); } diff --git a/muyu-modules/muyu-data-source/muyu-data-source-remote/src/main/java/com/muyu/data/source/remote/factory/RemoteChildrenFactory.java b/muyu-modules/muyu-data-source/muyu-data-source-remote/src/main/java/com/muyu/data/source/remote/factory/RemoteChildrenFactory.java new file mode 100644 index 0000000..29914a0 --- /dev/null +++ b/muyu-modules/muyu-data-source/muyu-data-source-remote/src/main/java/com/muyu/data/source/remote/factory/RemoteChildrenFactory.java @@ -0,0 +1,25 @@ +package com.muyu.data.source.remote.factory; + +import com.muyu.common.core.domain.Result; +import com.muyu.data.source.domain.Children; +import com.muyu.data.source.remote.RemoteChildrenService; +import org.springframework.cloud.openfeign.FallbackFactory; + +/** + * 熔断 + * + * @author CHX + * on 2024/5/10 星期五 + */ +public class RemoteChildrenFactory implements FallbackFactory { + + @Override + public RemoteChildrenService create(Throwable cause) { + return new RemoteChildrenService() { + @Override + public Result selectChildren(Long id) { + return Result.error(cause.getMessage()); + } + }; + } +} diff --git a/muyu-modules/muyu-data-source/muyu-data-source-remote/src/main/java/com/muyu/data/source/remote/factory/RemoteDataSourceFactory.java b/muyu-modules/muyu-data-source/muyu-data-source-remote/src/main/java/com/muyu/data/source/remote/factory/RemoteDataSourceFactory.java index 3985f75..dcd84ed 100644 --- a/muyu-modules/muyu-data-source/muyu-data-source-remote/src/main/java/com/muyu/data/source/remote/factory/RemoteDataSourceFactory.java +++ b/muyu-modules/muyu-data-source/muyu-data-source-remote/src/main/java/com/muyu/data/source/remote/factory/RemoteDataSourceFactory.java @@ -24,6 +24,11 @@ public class RemoteDataSourceFactory implements FallbackFactory> getDataSourceList() { return Result.error(cause.getMessage()); } + + @Override + public Result getDataSourceById(Long id) { + return Result.error(cause.getMessage()); + } }; } } diff --git a/muyu-modules/muyu-data-source/muyu-data-source-remote/src/main/resources/META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports b/muyu-modules/muyu-data-source/muyu-data-source-remote/src/main/resources/META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports index beed792..72cd8d9 100644 --- a/muyu-modules/muyu-data-source/muyu-data-source-remote/src/main/resources/META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports +++ b/muyu-modules/muyu-data-source/muyu-data-source-remote/src/main/resources/META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports @@ -1,2 +1,3 @@ com.muyu.data.source.remote.factory.RemoteDataSourceFactory com.muyu.data.source.remote.factory.RemoteDataTypeFactory +com.muyu.data.source.remote.factory.RemoteChildrenFactory diff --git a/muyu-modules/muyu-data-source/muyu-data-source-server/src/main/java/com/muyu/data/source/controller/ChildrenController.java b/muyu-modules/muyu-data-source/muyu-data-source-server/src/main/java/com/muyu/data/source/controller/ChildrenController.java index 68d19f8..06e858c 100644 --- a/muyu-modules/muyu-data-source/muyu-data-source-server/src/main/java/com/muyu/data/source/controller/ChildrenController.java +++ b/muyu-modules/muyu-data-source/muyu-data-source-server/src/main/java/com/muyu/data/source/controller/ChildrenController.java @@ -1,5 +1,11 @@ package com.muyu.data.source.controller; +import com.muyu.common.core.domain.Result; +import com.muyu.data.source.domain.Children; +import com.muyu.data.source.service.ChildrenService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.PathVariable; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController; @@ -15,4 +21,12 @@ import org.springframework.web.bind.annotation.RestController; @RequestMapping("/children") public class ChildrenController { + @Autowired + private ChildrenService childrenService; + + @GetMapping("/selectChildren/{id}") + public Result selectChildren(@PathVariable("id") Long id){ + Children children=childrenService.getById(id); + return Result.success(children); + } } diff --git a/muyu-modules/muyu-data-source/muyu-data-source-server/src/main/java/com/muyu/data/source/controller/DataSourceController.java b/muyu-modules/muyu-data-source/muyu-data-source-server/src/main/java/com/muyu/data/source/controller/DataSourceController.java index 2eca105..3776051 100644 --- a/muyu-modules/muyu-data-source/muyu-data-source-server/src/main/java/com/muyu/data/source/controller/DataSourceController.java +++ b/muyu-modules/muyu-data-source/muyu-data-source-server/src/main/java/com/muyu/data/source/controller/DataSourceController.java @@ -203,12 +203,18 @@ public class DataSourceController extends BaseController { return Result.success(countResp); } -/** - * 获取数据实例集合 - */ -@GetMapping("/getDataModel/{id}") - public Result getDataModel(@PathVariable("id")Long id){ - List> dataModelMapList= dataSourceService.getDataModel(id); -return Result.success(dataModelMapList); -} +///** +// * 获取数据实例集合 +// */ +//@GetMapping("/getDataModel/{id}") +// public Result getDataModel(@PathVariable("id")Long id){ +// List> dataModelMapList= dataSourceService.getDataModel(id); +//return Result.success(dataModelMapList); +//} + + @GetMapping("/getDataSourceById/{id}") + public Result getDataSourceById(@PathVariable("id") Long id) { + DataSource dataSource = dataSourceService.getById(id); + return success(dataSource); + } } diff --git a/muyu-modules/muyu-data-source/muyu-data-source-server/src/main/java/com/muyu/data/source/service/DataSourceService.java b/muyu-modules/muyu-data-source/muyu-data-source-server/src/main/java/com/muyu/data/source/service/DataSourceService.java index 111e3d6..3fe7722 100644 --- a/muyu-modules/muyu-data-source/muyu-data-source-server/src/main/java/com/muyu/data/source/service/DataSourceService.java +++ b/muyu-modules/muyu-data-source/muyu-data-source-server/src/main/java/com/muyu/data/source/service/DataSourceService.java @@ -45,5 +45,5 @@ public interface DataSourceService extends IService { Result updTableData(TableData tableData); - List> getDataModel(Long id); +// List> getDataModel(Long id); } diff --git a/muyu-modules/muyu-data-source/muyu-data-source-server/src/main/java/com/muyu/data/source/service/impl/DataSourceServiceImpl.java b/muyu-modules/muyu-data-source/muyu-data-source-server/src/main/java/com/muyu/data/source/service/impl/DataSourceServiceImpl.java index e5a6ad6..68715af 100644 --- a/muyu-modules/muyu-data-source/muyu-data-source-server/src/main/java/com/muyu/data/source/service/impl/DataSourceServiceImpl.java +++ b/muyu-modules/muyu-data-source/muyu-data-source-server/src/main/java/com/muyu/data/source/service/impl/DataSourceServiceImpl.java @@ -406,7 +406,7 @@ public class DataSourceServiceImpl extends ServiceImpl> getDataModel(Long id) { - List> list = new ArrayList<>(); - Children children = childrenService.getOne(new LambdaQueryWrapper<>() {{ - eq(Children::getId, id); - }}); - DataSource dataSource = this.getOne(new LambdaQueryWrapper<>() {{ - eq(DataSource::getId, children.getAssetId()); - }}); - DatabaseType databaseType = databaseTypeService.getOne(new LambdaQueryWrapper<>() {{ - eq(DatabaseType::getDatabaseName, dataSource.getDataType()); - }}); - List tableDataList = tableDataService.list(new LambdaQueryWrapper<>() {{ - eq(TableData::getChildrenId, id); - }}); - String sql=""; - String query=""; - String url=databaseType.getUrlPre()+dataSource.getHost()+":"+dataSource.getPort()+"/"+dataSource.getDatabaseName()+"?"+dataSource.getConnectionParam(); - for (TableData tableData : tableDataList) { - query+=tableData.getName()+","; - } - query=query.substring(0,query.length()-1); - if ("mysql".equals(dataSource.getDataType())){ - sql="select"+query+"from"+children.getName(); - } - - try { - Class.forName(databaseType.getDriverManager()); - Connection connection=DriverManager.getConnection(url,dataSource.getUser(),dataSource.getPassword()); - Statement statement = connection.createStatement(); - ResultSet rs = statement.executeQuery(sql); - ResultSetMetaData metaData = rs.getMetaData(); -while (rs.next()){ - HashMap map = new HashMap<>(); - for (int i = 1; i <= metaData.getColumnCount(); i++) { - String columnName = metaData.getColumnName(i); - Object value = rs.getObject(i); - map.put(columnName, value); - } - list.add(map); -} - } catch (ClassNotFoundException | SQLException e) { - throw new RuntimeException(e); - } - return list; - } - +// @Override +// public List> getDataModel(Long id) { +// List> list = new ArrayList<>(); +// Children children = childrenService.getOne(new LambdaQueryWrapper<>() {{ +// eq(Children::getId, id); +// }}); +// DataSource dataSource = this.getOne(new LambdaQueryWrapper<>() {{ +// eq(DataSource::getId, children.getAssetId()); +// }}); +// DatabaseType databaseType = databaseTypeService.getOne(new LambdaQueryWrapper<>() {{ +// eq(DatabaseType::getDatabaseName, dataSource.getDataType()); +// }}); +// List tableDataList = tableDataService.list(new LambdaQueryWrapper<>() {{ +// eq(TableData::getChildrenId, id); +// }}); +// String sql=""; +// String query=""; +// String url=databaseType.getUrlPre()+dataSource.getHost()+":"+dataSource.getPort()+"/"+dataSource.getDatabaseName()+"?"+dataSource.getConnectionParam(); +// for (TableData tableData : tableDataList) { +// query+=tableData.getName()+","; +// } +// query=query.substring(0,query.length()-1); +// if ("mysql".equals(dataSource.getDataType())){ +// sql="select"+query+"from"+children.getName(); +// } +// +// try { +// Class.forName(databaseType.getDriverManager()); +// Connection connection=DriverManager.getConnection(url,dataSource.getUser(),dataSource.getPassword()); +// Statement statement = connection.createStatement(); +// ResultSet rs = statement.executeQuery(sql); +// ResultSetMetaData metaData = rs.getMetaData(); +//while (rs.next()){ +// HashMap map = new HashMap<>(); +// for (int i = 1; i <= metaData.getColumnCount(); i++) { +// String columnName = metaData.getColumnName(i); +// Object value = rs.getObject(i); +// map.put(columnName, value); +// } +// list.add(map); +//} +// } catch (ClassNotFoundException | SQLException e) { +// throw new RuntimeException(e); +// } +// return list; +// } + // 获取字段在java中的映射类型 public static String getJavaType(String driveClass, String jdbcUrl, DataSource dataSource, String tableName, String columnName) { String sql = ""; @@ -549,11 +549,9 @@ while (rs.next()){ ResultSetMetaData rsd = pst.executeQuery().getMetaData(); for (int i = 1; i <= rsd.getColumnCount(); i++) { if (rsd.getColumnName(i).equals(columnName)) { - if (rsd.getColumnClassName(i).equals("java.time.LocalDateTime")) { - javaType = "LocalDateTime"; - } else { - javaType = rsd.getColumnClassName(i).replace("java.lang.", ""); - } + javaType = rsd.getColumnClassName(i); +// String[] split = rsd.getColumnClassName(i).split("\\."); +// javaType = split[2]; } } pst.close(); diff --git a/muyu-modules/muyu-data-test/src/main/java/data/test/controller/TestController.java b/muyu-modules/muyu-data-test/src/main/java/data/test/controller/TestController.java new file mode 100644 index 0000000..04c00c2 --- /dev/null +++ b/muyu-modules/muyu-data-test/src/main/java/data/test/controller/TestController.java @@ -0,0 +1,32 @@ +package data.test.controller; + +import com.muyu.common.core.domain.Result; +import com.muyu.ruleEngine.model.DataModel; +import data.test.service.TestService; +import java.util.List; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.PathVariable; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RestController; + +/** + * 测试控制层 + * + * @author HuFangMing + * @ClassName: TestController + * @createTime: 2024/5/14 11:37 + */ + +@RestController +@RequestMapping("/test") +public class TestController { +@Autowired + private TestService testService; + +@GetMapping("/getDataModelList/{id}") + public Result>> getDataModelList(@PathVariable("id")Long id){ +List> dataModelList=testService.getDataModelList(id); +return Result.success(dataModelList); +} +} diff --git a/muyu-modules/muyu-data-test/src/main/java/data/test/service/TestService.java b/muyu-modules/muyu-data-test/src/main/java/data/test/service/TestService.java new file mode 100644 index 0000000..f30e2be --- /dev/null +++ b/muyu-modules/muyu-data-test/src/main/java/data/test/service/TestService.java @@ -0,0 +1,16 @@ +package data.test.service; + +import com.muyu.ruleEngine.model.DataModel; +import java.util.List; + +/** + * @author HuFangMing + * @ClassName: TestService + * @createTime: 2024/5/14 11:39 + */ + + +public interface TestService { + + List> getDataModelList(Long id); +} diff --git a/muyu-modules/muyu-data-test/src/main/java/data/test/service/impl/TestServiceImpl.java b/muyu-modules/muyu-data-test/src/main/java/data/test/service/impl/TestServiceImpl.java new file mode 100644 index 0000000..cea88e2 --- /dev/null +++ b/muyu-modules/muyu-data-test/src/main/java/data/test/service/impl/TestServiceImpl.java @@ -0,0 +1,27 @@ +package data.test.service.impl; + +import com.muyu.data.source.client.config.SourceClientConfig; +import com.muyu.ruleEngine.model.DataModel; +import data.test.service.TestService; +import java.util.List; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; + +/** + * @author HuFangMing + * @ClassName: TestServiceImpl + * @createTime: 2024/5/14 11:39 + */ + +@Service +public class TestServiceImpl implements TestService { + + @Autowired + private SourceClientConfig sourceClientConfig; + @Override + public List> getDataModelList(Long id) { + List> dataModelList = sourceClientConfig.getDataModel(id); + + return dataModelList; + } +} diff --git a/muyu-modules/muyu-rule_engine/muyu-rule_engine-common/pom.xml b/muyu-modules/muyu-rule_engine/muyu-rule_engine-common/pom.xml index 21c55ab..9dab342 100644 --- a/muyu-modules/muyu-rule_engine/muyu-rule_engine-common/pom.xml +++ b/muyu-modules/muyu-rule_engine/muyu-rule_engine-common/pom.xml @@ -22,5 +22,10 @@ com.muyu muyu-common-core + + com.muyu + muyu-rule_engine-common + 3.6.3 +