ft:
指令状态获取方式修改
This commit is contained in:
@@ -131,6 +131,14 @@ public class TaskCommandInfo {
|
|||||||
|
|
||||||
private Long totalPacketNum;
|
private Long totalPacketNum;
|
||||||
|
|
||||||
|
private int commandStatus;
|
||||||
|
|
||||||
|
private LocalDateTime lastTrafficQueryTime;
|
||||||
|
|
||||||
|
private LocalDateTime lastRCPQueryTime;
|
||||||
|
|
||||||
|
private String logUUID;
|
||||||
|
|
||||||
|
|
||||||
// private String hashValue;
|
// private String hashValue;
|
||||||
|
|
||||||
|
|||||||
@@ -8,19 +8,20 @@ import java.util.Map;
|
|||||||
@Getter
|
@Getter
|
||||||
public enum CommandStatusEnum {
|
public enum CommandStatusEnum {
|
||||||
START(1),//指令生成(研判后任务需要研判,其他任务可直接下发)
|
START(1),//指令生成(研判后任务需要研判,其他任务可直接下发)
|
||||||
SEND(2),//(已研判)下发
|
SEND(2),// 下发,发送c3
|
||||||
RCPHIT(3),//..
|
RCPHIT(3),//..
|
||||||
FLOWHIT(4),//..
|
FLOWHIT(4),//..
|
||||||
UNRCPHIT(5),//..
|
UNRCPHIT(5),//..
|
||||||
UNFLOWHIT(6),//..
|
UNFLOWHIT(6),//..
|
||||||
IGNORE(7),//本次忽略
|
IGNORE(7),//本次忽略
|
||||||
WHOLEIGNORE(8),//全部忽略
|
WHOLEIGNORE(8),//全部忽略
|
||||||
SUCCESS(9),//下发成功
|
JUDGED(9),// 研判通过
|
||||||
FAIL(10),//下发失败
|
SUCCESS(10),//下发成功
|
||||||
STOP(11),
|
FAIL(11),//下发失败
|
||||||
PAUSE(12),
|
STOP(12),
|
||||||
CANCEL(13),//撤销
|
PAUSE(13),
|
||||||
END(14);//任务结束
|
CANCEL(14),//撤销
|
||||||
|
END(0);//任务结束
|
||||||
|
|
||||||
private final int commandStatusNum;
|
private final int commandStatusNum;
|
||||||
private static final Map<Integer, CommandStatusEnum> map = new HashMap<>();
|
private static final Map<Integer, CommandStatusEnum> map = new HashMap<>();
|
||||||
|
|||||||
@@ -7,6 +7,7 @@ import com.realtime.protection.configuration.entity.whitelist.WhiteListObject;
|
|||||||
import org.apache.ibatis.annotations.Mapper;
|
import org.apache.ibatis.annotations.Mapper;
|
||||||
import org.apache.ibatis.annotations.Param;
|
import org.apache.ibatis.annotations.Param;
|
||||||
|
|
||||||
|
import java.time.LocalDateTime;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
|
||||||
@Mapper
|
@Mapper
|
||||||
@@ -86,8 +87,6 @@ public interface CommandMapper {
|
|||||||
|
|
||||||
List<Integer> queryRunningCommandsDistributeStatusByTaskId(Long taskId);
|
List<Integer> queryRunningCommandsDistributeStatusByTaskId(Long taskId);
|
||||||
|
|
||||||
List<TaskCommandInfo> queryRunningCommandsRcpHitCount();
|
|
||||||
|
|
||||||
Integer queryCommandLogRcpHitCountByCommandId(@Param("command_id")String commandId);
|
Integer queryCommandLogRcpHitCountByCommandId(@Param("command_id")String commandId);
|
||||||
|
|
||||||
void insertCommandHistoryWithStatus(@Param("command_id")String commandUUID,
|
void insertCommandHistoryWithStatus(@Param("command_id")String commandUUID,
|
||||||
@@ -99,4 +98,13 @@ public interface CommandMapper {
|
|||||||
List<TaskCommandInfo> queryRunningCommandsTotalPacketNum();
|
List<TaskCommandInfo> queryRunningCommandsTotalPacketNum();
|
||||||
|
|
||||||
Integer queryCommandLogTotalPacketNumByCommandId(@Param("command_id")String uuid);
|
Integer queryCommandLogTotalPacketNumByCommandId(@Param("command_id")String uuid);
|
||||||
|
|
||||||
|
List<TaskCommandInfo> queryCommandLogLastTwoRecord(@Param("command_id")String uuid);
|
||||||
|
|
||||||
|
List<TaskCommandInfo> queryRunningCommands();
|
||||||
|
|
||||||
|
void insertCommandHistoryWithStatusWithTime(@Param("command_id")String commandUUID,
|
||||||
|
@Param("log_id")String logId,
|
||||||
|
@Param("command_status")Integer commandStatus,
|
||||||
|
@Param("effective_time")LocalDateTime lastTrafficQueryTime);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -265,7 +265,7 @@ public class CommandService {
|
|||||||
//研判状态也写入历史表
|
//研判状态也写入历史表
|
||||||
switch (isJudged){
|
switch (isJudged){
|
||||||
case 1:
|
case 1:
|
||||||
insertCommandHistory(commandId, CommandStatusEnum.SEND.getCommandStatusNum());
|
insertCommandHistory(commandId, CommandStatusEnum.JUDGED.getCommandStatusNum());
|
||||||
break;
|
break;
|
||||||
case 2:
|
case 2:
|
||||||
insertCommandHistory(commandId, CommandStatusEnum.IGNORE.getCommandStatusNum());
|
insertCommandHistory(commandId, CommandStatusEnum.IGNORE.getCommandStatusNum());
|
||||||
@@ -351,8 +351,8 @@ public class CommandService {
|
|||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public List<TaskCommandInfo> queryRunningCommandsRcpHitCount() {
|
public List<TaskCommandInfo> queryRunningCommands() {
|
||||||
return commandMapper.queryRunningCommandsRcpHitCount();
|
return commandMapper.queryRunningCommands();
|
||||||
}
|
}
|
||||||
|
|
||||||
public Integer queryCommandLogRcpHitCountByCommandId(String commandI) {
|
public Integer queryCommandLogRcpHitCountByCommandId(String commandI) {
|
||||||
@@ -366,4 +366,13 @@ public class CommandService {
|
|||||||
public Integer queryCommandLogTotalPacketNumByCommandId(String uuid) {
|
public Integer queryCommandLogTotalPacketNumByCommandId(String uuid) {
|
||||||
return commandMapper.queryCommandLogTotalPacketNumByCommandId(uuid);
|
return commandMapper.queryCommandLogTotalPacketNumByCommandId(uuid);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public List<TaskCommandInfo> queryCommandLogLastTwoRecord(String uuid) {
|
||||||
|
return commandMapper.queryCommandLogLastTwoRecord(uuid);
|
||||||
|
}
|
||||||
|
|
||||||
|
public void insertCommandHistoryWithTime(String commandUUID, Integer commandStatus, LocalDateTime lastTrafficQueryTime) {
|
||||||
|
String logId = UUID.randomUUID().toString();
|
||||||
|
commandMapper.insertCommandHistoryWithStatusWithTime(commandUUID, logId, commandStatus, lastTrafficQueryTime);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -157,7 +157,7 @@ public class StateChangeService {
|
|||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
//判断是否全为成功
|
//判断是否全为成功
|
||||||
if (commandStatusList.stream().allMatch(status -> status == null || status == 1)) {
|
if (commandStatusList.stream().allMatch(status -> status == null || status == 0)) {
|
||||||
//全为成功
|
//全为成功
|
||||||
try {
|
try {
|
||||||
changeState(StateEnum.RUNNING_SUCCESS.getStateNum(), taskId, true);
|
changeState(StateEnum.RUNNING_SUCCESS.getStateNum(), taskId, true);
|
||||||
@@ -165,7 +165,7 @@ public class StateChangeService {
|
|||||||
log.warn(String.format("任务%d从%s状态变为运行中RUNNING_SUCCESS状态遭遇异常:%s",
|
log.warn(String.format("任务%d从%s状态变为运行中RUNNING_SUCCESS状态遭遇异常:%s",
|
||||||
taskId, taskService.queryTaskStatus(taskId), e.getMessage()));
|
taskId, taskService.queryTaskStatus(taskId), e.getMessage()));
|
||||||
}
|
}
|
||||||
} else if (commandStatusList.stream().anyMatch(status -> status == null || status == 1)) {
|
} else if (commandStatusList.stream().anyMatch(status -> status == null || status == 0)) {
|
||||||
//部分成功
|
//部分成功
|
||||||
try {
|
try {
|
||||||
changeState(StateEnum.RUNNING_PARTIAL_SUCCESS.getStateNum(), taskId, true);
|
changeState(StateEnum.RUNNING_PARTIAL_SUCCESS.getStateNum(), taskId, true);
|
||||||
@@ -187,87 +187,113 @@ public class StateChangeService {
|
|||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 更新指令rcp命中状态
|
* 更新每次指令下周内rcp\flow命中状态
|
||||||
*/
|
*/
|
||||||
@Scheduled(cron = "0 1/5 * * * ?")
|
@Scheduled(cron = "5/20 * * * * ?")
|
||||||
@Async
|
@Async
|
||||||
protected void updateCommandRCPHitStatus() {
|
protected void updateCommandRCPHitStatus() {
|
||||||
//获取所有正在下发的指令
|
//获取所有正在下发的指令
|
||||||
List<TaskCommandInfo> commandRcpHitCountList = commandService.queryRunningCommandsRcpHitCount();
|
List<TaskCommandInfo> runningCommandList = commandService.queryRunningCommands();
|
||||||
log.info("rcp命中状态更新:正在下发的指令数量:{}", commandRcpHitCountList.size());
|
log.info("rcp命中状态更新:正在下发的指令数量:{}", runningCommandList.size());
|
||||||
|
|
||||||
|
|
||||||
//遍历所有指令
|
//遍历所有指令
|
||||||
for (TaskCommandInfo taskCommandInfo : commandRcpHitCountList) {
|
for (TaskCommandInfo taskCommandInfo : runningCommandList) {
|
||||||
//查询当前指令的rcp-hitcount字段
|
//查询状态表,查看本次下发周期内是否已经记录了命中状态。查询最近的两条日志记录
|
||||||
Long rcpHitCount = taskCommandInfo.getRcpHitCount();
|
List<TaskCommandInfo> commandLogs = commandService.queryCommandLogLastTwoRecord(taskCommandInfo.getUUID());
|
||||||
//查询当前历史表中该指令上一条日志的rcp-hitcount字段
|
if (commandLogs.size()<2){
|
||||||
Integer lastRcpHitCount = commandService.queryCommandLogRcpHitCountByCommandId(taskCommandInfo.getUUID());
|
|
||||||
//比较是否有变化
|
|
||||||
if (rcpHitCount == null ) {
|
|
||||||
//更新log表,rcp没命中
|
|
||||||
commandService.insertCommandHistory(taskCommandInfo.getUUID(), CommandStatusEnum.UNRCPHIT.getCommandStatusNum());
|
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
if (lastRcpHitCount == null){
|
TaskCommandInfo commandLogLatest = commandLogs.get(0);
|
||||||
|
TaskCommandInfo commandLogLatest2 = commandLogs.get(1);
|
||||||
|
log.info("指令历史状态:{}", commandLogs);
|
||||||
|
|
||||||
|
|
||||||
|
//如果日志状态为SEND、SUCCESS 或者 SEND、FAIL,则要根据当前t_command表的最新记录,和上次下发状态的命中计数相比判断是否有变化
|
||||||
|
if (commandLogLatest2.getCommandStatus()==CommandStatusEnum.SEND.getCommandStatusNum()
|
||||||
|
&& (commandLogLatest.getCommandStatus()==CommandStatusEnum.SUCCESS.getCommandStatusNum()
|
||||||
|
|| commandLogLatest.getCommandStatus()==CommandStatusEnum.FAIL.getCommandStatusNum()))
|
||||||
|
{
|
||||||
|
log.info("rcp命中查询:{},{}",taskCommandInfo.getRcpHitCount(), commandLogLatest.getRcpHitCount());
|
||||||
|
if (taskCommandInfo.getRcpHitCount()!=null && commandLogLatest.getRcpHitCount()==null) {
|
||||||
//更新log表,rcp命中
|
//更新log表,rcp命中
|
||||||
commandService.insertCommandHistory(taskCommandInfo.getUUID(), CommandStatusEnum.RCPHIT.getCommandStatusNum());
|
commandService.insertCommandHistoryWithTime(taskCommandInfo.getUUID(),
|
||||||
|
CommandStatusEnum.RCPHIT.getCommandStatusNum(), taskCommandInfo.getLastRCPQueryTime());
|
||||||
|
}
|
||||||
|
if (taskCommandInfo.getRcpHitCount()!=null && commandLogLatest.getRcpHitCount()!=null) {
|
||||||
|
if (taskCommandInfo.getRcpHitCount() > commandLogLatest.getRcpHitCount()) {
|
||||||
|
//更新log表,rcp命中
|
||||||
|
commandService.insertCommandHistoryWithTime(taskCommandInfo.getUUID(),
|
||||||
|
CommandStatusEnum.RCPHIT.getCommandStatusNum(), taskCommandInfo.getLastRCPQueryTime());
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
log.info("流量命中查询:{},{}",taskCommandInfo.getTotalPacketNum(), commandLogLatest.getTotalPacketNum());
|
||||||
|
if (taskCommandInfo.getTotalPacketNum()==null && commandLogLatest.getTotalPacketNum()!=null) {
|
||||||
|
//更新log表,流量命中
|
||||||
|
commandService.insertCommandHistoryWithTime(taskCommandInfo.getUUID(),
|
||||||
|
CommandStatusEnum.FLOWHIT.getCommandStatusNum(),taskCommandInfo.getLastTrafficQueryTime());
|
||||||
|
}
|
||||||
|
if (taskCommandInfo.getTotalPacketNum()!=null && commandLogLatest.getTotalPacketNum()!=null) {
|
||||||
|
if (taskCommandInfo.getTotalPacketNum() > commandLogLatest.getTotalPacketNum()) {
|
||||||
|
//更新log表,流量命中
|
||||||
|
commandService.insertCommandHistoryWithTime(taskCommandInfo.getUUID(),
|
||||||
|
CommandStatusEnum.FLOWHIT.getCommandStatusNum(),taskCommandInfo.getLastTrafficQueryTime());
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (rcpHitCount > lastRcpHitCount) {
|
|
||||||
//更新log表,rcp命中
|
//如果日志状态为SUCCESS/FAIL、RCPHIT/UNRCPHIT,则判断是否更新流量命中状态
|
||||||
commandService.insertCommandHistory(taskCommandInfo.getUUID(), CommandStatusEnum.RCPHIT.getCommandStatusNum());
|
if ((commandLogLatest2.getCommandStatus()==CommandStatusEnum.SUCCESS.getCommandStatusNum()
|
||||||
} else {
|
|| commandLogLatest2.getCommandStatus()==CommandStatusEnum.FAIL.getCommandStatusNum())
|
||||||
//更新log表,rcp没命中
|
&& (commandLogLatest.getCommandStatus()==CommandStatusEnum.RCPHIT.getCommandStatusNum()
|
||||||
commandService.insertCommandHistory(taskCommandInfo.getUUID(), CommandStatusEnum.UNRCPHIT.getCommandStatusNum());
|
|| commandLogLatest.getCommandStatus()==CommandStatusEnum.UNRCPHIT.getCommandStatusNum()))
|
||||||
|
{
|
||||||
|
|
||||||
|
log.info("流量命中查询:{},{}",taskCommandInfo.getTotalPacketNum(), commandLogLatest.getTotalPacketNum());
|
||||||
|
if (taskCommandInfo.getTotalPacketNum()==null && commandLogLatest.getTotalPacketNum()!=null) {
|
||||||
|
//更新log表,流量命中
|
||||||
|
commandService.insertCommandHistoryWithTime(taskCommandInfo.getUUID(),
|
||||||
|
CommandStatusEnum.FLOWHIT.getCommandStatusNum(),taskCommandInfo.getLastTrafficQueryTime());
|
||||||
}
|
}
|
||||||
|
if (taskCommandInfo.getTotalPacketNum()!=null && commandLogLatest.getTotalPacketNum()!=null) {
|
||||||
|
if (taskCommandInfo.getTotalPacketNum() > commandLogLatest.getTotalPacketNum()) {
|
||||||
|
//更新log表,流量命中
|
||||||
|
commandService.insertCommandHistoryWithTime(taskCommandInfo.getUUID(),
|
||||||
|
CommandStatusEnum.FLOWHIT.getCommandStatusNum(),taskCommandInfo.getLastTrafficQueryTime());
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 更新指令rcp命中状态
|
|
||||||
*/
|
|
||||||
@Scheduled(cron = "0 3/5 * * * ?")
|
|
||||||
@Async
|
|
||||||
protected void updateCommandTrafficHitStatus() {
|
|
||||||
//查询当前历史表中该指令上一条日志的统计流量大小字段
|
|
||||||
|
|
||||||
//比较是否有变化
|
|
||||||
|
|
||||||
//更新log表,流量命中、流量未命中
|
|
||||||
//获取所有正在下发的指令
|
|
||||||
List<TaskCommandInfo> commandTotalPacketNumList = commandService.queryRunningCommandsTotalPacketNum();
|
|
||||||
log.info("流量命中状态:查询正在下发的指令数量:{}", commandTotalPacketNumList.size());
|
|
||||||
//遍历所有指令
|
|
||||||
for (TaskCommandInfo taskCommandInfo : commandTotalPacketNumList) {
|
|
||||||
//查询当前指令的统计流量大小字段
|
|
||||||
Long totalPacketNum = taskCommandInfo.getTotalPacketNum();
|
|
||||||
//查询当前历史表中该指令上一条日志的rcp-hitcount字段
|
|
||||||
Integer lastTotalPacketNum = commandService.queryCommandLogTotalPacketNumByCommandId(taskCommandInfo.getUUID());
|
|
||||||
//比较是否有变化
|
|
||||||
if (totalPacketNum == null ) {
|
|
||||||
//更新log表,rcp没命中
|
|
||||||
commandService.insertCommandHistory(taskCommandInfo.getUUID(), CommandStatusEnum.UNFLOWHIT.getCommandStatusNum());
|
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
if (lastTotalPacketNum == null){
|
//如果日志状态为SUCCESS/FAIL、FLOWHIT/UNFLOWHIT,则判断是否更新rcp命中状态
|
||||||
|
if ((commandLogLatest2.getCommandStatus()==CommandStatusEnum.SUCCESS.getCommandStatusNum()
|
||||||
|
|| commandLogLatest2.getCommandStatus()==CommandStatusEnum.FAIL.getCommandStatusNum())
|
||||||
|
&& (commandLogLatest.getCommandStatus()==CommandStatusEnum.FLOWHIT.getCommandStatusNum()
|
||||||
|
|| commandLogLatest.getCommandStatus()==CommandStatusEnum.UNFLOWHIT.getCommandStatusNum()))
|
||||||
|
{
|
||||||
|
log.info("rcp命中查询:{},{}",taskCommandInfo.getRcpHitCount(), commandLogLatest.getRcpHitCount());
|
||||||
|
if (taskCommandInfo.getRcpHitCount()!=null && commandLogLatest.getRcpHitCount()==null) {
|
||||||
//更新log表,rcp命中
|
//更新log表,rcp命中
|
||||||
commandService.insertCommandHistory(taskCommandInfo.getUUID(), CommandStatusEnum.FLOWHIT.getCommandStatusNum());
|
commandService.insertCommandHistoryWithTime(taskCommandInfo.getUUID(),
|
||||||
|
CommandStatusEnum.RCPHIT.getCommandStatusNum(), taskCommandInfo.getLastRCPQueryTime());
|
||||||
|
}
|
||||||
|
if (taskCommandInfo.getRcpHitCount()!=null && commandLogLatest.getRcpHitCount()!=null) {
|
||||||
|
if (taskCommandInfo.getRcpHitCount() > commandLogLatest.getRcpHitCount()) {
|
||||||
|
//更新log表,rcp命中
|
||||||
|
commandService.insertCommandHistoryWithTime(taskCommandInfo.getUUID(),
|
||||||
|
CommandStatusEnum.RCPHIT.getCommandStatusNum(), taskCommandInfo.getLastRCPQueryTime());
|
||||||
|
}
|
||||||
|
}
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
|
//如果日志状态为RCPHIT/FLOWHIT、FLOWHIT/UNFLOWHIT,则不需要查询了
|
||||||
if (totalPacketNum > lastTotalPacketNum) {
|
|
||||||
//更新log表,rcp命中
|
|
||||||
commandService.insertCommandHistory(taskCommandInfo.getUUID(), CommandStatusEnum.FLOWHIT.getCommandStatusNum());
|
|
||||||
} else {
|
|
||||||
//更新log表,rcp没命中
|
|
||||||
commandService.insertCommandHistory(taskCommandInfo.getUUID(), CommandStatusEnum.UNFLOWHIT.getCommandStatusNum());
|
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -277,20 +277,38 @@ public class StateHandler {
|
|||||||
})
|
})
|
||||||
.doOnError(WebClientResponseException.class, res -> success.set(false));
|
.doOnError(WebClientResponseException.class, res -> success.set(false));
|
||||||
|
|
||||||
|
// 异步处理响应
|
||||||
Map<String, Integer> response = mono.block(Duration.ofSeconds(5));
|
mono.subscribe(
|
||||||
|
response2 -> {
|
||||||
if (response == null) {
|
Map<String, Integer> response = response2;
|
||||||
return false;
|
success.set(false);
|
||||||
}
|
|
||||||
response.forEach((commandUUID, responseCode) -> {
|
response.forEach((commandUUID, responseCode) -> {
|
||||||
log.info("指令首次下发成功, 指令uuid: " + commandUUID + ", responseCode: " + responseCode);
|
log.info("指令首次下发成功, 指令uuid: " + commandUUID + ", responseCode: " + responseCode);
|
||||||
if (responseCode != 0) {
|
if (responseCode != 0) {
|
||||||
log.warn("指令首次下发失败, 指令uuid: " + commandUUID + ", responseCode: " + responseCode);
|
log.warn("指令首次下发失败, 指令uuid: " + commandUUID + ", responseCode: " + responseCode);
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
success.set(true);
|
success.set(true);
|
||||||
|
},
|
||||||
|
error -> {
|
||||||
|
// 错误响应处理
|
||||||
|
System.err.println("指令首次下发错误: " + error.getMessage());
|
||||||
|
success.set(false);
|
||||||
|
}
|
||||||
|
);
|
||||||
|
// Map<String, Integer> response = mono.block(Duration.ofSeconds(5));
|
||||||
|
//
|
||||||
|
// if (response == null) {
|
||||||
|
// return false;
|
||||||
|
// }
|
||||||
|
// response.forEach((commandUUID, responseCode) -> {
|
||||||
|
// log.info("指令首次下发成功, 指令uuid: " + commandUUID + ", responseCode: " + responseCode);
|
||||||
|
// if (responseCode != 0) {
|
||||||
|
// log.warn("指令首次下发失败, 指令uuid: " + commandUUID + ", responseCode: " + responseCode);
|
||||||
|
// }
|
||||||
|
// });
|
||||||
|
//
|
||||||
|
// success.set(true);
|
||||||
|
|
||||||
return success.get();
|
return success.get();
|
||||||
}
|
}
|
||||||
@@ -335,16 +353,6 @@ public class StateHandler {
|
|||||||
}
|
}
|
||||||
);
|
);
|
||||||
|
|
||||||
// if (response == null) {
|
|
||||||
// log.info("指令首次查询RCP返回为null");
|
|
||||||
// return false;
|
|
||||||
// }
|
|
||||||
// response.forEach((commandUUID, responseCode) -> {
|
|
||||||
// log.info("指令首次查询RCP成功, 指令uuid: " + commandUUID + ", responseCode: " + responseCode);
|
|
||||||
// if (responseCode != 0) {
|
|
||||||
// log.warn("指令首次查询RCP失败, 指令uuid: " + commandUUID + ", responseCode: " + responseCode);
|
|
||||||
// }
|
|
||||||
// });
|
|
||||||
|
|
||||||
success.set(true);
|
success.set(true);
|
||||||
|
|
||||||
|
|||||||
@@ -204,6 +204,7 @@
|
|||||||
|
|
||||||
<insert id="insertCommandHistory">
|
<insert id="insertCommandHistory">
|
||||||
insert into t_command_log(
|
insert into t_command_log(
|
||||||
|
log_uuid,
|
||||||
effective_time,
|
effective_time,
|
||||||
expire_time,
|
expire_time,
|
||||||
TASK_ID,
|
TASK_ID,
|
||||||
@@ -255,11 +256,11 @@
|
|||||||
first_effect_time,
|
first_effect_time,
|
||||||
last_rcp_query_time,
|
last_rcp_query_time,
|
||||||
last_traffic_query_time,
|
last_traffic_query_time,
|
||||||
log_uuid,
|
|
||||||
sip_int,
|
sip_int,
|
||||||
dip_int
|
dip_int
|
||||||
)
|
)
|
||||||
select
|
select
|
||||||
|
#{log_id},
|
||||||
NOW(),
|
NOW(),
|
||||||
NULL,
|
NULL,
|
||||||
TASK_ID,
|
TASK_ID,
|
||||||
@@ -311,7 +312,7 @@
|
|||||||
first_effect_time,
|
first_effect_time,
|
||||||
last_rcp_query_time,
|
last_rcp_query_time,
|
||||||
last_traffic_query_time,
|
last_traffic_query_time,
|
||||||
#{log_id},
|
|
||||||
sip_int,
|
sip_int,
|
||||||
dip_int
|
dip_int
|
||||||
from t_command
|
from t_command
|
||||||
@@ -319,6 +320,7 @@
|
|||||||
</insert>
|
</insert>
|
||||||
<insert id="insertCommandHistoryBatch">
|
<insert id="insertCommandHistoryBatch">
|
||||||
insert into t_command_log(
|
insert into t_command_log(
|
||||||
|
log_uuid,
|
||||||
effective_time,
|
effective_time,
|
||||||
expire_time,
|
expire_time,
|
||||||
TASK_ID,
|
TASK_ID,
|
||||||
@@ -370,12 +372,12 @@
|
|||||||
first_effect_time,
|
first_effect_time,
|
||||||
last_rcp_query_time,
|
last_rcp_query_time,
|
||||||
last_traffic_query_time,
|
last_traffic_query_time,
|
||||||
log_uuid,
|
|
||||||
sip_int,
|
sip_int,
|
||||||
dip_int,
|
dip_int,
|
||||||
command_status
|
command_status
|
||||||
)
|
)
|
||||||
select
|
select
|
||||||
|
COMMAND_ID,
|
||||||
NOW(),
|
NOW(),
|
||||||
NULL,
|
NULL,
|
||||||
TASK_ID,
|
TASK_ID,
|
||||||
@@ -427,7 +429,6 @@
|
|||||||
first_effect_time,
|
first_effect_time,
|
||||||
last_rcp_query_time,
|
last_rcp_query_time,
|
||||||
last_traffic_query_time,
|
last_traffic_query_time,
|
||||||
COMMAND_ID,
|
|
||||||
sip_int,
|
sip_int,
|
||||||
dip_int,
|
dip_int,
|
||||||
#{command_status}
|
#{command_status}
|
||||||
@@ -447,6 +448,7 @@
|
|||||||
</insert>
|
</insert>
|
||||||
<insert id="insertCommandHistoryWithStatus">
|
<insert id="insertCommandHistoryWithStatus">
|
||||||
insert into t_command_log(
|
insert into t_command_log(
|
||||||
|
log_uuid,
|
||||||
effective_time,
|
effective_time,
|
||||||
expire_time,
|
expire_time,
|
||||||
TASK_ID,
|
TASK_ID,
|
||||||
@@ -498,12 +500,12 @@
|
|||||||
first_effect_time,
|
first_effect_time,
|
||||||
last_rcp_query_time,
|
last_rcp_query_time,
|
||||||
last_traffic_query_time,
|
last_traffic_query_time,
|
||||||
log_uuid,
|
|
||||||
sip_int,
|
sip_int,
|
||||||
dip_int,
|
dip_int,
|
||||||
command_status
|
command_status
|
||||||
)
|
)
|
||||||
select
|
select
|
||||||
|
#{log_id},
|
||||||
NOW(),
|
NOW(),
|
||||||
NULL,
|
NULL,
|
||||||
TASK_ID,
|
TASK_ID,
|
||||||
@@ -555,7 +557,6 @@
|
|||||||
first_effect_time,
|
first_effect_time,
|
||||||
last_rcp_query_time,
|
last_rcp_query_time,
|
||||||
last_traffic_query_time,
|
last_traffic_query_time,
|
||||||
#{log_id},
|
|
||||||
sip_int,
|
sip_int,
|
||||||
dip_int,
|
dip_int,
|
||||||
#{command_status}
|
#{command_status}
|
||||||
@@ -563,7 +564,6 @@
|
|||||||
where COMMAND_ID = #{command_id}
|
where COMMAND_ID = #{command_id}
|
||||||
</insert>
|
</insert>
|
||||||
|
|
||||||
|
|
||||||
<resultMap id="commandStatMap" type="com.realtime.protection.configuration.entity.task.TaskCommandInfo">
|
<resultMap id="commandStatMap" type="com.realtime.protection.configuration.entity.task.TaskCommandInfo">
|
||||||
<id column="COMMAND_ID" property="UUID"/>
|
<id column="COMMAND_ID" property="UUID"/>
|
||||||
<result column="TASK_ACT" property="taskAct"/>
|
<result column="TASK_ACT" property="taskAct"/>
|
||||||
@@ -577,6 +577,12 @@
|
|||||||
<result column="RCP_HIT_COUNT" property="rcpHitCount"/>
|
<result column="RCP_HIT_COUNT" property="rcpHitCount"/>
|
||||||
<result column="TOTAL_PACKET_NUM" property="totalPacketNum"/>
|
<result column="TOTAL_PACKET_NUM" property="totalPacketNum"/>
|
||||||
|
|
||||||
|
<result column="command_status" property="commandStatus"/>
|
||||||
|
|
||||||
|
<result column="last_rcp_query_time" property="lastRCPQueryTime"/>
|
||||||
|
<result column="last_traffic_query_time" property="lastTrafficQueryTime"/>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
<association property="fiveTupleWithMask">
|
<association property="fiveTupleWithMask">
|
||||||
<result column="SRC_IP" property="sourceIP"/>
|
<result column="SRC_IP" property="sourceIP"/>
|
||||||
@@ -880,4 +886,171 @@
|
|||||||
ORDER BY effective_time DESC LIMIT 1
|
ORDER BY effective_time DESC LIMIT 1
|
||||||
</select>
|
</select>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
<insert id="insertCommandHistoryWithStatusWithTime">
|
||||||
|
insert into t_command_log(
|
||||||
|
log_uuid,
|
||||||
|
effective_time,
|
||||||
|
expire_time,
|
||||||
|
TASK_ID,
|
||||||
|
RULE_ID,
|
||||||
|
COMMAND_ID,
|
||||||
|
TASKTYPE,
|
||||||
|
ADDR_TYPE,
|
||||||
|
SRC_IP,
|
||||||
|
SRC_PORT,
|
||||||
|
DST_IP,
|
||||||
|
DST_PORT,
|
||||||
|
PROTOCOL,
|
||||||
|
MASK_SRC_IP,
|
||||||
|
MASK_SRC_PORT,
|
||||||
|
MASK_DST_IP,
|
||||||
|
MASK_DST_PORT,
|
||||||
|
MASK_PROTOCOL,
|
||||||
|
TASK_ACT,
|
||||||
|
EVENTTYPE,
|
||||||
|
TASKNAME,
|
||||||
|
DISTRIBUTEPOINT,
|
||||||
|
DEPARTMENT,
|
||||||
|
FREQUENCY,
|
||||||
|
VALID_TIME,
|
||||||
|
INVALID_TIME,
|
||||||
|
IS_VALID,
|
||||||
|
IS_JUDGED,
|
||||||
|
SEND_TIMES,
|
||||||
|
SUCCESS_TIMES,
|
||||||
|
FIRST_SEND_TIME,
|
||||||
|
LAST_SEND_TIME,
|
||||||
|
CREATE_TIME,
|
||||||
|
LAST_UPDATE,
|
||||||
|
IS_DELETED,
|
||||||
|
RULE_NAME,
|
||||||
|
RCP_HIT_COUNT,
|
||||||
|
TOTAL_PACKET_NUM,
|
||||||
|
TOTAL_BYTE_NUM,
|
||||||
|
EFFECTIVE_EQUIPMENT_NUM,
|
||||||
|
AVERAGE_LATENCY,
|
||||||
|
MAX_LATENCY,
|
||||||
|
MIN_LATENCY,
|
||||||
|
c2s_pkt_num,
|
||||||
|
s2c_pkt_num,
|
||||||
|
c2s_byte_num,
|
||||||
|
s2c_byte_num,
|
||||||
|
display_id,
|
||||||
|
session_num,
|
||||||
|
first_effect_time,
|
||||||
|
last_rcp_query_time,
|
||||||
|
last_traffic_query_time,
|
||||||
|
sip_int,
|
||||||
|
dip_int,
|
||||||
|
command_status
|
||||||
|
)
|
||||||
|
select
|
||||||
|
#{log_id},
|
||||||
|
#{effective_time},
|
||||||
|
NULL,
|
||||||
|
TASK_ID,
|
||||||
|
RULE_ID,
|
||||||
|
COMMAND_ID,
|
||||||
|
TASKTYPE,
|
||||||
|
ADDR_TYPE,
|
||||||
|
SRC_IP,
|
||||||
|
SRC_PORT,
|
||||||
|
DST_IP,
|
||||||
|
DST_PORT,
|
||||||
|
PROTOCOL,
|
||||||
|
MASK_SRC_IP,
|
||||||
|
MASK_SRC_PORT,
|
||||||
|
MASK_DST_IP,
|
||||||
|
MASK_DST_PORT,
|
||||||
|
MASK_PROTOCOL,
|
||||||
|
TASK_ACT,
|
||||||
|
EVENTTYPE,
|
||||||
|
TASKNAME,
|
||||||
|
DISTRIBUTEPOINT,
|
||||||
|
DEPARTMENT,
|
||||||
|
FREQUENCY,
|
||||||
|
VALID_TIME,
|
||||||
|
INVALID_TIME,
|
||||||
|
IS_VALID,
|
||||||
|
IS_JUDGED,
|
||||||
|
SEND_TIMES,
|
||||||
|
SUCCESS_TIMES,
|
||||||
|
FIRST_SEND_TIME,
|
||||||
|
LAST_SEND_TIME,
|
||||||
|
CREATE_TIME,
|
||||||
|
LAST_UPDATE,
|
||||||
|
IS_DELETED,
|
||||||
|
RULE_NAME,
|
||||||
|
RCP_HIT_COUNT,
|
||||||
|
TOTAL_PACKET_NUM,
|
||||||
|
TOTAL_BYTE_NUM,
|
||||||
|
EFFECTIVE_EQUIPMENT_NUM,
|
||||||
|
AVERAGE_LATENCY,
|
||||||
|
MAX_LATENCY,
|
||||||
|
MIN_LATENCY,
|
||||||
|
c2s_pkt_num,
|
||||||
|
s2c_pkt_num,
|
||||||
|
c2s_byte_num,
|
||||||
|
s2c_byte_num,
|
||||||
|
display_id,
|
||||||
|
session_num,
|
||||||
|
first_effect_time,
|
||||||
|
last_rcp_query_time,
|
||||||
|
last_traffic_query_time,
|
||||||
|
sip_int,
|
||||||
|
dip_int,
|
||||||
|
#{command_status}
|
||||||
|
from t_command
|
||||||
|
where COMMAND_ID = #{command_id}
|
||||||
|
</insert>
|
||||||
|
|
||||||
|
<resultMap id="commandLogMap" type="com.realtime.protection.configuration.entity.task.TaskCommandInfo">
|
||||||
|
<id column="log_uuid" property="logUUID"/>
|
||||||
|
<result column="COMMAND_ID" property="UUID"/>
|
||||||
|
|
||||||
|
<result column="RCP_HIT_COUNT" property="rcpHitCount"/>
|
||||||
|
<result column="TOTAL_PACKET_NUM" property="totalPacketNum"/>
|
||||||
|
|
||||||
|
<result column="command_status" property="commandStatus"/>
|
||||||
|
|
||||||
|
<result column="last_rcp_query_time" property="lastRCPQueryTime"/>
|
||||||
|
<result column="last_traffic_query_time" property="lastTrafficQueryTime"/>
|
||||||
|
|
||||||
|
|
||||||
|
</resultMap>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
<select id="queryCommandLogLastTwoRecord"
|
||||||
|
resultMap="commandLogMap">
|
||||||
|
SELECT log_uuid,
|
||||||
|
COMMAND_ID,
|
||||||
|
TOTAL_PACKET_NUM,
|
||||||
|
RCP_HIT_COUNT,
|
||||||
|
command_status
|
||||||
|
FROM t_command_log
|
||||||
|
WHERE COMMAND_ID = #{command_id}
|
||||||
|
ORDER BY effective_time DESC LIMIT 2
|
||||||
|
</select>
|
||||||
|
|
||||||
|
|
||||||
|
<select id="queryRunningCommands"
|
||||||
|
resultMap="commandStatMap">
|
||||||
|
SELECT COMMAND_ID,
|
||||||
|
RCP_HIT_COUNT,
|
||||||
|
TOTAL_PACKET_NUM,
|
||||||
|
last_rcp_query_time,
|
||||||
|
last_traffic_query_time
|
||||||
|
FROM t_command
|
||||||
|
WHERE IS_JUDGED = 1
|
||||||
|
AND IS_VALID = 1
|
||||||
|
AND IS_DELETED = 0
|
||||||
|
</select>
|
||||||
</mapper>
|
</mapper>
|
||||||
|
|||||||
Reference in New Issue
Block a user