fix:规则引擎、定时任务问题修复
parent
104c193951
commit
c26b26ce1c
|
@ -9,6 +9,7 @@
|
||||||
*/
|
*/
|
||||||
package cc.iotkit.data.service;
|
package cc.iotkit.data.service;
|
||||||
|
|
||||||
|
import cc.iotkit.common.api.PageRequest;
|
||||||
import cc.iotkit.common.utils.JsonUtils;
|
import cc.iotkit.common.utils.JsonUtils;
|
||||||
import cc.iotkit.common.utils.MapstructUtils;
|
import cc.iotkit.common.utils.MapstructUtils;
|
||||||
import cc.iotkit.data.dao.IJPACommData;
|
import cc.iotkit.data.dao.IJPACommData;
|
||||||
|
@ -16,6 +17,8 @@ import cc.iotkit.data.manager.IRuleInfoData;
|
||||||
import cc.iotkit.data.dao.RuleInfoRepository;
|
import cc.iotkit.data.dao.RuleInfoRepository;
|
||||||
import cc.iotkit.data.model.TbRuleInfo;
|
import cc.iotkit.data.model.TbRuleInfo;
|
||||||
import cc.iotkit.common.api.Paging;
|
import cc.iotkit.common.api.Paging;
|
||||||
|
import cc.iotkit.data.model.TbTaskInfo;
|
||||||
|
import cc.iotkit.data.util.PageBuilder;
|
||||||
import cc.iotkit.model.rule.FilterConfig;
|
import cc.iotkit.model.rule.FilterConfig;
|
||||||
import cc.iotkit.model.rule.RuleAction;
|
import cc.iotkit.model.rule.RuleAction;
|
||||||
import cc.iotkit.model.rule.RuleInfo;
|
import cc.iotkit.model.rule.RuleInfo;
|
||||||
|
@ -105,6 +108,12 @@ public class RuleInfoDataImpl implements IRuleInfoData, IJPACommData<RuleInfo, S
|
||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public Paging<RuleInfo> findAll(PageRequest<RuleInfo> pageRequest) {
|
||||||
|
Page<TbRuleInfo> ret = ruleInfoRepository.findAll(PageBuilder.toPageable(pageRequest));
|
||||||
|
return new Paging<>(ret.getTotalElements(), fromTb(ret.getContent()));
|
||||||
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public RuleInfo save(RuleInfo data) {
|
public RuleInfo save(RuleInfo data) {
|
||||||
if (StringUtils.isBlank(data.getId())) {
|
if (StringUtils.isBlank(data.getId())) {
|
||||||
|
|
|
@ -9,13 +9,15 @@
|
||||||
*/
|
*/
|
||||||
package cc.iotkit.data.service;
|
package cc.iotkit.data.service;
|
||||||
|
|
||||||
|
import cc.iotkit.common.api.PageRequest;
|
||||||
|
import cc.iotkit.common.api.Paging;
|
||||||
import cc.iotkit.common.utils.JsonUtils;
|
import cc.iotkit.common.utils.JsonUtils;
|
||||||
import cc.iotkit.common.utils.MapstructUtils;
|
import cc.iotkit.common.utils.MapstructUtils;
|
||||||
import cc.iotkit.data.dao.IJPACommData;
|
import cc.iotkit.data.dao.IJPACommData;
|
||||||
import cc.iotkit.data.manager.ITaskInfoData;
|
|
||||||
import cc.iotkit.data.dao.TaskInfoRepository;
|
import cc.iotkit.data.dao.TaskInfoRepository;
|
||||||
|
import cc.iotkit.data.manager.ITaskInfoData;
|
||||||
import cc.iotkit.data.model.TbTaskInfo;
|
import cc.iotkit.data.model.TbTaskInfo;
|
||||||
import cc.iotkit.common.api.Paging;
|
import cc.iotkit.data.util.PageBuilder;
|
||||||
import cc.iotkit.model.rule.RuleAction;
|
import cc.iotkit.model.rule.RuleAction;
|
||||||
import cc.iotkit.model.rule.TaskInfo;
|
import cc.iotkit.model.rule.TaskInfo;
|
||||||
import lombok.RequiredArgsConstructor;
|
import lombok.RequiredArgsConstructor;
|
||||||
|
@ -80,6 +82,15 @@ public class TaskInfoDataImpl implements ITaskInfoData, IJPACommData<TaskInfo, S
|
||||||
return to(taskInfoRepository.findById(s).orElse(null));
|
return to(taskInfoRepository.findById(s).orElse(null));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public Paging<TaskInfo> findAll(PageRequest<TaskInfo> pageRequest) {
|
||||||
|
Page<TbTaskInfo> ret = taskInfoRepository.findAll(PageBuilder.toPageable(pageRequest));
|
||||||
|
return new Paging<>(ret.getTotalElements(),
|
||||||
|
ret.getContent().stream().map(this::to)
|
||||||
|
.collect(Collectors.toList())
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public TaskInfo save(TaskInfo data) {
|
public TaskInfo save(TaskInfo data) {
|
||||||
if (StringUtils.isBlank(data.getId())) {
|
if (StringUtils.isBlank(data.getId())) {
|
||||||
|
|
|
@ -18,6 +18,6 @@ public interface RuleLogRepository extends ElasticsearchRepository<DocRuleLog, S
|
||||||
|
|
||||||
void deleteByRuleId(String ruleId);
|
void deleteByRuleId(String ruleId);
|
||||||
|
|
||||||
Page<DocRuleLog> findByRuleId(String ruleId, Pageable pageable);
|
Page<DocRuleLog> findByRuleIdOrderByLogAtDesc(String ruleId, Pageable pageable);
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -18,6 +18,6 @@ public interface TaskLogRepository extends ElasticsearchRepository<DocTaskLog, S
|
||||||
|
|
||||||
void deleteByTaskId(String taskId);
|
void deleteByTaskId(String taskId);
|
||||||
|
|
||||||
Page<DocTaskLog> findByTaskId(String taskId, Pageable pageable);
|
Page<DocTaskLog> findByTaskIdOrderByLogAtDesc(String taskId, Pageable pageable);
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -35,7 +35,7 @@ public class RuleLogDataImpl implements IRuleLogData {
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public Paging<RuleLog> findByRuleId(String ruleId, int page, int size) {
|
public Paging<RuleLog> findByRuleId(String ruleId, int page, int size) {
|
||||||
Page<DocRuleLog> paged = ruleLogRepository.findByRuleId(ruleId, Pageable.ofSize(size).withPage(page - 1));
|
Page<DocRuleLog> paged = ruleLogRepository.findByRuleIdOrderByLogAtDesc(ruleId, Pageable.ofSize(size).withPage(page - 1));
|
||||||
return new Paging<>(paged.getTotalElements(),
|
return new Paging<>(paged.getTotalElements(),
|
||||||
paged.getContent().stream().map(o -> MapstructUtils.convert(o, RuleLog.class))
|
paged.getContent().stream().map(o -> MapstructUtils.convert(o, RuleLog.class))
|
||||||
.collect(Collectors.toList()));
|
.collect(Collectors.toList()));
|
||||||
|
|
|
@ -35,7 +35,7 @@ public class TaskLogDataImpl implements ITaskLogData {
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public Paging<TaskLog> findByTaskId(String taskId, int page, int size) {
|
public Paging<TaskLog> findByTaskId(String taskId, int page, int size) {
|
||||||
Page<DocTaskLog> paged = taskLogRepository.findByTaskId(taskId, Pageable.ofSize(size).withPage(page - 1));
|
Page<DocTaskLog> paged = taskLogRepository.findByTaskIdOrderByLogAtDesc(taskId, Pageable.ofSize(size).withPage(page - 1));
|
||||||
return new Paging<>(paged.getTotalElements(),
|
return new Paging<>(paged.getTotalElements(),
|
||||||
paged.getContent().stream().map(o -> MapstructUtils.convert(o, TaskLog.class))
|
paged.getContent().stream().map(o -> MapstructUtils.convert(o, TaskLog.class))
|
||||||
.collect(Collectors.toList()));
|
.collect(Collectors.toList()));
|
||||||
|
|
|
@ -44,14 +44,14 @@ public class RuleEngineController {
|
||||||
@PostMapping("/list")
|
@PostMapping("/list")
|
||||||
public Paging<RuleInfoVo> rules(
|
public Paging<RuleInfoVo> rules(
|
||||||
@Validated @RequestBody
|
@Validated @RequestBody
|
||||||
PageRequest<RuleInfoBo> request
|
PageRequest<RuleInfoBo> request
|
||||||
) {
|
) {
|
||||||
return ruleEngineService.selectPageList(request);
|
return ruleEngineService.selectPageList(request);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ApiOperation("保存规则")
|
@ApiOperation("保存规则")
|
||||||
@PostMapping("/edit")
|
@PostMapping("/edit")
|
||||||
public boolean saveRule(@RequestBody @Validated Request<RuleInfoBo> ruleInfoBo) {
|
public boolean saveRule(@RequestBody @Validated Request<RuleInfoBo> ruleInfoBo) {
|
||||||
return ruleEngineService.saveRule(ruleInfoBo.getData());
|
return ruleEngineService.saveRule(ruleInfoBo.getData());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -80,7 +80,7 @@ public class RuleEngineController {
|
||||||
@ApiOperation("规则日志")
|
@ApiOperation("规则日志")
|
||||||
@PostMapping("/ruleLog/list")
|
@PostMapping("/ruleLog/list")
|
||||||
public Paging<RuleLogVo> getRuleLogs(
|
public Paging<RuleLogVo> getRuleLogs(
|
||||||
@Validated @RequestBody PageRequest<RuleLogBo> request
|
@Validated @RequestBody PageRequest<RuleLogBo> request
|
||||||
) {
|
) {
|
||||||
return ruleEngineService.selectRuleLogPageList(request);
|
return ruleEngineService.selectRuleLogPageList(request);
|
||||||
}
|
}
|
||||||
|
@ -102,7 +102,7 @@ public class RuleEngineController {
|
||||||
@ApiOperation("保存定时任务")
|
@ApiOperation("保存定时任务")
|
||||||
@PostMapping("/task/save")
|
@PostMapping("/task/save")
|
||||||
public boolean saveTask(@Validated @RequestBody Request<TaskInfoBo> taskInfo) {
|
public boolean saveTask(@Validated @RequestBody Request<TaskInfoBo> taskInfo) {
|
||||||
return ruleEngineService.saveTask(taskInfo.getData());
|
return ruleEngineService.saveTask(taskInfo.getData());
|
||||||
}
|
}
|
||||||
|
|
||||||
@ApiOperation("停止定时任务")
|
@ApiOperation("停止定时任务")
|
||||||
|
@ -122,7 +122,7 @@ public class RuleEngineController {
|
||||||
@PostMapping("/task/renew")
|
@PostMapping("/task/renew")
|
||||||
public boolean renewTask(@Validated @RequestBody Request<String> request) {
|
public boolean renewTask(@Validated @RequestBody Request<String> request) {
|
||||||
String taskId = request.getData();
|
String taskId = request.getData();
|
||||||
return ruleEngineService.renewTask(taskId);
|
return ruleEngineService.renewTask(taskId);
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -140,13 +140,12 @@ public class RuleEngineController {
|
||||||
@Validated @RequestBody PageRequest<TaskLogBo> request
|
@Validated @RequestBody PageRequest<TaskLogBo> request
|
||||||
) {
|
) {
|
||||||
return ruleEngineService.selectTaskLogPageList(request);
|
return ruleEngineService.selectTaskLogPageList(request);
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@ApiOperation("清除定时任务日志")
|
@ApiOperation("清除定时任务日志")
|
||||||
@PostMapping("/taskLogs/clear")
|
@PostMapping("/taskLogs/clear")
|
||||||
public boolean clearTaskLogs( @Validated @RequestBody Request<String> request) {
|
public boolean clearTaskLogs(@Validated @RequestBody Request<String> request) {
|
||||||
return ruleEngineService.clearTaskLogs(request.getData());
|
return ruleEngineService.clearTaskLogs(request.getData());
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -20,19 +20,15 @@ public class RuleLogBo extends BaseDto {
|
||||||
private Long time;
|
private Long time;
|
||||||
|
|
||||||
@ApiModelProperty(value="规则id")
|
@ApiModelProperty(value="规则id")
|
||||||
|
|
||||||
private String ruleId;
|
private String ruleId;
|
||||||
|
|
||||||
@ApiModelProperty(value="状态")
|
@ApiModelProperty(value="状态")
|
||||||
|
|
||||||
private String state1;
|
private String state1;
|
||||||
|
|
||||||
@ApiModelProperty(value="内容")
|
@ApiModelProperty(value="内容")
|
||||||
|
|
||||||
private String content;
|
private String content;
|
||||||
|
|
||||||
@ApiModelProperty(value="是否成功")
|
@ApiModelProperty(value="是否成功")
|
||||||
|
|
||||||
private Boolean success;
|
private Boolean success;
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,38 +1,36 @@
|
||||||
package cc.iotkit.manager.dto.vo.ruleinfo;
|
package cc.iotkit.manager.dto.vo.ruleinfo;
|
||||||
|
|
||||||
import cc.iotkit.common.api.BaseDto;
|
|
||||||
import cc.iotkit.model.rule.RuleInfo;
|
import cc.iotkit.model.rule.RuleInfo;
|
||||||
import io.github.linpeilie.annotations.AutoMapper;
|
import io.github.linpeilie.annotations.AutoMapper;
|
||||||
import io.swagger.annotations.ApiModel;
|
import io.swagger.annotations.ApiModel;
|
||||||
import io.swagger.annotations.ApiModelProperty;
|
import io.swagger.annotations.ApiModelProperty;
|
||||||
import lombok.Data;
|
import lombok.Data;
|
||||||
import lombok.EqualsAndHashCode;
|
|
||||||
|
|
||||||
@ApiModel(value = "RuleLogBo")
|
import java.io.Serializable;
|
||||||
|
|
||||||
|
@ApiModel(value = "RuleLogVo")
|
||||||
@Data
|
@Data
|
||||||
@EqualsAndHashCode(callSuper = true)
|
@AutoMapper(target = RuleInfo.class)
|
||||||
@AutoMapper(target = RuleInfo.class, reverseConvertGenerate = false)
|
public class RuleLogVo implements Serializable {
|
||||||
public class RuleLogVo extends BaseDto {
|
private static final long serialVersionUID = -1L;
|
||||||
|
|
||||||
private static final long serialVersionUID = -1L;
|
@ApiModelProperty(value = "时间")
|
||||||
|
private Long time;
|
||||||
|
|
||||||
@ApiModelProperty(value="时间")
|
@ApiModelProperty(value = "规则id")
|
||||||
private Long time;
|
|
||||||
|
|
||||||
@ApiModelProperty(value="规则id")
|
private String ruleId;
|
||||||
|
|
||||||
private String ruleId;
|
@ApiModelProperty(value = "状态")
|
||||||
|
|
||||||
@ApiModelProperty(value="状态")
|
private String state1;
|
||||||
|
|
||||||
private String state1;
|
@ApiModelProperty(value = "内容")
|
||||||
|
|
||||||
@ApiModelProperty(value="内容")
|
private String content;
|
||||||
|
|
||||||
private String content;
|
@ApiModelProperty(value = "是否成功")
|
||||||
|
|
||||||
@ApiModelProperty(value="是否成功")
|
private Boolean success;
|
||||||
|
|
||||||
private Boolean success;
|
}
|
||||||
|
|
||||||
}
|
|
||||||
|
|
|
@ -9,16 +9,19 @@
|
||||||
*/
|
*/
|
||||||
package cc.iotkit.manager.dto.vo.taskinfo;
|
package cc.iotkit.manager.dto.vo.taskinfo;
|
||||||
|
|
||||||
import lombok.AllArgsConstructor;
|
import cc.iotkit.model.rule.TaskLog;
|
||||||
import lombok.Builder;
|
import io.github.linpeilie.annotations.AutoMapper;
|
||||||
import lombok.Data;
|
import io.swagger.annotations.ApiModel;
|
||||||
import lombok.NoArgsConstructor;
|
import lombok.*;
|
||||||
|
|
||||||
|
import java.io.Serializable;
|
||||||
|
|
||||||
|
|
||||||
|
@ApiModel(value = "TaskLogVo")
|
||||||
@Data
|
@Data
|
||||||
@NoArgsConstructor
|
@AutoMapper(target = TaskLog.class)
|
||||||
@AllArgsConstructor
|
public class TaskLogVo implements Serializable {
|
||||||
@Builder
|
private static final long serialVersionUID = -1L;
|
||||||
public class TaskLogVo {
|
|
||||||
|
|
||||||
private String id;
|
private String id;
|
||||||
|
|
||||||
|
|
|
@ -257,9 +257,7 @@ public class RuleEngineServiceImpl implements IRuleEngineService {
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public Paging<TaskLogVo> selectTaskLogPageList(PageRequest<TaskLogBo> request) {
|
public Paging<TaskLogVo> selectTaskLogPageList(PageRequest<TaskLogBo> request) {
|
||||||
|
|
||||||
TaskLog taskLog = request.getData().to(TaskLog.class);
|
TaskLog taskLog = request.getData().to(TaskLog.class);
|
||||||
|
|
||||||
Paging<TaskLog> byTaskId = taskLogData.findByTaskId(taskLog.getTaskId(), request.getPageNum(), request.getPageSize());
|
Paging<TaskLog> byTaskId = taskLogData.findByTaskId(taskLog.getTaskId(), request.getPageNum(), request.getPageSize());
|
||||||
return byTaskId.to(TaskLogVo.class);
|
return byTaskId.to(TaskLogVo.class);
|
||||||
}
|
}
|
||||||
|
|
|
@ -55,7 +55,7 @@ public class TaskManager implements ApplicationContextAware {
|
||||||
int idx = 1;
|
int idx = 1;
|
||||||
while (true) {
|
while (true) {
|
||||||
PageRequest<TaskInfo> pageRequest = new PageRequest<>();
|
PageRequest<TaskInfo> pageRequest = new PageRequest<>();
|
||||||
pageRequest.setPageNum(idx+=1);
|
pageRequest.setPageNum(idx);
|
||||||
pageRequest.setPageSize(100);
|
pageRequest.setPageSize(100);
|
||||||
Paging<TaskInfo> all = taskInfoData.findAll(pageRequest);
|
Paging<TaskInfo> all = taskInfoData.findAll(pageRequest);
|
||||||
List<TaskInfo> tasks = all.getRows();
|
List<TaskInfo> tasks = all.getRows();
|
||||||
|
@ -134,7 +134,7 @@ public class TaskManager implements ApplicationContextAware {
|
||||||
TriggerKey triggerKey = new TriggerKey(task.getId(), task.getUid());
|
TriggerKey triggerKey = new TriggerKey(task.getId(), task.getUid());
|
||||||
Trigger oldTrigger = getScheduler().getTrigger(triggerKey);
|
Trigger oldTrigger = getScheduler().getTrigger(triggerKey);
|
||||||
if (oldTrigger == null) {
|
if (oldTrigger == null) {
|
||||||
log.warn("task isn't exists,to add");
|
log.warn("saveTask:trigger does not exist");
|
||||||
addTask(task);
|
addTask(task);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
@ -147,9 +147,6 @@ public class TaskManager implements ApplicationContextAware {
|
||||||
}
|
}
|
||||||
|
|
||||||
public void renewTask(TaskInfo task) throws SchedulerException {
|
public void renewTask(TaskInfo task) throws SchedulerException {
|
||||||
if (!TaskInfo.TYPE_DELAY.equals(task.getType())) {
|
|
||||||
throw new BizException(ErrCode.TASK_NOT_SUPPORT_RENEW);
|
|
||||||
}
|
|
||||||
saveTask(task);
|
saveTask(task);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Binary file not shown.
Loading…
Reference in New Issue