diff --git a/hsweb-system/hsweb-system-schedule/hsweb-system-schedule-controller/pom.xml b/hsweb-system/hsweb-system-schedule/hsweb-system-schedule-controller/pom.xml new file mode 100644 index 000000000..1f1cbf1f4 --- /dev/null +++ b/hsweb-system/hsweb-system-schedule/hsweb-system-schedule-controller/pom.xml @@ -0,0 +1,32 @@ + + + + hsweb-system-schedule + org.hswebframework.web + 3.0-SNAPSHOT + + 4.0.0 + + hsweb-system-schedule-controller + + + + javax.servlet + servlet-api + 2.5 + true + + + org.hswebframework.web + hsweb-system-schedule-service-api + ${project.version} + + + org.hswebframework.web + hsweb-commons-controller + ${project.version} + + + \ No newline at end of file diff --git a/hsweb-system/hsweb-system-schedule/hsweb-system-schedule-controller/src/main/java/org/hswebframework/web/controller/schedule/ScheduleJobController.java b/hsweb-system/hsweb-system-schedule/hsweb-system-schedule-controller/src/main/java/org/hswebframework/web/controller/schedule/ScheduleJobController.java new file mode 100644 index 000000000..bae75f55f --- /dev/null +++ b/hsweb-system/hsweb-system-schedule/hsweb-system-schedule-controller/src/main/java/org/hswebframework/web/controller/schedule/ScheduleJobController.java @@ -0,0 +1,35 @@ +package org.hswebframework.web.controller.schedule; + +import org.hswebframework.web.authorization.annotation.Authorize; +import org.hswebframework.web.commons.entity.param.QueryParamEntity; +import org.hswebframework.web.controller.SimpleGenericEntityController; +import org.hswebframework.web.entity.schedule.ScheduleJobEntity; +import org.hswebframework.web.logging.AccessLogger; +import org.hswebframework.web.service.schedule.ScheduleJobService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RestController; + +/** + * 调度任务 + * + * @author hsweb-generator-online + */ +@RestController +@RequestMapping("${hsweb.web.mappings.scheduleJob:scheduleJob}") +@Authorize(permission = "scheduleJob") +@AccessLogger("调度任务") +public class ScheduleJobController implements SimpleGenericEntityController { + + private ScheduleJobService scheduleJobService; + + @Autowired + public void setScheduleJobService(ScheduleJobService scheduleJobService) { + this.scheduleJobService = scheduleJobService; + } + + @Override + public ScheduleJobService getService() { + return scheduleJobService; + } +} diff --git a/hsweb-system/hsweb-system-schedule/hsweb-system-schedule-dao/hsweb-system-schedule-dao-api/pom.xml b/hsweb-system/hsweb-system-schedule/hsweb-system-schedule-dao/hsweb-system-schedule-dao-api/pom.xml new file mode 100644 index 000000000..7290ac1c0 --- /dev/null +++ b/hsweb-system/hsweb-system-schedule/hsweb-system-schedule-dao/hsweb-system-schedule-dao-api/pom.xml @@ -0,0 +1,27 @@ + + + + hsweb-system-schedule-dao + org.hswebframework.web + 3.0-SNAPSHOT + + 4.0.0 + + hsweb-system-schedule-dao-api + + + + org.hswebframework.web + hsweb-system-schedule-entity + ${project.version} + + + org.hswebframework.web + hsweb-commons-dao-api + ${project.version} + + + + \ No newline at end of file diff --git a/hsweb-system/hsweb-system-schedule/hsweb-system-schedule-dao/hsweb-system-schedule-dao-api/src/main/java/org/hswebframework/web/dao/schedule/ScheduleJobDao.java b/hsweb-system/hsweb-system-schedule/hsweb-system-schedule-dao/hsweb-system-schedule-dao-api/src/main/java/org/hswebframework/web/dao/schedule/ScheduleJobDao.java new file mode 100644 index 000000000..28dd15c29 --- /dev/null +++ b/hsweb-system/hsweb-system-schedule/hsweb-system-schedule-dao/hsweb-system-schedule-dao-api/src/main/java/org/hswebframework/web/dao/schedule/ScheduleJobDao.java @@ -0,0 +1,11 @@ +package org.hswebframework.web.dao.schedule; + +import org.hswebframework.web.dao.CrudDao; +import org.hswebframework.web.entity.schedule.ScheduleJobEntity; + +/** +* 调度任务 DAO接口 +* @author hsweb-generator-online + */ +public interface ScheduleJobDao extends CrudDao { +} diff --git a/hsweb-system/hsweb-system-schedule/hsweb-system-schedule-dao/hsweb-system-schedule-dao-mybatis/pom.xml b/hsweb-system/hsweb-system-schedule/hsweb-system-schedule-dao/hsweb-system-schedule-dao-mybatis/pom.xml new file mode 100644 index 000000000..5b8b38787 --- /dev/null +++ b/hsweb-system/hsweb-system-schedule/hsweb-system-schedule-dao/hsweb-system-schedule-dao-mybatis/pom.xml @@ -0,0 +1,26 @@ + + + + hsweb-system-schedule-dao + org.hswebframework.web + 3.0-SNAPSHOT + + 4.0.0 + + hsweb-system-schedule-dao-mybatis + + + + org.hswebframework.web + hsweb-system-schedule-dao-api + ${project.version} + + + org.hswebframework.web + hsweb-commons-dao-mybatis + ${project.version} + + + \ No newline at end of file diff --git a/hsweb-system/hsweb-system-schedule/hsweb-system-schedule-dao/hsweb-system-schedule-dao-mybatis/src/main/resources/org/hswebframework/web/dao/mybatis/mappers/schedule/ScheduleJobMapper.xml b/hsweb-system/hsweb-system-schedule/hsweb-system-schedule-dao/hsweb-system-schedule-dao-mybatis/src/main/resources/org/hswebframework/web/dao/mybatis/mappers/schedule/ScheduleJobMapper.xml new file mode 100644 index 000000000..d00a9bcab --- /dev/null +++ b/hsweb-system/hsweb-system-schedule/hsweb-system-schedule-dao/hsweb-system-schedule-dao-mybatis/src/main/resources/org/hswebframework/web/dao/mybatis/mappers/schedule/ScheduleJobMapper.xml @@ -0,0 +1,53 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + delete from s_schedule_job where u_id =#{id} + + + + + + + + + + + + + + + + diff --git a/hsweb-system/hsweb-system-schedule/hsweb-system-schedule-dao/pom.xml b/hsweb-system/hsweb-system-schedule/hsweb-system-schedule-dao/pom.xml new file mode 100644 index 000000000..ec9b4bc81 --- /dev/null +++ b/hsweb-system/hsweb-system-schedule/hsweb-system-schedule-dao/pom.xml @@ -0,0 +1,18 @@ + + + + hsweb-system-schedule + org.hswebframework.web + 3.0-SNAPSHOT + + 4.0.0 + + hsweb-system-schedule-dao + pom + + hsweb-system-schedule-dao-api + hsweb-system-schedule-dao-mybatis + + \ No newline at end of file diff --git a/hsweb-system/hsweb-system-schedule/hsweb-system-schedule-entity/pom.xml b/hsweb-system/hsweb-system-schedule/hsweb-system-schedule-entity/pom.xml new file mode 100644 index 000000000..224514cbe --- /dev/null +++ b/hsweb-system/hsweb-system-schedule/hsweb-system-schedule-entity/pom.xml @@ -0,0 +1,22 @@ + + + + hsweb-system-schedule + org.hswebframework.web + 3.0-SNAPSHOT + + 4.0.0 + + hsweb-system-schedule-entity + + + + org.hswebframework.web + hsweb-commons-entity + ${project.version} + + + + \ No newline at end of file diff --git a/hsweb-system/hsweb-system-schedule/hsweb-system-schedule-entity/src/main/java/org/hswebframework/web/entity/schedule/ScheduleJobEntity.java b/hsweb-system/hsweb-system-schedule/hsweb-system-schedule-entity/src/main/java/org/hswebframework/web/entity/schedule/ScheduleJobEntity.java new file mode 100644 index 000000000..cbd0fa62a --- /dev/null +++ b/hsweb-system/hsweb-system-schedule/hsweb-system-schedule-entity/src/main/java/org/hswebframework/web/entity/schedule/ScheduleJobEntity.java @@ -0,0 +1,131 @@ +package org.hswebframework.web.entity.schedule; +import org.hswebframework.web.commons.entity.GenericEntity; + +/** +* 调度任务 实体 +* @author hsweb-generator-online +*/ +public interface ScheduleJobEntity extends GenericEntity{ + /*------------------------------------------- + | 属性名常量 | + ===========================================*/ + /** + * 任务名称 + */ + String name="name"; + /** + * 备注 + */ + String remark="remark"; + /** + * 定时调度配置 + */ + String quartz_config="quartz_config"; + /** + * 执行脚本 + */ + String script="script"; + /** + * 脚本语言 + */ + String language="language"; + /** + * 是否启用 + */ + String enabled="enabled"; + /** + * 启动参数 + */ + String parameters="parameters"; + /** + * 任务类型 + */ + String type="type"; + /** + * 标签 + */ + String tags="tags"; + + /** + * @return 任务名称 + */ + String getName(); + + /** + * @param name 任务名称 + */ + void setName(String name); + /** + * @return 备注 + */ + String getRemark(); + + /** + * @param remark 备注 + */ + void setRemark(String remark); + /** + * @return 定时调度配置 + */ + String getQuartz_config(); + + /** + * @param quartz_config 定时调度配置 + */ + void setQuartz_config(String quartz_config); + /** + * @return 执行脚本 + */ + String getScript(); + + /** + * @param script 执行脚本 + */ + void setScript(String script); + /** + * @return 脚本语言 + */ + String getLanguage(); + + /** + * @param language 脚本语言 + */ + void setLanguage(String language); + /** + * @return 是否启用 + */ + Long getEnabled(); + + /** + * @param enabled 是否启用 + */ + void setEnabled(Long enabled); + /** + * @return 启动参数 + */ + String getParameters(); + + /** + * @param parameters 启动参数 + */ + void setParameters(String parameters); + /** + * @return 任务类型 + */ + String getType(); + + /** + * @param type 任务类型 + */ + void setType(String type); + /** + * @return 标签 + */ + String getTags(); + + /** + * @param tags 标签 + */ + void setTags(String tags); + +} \ No newline at end of file diff --git a/hsweb-system/hsweb-system-schedule/hsweb-system-schedule-entity/src/main/java/org/hswebframework/web/entity/schedule/SimpleScheduleJobEntity.java b/hsweb-system/hsweb-system-schedule/hsweb-system-schedule-entity/src/main/java/org/hswebframework/web/entity/schedule/SimpleScheduleJobEntity.java new file mode 100644 index 000000000..4fc5af658 --- /dev/null +++ b/hsweb-system/hsweb-system-schedule/hsweb-system-schedule-entity/src/main/java/org/hswebframework/web/entity/schedule/SimpleScheduleJobEntity.java @@ -0,0 +1,145 @@ +package org.hswebframework.web.entity.schedule; +import org.hswebframework.web.commons.entity.SimpleGenericEntity; + +/** +* 调度任务 +* @author hsweb-generator-online +*/ +public class SimpleScheduleJobEntity extends SimpleGenericEntity implements ScheduleJobEntity{ + //任务名称 + private String name; + //备注 + private String remark; + //定时调度配置 + private String quartz_config; + //执行脚本 + private String script; + //脚本语言 + private String language; + //是否启用 + private Long enabled; + //启动参数 + private String parameters; + //任务类型 + private String type; + //标签 + private String tags; + + /** + * @return 任务名称 + */ + public String getName(){ + return this.name; + } + + /** + * @param name 任务名称 + */ + public void setName(String name){ + this.name=name; + } + /** + * @return 备注 + */ + public String getRemark(){ + return this.remark; + } + + /** + * @param remark 备注 + */ + public void setRemark(String remark){ + this.remark=remark; + } + /** + * @return 定时调度配置 + */ + public String getQuartz_config(){ + return this.quartz_config; + } + + /** + * @param quartz_config 定时调度配置 + */ + public void setQuartz_config(String quartz_config){ + this.quartz_config=quartz_config; + } + /** + * @return 执行脚本 + */ + public String getScript(){ + return this.script; + } + + /** + * @param script 执行脚本 + */ + public void setScript(String script){ + this.script=script; + } + /** + * @return 脚本语言 + */ + public String getLanguage(){ + return this.language; + } + + /** + * @param language 脚本语言 + */ + public void setLanguage(String language){ + this.language=language; + } + /** + * @return 是否启用 + */ + public Long getEnabled(){ + return this.enabled; + } + + /** + * @param enabled 是否启用 + */ + public void setEnabled(Long enabled){ + this.enabled=enabled; + } + /** + * @return 启动参数 + */ + public String getParameters(){ + return this.parameters; + } + + /** + * @param parameters 启动参数 + */ + public void setParameters(String parameters){ + this.parameters=parameters; + } + /** + * @return 任务类型 + */ + public String getType(){ + return this.type; + } + + /** + * @param type 任务类型 + */ + public void setType(String type){ + this.type=type; + } + /** + * @return 标签 + */ + public String getTags(){ + return this.tags; + } + + /** + * @param tags 标签 + */ + public void setTags(String tags){ + this.tags=tags; + } +} \ No newline at end of file diff --git a/hsweb-system/hsweb-system-schedule/hsweb-system-schedule-service/hsweb-system-schedule-service-api/pom.xml b/hsweb-system/hsweb-system-schedule/hsweb-system-schedule-service/hsweb-system-schedule-service-api/pom.xml new file mode 100644 index 000000000..296069daf --- /dev/null +++ b/hsweb-system/hsweb-system-schedule/hsweb-system-schedule-service/hsweb-system-schedule-service-api/pom.xml @@ -0,0 +1,26 @@ + + + + hsweb-system-schedule-service + org.hswebframework.web + 3.0-SNAPSHOT + + 4.0.0 + + hsweb-system-schedule-service-api + + + + org.hswebframework.web + hsweb-commons-service-api + ${project.version} + + + org.hswebframework.web + hsweb-system-schedule-dao-api + ${project.version} + + + \ No newline at end of file diff --git a/hsweb-system/hsweb-system-schedule/hsweb-system-schedule-service/hsweb-system-schedule-service-api/src/main/java/org/hswebframework/web/service/schedule/ScheduleJobService.java b/hsweb-system/hsweb-system-schedule/hsweb-system-schedule-service/hsweb-system-schedule-service-api/src/main/java/org/hswebframework/web/service/schedule/ScheduleJobService.java new file mode 100644 index 000000000..d6cf30a8d --- /dev/null +++ b/hsweb-system/hsweb-system-schedule/hsweb-system-schedule-service/hsweb-system-schedule-service-api/src/main/java/org/hswebframework/web/service/schedule/ScheduleJobService.java @@ -0,0 +1,13 @@ +package org.hswebframework.web.service.schedule; + +import org.hswebframework.web.entity.schedule.ScheduleJobEntity; +import org.hswebframework.web.service.CrudService; + +/** + * 调度任务 服务类 + * + * @author hsweb-generator-online + */ +public interface ScheduleJobService extends CrudService { + +} diff --git a/hsweb-system/hsweb-system-schedule/hsweb-system-schedule-service/hsweb-system-schedule-service-simple/pom.xml b/hsweb-system/hsweb-system-schedule/hsweb-system-schedule-service/hsweb-system-schedule-service-simple/pom.xml new file mode 100644 index 000000000..2d9d6f5c7 --- /dev/null +++ b/hsweb-system/hsweb-system-schedule/hsweb-system-schedule-service/hsweb-system-schedule-service-simple/pom.xml @@ -0,0 +1,26 @@ + + + + hsweb-system-schedule-service + org.hswebframework.web + 3.0-SNAPSHOT + + 4.0.0 + + hsweb-system-schedule-service-simple + + + + org.hswebframework.web + hsweb-commons-service-simple + ${project.version} + + + org.hswebframework.web + hsweb-system-schedule-service-api + ${project.version} + + + \ No newline at end of file diff --git a/hsweb-system/hsweb-system-schedule/hsweb-system-schedule-service/hsweb-system-schedule-service-simple/src/main/java/org/hswebframework/web/service/schedule/simple/SimpleScheduleJobService.java b/hsweb-system/hsweb-system-schedule/hsweb-system-schedule-service/hsweb-system-schedule-service-simple/src/main/java/org/hswebframework/web/service/schedule/simple/SimpleScheduleJobService.java new file mode 100644 index 000000000..79ab48279 --- /dev/null +++ b/hsweb-system/hsweb-system-schedule/hsweb-system-schedule-service/hsweb-system-schedule-service-simple/src/main/java/org/hswebframework/web/service/schedule/simple/SimpleScheduleJobService.java @@ -0,0 +1,30 @@ +package org.hswebframework.web.service.schedule.simple; + +import org.hswebframework.web.dao.schedule.ScheduleJobDao; +import org.hswebframework.web.entity.schedule.ScheduleJobEntity; +import org.hswebframework.web.service.GenericEntityService; +import org.hswebframework.web.id.IDGenerator; +import org.hswebframework.web.service.schedule.ScheduleJobService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; + +/** + * 默认的服务实现 + * + * @author hsweb-generator-online + */ +@Service("scheduleJobService") +public class SimpleScheduleJobService extends GenericEntityService + implements ScheduleJobService { + @Autowired + private ScheduleJobDao scheduleJobDao; + @Override + protected IDGenerator getIDGenerator() { + return IDGenerator.MD5; + } + @Override + public ScheduleJobDao getDao() { + return scheduleJobDao; + } + +} diff --git a/hsweb-system/hsweb-system-schedule/hsweb-system-schedule-service/pom.xml b/hsweb-system/hsweb-system-schedule/hsweb-system-schedule-service/pom.xml new file mode 100644 index 000000000..1611dc3fa --- /dev/null +++ b/hsweb-system/hsweb-system-schedule/hsweb-system-schedule-service/pom.xml @@ -0,0 +1,18 @@ + + + + hsweb-system-schedule + org.hswebframework.web + 3.0-SNAPSHOT + + 4.0.0 + + hsweb-system-schedule-service + pom + + hsweb-system-schedule-service-api + hsweb-system-schedule-service-simple + + \ No newline at end of file diff --git a/hsweb-system/hsweb-system-schedule/hsweb-system-schedule-starter/pom.xml b/hsweb-system/hsweb-system-schedule/hsweb-system-schedule-starter/pom.xml new file mode 100644 index 000000000..668ee4c9a --- /dev/null +++ b/hsweb-system/hsweb-system-schedule/hsweb-system-schedule-starter/pom.xml @@ -0,0 +1,78 @@ + + + + hsweb-system-schedule + org.hswebframework.web + 3.0-SNAPSHOT + + 4.0.0 + + hsweb-system-schedule-starter + + + + + + src/main/resources + true + + + + + + + org.hswebframework.web + hsweb-system-schedule-service-simple + ${project.version} + + + + org.hswebframework.web + hsweb-system-schedule-dao-mybatis + ${project.version} + + + + org.hswebframework.web + hsweb-system-schedule-controller + ${project.version} + + + + com.h2database + h2 + test + + + + com.alibaba + druid + 1.0.26 + test + + + + org.hswebframework.web + hsweb-spring-boot-starter + ${project.version} + test + + + + org.hswebframework.web + hsweb-tests + ${project.version} + test + + + + javax.servlet + servlet-api + 2.5 + test + + + + \ No newline at end of file diff --git a/hsweb-system/hsweb-system-schedule/hsweb-system-schedule-starter/src/main/resources/hsweb-starter.js b/hsweb-system/hsweb-system-schedule/hsweb-system-schedule-starter/src/main/resources/hsweb-starter.js new file mode 100644 index 000000000..a3a8c7417 --- /dev/null +++ b/hsweb-system/hsweb-system-schedule/hsweb-system-schedule-starter/src/main/resources/hsweb-starter.js @@ -0,0 +1,50 @@ + +//组件信息 +var info = { + groupId: "${project.groupId}", + artifactId: "${project.artifactId}", + version: "${project.version}", + website: "https://github.com/hs-web/hsweb-framework", + author: "admin@hsweb.me", + comment: "调度任务" +}; + +//版本更新信息 +var versions = [ + // { + // version: "3.0.2", + // upgrade: function (context) { + // java.lang.System.out.println("更新到3.0.2了"); + // } + // } +]; +var JDBCType = java.sql.JDBCType; +function install(context) { + var database = context.database; + database.createOrAlter("s_schedule_job") + .addColumn().name("u_id").alias("id").comment("ID").jdbcType(java.sql.JDBCType.VARCHAR).length(32).primaryKey().commit() + .addColumn().name("name").alias("name").comment("任务名称").jdbcType(java.sql.JDBCType.VARCHAR).length(128).commit() + .addColumn().name("remark").alias("remark").comment("备注").jdbcType(java.sql.JDBCType.VARCHAR).length(512).commit() + .addColumn().name("quartz_config").alias("quartz_config").comment("定时调度配置").jdbcType(java.sql.JDBCType.clob).commit() + .addColumn().name("script").alias("script").comment("执行脚本").jdbcType(java.sql.JDBCType.CLOB).commit() + .addColumn().name("language").alias("language").comment("脚本语言").jdbcType(java.sql.JDBCType.VARCHAR).length(32).commit() + .addColumn().name("enabled").alias("enabled").comment("是否启用").jdbcType(java.sql.JDBCType.DECIMAL).length(4,0).commit() + .addColumn().name("parameters").alias("parameters").comment("启动参数").jdbcType(java.sql.JDBCType.CLOB).commit() + .addColumn().name("type").alias("type").comment("任务类型").jdbcType(java.sql.JDBCType.VARCHAR).length(32).commit() + .addColumn().name("tags").alias("tags").comment("标签").jdbcType(java.sql.JDBCType.VARCHAR).length(512).commit() + .comment("调度任务").commit(); + +} +//设置依赖 +dependency.setup(info) + .onInstall(install) + .onUpgrade(function (context) { //更新时执行 + var upgrader = context.upgrader; + upgrader.filter(versions) + .upgrade(function (newVer) { + newVer.upgrade(context); + }); + }) + .onUninstall(function (context) { //卸载时执行 + + }); \ No newline at end of file diff --git a/hsweb-system/hsweb-system-schedule/pom.xml b/hsweb-system/hsweb-system-schedule/pom.xml index c53e8e255..76eac995e 100644 --- a/hsweb-system/hsweb-system-schedule/pom.xml +++ b/hsweb-system/hsweb-system-schedule/pom.xml @@ -8,8 +8,14 @@ 3.0-SNAPSHOT 4.0.0 - + pom hsweb-system-schedule - + + hsweb-system-schedule-dao + hsweb-system-schedule-service + hsweb-system-schedule-controller + hsweb-system-schedule-entity + hsweb-system-schedule-starter + \ No newline at end of file