From 14c18c38e9e9eff33de4ccf6a7cc21813c6b0daa Mon Sep 17 00:00:00 2001 From: 18326186802 <862709625@qq.com> Date: Thu, 15 Jul 2021 13:32:42 +0800 Subject: [PATCH] kettle1 --- bps-kettle/pom.xml | 138 ++++++++++ .../controller/KettleTransController.java | 142 ++++++++++ .../controller/XRepositoryController.java | 126 +++++++++ .../com/ruoyi/kettle/domain/KettleTrans.java | 220 +++++++++++++++ .../com/ruoyi/kettle/domain/XRepository.java | 256 ++++++++++++++++++ .../kettle/mapper/KettleTransMapper.java | 63 +++++ .../kettle/mapper/XRepositoryMapper.java | 61 +++++ .../kettle/service/IKettleTransService.java | 61 +++++ .../kettle/service/IXRepositoryService.java | 61 +++++ .../service/impl/KettleTransServiceImpl.java | 124 +++++++++ .../service/impl/XRepositoryServiceImpl.java | 104 +++++++ .../com/ruoyi/kettle/tools/KettleUtils.java | 73 +++++ .../mapper/kettle/KettleTransMapper.xml | 132 +++++++++ .../mapper/kettle/XRepositoryMapper.xml | 140 ++++++++++ .../templates/kettle/repository/add.html | 135 +++++++++ .../templates/kettle/repository/edit.html | 132 +++++++++ .../kettle/repository/repository.html | 122 +++++++++ .../resources/templates/kettle/trans/add.html | 112 ++++++++ .../templates/kettle/trans/edit.html | 104 +++++++ .../templates/kettle/trans/trans.html | 146 ++++++++++ 20 files changed, 2452 insertions(+) create mode 100644 bps-kettle/pom.xml create mode 100644 bps-kettle/src/main/java/com/ruoyi/kettle/controller/KettleTransController.java create mode 100644 bps-kettle/src/main/java/com/ruoyi/kettle/controller/XRepositoryController.java create mode 100644 bps-kettle/src/main/java/com/ruoyi/kettle/domain/KettleTrans.java create mode 100644 bps-kettle/src/main/java/com/ruoyi/kettle/domain/XRepository.java create mode 100644 bps-kettle/src/main/java/com/ruoyi/kettle/mapper/KettleTransMapper.java create mode 100644 bps-kettle/src/main/java/com/ruoyi/kettle/mapper/XRepositoryMapper.java create mode 100644 bps-kettle/src/main/java/com/ruoyi/kettle/service/IKettleTransService.java create mode 100644 bps-kettle/src/main/java/com/ruoyi/kettle/service/IXRepositoryService.java create mode 100644 bps-kettle/src/main/java/com/ruoyi/kettle/service/impl/KettleTransServiceImpl.java create mode 100644 bps-kettle/src/main/java/com/ruoyi/kettle/service/impl/XRepositoryServiceImpl.java create mode 100644 bps-kettle/src/main/java/com/ruoyi/kettle/tools/KettleUtils.java create mode 100644 bps-kettle/src/main/resources/mapper/kettle/KettleTransMapper.xml create mode 100644 bps-kettle/src/main/resources/mapper/kettle/XRepositoryMapper.xml create mode 100644 bps-kettle/src/main/resources/templates/kettle/repository/add.html create mode 100644 bps-kettle/src/main/resources/templates/kettle/repository/edit.html create mode 100644 bps-kettle/src/main/resources/templates/kettle/repository/repository.html create mode 100644 bps-kettle/src/main/resources/templates/kettle/trans/add.html create mode 100644 bps-kettle/src/main/resources/templates/kettle/trans/edit.html create mode 100644 bps-kettle/src/main/resources/templates/kettle/trans/trans.html diff --git a/bps-kettle/pom.xml b/bps-kettle/pom.xml new file mode 100644 index 000000000..8b251fbee --- /dev/null +++ b/bps-kettle/pom.xml @@ -0,0 +1,138 @@ + + + + ruoyi + com.ruoyi + 4.6.2 + + 4.0.0 + + bps-kettle + + 9.0.0.0-423 + 2.5.16 + 1.7.2 + 2.6.12 + + + + + + com.ruoyi + ruoyi-common + + + com.ruoyi + ruoyi-system + + + org.json + json + 20160810 + + + + io.swagger + swagger-annotations + 1.5.21 + compile + + + + + pentaho-kettle + kettle-core + ${kettle-version} + + + pentaho-kettle + kettle-engine + ${kettle-version} + + + pentaho-kettle + kettle-dbdialog + ${kettle-version} + + + org.pentaho.di.plugins + kettle-sap-plugin-core + ${kettle-version} + + + pentaho-kettle + kettle-ui-swt + ${kettle-version} + + + + org.codehaus.janino + janino + ${janino-version} + + + org.eclipse.birt.runtime.3_7_1 + org.mozilla.javascript + ${javascript-version} + + + + net.sourceforge.jexcelapi + jxl + ${jxl-version} + + + + + mysql + mysql-connector-java + 5.1.48 + + + + com.microsoft.sqlserver + sqljdbc4 + 4.0 + + + + net.sourceforge.jtds + jtds + 1.2.4 + + + + org.apache.poi + poi + 3.17 + + + org.apache.poi + poi-ooxml + 3.17 + + + org.apache.poi + poi-ooxml-schemas + 3.17 + + + junit + junit + test + + + + + pentaho + https://nexus.pentaho.org/content/groups/omni/ + + + + + + + + \ No newline at end of file diff --git a/bps-kettle/src/main/java/com/ruoyi/kettle/controller/KettleTransController.java b/bps-kettle/src/main/java/com/ruoyi/kettle/controller/KettleTransController.java new file mode 100644 index 000000000..ed8f10416 --- /dev/null +++ b/bps-kettle/src/main/java/com/ruoyi/kettle/controller/KettleTransController.java @@ -0,0 +1,142 @@ +package com.ruoyi.kettle.controller; + +import java.util.List; +import java.util.stream.Collectors; + +import com.ruoyi.common.core.domain.entity.SysRole; +import com.ruoyi.system.service.ISysRoleService; +import org.apache.shiro.authz.annotation.RequiresPermissions; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Controller; +import org.springframework.ui.ModelMap; +import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.PathVariable; +import org.springframework.web.bind.annotation.PostMapping; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.ResponseBody; +import com.ruoyi.common.annotation.Log; +import com.ruoyi.common.enums.BusinessType; +import com.ruoyi.kettle.domain.KettleTrans; +import com.ruoyi.kettle.service.IKettleTransService; +import com.ruoyi.common.core.controller.BaseController; +import com.ruoyi.common.core.domain.AjaxResult; +import com.ruoyi.common.utils.poi.ExcelUtil; +import com.ruoyi.common.core.page.TableDataInfo; + +/** + * 转换Controller + * + * @author kone + * @date 2021-07-14 + */ +@Controller +@RequestMapping("/kettle/trans") +public class KettleTransController extends BaseController +{ + private String prefix = "kettle/trans"; + + @Autowired + private IKettleTransService kettleTransService; + @Autowired + private ISysRoleService roleService; + + @RequiresPermissions("kettle:trans:view") + @GetMapping() + public String trans() + { + return prefix + "/trans"; + } + + /** + * 查询转换列表 + */ + @RequiresPermissions("kettle:trans:list") + @PostMapping("/list") + @ResponseBody + public TableDataInfo list(KettleTrans kettleTrans) + { + startPage(); + List list = kettleTransService.selectKettleTransList(kettleTrans); + return getDataTable(list); + } + + /** + * 导出转换列表 + */ + @RequiresPermissions("kettle:trans:export") + @Log(title = "转换", businessType = BusinessType.EXPORT) + @PostMapping("/export") + @ResponseBody + public AjaxResult export(KettleTrans kettleTrans) + { + List list = kettleTransService.selectKettleTransList(kettleTrans); + ExcelUtil util = new ExcelUtil(KettleTrans.class); + return util.exportExcel(list, "转换数据"); + } + + /** + * 新增转换 + */ + @GetMapping("/add") + public String add(ModelMap mmap) + { + List roleKeys=roleService.selectRoleAll().stream().map(SysRole::getRoleKey).collect(Collectors.toList()); + mmap.put("allRoles",roleKeys); + return prefix + "/add"; + } + + /** + * 新增保存转换 + */ + @RequiresPermissions("kettle:trans:add") + @Log(title = "转换", businessType = BusinessType.INSERT) + @PostMapping("/add") + @ResponseBody + public AjaxResult addSave(KettleTrans kettleTrans) + { + return toAjax(kettleTransService.insertKettleTrans(kettleTrans)); + } + + /** + * 修改转换 + */ + @GetMapping("/edit/{id}") + public String edit(@PathVariable("id") Long id, ModelMap mmap) + { + KettleTrans kettleTrans = kettleTransService.selectKettleTransById(id); + List roleKeys=roleService.selectRoleAll().stream().map(SysRole::getRoleKey).collect(Collectors.toList()); + String rks=""; + if(kettleTrans!=null && kettleTrans.getRoleKey()!=null){ + rks=kettleTrans.getRoleKey(); + } + String[] rkArray=rks.split(","); + mmap.put("allRoles",roleKeys); + mmap.put("kettleTrans", kettleTrans); + mmap.put("rkArray",rkArray); + return prefix + "/edit"; + } + + /** + * 修改保存转换 + */ + @RequiresPermissions("kettle:trans:edit") + @Log(title = "转换", businessType = BusinessType.UPDATE) + @PostMapping("/edit") + @ResponseBody + public AjaxResult editSave(KettleTrans kettleTrans) + { + return toAjax(kettleTransService.updateKettleTrans(kettleTrans)); + } + + /** + * 删除转换 + */ + @RequiresPermissions("kettle:trans:remove") + @Log(title = "转换", businessType = BusinessType.DELETE) + @PostMapping( "/remove") + @ResponseBody + public AjaxResult remove(String ids) + { + return toAjax(kettleTransService.deleteKettleTransByIds(ids)); + } +} diff --git a/bps-kettle/src/main/java/com/ruoyi/kettle/controller/XRepositoryController.java b/bps-kettle/src/main/java/com/ruoyi/kettle/controller/XRepositoryController.java new file mode 100644 index 000000000..80cf5fa18 --- /dev/null +++ b/bps-kettle/src/main/java/com/ruoyi/kettle/controller/XRepositoryController.java @@ -0,0 +1,126 @@ +package com.ruoyi.kettle.controller; + +import java.util.List; +import org.apache.shiro.authz.annotation.RequiresPermissions; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Controller; +import org.springframework.ui.ModelMap; +import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.PathVariable; +import org.springframework.web.bind.annotation.PostMapping; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.ResponseBody; +import com.ruoyi.common.annotation.Log; +import com.ruoyi.common.enums.BusinessType; +import com.ruoyi.kettle.domain.XRepository; +import com.ruoyi.kettle.service.IXRepositoryService; +import com.ruoyi.common.core.controller.BaseController; +import com.ruoyi.common.core.domain.AjaxResult; +import com.ruoyi.common.utils.poi.ExcelUtil; +import com.ruoyi.common.core.page.TableDataInfo; + +/** + * 资源库Controller + * + * @author kone + * @date 2021-07-12 + */ +@Controller +@RequestMapping("/kettle/repository") +public class XRepositoryController extends BaseController +{ + private String prefix = "kettle/repository"; + + @Autowired + private IXRepositoryService xRepositoryService; + + @RequiresPermissions("kettle:repository:view") + @GetMapping() + public String repository() + { + return prefix + "/repository"; + } + + /** + * 查询资源库列表 + */ + @RequiresPermissions("kettle:repository:list") + @PostMapping("/list") + @ResponseBody + public TableDataInfo list(XRepository xRepository) + { + startPage(); + List list = xRepositoryService.selectXRepositoryList(xRepository); + return getDataTable(list); + } + + /** + * 导出资源库列表 + */ + @RequiresPermissions("kettle:repository:export") + @Log(title = "资源库", businessType = BusinessType.EXPORT) + @PostMapping("/export") + @ResponseBody + public AjaxResult export(XRepository xRepository) + { + List list = xRepositoryService.selectXRepositoryList(xRepository); + ExcelUtil util = new ExcelUtil(XRepository.class); + return util.exportExcel(list, "资源库数据"); + } + + /** + * 新增资源库 + */ + @GetMapping("/add") + public String add() + { + return prefix + "/add"; + } + + /** + * 新增保存资源库 + */ + @RequiresPermissions("kettle:repository:add") + @Log(title = "资源库", businessType = BusinessType.INSERT) + @PostMapping("/add") + @ResponseBody + public AjaxResult addSave(XRepository xRepository) + { + return toAjax(xRepositoryService.insertXRepository(xRepository)); + } + + /** + * 修改资源库 + */ + @GetMapping("/edit/{id}") + public String edit(@PathVariable("id") Long id, ModelMap mmap) + { + XRepository xRepository = xRepositoryService.selectXRepositoryById(id); + mmap.put("xRepository", xRepository); + return prefix + "/edit"; + } + + /** + * 修改保存资源库 + */ + @RequiresPermissions("kettle:repository:edit") + @Log(title = "资源库", businessType = BusinessType.UPDATE) + @PostMapping("/edit") + @ResponseBody + public AjaxResult editSave(XRepository xRepository) + { + return toAjax(xRepositoryService.updateXRepository(xRepository)); + } + + /** + * 删除资源库 + */ + @RequiresPermissions("kettle:repository:remove") + @Log(title = "资源库", businessType = BusinessType.DELETE) + @PostMapping( "/remove") + @ResponseBody + public AjaxResult remove(String ids) + { + return toAjax(xRepositoryService.deleteXRepositoryByIds(ids)); + } +} diff --git a/bps-kettle/src/main/java/com/ruoyi/kettle/domain/KettleTrans.java b/bps-kettle/src/main/java/com/ruoyi/kettle/domain/KettleTrans.java new file mode 100644 index 000000000..79d6248fe --- /dev/null +++ b/bps-kettle/src/main/java/com/ruoyi/kettle/domain/KettleTrans.java @@ -0,0 +1,220 @@ +package com.ruoyi.kettle.domain; + +import java.util.Date; +import com.fasterxml.jackson.annotation.JsonFormat; +import org.apache.commons.lang3.builder.ToStringBuilder; +import org.apache.commons.lang3.builder.ToStringStyle; +import com.ruoyi.common.annotation.Excel; +import com.ruoyi.common.core.domain.BaseEntity; + +/** + * 转换对象 kettle_trans + * + * @author kone + * @date 2021-07-14 + */ +public class KettleTrans extends BaseEntity +{ + private static final long serialVersionUID = 1L; + + /** */ + private Long id; + + /** 转换名称 */ + @Excel(name = "转换名称") + private String transName; + + /** 转换描述 */ + @Excel(name = "转换描述") + private String transDescription; + + /** */ + private Date createdTime; + + /** */ + private String createdBy; + + /** 转换类型(file,ftp,sf) */ + private String transType; + + /** 路径 */ + @Excel(name = "路径") + private String transPath; + + /** 所属资源库id */ + @Excel(name = "所属资源库id") + private Long transRepositoryId; + + /** 日志级别 */ + @Excel(name = "日志级别") + private String transLogLevel; + + /** 状态 */ + @Excel(name = "状态") + private String transStatus; + + /** 是否删除 */ + @Excel(name = "是否删除") + private Integer isDel; + + /** 是否启用 */ + @Excel(name = "是否启用") + private Integer isMonitorEnabled; + + /** 保留备用 */ + private String tplKey; + + /** 可执行角色key,用+号拼接 */ + @Excel(name = "可执行角色key") + private String roleKey; + + public void setId(Long id) + { + this.id = id; + } + + public Long getId() + { + return id; + } + public void setTransName(String transName) + { + this.transName = transName; + } + + public String getTransName() + { + return transName; + } + public void setTransDescription(String transDescription) + { + this.transDescription = transDescription; + } + + public String getTransDescription() + { + return transDescription; + } + public void setCreatedTime(Date createdTime) + { + this.createdTime = createdTime; + } + + public Date getCreatedTime() + { + return createdTime; + } + public void setCreatedBy(String createdBy) + { + this.createdBy = createdBy; + } + + public String getCreatedBy() + { + return createdBy; + } + public void setTransType(String transType) + { + this.transType = transType; + } + + public String getTransType() + { + return transType; + } + public void setTransPath(String transPath) + { + this.transPath = transPath; + } + + public String getTransPath() + { + return transPath; + } + public void setTransRepositoryId(Long transRepositoryId) + { + this.transRepositoryId = transRepositoryId; + } + + public Long getTransRepositoryId() + { + return transRepositoryId; + } + public void setTransLogLevel(String transLogLevel) + { + this.transLogLevel = transLogLevel; + } + + public String getTransLogLevel() + { + return transLogLevel; + } + public void setTransStatus(String transStatus) + { + this.transStatus = transStatus; + } + + public String getTransStatus() + { + return transStatus; + } + public void setIsDel(Integer isDel) + { + this.isDel = isDel; + } + + public Integer getIsDel() + { + return isDel; + } + public void setIsMonitorEnabled(Integer isMonitorEnabled) + { + this.isMonitorEnabled = isMonitorEnabled; + } + + public Integer getIsMonitorEnabled() + { + return isMonitorEnabled; + } + public void setTplKey(String tplKey) + { + this.tplKey = tplKey; + } + + public String getTplKey() + { + return tplKey; + } + public void setRoleKey(String roleKey) + { + this.roleKey = roleKey; + } + + public String getRoleKey() + { + return roleKey; + } + + @Override + public String toString() { + return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE) + .append("id", getId()) + .append("transName", getTransName()) + .append("transDescription", getTransDescription()) + .append("createdTime", getCreatedTime()) + .append("updateTime", getUpdateTime()) + .append("createdBy", getCreatedBy()) + .append("updateBy", getUpdateBy()) + .append("transType", getTransType()) + .append("transPath", getTransPath()) + .append("transRepositoryId", getTransRepositoryId()) + .append("transLogLevel", getTransLogLevel()) + .append("transStatus", getTransStatus()) + .append("isDel", getIsDel()) + .append("isMonitorEnabled", getIsMonitorEnabled()) + .append("tplKey", getTplKey()) + .append("roleKey", getRoleKey()) + .append("remark", getRemark()) + .toString(); + } +} diff --git a/bps-kettle/src/main/java/com/ruoyi/kettle/domain/XRepository.java b/bps-kettle/src/main/java/com/ruoyi/kettle/domain/XRepository.java new file mode 100644 index 000000000..769576acf --- /dev/null +++ b/bps-kettle/src/main/java/com/ruoyi/kettle/domain/XRepository.java @@ -0,0 +1,256 @@ +package com.ruoyi.kettle.domain; + +import java.util.Date; +import com.fasterxml.jackson.annotation.JsonFormat; +import org.apache.commons.lang3.builder.ToStringBuilder; +import org.apache.commons.lang3.builder.ToStringStyle; +import com.ruoyi.common.annotation.Excel; +import com.ruoyi.common.core.domain.BaseEntity; + +/** + * 资源库对象 kettle_repository + * + * @author kone + * @date 2021-07-12 + */ +public class XRepository extends BaseEntity +{ + private static final long serialVersionUID = 1L; + + /** */ + private Long id; + + /** */ + @Excel(name = "") + private String repoId; + + /** 资源库名称 */ + @Excel(name = "资源库名称") + private String repoName; + + /** 当资源库类型是db时候的用户名 */ + private String repoUsername; + + /** 当资源库类型是db时候的密码 */ + private String repoPassword; + + /** db类型 */ + private String repoType; + + /** 当资源库类型是db时候的连接类型 */ + private String dbAccess; + + /** 当资源库类型是db时候的ip */ + private String dbHost; + + /** 当资源库类型是db时候的端口 */ + private String dbPort; + + /** 当资源库类型是db时候的db库名 */ + private String dbName; + + /** 当资源库类型是db时候的db用户名 */ + private String dbUsername; + + /** 当资源库类型是db时候的db用户密码 */ + private String dbPassword; + + /** 软删除 */ + private int isDel; + + /** */ + @JsonFormat(pattern = "yyyy-MM-dd") + @Excel(name = "", width = 30, dateFormat = "yyyy-MM-dd") + private Date createdTime; + + /** */ + @Excel(name = "") + private String createdBy; + + /** 资源库类型 */ + @Excel(name = "资源库类型") + private String type; + + /** 基础路径 */ + @Excel(name = "基础路径") + private String baseDir; + + public void setId(Long id) + { + this.id = id; + } + + public Long getId() + { + return id; + } + public void setRepoId(String repoId) + { + this.repoId = repoId; + } + + public String getRepoId() + { + return repoId; + } + public void setRepoName(String repoName) + { + this.repoName = repoName; + } + + public String getRepoName() + { + return repoName; + } + public void setRepoUsername(String repoUsername) + { + this.repoUsername = repoUsername; + } + + public String getRepoUsername() + { + return repoUsername; + } + public void setRepoPassword(String repoPassword) + { + this.repoPassword = repoPassword; + } + + public String getRepoPassword() + { + return repoPassword; + } + public void setRepoType(String repoType) + { + this.repoType = repoType; + } + + public String getRepoType() + { + return repoType; + } + public void setDbAccess(String dbAccess) + { + this.dbAccess = dbAccess; + } + + public String getDbAccess() + { + return dbAccess; + } + public void setDbHost(String dbHost) + { + this.dbHost = dbHost; + } + + public String getDbHost() + { + return dbHost; + } + public void setDbPort(String dbPort) + { + this.dbPort = dbPort; + } + + public String getDbPort() + { + return dbPort; + } + public void setDbName(String dbName) + { + this.dbName = dbName; + } + + public String getDbName() + { + return dbName; + } + public void setDbUsername(String dbUsername) + { + this.dbUsername = dbUsername; + } + + public String getDbUsername() + { + return dbUsername; + } + public void setDbPassword(String dbPassword) + { + this.dbPassword = dbPassword; + } + + public String getDbPassword() + { + return dbPassword; + } + public void setIsDel(int isDel) + { + this.isDel = isDel; + } + + public int getIsDel() + { + return isDel; + } + public void setCreatedTime(Date createdTime) + { + this.createdTime = createdTime; + } + + public Date getCreatedTime() + { + return createdTime; + } + public void setCreatedBy(String createdBy) + { + this.createdBy = createdBy; + } + + public String getCreatedBy() + { + return createdBy; + } + public void setType(String type) + { + this.type = type; + } + + public String getType() + { + return type; + } + public void setBaseDir(String baseDir) + { + this.baseDir = baseDir; + } + + public String getBaseDir() + { + return baseDir; + } + + @Override + public String toString() { + return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE) + .append("id", getId()) + .append("repoId", getRepoId()) + .append("repoName", getRepoName()) + .append("repoUsername", getRepoUsername()) + .append("repoPassword", getRepoPassword()) + .append("repoType", getRepoType()) + .append("dbAccess", getDbAccess()) + .append("dbHost", getDbHost()) + .append("dbPort", getDbPort()) + .append("dbName", getDbName()) + .append("dbUsername", getDbUsername()) + .append("dbPassword", getDbPassword()) + .append("isDel", getIsDel()) + .append("createdTime", getCreatedTime()) + .append("updateTime", getUpdateTime()) + .append("createdBy", getCreatedBy()) + .append("updateBy", getUpdateBy()) + .append("type", getType()) + .append("baseDir", getBaseDir()) + .toString(); + } +} diff --git a/bps-kettle/src/main/java/com/ruoyi/kettle/mapper/KettleTransMapper.java b/bps-kettle/src/main/java/com/ruoyi/kettle/mapper/KettleTransMapper.java new file mode 100644 index 000000000..fc095d5de --- /dev/null +++ b/bps-kettle/src/main/java/com/ruoyi/kettle/mapper/KettleTransMapper.java @@ -0,0 +1,63 @@ +package com.ruoyi.kettle.mapper; + +import java.util.List; +import com.ruoyi.kettle.domain.KettleTrans; +import org.apache.ibatis.annotations.Param; + +/** + * 转换Mapper接口 + * + * @author kone + * @date 2021-07-14 + */ +public interface KettleTransMapper +{ + /** + * 查询转换 + * + * @param id 转换ID + * @return 转换 + */ + public KettleTrans selectKettleTransById(Long id); + + /** + * 查询转换列表 + * + * @param kettleTrans 转换 + * @param roleKey + * @return 转换集合 + */ + public List selectKettleTransList(@Param("KettleTrans") KettleTrans kettleTrans,@Param("roleKey") List roleKey); + + /** + * 新增转换 + * + * @param kettleTrans 转换 + * @return 结果 + */ + public int insertKettleTrans(KettleTrans kettleTrans); + + /** + * 修改转换 + * + * @param kettleTrans 转换 + * @return 结果 + */ + public int updateKettleTrans(KettleTrans kettleTrans); + + /** + * 删除转换 + * + * @param id 转换ID + * @return 结果 + */ + public int deleteKettleTransById(Long id); + + /** + * 批量删除转换 + * + * @param ids 需要删除的数据ID + * @return 结果 + */ + public int deleteKettleTransByIds(String[] ids); +} diff --git a/bps-kettle/src/main/java/com/ruoyi/kettle/mapper/XRepositoryMapper.java b/bps-kettle/src/main/java/com/ruoyi/kettle/mapper/XRepositoryMapper.java new file mode 100644 index 000000000..56d3e00e4 --- /dev/null +++ b/bps-kettle/src/main/java/com/ruoyi/kettle/mapper/XRepositoryMapper.java @@ -0,0 +1,61 @@ +package com.ruoyi.kettle.mapper; + +import java.util.List; +import com.ruoyi.kettle.domain.XRepository; + +/** + * 资源库Mapper接口 + * + * @author kone + * @date 2021-07-12 + */ +public interface XRepositoryMapper +{ + /** + * 查询资源库 + * + * @param id 资源库ID + * @return 资源库 + */ + public XRepository selectXRepositoryById(Long id); + + /** + * 查询资源库列表 + * + * @param xRepository 资源库 + * @return 资源库集合 + */ + public List selectXRepositoryList(XRepository xRepository); + + /** + * 新增资源库 + * + * @param xRepository 资源库 + * @return 结果 + */ + public int insertXRepository(XRepository xRepository); + + /** + * 修改资源库 + * + * @param xRepository 资源库 + * @return 结果 + */ + public int updateXRepository(XRepository xRepository); + + /** + * 删除资源库 + * + * @param id 资源库ID + * @return 结果 + */ + public int deleteXRepositoryById(Long id); + + /** + * 批量删除资源库 + * + * @param ids 需要删除的数据ID + * @return 结果 + */ + public int deleteXRepositoryByIds(String[] ids); +} diff --git a/bps-kettle/src/main/java/com/ruoyi/kettle/service/IKettleTransService.java b/bps-kettle/src/main/java/com/ruoyi/kettle/service/IKettleTransService.java new file mode 100644 index 000000000..45035f694 --- /dev/null +++ b/bps-kettle/src/main/java/com/ruoyi/kettle/service/IKettleTransService.java @@ -0,0 +1,61 @@ +package com.ruoyi.kettle.service; + +import java.util.List; +import com.ruoyi.kettle.domain.KettleTrans; + +/** + * 转换Service接口 + * + * @author kone + * @date 2021-07-14 + */ +public interface IKettleTransService +{ + /** + * 查询转换 + * + * @param id 转换ID + * @return 转换 + */ + public KettleTrans selectKettleTransById(Long id); + + /** + * 查询转换列表 + * + * @param kettleTrans 转换 + * @return 转换集合 + */ + public List selectKettleTransList(KettleTrans kettleTrans); + + /** + * 新增转换 + * + * @param kettleTrans 转换 + * @return 结果 + */ + public int insertKettleTrans(KettleTrans kettleTrans); + + /** + * 修改转换 + * + * @param kettleTrans 转换 + * @return 结果 + */ + public int updateKettleTrans(KettleTrans kettleTrans); + + /** + * 批量删除转换 + * + * @param ids 需要删除的数据ID + * @return 结果 + */ + public int deleteKettleTransByIds(String ids); + + /** + * 删除转换信息 + * + * @param id 转换ID + * @return 结果 + */ + public int deleteKettleTransById(Long id); +} diff --git a/bps-kettle/src/main/java/com/ruoyi/kettle/service/IXRepositoryService.java b/bps-kettle/src/main/java/com/ruoyi/kettle/service/IXRepositoryService.java new file mode 100644 index 000000000..cf77a0625 --- /dev/null +++ b/bps-kettle/src/main/java/com/ruoyi/kettle/service/IXRepositoryService.java @@ -0,0 +1,61 @@ +package com.ruoyi.kettle.service; + +import java.util.List; +import com.ruoyi.kettle.domain.XRepository; + +/** + * 资源库Service接口 + * + * @author kone + * @date 2021-07-12 + */ +public interface IXRepositoryService +{ + /** + * 查询资源库 + * + * @param id 资源库ID + * @return 资源库 + */ + public XRepository selectXRepositoryById(Long id); + + /** + * 查询资源库列表 + * + * @param xRepository 资源库 + * @return 资源库集合 + */ + public List selectXRepositoryList(XRepository xRepository); + + /** + * 新增资源库 + * + * @param xRepository 资源库 + * @return 结果 + */ + public int insertXRepository(XRepository xRepository); + + /** + * 修改资源库 + * + * @param xRepository 资源库 + * @return 结果 + */ + public int updateXRepository(XRepository xRepository); + + /** + * 批量删除资源库 + * + * @param ids 需要删除的数据ID + * @return 结果 + */ + public int deleteXRepositoryByIds(String ids); + + /** + * 删除资源库信息 + * + * @param id 资源库ID + * @return 结果 + */ + public int deleteXRepositoryById(Long id); +} diff --git a/bps-kettle/src/main/java/com/ruoyi/kettle/service/impl/KettleTransServiceImpl.java b/bps-kettle/src/main/java/com/ruoyi/kettle/service/impl/KettleTransServiceImpl.java new file mode 100644 index 000000000..8fc114576 --- /dev/null +++ b/bps-kettle/src/main/java/com/ruoyi/kettle/service/impl/KettleTransServiceImpl.java @@ -0,0 +1,124 @@ +package com.ruoyi.kettle.service.impl; + +import java.util.List; +import java.util.stream.Collectors; + +import com.ruoyi.common.core.domain.entity.SysRole; +import com.ruoyi.common.utils.DateUtils; +import com.ruoyi.common.utils.security.PermissionUtils; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; +import com.ruoyi.kettle.mapper.KettleTransMapper; +import com.ruoyi.kettle.domain.KettleTrans; +import com.ruoyi.kettle.service.IKettleTransService; +import com.ruoyi.common.core.text.Convert; + +/** + * 转换Service业务层处理 + * + * @author kone + * @date 2021-07-14 + */ +@Service +public class KettleTransServiceImpl implements IKettleTransService +{ + @Autowired + private KettleTransMapper kettleTransMapper; + + /** + * 查询转换 + * + * @param id 转换ID + * @return 转换 + */ + @Override + public KettleTrans selectKettleTransById(Long id) + { + return kettleTransMapper.selectKettleTransById(id); + } + + /** + * 查询转换列表 + * + * @param kettleTrans 转换 + * @return 转换 + */ + @Override + public List selectKettleTransList(KettleTrans kettleTrans) + { + List roleList = (List) PermissionUtils.getPrincipalProperty("roles"); + //当前用户的roleKey + List roleKeys=roleList.stream().map(SysRole::getRoleKey).collect(Collectors.toList()); + + return kettleTransMapper.selectKettleTransList(kettleTrans,roleKeys); + } + + /** + * 新增转换 + * + * @param kettleTrans 转换 + * @return 结果 + */ + @Override + public int insertKettleTrans(KettleTrans kettleTrans) + { + String userName = (String) PermissionUtils.getPrincipalProperty("userName"); + if(kettleTrans.getRoleKey()==null){ + kettleTrans.setRoleKey("admin"); + }else{ + if(!kettleTrans.getRoleKey().contains("admin")){ + kettleTrans.setRoleKey(kettleTrans.getRoleKey().concat(",admin")); + } + } + kettleTrans.setCreatedBy(userName); + kettleTrans.setUpdateBy(userName); + kettleTrans.setTransType("File"); + return kettleTransMapper.insertKettleTrans(kettleTrans); + } + + /** + * 修改转换 + * + * @param kettleTrans 转换 + * @return 结果 + */ + @Override + public int updateKettleTrans(KettleTrans kettleTrans) + { + String userName = (String) PermissionUtils.getPrincipalProperty("userName"); + kettleTrans.setUpdateBy(userName); + kettleTrans.setUpdateTime(DateUtils.getNowDate()); + kettleTrans.setTransType("File"); + if(kettleTrans.getRoleKey()==null){ + kettleTrans.setRoleKey("admin"); + }else{ + if(!kettleTrans.getRoleKey().contains("admin")){ + kettleTrans.setRoleKey(kettleTrans.getRoleKey().concat(",admin")); + } + } return kettleTransMapper.updateKettleTrans(kettleTrans); + } + + /** + * 删除转换对象 + * + * @param ids 需要删除的数据ID + * @return 结果 + */ + @Override + public int deleteKettleTransByIds(String ids) + { + return kettleTransMapper.deleteKettleTransByIds(Convert.toStrArray(ids)); + } + + /** + * 删除转换信息 + * + * @param id 转换ID + * @return 结果 + */ + @Override + public int deleteKettleTransById(Long id) + { + return kettleTransMapper.deleteKettleTransById(id); + } +} diff --git a/bps-kettle/src/main/java/com/ruoyi/kettle/service/impl/XRepositoryServiceImpl.java b/bps-kettle/src/main/java/com/ruoyi/kettle/service/impl/XRepositoryServiceImpl.java new file mode 100644 index 000000000..d9d5b5068 --- /dev/null +++ b/bps-kettle/src/main/java/com/ruoyi/kettle/service/impl/XRepositoryServiceImpl.java @@ -0,0 +1,104 @@ +package com.ruoyi.kettle.service.impl; + +import java.util.List; +import com.ruoyi.common.utils.DateUtils; +import com.ruoyi.common.utils.security.PermissionUtils; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; +import com.ruoyi.kettle.mapper.XRepositoryMapper; +import com.ruoyi.kettle.domain.XRepository; +import com.ruoyi.kettle.service.IXRepositoryService; +import com.ruoyi.common.core.text.Convert; + +/** + * 资源库Service业务层处理 + * + * @author kone + * @date 2021-07-12 + */ +@Service +public class XRepositoryServiceImpl implements IXRepositoryService +{ + @Autowired + private XRepositoryMapper xRepositoryMapper; + + /** + * 查询资源库 + * + * @param id 资源库ID + * @return 资源库 + */ + @Override + public XRepository selectXRepositoryById(Long id) + { + return xRepositoryMapper.selectXRepositoryById(id); + } + + /** + * 查询资源库列表 + * + * @param xRepository 资源库 + * @return 资源库 + */ + @Override + public List selectXRepositoryList(XRepository xRepository) + { + return xRepositoryMapper.selectXRepositoryList(xRepository); + } + + /** + * 新增资源库 + * + * @param xRepository 资源库 + * @return 结果 + */ + @Override + public int insertXRepository(XRepository xRepository) + { + String userName = (String) PermissionUtils.getPrincipalProperty("userName"); + xRepository.setCreatedBy(userName); + xRepository.setUpdateBy(userName); + xRepository.setType("File"); + return xRepositoryMapper.insertXRepository(xRepository); + } + + /** + * 修改资源库 + * + * @param xRepository 资源库 + * @return 结果 + */ + @Override + public int updateXRepository(XRepository xRepository) + { + String userName = (String) PermissionUtils.getPrincipalProperty("userName"); + xRepository.setUpdateTime(DateUtils.getNowDate()); + xRepository.setUpdateBy(userName); + + return xRepositoryMapper.updateXRepository(xRepository); + } + + /** + * 删除资源库对象 + * + * @param ids 需要删除的数据ID + * @return 结果 + */ + @Override + public int deleteXRepositoryByIds(String ids) + { + return xRepositoryMapper.deleteXRepositoryByIds(Convert.toStrArray(ids)); + } + + /** + * 删除资源库信息 + * + * @param id 资源库ID + * @return 结果 + */ + @Override + public int deleteXRepositoryById(Long id) + { + return xRepositoryMapper.deleteXRepositoryById(id); + } +} diff --git a/bps-kettle/src/main/java/com/ruoyi/kettle/tools/KettleUtils.java b/bps-kettle/src/main/java/com/ruoyi/kettle/tools/KettleUtils.java new file mode 100644 index 000000000..11b6231cb --- /dev/null +++ b/bps-kettle/src/main/java/com/ruoyi/kettle/tools/KettleUtils.java @@ -0,0 +1,73 @@ +package com.ruoyi.kettle.tools; + +import org.pentaho.di.core.KettleEnvironment; +import org.pentaho.di.job.Job; +import org.pentaho.di.job.JobMeta; +import org.pentaho.di.trans.Trans; +import org.pentaho.di.trans.TransMeta; +import org.springframework.core.io.ClassPathResource; + +import java.io.File; +import java.util.Iterator; +import java.util.Map; + +public class KettleUtils { + + /** + * 执行ktr文件 + * + * @param filename + * @param params + * @return + */ + public static void runKtr(String filename, Map params, String dirPath) { + try { + KettleEnvironment.init(); + TransMeta tm = new TransMeta(dirPath + File.separator + filename); + Trans trans = new Trans(tm); + if (params != null) { + Iterator> entries = params.entrySet().iterator(); + while (entries.hasNext()) { + Map.Entry entry = entries.next(); + trans.setParameterValue(entry.getKey(), entry.getValue()); + } + } + trans.execute(null); + trans.waitUntilFinished(); + } catch (Exception e) { + e.printStackTrace(); + } + } + + /** + * 执行kjb文件 + * + * @param filename + * @param params + * @return + */ + public static void runKjb(String filename, Map params, String dirPath) { + try { + KettleEnvironment.init(); + JobMeta jm = new JobMeta(dirPath + File.separator + filename, null); + Job job = new Job(null, jm); + if (params != null) { + Iterator> entries = params.entrySet().iterator(); + while (entries.hasNext()) { + Map.Entry entry = entries.next(); + job.setVariable(entry.getKey(), entry.getValue()); + } + } + job.start(); + job.waitUntilFinished(); + } catch (Exception e) { + e.printStackTrace(); + } + } + + public static void main(String[] args) throws Exception { + ClassPathResource classPathResource = new ClassPathResource("kettle"); + System.out.println("classPathResource:" + classPathResource.getFile().getPath()); + runKtr("D:\\etl\\kone.ktr", null, classPathResource.getFile().getPath()); + } +} \ No newline at end of file diff --git a/bps-kettle/src/main/resources/mapper/kettle/KettleTransMapper.xml b/bps-kettle/src/main/resources/mapper/kettle/KettleTransMapper.xml new file mode 100644 index 000000000..09824a03f --- /dev/null +++ b/bps-kettle/src/main/resources/mapper/kettle/KettleTransMapper.xml @@ -0,0 +1,132 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + select id, trans_name, trans_description, created_time, update_time, created_by, update_by, trans_type, trans_path, trans_repository_id, trans_log_level, trans_status, is_del, is_monitor_enabled, tpl_key, role_key, remark from kettle_trans + + + + + + and trans_name like concat('%', #{KettleTrans.transName}, '%') + and trans_description = #{KettleTrans.transDescription} + and trans_path = #{KettleTrans.transPath} + and trans_repository_id = #{KettleTrans.transRepositoryId} + and trans_log_level = #{KettleTrans.transLogLevel} + and trans_status = #{KettleTrans.transStatus} + and is_monitor_enabled = #{KettleTrans.isMonitorEnabled} + + and + + role_key like concat('%',#{item}, '%') + + + + + and is_del != 1 + + + + + + where id = #{id} + + + + insert into kettle_trans + + trans_name, + trans_description, + created_time, + update_time, + created_by, + update_by, + trans_type, + trans_path, + trans_repository_id, + trans_log_level, + trans_status, + is_del, + is_monitor_enabled, + tpl_key, + role_key, + remark, + + + #{transName}, + #{transDescription}, + #{createdTime}, + #{updateTime}, + #{createdBy}, + #{updateBy}, + #{transType}, + #{transPath}, + #{transRepositoryId}, + #{transLogLevel}, + #{transStatus}, + #{isDel}, + #{isMonitorEnabled}, + #{tplKey}, + #{roleKey}, + #{remark}, + + + + + update kettle_trans + + trans_name = #{transName}, + trans_description = #{transDescription}, + created_time = #{createdTime}, + update_time = #{updateTime}, + created_by = #{createdBy}, + update_by = #{updateBy}, + trans_type = #{transType}, + trans_path = #{transPath}, + trans_repository_id = #{transRepositoryId}, + trans_log_level = #{transLogLevel}, + trans_status = #{transStatus}, + is_del = #{isDel}, + is_monitor_enabled = #{isMonitorEnabled}, + tpl_key = #{tplKey}, + role_key = #{roleKey}, + remark = #{remark}, + + where id = #{id} + + + + delete from kettle_trans where id = #{id} + + + + delete from kettle_trans where id in + + #{id} + + + + \ No newline at end of file diff --git a/bps-kettle/src/main/resources/mapper/kettle/XRepositoryMapper.xml b/bps-kettle/src/main/resources/mapper/kettle/XRepositoryMapper.xml new file mode 100644 index 000000000..9e7517b22 --- /dev/null +++ b/bps-kettle/src/main/resources/mapper/kettle/XRepositoryMapper.xml @@ -0,0 +1,140 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + select id, repo_id, repo_name, repo_username, repo_password, repo_type, db_access, db_host, db_port, db_name, db_username, db_password, is_del, created_time, update_time, created_by, update_by, type, base_dir from kettle_repository + + + + + + and repo_id = #{repoId} + and repo_name like concat('%', #{repoName}, '%') + and repo_username like concat('%', #{repoUsername}, '%') + and repo_password = #{repoPassword} + and repo_type = #{repoType} + and db_access = #{dbAccess} + and db_host = #{dbHost} + and db_port = #{dbPort} + and db_name like concat('%', #{dbName}, '%') + and db_username like concat('%', #{dbUsername}, '%') + and db_password = #{dbPassword} + and is_del = #{isDel} + and created_time = #{createdTime} + and created_by = #{createdBy} + and type = #{type} + and base_dir = #{baseDir} + + + + + + where id = #{id} + + + + insert into kettle_repository + + repo_id, + repo_name, + repo_username, + repo_password, + repo_type, + db_access, + db_host, + db_port, + db_name, + db_username, + db_password, + is_del, + created_time, + update_time, + created_by, + update_by, + type, + base_dir, + + + #{repoId}, + #{repoName}, + #{repoUsername}, + #{repoPassword}, + #{repoType}, + #{dbAccess}, + #{dbHost}, + #{dbPort}, + #{dbName}, + #{dbUsername}, + #{dbPassword}, + #{isDel}, + #{createdTime}, + #{updateTime}, + #{createdBy}, + #{updateBy}, + #{type}, + #{baseDir}, + + + + + update kettle_repository + + repo_id = #{repoId}, + repo_name = #{repoName}, + repo_username = #{repoUsername}, + repo_password = #{repoPassword}, + repo_type = #{repoType}, + db_access = #{dbAccess}, + db_host = #{dbHost}, + db_port = #{dbPort}, + db_name = #{dbName}, + db_username = #{dbUsername}, + db_password = #{dbPassword}, + is_del = #{isDel}, + created_time = #{createdTime}, + update_time = #{updateTime}, + created_by = #{createdBy}, + update_by = #{updateBy}, + type = #{type}, + base_dir = #{baseDir}, + + where id = #{id} + + + + delete from kettle_repository where id = #{id} + + + + delete from kettle_repository where id in + + #{id} + + + + \ No newline at end of file diff --git a/bps-kettle/src/main/resources/templates/kettle/repository/add.html b/bps-kettle/src/main/resources/templates/kettle/repository/add.html new file mode 100644 index 000000000..e75ef192a --- /dev/null +++ b/bps-kettle/src/main/resources/templates/kettle/repository/add.html @@ -0,0 +1,135 @@ + + + + + + + + + + + + 资源库名称: + + + + + + + 资源库类型: + + + + + + + + + 基础路径: + + + + + + + + + + + \ No newline at end of file diff --git a/bps-kettle/src/main/resources/templates/kettle/repository/edit.html b/bps-kettle/src/main/resources/templates/kettle/repository/edit.html new file mode 100644 index 000000000..b175b3bf9 --- /dev/null +++ b/bps-kettle/src/main/resources/templates/kettle/repository/edit.html @@ -0,0 +1,132 @@ + + + + + + + + + + + + 资源库名称: + + + + + + + 资源库类型: + + + + + + + + 基础路径: + + + + + + + + + + + \ No newline at end of file diff --git a/bps-kettle/src/main/resources/templates/kettle/repository/repository.html b/bps-kettle/src/main/resources/templates/kettle/repository/repository.html new file mode 100644 index 000000000..725ae2136 --- /dev/null +++ b/bps-kettle/src/main/resources/templates/kettle/repository/repository.html @@ -0,0 +1,122 @@ + + + + + + + + + + + + + + 名称: + + + + + + 搜索 + 重置 + + + + + + + + + 添加 + + + 修改 + + + 删除 + + + 导出 + + + + + + + + + + + \ No newline at end of file diff --git a/bps-kettle/src/main/resources/templates/kettle/trans/add.html b/bps-kettle/src/main/resources/templates/kettle/trans/add.html new file mode 100644 index 000000000..3a06f95c6 --- /dev/null +++ b/bps-kettle/src/main/resources/templates/kettle/trans/add.html @@ -0,0 +1,112 @@ + + + + + + + + + + + + + 转换名称: + + + + + + 转换描述: + + + + + + 转换类型(file,ftp,sftp): + + + + + + + + 路径: + + + + + + + + + + + + 日志级别: + + + + + + + + + 是否启用: + + + 是 + + 否 + + + + + + + + + + + 角色key: + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/bps-kettle/src/main/resources/templates/kettle/trans/edit.html b/bps-kettle/src/main/resources/templates/kettle/trans/edit.html new file mode 100644 index 000000000..a001ad59c --- /dev/null +++ b/bps-kettle/src/main/resources/templates/kettle/trans/edit.html @@ -0,0 +1,104 @@ + + + + + + + + + + + + + + 转换名称: + + + + + + 转换描述: + + [[*{transDescription}]] + + + + 路径: + + + + + + + 日志级别: + + + + + + + + 是否启用: + + + + 是 + + 否 + + + + 角色key: + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/bps-kettle/src/main/resources/templates/kettle/trans/trans.html b/bps-kettle/src/main/resources/templates/kettle/trans/trans.html new file mode 100644 index 000000000..26ff2b8ac --- /dev/null +++ b/bps-kettle/src/main/resources/templates/kettle/trans/trans.html @@ -0,0 +1,146 @@ + + + + + + + + + + + + + + 转换名称: + + + + + 状态: + + 所有 + + + + + 搜索 + 重置 + + + + + + + + + 添加 + + + 修改 + + + 删除 + + + 导出 + + + + + + + + + + + \ No newline at end of file