From 8a1699ddfdc7fda9d84f02257759692aa0ce1806 Mon Sep 17 00:00:00 2001 From: Saisai Liu <1374434128@qq.com> Date: Sun, 28 Apr 2024 21:53:29 +0800 Subject: [PATCH] =?UTF-8?q?fix:=E4=BF=AE=E6=94=B9bug=E3=80=81=E4=BC=98?= =?UTF-8?q?=E5=8C=96=201=E3=80=81=E7=BA=BF=E7=A8=8B=E4=B8=AD=E6=8F=90?= =?UTF-8?q?=E5=89=8D=E5=85=B3=E9=97=AD=E4=BA=86conn=E8=BF=9E=E6=8E=A5?= =?UTF-8?q?=E5=AF=BC=E8=87=B4=E4=B8=BB=E7=BA=BF=E7=A8=8B=E6=97=A0=E6=B3=95?= =?UTF-8?q?=E7=BB=A7=E7=BB=AD=EF=BC=9B=202=E3=80=81=E5=B0=86=E5=B9=B6?= =?UTF-8?q?=E5=8F=91=E5=A4=9A=E7=BA=BF=E7=A8=8B=E6=94=BE=E5=85=A5=E7=BA=BF?= =?UTF-8?q?=E7=A8=8B=E6=B1=A0=EF=BC=8C=E7=94=B1=E7=BA=BF=E7=A8=8B=E6=B1=A0?= =?UTF-8?q?=E7=B3=BB=E7=BB=9F=E6=80=A7=E7=AE=A1=E7=90=86=EF=BC=8C=E6=8F=90?= =?UTF-8?q?=E6=B3=95=E5=B9=B6=E5=8F=91=E6=88=96=E5=BC=82=E6=AD=A5=E6=80=A7?= =?UTF-8?q?=E8=83=BD=203=E3=80=81=E5=BC=80=E5=90=AF=E8=B5=84=E4=BA=A7?= =?UTF-8?q?=E6=8E=88=E6=9D=83=E6=A8=A1=E5=9D=97?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../com/muyu/etl/domain/AssetImpower.java | 94 ++++ .../java/com/muyu/etl/domain/TableInfo.java | 2 - .../controller/AssetImpowerController.java | 104 +++++ .../controller/BasicConfigInfoController.java | 31 +- .../muyu/etl/mapper/AssetImpowerMapper.java | 63 +++ .../muyu/etl/service/AssetImpowerService.java | 63 +++ .../etl/service/BasicConfigInfoService.java | 2 +- .../impl/AssetDataDictServiceImpl.java | 3 +- .../service/impl/AssetImpowerServiceImpl.java | 98 +++++ .../impl/BasicConfigInfoServiceImpl.java | 406 ++++++++++-------- .../resources/mapper/AssetImpowerMapper.xml | 86 ++++ .../mapper/BasicConfigInfoMapper.xml | 4 +- 12 files changed, 757 insertions(+), 199 deletions(-) create mode 100644 muyu-modules/muyv-etl/muyu-etl-common/src/main/java/com/muyu/etl/domain/AssetImpower.java create mode 100644 muyu-modules/muyv-etl/muyu-etl-service/src/main/java/com/muyu/etl/controller/AssetImpowerController.java create mode 100644 muyu-modules/muyv-etl/muyu-etl-service/src/main/java/com/muyu/etl/mapper/AssetImpowerMapper.java create mode 100644 muyu-modules/muyv-etl/muyu-etl-service/src/main/java/com/muyu/etl/service/AssetImpowerService.java create mode 100644 muyu-modules/muyv-etl/muyu-etl-service/src/main/java/com/muyu/etl/service/impl/AssetImpowerServiceImpl.java create mode 100644 muyu-modules/muyv-etl/muyu-etl-service/src/main/resources/mapper/AssetImpowerMapper.xml 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 new file mode 100644 index 0000000..87b0b25 --- /dev/null +++ b/muyu-modules/muyv-etl/muyu-etl-common/src/main/java/com/muyu/etl/domain/AssetImpower.java @@ -0,0 +1,94 @@ +package com.muyu.etl.domain; + +import com.muyu.common.core.annotation.Excel; +import com.muyu.common.core.web.domain.BaseEntity; +import lombok.AllArgsConstructor; +import lombok.Data; +import lombok.NoArgsConstructor; +import lombok.experimental.SuperBuilder; +import org.apache.commons.lang3.builder.ToStringBuilder; +import org.apache.commons.lang3.builder.ToStringStyle; + +/** + * 资产赋权对象 asset_impower + * + * @author Saisai + * @date 2024-04-28 + */ +@Data +@NoArgsConstructor +@AllArgsConstructor +@SuperBuilder +public class AssetImpower extends BaseEntity { + private static final long serialVersionUID = 1L; + + /** + * 主键 + */ + private Long id; + + /** + * 表id + */ + @Excel(name = "表id") + private Long tableId; + + /** + * 部门id + */ + @Excel(name = "部门id") + private Long typeId; + + /** + * 用户id + */ + @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/TableInfo.java b/muyu-modules/muyv-etl/muyu-etl-common/src/main/java/com/muyu/etl/domain/TableInfo.java index df025be..f3818bf 100644 --- a/muyu-modules/muyv-etl/muyu-etl-common/src/main/java/com/muyu/etl/domain/TableInfo.java +++ b/muyu-modules/muyv-etl/muyu-etl-common/src/main/java/com/muyu/etl/domain/TableInfo.java @@ -24,8 +24,6 @@ public class TableInfo extends TreeEntity private static final long serialVersionUID = 1L; /** 主键 */ - - @TableId(value = "id", type = IdType.AUTO) private Long id; diff --git a/muyu-modules/muyv-etl/muyu-etl-service/src/main/java/com/muyu/etl/controller/AssetImpowerController.java b/muyu-modules/muyv-etl/muyu-etl-service/src/main/java/com/muyu/etl/controller/AssetImpowerController.java new file mode 100644 index 0000000..88c1d6b --- /dev/null +++ b/muyu-modules/muyv-etl/muyu-etl-service/src/main/java/com/muyu/etl/controller/AssetImpowerController.java @@ -0,0 +1,104 @@ +package com.muyu.etl.controller; + +import java.util.List; +import javax.servlet.http.HttpServletResponse; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.PostMapping; +import org.springframework.web.bind.annotation.PutMapping; +import org.springframework.web.bind.annotation.DeleteMapping; +import org.springframework.web.bind.annotation.PathVariable; +import org.springframework.web.bind.annotation.RequestBody; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RestController; +import com.muyu.common.log.annotation.Log; +import com.muyu.common.log.enums.BusinessType; +import com.muyu.common.security.annotation.RequiresPermissions; +import com.muyu.etl.domain.AssetImpower; +import com.muyu.etl.service.AssetImpowerService; +import com.muyu.common.core.web.controller.BaseController; +import com.muyu.common.core.domain.Result; +import com.muyu.common.core.utils.poi.ExcelUtil; +import com.muyu.common.core.web.page.TableDataInfo; + +/** + * 资产赋权Controller + * + * @author Saisai + * @date 2024-04-28 + */ +@RestController +@RequestMapping("/impower") +public class AssetImpowerController extends BaseController +{ + @Autowired + private AssetImpowerService assetImpowerService; + + /** + * 查询资产赋权列表 + */ + @RequiresPermissions("etl:impower:list") + @GetMapping("/list") + public Result> list(AssetImpower assetImpower) + { + startPage(); + List list = assetImpowerService.selectAssetImpowerList(assetImpower); + return getDataTable(list); + } + + /** + * 导出资产赋权列表 + */ + @RequiresPermissions("etl:impower:export") + @Log(title = "资产赋权", businessType = BusinessType.EXPORT) + @PostMapping("/export") + public void export(HttpServletResponse response, AssetImpower assetImpower) + { + List list = assetImpowerService.selectAssetImpowerList(assetImpower); + ExcelUtil util = new ExcelUtil(AssetImpower.class); + util.exportExcel(response, list, "资产赋权数据"); + } + + /** + * 获取资产赋权详细信息 + */ + @RequiresPermissions("etl:impower:query") + @GetMapping(value = "/{id}") + public Result getInfo(@PathVariable("id") Long id) + { + return success(assetImpowerService.selectAssetImpowerById(id)); + } + + /** + * 新增资产赋权 + */ + @RequiresPermissions("etl:impower:add") + @Log(title = "资产赋权", businessType = BusinessType.INSERT) + @PostMapping + public Result add(@RequestBody AssetImpower assetImpower) + { + return toAjax(assetImpowerService.insertAssetImpower(assetImpower)); + } + + /** + * 修改资产赋权 + */ + @RequiresPermissions("etl:impower:edit") + @Log(title = "资产赋权", businessType = BusinessType.UPDATE) + @PutMapping + public Result edit(@RequestBody AssetImpower assetImpower) + { + return toAjax(assetImpowerService.updateAssetImpower(assetImpower)); + } + + /** + * 删除资产赋权 + */ + @RequiresPermissions("etl:impower:remove") + @Log(title = "资产赋权", businessType = BusinessType.DELETE) + @DeleteMapping("/{ids}") + public Result remove(@PathVariable Long[] ids) + { + return toAjax(assetImpowerService.deleteAssetImpowerByIds(ids)); + } +} 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 e1f9606..6a0bdee 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 @@ -41,6 +41,7 @@ public class BasicConfigInfoController extends BaseController { private DictInfoService dictInfoService; @Autowired private StructureService structureService; + /** * 查询基础信息列表 */ @@ -113,16 +114,16 @@ public class BasicConfigInfoController extends BaseController { return toAjax(basicConfigInfoService.connectionTest(basicConfigInfo)); } - /** - * 获取成功链接中的 - * @return - */ - @RequiresPermissions("etl:info:test") - @Log(title = "获取成功链接中的") - @GetMapping("/dataConstruct") - public Result> getData() { - return getDataTable(basicConfigInfoService.getDataByEtl()); - } +// /** +// * 获取成功链接中的 +// * @return +// */ +// @RequiresPermissions("etl:info:test") +// @Log(title = "获取成功链接中的") +// @GetMapping("/dataConstruct") +// public Result> getData() { +// return getDataTable(basicConfigInfoService.getDataByEtl()); +// } /** * 树级结构数据 @@ -150,6 +151,7 @@ public class BasicConfigInfoController extends BaseController { /** * 添加字典表 + * * @param assetDataDict * @return */ @@ -159,8 +161,10 @@ public class BasicConfigInfoController extends BaseController { public Result insertDictInfo(@RequestBody AssetDataDict assetDataDict) throws ServletException { return Result.success(assetDataDictService.insertAssetDataDict(assetDataDict)); } - /** + + /** * 添加字典详细信息 + * * @return */ @RequiresPermissions("etl:table:add") @@ -172,13 +176,14 @@ public class BasicConfigInfoController extends BaseController { /** * 修改资产结构中字典信息 + * * @return */ @RequiresPermissions("etl:table:update") @Log(title = "修改资产结构中字典信息") @PutMapping("/updateStructureInfo") - public Result updateStructureInfo(@RequestBody Structure structure){ - return Result.success(structureService.updateStructureInfoDict(structure),"修改成功"); + public Result updateStructureInfo(@RequestBody Structure structure) { + return Result.success(structureService.updateStructureInfoDict(structure), "修改成功"); } // /** diff --git a/muyu-modules/muyv-etl/muyu-etl-service/src/main/java/com/muyu/etl/mapper/AssetImpowerMapper.java b/muyu-modules/muyv-etl/muyu-etl-service/src/main/java/com/muyu/etl/mapper/AssetImpowerMapper.java new file mode 100644 index 0000000..a80049a --- /dev/null +++ b/muyu-modules/muyv-etl/muyu-etl-service/src/main/java/com/muyu/etl/mapper/AssetImpowerMapper.java @@ -0,0 +1,63 @@ +package com.muyu.etl.mapper; + +import java.util.List; + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.muyu.etl.domain.AssetImpower; + +/** + * 资产赋权Mapper接口 + * + * @author Saisai + * @date 2024-04-28 + */ +public interface AssetImpowerMapper extends BaseMapper +{ + /** + * 查询资产赋权 + * + * @param id 资产赋权主键 + * @return 资产赋权 + */ + public AssetImpower selectAssetImpowerById(Long id); + + /** + * 查询资产赋权列表 + * + * @param assetImpower 资产赋权 + * @return 资产赋权集合 + */ + public List selectAssetImpowerList(AssetImpower assetImpower); + + /** + * 新增资产赋权 + * + * @param assetImpower 资产赋权 + * @return 结果 + */ + public int insertAssetImpower(AssetImpower assetImpower); + + /** + * 修改资产赋权 + * + * @param assetImpower 资产赋权 + * @return 结果 + */ + public int updateAssetImpower(AssetImpower assetImpower); + + /** + * 删除资产赋权 + * + * @param id 资产赋权主键 + * @return 结果 + */ + public int deleteAssetImpowerById(Long id); + + /** + * 批量删除资产赋权 + * + * @param ids 需要删除的数据主键集合 + * @return 结果 + */ + public int deleteAssetImpowerByIds(Long[] ids); +} diff --git a/muyu-modules/muyv-etl/muyu-etl-service/src/main/java/com/muyu/etl/service/AssetImpowerService.java b/muyu-modules/muyv-etl/muyu-etl-service/src/main/java/com/muyu/etl/service/AssetImpowerService.java new file mode 100644 index 0000000..9dc3360 --- /dev/null +++ b/muyu-modules/muyv-etl/muyu-etl-service/src/main/java/com/muyu/etl/service/AssetImpowerService.java @@ -0,0 +1,63 @@ +package com.muyu.etl.service; + +import java.util.List; + +import com.baomidou.mybatisplus.extension.service.IService; +import com.muyu.etl.domain.AssetImpower; + +/** + * 资产赋权Service接口 + * + * @author Saisai + * @date 2024-04-28 + */ +public interface AssetImpowerService extends IService +{ + /** + * 查询资产赋权 + * + * @param id 资产赋权主键 + * @return 资产赋权 + */ + public AssetImpower selectAssetImpowerById(Long id); + + /** + * 查询资产赋权列表 + * + * @param assetImpower 资产赋权 + * @return 资产赋权集合 + */ + public List selectAssetImpowerList(AssetImpower assetImpower); + + /** + * 新增资产赋权 + * + * @param assetImpower 资产赋权 + * @return 结果 + */ + public int insertAssetImpower(AssetImpower assetImpower); + + /** + * 修改资产赋权 + * + * @param assetImpower 资产赋权 + * @return 结果 + */ + public int updateAssetImpower(AssetImpower assetImpower); + + /** + * 批量删除资产赋权 + * + * @param ids 需要删除的资产赋权主键集合 + * @return 结果 + */ + public int deleteAssetImpowerByIds(Long[] ids); + + /** + * 删除资产赋权信息 + * + * @param id 资产赋权主键 + * @return 结果 + */ + public int deleteAssetImpowerById(Long id); +} 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 8aff536..de1f625 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 @@ -67,7 +67,7 @@ public interface BasicConfigInfoService extends IService boolean connectionTest(BasicConfigInfo basicConfigInfo) throws ServletException; - List getDataByEtl(); +// List getDataByEtl(); List getTableTree(); } 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 42bf48b..bf06cd9 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 @@ -71,11 +71,10 @@ public class AssetDataDictServiceImpl extends ServiceImpl(AssetDataDict.class) {{ + return this.saveOrUpdate(assetDataDict, new LambdaUpdateWrapper(AssetDataDict.class) {{ eq(AssetDataDict::getDictType,assetDataDict.getDictType()); eq(AssetDataDict::getBasicId,assetDataDict.getBasicId()); }}); - return b; } /** diff --git a/muyu-modules/muyv-etl/muyu-etl-service/src/main/java/com/muyu/etl/service/impl/AssetImpowerServiceImpl.java b/muyu-modules/muyv-etl/muyu-etl-service/src/main/java/com/muyu/etl/service/impl/AssetImpowerServiceImpl.java new file mode 100644 index 0000000..ad372da --- /dev/null +++ b/muyu-modules/muyv-etl/muyu-etl-service/src/main/java/com/muyu/etl/service/impl/AssetImpowerServiceImpl.java @@ -0,0 +1,98 @@ +package com.muyu.etl.service.impl; + +import java.util.List; + +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.muyu.common.core.utils.DateUtils; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; +import com.muyu.etl.mapper.AssetImpowerMapper; +import com.muyu.etl.domain.AssetImpower; +import com.muyu.etl.service.AssetImpowerService; + +/** + * 资产赋权Service业务层处理 + * + * @author Saisai + * @date 2024-04-28 + */ +@Service +public class AssetImpowerServiceImpl extends ServiceImpl implements AssetImpowerService +{ + @Autowired + private AssetImpowerMapper assetImpowerMapper; + + /** + * 查询资产赋权 + * + * @param id 资产赋权主键 + * @return 资产赋权 + */ + @Override + public AssetImpower selectAssetImpowerById(Long id) + { + return assetImpowerMapper.selectAssetImpowerById(id); + } + + /** + * 查询资产赋权列表 + * + * @param assetImpower 资产赋权 + * @return 资产赋权 + */ + @Override + public List selectAssetImpowerList(AssetImpower assetImpower) + { + return assetImpowerMapper.selectAssetImpowerList(assetImpower); + } + + /** + * 新增资产赋权 + * + * @param assetImpower 资产赋权 + * @return 结果 + */ + @Override + public int insertAssetImpower(AssetImpower assetImpower) + { + assetImpower.setCreateTime(DateUtils.getNowDate()); + return assetImpowerMapper.insertAssetImpower(assetImpower); + } + + /** + * 修改资产赋权 + * + * @param assetImpower 资产赋权 + * @return 结果 + */ + @Override + public int updateAssetImpower(AssetImpower assetImpower) + { + assetImpower.setUpdateTime(DateUtils.getNowDate()); + return assetImpowerMapper.updateAssetImpower(assetImpower); + } + + /** + * 批量删除资产赋权 + * + * @param ids 需要删除的资产赋权主键 + * @return 结果 + */ + @Override + public int deleteAssetImpowerByIds(Long[] ids) + { + return assetImpowerMapper.deleteAssetImpowerByIds(ids); + } + + /** + * 删除资产赋权信息 + * + * @param id 资产赋权主键 + * @return 结果 + */ + @Override + public int deleteAssetImpowerById(Long id) + { + return assetImpowerMapper.deleteAssetImpowerById(id); + } +} diff --git a/muyu-modules/muyv-etl/muyu-etl-service/src/main/java/com/muyu/etl/service/impl/BasicConfigInfoServiceImpl.java b/muyu-modules/muyv-etl/muyu-etl-service/src/main/java/com/muyu/etl/service/impl/BasicConfigInfoServiceImpl.java index 70dfa90..66a1c16 100644 --- a/muyu-modules/muyv-etl/muyu-etl-service/src/main/java/com/muyu/etl/service/impl/BasicConfigInfoServiceImpl.java +++ b/muyu-modules/muyv-etl/muyu-etl-service/src/main/java/com/muyu/etl/service/impl/BasicConfigInfoServiceImpl.java @@ -17,12 +17,16 @@ import lombok.SneakyThrows; import lombok.extern.log4j.Log4j2; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; import javax.servlet.ServletException; import java.sql.*; import java.util.Date; -import java.util.*; +import java.util.List; import java.util.concurrent.Callable; +import java.util.concurrent.ExecutorService; +import java.util.concurrent.Executors; +import java.util.concurrent.Future; import java.util.stream.Collectors; /** @@ -33,8 +37,7 @@ import java.util.stream.Collectors; */ @Service @Log4j2 -public class BasicConfigInfoServiceImpl extends ServiceImpl implements BasicConfigInfoService -{ +public class BasicConfigInfoServiceImpl extends ServiceImpl implements BasicConfigInfoService { @Autowired private BasicConfigInfoMapper basicConfigInfoMapper; @@ -52,8 +55,7 @@ public class BasicConfigInfoServiceImpl extends ServiceImpl selectBasicConfigInfoList(BasicConfigInfo basicConfigInfo) - { + public List selectBasicConfigInfoList(BasicConfigInfo basicConfigInfo) { return basicConfigInfoMapper.selectBasicConfigInfoList(basicConfigInfo); } @@ -76,8 +77,7 @@ public class BasicConfigInfoServiceImpl extends ServiceImpl(TableInfo.class){{ - eq(TableInfo::getTableName,tableInfoInsert.getTableName()); - eq(TableInfo::getBasicId,basicConfigInfo.getId()); + tableInfoService.saveOrUpdate(tableInfoInsert, new LambdaUpdateWrapper(TableInfo.class) {{ + eq(TableInfo::getTableName, tableInfoInsert.getTableName()); + eq(TableInfo::getBasicId, basicConfigInfo.getId()); }}); + //查询列表中的所有tableInfo basic_id 不存在删除 + //通过查询或去当前tableinfo对象的id TableInfo tableInfo = tableInfoService.selectTableInfoByName(tableInfoInsert); DatabaseMetaData metaData = conn.getMetaData(); ResultSet rs = metaData.getTables(databaseName, null, "%", new String[]{"TABLE", "VIEW"}); - while (rs.next()) { - //表名 - String tableName1 = rs.getString("TABLE_NAME"); - String tableRemark = rs.getString("REMARKS"); - Connection finalConn = conn; - PreparedStatement ps = conn.prepareStatement("select* from " + tableName1); - ResultSet rset = ps.executeQuery(); - Long rowCount = 0L; - while(rset.next()) {rowCount++;} - TableInfo build = TableInfo.builder() - .basicId(basicConfigInfo.getId()) - .tableName(tableName1) - //bug点,tableRemark为空,造成空指针异常 - .tableRemark(tableRemark==null? "null":tableRemark) - .parentId(tableInfo.getId()) - .center("Y") - .updateBy(SecurityUtils.getUsername()) - .dataNum(rowCount) - .updateTime(new Date()) - .build(); - tableInfoService.saveOrUpdate(build,new LambdaUpdateWrapper(TableInfo.class){{ - eq(TableInfo::getTableName,build.getTableName()); - eq(TableInfo::getBasicId,basicConfigInfo.getId()); - }}); - TableInfo table = tableInfoService.selectTableInfoByName(build); - Runnable thread = new Runnable() { - @SneakyThrows - @Override - public void run() { - try { - syncData(finalConn, databaseName, table); - } catch (SQLException e) { - throw new ServletException("连接失败"); - } - } - }; - thread.run(); + while (rs.next()) { + //表名 + String tableName = rs.getString("TABLE_NAME"); + String tableRemark = rs.getString("REMARKS"); + Connection finalConn = conn; + PreparedStatement ps = conn.prepareStatement("select * from " + tableName); + ResultSet rset = ps.executeQuery(); + Long rowCount = 0L; + while (rset.next()) { + rowCount++; } + TableInfo build = TableInfo.builder() + .basicId(basicConfigInfo.getId()) + .tableName(tableName) + //bug点,tableRemark为空,造成空指针异常 + .tableRemark(tableRemark == null ? "null" : tableRemark) + .parentId(tableInfo.getId()) + .center("Y") + .updateBy(SecurityUtils.getUsername()) + .dataNum(rowCount) + .updateTime(new Date()) + .build(); + tableInfoService.saveOrUpdate(build, new LambdaUpdateWrapper(TableInfo.class) {{ + eq(TableInfo::getTableName, build.getTableName()); + eq(TableInfo::getBasicId, basicConfigInfo.getId()); + }}); + TableInfo table = tableInfoService.selectTableInfoByName(build); + //线程池 + Runnable thread = new Runnable() { + @SneakyThrows + @Override + public void run() { + try { + //同步 + syncData(finalConn, databaseName, table); + } catch (SQLException e) { + log.error(e.getMessage()); + throw new ServletException("连接失败"); + } + } + }; + thread.run(); +// ps.close(); + } +// conn.close(); } catch (SQLException e) { + log.error(e.getMessage()); throw new ServletException("连接失败"); } return true; } - public void syncData (Connection conn, String databaseName, TableInfo table) throws SQLException { + public void syncData(Connection conn, String databaseName, TableInfo table) throws SQLException { + ExecutorService threadPool = Executors.newCachedThreadPool(); PreparedStatement ps = conn.prepareStatement( - " SELECT " + - " COLUMN_NAME AS '字段', " + - " COLUMN_COMMENT AS '字段注释', " + - " CASE WHEN COLUMN_KEY = 'PRI' THEN '是' ELSE '否' END AS '是否主键'," + + " SELECT " + + " COLUMN_NAME , " + + " COLUMN_COMMENT ," + + " CASE WHEN COLUMN_KEY = 'PRI' THEN '是' ELSE '否' END ," + " CASE \n" + " WHEN DATA_TYPE = 'int' THEN 'Integer' " + " WHEN DATA_TYPE = 'bigint' THEN 'Long' " + @@ -210,13 +218,13 @@ public class BasicConfigInfoServiceImpl extends ServiceImpl()); - structureService.saveOrUpdate(build,new LambdaUpdateWrapper(){{ - eq(Structure::getTableId,build.getTableId()); - eq(Structure::getColumnName,build.getColumnName()); - eq(Structure::getColumnRemark,build.getColumnRemark()); - }}); + + threadPool.submit(new Runnable() { + @Override + public void run() { + 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 tableName1 = 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 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() { - List tableTreeRespList = tableInfoService.selectTableInfoList(new TableInfo(){{setParentId(0L);}}).stream().map(tableInfo ->{ - BasicConfigInfo basicConfigInfo = this.selectBasicConfigInfoById(tableInfo.getBasicId()); - List tableInfoStructureRespList = tableInfoService.selectTableInfoList(new TableInfo() {{ - setParentId(tableInfo.getId()); - }}).stream().map(info -> { - 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); - } -// ExecutorService threadPool = Executors.newCachedThreadPool(); - return callable; - }).collect(Collectors.toList()); - return TableTreeResp.builder() - .tableInfo(tableInfo) - .basicConfigInfo(basicConfigInfo) - .Children(tableInfoStructureRespList) - .build(); - }).collect(Collectors.toList()); + ExecutorService threadPool = Executors.newCachedThreadPool(); + List tableTreeRespList = tableInfoService.selectTableInfoList(new TableInfo() {{ + setParentId(0L); + }}).stream().map(tableInfo -> { + BasicConfigInfo basicConfigInfo = this.selectBasicConfigInfoById(tableInfo.getBasicId()); + List 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(); + } + }); + try { + 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) + .Children(tableInfoStructureRespList) + .build(); + }).collect(Collectors.toList()); + threadPool.shutdown(); + while (true){ + if (threadPool.isTerminated())break; + } return tableTreeRespList; } diff --git a/muyu-modules/muyv-etl/muyu-etl-service/src/main/resources/mapper/AssetImpowerMapper.xml b/muyu-modules/muyv-etl/muyu-etl-service/src/main/resources/mapper/AssetImpowerMapper.xml new file mode 100644 index 0000000..6c5adcc --- /dev/null +++ b/muyu-modules/muyv-etl/muyu-etl-service/src/main/resources/mapper/AssetImpowerMapper.xml @@ -0,0 +1,86 @@ + + + + + + + + + + + + + + + + + + select id, table_id, type_id, user_id, remark, create_by, create_time, update_by, update_time from asset_impower + + + + + + + + insert into asset_impower + + table_id, + type_id, + user_id, + remark, + create_by, + create_time, + update_by, + update_time, + + + #{tableId}, + #{typeId}, + #{userId}, + #{remark}, + #{createBy}, + #{createTime}, + #{updateBy}, + #{updateTime}, + + + + + update asset_impower + + table_id = #{tableId}, + type_id = #{typeId}, + user_id = #{userId}, + remark = #{remark}, + create_by = #{createBy}, + create_time = #{createTime}, + update_by = #{updateBy}, + update_time = #{updateTime}, + + where id = #{id} + + + + delete from asset_impower where id = #{id} + + + + delete from asset_impower where id in + + #{id} + + + diff --git a/muyu-modules/muyv-etl/muyu-etl-service/src/main/resources/mapper/BasicConfigInfoMapper.xml b/muyu-modules/muyv-etl/muyu-etl-service/src/main/resources/mapper/BasicConfigInfoMapper.xml index a0b5235..b8ad277 100644 --- a/muyu-modules/muyv-etl/muyu-etl-service/src/main/resources/mapper/BasicConfigInfoMapper.xml +++ b/muyu-modules/muyv-etl/muyu-etl-service/src/main/resources/mapper/BasicConfigInfoMapper.xml @@ -72,10 +72,10 @@ #{dataSourcesSystemName}, #{host}, #{port}, - #{username}, - #{password}, #{databaseType}, #{databaseName}, + #{username}, + #{password}, #{initLinkNum}, #{maxLinkNum}, #{maxWaitTime},