1、指令is_judged变更为四个状态,修改指令研判接口
2、修改处理研判后任务的逻辑,若指令存在,增加is_judged判断,如果为2,要变为1,其他不变。如果指令不存在,isjudged默认为2
This commit is contained in:
@@ -79,9 +79,9 @@ public class TaskCommandInfo {
|
|||||||
@JsonProperty("is_valid")
|
@JsonProperty("is_valid")
|
||||||
private Boolean isValid = true;
|
private Boolean isValid = true;
|
||||||
|
|
||||||
@Schema(description = "指令是否已研判", example = "true")
|
@Schema(description = "指令是否已研判,0待研判,1下发,2本次忽略,3永久忽略", example = "true")
|
||||||
@JsonProperty("is_judged")
|
@JsonProperty("is_judged")
|
||||||
private Boolean isJudged = true;
|
private Integer isJudged = 1;
|
||||||
|
|
||||||
@Schema(description = "五元组信息")
|
@Schema(description = "五元组信息")
|
||||||
@NotNull(message = "五元组信息不能为空。")
|
@NotNull(message = "五元组信息不能为空。")
|
||||||
|
|||||||
@@ -65,10 +65,10 @@ public class AlertMessageService {
|
|||||||
if (taskType == TaskTypeEnum.DYNAMIC.getTaskType())//实时
|
if (taskType == TaskTypeEnum.DYNAMIC.getTaskType())//实时
|
||||||
switch (StateEnum.getStateEnumByNum(taskStatus)) {
|
switch (StateEnum.getStateEnumByNum(taskStatus)) {
|
||||||
case RUNNING:
|
case RUNNING:
|
||||||
insertCommandAndAlertMessage(dynamicTaskCommandInfoList, true, true, alertMessage);
|
insertCommandAndAlertMessage(dynamicTaskCommandInfoList, true, 1, alertMessage);
|
||||||
break;
|
break;
|
||||||
case PAUSED:
|
case PAUSED:
|
||||||
insertCommandAndAlertMessage(dynamicTaskCommandInfoList, false, true, alertMessage);
|
insertCommandAndAlertMessage(dynamicTaskCommandInfoList, false, 1, alertMessage);
|
||||||
break;
|
break;
|
||||||
default://主要是stop
|
default://主要是stop
|
||||||
//command不入库
|
//command不入库
|
||||||
@@ -79,10 +79,10 @@ public class AlertMessageService {
|
|||||||
else if (taskType == TaskTypeEnum.JUDGED.getTaskType())//研判后
|
else if (taskType == TaskTypeEnum.JUDGED.getTaskType())//研判后
|
||||||
switch (StateEnum.getStateEnumByNum(taskStatus)) {
|
switch (StateEnum.getStateEnumByNum(taskStatus)) {
|
||||||
case RUNNING:
|
case RUNNING:
|
||||||
insertCommandAndAlertMessage(dynamicTaskCommandInfoList, true, false, alertMessage);
|
insertCommandAndAlertMessage(dynamicTaskCommandInfoList, true, 0, alertMessage);
|
||||||
break;
|
break;
|
||||||
case PAUSED:
|
case PAUSED:
|
||||||
insertCommandAndAlertMessage(dynamicTaskCommandInfoList, false, false, alertMessage);
|
insertCommandAndAlertMessage(dynamicTaskCommandInfoList, false, 0, alertMessage);
|
||||||
break;
|
break;
|
||||||
default://主要是stop
|
default://主要是stop
|
||||||
//command不入库
|
//command不入库
|
||||||
@@ -131,7 +131,7 @@ public class AlertMessageService {
|
|||||||
@DSTransactional
|
@DSTransactional
|
||||||
private void insertCommandAndAlertMessage(List<TaskCommandInfo> dynamicTaskCommandInfoList,
|
private void insertCommandAndAlertMessage(List<TaskCommandInfo> dynamicTaskCommandInfoList,
|
||||||
Boolean isValid,
|
Boolean isValid,
|
||||||
Boolean isJudged,
|
Integer isJudged,
|
||||||
AlertMessage alertMessage){
|
AlertMessage alertMessage){
|
||||||
List<String> commandUUIDs = new ArrayList<>();
|
List<String> commandUUIDs = new ArrayList<>();
|
||||||
|
|
||||||
@@ -139,7 +139,7 @@ public class AlertMessageService {
|
|||||||
//command入库
|
//command入库
|
||||||
dynamicTaskCommandInfo.setIsValid(isValid);
|
dynamicTaskCommandInfo.setIsValid(isValid);
|
||||||
dynamicTaskCommandInfo.setIsJudged(isJudged);
|
dynamicTaskCommandInfo.setIsJudged(isJudged);
|
||||||
String commandUUID = commandService.createCommand(dynamicTaskCommandInfo);
|
String commandUUID = commandService.createCommand2(dynamicTaskCommandInfo, isJudged);
|
||||||
|
|
||||||
//alertmessage入库
|
//alertmessage入库
|
||||||
|
|
||||||
@@ -156,26 +156,7 @@ public class AlertMessageService {
|
|||||||
);
|
);
|
||||||
alertMessageMapper.insertAlertMessage(alertMessage);
|
alertMessageMapper.insertAlertMessage(alertMessage);
|
||||||
}
|
}
|
||||||
//发送指令新建信号...实时任务 isJudged=1 才首次立刻下发
|
|
||||||
try {
|
|
||||||
if (isJudged){
|
|
||||||
stateHandler.sendCommandDistributeSignal(commandUUIDs);
|
|
||||||
}
|
|
||||||
}catch (Exception e) {
|
|
||||||
log.info(String.format("动态任务首次指令下发c3出错,任务id: %d,commandUUIDs: %s",
|
|
||||||
dynamicTaskCommandInfoList.get(0).getTaskId(),
|
|
||||||
commandUUIDs));
|
|
||||||
}
|
|
||||||
//发送RCP查询信号
|
|
||||||
try {
|
|
||||||
if (isJudged){
|
|
||||||
stateHandler.sendCommandRcpQuerySignal(commandUUIDs);
|
|
||||||
}
|
|
||||||
}catch (Exception e) {
|
|
||||||
log.info(String.format("动态任务首次指令查询RCP出错,任务id: %d,commandUUIDs: %s",
|
|
||||||
dynamicTaskCommandInfoList.get(0).getTaskId(),
|
|
||||||
commandUUIDs));
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
private String insertAlertMessageOnly(AlertMessage alertMessage){
|
private String insertAlertMessageOnly(AlertMessage alertMessage){
|
||||||
//alertmessage入库
|
//alertmessage入库
|
||||||
|
|||||||
@@ -58,4 +58,6 @@ public interface CommandMapper {
|
|||||||
List<WhiteListObject> whiteListCommandCheck(@Param("command") FiveTupleWithMask fiveTupleWithMask);
|
List<WhiteListObject> whiteListCommandCheck(@Param("command") FiveTupleWithMask fiveTupleWithMask);
|
||||||
@DS("mysql")
|
@DS("mysql")
|
||||||
void createCommandWhiteListConnect(@Param("command_id") String uuid, @Param("whiteLists") List<WhiteListObject> whiteListsHit);
|
void createCommandWhiteListConnect(@Param("command_id") String uuid, @Param("whiteLists") List<WhiteListObject> whiteListsHit);
|
||||||
|
|
||||||
|
void updateCommandIsJudgedIfIgnoreThisTime(@Param("command_id") String commandUUID);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -70,6 +70,61 @@ public class CommandService {
|
|||||||
return commandInfo.getUUID();
|
return commandInfo.getUUID();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@DSTransactional
|
||||||
|
public String createCommand2(TaskCommandInfo commandInfo, Integer isJudged) {
|
||||||
|
String uuid = commandMapper.queryCommandInfo(commandInfo);
|
||||||
|
if (uuid != null) {
|
||||||
|
if (isJudged == 0){
|
||||||
|
//研判后任务,将本次忽略的指令设置为待研判
|
||||||
|
commandMapper.updateCommandIsJudgedIfIgnoreThisTime(uuid);
|
||||||
|
}
|
||||||
|
return uuid;
|
||||||
|
}
|
||||||
|
commandInfo.setDisplayId(
|
||||||
|
"ZL-"
|
||||||
|
+ LocalDateTime.now().format(DateTimeFormatter.ofPattern("yyyyMMdd"))
|
||||||
|
+ "-"
|
||||||
|
+ String.format("%06d", counter.generateId("command"))
|
||||||
|
);
|
||||||
|
|
||||||
|
//指令:白名单检查
|
||||||
|
List<WhiteListObject> whiteListsHit = commandMapper.whiteListCommandCheck(commandInfo.getFiveTupleWithMask());
|
||||||
|
if (!whiteListsHit.isEmpty()) {
|
||||||
|
commandInfo.setUUID(UUID.randomUUID().toString());
|
||||||
|
commandMapper.createCommandInWhiteListHit(commandInfo);
|
||||||
|
commandMapper.createCommandWhiteListConnect(commandInfo.getUUID(), whiteListsHit);
|
||||||
|
//写入历史表
|
||||||
|
insertCommandHistory(commandInfo.getUUID());
|
||||||
|
return commandInfo.getUUID();
|
||||||
|
}
|
||||||
|
|
||||||
|
commandInfo.setUUID(UUID.randomUUID().toString());
|
||||||
|
commandMapper.createCommand(commandInfo);
|
||||||
|
//写入历史表
|
||||||
|
insertCommandHistory(commandInfo.getUUID());
|
||||||
|
|
||||||
|
//发送指令新建信号...实时任务 isJudged=1 才首次立刻下发
|
||||||
|
try {
|
||||||
|
if (isJudged == 1){
|
||||||
|
stateHandler.sendCommandDistributeSignal(Collections.singletonList(commandInfo.getUUID()));
|
||||||
|
}
|
||||||
|
}catch (Exception e) {
|
||||||
|
log.info(String.format("实时任务首次指令下发c3出错,commandUUIDs: %s",
|
||||||
|
commandInfo.getUUID()));
|
||||||
|
}
|
||||||
|
//发送RCP查询信号
|
||||||
|
try {
|
||||||
|
if (isJudged == 1){
|
||||||
|
stateHandler.sendCommandRcpQuerySignal(Collections.singletonList(commandInfo.getUUID()));
|
||||||
|
}
|
||||||
|
}catch (Exception e) {
|
||||||
|
log.info(String.format("实时任务首次指令查询RCP出错,commandUUIDs: %s",
|
||||||
|
commandInfo.getUUID()));
|
||||||
|
}
|
||||||
|
|
||||||
|
return commandInfo.getUUID();
|
||||||
|
}
|
||||||
|
|
||||||
public List<String> createCommands(List<TaskCommandInfo> taskCommandInfos) {
|
public List<String> createCommands(List<TaskCommandInfo> taskCommandInfos) {
|
||||||
|
|
||||||
List<String> commandUUIDs = ListUtils.newArrayListWithExpectedSize(taskCommandInfos.size());
|
List<String> commandUUIDs = ListUtils.newArrayListWithExpectedSize(taskCommandInfos.size());
|
||||||
@@ -137,6 +192,8 @@ public class CommandService {
|
|||||||
}
|
}
|
||||||
|
|
||||||
public Boolean setCommandJudged(String commandId, Integer isJudged) {
|
public Boolean setCommandJudged(String commandId, Integer isJudged) {
|
||||||
|
//查詢指令当前is_judged状态,如果为0才可以被修改
|
||||||
|
|
||||||
//设置指令是否已经研判
|
//设置指令是否已经研判
|
||||||
Boolean success = commandMapper.setCommandJudged(commandId, isJudged);
|
Boolean success = commandMapper.setCommandJudged(commandId, isJudged);
|
||||||
|
|
||||||
@@ -145,6 +202,7 @@ public class CommandService {
|
|||||||
if (isJudged != 1) {
|
if (isJudged != 1) {
|
||||||
return success;
|
return success;
|
||||||
}
|
}
|
||||||
|
//如果isJudged=1,则发送指令首次下发信号和RCP首次查询信号
|
||||||
//指令首次下发
|
//指令首次下发
|
||||||
try {
|
try {
|
||||||
stateHandler.sendCommandDistributeSignal(commandUUIDs);
|
stateHandler.sendCommandDistributeSignal(commandUUIDs);
|
||||||
|
|||||||
@@ -421,6 +421,12 @@
|
|||||||
</foreach>
|
</foreach>
|
||||||
and expire_time = NULL
|
and expire_time = NULL
|
||||||
</update>
|
</update>
|
||||||
|
<update id="updateCommandIsJudgedIfIgnoreThisTime">
|
||||||
|
update t_command
|
||||||
|
set IS_JUDGED = 0
|
||||||
|
where COMMAND_ID = #{command_id}
|
||||||
|
and IS_JUDGED = 2
|
||||||
|
</update>
|
||||||
|
|
||||||
<select id="queryCommandInfo" resultType="java.lang.String">
|
<select id="queryCommandInfo" resultType="java.lang.String">
|
||||||
SELECT COMMAND_ID FROM t_command
|
SELECT COMMAND_ID FROM t_command
|
||||||
|
|||||||
Reference in New Issue
Block a user