diff --git a/.gitignore b/.gitignore
index 502a62fc33cb4727c105f443d744ede77a97ea8e..a8a594dd31fcd63fddc815b41e998e28da2d781d 100644
--- a/.gitignore
+++ b/.gitignore
@@ -4,6 +4,7 @@ target/
!**/src/test/**/target/
### IntelliJ IDEA ###
+.idea
.idea/modules.xml
.idea/jarRepositories.xml
.idea/compiler.xml
diff --git a/pom.xml b/pom.xml
index 136eb2b234d870a8b5e6a095ff1efea92b5ad7bb..fc9854e1b2573447d2f560b69a0c3e23a791d26d 100644
--- a/pom.xml
+++ b/pom.xml
@@ -39,6 +39,89 @@
runtime
+
+ org.projectlombok
+ lombok
+
+
+
+
+
+ org.apache.hive
+ hive-jdbc
+ 3.1.2
+
+
+ org.slf4j
+ slf4j-log4j12
+
+
+ log4j
+ log4j
+
+
+ log4j-1.2-api
+ org.apache.logging.log4j
+
+
+ log4j-slf4j-impl
+ org.apache.logging.log4j
+
+
+ log4j-web
+ org.apache.logging.log4j
+
+
+ commons-logging
+ commons-logging
+
+
+ jdk.tools
+ jdk.tools
+
+
+ org.eclipse.jetty.aggregate
+ *
+
+
+
+ org.eclipse.jetty
+ jetty-runner
+
+
+ servlet-api
+ javax.servlet
+
+
+ javax.servlet.jsp-api
+ javax.servlet.jsp
+
+
+ javax.servlet.jsp
+ org.glassfish.web
+
+
+ junit
+ junit
+
+
+
+
+
+
+
+
+
+ org.apache.hadoop
+ hadoop-common
+ 3.3.4
+
+
+ commons-logging
+ commons-logging
+
+
+
com.facebook.presto
presto-jdbc
diff --git a/src/main/java/com/ediagnosis/cdr/CdrApplication.java b/src/main/java/com/ediagnosis/cdr/CdrApplication.java
index 4ed68fa46c2351ec2ad6b369bf73b71fee4a4e69..d4f33aed2131f422c141e8849107ca7cb8ba775b 100644
--- a/src/main/java/com/ediagnosis/cdr/CdrApplication.java
+++ b/src/main/java/com/ediagnosis/cdr/CdrApplication.java
@@ -5,7 +5,10 @@ import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
@SpringBootApplication
-@MapperScan("com.ediagnosis.cdr.dao.mapper")
+@MapperScan(basePackages = {
+ "com.ediagnosis.cdr.*.dao.mapper",
+ "com.ediagnosis.cdr.dao.mapper"
+})
public class CdrApplication {
public static void main(String[] args) {
diff --git a/src/main/java/com/ediagnosis/cdr/dataCollect/BusinessDataApi.java b/src/main/java/com/ediagnosis/cdr/dataCollect/BusinessDataApi.java
new file mode 100644
index 0000000000000000000000000000000000000000..b9947dcee51c9a3941c27b26379f6a9fd3ad3d01
--- /dev/null
+++ b/src/main/java/com/ediagnosis/cdr/dataCollect/BusinessDataApi.java
@@ -0,0 +1,14 @@
+package com.ediagnosis.cdr.dataCollect;
+
+import org.springframework.stereotype.Component;
+
+/**
+ * @author monojun
+ * @description BusinessDataApi
+ * @createTime 2025年08月04日
+ */
+@Component
+public class BusinessDataApi {
+
+
+}
diff --git a/src/main/java/com/ediagnosis/cdr/dataCollect/BusinessDataController.java b/src/main/java/com/ediagnosis/cdr/dataCollect/BusinessDataController.java
new file mode 100644
index 0000000000000000000000000000000000000000..c15626471573ad64cfca48bd1c50787a6364938e
--- /dev/null
+++ b/src/main/java/com/ediagnosis/cdr/dataCollect/BusinessDataController.java
@@ -0,0 +1,77 @@
+package com.ediagnosis.cdr.dataCollect;
+
+
+import com.ediagnosis.cdr.dataCollect.dao.dto.*;
+import com.ediagnosis.cdr.dataCollect.dao.entity.BusinessDataTableField;
+import com.ediagnosis.cdr.dataCollect.endpoint.param.DataSourceQueryParam;
+import com.ediagnosis.cdr.dataCollect.endpoint.param.DataTableFieldQueryParam;
+import com.ediagnosis.cdr.dataCollect.endpoint.param.DataTableQueryParam;
+import com.ediagnosis.cdr.dataCollect.endpoint.vo.BusinessDataSourceVo;
+import com.ediagnosis.cdr.dataCollect.endpoint.vo.BusinessDataTableFieldVo;
+import com.ediagnosis.cdr.dataCollect.endpoint.vo.BusinessDataTableVo;
+import com.ediagnosis.cdr.dataCollect.inner.BusinessDataRepository;
+import com.ediagnosis.cdr.util.PageConvertUtils;
+import com.ediagnosis.cdr.value.PageVo;
+import com.ediagnosis.cdr.value.Response;
+import com.mybatisflex.core.paginate.Page;
+import lombok.RequiredArgsConstructor;
+import org.springframework.beans.BeanUtils;
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.RequestBody;
+import org.springframework.web.bind.annotation.RestController;
+
+/**
+ * @author monojun
+ * @description 业务系统controller
+ * @createTime 2025年08月04日
+ */
+@RestController
+@RequiredArgsConstructor
+public class BusinessDataController {
+
+ private final BusinessDataRepository dataRepository;
+
+
+ @PostMapping("/dataSource/page")
+ public Response> page(@RequestBody DataSourceQueryParam queryParam) {
+ BusinessDataSourceQueryDTO queryDTO = new BusinessDataSourceQueryDTO();
+ BeanUtils.copyProperties(queryParam, queryDTO);
+ Page dataSourcePage = dataRepository.querySourcePage(queryDTO);
+ PageVo systemVoPageInfo = PageConvertUtils.copyPageInfo(dataSourcePage, dataSourceDTO -> {
+ BusinessDataSourceVo vo = new BusinessDataSourceVo();
+ BeanUtils.copyProperties(dataSourceDTO, vo);
+ vo.setBizSystemId(dataSourceDTO.getBusinessId());
+ vo.setBizSystemName(dataSourceDTO.getBusinessName());
+ return vo;
+ });
+ return Response.success(systemVoPageInfo);
+ }
+
+ @PostMapping("/dataTable/page")
+ public Response> page(@RequestBody DataTableQueryParam queryParam) {
+ BusinessDataTableQueryDTO queryDTO = new BusinessDataTableQueryDTO();
+ BeanUtils.copyProperties(queryParam, queryDTO);
+ Page dataTablePage = dataRepository.queryTablePage(queryDTO);
+ PageVo dataTableVoPageInfo = PageConvertUtils.copyPageInfo(dataTablePage, dataTable -> {
+ BusinessDataTableVo vo = new BusinessDataTableVo();
+ BeanUtils.copyProperties(dataTable, vo);
+ return vo;
+ });
+ return Response.success(dataTableVoPageInfo);
+ }
+
+ @PostMapping("/dataTableField/page")
+ public Response> page(@RequestBody DataTableFieldQueryParam queryParam) {
+ BusinessDataTableFieldQueryDTO queryDTO = new BusinessDataTableFieldQueryDTO();
+ BeanUtils.copyProperties(queryParam, queryDTO);
+ Page dataTableFieldPage = dataRepository.queryFieldPage(queryDTO);
+ PageVo tableFieldVoPageInfo = PageConvertUtils.copyPageInfo(dataTableFieldPage, dataTableField -> {
+ BusinessDataTableFieldVo vo = new BusinessDataTableFieldVo();
+ BeanUtils.copyProperties(dataTableField, vo);
+ return vo;
+ });
+ return Response.success(tableFieldVoPageInfo);
+ }
+
+
+}
diff --git a/src/main/java/com/ediagnosis/cdr/dataCollect/BusinessSourceController.java b/src/main/java/com/ediagnosis/cdr/dataCollect/BusinessSourceController.java
new file mode 100644
index 0000000000000000000000000000000000000000..488ccbbfc0057b7f6c243598b5a0db2cd8656bd2
--- /dev/null
+++ b/src/main/java/com/ediagnosis/cdr/dataCollect/BusinessSourceController.java
@@ -0,0 +1,73 @@
+package com.ediagnosis.cdr.dataCollect;
+
+import com.ediagnosis.cdr.dataCollect.dao.dto.BusinessDataSystemDTO;
+import com.ediagnosis.cdr.dataCollect.dao.dto.BusinessDataSystemQueryDTO;
+import com.ediagnosis.cdr.dataCollect.dao.entity.BusinessDataSystem;
+import com.ediagnosis.cdr.dataCollect.endpoint.param.DataSystemAddParam;
+import com.ediagnosis.cdr.dataCollect.endpoint.param.DataSystemDeleteParam;
+import com.ediagnosis.cdr.dataCollect.endpoint.param.DataSystemQueryParam;
+import com.ediagnosis.cdr.dataCollect.endpoint.param.DataSystemUpdateParam;
+import com.ediagnosis.cdr.dataCollect.endpoint.vo.BusinessDataSystemVo;
+import com.ediagnosis.cdr.dataCollect.inner.BusinessSystemRepository;
+import com.ediagnosis.cdr.util.PageConvertUtils;
+import com.ediagnosis.cdr.value.PageVo;
+import com.ediagnosis.cdr.value.Response;
+import com.mybatisflex.core.paginate.Page;
+import lombok.RequiredArgsConstructor;
+import org.springframework.beans.BeanUtils;
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.RequestBody;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
+
+/**
+ * @author monojun
+ * @description TODO
+ * @createTime 2025年08月05日
+ */
+@RestController
+@RequestMapping("/dataSource")
+@RequiredArgsConstructor
+public class BusinessSourceController {
+
+ private final BusinessSystemRepository systemRepository;
+
+
+ @PostMapping("/add")
+ public Response page(@RequestBody DataSystemAddParam addParam) {
+ BusinessDataSystemDTO addDTO = new BusinessDataSystemDTO();
+ BeanUtils.copyProperties(addParam, addDTO);
+ Long id = systemRepository.addDataSystem(addDTO);
+ return Response.success(id);
+ }
+
+ @PostMapping("/update")
+ public Response update(@RequestBody DataSystemUpdateParam updateParam) {
+ BusinessDataSystemDTO addDTO = new BusinessDataSystemDTO();
+ BeanUtils.copyProperties(updateParam, addDTO);
+ Long id = systemRepository.updateDataSystem(addDTO);
+ return Response.success(id);
+ }
+
+
+ @PostMapping("/page")
+ public Response> page(@RequestBody DataSystemQueryParam queryParam) {
+ BusinessDataSystemQueryDTO queryDTO = new BusinessDataSystemQueryDTO();
+ BeanUtils.copyProperties(queryParam, queryDTO);
+ Page dataSystemPage = systemRepository.queryPage(queryDTO);
+ PageVo systemVoPageInfo = PageConvertUtils.copyPageInfo(dataSystemPage, dataSystem -> {
+ BusinessDataSystemVo vo = new BusinessDataSystemVo();
+ BeanUtils.copyProperties(dataSystem, vo);
+ return vo;
+ });
+ return Response.success(systemVoPageInfo);
+ }
+
+
+ @PostMapping("/delete")
+ public Response delete(@RequestBody DataSystemDeleteParam deleteParam) {
+ systemRepository.deleteDataSystem(deleteParam.getId());
+ return Response.success(deleteParam.getId());
+ }
+
+}
diff --git a/src/main/java/com/ediagnosis/cdr/dataCollect/BusinessSystemController.java b/src/main/java/com/ediagnosis/cdr/dataCollect/BusinessSystemController.java
new file mode 100644
index 0000000000000000000000000000000000000000..631e867c111983932970cc05725b04c6f589f35c
--- /dev/null
+++ b/src/main/java/com/ediagnosis/cdr/dataCollect/BusinessSystemController.java
@@ -0,0 +1,74 @@
+package com.ediagnosis.cdr.dataCollect;
+
+import com.ediagnosis.cdr.dataCollect.dao.dto.BusinessDataSystemDTO;
+import com.ediagnosis.cdr.dataCollect.dao.dto.BusinessDataSystemQueryDTO;
+import com.ediagnosis.cdr.dataCollect.dao.entity.BusinessDataSystem;
+import com.ediagnosis.cdr.dataCollect.endpoint.param.DataSystemAddParam;
+import com.ediagnosis.cdr.dataCollect.endpoint.param.DataSystemDeleteParam;
+import com.ediagnosis.cdr.dataCollect.endpoint.param.DataSystemQueryParam;
+import com.ediagnosis.cdr.dataCollect.endpoint.param.DataSystemUpdateParam;
+import com.ediagnosis.cdr.dataCollect.endpoint.vo.BusinessDataSystemVo;
+import com.ediagnosis.cdr.dataCollect.inner.BusinessSystemRepository;
+import com.ediagnosis.cdr.util.PageConvertUtils;
+import com.ediagnosis.cdr.value.PageVo;
+import com.ediagnosis.cdr.value.Response;
+import com.mybatisflex.core.paginate.Page;
+import lombok.RequiredArgsConstructor;
+import org.springframework.beans.BeanUtils;
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.RequestBody;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
+
+/**
+ * @author monojun
+ * @description 业务系统controller
+ * @createTime 2025年08月04日
+ */
+@RestController
+@RequestMapping("/bizSystem")
+@RequiredArgsConstructor
+public class BusinessSystemController {
+
+ private final BusinessSystemRepository systemRepository;
+
+
+ @PostMapping("/add")
+ public Response page(@RequestBody DataSystemAddParam addParam) {
+ BusinessDataSystemDTO addDTO = new BusinessDataSystemDTO();
+ BeanUtils.copyProperties(addParam, addDTO);
+ Long id = systemRepository.addDataSystem(addDTO);
+ return Response.success(id);
+ }
+
+ @PostMapping("/update")
+ public Response update(@RequestBody DataSystemUpdateParam updateParam) {
+ BusinessDataSystemDTO addDTO = new BusinessDataSystemDTO();
+ BeanUtils.copyProperties(updateParam, addDTO);
+ Long id = systemRepository.updateDataSystem(addDTO);
+ return Response.success(id);
+ }
+
+
+ @PostMapping("/page")
+ public Response> page(@RequestBody DataSystemQueryParam queryParam) {
+ BusinessDataSystemQueryDTO queryDTO = new BusinessDataSystemQueryDTO();
+ BeanUtils.copyProperties(queryParam, queryDTO);
+ Page dataSystemPage = systemRepository.queryPage(queryDTO);
+ PageVo systemVoPageInfo = PageConvertUtils.copyPageInfo(dataSystemPage, dataSystem -> {
+ BusinessDataSystemVo vo = new BusinessDataSystemVo();
+ BeanUtils.copyProperties(dataSystem, vo);
+ return vo;
+ });
+ return Response.success(systemVoPageInfo);
+ }
+
+
+ @PostMapping("/delete")
+ public Response delete(@RequestBody DataSystemDeleteParam deleteParam) {
+ systemRepository.deleteDataSystem(deleteParam.getId());
+ return Response.success(deleteParam.getId());
+ }
+
+
+}
diff --git a/src/main/java/com/ediagnosis/cdr/dataCollect/BusinessTableController.java b/src/main/java/com/ediagnosis/cdr/dataCollect/BusinessTableController.java
new file mode 100644
index 0000000000000000000000000000000000000000..4c0529cc8f24eac6a9aea7cdf5d4f6269c37a451
--- /dev/null
+++ b/src/main/java/com/ediagnosis/cdr/dataCollect/BusinessTableController.java
@@ -0,0 +1,9 @@
+package com.ediagnosis.cdr.dataCollect;
+
+/**
+ * @author monojun
+ * @description TODO
+ * @createTime 2025年08月05日
+ */
+public class BusinessTableController {
+}
diff --git a/src/main/java/com/ediagnosis/cdr/dataCollect/dao/BusinessDataDao.java b/src/main/java/com/ediagnosis/cdr/dataCollect/dao/BusinessDataDao.java
new file mode 100644
index 0000000000000000000000000000000000000000..0e4e2b0444eb37de4d6ca9f84c2e276bfddef575
--- /dev/null
+++ b/src/main/java/com/ediagnosis/cdr/dataCollect/dao/BusinessDataDao.java
@@ -0,0 +1,179 @@
+package com.ediagnosis.cdr.dataCollect.dao;
+
+
+import com.ediagnosis.cdr.dataCollect.dao.dto.*;
+import com.ediagnosis.cdr.dataCollect.dao.entity.BusinessDataSource;
+import com.ediagnosis.cdr.dataCollect.dao.entity.BusinessDataSystem;
+import com.ediagnosis.cdr.dataCollect.dao.entity.BusinessDataTable;
+import com.ediagnosis.cdr.dataCollect.dao.entity.BusinessDataTableField;
+import com.ediagnosis.cdr.dataCollect.dao.mapper.BusinessDataSourceMapper;
+import com.ediagnosis.cdr.dataCollect.dao.mapper.BusinessDataSystemMapper;
+import com.ediagnosis.cdr.dataCollect.dao.mapper.BusinessDataTableFieldMapper;
+import com.ediagnosis.cdr.dataCollect.dao.mapper.BusinessDataTableMapper;
+import com.mybatisflex.core.paginate.Page;
+import com.mybatisflex.core.query.QueryWrapper;
+import lombok.RequiredArgsConstructor;
+import org.apache.commons.collections4.CollectionUtils;
+import org.springframework.beans.BeanUtils;
+import org.springframework.stereotype.Component;
+import org.springframework.util.StringUtils;
+
+import java.util.Date;
+
+/**
+ * @author monojun
+ * @description 业务dao
+ * @createTime 2025年08月04日
+ */
+@Component
+@RequiredArgsConstructor
+public class BusinessDataDao {
+
+ private final BusinessDataSystemMapper dataSystemMapper;
+
+ private final BusinessDataSourceMapper dataSourceMapper;
+
+ private final BusinessDataTableMapper dataTableMapper;
+
+ private final BusinessDataTableFieldMapper dataTableFieldMapper;
+
+ /**
+ * 新增业务系统
+ *
+ * @param dataSystemDTO dataSystemDTO
+ * @return 业务系统主键id
+ */
+ public Long addDataSystem(BusinessDataSystemDTO dataSystemDTO) {
+ BusinessDataSystem dataSystem = new BusinessDataSystem();
+ BeanUtils.copyProperties(dataSystemDTO, dataSystem);
+ dataSystem.setCreateTime(new Date());
+ dataSystem.setUpdateTime(new Date());
+ dataSystemMapper.insert(dataSystem);
+ return dataSystem.getId();
+ }
+
+ /**
+ * 更新业务系统
+ *
+ * @param dataSystemDTO dataSystemDTO
+ * @return 业务系统主键id
+ */
+ public Long updateDataSystem(BusinessDataSystemDTO dataSystemDTO) {
+ BusinessDataSystem dataSystem = new BusinessDataSystem();
+ BeanUtils.copyProperties(dataSystemDTO, dataSystem);
+ dataSystem.setUpdateTime(new Date());
+ dataSystemMapper.update(dataSystem);
+ return dataSystem.getId();
+ }
+
+ /**
+ * 删除业务系统
+ *
+ * @param dataSystemId 业务系统id
+ */
+ public void deleteDataSystem(Long dataSystemId) {
+ dataSystemMapper.deleteById(dataSystemId);
+ }
+
+ /**
+ * 分页查询业务系统信息
+ *
+ * @param queryDTO 查询dto
+ * @return PageInfo
+ */
+ public Page querySystemPage(BusinessDataSystemQueryDTO queryDTO) {
+ QueryWrapper queryWrapper = QueryWrapper.create();
+ if (StringUtils.hasText(queryDTO.getName())) {
+ queryWrapper.like(BusinessDataSystem::getName, queryDTO.getName());
+ }
+ queryWrapper.orderBy(BusinessDataSystem::getUpdateTime, false);
+ queryWrapper.orderBy(BusinessDataSystem::getId, false);
+ return dataSystemMapper.paginate(queryDTO.getPageNo(), queryDTO.getPageSize(), queryWrapper);
+ }
+
+ /**
+ * 分页查询业务数据源信息
+ *
+ * @param queryDTO 查询dto
+ * @return PageInfo
+ */
+ public Page querySourcePage(BusinessDataSourceQueryDTO queryDTO) {
+ QueryWrapper queryWrapper = QueryWrapper.create()
+ .select("d.*", "ds.name as businessName")
+ .from(BusinessDataSource.class).as("d")
+ .leftJoin(BusinessDataSystem.class).as("ds")
+ .on(BusinessDataSource::getBusinessId, BusinessDataSystem::getId)
+ .orderBy(BusinessDataSource::getUpdateTime, false)
+ .orderBy(BusinessDataSource::getId, false);
+ if (!CollectionUtils.isEmpty(queryDTO.getBusinessIds())) {
+ queryWrapper.in(BusinessDataSource::getBusinessId, queryDTO.getBusinessIds());
+ }
+ if (StringUtils.hasText(queryDTO.getName())) {
+ queryWrapper.like(BusinessDataSource::getName, queryDTO.getName());
+ }
+ if (StringUtils.hasText(queryDTO.getIpAddress())) {
+ queryWrapper.like(BusinessDataSource::getIpAddress, queryDTO.getIpAddress());
+ }
+ if (StringUtils.hasText(queryDTO.getType())) {
+ queryWrapper.eq(BusinessDataSource::getType, queryDTO.getType());
+ }
+ if (queryDTO.getStatus() != null) {
+ queryWrapper.eq(BusinessDataSource::getStatus, queryDTO.getStatus());
+ }
+ return dataSourceMapper.paginateAs(queryDTO.getPageNo(), queryDTO.getPageSize(), queryWrapper, BusinessDataSourceDTO.class);
+ }
+
+ /**
+ * 分页查询业务表信息
+ *
+ * @param queryDTO 查询dto
+ * @return PageInfo
+ */
+ public Page queryTablePage(BusinessDataTableQueryDTO queryDTO) {
+ QueryWrapper queryWrapper = QueryWrapper.create()
+ .select("t.*, d.id as sourceId, d.name as sourceName, ds.id as businessId, ds.name as businessName")
+ .from(BusinessDataTable.class).as("t")
+ .leftJoin(BusinessDataSource.class).as("d")
+ .on(BusinessDataTable::getSourceId, BusinessDataSource::getId)
+ .leftJoin(BusinessDataSystem.class).as("ds")
+ .on(BusinessDataSource::getBusinessId, BusinessDataSystem::getId)
+ .orderBy(BusinessDataTable::getUpdateTime, false)
+ .orderBy(BusinessDataTable::getId, false);
+ if (StringUtils.hasText(queryDTO.getName())) {
+ queryWrapper.like(BusinessDataTable::getName, queryDTO.getName());
+ }
+ if (!CollectionUtils.isEmpty(queryDTO.getBusinessIds())) {
+ queryWrapper.in(BusinessDataTable::getBusinessId, queryDTO.getBusinessIds());
+ }
+ if (!CollectionUtils.isEmpty(queryDTO.getSourceIds())) {
+ queryWrapper.in(BusinessDataTable::getSourceId, queryDTO.getSourceIds());
+ }
+ if (StringUtils.hasText(queryDTO.getTableNo())) {
+ queryWrapper.like(BusinessDataTable::getTableNo, queryDTO.getTableNo());
+ }
+ return dataTableMapper.paginateAs(queryDTO.getPageNo(), queryDTO.getPageSize(), queryWrapper, BusinessDataTableDTO.class);
+ }
+
+ /**
+ * 分页查询业务表字段信息
+ *
+ * @param queryDTO 查询dto
+ * @return PageInfo
+ */
+ public Page queryFieldPage(BusinessDataTableFieldQueryDTO queryDTO) {
+ QueryWrapper queryWrapper = QueryWrapper.create();
+ if (StringUtils.hasText(queryDTO.getFieldName())) {
+ queryWrapper.like(BusinessDataTableField::getFieldName, queryDTO.getFieldName());
+ }
+ if (StringUtils.hasText(queryDTO.getFieldType())) {
+ queryWrapper.like(BusinessDataTableField::getFieldType, queryDTO.getFieldType());
+ }
+ if (queryDTO.getTableId() != null) {
+ queryWrapper.eq(BusinessDataTableField::getTableId, queryDTO.getTableId());
+ }
+ queryWrapper.orderBy(BusinessDataTableField::getUpdateTime, false);
+ queryWrapper.orderBy(BusinessDataTableField::getId, false);
+ return dataTableFieldMapper.paginate(queryDTO.getPageNo(), queryDTO.getPageSize(), queryWrapper);
+ }
+
+}
diff --git a/src/main/java/com/ediagnosis/cdr/dataCollect/dao/dto/BusinessDataSourceDTO.java b/src/main/java/com/ediagnosis/cdr/dataCollect/dao/dto/BusinessDataSourceDTO.java
new file mode 100644
index 0000000000000000000000000000000000000000..00b9dc0c5a4335ca016f6a6932aa1b583c4edd38
--- /dev/null
+++ b/src/main/java/com/ediagnosis/cdr/dataCollect/dao/dto/BusinessDataSourceDTO.java
@@ -0,0 +1,85 @@
+package com.ediagnosis.cdr.dataCollect.dao.dto;
+
+import lombok.Data;
+
+import java.io.Serial;
+import java.io.Serializable;
+import java.util.Date;
+
+/**
+ * @author monojun
+ * @description 数据源dto
+ * @createTime 2025年07月31日
+ */
+@Data
+public class BusinessDataSourceDTO implements Serializable {
+ @Serial
+ private static final long serialVersionUID = -447329639545048136L;
+
+ /**
+ * 主键id
+ */
+ private Long id;
+
+ /**
+ * 数据源名称
+ */
+ private String name;
+
+ /**
+ * 数据源类型
+ */
+ private String type;
+
+ /**
+ * IP地址
+ */
+ private String ipAddress;
+
+ /**
+ * 属性信息
+ */
+ private String properties;
+
+ /**
+ * 业务系统id
+ */
+ private Long businessId;
+
+ /**
+ * 业务系统名称
+ */
+ private String businessName;
+
+ /**
+ * 描述
+ */
+ private String description;
+
+ /**
+ * 连接状态: 0-未知 1-已连接 2-未连接
+ */
+ private Integer status;
+
+ /**
+ * 创建时间
+ */
+ private Date createTime;
+
+ /**
+ * 创建人
+ */
+ private Long createUserId;
+
+ /**
+ * 更新时间
+ */
+ private Date updateTime;
+
+ /**
+ * 更新人
+ */
+ private Long updateUserId;
+
+
+}
diff --git a/src/main/java/com/ediagnosis/cdr/dataCollect/dao/dto/BusinessDataSourceQueryDTO.java b/src/main/java/com/ediagnosis/cdr/dataCollect/dao/dto/BusinessDataSourceQueryDTO.java
new file mode 100644
index 0000000000000000000000000000000000000000..e2989418e976db65980ab9de06f49356d9fd2ec8
--- /dev/null
+++ b/src/main/java/com/ediagnosis/cdr/dataCollect/dao/dto/BusinessDataSourceQueryDTO.java
@@ -0,0 +1,43 @@
+package com.ediagnosis.cdr.dataCollect.dao.dto;
+
+import com.ediagnosis.cdr.dataCollect.endpoint.param.PageQuery;
+import lombok.Data;
+
+import java.io.Serial;
+import java.util.List;
+
+/**
+ * @author monojun
+ * @description 业务数据源查询dto
+ * @createTime 2025年07月31日
+ */
+@Data
+public class BusinessDataSourceQueryDTO extends PageQuery {
+ @Serial
+ private static final long serialVersionUID = 4373837873599613512L;
+
+ /**
+ * 业务系统id列表
+ */
+ private List businessIds;
+
+ /**
+ * 数据源名称
+ */
+ private String name;
+
+ /**
+ * ip地址
+ */
+ private String ipAddress;
+
+ /**
+ * 数据源类型
+ */
+ private String type;
+
+ /**
+ * 连接状态: 0-未知 1-已连接 2-未连接
+ */
+ private Integer status;
+}
diff --git a/src/main/java/com/ediagnosis/cdr/dataCollect/dao/dto/BusinessDataSystemDTO.java b/src/main/java/com/ediagnosis/cdr/dataCollect/dao/dto/BusinessDataSystemDTO.java
new file mode 100644
index 0000000000000000000000000000000000000000..5e2bc3d063c71eb900eebbc95cacd8f5be92b3bd
--- /dev/null
+++ b/src/main/java/com/ediagnosis/cdr/dataCollect/dao/dto/BusinessDataSystemDTO.java
@@ -0,0 +1,53 @@
+package com.ediagnosis.cdr.dataCollect.dao.dto;
+
+import lombok.Data;
+
+import java.io.Serial;
+import java.io.Serializable;
+import java.util.Date;
+
+/**
+ * @author monojun
+ * @description 业务系统dto
+ * @createTime 2025年07月31日
+ */
+@Data
+public class BusinessDataSystemDTO implements Serializable {
+ @Serial
+ private static final long serialVersionUID = 8024021126762424795L;
+
+ /**
+ * 主键id
+ */
+ private Long id;
+
+ /**
+ * 业务系统名称
+ */
+ private String name;
+
+ /**
+ * 描述
+ */
+ private String description;
+
+ /**
+ * 创建时间
+ */
+ private Date createTime;
+
+ /**
+ * 创建人
+ */
+ private Long createUserId;
+
+ /**
+ * 更新时间
+ */
+ private Date updateTime;
+
+ /**
+ * 更新人
+ */
+ private Long updateUserId;
+}
diff --git a/src/main/java/com/ediagnosis/cdr/dataCollect/dao/dto/BusinessDataSystemQueryDTO.java b/src/main/java/com/ediagnosis/cdr/dataCollect/dao/dto/BusinessDataSystemQueryDTO.java
new file mode 100644
index 0000000000000000000000000000000000000000..9832247a4079394431ca83cd50ed8c25af0286c3
--- /dev/null
+++ b/src/main/java/com/ediagnosis/cdr/dataCollect/dao/dto/BusinessDataSystemQueryDTO.java
@@ -0,0 +1,21 @@
+package com.ediagnosis.cdr.dataCollect.dao.dto;
+
+import com.ediagnosis.cdr.dataCollect.endpoint.param.PageQuery;
+import lombok.Data;
+
+/**
+ * @author monojun
+ * @description 业务系统查询参数
+ * @createTime 2025年07月31日
+ */
+@Data
+public class BusinessDataSystemQueryDTO extends PageQuery {
+ private static final long serialVersionUID = -725393158125223566L;
+
+ /**
+ * 业务系统名称
+ */
+ private String name;
+
+
+}
diff --git a/src/main/java/com/ediagnosis/cdr/dataCollect/dao/dto/BusinessDataTableDTO.java b/src/main/java/com/ediagnosis/cdr/dataCollect/dao/dto/BusinessDataTableDTO.java
new file mode 100644
index 0000000000000000000000000000000000000000..935ff83e2978d71cd3b1a212a47f01f6c47e02d4
--- /dev/null
+++ b/src/main/java/com/ediagnosis/cdr/dataCollect/dao/dto/BusinessDataTableDTO.java
@@ -0,0 +1,79 @@
+package com.ediagnosis.cdr.dataCollect.dao.dto;
+
+import lombok.Data;
+
+import java.io.Serial;
+import java.io.Serializable;
+import java.util.Date;
+
+/**
+ * @author monojun
+ * @description 业务数据源名称
+ * @createTime 2025年07月31日
+ */
+@Data
+public class BusinessDataTableDTO implements Serializable {
+ @Serial
+ private static final long serialVersionUID = -1723613352839697417L;
+
+ /**
+ * 主键id
+ */
+ private Long id;
+
+ /**
+ * 业务表名称
+ */
+ private String name;
+
+ /**
+ * 业务表编号
+ */
+ private String tableNo;
+
+ /**
+ * 业务系统id
+ */
+ private Long businessId;
+
+ /**
+ * 业务系统名称
+ */
+ private String businessName;
+
+ /**
+ * 业务数据源id
+ */
+ private Long sourceId;
+
+ /**
+ * 业务数据源名称
+ */
+ private String sourceName;
+
+ /**
+ * 描述
+ */
+ private String description;
+
+ /**
+ * 创建时间
+ */
+ private Date createTime;
+
+ /**
+ * 创建人
+ */
+ private Long createUserId;
+
+ /**
+ * 更新时间
+ */
+ private Date updateTime;
+
+ /**
+ * 更新人
+ */
+ private Long updateUserId;
+
+}
diff --git a/src/main/java/com/ediagnosis/cdr/dataCollect/dao/dto/BusinessDataTableFieldQueryDTO.java b/src/main/java/com/ediagnosis/cdr/dataCollect/dao/dto/BusinessDataTableFieldQueryDTO.java
new file mode 100644
index 0000000000000000000000000000000000000000..56f52116b0301fe568658bccf9046fdea922db36
--- /dev/null
+++ b/src/main/java/com/ediagnosis/cdr/dataCollect/dao/dto/BusinessDataTableFieldQueryDTO.java
@@ -0,0 +1,32 @@
+package com.ediagnosis.cdr.dataCollect.dao.dto;
+
+import com.ediagnosis.cdr.dataCollect.endpoint.param.PageQuery;
+import lombok.Data;
+
+import java.io.Serial;
+
+/**
+ * @author monojun
+ * @description 业务数据表dto
+ * @createTime 2025年07月31日
+ */
+@Data
+public class BusinessDataTableFieldQueryDTO extends PageQuery {
+ @Serial
+ private static final long serialVersionUID = -7409716170936124466L;
+
+ /**
+ * 字段名称
+ */
+ private String fieldName;
+
+ /**
+ * 字段类型
+ */
+ private String fieldType;
+
+ /**
+ * 业务表id
+ */
+ private Long tableId;
+}
diff --git a/src/main/java/com/ediagnosis/cdr/dataCollect/dao/dto/BusinessDataTableQueryDTO.java b/src/main/java/com/ediagnosis/cdr/dataCollect/dao/dto/BusinessDataTableQueryDTO.java
new file mode 100644
index 0000000000000000000000000000000000000000..f0a49f41ec9ef345db026508c149d5034e3816d8
--- /dev/null
+++ b/src/main/java/com/ediagnosis/cdr/dataCollect/dao/dto/BusinessDataTableQueryDTO.java
@@ -0,0 +1,38 @@
+package com.ediagnosis.cdr.dataCollect.dao.dto;
+
+import com.ediagnosis.cdr.dataCollect.endpoint.param.PageQuery;
+import lombok.Data;
+
+import java.io.Serial;
+import java.util.List;
+
+/**
+ * @author monojun
+ * @description 业务数据表dto
+ * @createTime 2025年07月31日
+ */
+@Data
+public class BusinessDataTableQueryDTO extends PageQuery {
+ @Serial
+ private static final long serialVersionUID = 2568845339056229745L;
+
+ /**
+ * 业务系统id
+ */
+ private List businessIds;
+
+ /**
+ * 业务数据源id列表
+ */
+ private List sourceIds;
+
+ /**
+ * 业务表名称
+ */
+ private String name;
+
+ /**
+ * 业务表编号
+ */
+ private String tableNo;
+}
diff --git a/src/main/java/com/ediagnosis/cdr/dataCollect/dao/entity/BusinessDataSource.java b/src/main/java/com/ediagnosis/cdr/dataCollect/dao/entity/BusinessDataSource.java
new file mode 100644
index 0000000000000000000000000000000000000000..79ac5ac1c5afaf6a766faa73044fed14455a9e9a
--- /dev/null
+++ b/src/main/java/com/ediagnosis/cdr/dataCollect/dao/entity/BusinessDataSource.java
@@ -0,0 +1,101 @@
+package com.ediagnosis.cdr.dataCollect.dao.entity;
+
+import com.mybatisflex.annotation.Column;
+import com.mybatisflex.annotation.Id;
+import com.mybatisflex.annotation.KeyType;
+import com.mybatisflex.annotation.Table;
+import lombok.Data;
+
+import java.io.Serial;
+import java.io.Serializable;
+import java.util.Date;
+
+/**
+ * @author monojun
+ * @description 业务系统数据源表
+ * @createTime 2025年08月01日
+ */
+@Data
+@Table(value = "business_data_source")
+public class BusinessDataSource implements Serializable {
+ @Serial
+ private static final long serialVersionUID = 1L;
+
+ /**
+ * 主键id
+ */
+ @Id(value = "id", keyType = KeyType.Auto)
+ private Long id;
+
+ /**
+ * 数据源名称
+ */
+ @Column(value = "name")
+ private String name;
+
+ /**
+ * 数据源类型
+ */
+ @Column(value = "type")
+ private String type;
+
+ /**
+ * IP地址
+ */
+ @Column(value = "ip_address")
+ private String ipAddress;
+
+ /**
+ * 属性信息
+ */
+ @Column(value = "properties")
+ private String properties;
+
+ /**
+ * 业务系统id
+ */
+ @Column(value = "business_id")
+ private Long businessId;
+
+ /**
+ * 描述
+ */
+ @Column(value = "description")
+ private String description;
+
+ /**
+ * 连接状态: 0-未知 1-已连接 2-未连接
+ */
+ @Column(value = "status")
+ private Integer status;
+
+ /**
+ * 创建时间
+ */
+ @Column(value = "create_time")
+ private Date createTime;
+
+ /**
+ * 创建人
+ */
+ @Column(value = "create_user_id")
+ private Long createUserId;
+
+ /**
+ * 更新时间
+ */
+ @Column(value = "update_time")
+ private Date updateTime;
+
+ /**
+ * 更新人
+ */
+ @Column(value = "update_user_id")
+ private Long updateUserId;
+
+ /**
+ * 是否删除: 0-未删除 1-已删除
+ */
+ @Column(value = "is_deleted", isLogicDelete = true)
+ private Integer isDeleted;
+}
\ No newline at end of file
diff --git a/src/main/java/com/ediagnosis/cdr/dataCollect/dao/entity/BusinessDataSystem.java b/src/main/java/com/ediagnosis/cdr/dataCollect/dao/entity/BusinessDataSystem.java
new file mode 100644
index 0000000000000000000000000000000000000000..168199c2052bf83d8bb5448c36a54b399fcafa5a
--- /dev/null
+++ b/src/main/java/com/ediagnosis/cdr/dataCollect/dao/entity/BusinessDataSystem.java
@@ -0,0 +1,66 @@
+package com.ediagnosis.cdr.dataCollect.dao.entity;
+
+import com.mybatisflex.annotation.Column;
+import com.mybatisflex.annotation.Id;
+import com.mybatisflex.annotation.KeyType;
+import com.mybatisflex.annotation.Table;
+import lombok.Data;
+
+import java.util.Date;
+
+/**
+ * @author monojun
+ * @description 业务系统表
+ * @createTime 2025年08月01日
+ */
+@Data
+@Table("business_data_system")
+public class BusinessDataSystem {
+ /**
+ * 主键id
+ */
+ @Id(value = "id", keyType = KeyType.Auto)
+ private Long id;
+
+ /**
+ * 业务系统名称
+ */
+ @Column(value = "name")
+ private String name;
+
+ /**
+ * 描述
+ */
+ @Column(value = "description")
+ private String description;
+
+ /**
+ * 创建时间
+ */
+ @Column(value = "create_time")
+ private Date createTime;
+
+ /**
+ * 创建人
+ */
+ @Column(value = "create_user_id")
+ private Long createUserId;
+
+ /**
+ * 更新时间
+ */
+ @Column(value = "update_time")
+ private Date updateTime;
+
+ /**
+ * 更新人
+ */
+ @Column(value = "update_user_id")
+ private Long updateUserId;
+
+ /**
+ * 是否删除 0-未删除 1-已删除
+ */
+ @Column(value = "is_deleted", isLogicDelete = true)
+ private Integer isDeleted;
+}
\ No newline at end of file
diff --git a/src/main/java/com/ediagnosis/cdr/dataCollect/dao/entity/BusinessDataTable.java b/src/main/java/com/ediagnosis/cdr/dataCollect/dao/entity/BusinessDataTable.java
new file mode 100644
index 0000000000000000000000000000000000000000..597d10d7a8d0caf209a61bb1453ce30f16370d2e
--- /dev/null
+++ b/src/main/java/com/ediagnosis/cdr/dataCollect/dao/entity/BusinessDataTable.java
@@ -0,0 +1,90 @@
+package com.ediagnosis.cdr.dataCollect.dao.entity;
+
+import com.mybatisflex.annotation.Column;
+import com.mybatisflex.annotation.Id;
+import com.mybatisflex.annotation.KeyType;
+import com.mybatisflex.annotation.Table;
+import lombok.Data;
+
+import java.io.Serial;
+import java.io.Serializable;
+import java.util.Date;
+
+/**
+ * @author monojun
+ * @description 业务表信息表
+ * @createTime 2025年08月01日
+ */
+@Data
+@Table(value = "business_data_table")
+public class BusinessDataTable implements Serializable {
+
+ @Serial
+ private static final long serialVersionUID = 1L;
+
+ /**
+ * 主键id
+ */
+ @Id(value = "id", keyType = KeyType.Auto)
+ private Long id;
+
+ /**
+ * 业务表名称
+ */
+ @Column(value = "name")
+ private String name;
+
+ /**
+ * 业务表编号
+ */
+ @Column(value = "table_no")
+ private String tableNo;
+
+ /**
+ * 业务系统id
+ */
+ @Column(value = "business_id")
+ private Long businessId;
+
+ /**
+ * 业务数据源id
+ */
+ @Column(value = "source_id")
+ private Long sourceId;
+
+ /**
+ * 描述
+ */
+ @Column(value = "description")
+ private String description;
+
+ /**
+ * 创建时间
+ */
+ @Column(value = "create_time")
+ private Date createTime;
+
+ /**
+ * 创建人
+ */
+ @Column(value = "create_user_id")
+ private Long createUserId;
+
+ /**
+ * 更新时间
+ */
+ @Column(value = "update_time")
+ private Date updateTime;
+
+ /**
+ * 更新人
+ */
+ @Column(value = "update_user_id")
+ private Long updateUserId;
+
+ /**
+ * 是否删除: 0-未删除 1-已删除
+ */
+ @Column(value = "is_deleted", isLogicDelete = true)
+ private Byte isDeleted;
+}
\ No newline at end of file
diff --git a/src/main/java/com/ediagnosis/cdr/dataCollect/dao/entity/BusinessDataTableField.java b/src/main/java/com/ediagnosis/cdr/dataCollect/dao/entity/BusinessDataTableField.java
new file mode 100644
index 0000000000000000000000000000000000000000..a2509c0a17461ad45043f0543548302e9a648838
--- /dev/null
+++ b/src/main/java/com/ediagnosis/cdr/dataCollect/dao/entity/BusinessDataTableField.java
@@ -0,0 +1,83 @@
+package com.ediagnosis.cdr.dataCollect.dao.entity;
+
+import com.mybatisflex.annotation.Column;
+import com.mybatisflex.annotation.Id;
+import com.mybatisflex.annotation.KeyType;
+import com.mybatisflex.annotation.Table;
+import lombok.Data;
+
+import java.io.Serial;
+import java.io.Serializable;
+import java.util.Date;
+
+/**
+ * @author monojun
+ * @description 业务字段信息表
+ * @createTime 2025年08月01日
+ */
+@Data
+@Table(value = "business_data_table_field")
+public class BusinessDataTableField implements Serializable {
+ @Serial
+ private static final long serialVersionUID = 1L;
+
+ /**
+ * 主键id
+ */
+ @Id(value = "id", keyType = KeyType.Auto)
+ private Long id;
+
+ /**
+ * 字段名称
+ */
+ @Column(value = "field_name")
+ private String fieldName;
+
+ /**
+ * 字段类型
+ */
+ @Column(value = "field_type")
+ private String fieldType;
+
+ /**
+ * 业务表id
+ */
+ @Column(value = "table_id")
+ private Long tableId;
+
+ /**
+ * 描述
+ */
+ @Column(value = "description")
+ private String description;
+
+ /**
+ * 创建时间
+ */
+ @Column(value = "create_time")
+ private Date createTime;
+
+ /**
+ * 创建人
+ */
+ @Column(value = "create_user_id")
+ private Long createUserId;
+
+ /**
+ * 更新时间
+ */
+ @Column(value = "update_time")
+ private Date updateTime;
+
+ /**
+ * 更新人
+ */
+ @Column(value = "update_user_id")
+ private Long updateUserId;
+
+ /**
+ * 是否删除: 0-未删除 1-已删除
+ */
+ @Column(value = "is_deleted", isLogicDelete = true)
+ private Byte isDeleted;
+}
\ No newline at end of file
diff --git a/src/main/java/com/ediagnosis/cdr/dataCollect/dao/mapper/BusinessDataSourceMapper.java b/src/main/java/com/ediagnosis/cdr/dataCollect/dao/mapper/BusinessDataSourceMapper.java
new file mode 100644
index 0000000000000000000000000000000000000000..97994e377a0adfc28c92ac0683b4c4ea7c01032d
--- /dev/null
+++ b/src/main/java/com/ediagnosis/cdr/dataCollect/dao/mapper/BusinessDataSourceMapper.java
@@ -0,0 +1,20 @@
+package com.ediagnosis.cdr.dataCollect.dao.mapper;
+
+import com.ediagnosis.cdr.dataCollect.dao.entity.BusinessDataSource;
+import com.mybatisflex.core.BaseMapper;
+import org.apache.ibatis.annotations.Mapper;
+import org.apache.ibatis.annotations.Param;
+
+import java.util.List;
+
+/**
+ * @author monojun
+ * @description 数据源mapper
+ * @createTime 2025年08月01日
+ */
+@Mapper
+public interface BusinessDataSourceMapper extends BaseMapper {
+
+ int batchInsert(@Param("list") List list);
+
+}
\ No newline at end of file
diff --git a/src/main/java/com/ediagnosis/cdr/dataCollect/dao/mapper/BusinessDataSystemMapper.java b/src/main/java/com/ediagnosis/cdr/dataCollect/dao/mapper/BusinessDataSystemMapper.java
new file mode 100644
index 0000000000000000000000000000000000000000..4e56b423d6d0d14bb92e384901bfc84778e6fb64
--- /dev/null
+++ b/src/main/java/com/ediagnosis/cdr/dataCollect/dao/mapper/BusinessDataSystemMapper.java
@@ -0,0 +1,19 @@
+package com.ediagnosis.cdr.dataCollect.dao.mapper;
+
+import com.ediagnosis.cdr.dataCollect.dao.entity.BusinessDataSystem;
+import com.mybatisflex.core.BaseMapper;
+import org.apache.ibatis.annotations.Mapper;
+import org.apache.ibatis.annotations.Param;
+
+import java.util.List;
+
+/**
+ * @author monojun
+ * @description 业务系统mapper
+ * @createTime 2025年08月01日
+ */
+@Mapper
+public interface BusinessDataSystemMapper extends BaseMapper {
+
+ int batchInsert(@Param("list") List list);
+}
\ No newline at end of file
diff --git a/src/main/java/com/ediagnosis/cdr/dataCollect/dao/mapper/BusinessDataTableFieldMapper.java b/src/main/java/com/ediagnosis/cdr/dataCollect/dao/mapper/BusinessDataTableFieldMapper.java
new file mode 100644
index 0000000000000000000000000000000000000000..e886a84c331f9f7c62fdaf0fdfdb41e704524ca8
--- /dev/null
+++ b/src/main/java/com/ediagnosis/cdr/dataCollect/dao/mapper/BusinessDataTableFieldMapper.java
@@ -0,0 +1,19 @@
+package com.ediagnosis.cdr.dataCollect.dao.mapper;
+
+import com.ediagnosis.cdr.dataCollect.dao.entity.BusinessDataTableField;
+import com.mybatisflex.core.BaseMapper;
+import org.apache.ibatis.annotations.Mapper;
+import org.apache.ibatis.annotations.Param;
+
+import java.util.List;
+
+/**
+ * @author monojun
+ * @description 业务表字段mapper
+ * @createTime 2025年08月01日
+ */
+@Mapper
+public interface BusinessDataTableFieldMapper extends BaseMapper {
+
+ int batchInsert(@Param("list") List list);
+}
\ No newline at end of file
diff --git a/src/main/java/com/ediagnosis/cdr/dataCollect/dao/mapper/BusinessDataTableMapper.java b/src/main/java/com/ediagnosis/cdr/dataCollect/dao/mapper/BusinessDataTableMapper.java
new file mode 100644
index 0000000000000000000000000000000000000000..4320472d8e077e2bbdbad6a48f738bcac0acb397
--- /dev/null
+++ b/src/main/java/com/ediagnosis/cdr/dataCollect/dao/mapper/BusinessDataTableMapper.java
@@ -0,0 +1,18 @@
+package com.ediagnosis.cdr.dataCollect.dao.mapper;
+
+import com.ediagnosis.cdr.dataCollect.dao.entity.BusinessDataTable;
+import com.mybatisflex.core.BaseMapper;
+import org.apache.ibatis.annotations.Mapper;
+import org.apache.ibatis.annotations.Param;
+
+import java.util.List;
+
+/**
+ * @author monojun
+ * @description 业务表mapper
+ * @createTime 2025年08月01日
+ */
+@Mapper
+public interface BusinessDataTableMapper extends BaseMapper {
+ int batchInsert(@Param("list") List list);
+}
\ No newline at end of file
diff --git a/src/main/java/com/ediagnosis/cdr/dataCollect/endpoint/param/DataSourceQueryParam.java b/src/main/java/com/ediagnosis/cdr/dataCollect/endpoint/param/DataSourceQueryParam.java
new file mode 100644
index 0000000000000000000000000000000000000000..b21d4c342905ee85297e7661546b949f09c0f561
--- /dev/null
+++ b/src/main/java/com/ediagnosis/cdr/dataCollect/endpoint/param/DataSourceQueryParam.java
@@ -0,0 +1,37 @@
+package com.ediagnosis.cdr.dataCollect.endpoint.param;
+
+import lombok.Data;
+
+import java.io.Serial;
+import java.util.List;
+
+/**
+ * @author monojun
+ * @description 数据源查询参数
+ * @createTime 2025年08月01日
+ */
+@Data
+public class DataSourceQueryParam extends PageQuery {
+ @Serial
+ private static final long serialVersionUID = 4384878864788101913L;
+
+ /**
+ * 业务系统id列表
+ */
+ private List businessIds;
+
+ /**
+ * 数据源名称
+ */
+ private String name;
+
+ /**
+ * ip地址
+ */
+ private String ipAddress;
+
+ /**
+ * 数据源类型
+ */
+ private String type;
+}
diff --git a/src/main/java/com/ediagnosis/cdr/dataCollect/endpoint/param/DataSystemAddParam.java b/src/main/java/com/ediagnosis/cdr/dataCollect/endpoint/param/DataSystemAddParam.java
new file mode 100644
index 0000000000000000000000000000000000000000..f7ab46de3c5e3ee62238bff0ffa1b16759a731af
--- /dev/null
+++ b/src/main/java/com/ediagnosis/cdr/dataCollect/endpoint/param/DataSystemAddParam.java
@@ -0,0 +1,29 @@
+package com.ediagnosis.cdr.dataCollect.endpoint.param;
+
+import lombok.Data;
+
+import java.io.Serial;
+import java.io.Serializable;
+
+/**
+ * @author monojun
+ * @description 业务系统新增参数
+ * @createTime 2025年08月05日
+ */
+@Data
+public class DataSystemAddParam implements Serializable {
+ @Serial
+ private static final long serialVersionUID = 8362821373667292598L;
+
+ /**
+ * 业务系统名称
+ */
+ private String name;
+
+ /**
+ * 描述
+ */
+ private String description;
+
+
+}
diff --git a/src/main/java/com/ediagnosis/cdr/dataCollect/endpoint/param/DataSystemDeleteParam.java b/src/main/java/com/ediagnosis/cdr/dataCollect/endpoint/param/DataSystemDeleteParam.java
new file mode 100644
index 0000000000000000000000000000000000000000..3ed8e7edb0819aaa718bf472602c62272f6c9158
--- /dev/null
+++ b/src/main/java/com/ediagnosis/cdr/dataCollect/endpoint/param/DataSystemDeleteParam.java
@@ -0,0 +1,19 @@
+package com.ediagnosis.cdr.dataCollect.endpoint.param;
+
+import lombok.Data;
+
+import java.io.Serial;
+import java.io.Serializable;
+
+/**
+ * @author monojun
+ * @description 业务系统删除参数
+ * @createTime 2025年08月05日
+ */
+@Data
+public class DataSystemDeleteParam implements Serializable {
+ @Serial
+ private static final long serialVersionUID = -5941215912179720671L;
+
+ private Long id;
+}
diff --git a/src/main/java/com/ediagnosis/cdr/dataCollect/endpoint/param/DataSystemQueryParam.java b/src/main/java/com/ediagnosis/cdr/dataCollect/endpoint/param/DataSystemQueryParam.java
new file mode 100644
index 0000000000000000000000000000000000000000..2424007c5d05200ed05ea0ff00a76f4b9f49c33e
--- /dev/null
+++ b/src/main/java/com/ediagnosis/cdr/dataCollect/endpoint/param/DataSystemQueryParam.java
@@ -0,0 +1,21 @@
+package com.ediagnosis.cdr.dataCollect.endpoint.param;
+
+import lombok.Data;
+
+import java.io.Serial;
+
+/**
+ * @author monojun
+ * @description 业务系统分页查询参数
+ * @createTime 2025年08月01日
+ */
+@Data
+public class DataSystemQueryParam extends PageQuery {
+ @Serial
+ private static final long serialVersionUID = 5408831076545737168L;
+
+ /**
+ * 业务系统名称
+ */
+ private String name;
+}
diff --git a/src/main/java/com/ediagnosis/cdr/dataCollect/endpoint/param/DataSystemUpdateParam.java b/src/main/java/com/ediagnosis/cdr/dataCollect/endpoint/param/DataSystemUpdateParam.java
new file mode 100644
index 0000000000000000000000000000000000000000..bbd50b1f850c662eaeaeefce0fbe8baf7b455523
--- /dev/null
+++ b/src/main/java/com/ediagnosis/cdr/dataCollect/endpoint/param/DataSystemUpdateParam.java
@@ -0,0 +1,29 @@
+package com.ediagnosis.cdr.dataCollect.endpoint.param;
+
+import lombok.Data;
+
+import java.io.Serial;
+import java.io.Serializable;
+
+/**
+ * @author monojun
+ * @description 业务系统更新参数
+ * @createTime 2025年08月05日
+ */
+@Data
+public class DataSystemUpdateParam implements Serializable {
+ @Serial
+ private static final long serialVersionUID = -7333708471431047394L;
+
+ private Long id;
+ /**
+ * 业务系统名称
+ */
+ private String name;
+
+ /**
+ * 描述
+ */
+ private String description;
+
+}
diff --git a/src/main/java/com/ediagnosis/cdr/dataCollect/endpoint/param/DataTableFieldQueryParam.java b/src/main/java/com/ediagnosis/cdr/dataCollect/endpoint/param/DataTableFieldQueryParam.java
new file mode 100644
index 0000000000000000000000000000000000000000..e3d0a2af1bbe189567e8083ab2129e16a4167124
--- /dev/null
+++ b/src/main/java/com/ediagnosis/cdr/dataCollect/endpoint/param/DataTableFieldQueryParam.java
@@ -0,0 +1,31 @@
+package com.ediagnosis.cdr.dataCollect.endpoint.param;
+
+import lombok.Data;
+
+import java.io.Serial;
+
+/**
+ * @author monojun
+ * @description 表字段查询参数
+ * @createTime 2025年08月01日
+ */
+@Data
+public class DataTableFieldQueryParam extends PageQuery {
+
+ @Serial
+ private static final long serialVersionUID = 5419533067070233483L;
+ /**
+ * 字段名称
+ */
+ private String fieldName;
+
+ /**
+ * 字段类型
+ */
+ private String fieldType;
+
+ /**
+ * 业务表id
+ */
+ private Long tableId;
+}
diff --git a/src/main/java/com/ediagnosis/cdr/dataCollect/endpoint/param/DataTableQueryParam.java b/src/main/java/com/ediagnosis/cdr/dataCollect/endpoint/param/DataTableQueryParam.java
new file mode 100644
index 0000000000000000000000000000000000000000..6da57c027a2b035be49ec002edf904f4b6a181b9
--- /dev/null
+++ b/src/main/java/com/ediagnosis/cdr/dataCollect/endpoint/param/DataTableQueryParam.java
@@ -0,0 +1,37 @@
+package com.ediagnosis.cdr.dataCollect.endpoint.param;
+
+import lombok.Data;
+
+import java.io.Serial;
+import java.util.List;
+
+/**
+ * @author monojun
+ * @description 表信息查询参数
+ * @createTime 2025年08月01日
+ */
+@Data
+public class DataTableQueryParam extends PageQuery {
+
+ @Serial
+ private static final long serialVersionUID = -6012405803243067316L;
+ /**
+ * 业务系统id列表
+ */
+ private List businessIds;
+
+ /**
+ * 业务数据源id列表
+ */
+ private List sourceIds;
+
+ /**
+ * 业务表名称
+ */
+ private String name;
+
+ /**
+ * 业务表编号
+ */
+ private String tableNo;
+}
diff --git a/src/main/java/com/ediagnosis/cdr/dataCollect/endpoint/param/PageQuery.java b/src/main/java/com/ediagnosis/cdr/dataCollect/endpoint/param/PageQuery.java
new file mode 100644
index 0000000000000000000000000000000000000000..739e0a24f09298808f1cb63a5a1a5632c94f2a15
--- /dev/null
+++ b/src/main/java/com/ediagnosis/cdr/dataCollect/endpoint/param/PageQuery.java
@@ -0,0 +1,26 @@
+package com.ediagnosis.cdr.dataCollect.endpoint.param;
+
+import lombok.Data;
+
+import java.io.Serial;
+import java.io.Serializable;
+
+/**
+ * 可以传入一个实体T类型来接收该类型属性值。
+ *
+ * @author wangziqiao
+ */
+@Data
+public class PageQuery implements Serializable {
+
+ @Serial
+ private static final long serialVersionUID = -1808475912533720127L;
+
+ private int pageNo = 1;
+
+ private int pageSize = 10;
+
+ public int getOffset() {
+ return (pageNo - 1) * pageSize;
+ }
+}
diff --git a/src/main/java/com/ediagnosis/cdr/dataCollect/endpoint/vo/BusinessDataSourceVo.java b/src/main/java/com/ediagnosis/cdr/dataCollect/endpoint/vo/BusinessDataSourceVo.java
new file mode 100644
index 0000000000000000000000000000000000000000..10d5bf3ae49825d9e041dc03e7af13a8f23e4f4b
--- /dev/null
+++ b/src/main/java/com/ediagnosis/cdr/dataCollect/endpoint/vo/BusinessDataSourceVo.java
@@ -0,0 +1,83 @@
+package com.ediagnosis.cdr.dataCollect.endpoint.vo;
+
+import lombok.Data;
+
+import java.io.Serial;
+import java.io.Serializable;
+import java.util.Date;
+
+/**
+ * @author monojun
+ * @description 数据源信息
+ * @createTime 2025年07月31日
+ */
+@Data
+public class BusinessDataSourceVo implements Serializable {
+ @Serial
+ private static final long serialVersionUID = -4205114103165887164L;
+
+ /**
+ * 主键id
+ */
+ private Long id;
+
+ /**
+ * 数据源名称
+ */
+ private String name;
+
+ /**
+ * 数据源类型(mysql、oracle、postgreSQL、sqlserver、h2、sqlite)
+ */
+ private String type;
+
+ /**
+ * IP地址
+ */
+ private String ipAddress;
+
+ /**
+ * 业务系统id
+ */
+ private Long bizSystemId;
+
+ /**
+ * 业务系统名称
+ */
+ private String bizSystemName;
+
+ /**
+ * 描述
+ */
+ private String description;
+
+ /**
+ * 属性
+ */
+ private String properties;
+
+ /**
+ * 连接状态
+ */
+ private Integer status;
+
+ /**
+ * 创建时间
+ */
+ private Date createTime;
+
+ /**
+ * 创建人
+ */
+ private Long createUserId;
+
+ /**
+ * 更新时间
+ */
+ private Date updateTime;
+
+ /**
+ * 更新人
+ */
+ private Long updateUserId;
+}
diff --git a/src/main/java/com/ediagnosis/cdr/dataCollect/endpoint/vo/BusinessDataSystemVo.java b/src/main/java/com/ediagnosis/cdr/dataCollect/endpoint/vo/BusinessDataSystemVo.java
new file mode 100644
index 0000000000000000000000000000000000000000..a3cb847cc47e6793a6ca96b3011dbc3c832493f9
--- /dev/null
+++ b/src/main/java/com/ediagnosis/cdr/dataCollect/endpoint/vo/BusinessDataSystemVo.java
@@ -0,0 +1,53 @@
+package com.ediagnosis.cdr.dataCollect.endpoint.vo;
+
+import lombok.Data;
+
+import java.io.Serial;
+import java.io.Serializable;
+import java.util.Date;
+
+/**
+ * @author monojun
+ * @description 业务系统信息
+ * @createTime 2025年07月31日
+ */
+@Data
+public class BusinessDataSystemVo implements Serializable {
+ @Serial
+ private static final long serialVersionUID = 1995094555769215993L;
+ /**
+ * 主键id
+ */
+ private Long id;
+
+ /**
+ * 业务系统名称
+ */
+ private String name;
+
+ /**
+ * 描述
+ */
+ private String description;
+
+ /**
+ * 创建时间
+ */
+ private Date createTime;
+
+ /**
+ * 创建人
+ */
+ private Long createUserId;
+
+ /**
+ * 更新时间
+ */
+ private Date updateTime;
+
+ /**
+ * 更新人
+ */
+ private Long updateUserId;
+
+}
diff --git a/src/main/java/com/ediagnosis/cdr/dataCollect/endpoint/vo/BusinessDataTableFieldVo.java b/src/main/java/com/ediagnosis/cdr/dataCollect/endpoint/vo/BusinessDataTableFieldVo.java
new file mode 100644
index 0000000000000000000000000000000000000000..6a0d2f5839ffa7fef36e5f6b30892d5133db69fa
--- /dev/null
+++ b/src/main/java/com/ediagnosis/cdr/dataCollect/endpoint/vo/BusinessDataTableFieldVo.java
@@ -0,0 +1,63 @@
+package com.ediagnosis.cdr.dataCollect.endpoint.vo;
+
+import lombok.Data;
+
+import java.io.Serial;
+import java.io.Serializable;
+import java.util.Date;
+
+/**
+ * @author monojun
+ * @description 表字段信息
+ * @createTime 2025年07月31日
+ */
+@Data
+public class BusinessDataTableFieldVo implements Serializable {
+ @Serial
+ private static final long serialVersionUID = 3062177923173755855L;
+
+ /**
+ * 主键id
+ */
+ private Long id;
+
+ /**
+ * 字段名称
+ */
+ private String fieldName;
+
+ /**
+ * 字段类型
+ */
+ private String fieldType;
+
+ /**
+ * 业务表id
+ */
+ private Long tableId;
+
+ /**
+ * 描述
+ */
+ private String description;
+
+ /**
+ * 创建时间
+ */
+ private Date createTime;
+
+ /**
+ * 创建人
+ */
+ private Long createUserId;
+
+ /**
+ * 更新时间
+ */
+ private Date updateTime;
+
+ /**
+ * 更新人
+ */
+ private Long updateUserId;
+}
diff --git a/src/main/java/com/ediagnosis/cdr/dataCollect/endpoint/vo/BusinessDataTableVo.java b/src/main/java/com/ediagnosis/cdr/dataCollect/endpoint/vo/BusinessDataTableVo.java
new file mode 100644
index 0000000000000000000000000000000000000000..3f814a3ed57fdc54d874b1abff81eee9a443fbc8
--- /dev/null
+++ b/src/main/java/com/ediagnosis/cdr/dataCollect/endpoint/vo/BusinessDataTableVo.java
@@ -0,0 +1,78 @@
+package com.ediagnosis.cdr.dataCollect.endpoint.vo;
+
+import lombok.Data;
+
+import java.io.Serial;
+import java.io.Serializable;
+import java.util.Date;
+
+/**
+ * @author monojun
+ * @description 表信息
+ * @createTime 2025年07月31日
+ */
+@Data
+public class BusinessDataTableVo implements Serializable {
+ @Serial
+ private static final long serialVersionUID = 8791629491093128048L;
+
+ /**
+ * 主键id
+ */
+ private Long id;
+
+ /**
+ * 业务表名称
+ */
+ private String name;
+
+ /**
+ * 业务表编号
+ */
+ private String tableNo;
+
+ /**
+ * 业务系统id
+ */
+ private Long businessId;
+
+ /**
+ * 业务系统名称
+ */
+ private String businessName;
+
+ /**
+ * 业务数据源id
+ */
+ private Long sourceId;
+
+ /**
+ * 业务数据源名称
+ */
+ private String sourceName;
+
+ /**
+ * 描述
+ */
+ private String description;
+
+ /**
+ * 创建时间
+ */
+ private Date createTime;
+
+ /**
+ * 创建人
+ */
+ private Long createUserId;
+
+ /**
+ * 更新时间
+ */
+ private Date updateTime;
+
+ /**
+ * 更新人
+ */
+ private Long updateUserId;
+}
diff --git a/src/main/java/com/ediagnosis/cdr/dataCollect/inner/BusinessDataRepository.java b/src/main/java/com/ediagnosis/cdr/dataCollect/inner/BusinessDataRepository.java
new file mode 100644
index 0000000000000000000000000000000000000000..b8dc93f6f1144d7a1bcfcb0528e5e1cf7d734b9b
--- /dev/null
+++ b/src/main/java/com/ediagnosis/cdr/dataCollect/inner/BusinessDataRepository.java
@@ -0,0 +1,62 @@
+package com.ediagnosis.cdr.dataCollect.inner;
+
+
+import com.ediagnosis.cdr.dataCollect.dao.BusinessDataDao;
+import com.ediagnosis.cdr.dataCollect.dao.dto.*;
+import com.ediagnosis.cdr.dataCollect.dao.entity.BusinessDataSystem;
+import com.ediagnosis.cdr.dataCollect.dao.entity.BusinessDataTableField;
+import com.mybatisflex.core.paginate.Page;
+import lombok.RequiredArgsConstructor;
+import org.springframework.stereotype.Repository;
+
+/**
+ * @author monojun
+ * @description BusinessDataRepository
+ * @createTime 2025年08月04日
+ */
+@Repository
+@RequiredArgsConstructor
+public class BusinessDataRepository {
+
+ private final BusinessDataDao businessDataDao;
+
+ /**
+ * 分页查询业务系统信息
+ *
+ * @param queryDTO 查询dto
+ * @return PageInfo
+ */
+ public Page queryPage(BusinessDataSystemQueryDTO queryDTO) {
+ return businessDataDao.querySystemPage(queryDTO);
+ }
+
+ /**
+ * 分页查询业务数据源信息
+ *
+ * @param queryDTO 查询dto
+ * @return PageInfo
+ */
+ public Page querySourcePage(BusinessDataSourceQueryDTO queryDTO) {
+ return businessDataDao.querySourcePage(queryDTO);
+ }
+
+ /**
+ * 分页查询业务表信息
+ *
+ * @param queryDTO 查询dto
+ * @return PageInfo
+ */
+ public Page queryTablePage(BusinessDataTableQueryDTO queryDTO) {
+ return businessDataDao.queryTablePage(queryDTO);
+ }
+
+ /**
+ * 分页查询业务表字段信息
+ *
+ * @param queryDTO 查询dto
+ * @return PageInfo
+ */
+ public Page queryFieldPage(BusinessDataTableFieldQueryDTO queryDTO) {
+ return businessDataDao.queryFieldPage(queryDTO);
+ }
+}
diff --git a/src/main/java/com/ediagnosis/cdr/dataCollect/inner/BusinessSystemRepository.java b/src/main/java/com/ediagnosis/cdr/dataCollect/inner/BusinessSystemRepository.java
new file mode 100644
index 0000000000000000000000000000000000000000..83be93bebbec748d5f38e537ccaae7647ab3a836
--- /dev/null
+++ b/src/main/java/com/ediagnosis/cdr/dataCollect/inner/BusinessSystemRepository.java
@@ -0,0 +1,63 @@
+package com.ediagnosis.cdr.dataCollect.inner;
+
+import com.ediagnosis.cdr.dataCollect.dao.BusinessDataDao;
+import com.ediagnosis.cdr.dataCollect.dao.dto.BusinessDataSystemDTO;
+import com.ediagnosis.cdr.dataCollect.dao.dto.BusinessDataSystemQueryDTO;
+import com.ediagnosis.cdr.dataCollect.dao.entity.BusinessDataSystem;
+import com.mybatisflex.core.paginate.Page;
+import lombok.RequiredArgsConstructor;
+import org.springframework.stereotype.Repository;
+
+/**
+ * @author monojun
+ * @description BusinessSystemRepository
+ * @createTime 2025年08月05日
+ */
+@Repository
+@RequiredArgsConstructor
+public class BusinessSystemRepository {
+
+ private final BusinessDataDao businessDataDao;
+
+ /**
+ * 新增业务系统
+ *
+ * @param dataSystemDTO 业务系统dto
+ * @return 业务系统主键id
+ */
+ public Long addDataSystem(BusinessDataSystemDTO dataSystemDTO) {
+ businessDataDao.addDataSystem(dataSystemDTO);
+ return businessDataDao.addDataSystem(dataSystemDTO);
+ }
+
+
+ /**
+ * 更新业务系统
+ *
+ * @param dataSystemDTO 业务系统dto
+ * @return 业务系统主键id
+ */
+ public Long updateDataSystem(BusinessDataSystemDTO dataSystemDTO) {
+ return businessDataDao.updateDataSystem(dataSystemDTO);
+ }
+
+ /**
+ * 分页查询业务系统信息
+ *
+ * @param queryDTO 查询dto
+ * @return PageInfo
+ */
+ public Page queryPage(BusinessDataSystemQueryDTO queryDTO) {
+ return businessDataDao.querySystemPage(queryDTO);
+ }
+
+ /**
+ * 删除业务系统
+ *
+ * @param dataSystemId 业务系统id
+ */
+ public void deleteDataSystem(Long dataSystemId) {
+ businessDataDao.deleteDataSystem(dataSystemId);
+ }
+
+}
diff --git a/src/main/java/com/ediagnosis/cdr/dataService/DwsRepository.java b/src/main/java/com/ediagnosis/cdr/dataService/DwsRepository.java
index d24ddfec2ca4d74d5e170418e8626cbda33e8108..ee1e03e5f4e3d3cfd092acf0da00ce8e17a8173e 100644
--- a/src/main/java/com/ediagnosis/cdr/dataService/DwsRepository.java
+++ b/src/main/java/com/ediagnosis/cdr/dataService/DwsRepository.java
@@ -19,7 +19,7 @@ public class DwsRepository {
this.hiveQueryExecutor = hiveQueryExecutor;
}
- public Page