package com.leadingsoft.web.service;
import java.io.IOException;
import java.sql.SQLException;
import java.util.Date;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import org.apache.commons.lang.StringUtils;
import org.beetl.sql.core.DSTransactionManager;
import org.beetl.sql.core.db.KeyHolder;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Service;
import org.springframework.web.multipart.MultipartFile;
import com.leadingsoft.common.toolkit.Constant;
import com.leadingsoft.core.dto.BootTablePage;
import com.leadingsoft.core.mapper.KQuartzDao;
import com.leadingsoft.core.mapper.KRepositoryDao;
import com.leadingsoft.core.mapper.KTransDao;
import com.leadingsoft.core.mapper.KTransMonitorDao;
import com.leadingsoft.core.model.KQuartz;
import com.leadingsoft.core.model.KRepository;
import com.leadingsoft.core.model.KTrans;
import com.leadingsoft.core.model.KTransMonitor;
import com.leadingsoft.web.quartz.QuartzManager;
import com.leadingsoft.web.quartz.TransQuartz;
import com.leadingsoft.web.quartz.model.DBConnectionModel;
import com.leadingsoft.web.utils.CommonUtils;
@Service
public class TransService {
@Autowired
private KTransDao kTransDao;
@Autowired
private KQuartzDao kQuartzDao;
@Autowired
private KRepositoryDao KRepositoryDao;
@Autowired
private KTransMonitorDao kTransMonitorDao;
@Value("${kettle.log.file.path}")
private String kettleLogFilePath;
@Value("${kettle.file.repository}")
private String kettleFileRepository;
@Value("${jdbc.driver}")
private String jdbcDriver;
@Value("${jdbc.url}")
private String jdbcUrl;
@Value("${jdbc.username}")
private String jdbcUsername;
@Value("${jdbc.password}")
private String jdbcPassword;
/**
* @Title getList
* @Description 获取列表
* @param uId 用户ID
* @return
* @return List<KTrans>
*/
public List<KTrans> getList(Integer uId){
KTrans template = new KTrans();
template.setAddUser(uId);
template.setDelFlag(1);
return kTransDao.template(template);
}
/**
* @Title getList
* @Description 获取列表
* @param start 其实行数
* @param size 获取数据的条数
* @param uId 用户ID
* @return
* @return BootTablePage
*/
public BootTablePage getList(Integer start, Integer size, Integer uId){
KTrans template = new KTrans();
template.setAddUser(uId);
template.setDelFlag(1);
List<KTrans> kTransList = kTransDao.template(template, start, size);
Long allCount = kTransDao.templateCount(template);
BootTablePage bootTablePage = new BootTablePage();
bootTablePage.setRows(kTransList);
bootTablePage.setTotal(allCount);
return bootTablePage;
}
/**
* @Title delete
* @Description 删除转换
* @param kTransId 转换ID
* @return void
*/
public void delete(Integer kTransId){
KTrans kTrans = kTransDao.unique(kTransId);
kTrans.setDelFlag(0);
kTransDao.updateById(kTrans);
}
/**
* @Title check
* @Description 检查转换是否添加过
* @param repositoryId 资源库ID
* @param kTransPath 转换路径信息
* @param uId 用户ID
* @return
* @return boolean
*/
public boolean check(Integer repositoryId, String kTransPath, Integer uId){
KTrans template = new KTrans();
template.setDelFlag(1);
template.setAddUser(uId);
template.setTransRepositoryId(repositoryId);
template.setTransPath(kTransPath);
List<KTrans> kTransList = kTransDao.template(template);
if (null != kTransList && kTransList.size() > 0){
return false;
}else{
return true;
}
}
/**
* @Title saveFile
* @Description 保存上传的转换文件
* @param uId 用户ID
* @param transFile 需要保存的转换文件
* @return
* @throws IOException
* @return String
*/
public String saveFile(Integer uId, MultipartFile transFile) throws IOException{
return CommonUtils.saveFile(uId, kettleFileRepository, transFile);
}
/**
* @Title insert
* @Description 添加转换到数据库
* @param kTrans 转换对象
* @param uId 用户ID
* @param customerQuarz 用户自定义的定时策略
* @throws SQLException
* @return void
*/
public void insert(KTrans kTrans, Integer uId, String customerQuarz) throws SQLException{
DSTransactionManager.start();
//补充添加作业信息
//作业基础信息
kTrans.setAddUser(uId);
kTrans.setAddTime(new Date());
kTrans.setEditUser(uId);
kTrans.setEditTime(new Date());
//作业是否被删除
kTrans.setDelFlag(1);
//作业是否启动
kTrans.setTransStatus(2);
if (StringUtils.isNotBlank(customerQuarz)){
//添加任务执行的调度策略
KQuartz kQuartz = new KQuartz();
kQuartz.setAddUser(uId);
kQuartz.setAddTime(new Date());
kQuartz.setEditUser(uId);
kQuartz.setEditTime(new Date());
kQuartz.setDelFlag(1);
kQuartz.setQuartzCron(customerQuarz);
kQuartz.setQuartzDescription(kTrans.getTransName() + "的定时策略");
KeyHolder kQuartzKey = kQuartzDao.insertReturnKey(kQuartz);
//插入调度策略
kTrans.setTransQuartz(kQuartzKey.getInt());
}else if (StringUtils.isBlank(customerQuarz) && new Integer(0).equals(kTrans.getTransQuartz())){
kTrans.setTransQuartz(1);
}else if (StringUtils.isBlank(customerQuarz) && kTrans.getTransQuartz() == null){
kTrans.setTransQuartz(1);
}
kTransDao.insert(kTrans);
DSTransactionManager.commit();
}
/**
* @Title getTrans
* @Description 获取转换对象
* @param transId 转换ID
* @return
* @return KTrans
*/
public KTrans getTrans(Integer transId){
return kTransDao.single(transId);
}
/**
* @Title update
* @Description 更新转换信息
* @param kTrans 转换对象
* @param customerQuarz 用户自定义的定时策略
* @param uId 用户ID
* @return void
*/
public void update(KTrans kTrans, String customerQuarz, Integer uId){
if (StringUtils.isNotBlank(customerQuarz)){
Integer transQuartzId = kTrans.getTransQuartz();
KQuartz kQuartz = kQuartzDao.single(transQuartzId);
if (kQuartz.getAddUser() == uId){// 如果更新前选择的是自定义的,这一步要更新
kQuartz.setQuartzCron(customerQuarz);
kQuartzDao.updateTemplateById(kQuartz);
}else {// 如果更新前选择的是默认的定时策略,这一步要新增一个定时策略
KQuartz kQuartzTemeplate = new KQuartz();
kQuartzTemeplate.setAddUser(uId);
kQuartzTemeplate.setAddTime(new Date());
kQuartzTemeplate.setEditUser(uId);
kQuartzTemeplate.setEditTime(new Date());
kQuartzTemeplate.setDelFlag(1);
kQuartzTemeplate.setQuartzCron(customerQuarz);
kQuartzTemeplate.setQuartzDescription(kTrans.getTransName() + "的定时策略");
KeyHolder kQuartzKey = kQuartzDao.insertReturnKey(kQuartzTemeplate);
//插入调度策略
kTrans.setTransQuartz(kQuartzKey.getInt());
}
}
kTransDao.updateTemplateById(kTrans);
}
/**
* @Title start
* @Description 启动转换
* @param transId 转换ID
* @return void
*/
public void start(Integer transId){
// 获取到转换对象
KTrans kTrans = kTransDao.unique(transId);
// 获取到定时策略对象
KQuartz kQuartz = kQuartzDao.unique(kTrans.getTransQuartz());
// 定时策略
String quartzCron = kQuartz.getQuartzCron();
// 用户ID
Integer userId = kTrans.getAddUser();
// 获取Quartz执行的基础信息
Map<String, String> quartzBasic = getQuartzBasic(kTrans);
// 获取Quartz的参数
Map<String, Object> quartzParameter = getQuartzParameter(kTrans);
// 添加监控
addMonitor(userId, transId);
// 添加任务
// 判断转换执行类型
try {
if (new Integer(1).equals(kTrans.getTransQuartz())){//如果是只执行一次
QuartzManager.addOnceJob(quartzBasic.get("jobName"), quartzBasic.get("jobGroupName"),
quartzBasic.get("triggerName"), quartzBasic.get("triggerGroupName"),
TransQuartz.class, quartzParameter);
}else {// 如果�
没有合适的资源?快使用搜索试试~ 我知道了~
SpringMVC精品资源--将kettle集成值web应用中,不再需打开kettle窗口运行,采用springmv.zip
共565个文件
xml:212个
js:110个
java:70个
需积分: 5 1 下载量 66 浏览量
2024-02-18
12:50:37
上传
评论
收藏 3.48MB ZIP 举报
温馨提示
SpringMVC精品资源--将kettle集成值web应用中,不再需打开kettle窗口运行,采用springmv
资源推荐
资源详情
资源评论
收起资源包目录
SpringMVC精品资源--将kettle集成值web应用中,不再需打开kettle窗口运行,采用springmv.zip (565个子文件)
.classpath 2KB
components.css 368KB
style.css 134KB
bootstrap.min.css 118KB
animate.css 64KB
plugins.css 48KB
ui.forms.css 35KB
font-awesome.css 32KB
bootstrap-rtl.css 31KB
font-awesome.min.css 26KB
ui.awesome.css 25KB
style.min.css 25KB
chosen.css 12KB
layer.css 11KB
layim.css 11KB
uniform.default.css 11KB
fileinput.css 10KB
uniform.default.min.css 8KB
ui.layout.css 8KB
fileinput.min.css 8KB
ui.ztree.css 6KB
laydate.css 6KB
ui.login.css 5KB
theme.css 4KB
bootstrap-table.min.css 4KB
style.css 4KB
theme.min.css 3KB
laydate.css 3KB
layer.ext.css 3KB
login-soft.css 3KB
fileinput-rtl.css 2KB
login.css 2KB
fileinput-rtl.min.css 2KB
font.css 870B
cronGen.css 133B
fontawesome-webfont.eot 67KB
awesome.eot 37KB
glyphicons-halflings-regular.eot 20KB
loading-0.gif 6KB
xubox_loading0.gif 6KB
zTree.gif 5KB
loading-sm.gif 3KB
xubox_loading3.gif 2KB
loading-2.gif 2KB
xubox_loading2.gif 2KB
throbber.gif 2KB
loading-upload.gif 2KB
shaddow.gif 1KB
shaddow-hover.gif 1KB
loading.gif 847B
xubox_loading1.gif 701B
loading-1.gif 701B
menu-bg.gif 683B
loading.gif 381B
loading.gif 166B
menu-item.gif 158B
content.gif 53B
line.gif 45B
.gitignore 272B
.gitignore 22B
error.html 493B
index.html 59B
favicon.ico 4KB
master.iml 21KB
TransService.java 14KB
JobService.java 14KB
TransQuartz.java 11KB
JobQuartz.java 10KB
ObjectID.java 9KB
KettleInit.java 9KB
RepositoryUtil.java 9KB
QuartzManager.java 8KB
RepositoryController.java 5KB
Constant.java 5KB
DataBaseRepositoryService.java 5KB
TransMonitorService.java 5KB
JobMonitorService.java 5KB
DateTime.java 5KB
KJob.java 4KB
KRepository.java 4KB
Main.java 4KB
EmailUtil.java 4KB
KTrans.java 4KB
ResultDto.java 4KB
PageController.java 3KB
MainController.java 3KB
JobController.java 3KB
TransController.java 3KB
UTF8StringHttpMessageConverter.java 3KB
DownLoadRecordController.java 3KB
QuartzListener.java 2KB
DateField.java 2KB
KRepositoryDto.java 2KB
CommonUtils.java 2KB
JsonUtils.java 2KB
KUser.java 2KB
UserService.java 2KB
KJobMonitor.java 2KB
KTransMonitor.java 2KB
IndexController.java 2KB
共 565 条
- 1
- 2
- 3
- 4
- 5
- 6
资源评论
码农阿豪
- 粉丝: 9941
- 资源: 1750
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功