1、静态任务下发指令,写入事件类型字段

2、任务新建时,就把选择规则状态设置为使用中
3、
This commit is contained in:
PushM
2024-06-10 02:57:25 +08:00
parent a5214a2d99
commit 917cf56ea0
4 changed files with 26 additions and 19 deletions

View File

@@ -109,11 +109,12 @@ public class StaticRuleService {
@Transactional
public Object deleteStaticRules(List<Integer> staticRuleIds) {
//判断当前静态规则是否能够删除---是否存在任务选择的静态规则??
//删除静态规则
// for (Integer id : staticRuleIds) {
// staticRuleMapper.deleteStaticRule(id);
// }
List<StaticRuleObject> staticRuleObjects = staticRuleMapper.queryStaticRuleByIds(staticRuleIds);
for (StaticRuleObject staticRuleObject : staticRuleObjects) {
if (Objects.equals(staticRuleObject.getAuditStatus(), AuditStatusEnum.USING.getNum())) {
throw new IllegalArgumentException("当前静态规则正在使用,无法删除");
}
}
Function<StaticRuleMapper, Function<List<Integer>, Boolean>> deleteStaticRulesFunction =
mapper -> list -> {
if (list == null || list.isEmpty()) {

View File

@@ -18,10 +18,12 @@ public interface TaskMapper {
void newTask(@Param("task") Task task);
void newTaskStaticRuleConcat(@Param("task_id") Long taskId,
@Param("rule_ids") List<Integer> staticRuleIds);
@Param("rule_ids") List<Integer> staticRuleIds,
@Param("status") Integer usingStatusNum);
void newTaskDynamicRuleConcat(@Param("task_id") Long taskId,
@Param("rule_ids") List<Integer> dynamicRuleIds);
@Param("rule_ids") List<Integer> dynamicRuleIds,
@Param("status") Integer usingStatusNum);
void newTaskUsingCommandInfo(@Param("info") TaskCommandInfo taskCommandInfo);
@@ -40,9 +42,9 @@ public interface TaskMapper {
void updateTask(@Param("task") Task task);
void clearTaskConnectedStaticRule(@Param("task_id") Long taskId);
void clearTaskConnectedStaticRule(@Param("task_id") Long taskId, @Param("status")Integer num);
void clearTaskConnectedDynamicRule(@Param("task_id") Long taskId);
void clearTaskConnectedDynamicRule(@Param("task_id") Long taskId, @Param("status")Integer num);
void changeTaskAuditStatusWithAudior(@Param("task_id") Long taskId, @Param("audit_status") Integer auditStatus,
@Param("auditUserName")String auditUserName,

View File

@@ -76,7 +76,7 @@ public class TaskService {
throw new IllegalArgumentException("部分静态规则已被其他任务使用");
}
});
taskMapper.newTaskStaticRuleConcat(task.getTaskId(), task.getStaticRuleIds());
taskMapper.newTaskStaticRuleConcat(task.getTaskId(), task.getStaticRuleIds(), AuditStatusEnum.USING.getNum());
}
if (task.getDynamicRuleIds() != null && !task.getDynamicRuleIds().isEmpty()) {
@@ -89,7 +89,7 @@ public class TaskService {
throw new IllegalArgumentException("部分动态规则已被其他任务使用");
}
});
taskMapper.newTaskDynamicRuleConcat(task.getTaskId(), task.getDynamicRuleIds());
taskMapper.newTaskDynamicRuleConcat(task.getTaskId(), task.getDynamicRuleIds(), AuditStatusEnum.USING.getNum());
}
if (task.getTaskType() != TaskTypeEnum.STATIC.getTaskType()) {
if (task.getProtectObjectIds() != null && !task.getProtectObjectIds().isEmpty()) {
@@ -300,17 +300,16 @@ public class TaskService {
//更新task
taskMapper.updateTask(task);
//重新关联task和protectObjects
taskMapper.newTaskProtectObjectConcat(task.getTaskId(), task.getProtectObjectIds());
taskMapper.clearTaskConnectedStaticRule(task.getTaskId());
taskMapper.clearTaskConnectedDynamicRule(task.getTaskId());
taskMapper.clearTaskConnectedStaticRule(task.getTaskId(), AuditStatusEnum.AUDITED.getNum());
taskMapper.clearTaskConnectedDynamicRule(task.getTaskId(), AuditStatusEnum.AUDITED.getNum());
if (task.getStaticRuleIds() != null && !task.getStaticRuleIds().isEmpty())
taskMapper.newTaskStaticRuleConcat(task.getTaskId(), task.getStaticRuleIds());
taskMapper.newTaskStaticRuleConcat(task.getTaskId(), task.getStaticRuleIds(), AuditStatusEnum.USING.getNum());
if (task.getDynamicRuleIds() != null && !task.getDynamicRuleIds().isEmpty())
taskMapper.newTaskDynamicRuleConcat(task.getTaskId(), task.getDynamicRuleIds());
taskMapper.newTaskDynamicRuleConcat(task.getTaskId(), task.getDynamicRuleIds(),AuditStatusEnum.USING.getNum());
return true;
}
@@ -349,11 +348,12 @@ public class TaskService {
if (task == null) {
return true;
}
//有的规则被任务选择了但任务还没有启动此时规则的状态不是已使用但used_task_id已经被设置
//所以应该选择任务的时候就
updateStaticRuleAuditStatusInTask(taskId, AuditStatusEnum.AUDITED);
updateDynamicRuleAuditStatusInTask(taskId, AuditStatusEnum.AUDITED);
taskMapper.clearTaskConnectedStaticRule(task.getTaskId());
taskMapper.clearTaskConnectedDynamicRule(task.getTaskId());
taskMapper.clearTaskConnectedStaticRule(task.getTaskId(), AuditStatusEnum.AUDITED.getNum());
taskMapper.clearTaskConnectedDynamicRule(task.getTaskId(), AuditStatusEnum.AUDITED.getNum());
commandMapper.removeCommandsByTaskId(taskId);