From 9b76b6fae4c5ad8c1492327885facf35711cd256 Mon Sep 17 00:00:00 2001 From: Saisai Liu <1374434128@qq.com> Date: Tue, 30 Apr 2024 08:31:34 +0800 Subject: [PATCH] =?UTF-8?q?fix:=E4=BC=98=E5=8C=96=E8=B5=84=E4=BA=A7?= =?UTF-8?q?=E7=BB=93=E6=9E=84=E6=8E=A5=E5=8F=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../com/muyu/etl/domain/AssetImpower.java | 46 ----- .../muyu/etl/domain/req/AssetImpowerReq.java | 49 +++++ .../controller/BasicConfigInfoController.java | 21 +- .../etl/service/AssetDataDictService.java | 2 + .../etl/service/BasicConfigInfoService.java | 3 + .../muyu/etl/service/TableInfoService.java | 1 + .../impl/AssetDataDictServiceImpl.java | 3 + .../impl/BasicConfigInfoServiceImpl.java | 182 +++++++----------- .../service/impl/TableInfoServiceImpl.java | 33 ++-- 9 files changed, 166 insertions(+), 174 deletions(-) create mode 100644 muyu-modules/muyv-etl/muyu-etl-common/src/main/java/com/muyu/etl/domain/req/AssetImpowerReq.java diff --git a/muyu-modules/muyv-etl/muyu-etl-common/src/main/java/com/muyu/etl/domain/AssetImpower.java b/muyu-modules/muyv-etl/muyu-etl-common/src/main/java/com/muyu/etl/domain/AssetImpower.java index 87b0b25..e37f934 100644 --- a/muyu-modules/muyv-etl/muyu-etl-common/src/main/java/com/muyu/etl/domain/AssetImpower.java +++ b/muyu-modules/muyv-etl/muyu-etl-common/src/main/java/com/muyu/etl/domain/AssetImpower.java @@ -45,50 +45,4 @@ public class AssetImpower extends BaseEntity { @Excel(name = "用户id") private Long userId; - public void setId(Long id) { - this.id = id; - } - - public Long getId() { - return id; - } - - public void setTableId(Long tableId) { - this.tableId = tableId; - } - - public Long getTableId() { - return tableId; - } - - public void setTypeId(Long typeId) { - this.typeId = typeId; - } - - public Long getTypeId() { - return typeId; - } - - public void setUserId(Long userId) { - this.userId = userId; - } - - public Long getUserId() { - return userId; - } - - @Override - public String toString() { - return new ToStringBuilder(this, ToStringStyle.MULTI_LINE_STYLE) - .append("id", getId()) - .append("tableId", getTableId()) - .append("typeId", getTypeId()) - .append("userId", getUserId()) - .append("remark", getRemark()) - .append("createBy", getCreateBy()) - .append("createTime", getCreateTime()) - .append("updateBy", getUpdateBy()) - .append("updateTime", getUpdateTime()) - .toString(); - } } diff --git a/muyu-modules/muyv-etl/muyu-etl-common/src/main/java/com/muyu/etl/domain/req/AssetImpowerReq.java b/muyu-modules/muyv-etl/muyu-etl-common/src/main/java/com/muyu/etl/domain/req/AssetImpowerReq.java new file mode 100644 index 0000000..054746b --- /dev/null +++ b/muyu-modules/muyv-etl/muyu-etl-common/src/main/java/com/muyu/etl/domain/req/AssetImpowerReq.java @@ -0,0 +1,49 @@ +package com.muyu.etl.domain.req; + +import com.baomidou.mybatisplus.annotation.IdType; +import com.baomidou.mybatisplus.annotation.TableId; +import com.muyu.common.core.annotation.Excel; +import lombok.AllArgsConstructor; +import lombok.Data; +import lombok.NoArgsConstructor; +import lombok.experimental.SuperBuilder; + +/** + * @ClassName AssetImpowerReq + * @Description 描述 + * @Author SaiSai.Liu + * @Date 2024/4/29 14:04 + */ +@Data +@NoArgsConstructor +@AllArgsConstructor +@SuperBuilder +public class AssetImpowerReq { + private static final long serialVersionUID = 1L; + + + /** + * 主键 + */ + @TableId(value = "id",type = IdType.AUTO) + private Long id; + + /** + * 表id + */ + @Excel(name = "表id") + private Long tableId; + + /** + * 部门id + */ + @Excel(name = "部门id") + private Long typeId; + + /** + * 用户id + */ + @Excel(name = "用户id") + private Long userId; + +} diff --git a/muyu-modules/muyv-etl/muyu-etl-service/src/main/java/com/muyu/etl/controller/BasicConfigInfoController.java b/muyu-modules/muyv-etl/muyu-etl-service/src/main/java/com/muyu/etl/controller/BasicConfigInfoController.java index 6a0bdee..c48e024 100644 --- a/muyu-modules/muyv-etl/muyu-etl-service/src/main/java/com/muyu/etl/controller/BasicConfigInfoController.java +++ b/muyu-modules/muyv-etl/muyu-etl-service/src/main/java/com/muyu/etl/controller/BasicConfigInfoController.java @@ -12,11 +12,9 @@ import com.muyu.etl.domain.BasicConfigInfo; import com.muyu.etl.domain.DictInfo; import com.muyu.etl.domain.Structure; import com.muyu.etl.domain.resp.BasicDictResp; +import com.muyu.etl.domain.resp.TableInfoStructureResp; import com.muyu.etl.domain.resp.TableTreeResp; -import com.muyu.etl.service.AssetDataDictService; -import com.muyu.etl.service.BasicConfigInfoService; -import com.muyu.etl.service.DictInfoService; -import com.muyu.etl.service.StructureService; +import com.muyu.etl.service.*; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.*; @@ -38,6 +36,8 @@ public class BasicConfigInfoController extends BaseController { @Autowired private AssetDataDictService assetDataDictService; @Autowired + private TableInfoService tableInfoService; + @Autowired private DictInfoService dictInfoService; @Autowired private StructureService structureService; @@ -149,6 +149,19 @@ public class BasicConfigInfoController extends BaseController { return Result.success(assetDataDictService.getDict(basicId)); } + + /** + * 通过tableId查询表信息 + * + * @return + */ + + @Log(title = "描述") + @GetMapping("/getTableInfo/{tableId}") + public Result getTableInfo(@PathVariable Long tableId) { + return Result.success(basicConfigInfoService.getTableInfo(tableId)); + } + /** * 添加字典表 * diff --git a/muyu-modules/muyv-etl/muyu-etl-service/src/main/java/com/muyu/etl/service/AssetDataDictService.java b/muyu-modules/muyv-etl/muyu-etl-service/src/main/java/com/muyu/etl/service/AssetDataDictService.java index e1677da..2e361ad 100644 --- a/muyu-modules/muyv-etl/muyu-etl-service/src/main/java/com/muyu/etl/service/AssetDataDictService.java +++ b/muyu-modules/muyv-etl/muyu-etl-service/src/main/java/com/muyu/etl/service/AssetDataDictService.java @@ -5,6 +5,7 @@ import java.util.List; import com.baomidou.mybatisplus.extension.service.IService; import com.muyu.etl.domain.AssetDataDict; import com.muyu.etl.domain.resp.BasicDictResp; +import com.muyu.etl.domain.resp.TableInfoStructureResp; import javax.servlet.ServletException; @@ -65,4 +66,5 @@ public interface AssetDataDictService extends IService public int deleteAssetDataDictById(Long id); List getDict(Long basicId); + } diff --git a/muyu-modules/muyv-etl/muyu-etl-service/src/main/java/com/muyu/etl/service/BasicConfigInfoService.java b/muyu-modules/muyv-etl/muyu-etl-service/src/main/java/com/muyu/etl/service/BasicConfigInfoService.java index de1f625..23a57d5 100644 --- a/muyu-modules/muyv-etl/muyu-etl-service/src/main/java/com/muyu/etl/service/BasicConfigInfoService.java +++ b/muyu-modules/muyv-etl/muyu-etl-service/src/main/java/com/muyu/etl/service/BasicConfigInfoService.java @@ -4,6 +4,7 @@ import com.baomidou.mybatisplus.extension.service.IService; import com.muyu.common.core.domain.Result; import com.muyu.common.core.web.page.TableDataInfo; import com.muyu.etl.domain.BasicConfigInfo; +import com.muyu.etl.domain.resp.TableInfoStructureResp; import com.muyu.etl.domain.resp.TableTreeResp; import javax.servlet.ServletException; @@ -70,4 +71,6 @@ public interface BasicConfigInfoService extends IService // List getDataByEtl(); List getTableTree(); + + TableInfoStructureResp getTableInfo(Long tableId); } diff --git a/muyu-modules/muyv-etl/muyu-etl-service/src/main/java/com/muyu/etl/service/TableInfoService.java b/muyu-modules/muyv-etl/muyu-etl-service/src/main/java/com/muyu/etl/service/TableInfoService.java index 87b8044..b600922 100644 --- a/muyu-modules/muyv-etl/muyu-etl-service/src/main/java/com/muyu/etl/service/TableInfoService.java +++ b/muyu-modules/muyv-etl/muyu-etl-service/src/main/java/com/muyu/etl/service/TableInfoService.java @@ -4,6 +4,7 @@ import java.util.List; import com.baomidou.mybatisplus.extension.service.IService; import com.muyu.etl.domain.TableInfo; +import com.muyu.etl.domain.resp.TableInfoStructureResp; /** * 库表基础信息Service接口 diff --git a/muyu-modules/muyv-etl/muyu-etl-service/src/main/java/com/muyu/etl/service/impl/AssetDataDictServiceImpl.java b/muyu-modules/muyv-etl/muyu-etl-service/src/main/java/com/muyu/etl/service/impl/AssetDataDictServiceImpl.java index bf06cd9..04fb487 100644 --- a/muyu-modules/muyv-etl/muyu-etl-service/src/main/java/com/muyu/etl/service/impl/AssetDataDictServiceImpl.java +++ b/muyu-modules/muyv-etl/muyu-etl-service/src/main/java/com/muyu/etl/service/impl/AssetDataDictServiceImpl.java @@ -9,6 +9,7 @@ import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.muyu.common.core.utils.DateUtils; import com.muyu.etl.domain.DictInfo; import com.muyu.etl.domain.resp.BasicDictResp; +import com.muyu.etl.domain.resp.TableInfoStructureResp; import com.muyu.etl.service.DictInfoService; import lombok.extern.log4j.Log4j2; import org.springframework.beans.factory.annotation.Autowired; @@ -133,4 +134,6 @@ public class AssetDataDictServiceImpl extends ServiceImpl(TableInfo.class) {{ eq(TableInfo::getTableName, tableInfoInsert.getTableName()); eq(TableInfo::getBasicId, basicConfigInfo.getId()); @@ -166,19 +171,32 @@ public class BasicConfigInfoServiceImpl extends ServiceImpl(TableInfo.class) {{ + tableInfoService.saveOrUpdate(build, new LambdaUpdateWrapper<>(TableInfo.class) {{ eq(TableInfo::getTableName, build.getTableName()); eq(TableInfo::getBasicId, basicConfigInfo.getId()); }}); TableInfo table = tableInfoService.selectTableInfoByName(build); //线程池 + ExecutorService threadPool = Executors.newCachedThreadPool(); + + threadPool.submit(()->{ + try { + syncData(finalConn, databaseName, table); + } catch (SQLException e) { + try { + throw new ServletException("同步数据失败"); + } catch (ServletException ex) { + throw new RuntimeException(ex.getMessage()); + } + } + }); Runnable thread = new Runnable() { @SneakyThrows @Override @@ -193,17 +211,23 @@ public class BasicConfigInfoServiceImpl extends ServiceImpl() {{ - eq(Structure::getTableId, build.getTableId()); - eq(Structure::getColumnName, build.getColumnName()); - eq(Structure::getColumnRemark, build.getColumnRemark()); - }}); - } + threadPool.submit(() -> { + structureService.saveOrUpdate(build, new LambdaUpdateWrapper() {{ + eq(Structure::getTableId, build.getTableId()); + eq(Structure::getColumnName, build.getColumnName()); + eq(Structure::getColumnRemark, build.getColumnRemark()); + }}); }); } threadPool.shutdown(); ps.close(); } -// /** -// * 获取数据接入接口数据 -// * @return -// */ -// @Override -// public List getDataByEtl() { -// List list = this.list(); -// List>> mapList = new ArrayList<>(); -// for (BasicConfigInfo info : list) { -// //定义下面需要的对象 -// String url = "jdbc:" + info.getDatabaseType() + "://" + info.getHost() + ":" + info.getPort() + "/" + info.getDatabaseName() + ""; -// String user = info.getUsername(); -// String password = info.getPassword(); -// Connection conn = null; -// try { -// conn = DriverManager.getConnection(url, user, password); -// DatabaseMetaData metaData = conn.getMetaData(); -// ResultSet resultSet = metaData.getCatalogs(); -// while (resultSet.next()){ -// //库名 -// String catalogs = resultSet.getString("TABLE_CAT"); -// log.info(catalogs); -// // 获取表名 -// ResultSet rs = metaData.getTables(info.getDatabaseName(),null, "%", new String[]{"TABLE", "VIEW"}); -// try { -// ArrayList tableName = new ArrayList<>(); -// while (rs.next()) { -// //表名 -// String tableName = rs.getString("TABLE_NAME"); -// tableName.add( rs.getString("TABLE_NAME")); -// } -// mapList.add(new HashMap<>(){{ -// //库名,表名 -// put(catalogs,tableName); -// }}); -// }catch (Exception exception){ -// continue; -// } -// } -// } catch (Exception e){ -// log.error(e.getMessage()); -// continue; -// } -// } -// return mapList; -// } - /** * 获取响应体对象 * * @return */ - @Override public List getTableTree() { ExecutorService threadPool = Executors.newCachedThreadPool(); @@ -336,57 +308,29 @@ public class BasicConfigInfoServiceImpl extends ServiceImpl tableInfoStructureRespList = tableInfoService.selectTableInfoList(new TableInfo() {{ setParentId(tableInfo.getId()); }}).stream().map(info -> { - TableInfoStructureResp tableInfoStructureResp=null; - Future submit = threadPool.submit(new Callable() { - @Override - public TableInfoStructureResp call() throws Exception { - List structureList = structureService.list(new LambdaQueryWrapper().eq(Structure::getTableId, info.getId())); - return TableInfoStructureResp.builder() - .id(info.getId()) - .tableName(info.getTableName()) - .center(info.getCenter()) - .tableRemark(info.getTableRemark()) - .dataNum(info.getDataNum()) - .parentId(info.getParentId()) - .databaseType(basicConfigInfo.getDatabaseType()) - .structureList(structureList) - .basicId(info.getBasicId()) - .build(); - } + TableInfoStructureResp tableInfoStructureResp = null; + Future submit = threadPool.submit(() -> { +// List structureList = structureService.list(new LambdaQueryWrapper().eq(Structure::getTableId, info.getId())); + return TableInfoStructureResp.builder() + .id(info.getId()) + .tableName(info.getTableName()) + .center(info.getCenter()) + .tableRemark(info.getTableRemark()) + .dataNum(info.getDataNum()) + .parentId(info.getParentId()) + .databaseType(basicConfigInfo.getDatabaseType()) + .structureList(null) + .basicId(info.getBasicId()) + .build(); }); try { - tableInfoStructureResp= submit.get(); + tableInfoStructureResp = submit.get(); } catch (Exception e) { log.error(e.getMessage()); throw new RuntimeException(e); } return tableInfoStructureResp; -// TableInfoStructureResp callable = null; - //同构线程获取响应体对象 -// try { -// callable = new Callable<>() { -// @Override -// public TableInfoStructureResp call() throws Exception { -// List structureList = structureService.list(new LambdaQueryWrapper().eq(Structure::getTableId, info.getId())); -// return TableInfoStructureResp.builder() -// .id(info.getId()) -// .tableName(info.getTableName()) -// .center(info.getCenter()) -// .tableRemark(info.getTableRemark()) -// .dataNum(info.getDataNum()) -// .parentId(info.getParentId()) -// .databaseType(basicConfigInfo.getDatabaseType()) -// .structureList(structureList) -// .basicId(info.getBasicId()) -// .build(); -// } -// }.call(); -// } catch (Exception e) { -// throw new RuntimeException(e); -// } -// return callable; }).collect(Collectors.toList()); - return TableTreeResp.builder() .tableInfo(tableInfo) .basicConfigInfo(basicConfigInfo) @@ -394,11 +338,29 @@ public class BasicConfigInfoServiceImpl extends ServiceImpl structureList = structureService.list(new LambdaQueryWrapper() + .eq(Structure::getTableId, tableInfo.getId())); + return TableInfoStructureResp.builder() + .id(tableInfo.getId()) + .tableName(tableInfo.getTableName()) + .center(tableInfo.getCenter()) + .tableRemark(tableInfo.getTableRemark()) + .dataNum(tableInfo.getDataNum()) + .parentId(tableInfo.getParentId()) + .databaseType(basicConfigInfo.getDatabaseType()) + .structureList(structureList) + .basicId(tableInfo.getBasicId()) + .build(); + } + } diff --git a/muyu-modules/muyv-etl/muyu-etl-service/src/main/java/com/muyu/etl/service/impl/TableInfoServiceImpl.java b/muyu-modules/muyv-etl/muyu-etl-service/src/main/java/com/muyu/etl/service/impl/TableInfoServiceImpl.java index 27e0318..0899b56 100644 --- a/muyu-modules/muyv-etl/muyu-etl-service/src/main/java/com/muyu/etl/service/impl/TableInfoServiceImpl.java +++ b/muyu-modules/muyv-etl/muyu-etl-service/src/main/java/com/muyu/etl/service/impl/TableInfoServiceImpl.java @@ -1,9 +1,16 @@ package com.muyu.etl.service.impl; import java.util.List; +import java.util.concurrent.Future; +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.muyu.common.core.utils.DateUtils; +import com.muyu.etl.domain.BasicConfigInfo; +import com.muyu.etl.domain.Structure; +import com.muyu.etl.domain.resp.TableInfoStructureResp; +import com.muyu.etl.service.BasicConfigInfoService; +import com.muyu.etl.service.StructureService; import lombok.extern.log4j.Log4j2; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; @@ -19,10 +26,12 @@ import com.muyu.etl.service.TableInfoService; */ @Log4j2 @Service -public class TableInfoServiceImpl extends ServiceImpl implements TableInfoService -{ +public class TableInfoServiceImpl extends ServiceImpl implements TableInfoService { @Autowired private TableInfoMapper tableInfoMapper; + @Autowired + private StructureService structureService; + /** * 查询库表基础信息 @@ -31,8 +40,7 @@ public class TableInfoServiceImpl extends ServiceImpl selectTableInfoList(TableInfo tableInfo) - { + public List selectTableInfoList(TableInfo tableInfo) { return tableInfoMapper.selectTableInfoList(tableInfo); } @@ -55,8 +62,7 @@ public class TableInfoServiceImpl extends ServiceImpl