Commit e8fcdaac authored by zhouleilei's avatar zhouleilei

1、定時恢复下发错误指令,定时任务捕获异常,增加日志打印2、添加日志表改为修改

parent 53101ddd
...@@ -300,11 +300,13 @@ public class ControlCommandStrategyServiceImpl implements ControlCommandStrategy ...@@ -300,11 +300,13 @@ public class ControlCommandStrategyServiceImpl implements ControlCommandStrategy
HttpServletRequest request = ((ServletRequestAttributes) RequestContextHolder.getRequestAttributes()).getRequest(); HttpServletRequest request = ((ServletRequestAttributes) RequestContextHolder.getRequestAttributes()).getRequest();
String ip = IpAddressUtil.getIpAddress(request); String ip = IpAddressUtil.getIpAddress(request);
signalCommandLogPO.setIp(ip); signalCommandLogPO.setIp(ip);
int commandResult = 0;
if (code == 200){ if (code == 200){
signalCommandLogPO.setCommandResult(1); commandResult = 1;
}else { }else {
signalCommandLogPO.setCommandResult(2); commandResult = 2;
} }
signalCommandLogPO.setCommandResult(commandResult);
signalCommandLogPO.setResultMessage(jsonViewObject.getMessage()); signalCommandLogPO.setResultMessage(jsonViewObject.getMessage());
ConcurrentHashMap<String, List<LightsStatusVO2>> produceListMap = SignalStatusTask.produceListMap; ConcurrentHashMap<String, List<LightsStatusVO2>> produceListMap = SignalStatusTask.produceListMap;
...@@ -325,10 +327,24 @@ public class ControlCommandStrategyServiceImpl implements ControlCommandStrategy ...@@ -325,10 +327,24 @@ public class ControlCommandStrategyServiceImpl implements ControlCommandStrategy
if (commandType != 10){ if (commandType != 10){
LambdaQueryWrapper<SignalCommandPO> lambdaQueryWrapper = new LambdaQueryWrapper<>(); LambdaQueryWrapper<SignalCommandPO> lambdaQueryWrapper = new LambdaQueryWrapper<>();
lambdaQueryWrapper.eq(SignalCommandPO::getCrossId,jsonObject.getString("crossId")); lambdaQueryWrapper.eq(SignalCommandPO::getCrossId,jsonObject.getString("crossId"));
signalCommandPOMapper.delete(lambdaQueryWrapper); List<SignalCommandPO> signalCommandPOS = signalCommandPOMapper.selectList(lambdaQueryWrapper);
SignalCommandPO signalCommandPO = new SignalCommandPO(); if (ObjectUtil.isEmpty(signalCommandPOS)){
BeanUtil.copyProperties(signalCommandLogPO,signalCommandPO); //插入
signalCommandPOMapper.insert(signalCommandPO); SignalCommandPO signalCommandPO = new SignalCommandPO();
BeanUtil.copyProperties(signalCommandLogPO,signalCommandPO);
signalCommandPOMapper.insert(signalCommandPO);
}else {
//更新
SignalCommandPO signalCommandPO = signalCommandPOS.get(0);
signalCommandPO.setDataInfo(jsonObject.toJSONString());
signalCommandPO.setCommandType(commandType);
signalCommandPO.setCommandResult(commandResult);
signalCommandPO.setResultMessage(jsonViewObject.getMessage());
signalCommandPO.setIp(ip);
signalCommandPO.setQueryTime(queryTime);
signalCommandPO.setUpdateCount(0);
signalCommandPOMapper.update(signalCommandPO,lambdaQueryWrapper);
}
} }
} }
......
...@@ -19,6 +19,8 @@ import net.wanji.utc.common.typeenum.BasicEnum; ...@@ -19,6 +19,8 @@ import net.wanji.utc.common.typeenum.BasicEnum;
import net.wanji.utc.service.control.ControlCommandService; import net.wanji.utc.service.control.ControlCommandService;
import net.wanji.utc.service.control.ControlCommandStrategyService; import net.wanji.utc.service.control.ControlCommandStrategyService;
import net.wanji.utc.util.StringUtils; import net.wanji.utc.util.StringUtils;
import org.springframework.scheduling.annotation.Async;
import org.springframework.scheduling.annotation.EnableAsync;
import org.springframework.scheduling.annotation.Scheduled; import org.springframework.scheduling.annotation.Scheduled;
import org.springframework.stereotype.Component; import org.springframework.stereotype.Component;
...@@ -34,6 +36,7 @@ import java.util.concurrent.ConcurrentHashMap; ...@@ -34,6 +36,7 @@ import java.util.concurrent.ConcurrentHashMap;
*/ */
@Component @Component
@Slf4j @Slf4j
@EnableAsync
@SuppressWarnings("all") @SuppressWarnings("all")
public class CommandFaildTask { public class CommandFaildTask {
@Resource @Resource
...@@ -51,6 +54,7 @@ public class CommandFaildTask { ...@@ -51,6 +54,7 @@ public class CommandFaildTask {
private SignalCommandLogPOMapper signalCommandLogPOMapper; private SignalCommandLogPOMapper signalCommandLogPOMapper;
@Scheduled(cron = "0/5 * * * * ?") @Scheduled(cron = "0/5 * * * * ?")
@Async
public void commandFaildTask() throws Exception { public void commandFaildTask() throws Exception {
LambdaQueryWrapper<SignalCommandPO> lambdaQueryWrapper = new LambdaQueryWrapper<>(); LambdaQueryWrapper<SignalCommandPO> lambdaQueryWrapper = new LambdaQueryWrapper<>();
lambdaQueryWrapper.eq(SignalCommandPO::getCommandResult, 2); lambdaQueryWrapper.eq(SignalCommandPO::getCommandResult, 2);
...@@ -63,8 +67,14 @@ public class CommandFaildTask { ...@@ -63,8 +67,14 @@ public class CommandFaildTask {
if (ObjectUtil.isNull(updateCount)){ if (ObjectUtil.isNull(updateCount)){
updateCount = 0; updateCount = 0;
} }
//处理数据 try {
handlerCommand(crossId, commandType,updateCount); //处理数据
handlerCommand(crossId, commandType,updateCount);
log.info("定时任务自动恢复执行成功(不保证恢复成功),crossId={},commandType={},updateCount={}",crossId,commandType,updateCount);
} catch (Exception e) {
log.error("定时任务自动恢复报错,crossId={},commandType={},updateCount={}",crossId,commandType,updateCount);
throw new RuntimeException(e);
}
} }
} }
} }
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment