Commit 5d2ea6eb by huangfusuper

【重构表格】

parent b489a913
package com.byit.controller; package com.byit.controller;
import com.alibaba.fastjson.JSON;
import com.byit.conf.MythJobAutoConfigure; import com.byit.conf.MythJobAutoConfigure;
import com.byit.enums.AdminEnums;
import com.byit.job.dto.JobRunResultDto; import com.byit.job.dto.JobRunResultDto;
import com.byit.job.dto.PluginBeanJobInfo; import com.byit.job.dto.PluginBeanJobInfo;
import com.byit.job.exceptions.BusinessException;
import com.byit.job.vo.ResponseResult;
import com.byit.model.JobTask; import com.byit.model.JobTask;
import com.byit.service.JobTaskService; import com.byit.service.JobTaskService;
import com.byit.thread.LogCallbackThread; import com.byit.thread.LogCallbackThread;
import com.byit.thread.LogScanHelper;
import com.byit.util.SourceObj2TargetObjUtil; import com.byit.util.SourceObj2TargetObjUtil;
import com.byit.utils.ValidationUtil; import com.byit.utils.ValidationUtil;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
...@@ -52,8 +49,12 @@ public class JobController { ...@@ -52,8 +49,12 @@ public class JobController {
ValidationUtil.dataNotNull(null,"不能为null"); ValidationUtil.dataNotNull(null,"不能为null");
return jobTaskService.findJobTaskByTriggerNextTimeLessThanEqual(11); return jobTaskService.findJobTaskByTriggerNextTimeLessThanEqual(11);
} }
@Autowired
private LogScanHelper logScanHelper;
@GetMapping("test") @GetMapping("test")
public String test(){ public String test(){
logScanHelper.doStop();
return "ASDSADSADSADSAD"; return "ASDSADSADSADSAD";
} }
} }
package com.byit.mapper;
import com.byit.model.FlowDependentKey;
import org.apache.ibatis.annotations.Param;
import java.util.List;
public interface FlowDependentMapper {
int deleteById(FlowDependentKey key);
int insert(@Param("flowId")Integer flowId, @Param("dependFlowId") Integer dependFlowId);
int insertSelective(FlowDependentKey record);
int deleteByFlowId(Integer flowId);
/**
* 根据工作流Id查询本工作流的所有依赖关系
* @param flowId
* @return
*/
List<FlowDependentKey> findByFlowId(Integer flowId);
}
\ No newline at end of file
package com.byit.mapper;
import com.byit.model.FlowVersionDependentKey;
public interface FlowVersionDependentMapper {
int deleteById(FlowVersionDependentKey key);
int insert(FlowVersionDependentKey record);
int insertSelective(FlowVersionDependentKey record);
}
\ No newline at end of file
package com.byit.mapper;
import com.byit.model.NodeVersionDependencyKey;
public interface NodeVersionDependencyMapper {
int deleteById(NodeVersionDependencyKey key);
int insert(NodeVersionDependencyKey record);
int insertSelective(NodeVersionDependencyKey record);
}
\ No newline at end of file
package com.byit.model;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import java.io.Serializable;
import java.util.Date;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
/**
* 邮箱告警
* @author gen
*/
@ApiModel
@Data
@Builder
@AllArgsConstructor
@NoArgsConstructor
public class EmailAlarm implements Serializable {
/**
* 主键
*/
@ApiModelProperty("主键")
private Integer id;
/**
* 工作流Id
*/
@ApiModelProperty("工作流Id")
private Integer flowId;
/**
* 工作流名称
*/
@ApiModelProperty("工作流名称")
private String flowName;
/**
* 运行标识
*/
@ApiModelProperty("运行标识")
private String runId;
/**
* 版本名称
*/
@ApiModelProperty("版本名称")
private String versionName;
/**
* 告警邮箱
*/
@ApiModelProperty("告警邮箱")
private String alarmEmail;
/**
* 当前工作流版本的告警的时机(0 不告警, 1 完成时告警, 2 失败时告警, 3 成功时告警)
*/
@ApiModelProperty("当前工作流版本的告警的时机(0 不告警, 1 完成时告警, 2 失败时告警, 3 成功时告警)")
private String alarmAction;
/**
* 告警结果(0, 未告警 1,告警成功 2,告警失败)
*/
@ApiModelProperty("告警结果(0, 未告警 1,告警成功 2,告警失败)")
private String alarmResult;
/**
* 发送时间
*/
@ApiModelProperty("发送时间")
private Date sendTime;
/**
* 告警内容
*/
@ApiModelProperty("告警内容")
private String alarmContent;
/**
*/
private static final long serialVersionUID = 1L;
}
\ No newline at end of file
package com.byit.model;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
import java.io.Serializable;
import java.util.Date;
/**
* 工作流
* @author gen
*/
@ApiModel
@Data
@Builder
@AllArgsConstructor
@NoArgsConstructor
public class Flow implements Serializable {
/**
* 当前版本工作流主键
*/
@ApiModelProperty("当前版本工作流主键")
private Integer flowId;
/**
* 当前工作流版本的报警邮箱
*/
@ApiModelProperty("当前工作流版本的报警邮箱")
private String alarmEmail;
/**
* 执行类型 周期执行1 手动执行2
*/
@ApiModelProperty("执行类型 周期执行1 手动执行2")
private String execType;
/**
* 任务流的cron表达式
*/
@ApiModelProperty("任务流的cron表达式")
private String flowCron;
/**
* 当前工作流的介绍
*/
@ApiModelProperty("当前工作流的介绍")
private String flowDesc;
/**
* 当前版本工作流名字
*/
@ApiModelProperty("当前版本工作流名字")
private String flowName;
/**
* 工作流节点数目
*/
@ApiModelProperty("工作流节点数目")
private Integer flowNodeCount;
/**
* 工作流的超时时间
*/
@ApiModelProperty("工作流的超时时间")
private Long flowTimeout;
/**
* 是否有下游节点 1 否,0 是
*/
@ApiModelProperty("是否有下游节点 1 否,0 是")
private String isHaveDepend;
/**
* 是否是内嵌工作流 1 否, 0 是
*/
@ApiModelProperty("是否是内嵌工作流 1 否, 0 是")
private String isInner;
/**
* 是否是顶级工作流 1 否, 0 是
*/
@ApiModelProperty("是否是顶级工作流 1 否, 0 是")
private String isTop;
/**
* 当前工作流版本的告警的时机(0 不告警, 1 完成时告警, 2 失败时告警, 3 成功时告警)
*/
@ApiModelProperty("当前工作流版本的告警的时机(0 不告警, 1 完成时告警, 2 失败时告警, 3 成功时告警)")
private String alarmlAction;
/**
* 设置任务的优先级,1最低 2最高
*/
@ApiModelProperty("设置任务的优先级,1最低 2最高")
private String priority;
/**
* 当前版本的工作流的下次执行时间
*/
@ApiModelProperty("当前版本的工作流的下次执行时间")
private Long triggerNextTime;
/**
* 工作空间的id
*/
@ApiModelProperty("工作空间的id")
private Integer workspaceId;
/**
* 创建人
*/
@ApiModelProperty("创建人")
private String author;
/**
* 创建时间
*/
@ApiModelProperty("创建时间")
private Date addTime;
/**
* 是否启动 0不启动 1启动
*/
@ApiModelProperty("是否启动 1不启动 0启动")
private String startUp;
/**
* 责任人
*/
@ApiModelProperty("责任人")
private String principal;
/**
* 版本名称
*/
@ApiModelProperty("版本名称")
private String versionName;
/**
* 工作流版本额重复次数
*/
@ApiModelProperty("工作流版本额重复次数")
private Integer repeatCount;
/**
* 剩余执行次数
*/
@ApiModelProperty("剩余执行次数")
private Integer remainingCount;
/**
* 节点是否跟随任务流,1跟随 2不跟随
*/
@ApiModelProperty("节点是否跟随任务流,1跟随 2不跟随")
private String scheduleFollow;
/**
*/
private static final long serialVersionUID = 1L;
}
\ No newline at end of file
package com.byit.model;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import java.io.Serializable;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
/**
*工作流依赖
* @author gen
*/
@ApiModel
@Data
@Builder
@AllArgsConstructor
@NoArgsConstructor
public class FlowDependentKey implements Serializable {
/**
* 工作流Id
*/
@ApiModelProperty("工作流Id")
private Integer flowId;
/**
* 上游依赖的工作流Id
*/
@ApiModelProperty("上游依赖的工作流Id")
private Integer dependFlowId;
/**
*/
private static final long serialVersionUID = 1L;
}
\ No newline at end of file
package com.byit.model;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
import java.io.Serializable;
import java.util.Date;
/**
* 工作流版本
* @author gen
*/
@ApiModel
@Data
@Builder
@AllArgsConstructor
@NoArgsConstructor
public class FlowVersion implements Serializable {
/**
* 版本工作流主键
*/
@ApiModelProperty("版本工作流主键")
private Integer flowVersionId;
/**
* 添加时间
*/
@ApiModelProperty("添加时间")
private Date addTime;
/**
* 工作流版本的报警邮箱
*/
@ApiModelProperty("工作流版本的报警邮箱")
private String alarmEmail;
/**
* 执行类型 周期执行1 手动执行2
*/
@ApiModelProperty("执行类型 周期执行1 手动执行2")
private String execType;
/**
* 任务流的cron表达式
*/
@ApiModelProperty("任务流的cron表达式")
private String flowCron;
/**
* 工作流的介绍
*/
@ApiModelProperty("工作流的介绍")
private String flowDesc;
/**
* 工作流主键
*/
@ApiModelProperty("工作流主键")
private Integer flowId;
/**
* 版本工作流名字
*/
@ApiModelProperty("版本工作流名字")
private String flowName;
/**
* 前版本工作流节点数目
*/
@ApiModelProperty("前版本工作流节点数目")
private Integer flowNodeCount;
/**
* 当前工作流版本的告警的时机(0 不告警, 1 完成时告警, 2 失败时告警, 3 成功时告警)
*/
@ApiModelProperty("当前工作流版本的告警的时机(0 不告警, 1 完成时告警, 2 失败时告警, 3 成功时告警)")
private String alarmlAction;
/**
* 节点是否跟随任务流,1跟随 2不跟随
*/
@ApiModelProperty("节点是否跟随任务流,1跟随 2不跟随")
private String scheduleFollow;
/**
* 设置任务的优先级,1最低 2最高
*/
@ApiModelProperty("设置任务的优先级,1最低 2最高")
private String priority;
/**
* 删除标志 1正常 2删除
*/
@ApiModelProperty("删除标志 1正常 2删除")
private String removeMark;
/**
* 工作流版本额重复次数
*/
@ApiModelProperty("工作流版本额重复次数")
private Integer repeatCount;
/**
* 当前版本的标志 this
*/
@ApiModelProperty("当前版本的标志 this")
private String versionMark;
/**
* 工作空间的id
*/
@ApiModelProperty("工作空间的id")
private Integer workspaceId;
/**
* 创建人
*/
@ApiModelProperty("创建人")
private String author;
/**
* 责任人
*/
@ApiModelProperty("责任人")
private String principal;
/**
* 版本名称
*/
@ApiModelProperty("版本名称")
private String versionName;
/**
* 是否有下游节点 1 否,0 是
*/
@ApiModelProperty("是否有下游节点 1 否,0 是")
private String isHaveDepend;
/**
* 是否是内嵌工作流 1 否, 0 是
*/
@ApiModelProperty("是否是内嵌工作流 1 否, 0 是")
private String isInner;
/**
* 是否是顶级工作流 1 否, 0 是
*/
@ApiModelProperty("是否是顶级工作流 1 否, 0 是")
private String isTop;
/**
*/
private static final long serialVersionUID = 1L;
}
\ No newline at end of file
package com.byit.model;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import java.io.Serializable;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
/**
* 工作流版本依赖
* @author gen
*/
@ApiModel
@Data
@Builder
@AllArgsConstructor
@NoArgsConstructor
public class FlowVersionDependentKey implements Serializable {
/**
* 工作流版本id
*/
@ApiModelProperty("工作流版本id")
private Integer flowVersionId;
/**
* 依赖的工作流版本id
*/
@ApiModelProperty("依赖的工作流版本id")
private Integer dependentId;
/**
*/
private static final long serialVersionUID = 1L;
}
\ No newline at end of file
package com.byit.model;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import java.io.Serializable;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
/**
* 任务表
* @author gen
*/
@ApiModel
@Data
@Builder
@AllArgsConstructor
@NoArgsConstructor
public class JobTask implements Serializable {
/**
*/
@ApiModelProperty("")
private Integer id;
/**
* 当前版本节点主键
*/
@ApiModelProperty("当前版本节点主键")
private Integer nodeId;
/**
* 阻塞策略
*/
@ApiModelProperty("阻塞策略")
private String blockStrategy;
/**
* 插件的网络令牌
*/
@ApiModelProperty("插件的网络令牌")
private String pluginToken;
/**
* 当前节点的失败重试次数
*/
@ApiModelProperty("当前节点的失败重试次数")
private Integer failedRetryCount;
/**
* 工作流ID
*/
@ApiModelProperty("工作流ID")
private Integer flowId;
/**
* 插件端请求调度中心的令牌
*/
@ApiModelProperty("插件端请求调度中心的令牌")
private String gatewayToken;
/**
* 当前任务的类型 java python shell sql script
*/
@ApiModelProperty("当前任务的类型 java python shell sql script")
private String jobType;
/**
* 本地节点(插件方) 的节点的名字
*/
@ApiModelProperty("本地节点(插件方) 的节点的名字")
private String handlerName;
/**
* 节点的说明
*/
@ApiModelProperty("节点的说明")
private String nodeDesc;
/**
* 当前节点的名称
*/
@ApiModelProperty("当前节点的名称")
private String nodeName;
/**
* 映射的工作流id(当节点为虚节点,有意义)
*/
@ApiModelProperty("映射的工作流id(当节点为虚节点,有意义)")
private Integer mapFlowId;
/**
* 节点的超时时间 -1不超时
*/
@ApiModelProperty("节点的超时时间 -1不超时")
private Long nodeTimeout;
/**
* 是否是虚节点(0 是, 1 否),虚节点代表是内嵌工作流
*/
@ApiModelProperty("是否是虚节点(0 是, 1 否),虚节点代表是内嵌工作流")
private String isVirtual;
/**
* 插件端的url集合
*/
@ApiModelProperty("插件端的url集合")
private String pluginUrls;
/**
* 设置任务的优先级,1最低 2最高
*/
@ApiModelProperty("设置任务的优先级,1最低 2最高")
private String priority;
/**
* 失败重试的间隔(单位毫秒)
*/
@ApiModelProperty("失败重试的间隔(单位毫秒)")
private Long failedRetryInterval;
/**
* 路由策略
*/
@ApiModelProperty("路由策略")
private String routingStrategy;
/**
* 运行标识
*/
@ApiModelProperty("运行标识")
private String runId;
/**
* 节点的参数
*/
@ApiModelProperty("节点的参数")
private String runParam;
/**
* 源码备注
*/
@ApiModelProperty("源码备注")
private String runSourceDesc;
/**
* 脚本的文件服务器路径集
*/
@ApiModelProperty("脚本的文件服务器路径集")
private String scriptUrls;
/**
* 源码负责人
*/
@ApiModelProperty("源码负责人")
private String sourcePrincipal;
/**
* 节点的本次执行时间
*/
@ApiModelProperty("节点的本次执行时间")
private Long triggerTime;
/**
* 调度状态:0-暂停,1-运行
*/
@ApiModelProperty("调度状态:0-暂停,1-运行")
private String triggerStatus;
/**
* 工作流版本名称
*/
@ApiModelProperty("工作流版本名称")
private String versionName;
/**
* 运行命令
*/
@ApiModelProperty("运行命令")
private String runCommand;
/**
* 源码
*/
@ApiModelProperty("源码")
private String runSource;
/**
*/
private static final long serialVersionUID = 1L;
}
\ No newline at end of file
package com.byit.model;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import java.io.Serializable;
import java.util.Date;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
/**
* 任务运行日志
* @author gen
*/
@ApiModel
@Data
@AllArgsConstructor
@NoArgsConstructor
public class JobTaskRunLog implements Serializable {
/**
* 日志ID
*/
@ApiModelProperty("日志ID")
private Integer logId;
/**
* 当前节点的失败剩余重试次数 初始阶段为初始的重试次数
*/
@ApiModelProperty("当前节点的失败剩余重试次数 初始阶段为初始的重试次数")
private Integer failedRemainingCount;
/**
* 版本名称
*/
@ApiModelProperty("版本名称")
private String versionName;
/**
* 任务流主键
*/
@ApiModelProperty("任务流主键")
private Integer flowId;
/**
* 所属任务流的名称
*/
@ApiModelProperty("所属任务流的名称")
private String flowName;
/**
* 执行机主键
*/
@ApiModelProperty("执行机主键")
private Integer jobGroupId;
/**
* 插件方节点key
*/
@ApiModelProperty("插件方节点key")
private String handlerName;
/**
* 节点名称
*/
@ApiModelProperty("节点名称")
private String nodeName;
/**
* 是否是虚节点(0 是, 1 否),虚节点代表是内嵌工作流
*/
@ApiModelProperty("是否是虚节点(0 是, 1 否),虚节点代表是内嵌工作流")
private String isVirtual;
/**
* 运行结果
*/
@ApiModelProperty("1 成功 2 失败 3 补批成功 4 补批失败")
private String runCode;
/**
* 运行参数
*/
@ApiModelProperty("运行参数")
private String runParams;
/**
* 开始时间
*/
@ApiModelProperty("开始时间")
private Date startTime;
/**
* 运行方式 1执行机运行,2插件运行
*/
@ApiModelProperty("运行方式 1执行机运行,2插件运行")
private String runType;
/**
* 调度结果 1成功 2失败
*/
@ApiModelProperty("调度结果 1成功 2失败")
private String triggerCode;
/**
* 触发时间
*/
@ApiModelProperty("触发时间")
private Date triggerTime;
/**
* 执行机的IP地址
*/
@ApiModelProperty("执行机的IP地址")
private String jobGroupIp;
/**
* 映射的工作流id(当节点为虚节点,有意义)
*/
@ApiModelProperty("映射的工作流id(当节点为虚节点,有意义)")
private Integer mapFlowId;
/**
* 运行命令
*/
@ApiModelProperty("运行命令")
private String runCommand;
/**
* 结束时间
*/
@ApiModelProperty("结束时间")
private Date endTime;
/**
* 节点id
*/
@ApiModelProperty("节点id")
private Integer nodeId;
/**
* 任务类型
*/
@ApiModelProperty("任务类型")
private String jobType;
/**
* 是否已完成告警(0未完成 1完成)
*/
@ApiModelProperty("是否已完成告警(0未完成 1完成)")
private String alertEnd;
/**
* 运行标识
*/
@ApiModelProperty("运行标识")
private String runId;
/**
* 补批运行标识
*/
@ApiModelProperty("补批运行标识")
private String reRunId;
/**
*/
private static final long serialVersionUID = 1L;
}
\ No newline at end of file
package com.byit.model;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import java.io.Serializable;
import lombok.*;
/**
* 任务运行日志 大字段
* @author huangfu
*/
@ApiModel
@Data
@Builder
@AllArgsConstructor
@NoArgsConstructor
@EqualsAndHashCode(callSuper = true)
public class JobTaskRunLogWithBLOBs extends JobTaskRunLog implements Serializable {
/**
* 运行结果信息
*/
@ApiModelProperty("运行结果信息")
private String runMsg;
/**
* 调度信息
*/
@ApiModelProperty("调度信息")
private String triggerMsg;
/**
*/
private static final long serialVersionUID = 1L;
}
\ No newline at end of file
package com.byit.model;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import java.io.Serializable;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
/**
* 排期表
* @author Administrator
*/
@ApiModel
@Data
@Builder
@AllArgsConstructor
@NoArgsConstructor
public class JobTaskSchedule implements Serializable {
/**
*/
@ApiModelProperty("")
private Integer id;
/**
* 当前版本节点主键
*/
@ApiModelProperty("当前版本节点主键")
private Integer nodeId;
/**
* 阻塞策略
*/
@ApiModelProperty("阻塞策略")
private String blockStrategy;
/**
* 插件的网络令牌
*/
@ApiModelProperty("插件的网络令牌")
private String pluginToken;
/**
* 当前节点的失败重试次数
*/
@ApiModelProperty("当前节点的失败重试次数")
private Integer failedRetryCount;
/**
* 工作流ID
*/
@ApiModelProperty("工作流ID")
private Integer flowId;
/**
* 插件端请求调度中心的令牌
*/
@ApiModelProperty("插件端请求调度中心的令牌")
private String gatewayToken;
/**
* 当前任务的类型 java python shell sql script
*/
@ApiModelProperty("当前任务的类型 java python shell sql script")
private String jobType;
/**
* 本地节点(插件方) 的节点的名字
*/
@ApiModelProperty("本地节点(插件方) 的节点的名字")
private String handlerName;
/**
* 节点的说明
*/
@ApiModelProperty("节点的说明")
private String nodeDesc;
/**
* 当前节点的名称
*/
@ApiModelProperty("当前节点的名称")
private String nodeName;
/**
* 映射的工作流id(当节点为虚节点,有意义)
*/
@ApiModelProperty("映射的工作流id(当节点为虚节点,有意义)")
private Integer mapFlowId;
/**
* 节点的超时时间 -1不超时
*/
@ApiModelProperty("节点的超时时间 -1不超时")
private Long nodeTimeout;
/**
* 是否是虚节点(0 是, 1 否),虚节点代表是内嵌工作流
*/
@ApiModelProperty("是否是虚节点(0 是, 1 否),虚节点代表是内嵌工作流")
private String isVirtual;
/**
* 插件端的url集合
*/
@ApiModelProperty("插件端的url集合")
private String pluginUrls;
/**
* 设置任务的优先级,1最低 2最高
*/
@ApiModelProperty("设置任务的优先级,1最低 2最高")
private String priority;
/**
* 失败重试的间隔(单位毫秒)
*/
@ApiModelProperty("失败重试的间隔(单位毫秒)")
private Long failedRetryInterval;
/**
* 路由策略
*/
@ApiModelProperty("路由策略")
private String routingStrategy;
/**
* 运行标识
*/
@ApiModelProperty("运行标识")
private String runId;
/**
* 节点的参数
*/
@ApiModelProperty("节点的参数")
private String runParam;
/**
* 源码备注
*/
@ApiModelProperty("源码备注")
private String runSourceDesc;
/**
* 脚本的文件服务器路径集
*/
@ApiModelProperty("脚本的文件服务器路径集")
private String scriptUrls;
/**
* 源码负责人
*/
@ApiModelProperty("源码负责人")
private String sourcePrincipal;
/**
* 节点的本次执行时间
*/
@ApiModelProperty("节点的本次执行时间")
private Long triggerTime;
/**
* 调度状态:0-暂停,1-运行
*/
@ApiModelProperty("调度状态:0-暂停,1-运行")
private String triggerStatus;
/**
* 工作流版本名称
*/
@ApiModelProperty("工作流版本名称")
private String versionName;
/**
* 日志表id
*/
@ApiModelProperty("日志表id")
private Integer logId;
/**
* 运行命令
*/
@ApiModelProperty("运行命令")
private String runCommand;
/**
* 源码
*/
@ApiModelProperty("源码")
private String runSource;
/**
*/
private static final long serialVersionUID = 1L;
}
\ No newline at end of file
package com.byit.model;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import java.io.Serializable;
import java.util.Date;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
/**
* 节点表
* @author huangfu
*/
@ApiModel
@Data
@Builder
@AllArgsConstructor
@NoArgsConstructor
public class Node implements Serializable {
/**
* 当前版本节点主键
*/
@ApiModelProperty("当前版本节点主键")
private Integer nodeId;
/**
* 阻塞策略
*/
@ApiModelProperty("阻塞策略")
private String blockStrategy;
/**
* 插件端网关令牌
*/
@ApiModelProperty("插件端网关令牌")
private String pluginToken;
/**
* 当前节点的失败重试次数
*/
@ApiModelProperty("当前节点的失败重试次数")
private Integer failedRetryCount;
/**
* 工作流ID
*/
@ApiModelProperty("工作流ID")
private Integer flowId;
/**
* 插件端请求调度中心的令牌
*/
@ApiModelProperty("插件端请求调度中心的令牌")
private String gatewayToken;
/**
* 当前任务的类型 java python shell sql script
*/
@ApiModelProperty("当前任务的类型 java python shell sql script")
private String jobType;
/**
* 本地节点(插件方) 的节点的名字
*/
@ApiModelProperty("本地节点(插件方) 的节点的名字")
private String handlerName;
/**
* 这个在设置节点执行时间跟随任务流的时候,他是没用的,但是设置不跟随的时候,节点的执行按照他自己的时间执行
*/
@ApiModelProperty("这个在设置节点执行时间跟随任务流的时候,他是没用的,但是设置不跟随的时候,节点的执行按照他自己的时间执行")
private String nodeCron;
/**
* 节点的说明
*/
@ApiModelProperty("节点的说明")
private String nodeDesc;
/**
* 当前节点的名称
*/
@ApiModelProperty("当前节点的名称")
private String nodeName;
/**
* 映射的工作流id(当节点为虚节点,有意义)
*/
@ApiModelProperty("映射的工作流id(当节点为虚节点,有意义)")
private Integer mapFlowId;
/**
* 节点的超时时间 -1不超时
*/
@ApiModelProperty("节点的超时时间 -1不超时")
private Long nodeTimeout;
/**
* 是否是虚节点(0 是, 1 否),虚节点代表是内嵌工作流
*/
@ApiModelProperty("是否是虚节点(0 是, 1 否),虚节点代表是内嵌工作流")
private String isVirtual;
/**
* 插件端的url集合
*/
@ApiModelProperty("插件端的url集合")
private String pluginUrls;
/**
* 设置任务的优先级,1最低 2最高
*/
@ApiModelProperty("设置任务的优先级,1最低 2最高")
private String priority;
/**
* 节点剩余执行次数
*/
@ApiModelProperty("节点剩余执行次数")
private Integer remainingCount;
/**
* 节点可执行次数
*/
@ApiModelProperty("节点可执行次数")
private Integer repeatCount;
/**
* 失败重试的间隔(毫秒)
*/
@ApiModelProperty("失败重试的间隔(毫秒)")
private Long failedRetryInterval;
/**
* 路由策略
*/
@ApiModelProperty("路由策略")
private String routingStrategy;
/**
* 节点的参数
*/
@ApiModelProperty("节点的参数")
private String runParam;
/**
* 源码备注
*/
@ApiModelProperty("源码备注")
private String runSourceDesc;
/**
* 脚本的文件服务器路径集
*/
@ApiModelProperty("脚本的文件服务器路径集")
private String scriptUrls;
/**
* 源码负责人
*/
@ApiModelProperty("源码负责人")
private String sourcePrincipal;
/**
* 源码的修改时间
*/
@ApiModelProperty("源码的修改时间")
private Date sourceUpdateTime;
/**
* 当前版本的节点的下次执行时间
*/
@ApiModelProperty("当前版本的节点的下次执行时间")
private Long triggerNextTime;
/**
* 创建人
*/
@ApiModelProperty("创建人")
private String author;
/**
* 创建时间
*/
@ApiModelProperty("创建时间")
private Date addTime;
/**
* 版本名称
*/
@ApiModelProperty("版本名称")
private String versionName;
/**
* 在调度上(0,在 1, 不在)
*/
@ApiModelProperty("在调度上(0,在 1, 不在)")
private String onFork;
/**
* 运行命令
*/
@ApiModelProperty("运行命令")
private String runCommand;
/**
* 源码
*/
@ApiModelProperty("源码")
private String runSource;
/**
*/
private static final long serialVersionUID = 1L;
}
\ No newline at end of file
package com.byit.model;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import java.io.Serializable;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
/**
* 节点依赖
* @author gen
*/
@ApiModel
@Data
@Builder
@AllArgsConstructor
@NoArgsConstructor
public class NodeDependencyKey implements Serializable {
/**
* 节点id
*/
@ApiModelProperty("节点id")
private Integer nodeId;
/**
* 依赖的id
*/
@ApiModelProperty("依赖的id")
private Integer dependencyId;
/**
*/
private static final long serialVersionUID = 1L;
}
\ No newline at end of file
package com.byit.model;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import java.io.Serializable;
import java.util.Date;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
/**
* 节点管理
* @author huangfu
*/
@ApiModel
@Data
@Builder
@AllArgsConstructor
@NoArgsConstructor
public class NodeVersion implements Serializable {
/**
* 当前版本节点主键
*/
@ApiModelProperty("当前版本节点主键")
private Integer nodeVersionId;
/**
* 节点的id
*/
@ApiModelProperty("节点的id")
private Integer nodeId;
/**
* 阻塞策略
*/
@ApiModelProperty("阻塞策略")
private String blockStrategy;
/**
* 插件端网关令牌
*/
@ApiModelProperty("插件端网关令牌")
private String puginToken;
/**
* 当前节点的失败重试次数
*/
@ApiModelProperty("当前节点的失败重试次数")
private Integer failedRetryCount;
/**
* 工作流ID
*/
@ApiModelProperty("工作流ID")
private Integer flowId;
/**
* 所属工作流的id
*/
@ApiModelProperty("所属工作流的id")
private Integer flowVersionId;
/**
* 插件端请求调度中心的令牌
*/
@ApiModelProperty("插件端请求调度中心的令牌")
private String gatewayToken;
/**
* 当前任务的类型 java python shell sql script
*/
@ApiModelProperty("当前任务的类型 java python shell sql script")
private String jobType;
/**
* 本地节点(插件方) 的节点的名字
*/
@ApiModelProperty("本地节点(插件方) 的节点的名字")
private String handlerName;
/**
* 这个在设置节点执行时间跟随任务流的时候,他是没用的,但是设置不跟随的时候,节点的执行按照他自己的时间执行
*/
@ApiModelProperty("这个在设置节点执行时间跟随任务流的时候,他是没用的,但是设置不跟随的时候,节点的执行按照他自己的时间执行")
private String nodeCron;
/**
* 节点的说明
*/
@ApiModelProperty("节点的说明")
private String nodeDesc;
/**
* 当前节点的名称
*/
@ApiModelProperty("当前节点的名称")
private String nodeName;
/**
* 映射的工作流id(当节点为虚节点,有意义)
*/
@ApiModelProperty("映射的工作流id(当节点为虚节点,有意义)")
private Integer mapFlowId;
/**
* 节点的超时时间 -1不超时
*/
@ApiModelProperty("节点的超时时间 -1不超时")
private Long nodeTimeout;
/**
* 是否是虚节点(0 是, 1 否),虚节点代表是内嵌工作流
*/
@ApiModelProperty("是否是虚节点(0 是, 1 否),虚节点代表是内嵌工作流")
private String isVirtual;
/**
* 插件端的url集合
*/
@ApiModelProperty("插件端的url集合")
private String pluginUrls;
/**
* 设置任务的优先级,1最低 2最高
*/
@ApiModelProperty("设置任务的优先级,1最低 2最高")
private String priority;
/**
* 删除标识 1正常 2 删除
*/
@ApiModelProperty("删除标识 1正常 2 删除")
private String removeMark;
/**
* 当前节点总共重复次数(默认为-1,不限制)
*/
@ApiModelProperty("当前节点总共重复次数(默认为-1,不限制)")
private Integer repeatCount;
/**
* 失败重试的间隔(毫秒)
*/
@ApiModelProperty("失败重试的间隔(毫秒)")
private Long failedRetryInterval;
/**
* 路由策略
*/
@ApiModelProperty("路由策略")
private String routingStrategy;
/**
* 节点的参数
*/
@ApiModelProperty("节点的参数")
private String runParam;
/**
* 源码备注
*/
@ApiModelProperty("源码备注")
private String runSourceDesc;
/**
* 脚本的文件服务器路径集
*/
@ApiModelProperty("脚本的文件服务器路径集")
private String scriptUrls;
/**
* 源码负责人
*/
@ApiModelProperty("源码负责人")
private String sourcePrincipal;
/**
* 源码的修改时间
*/
@ApiModelProperty("源码的修改时间")
private Date sourceUpdateTime;
/**
* 当前节点的版本标识 this
*/
@ApiModelProperty("当前节点的版本标识 this")
private String versionMark;
/**
* 节点的作者
*/
@ApiModelProperty("节点的作者")
private String author;
/**
* 创建时间
*/
@ApiModelProperty("创建时间")
private Date addTime;
/**
* 版本名称
*/
@ApiModelProperty("版本名称")
private String versionName;
/**
* 在调度上(0,在 1, 不在)
*/
@ApiModelProperty("在调度上(0,在 1, 不在)")
private String onFork;
/**
* 运行命令
*/
@ApiModelProperty("运行命令")
private String runCommand;
/**
* 源码
*/
@ApiModelProperty("源码")
private String runSource;
/**
*/
private static final long serialVersionUID = 1L;
}
\ No newline at end of file
package com.byit.model;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import java.io.Serializable;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
/**
* 节点版本依赖
* @author huangfu
*/
@ApiModel
@Data
@Builder
@AllArgsConstructor
@NoArgsConstructor
public class NodeVersionDependencyKey implements Serializable {
/**
* 节点版本id
*/
@ApiModelProperty("节点版本id")
private Integer nodeVersionId;
/**
* 依赖的id
*/
@ApiModelProperty("依赖的id")
private Integer dependencyId;
/**
*/
private static final long serialVersionUID = 1L;
}
\ No newline at end of file
package com.byit.model;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import java.io.Serializable;
import java.util.Date;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
/**
* 运行记录
* @author gen
*/
@ApiModel
@Data
@Builder
@AllArgsConstructor
@NoArgsConstructor
public class RunRecording implements Serializable {
/**
* 记录主键
*/
@ApiModelProperty("记录主键")
private Integer recordingId;
/**
* 运行标识
*/
@ApiModelProperty("运行标识")
private String runId;
/**
* 当前工作流版本的报警邮箱
*/
@ApiModelProperty("当前工作流版本的报警邮箱")
private String alarmEmail;
/**
* 被哪一个调度器加载的
*/
@ApiModelProperty("被哪一个调度器加载的")
private String dispatchIp;
/**
* 工作流的名字
*/
@ApiModelProperty("工作流的名字")
private String flowName;
/**
* 执行结果 1 成功 2 失败
*/
@ApiModelProperty("执行结果 1 成功 2 失败")
private String flowRunResult;
/**
* 运行状态 1 未开始 2运行中 3暂停 4完成
*/
@ApiModelProperty("运行状态 1 未开始 2运行中 3暂停 4完成")
private String flowStatus;
/**
* 工作流的超时时间
*/
@ApiModelProperty("工作流的超时时间")
private Long flowTimeout;
/**
* 工作流的版本名称
*/
@ApiModelProperty("工作流的版本名称")
private String flowVersionName;
/**
* 当前工作流版本的告警的时机(0 不告警, 1 完成时告警, 2 失败时告警, 3 成功时告警)
*/
@ApiModelProperty("当前工作流版本的告警的时机(0 不告警, 1 完成时告警, 2 失败时告警, 3 成功时告警)")
private String alarmlAction;
/**
* 设置任务的优先级,1最低 2最高
*/
@ApiModelProperty("设置任务的优先级,1最低 2最高")
private String priority;
/**
* 本次任务的执行时间
*/
@ApiModelProperty("本次任务的执行时间")
private Long triggerTime;
/**
* 责任人
*/
@ApiModelProperty("责任人")
private String principal;
/**
* 工作流Id
*/
@ApiModelProperty("工作流Id")
private Integer flowId;
/**
* 开始时间
*/
@ApiModelProperty("开始时间")
private Date startTime;
/**
* 结束时间
*/
@ApiModelProperty("结束时间")
private Date endTime;
/**
* 是否已告警(0,是 1,否)
*/
@ApiModelProperty("是否已告警(0,是 1,否)")
private String isAlarm;
/**
* 是否是内嵌工作流 0 否, 1 是
*/
@ApiModelProperty("是否是内嵌工作流 0 否, 1 是")
private String isInner;
/**
* 是否执行快速失败 0 否, 1 是
*/
@ApiModelProperty("是否执行快速失败 0 否, 1 是")
private String failFast;
/**
*/
private static final long serialVersionUID = 1L;
}
\ No newline at end of file
package com.byit.model;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import java.io.Serializable;
import java.util.Date;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
/**
* 源码历史
* @author gen
*/
@ApiModel
@Data
@Builder
@AllArgsConstructor
@NoArgsConstructor
public class SourceHistory implements Serializable {
/**
* 历史源码主键
*/
@ApiModelProperty("历史源码主键")
private String id;
/**
* 节点主键
*/
@ApiModelProperty("节点主键")
private String jobNodeId;
/**
* 备注
*/
@ApiModelProperty("备注")
private String glueRemark;
/**
* 添加时间
*/
@ApiModelProperty("添加时间")
private Date addTime;
/**
* 源代码
*/
@ApiModelProperty("源代码")
private String glueSource;
/**
*/
private static final long serialVersionUID = 1L;
}
\ No newline at end of file
package com.byit.service; package com.byit.service;
import com.byit.model.RunRecording; import com.byit.model.RunRecording;
import org.apache.ibatis.annotations.Param;
/** /**
* 运行记录表 * 运行记录表
......
/*
package com.byit.service.impl; package com.byit.service.impl;
import com.byit.job.utils.CronExpression; import com.byit.job.utils.CronExpression;
...@@ -6,7 +7,6 @@ import com.byit.mapper.FlowMapper; ...@@ -6,7 +7,6 @@ import com.byit.mapper.FlowMapper;
import com.byit.mapper.NodeDependencyMapper; import com.byit.mapper.NodeDependencyMapper;
import com.byit.mapper.NodeMapper; import com.byit.mapper.NodeMapper;
import com.byit.model.Flow; import com.byit.model.Flow;
import com.byit.model.FlowDependentKey;
import com.byit.model.Node; import com.byit.model.Node;
import com.byit.model.vo.FlowVo; import com.byit.model.vo.FlowVo;
import com.byit.model.vo.NodeVo; import com.byit.model.vo.NodeVo;
...@@ -24,11 +24,13 @@ import java.util.ArrayList; ...@@ -24,11 +24,13 @@ import java.util.ArrayList;
import java.util.Date; import java.util.Date;
import java.util.List; import java.util.List;
*/
/** /**
* @description: 工作流业务逻辑实现类 * @description: 工作流业务逻辑实现类
* @author: gml * @author: gml
* @create: 2019-12-23 17:33 * @create: 2019-12-23 17:33
*/ *//*
@Service @Service
@Slf4j @Slf4j
...@@ -73,11 +75,13 @@ public class FlowServiceImpl implements FlowService { ...@@ -73,11 +75,13 @@ public class FlowServiceImpl implements FlowService {
return flow; return flow;
} }
/** */
/**
* 重新组织节点的依赖和调度关系 * 重新组织节点的依赖和调度关系
* @param flowVo * @param flowVo
* @param nodeVoList * @param nodeVoList
*/ *//*
private void reNodeDepend(FlowVo flowVo, List<NodeVo> nodeVoList) { private void reNodeDepend(FlowVo flowVo, List<NodeVo> nodeVoList) {
//将工作流下的所有节点设为不在工作流调度上 //将工作流下的所有节点设为不在工作流调度上
...@@ -133,10 +137,12 @@ public class FlowServiceImpl implements FlowService { ...@@ -133,10 +137,12 @@ public class FlowServiceImpl implements FlowService {
} }
/** */
/**
* 重新组织工作流的依赖关系 * 重新组织工作流的依赖关系
* @param flowVo * @param flowVo
*/ *//*
private void reFlowDepend(FlowVo flowVo) { private void reFlowDepend(FlowVo flowVo) {
//先去除所有的工作流依赖 //先去除所有的工作流依赖
...@@ -248,3 +254,4 @@ public class FlowServiceImpl implements FlowService { ...@@ -248,3 +254,4 @@ public class FlowServiceImpl implements FlowService {
return null; return null;
} }
} }
*/
package com.byit.service.impl; package com.byit.service.impl;
import com.byit.mapper.JobTaskMapper; import com.byit.mapper.JobTaskMapper;
import com.byit.model.JobTask; import com.byit.model.JobTask;
import com.byit.service.JobTaskService; import com.byit.service.JobTaskService;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
......
...@@ -238,8 +238,38 @@ public class LogScanHelper { ...@@ -238,8 +238,38 @@ public class LogScanHelper {
} }
public void stopVirtualNodeScanThread(){ public void doStop(){
this.virtualNodeScanIsStop = true; this.virtualNodeScanIsStop = true;
try {
TimeUnit.SECONDS.sleep(1);
} catch (InterruptedException e) {
e.printStackTrace( );
}
if (virtualNodeScanThread.getState() != Thread.State.TERMINATED) {
virtualNodeScanThread.interrupt();
try {
virtualNodeScanThread.join();
} catch (InterruptedException e) {
e.printStackTrace( );
}
}
this.notAlarmedNodeScanIsStop = true;
try {
TimeUnit.SECONDS.sleep(1);
} catch (InterruptedException e) {
e.printStackTrace( );
}
if (notAlarmedNodeScanThread.getState() != Thread.State.TERMINATED) {
notAlarmedNodeScanThread.interrupt();
try {
notAlarmedNodeScanThread.join();
} catch (InterruptedException e) {
e.printStackTrace( );
}
}
} }
/** /**
......
...@@ -55,10 +55,9 @@ ...@@ -55,10 +55,9 @@
type="XMLMAPPER"> type="XMLMAPPER">
<property name="enableSubPackages" value="false"/> <property name="enableSubPackages" value="false"/>
</javaClientGenerator> </javaClientGenerator>
<table tableName="flow" domainObjectName="Flow" />
<table tableName="email_alarm" domainObjectName="EmailAlarm" /> <table tableName="email_alarm" domainObjectName="EmailAlarm" />
<table tableName="flow" domainObjectName="Flow" />
<table tableName="flow_version" domainObjectName="FlowVersion" /> <table tableName="flow_version" domainObjectName="FlowVersion" />
<table tableName="flow_version_dependent" domainObjectName="FlowVersionDependent" />
<table tableName="job_task" domainObjectName="JobTask" /> <table tableName="job_task" domainObjectName="JobTask" />
<table tableName="job_task_run_log" domainObjectName="JobTaskRunLog" /> <table tableName="job_task_run_log" domainObjectName="JobTaskRunLog" />
<table tableName="job_task_schedule" domainObjectName="JobTaskSchedule" /> <table tableName="job_task_schedule" domainObjectName="JobTaskSchedule" />
...@@ -68,7 +67,8 @@ ...@@ -68,7 +67,8 @@
<table tableName="source_history" domainObjectName="SourceHistory" /> <table tableName="source_history" domainObjectName="SourceHistory" />
<table tableName="flow_dependent" domainObjectName="FlowDependent" /> <table tableName="flow_dependent" domainObjectName="FlowDependent" />
<table tableName="node_dependency" domainObjectName="NodeDependency" /> <table tableName="node_dependency" domainObjectName="NodeDependency" />
<table tableName="node_version_dependency" domainObjectName="NodeVersionDependency" /> <table tableName="workspace" domainObjectName="Workspace" />
</context> </context>
</generatorConfiguration> </generatorConfiguration>
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.byit.mapper.FlowDependentMapper">
<resultMap id="BaseResultMap" type="com.byit.model.FlowDependentKey">
<!-- generated @mbg.generated date: 2019-12-25 -->
<id column="flow_id" jdbcType="INTEGER" property="flowId" />
<id column="depend_flow_id" jdbcType="INTEGER" property="dependFlowId" />
</resultMap>
<select id="findByFlowId" parameterType="integer" resultMap="BaseResultMap">
select flow_id, depend_flow_id
from flow_dependent
where flow_id = #{flowId,jdbcType=INTEGER}
</select>
<delete id="deleteById" parameterType="com.byit.model.FlowDependentKey">
<!-- generated @mbg.generated date: 2019-12-25 -->
delete from flow_dependent
where flow_id = #{flowId,jdbcType=INTEGER}
and depend_flow_id = #{dependFlowId,jdbcType=INTEGER}
</delete>
<delete id="deleteByFlowId" parameterType="integer">
delete from flow_dependent
where flow_id = #{flowId,jdbcType=INTEGER}
</delete>
<insert id="insert" parameterType="integer">
<!-- generated @mbg.generated date: 2019-12-25 -->
insert into flow_dependent (flow_id, depend_flow_id)
values (#{flowId,jdbcType=INTEGER}, #{dependFlowId,jdbcType=INTEGER})
</insert>
<insert id="insertSelective" parameterType="com.byit.model.FlowDependentKey">
<!-- generated @mbg.generated date: 2019-12-25 -->
insert into flow_dependent
<trim prefix="(" suffix=")" suffixOverrides=",">
<if test="flowId != null">
flow_id,
</if>
<if test="dependFlowId != null">
depend_flow_id,
</if>
</trim>
<trim prefix="values (" suffix=")" suffixOverrides=",">
<if test="flowId != null">
#{flowId,jdbcType=INTEGER},
</if>
<if test="dependFlowId != null">
#{dependFlowId,jdbcType=INTEGER},
</if>
</trim>
</insert>
</mapper>
\ No newline at end of file
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.byit.mapper.FlowMapper">
<resultMap id="BaseResultMap" type="com.byit.model.Flow">
<!-- generated @mbg.generated date: 2019-12-25 -->
<id column="flow_id" jdbcType="INTEGER" property="flowId" />
<result column="alarm_email" jdbcType="VARCHAR" property="alarmEmail" />
<result column="exec_type" jdbcType="CHAR" property="execType" />
<result column="flow_cron" jdbcType="VARCHAR" property="flowCron" />
<result column="flow_desc" jdbcType="VARCHAR" property="flowDesc" />
<result column="flow_name" jdbcType="VARCHAR" property="flowName" />
<result column="flow_node_count" jdbcType="INTEGER" property="flowNodeCount" />
<result column="flow_timeout" jdbcType="BIGINT" property="flowTimeout" />
<result column="is_have_depend" jdbcType="CHAR" property="isHaveDepend" />
<result column="is_inner" jdbcType="CHAR" property="isInner" />
<result column="is_top" jdbcType="CHAR" property="isTop" />
<result column="alarml_action" jdbcType="CHAR" property="alarmlAction" />
<result column="priority" jdbcType="CHAR" property="priority" />
<result column="trigger_next_time" jdbcType="BIGINT" property="triggerNextTime" />
<result column="workspace_id" jdbcType="INTEGER" property="workspaceId" />
<result column="author" jdbcType="VARCHAR" property="author" />
<result column="add_time" jdbcType="TIMESTAMP" property="addTime" />
<result column="start_up" jdbcType="CHAR" property="startUp" />
<result column="principal" jdbcType="VARCHAR" property="principal" />
<result column="version_name" jdbcType="VARCHAR" property="versionName" />
<result column="repeat_count" jdbcType="INTEGER" property="repeatCount" />
<result column="remaining_count" jdbcType="INTEGER" property="remainingCount" />
<result column="schedule_follow" jdbcType="CHAR" property="scheduleFollow" />
</resultMap>
<sql id="Base_Column_List">
<!-- generated @mbg.generated date: 2019-12-25 -->
flow_id, alarm_email, exec_type, flow_cron, flow_desc, flow_name, flow_node_count,
flow_timeout, is_have_depend, is_inner, is_top, alarml_action, priority, trigger_next_time,
workspace_id, author, add_time, start_up, principal, version_name, repeat_count,
remaining_count, schedule_follow
</sql>
<select id="getById" parameterType="java.lang.Integer" resultMap="BaseResultMap">
<!-- generated @mbg.generated date: 2019-12-25 -->
select
<include refid="Base_Column_List" />
from flow
where flow_id = #{flowId,jdbcType=INTEGER}
</select>
<delete id="deleteById" parameterType="java.lang.Integer">
<!-- generated @mbg.generated date: 2019-12-25 -->
delete from flow
where flow_id = #{flowId,jdbcType=INTEGER}
</delete>
<insert id="insertSelective" useGeneratedKeys="true" keyProperty="flowId" parameterType="com.byit.model.Flow">
<!-- generated @mbg.generated date: 2019-12-25 -->
insert into flow
<trim prefix="(" suffix=")" suffixOverrides=",">
<if test="flowId != null">
flow_id,
</if>
<if test="alarmEmail != null">
alarm_email,
</if>
<if test="execType != null">
exec_type,
</if>
<if test="flowCron != null">
flow_cron,
</if>
<if test="flowDesc != null">
flow_desc,
</if>
<if test="flowName != null">
flow_name,
</if>
<if test="flowNodeCount != null">
flow_node_count,
</if>
<if test="flowTimeout != null">
flow_timeout,
</if>
<if test="isHaveDepend != null">
is_have_depend,
</if>
<if test="isInner != null">
is_inner,
</if>
<if test="isTop != null">
is_top,
</if>
<if test="alarmlAction != null">
alarml_action,
</if>
<if test="priority != null">
priority,
</if>
<if test="triggerNextTime != null">
trigger_next_time,
</if>
<if test="workspaceId != null">
workspace_id,
</if>
<if test="author != null">
author,
</if>
<if test="addTime != null">
add_time,
</if>
<if test="startUp != null">
start_up,
</if>
<if test="principal != null">
principal,
</if>
<if test="versionName != null">
version_name,
</if>
<if test="repeatCount != null">
repeat_count,
</if>
<if test="remainingCount != null">
remaining_count,
</if>
<if test="scheduleFollow != null">
schedule_follow,
</if>
</trim>
<trim prefix="values (" suffix=")" suffixOverrides=",">
<if test="flowId != null">
#{flowId,jdbcType=INTEGER},
</if>
<if test="alarmEmail != null">
#{alarmEmail,jdbcType=VARCHAR},
</if>
<if test="execType != null">
#{execType,jdbcType=CHAR},
</if>
<if test="flowCron != null">
#{flowCron,jdbcType=VARCHAR},
</if>
<if test="flowDesc != null">
#{flowDesc,jdbcType=VARCHAR},
</if>
<if test="flowName != null">
#{flowName,jdbcType=VARCHAR},
</if>
<if test="flowNodeCount != null">
#{flowNodeCount,jdbcType=INTEGER},
</if>
<if test="flowTimeout != null">
#{flowTimeout,jdbcType=BIGINT},
</if>
<if test="isHaveDepend != null">
#{isHaveDepend,jdbcType=CHAR},
</if>
<if test="isInner != null">
#{isInner,jdbcType=CHAR},
</if>
<if test="isTop != null">
#{isTop,jdbcType=CHAR},
</if>
<if test="alarmlAction != null">
#{alarmlAction,jdbcType=CHAR},
</if>
<if test="priority != null">
#{priority,jdbcType=CHAR},
</if>
<if test="triggerNextTime != null">
#{triggerNextTime,jdbcType=BIGINT},
</if>
<if test="workspaceId != null">
#{workspaceId,jdbcType=INTEGER},
</if>
<if test="author != null">
#{author,jdbcType=VARCHAR},
</if>
<if test="addTime != null">
#{addTime,jdbcType=TIMESTAMP},
</if>
<if test="startUp != null">
#{startUp,jdbcType=CHAR},
</if>
<if test="principal != null">
#{principal,jdbcType=VARCHAR},
</if>
<if test="versionName != null">
#{versionName,jdbcType=VARCHAR},
</if>
<if test="repeatCount != null">
#{repeatCount,jdbcType=INTEGER},
</if>
<if test="remainingCount != null">
#{remainingCount,jdbcType=INTEGER},
</if>
<if test="scheduleFollow != null">
#{scheduleFollow,jdbcType=CHAR},
</if>
</trim>
</insert>
<update id="updateByIdSelective" parameterType="com.byit.model.Flow">
<!-- generated @mbg.generated date: 2019-12-25 -->
update flow
<set>
<if test="alarmEmail != null">
alarm_email = #{alarmEmail,jdbcType=VARCHAR},
</if>
<if test="execType != null">
exec_type = #{execType,jdbcType=CHAR},
</if>
<if test="flowCron != null">
flow_cron = #{flowCron,jdbcType=VARCHAR},
</if>
<if test="flowDesc != null">
flow_desc = #{flowDesc,jdbcType=VARCHAR},
</if>
<if test="flowName != null">
flow_name = #{flowName,jdbcType=VARCHAR},
</if>
<if test="flowNodeCount != null">
flow_node_count = #{flowNodeCount,jdbcType=INTEGER},
</if>
<if test="flowTimeout != null">
flow_timeout = #{flowTimeout,jdbcType=BIGINT},
</if>
<if test="isHaveDepend != null">
is_have_depend = #{isHaveDepend,jdbcType=CHAR},
</if>
<if test="isInner != null">
is_inner = #{isInner,jdbcType=CHAR},
</if>
<if test="isTop != null">
is_top = #{isTop,jdbcType=CHAR},
</if>
<if test="alarmlAction != null">
alarml_action = #{alarmlAction,jdbcType=CHAR},
</if>
<if test="priority != null">
priority = #{priority,jdbcType=CHAR},
</if>
<if test="triggerNextTime != null">
trigger_next_time = #{triggerNextTime,jdbcType=BIGINT},
</if>
<if test="workspaceId != null">
workspace_id = #{workspaceId,jdbcType=INTEGER},
</if>
<if test="author != null">
author = #{author,jdbcType=VARCHAR},
</if>
<if test="addTime != null">
add_time = #{addTime,jdbcType=TIMESTAMP},
</if>
<if test="startUp != null">
start_up = #{startUp,jdbcType=CHAR},
</if>
<if test="principal != null">
principal = #{principal,jdbcType=VARCHAR},
</if>
<if test="versionName != null">
version_name = #{versionName,jdbcType=VARCHAR},
</if>
<if test="repeatCount != null">
repeat_count = #{repeatCount,jdbcType=INTEGER},
</if>
<if test="remainingCount != null">
remaining_count = #{remainingCount,jdbcType=INTEGER},
</if>
<if test="scheduleFollow != null">
schedule_follow = #{scheduleFollow,jdbcType=CHAR},
</if>
</set>
where flow_id = #{flowId,jdbcType=INTEGER}
</update>
</mapper>
\ No newline at end of file
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.byit.mapper.FlowVersionDependentMapper">
<resultMap id="BaseResultMap" type="com.byit.model.FlowVersionDependentKey">
<!-- generated @mbg.generated date: 2019-12-25 -->
<id column="flow_version_id" jdbcType="INTEGER" property="flowVersionId" />
<id column="dependent_id" jdbcType="INTEGER" property="dependentId" />
</resultMap>
<delete id="deleteById" parameterType="com.byit.model.FlowVersionDependentKey">
<!-- generated @mbg.generated date: 2019-12-25 -->
delete from flow_version_dependent
where flow_version_id = #{flowVersionId,jdbcType=INTEGER}
and dependent_id = #{dependentId,jdbcType=INTEGER}
</delete>
<insert id="insert" parameterType="com.byit.model.FlowVersionDependentKey">
<!-- generated @mbg.generated date: 2019-12-25 -->
insert into flow_version_dependent (flow_version_id, dependent_id)
values (#{flowVersionId,jdbcType=INTEGER}, #{dependentId,jdbcType=INTEGER})
</insert>
<insert id="insertSelective" parameterType="com.byit.model.FlowVersionDependentKey">
<!-- generated @mbg.generated date: 2019-12-25 -->
insert into flow_version_dependent
<trim prefix="(" suffix=")" suffixOverrides=",">
<if test="flowVersionId != null">
flow_version_id,
</if>
<if test="dependentId != null">
dependent_id,
</if>
</trim>
<trim prefix="values (" suffix=")" suffixOverrides=",">
<if test="flowVersionId != null">
#{flowVersionId,jdbcType=INTEGER},
</if>
<if test="dependentId != null">
#{dependentId,jdbcType=INTEGER},
</if>
</trim>
</insert>
</mapper>
\ No newline at end of file
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.byit.mapper.FlowVersionMapper">
<resultMap id="BaseResultMap" type="com.byit.model.FlowVersion">
<!-- generated @mbg.generated date: 2019-12-25 -->
<id column="flow_version_id" jdbcType="INTEGER" property="flowVersionId" />
<result column="add_time" jdbcType="TIMESTAMP" property="addTime" />
<result column="alarm_email" jdbcType="VARCHAR" property="alarmEmail" />
<result column="exec_type" jdbcType="CHAR" property="execType" />
<result column="flow_cron" jdbcType="VARCHAR" property="flowCron" />
<result column="flow_desc" jdbcType="VARCHAR" property="flowDesc" />
<result column="flow_id" jdbcType="INTEGER" property="flowId" />
<result column="flow_name" jdbcType="VARCHAR" property="flowName" />
<result column="flow_node_count" jdbcType="INTEGER" property="flowNodeCount" />
<result column="alarml_action" jdbcType="CHAR" property="alarmlAction" />
<result column="schedule_follow" jdbcType="CHAR" property="scheduleFollow" />
<result column="priority" jdbcType="CHAR" property="priority" />
<result column="remove_mark" jdbcType="CHAR" property="removeMark" />
<result column="repeat_count" jdbcType="INTEGER" property="repeatCount" />
<result column="version_mark" jdbcType="CHAR" property="versionMark" />
<result column="workspace_id" jdbcType="INTEGER" property="workspaceId" />
<result column="author" jdbcType="VARCHAR" property="author" />
<result column="principal" jdbcType="VARCHAR" property="principal" />
<result column="version_name" jdbcType="VARCHAR" property="versionName" />
<result column="is_have_depend" jdbcType="CHAR" property="isHaveDepend" />
<result column="is_inner" jdbcType="CHAR" property="isInner" />
<result column="is_top" jdbcType="CHAR" property="isTop" />
</resultMap>
<sql id="Base_Column_List">
<!-- generated @mbg.generated date: 2019-12-25 -->
flow_version_id, add_time, alarm_email, exec_type, flow_cron, flow_desc, flow_id,
flow_name, flow_node_count, alarml_action, schedule_follow, priority, remove_mark,
repeat_count, version_mark, workspace_id, author, principal, version_name, is_have_depend,
is_inner, is_top
</sql>
<select id="getById" parameterType="java.lang.Integer" resultMap="BaseResultMap">
<!-- generated @mbg.generated date: 2019-12-25 -->
select
<include refid="Base_Column_List" />
from flow_version
where flow_version_id = #{flowVersionId,jdbcType=INTEGER}
</select>
<delete id="deleteById" parameterType="java.lang.Integer">
<!-- generated @mbg.generated date: 2019-12-25 -->
delete from flow_version
where flow_version_id = #{flowVersionId,jdbcType=INTEGER}
</delete>
<insert id="insertSelective" parameterType="com.byit.model.FlowVersion">
<!-- generated @mbg.generated date: 2019-12-25 -->
insert into flow_version
<trim prefix="(" suffix=")" suffixOverrides=",">
<if test="flowVersionId != null">
flow_version_id,
</if>
<if test="addTime != null">
add_time,
</if>
<if test="alarmEmail != null">
alarm_email,
</if>
<if test="execType != null">
exec_type,
</if>
<if test="flowCron != null">
flow_cron,
</if>
<if test="flowDesc != null">
flow_desc,
</if>
<if test="flowId != null">
flow_id,
</if>
<if test="flowName != null">
flow_name,
</if>
<if test="flowNodeCount != null">
flow_node_count,
</if>
<if test="alarmlAction != null">
alarml_action,
</if>
<if test="scheduleFollow != null">
schedule_follow,
</if>
<if test="priority != null">
priority,
</if>
<if test="removeMark != null">
remove_mark,
</if>
<if test="repeatCount != null">
repeat_count,
</if>
<if test="versionMark != null">
version_mark,
</if>
<if test="workspaceId != null">
workspace_id,
</if>
<if test="author != null">
author,
</if>
<if test="principal != null">
principal,
</if>
<if test="versionName != null">
version_name,
</if>
<if test="isHaveDepend != null">
is_have_depend,
</if>
<if test="isInner != null">
is_inner,
</if>
<if test="isTop != null">
is_top,
</if>
</trim>
<trim prefix="values (" suffix=")" suffixOverrides=",">
<if test="flowVersionId != null">
#{flowVersionId,jdbcType=INTEGER},
</if>
<if test="addTime != null">
#{addTime,jdbcType=TIMESTAMP},
</if>
<if test="alarmEmail != null">
#{alarmEmail,jdbcType=VARCHAR},
</if>
<if test="execType != null">
#{execType,jdbcType=CHAR},
</if>
<if test="flowCron != null">
#{flowCron,jdbcType=VARCHAR},
</if>
<if test="flowDesc != null">
#{flowDesc,jdbcType=VARCHAR},
</if>
<if test="flowId != null">
#{flowId,jdbcType=INTEGER},
</if>
<if test="flowName != null">
#{flowName,jdbcType=VARCHAR},
</if>
<if test="flowNodeCount != null">
#{flowNodeCount,jdbcType=INTEGER},
</if>
<if test="alarmlAction != null">
#{alarmlAction,jdbcType=CHAR},
</if>
<if test="scheduleFollow != null">
#{scheduleFollow,jdbcType=CHAR},
</if>
<if test="priority != null">
#{priority,jdbcType=CHAR},
</if>
<if test="removeMark != null">
#{removeMark,jdbcType=CHAR},
</if>
<if test="repeatCount != null">
#{repeatCount,jdbcType=INTEGER},
</if>
<if test="versionMark != null">
#{versionMark,jdbcType=CHAR},
</if>
<if test="workspaceId != null">
#{workspaceId,jdbcType=INTEGER},
</if>
<if test="author != null">
#{author,jdbcType=VARCHAR},
</if>
<if test="principal != null">
#{principal,jdbcType=VARCHAR},
</if>
<if test="versionName != null">
#{versionName,jdbcType=VARCHAR},
</if>
<if test="isHaveDepend != null">
#{isHaveDepend,jdbcType=CHAR},
</if>
<if test="isInner != null">
#{isInner,jdbcType=CHAR},
</if>
<if test="isTop != null">
#{isTop,jdbcType=CHAR},
</if>
</trim>
</insert>
<update id="updateByIdSelective" parameterType="com.byit.model.FlowVersion">
<!-- generated @mbg.generated date: 2019-12-25 -->
update flow_version
<set>
<if test="addTime != null">
add_time = #{addTime,jdbcType=TIMESTAMP},
</if>
<if test="alarmEmail != null">
alarm_email = #{alarmEmail,jdbcType=VARCHAR},
</if>
<if test="execType != null">
exec_type = #{execType,jdbcType=CHAR},
</if>
<if test="flowCron != null">
flow_cron = #{flowCron,jdbcType=VARCHAR},
</if>
<if test="flowDesc != null">
flow_desc = #{flowDesc,jdbcType=VARCHAR},
</if>
<if test="flowId != null">
flow_id = #{flowId,jdbcType=INTEGER},
</if>
<if test="flowName != null">
flow_name = #{flowName,jdbcType=VARCHAR},
</if>
<if test="flowNodeCount != null">
flow_node_count = #{flowNodeCount,jdbcType=INTEGER},
</if>
<if test="alarmlAction != null">
alarml_action = #{alarmlAction,jdbcType=CHAR},
</if>
<if test="scheduleFollow != null">
schedule_follow = #{scheduleFollow,jdbcType=CHAR},
</if>
<if test="priority != null">
priority = #{priority,jdbcType=CHAR},
</if>
<if test="removeMark != null">
remove_mark = #{removeMark,jdbcType=CHAR},
</if>
<if test="repeatCount != null">
repeat_count = #{repeatCount,jdbcType=INTEGER},
</if>
<if test="versionMark != null">
version_mark = #{versionMark,jdbcType=CHAR},
</if>
<if test="workspaceId != null">
workspace_id = #{workspaceId,jdbcType=INTEGER},
</if>
<if test="author != null">
author = #{author,jdbcType=VARCHAR},
</if>
<if test="principal != null">
principal = #{principal,jdbcType=VARCHAR},
</if>
<if test="versionName != null">
version_name = #{versionName,jdbcType=VARCHAR},
</if>
<if test="isHaveDepend != null">
is_have_depend = #{isHaveDepend,jdbcType=CHAR},
</if>
<if test="isInner != null">
is_inner = #{isInner,jdbcType=CHAR},
</if>
<if test="isTop != null">
is_top = #{isTop,jdbcType=CHAR},
</if>
</set>
where flow_version_id = #{flowVersionId,jdbcType=INTEGER}
</update>
</mapper>
\ No newline at end of file
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.byit.mapper.NodeDependencyMapper">
<resultMap id="BaseResultMap" type="com.byit.model.NodeDependencyKey">
<!-- generated @mbg.generated date: 2019-12-25 -->
<id column="node_id" jdbcType="INTEGER" property="nodeId" />
<id column="dependency_id" jdbcType="INTEGER" property="dependencyId" />
</resultMap>
<select id="findByNodeId" parameterType="integer" resultType="integer">
select dependency_id from node_dependency where node_id = #{nodeId,jdbcType=INTEGER}
</select>
<delete id="deleteById" parameterType="com.byit.model.NodeDependencyKey">
<!-- generated @mbg.generated date: 2019-12-25 -->
delete from node_dependency
where node_id = #{nodeId,jdbcType=INTEGER}
and dependency_id = #{dependencyId,jdbcType=INTEGER}
</delete>
<delete id="deleteByNodeId" parameterType="integer">
delete from node_dependency
where node_id = #{nodeId,jdbcType=INTEGER}
</delete>
<insert id="insert" parameterType="integer">
<!-- generated @mbg.generated date: 2019-12-25 -->
insert into node_dependency (node_id, dependency_id)
values (#{nodeId,jdbcType=INTEGER}, #{dependNodeId,jdbcType=INTEGER})
</insert>
<insert id="insertSelective" parameterType="com.byit.model.NodeDependencyKey">
<!-- generated @mbg.generated date: 2019-12-25 -->
insert into node_dependency
<trim prefix="(" suffix=")" suffixOverrides=",">
<if test="nodeId != null">
node_id,
</if>
<if test="dependencyId != null">
dependency_id,
</if>
</trim>
<trim prefix="values (" suffix=")" suffixOverrides=",">
<if test="nodeId != null">
#{nodeId,jdbcType=INTEGER},
</if>
<if test="dependencyId != null">
#{dependencyId,jdbcType=INTEGER},
</if>
</trim>
</insert>
</mapper>
\ No newline at end of file
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.byit.mapper.NodeVersionDependencyMapper">
<resultMap id="BaseResultMap" type="com.byit.model.NodeVersionDependencyKey">
<!-- generated @mbg.generated date: 2019-12-25 -->
<id column="node_version_id" jdbcType="INTEGER" property="nodeVersionId" />
<id column="dependency_id" jdbcType="INTEGER" property="dependencyId" />
</resultMap>
<delete id="deleteById" parameterType="com.byit.model.NodeVersionDependencyKey">
<!-- generated @mbg.generated date: 2019-12-25 -->
delete from node_version_dependency
where node_version_id = #{nodeVersionId,jdbcType=INTEGER}
and dependency_id = #{dependencyId,jdbcType=INTEGER}
</delete>
<insert id="insert" parameterType="com.byit.model.NodeVersionDependencyKey">
<!-- generated @mbg.generated date: 2019-12-25 -->
insert into node_version_dependency (node_version_id, dependency_id)
values (#{nodeVersionId,jdbcType=INTEGER}, #{dependencyId,jdbcType=INTEGER})
</insert>
<insert id="insertSelective" parameterType="com.byit.model.NodeVersionDependencyKey">
<!-- generated @mbg.generated date: 2019-12-25 -->
insert into node_version_dependency
<trim prefix="(" suffix=")" suffixOverrides=",">
<if test="nodeVersionId != null">
node_version_id,
</if>
<if test="dependencyId != null">
dependency_id,
</if>
</trim>
<trim prefix="values (" suffix=")" suffixOverrides=",">
<if test="nodeVersionId != null">
#{nodeVersionId,jdbcType=INTEGER},
</if>
<if test="dependencyId != null">
#{dependencyId,jdbcType=INTEGER},
</if>
</trim>
</insert>
</mapper>
\ No newline at end of file
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.byit.mapper.SourceHistoryMapper">
<resultMap id="BaseResultMap" type="com.byit.model.SourceHistory">
<!-- generated @mbg.generated date: 2019-12-25 -->
<id column="id" jdbcType="VARCHAR" property="id" />
<result column="job_node_id" jdbcType="VARCHAR" property="jobNodeId" />
<result column="glue_remark" jdbcType="VARCHAR" property="glueRemark" />
<result column="add_time" jdbcType="TIMESTAMP" property="addTime" />
</resultMap>
<resultMap extends="BaseResultMap" id="ResultMapWithBLOBs" type="com.byit.model.SourceHistory">
<!-- generated @mbg.generated date: 2019-12-25 -->
<result column="glue_source" jdbcType="LONGVARCHAR" property="glueSource" />
</resultMap>
<sql id="Base_Column_List">
<!-- generated @mbg.generated date: 2019-12-25 -->
id, job_node_id, glue_remark, add_time
</sql>
<sql id="Blob_Column_List">
<!-- generated @mbg.generated date: 2019-12-25 -->
glue_source
</sql>
<select id="getById" parameterType="java.lang.String" resultMap="ResultMapWithBLOBs">
<!-- generated @mbg.generated date: 2019-12-25 -->
select
<include refid="Base_Column_List" />
,
<include refid="Blob_Column_List" />
from source_history
where id = #{id,jdbcType=VARCHAR}
</select>
<delete id="deleteById" parameterType="java.lang.String">
<!-- generated @mbg.generated date: 2019-12-25 -->
delete from source_history
where id = #{id,jdbcType=VARCHAR}
</delete>
<insert id="insertSelective" parameterType="com.byit.model.SourceHistory">
<!-- generated @mbg.generated date: 2019-12-25 -->
insert into source_history
<trim prefix="(" suffix=")" suffixOverrides=",">
<if test="id != null">
id,
</if>
<if test="jobNodeId != null">
job_node_id,
</if>
<if test="glueRemark != null">
glue_remark,
</if>
<if test="addTime != null">
add_time,
</if>
<if test="glueSource != null">
glue_source,
</if>
</trim>
<trim prefix="values (" suffix=")" suffixOverrides=",">
<if test="id != null">
#{id,jdbcType=VARCHAR},
</if>
<if test="jobNodeId != null">
#{jobNodeId,jdbcType=VARCHAR},
</if>
<if test="glueRemark != null">
#{glueRemark,jdbcType=VARCHAR},
</if>
<if test="addTime != null">
#{addTime,jdbcType=TIMESTAMP},
</if>
<if test="glueSource != null">
#{glueSource,jdbcType=LONGVARCHAR},
</if>
</trim>
</insert>
<update id="updateByIdSelective" parameterType="com.byit.model.SourceHistory">
<!-- generated @mbg.generated date: 2019-12-25 -->
update source_history
<set>
<if test="jobNodeId != null">
job_node_id = #{jobNodeId,jdbcType=VARCHAR},
</if>
<if test="glueRemark != null">
glue_remark = #{glueRemark,jdbcType=VARCHAR},
</if>
<if test="addTime != null">
add_time = #{addTime,jdbcType=TIMESTAMP},
</if>
<if test="glueSource != null">
glue_source = #{glueSource,jdbcType=LONGVARCHAR},
</if>
</set>
where id = #{id,jdbcType=VARCHAR}
</update>
</mapper>
\ No newline at end of file
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment