Commit be652c7e by huangfusuper

【代码重构】集成JPA 重构任务流版本表和任务流表!重新拆分任务流当前表和版本表;

parent 1ac2432b
...@@ -4,13 +4,14 @@ spring: ...@@ -4,13 +4,14 @@ spring:
url: jdbc:mysql://10.0.10.118:3306/myth-job?Unicode=true&characterEncoding=UTF-8&useSSL=true url: jdbc:mysql://10.0.10.118:3306/myth-job?Unicode=true&characterEncoding=UTF-8&useSSL=true
username: root username: root
password: 123456 password: 123456
jpa:
hibernate:
ddl-auto: update
show-sql: true
mybatis: mybatis:
mapper-locations: /mapper/*.xml mapper-locations: /mapper/*.xml
logging: logging:
path: /data/mythjob path: /data/mythjob
file: myth_log_file file: myth_log_file
...@@ -63,17 +63,18 @@ ...@@ -63,17 +63,18 @@
<logger name="com.byit.thread" level="debug" additivity="false"> <logger name="com.byit.thread" level="debug" additivity="false">
<appender-ref ref="file-myth-job" /> <appender-ref ref="file-myth-job" />
<appender-ref ref="console"/>
</logger> </logger>
<logger name="org.springframework.web" level="DEBUG"/> <logger name="org.springframework.web" level="debug"/>
<logger name="com.ibatis" level="DEBUG" /> <logger name="com.ibatis" level="debug" />
<logger name="com.ibatis.common.jdbc.SimpleDataSource" level="DEBUG" /> <logger name="com.ibatis.common.jdbc.SimpleDataSource" level="debug" />
<logger name="com.ibatis.common.jdbc.ScriptRunner" level="DEBUG" /> <logger name="com.ibatis.common.jdbc.ScriptRunner" level="debug" />
<logger name="com.ibatis.sqlmap.engine.impl.SqlMapClientDelegate" level="DEBUG" /> <logger name="com.ibatis.sqlmap.engine.impl.SqlMapClientDelegate" level="debug" />
<logger name="java.sql.Connection" level="DEBUG" /> <logger name="java.sql.Connection" level="debug" />
<logger name="java.sql.Statement" level="DEBUG" /> <logger name="java.sql.Statement" level="debug" />
<logger name="java.sql.PreparedStatement" level="DEBUG" /> <logger name="java.sql.PreparedStatement" level="debug" />
<root level="info"> <root level="info">
<appender-ref ref="console" /> <appender-ref ref="console" />
......
...@@ -56,12 +56,16 @@ ...@@ -56,12 +56,16 @@
<artifactId>spring-boot-configuration-processor</artifactId> <artifactId>spring-boot-configuration-processor</artifactId>
</dependency> </dependency>
<!-- https://mvnrepository.com/artifact/org.springframework.boot/spring-boot-starter-jdbc -->
<dependency> <dependency>
<groupId>org.springframework.boot</groupId> <groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-jdbc</artifactId> <artifactId>spring-boot-starter-jdbc</artifactId>
</dependency> </dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-jpa</artifactId>
</dependency>
</dependencies> </dependencies>
</project> </project>
\ No newline at end of file
package com.byit.dao;
import com.byit.job.model.FlowVersion;
import org.springframework.stereotype.Repository;
import java.util.List;
/**
* @program: byit-myth-job->FlowVersionMapper
* @description: 工作流版本查询
* @author: huangfu
* @date: 2019/12/18 11:22
**/
@Repository
public interface FlowVersionMapper {
List<FlowVersion> findAllFlowVersion();
}
package com.byit.dao;
import com.byit.job.model.MythJobFlow;
import org.springframework.stereotype.Repository;
import java.util.List;
/**
* @program: byit-myth-job->MythJobFlowMapper
* @description: 工作流的查询
* @author: huangfu
* @date: 2019/12/18 11:21
**/
@Repository
public interface MythJobFlowMapper {
List<MythJobFlow> findAllMythJobFlowMapper();
}
package com.byit.job;
import lombok.*;
import javax.persistence.*;
import java.util.Date;
/**
* @program: byit-myth-job->MythJobFlowVersion
* @description: 这个实体是任务流的版本表
* @author: huangfu
* @date: 2019/12/19 18:30
**/
@Data
@AllArgsConstructor
@NoArgsConstructor
@EqualsAndHashCode
@Builder
@Entity
@Table(name = "job_flow_version")
@org.hibernate.annotations.Table(appliesTo = "job_flow_version",comment="这个实体是任务流的版本表")
public class MythJobFlowVersion {
/**
* 版本工作流主键
*/
@Id
@GeneratedValue(strategy= GenerationType.IDENTITY)
@Column(nullable = false,columnDefinition = "int(13) COMMENT '版本工作流主键'")
private Integer versionId;
/**
* 工作流的id
*/
@Column(nullable = false,columnDefinition = "int(13) COMMENT '工作流主键'")
private Integer flowId;
/**
* 版本工作流名字
*/
@Column(nullable = false,columnDefinition = "varchar(256) COMMENT '版本工作流名字'")
private String flowName;
/**
* 版本工作流节点数目
*/
@Column(nullable = false,columnDefinition = "int(13) COMMENT '前版本工作流节点数目'")
private Integer flowNodeCount;
/**
* 工作流的介绍
*/
@Column(columnDefinition = "varchar(512) COMMENT '工作流的介绍'")
private String flowDesc;
/**
* 版本的工作流的超时时间
*/
@Column(columnDefinition = "bigint(20) COMMENT '档期啊版本的工作流的超时时间'")
private Long flowTimeout ;
/**
* 工作流版本额重复次数
*/
@Column(columnDefinition = "int(12) COMMENT '工作流版本额重复次数'")
private Integer repeatCount ;
/**
* 工作流版本的报警邮箱
*/
@Column(columnDefinition = "varchar(256) COMMENT '工作流版本的报警邮箱'")
private String alarmEmail;
/**
* 工作流版本的告警的时机
*/
@Column(columnDefinition = "char(1) COMMENT '工作流版本的告警的时机'")
private String mailAction;
/**
* 设置任务的优先级 1最低 2最高
*/
@Column(columnDefinition = "char(1) COMMENT '设置任务的优先级,1最低 2最高'")
private String priority;
/**
* 工作空间的id
*/
@Column(columnDefinition = "int(13) COMMENT '工作空间的id'")
private Integer workspaceId;
/**
* 节点是否跟随任务流,1跟随 2不跟随
*/
@Column(columnDefinition = "char(1) COMMENT '节点是否跟随任务流,1跟随 2不跟随'")
private String nodeDateIsFollowFlow;
/**
* 任务流的cron表达式
*/
@Column(columnDefinition = "varchar(256) COMMENT '任务流的cron表达式'")
private String flowCron;
/**
* 执行类型 周期执行1 手动执行2
*/
@Column(columnDefinition = "char(1) COMMENT '执行类型 周期执行1 手动执行2'")
private String execType;
/**
* 删除标志 1正常 2删除
*/
@Column(columnDefinition = "char(1) COMMENT '删除标志 1正常 2删除'")
private String removeMark;
/**
* 当前版本的标志
*/
@Column(columnDefinition = "char(16) COMMENT '当前版本的标志 this'")
private String versionMark;
/**
* 添加时间
*/
@Column(columnDefinition = "DATE COMMENT '添加时间'")
private Date addTime;
/**
* 修改时间
*/
@Column(columnDefinition = "DATE COMMENT '修改时间'")
private Date updateTime;
}
package com.byit.model;
import lombok.*;
import org.hibernate.annotations.DynamicInsert;
import javax.persistence.*;
import java.util.concurrent.TimeUnit;
/**
* @program: byit-myth-job->MythJobCurrent
* @description: 这个实体是任务流的当前表
* @author: huangfu
* @date: 2019/12/19 16:42
**/
@Data
@AllArgsConstructor
@NoArgsConstructor
@EqualsAndHashCode
@Builder
@Entity
@Table(name = "job_flow_current")
@org.hibernate.annotations.Table(appliesTo = "job_flow_current",comment="任务流的当前版本的表,现实表")
public class MythJobFlowCurrent {
/**
* 当前版本工作流主键
*/
@Id
@GeneratedValue(strategy=GenerationType.IDENTITY)
@Column(nullable = false,columnDefinition = "int(13) COMMENT '当前版本工作流主键'")
private Integer flowId;
/**
* 当前版本工作流名字
*/
@Column(nullable = false,columnDefinition = "varchar(256) COMMENT '当前版本工作流名字'")
private String flowName;
/**
* 当前版本工作流节点数目
*/
@Column(nullable = false,columnDefinition = "int(13) COMMENT '前版本工作流节点数目'")
private Integer flowNodeCount;
/**
* 当前工作流的介绍
*/
@Column(columnDefinition = "varchar(512) COMMENT '当前工作流的介绍'")
private String flowDesc;
/**
* 档期啊版本的工作流的超时时间
*/
@Column(columnDefinition = "bigint(20) COMMENT '档期啊版本的工作流的超时时间'")
private Long flowTimeout ;
/**
* 当前版本的工作流的下次执行时间
*/
@Column(columnDefinition = "bigint(20) COMMENT '当前版本的工作流的下次执行时间'")
private Long triggerNextTime;
/**
* 当前工作流版本额重复次数
*/
@Column(columnDefinition = "int(12) COMMENT '当前工作流版本额重复次数'")
private Integer repeatCount ;
/**
* 当前工作流版本的执行剩余次数
*/
@Column(columnDefinition = "int(12) COMMENT '当前工作流版本的执行剩余次数'")
private Integer remainingCount;
/**
* 当前工作流版本的报警邮箱
*/
@Column(columnDefinition = "varchar(256) COMMENT '当前工作流版本的报警邮箱'")
private String alarmEmail;
/**
* 当前工作流版本的告警的时机
*/
@Column(columnDefinition = "char(1) COMMENT '当前工作流版本的告警的时机'")
private String mailAction;
/**
* 设置任务的优先级 1最低 2最高
*/
@Column(columnDefinition = "char(1) COMMENT '设置任务的优先级,1最低 2最高'")
private String priority;
/**
* 工作空间的id
*/
@Column(columnDefinition = "int(13) COMMENT '工作空间的id'")
private Integer workspaceId;
/**
* 节点是否跟随任务流,1跟随 2不跟随
*/
@Column(columnDefinition = "char(1) COMMENT '节点是否跟随任务流,1跟随 2不跟随'")
private String nodeDateIsFollowFlow;
/**
* 任务流的cron表达式
*/
@Column(columnDefinition = "varchar(256) COMMENT '任务流的cron表达式'")
private String flowCron;
/**
* 执行类型 周期执行1 手动执行2
*/
@Column(columnDefinition = "char(1) COMMENT '执行类型 周期执行1 手动执行2'")
private String execType;
}
package com.byit.service;
import com.byit.job.model.FlowVersion;
import org.springframework.stereotype.Repository;
import java.util.List;
/**
* @program: byit-myth-job->FlowVersionMapper
* @description: 工作流版本查询
* @author: huangfu
* @date: 2019/12/18 11:22
**/
public interface FlowVersionService {
/**
* 查询所有的没有删除的工作流版本
* @return
*/
List<FlowVersion> findAllFlowVersion();
}
package com.byit.service;
import com.byit.job.model.MythJobFlow;
import java.util.List;
/**
* @program: byit-myth-job->MythJobFlowMapper
* @description: 工作流的查询
* @author: huangfu
* @date: 2019/12/18 11:21
**/
public interface MythJobFlowService {
/**
* 查询所有的工作流
* @return return
*/
List<MythJobFlow> findAllMythJobFlowMapper();
}
package com.byit.service.impl;
import com.byit.dao.FlowVersionMapper;
import com.byit.job.model.FlowVersion;
import com.byit.service.FlowVersionService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.util.List;
/**
* @program: byit-myth-job->FlowVersionServiceImpl
* @description: 工作流版本
* @author: huangfu
* @date: 2019/12/18 13:44
**/
@Service
public class FlowVersionServiceImpl implements FlowVersionService {
private final FlowVersionMapper flowVersionMapper;
@Autowired
public FlowVersionServiceImpl(FlowVersionMapper flowVersionMapper) {
this.flowVersionMapper = flowVersionMapper;
}
@Override
public List<FlowVersion> findAllFlowVersion() {
return flowVersionMapper.findAllFlowVersion();
}
}
package com.byit.service.impl;
import com.byit.dao.MythJobFlowMapper;
import com.byit.job.model.MythJobFlow;
import com.byit.service.MythJobFlowService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.util.List;
/**
* @program: byit-myth-job->MythJobFlowServiceImpl
* @description: 工作流操作
* @author: huangfu
* @date: 2019/12/18 13:45
**/
@Service
public class MythJobFlowServiceImpl implements MythJobFlowService {
private final MythJobFlowMapper mythJobFlowMapper;
@Autowired
public MythJobFlowServiceImpl(MythJobFlowMapper mythJobFlowMapper) {
this.mythJobFlowMapper = mythJobFlowMapper;
}
@Override
public List<MythJobFlow> findAllMythJobFlowMapper() {
return mythJobFlowMapper.findAllMythJobFlowMapper();
}
}
package com.byit.thread; package com.byit.thread;
import com.byit.service.FlowVersionService;
import com.byit.service.MythJobFlowService;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component; import org.springframework.stereotype.Component;
...@@ -19,19 +17,18 @@ import javax.sql.DataSource; ...@@ -19,19 +17,18 @@ import javax.sql.DataSource;
@Component @Component
public class JobFlowThread { public class JobFlowThread {
private DataSource dataSource; private DataSource dataSource;
@Autowired
private MythJobFlowService mythJobFlowService;
@Autowired
private FlowVersionService flowVersionService;
@Autowired @Autowired
public void setDataSource(DataSource dataSource) { public void setDataSource(DataSource dataSource) {
this.dataSource = dataSource; this.dataSource = dataSource;
} }
private Thread flowThread;
public void start(){ public void start(){
System.out.println(dataSource+"我是扫描工作流的!" ); flowThread = new Thread(()->{
});
} }
} }
<?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.dao.FlowVersionMapper">
<sql id="Base_Column_List">
t.id,
t.version_name,
t.node_count,
t.flow_desc,
t.add_time,
t.version_sign,
t.flow_id,
t.timeout,
t.trigger_next_time,
t.repeat_count,
t.remaining_count,
t.alarm_email,
t.node_follow,
t.remove_mark
</sql>
<resultMap id="MythJobFlowVersion" type="com.byit.job.model.FlowVersion">
<id column="id" property="id"/>
<result column="version_name" property="versionName"/>
<result column="node_count" property="nodeCount"/>
<result column="flow_desc" property="flowDesc"/>
<result column="add_time" property="addTime"/>
<result column="version_sign" property="versionSign"/>
<result column="flow_id" property="flowId"/>
<result column="timeout" property="timeout"/>
<result column="trigger_next_time" property="triggerNextTime"/>
<result column="repeat_count" property="repeatCount"/>
<result column="remaining_count" property="remainingCount"/>
<result column="alarm_email" property="alarmEmail"/>
<result column="node_follow" property="nodeFollow"/>
<result column="remove_mark" property="removeMark"/>
</resultMap>
<select id="findAllFlowVersion" resultMap="MythJobFlowVersion">
SELECT <include refid="Base_Column_List"/> from flow_version t
WHERE remove_mark = '1'
</select>
</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.dao.MythJobFlowMapper">
<sql id="Base_Column_List">
t.id,
t.flow_name,
t.add_time,
t.update_time,
t.remove_mark
</sql>
<resultMap id="JobFlow" type="com.byit.job.model.MythJobFlow">
<id column="id" property="id"/>
<result column="flow_name" property="flowName"/>
<result column="add_time" property="addTime"/>
<result column="update_time" property="updateTime"/>
<result column="remove_mark" property="removeMark"/>
</resultMap>
<select id="findAllMythJobFlowMapper" resultMap="JobFlow">
SELECT <include refid="Base_Column_List"/> FROM job_flow t
WHERE remove_mark = '1'
</select>
</mapper>
\ No newline at end of file
...@@ -45,7 +45,6 @@ ...@@ -45,7 +45,6 @@
<groupId>org.apache.commons</groupId> <groupId>org.apache.commons</groupId>
<artifactId>commons-lang3</artifactId> <artifactId>commons-lang3</artifactId>
</dependency> </dependency>
</dependencies> </dependencies>
</project> </project>
\ No newline at end of file
package com.byit.job.model;
import lombok.*;
import java.util.Date;
/**
* @program: byit-myth-job->FlowVersion
* @description: 工作流版本
* @author: huangfu
* @date: 2019/12/17 16:52
**/
@AllArgsConstructor
@NoArgsConstructor
@Data
@ToString
@EqualsAndHashCode
public class FlowVersion {
private String id;
/**
* 版本名称
*/
private String versionName;
/**
* 本版本的节点数
*/
private Integer nodeCount;
/**
* 当前版本的介绍
*/
private String flowDesc;
/**
* 当前版本的添加是时间
*/
private Date addTime;
/**
* 当前版本的额标识
*/
private String versionSign;
/**
* 工作流id
*/
private String flowId;
/**
* 任务流的超时时间
*/
private Long timeout;
/**
* 此版本的下一次的执行时间
*/
private Long triggerNextTime;
/**
* 重复次数
*/
private Integer repeatCount;
/**
* 剩余次数
*/
private Integer remainingCount;
/**
* 报警邮箱
*/
private String alarmEmail;
/**
* 节点是否跟随任务流时间 1跟随 2不跟随
*/
private String nodeFollow;
/**
* 删除标志
*/
private String removeMark;
}
package com.byit.job.model;
import lombok.*;
import java.util.Date;
/**
* @program: byit-myth-job->MythJobFlow
* @description: 任务流
* @author: huangfu
* @date: 2019/12/17 16:47
**/
@AllArgsConstructor
@NoArgsConstructor
@Data
@ToString
@EqualsAndHashCode
public class MythJobFlow {
private String id;
/**
* 任务流名称
*/
private String flowName;
/**
* 修改时间
*/
private Date updateTime;
/**
* 添加时间
*/
private Date addTime;
/**
* 删除标志
*/
private String removeMark;
}
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