|  | @@ -1,7 +1,6 @@
 | 
											
												
													
														|  |  package com.ruoyi.sim.service.impl;
 |  |  package com.ruoyi.sim.service.impl;
 | 
											
												
													
														|  |  
 |  |  
 | 
											
												
													
														|  |  import com.ruoyi.common.core.domain.AjaxResult;
 |  |  import com.ruoyi.common.core.domain.AjaxResult;
 | 
											
												
													
														|  | -import com.ruoyi.sim.config.SimConfig;
 |  | 
 | 
											
												
													
														|  |  import com.ruoyi.sim.constant.CommConst;
 |  |  import com.ruoyi.sim.constant.CommConst;
 | 
											
												
													
														|  |  import com.ruoyi.sim.domain.Seat;
 |  |  import com.ruoyi.sim.domain.Seat;
 | 
											
												
													
														|  |  import com.ruoyi.sim.domain.Sim;
 |  |  import com.ruoyi.sim.domain.Sim;
 | 
											
										
											
												
													
														|  | @@ -11,11 +10,13 @@ import org.slf4j.Logger;
 | 
											
												
													
														|  |  import org.slf4j.LoggerFactory;
 |  |  import org.slf4j.LoggerFactory;
 | 
											
												
													
														|  |  import org.springframework.beans.factory.annotation.Autowired;
 |  |  import org.springframework.beans.factory.annotation.Autowired;
 | 
											
												
													
														|  |  import org.springframework.stereotype.Service;
 |  |  import org.springframework.stereotype.Service;
 | 
											
												
													
														|  | 
 |  | +import org.springframework.transaction.annotation.Transactional;
 | 
											
												
													
														|  |  
 |  |  
 | 
											
												
													
														|  |  import java.io.IOException;
 |  |  import java.io.IOException;
 | 
											
												
													
														|  |  import java.net.InetAddress;
 |  |  import java.net.InetAddress;
 | 
											
												
													
														|  |  import java.net.UnknownHostException;
 |  |  import java.net.UnknownHostException;
 | 
											
												
													
														|  |  import java.util.List;
 |  |  import java.util.List;
 | 
											
												
													
														|  | 
 |  | +import java.util.Objects;
 | 
											
												
													
														|  |  
 |  |  
 | 
											
												
													
														|  |  import static com.ruoyi.sim.constant.CommConst.RETRY_COUNT_0;
 |  |  import static com.ruoyi.sim.constant.CommConst.RETRY_COUNT_0;
 | 
											
												
													
														|  |  import static com.ruoyi.sim.constant.CommConst.RETRY_COUNT_QUERY_SN_IMPORTANT;
 |  |  import static com.ruoyi.sim.constant.CommConst.RETRY_COUNT_QUERY_SN_IMPORTANT;
 | 
											
										
											
												
													
														|  | @@ -26,8 +27,6 @@ public class CommCheckService {
 | 
											
												
													
														|  |      private static final Logger l = LoggerFactory.getLogger(CommCheckService.class);
 |  |      private static final Logger l = LoggerFactory.getLogger(CommCheckService.class);
 | 
											
												
													
														|  |  
 |  |  
 | 
											
												
													
														|  |      @Autowired
 |  |      @Autowired
 | 
											
												
													
														|  | -    private SimConfig config;
 |  | 
 | 
											
												
													
														|  | -    @Autowired
 |  | 
 | 
											
												
													
														|  |      private SeatService seatService;
 |  |      private SeatService seatService;
 | 
											
												
													
														|  |      @Autowired
 |  |      @Autowired
 | 
											
												
													
														|  |      private SimService simService;
 |  |      private SimService simService;
 | 
											
										
											
												
													
														|  | @@ -37,6 +36,8 @@ public class CommCheckService {
 | 
											
												
													
														|  |      private CommSendService commSendService;
 |  |      private CommSendService commSendService;
 | 
											
												
													
														|  |      @Autowired
 |  |      @Autowired
 | 
											
												
													
														|  |      private FailedCountService failedCountService;
 |  |      private FailedCountService failedCountService;
 | 
											
												
													
														|  | 
 |  | +    @Autowired
 | 
											
												
													
														|  | 
 |  | +    private SocketService socketService;
 | 
											
												
													
														|  |  
 |  |  
 | 
											
												
													
														|  |      /**
 |  |      /**
 | 
											
												
													
														|  |       * 等同于ping命令。
 |  |       * 等同于ping命令。
 | 
											
										
											
												
													
														|  | @@ -91,6 +92,7 @@ public class CommCheckService {
 | 
											
												
													
														|  |          if (pingIsReachable(rs485Ip)) {
 |  |          if (pingIsReachable(rs485Ip)) {
 | 
											
												
													
														|  |              return AjaxResult.success();
 |  |              return AjaxResult.success();
 | 
											
												
													
														|  |          } else {
 |  |          } else {
 | 
											
												
													
														|  | 
 |  | +            // 更新SocketState
 | 
											
												
													
														|  |              seatService.updateSocketStateByRs485Ip(rs485Ip, Seat.SocketState.OFFLINE);
 |  |              seatService.updateSocketStateByRs485Ip(rs485Ip, Seat.SocketState.OFFLINE);
 | 
											
												
													
														|  |              return AjaxResult.error("RS485物联网网关[" + rs485Ip + "]无法连接!");
 |  |              return AjaxResult.error("RS485物联网网关[" + rs485Ip + "]无法连接!");
 | 
											
												
													
														|  |          }
 |  |          }
 | 
											
										
											
												
													
														|  | @@ -111,101 +113,83 @@ public class CommCheckService {
 | 
											
												
													
														|  |       * 检查一个座次状况。
 |  |       * 检查一个座次状况。
 | 
											
												
													
														|  |       * 维护 seat表-socket_state字段;
 |  |       * 维护 seat表-socket_state字段;
 | 
											
												
													
														|  |       * 维护 seat表-sim_id字段;
 |  |       * 维护 seat表-sim_id字段;
 | 
											
												
													
														|  | 
 |  | +     * 维护 sim表-Online、Offline状态;
 | 
											
												
													
														|  |       *
 |  |       *
 | 
											
												
													
														|  | -     * @param seat
 |  | 
 | 
											
												
													
														|  | 
 |  | +     * @param seat      座次
 | 
											
												
													
														|  |       * @param important true:重要的场景 开始考试 重试次数不同,也会进行序列号检查。false:不重要场景 定时巡查。
 |  |       * @param important true:重要的场景 开始考试 重试次数不同,也会进行序列号检查。false:不重要场景 定时巡查。
 | 
											
												
													
														|  |       * @return
 |  |       * @return
 | 
											
												
													
														|  |       */
 |  |       */
 | 
											
												
													
														|  | 
 |  | +    @Transactional
 | 
											
												
													
														|  |      public AjaxResult checkOneSeatState(final Seat seat, final boolean important) {
 |  |      public AjaxResult checkOneSeatState(final Seat seat, final boolean important) {
 | 
											
												
													
														|  |          // check args.
 |  |          // check args.
 | 
											
												
													
														|  |          if (seat == null) {
 |  |          if (seat == null) {
 | 
											
												
													
														|  |              throw new IllegalArgumentException("seat is null");
 |  |              throw new IllegalArgumentException("seat is null");
 | 
											
												
													
														|  |          }
 |  |          }
 | 
											
												
													
														|  |          //
 |  |          //
 | 
											
												
													
														|  | 
 |  | +        socketService.tryOpenAll();
 | 
											
												
													
														|  | 
 |  | +        //
 | 
											
												
													
														|  |          int retryTotalCount;
 |  |          int retryTotalCount;
 | 
											
												
													
														|  |          if (important) {
 |  |          if (important) {
 | 
											
												
													
														|  | -            AjaxResult ar01 = checkRouterState(config.getRouterIp());
 |  | 
 | 
											
												
													
														|  | -            if (ar01.isError()) {
 |  | 
 | 
											
												
													
														|  | -                return ar01;
 |  | 
 | 
											
												
													
														|  | -            }
 |  | 
 | 
											
												
													
														|  | -            AjaxResult ar02 = checkPingRs485State(seat.getSeatRs485Ip());
 |  | 
 | 
											
												
													
														|  | -            if (ar02.isError()) {
 |  | 
 | 
											
												
													
														|  | -                // 更新SimId
 |  | 
 | 
											
												
													
														|  | -                seatService.updateSimIdBySeatNum(seat.getSeatNum(), Seat.ID_0);
 |  | 
 | 
											
												
													
														|  | -                // 更新SocketState
 |  | 
 | 
											
												
													
														|  | -                seatService.updateSocketStateBySeatNum(seat.getSeatNum(), Seat.SocketState.OFFLINE);
 |  | 
 | 
											
												
													
														|  | -                return ar02;
 |  | 
 | 
											
												
													
														|  | -            } else {
 |  | 
 | 
											
												
													
														|  | -                // Ping通不代表在线
 |  | 
 | 
											
												
													
														|  | -            }
 |  | 
 | 
											
												
													
														|  | -            retryTotalCount = RETRY_COUNT_QUERY_SN_IMPORTANT;
 |  | 
 | 
											
												
													
														|  | 
 |  | +            retryTotalCount = CommConst.RETRY_COUNT_WHICH_SIM_IMPORTANT;
 | 
											
												
													
														|  |          } else {
 |  |          } else {
 | 
											
												
													
														|  | -            retryTotalCount = RETRY_COUNT_0;
 |  | 
 | 
											
												
													
														|  | 
 |  | +            retryTotalCount = CommConst.RETRY_COUNT_0;
 | 
											
												
													
														|  |          }
 |  |          }
 | 
											
												
													
														|  |          SimMsg smS01 = commBuildService.buildSendMsgWhichSim();
 |  |          SimMsg smS01 = commBuildService.buildSendMsgWhichSim();
 | 
											
												
													
														|  |          SimMsg smR01 = commSendService.send(smS01, seat, null, retryTotalCount, CommConst.SLEEP_SHORT);
 |  |          SimMsg smR01 = commSendService.send(smS01, seat, null, retryTotalCount, CommConst.SLEEP_SHORT);
 | 
											
												
													
														|  | -        final String simNum = CommParseUtils.subSimNum(smR01);
 |  | 
 | 
											
												
													
														|  | -        Sim sim = simService.uniqueBySimNum(simNum);
 |  | 
 | 
											
												
													
														|  | -        if (sim == null) {
 |  | 
 | 
											
												
													
														|  | -            return AjaxResult.error("找不到模拟器[" + simNum + "]对应数据。");
 |  | 
 | 
											
												
													
														|  | -        }
 |  | 
 | 
											
												
													
														|  | -        if (Sim.State.DISABLE.equals(sim.getSimState())) {
 |  | 
 | 
											
												
													
														|  | -            l.warn("sim DISABLE,模拟器被禁用,sim = {}", sim);
 |  | 
 | 
											
												
													
														|  | -            return AjaxResult.error("模拟器[" + simNum + "]被禁用");
 |  | 
 | 
											
												
													
														|  | -        }
 |  | 
 | 
											
												
													
														|  | -        if (StringUtils.isBlank(sim.getSimType()) || StringUtils.isBlank(sim.getSimNum())) {
 |  | 
 | 
											
												
													
														|  | -            l.warn("sim error data {}", sim);
 |  | 
 | 
											
												
													
														|  | -            return AjaxResult.error("模拟器数据错误。");// todo:
 |  | 
 | 
											
												
													
														|  | 
 |  | +        Integer result = smR01.getResult();
 | 
											
												
													
														|  | 
 |  | +        if (Objects.equals(result, SimMsg.Result.SUCCESS)) {
 | 
											
												
													
														|  | 
 |  | +            final String simNum = CommParseUtils.subSimNum(smR01);
 | 
											
												
													
														|  | 
 |  | +            Sim sim = simService.uniqueBySimNum(simNum);
 | 
											
												
													
														|  | 
 |  | +            if (sim == null) {
 | 
											
												
													
														|  | 
 |  | +                return AjaxResult.error("找不到模拟器[" + simNum + "]对应数据。");
 | 
											
												
													
														|  | 
 |  | +            } else {
 | 
											
												
													
														|  | 
 |  | +                l.info("在座次[{}]上发现模拟器[{}]", seat.getSeatNum(), sim.getSimNum());
 | 
											
												
													
														|  | 
 |  | +            }
 | 
											
												
													
														|  | 
 |  | +            // 更新SimId
 | 
											
												
													
														|  | 
 |  | +            seatService.updateSimIdBySeatNum(seat.getSeatNum(), sim.getSimId());
 | 
											
												
													
														|  | 
 |  | +            // 更新Sim状态
 | 
											
												
													
														|  | 
 |  | +            simService.updateSimStateBySimId(sim.getSimId(), Sim.State.ONLINE);
 | 
											
												
													
														|  | 
 |  | +            return AjaxResult.success("成功,检查一个座次[" + seat.getSeatNum() + "]OK!模拟器[" + sim.getSimNum() + "]在线。");
 | 
											
												
													
														|  | 
 |  | +        } else if (Objects.equals(result, SimMsg.Result.RECEIVE_CHECK_FAIL)) {
 | 
											
												
													
														|  | 
 |  | +            return AjaxResult.error("失败,报文回复异常。");
 | 
											
												
													
														|  | 
 |  | +        } else if (Objects.equals(result, SimMsg.Result.SOCKET_EXCEPTION)) {
 | 
											
												
													
														|  | 
 |  | +            // 更新SimId
 | 
											
												
													
														|  | 
 |  | +            seatService.updateSimIdBySeatNum(seat.getSeatNum(), Sim.ID_0);
 | 
											
												
													
														|  | 
 |  | +            return AjaxResult.success("成功,检查一个座次[" + seat.getSeatNum() + "]OK!未连接模拟器。");
 | 
											
												
													
														|  |          }
 |  |          }
 | 
											
												
													
														|  | -        // 更新SimId
 |  | 
 | 
											
												
													
														|  | -        seatService.updateSimIdBySeatNum(seat.getSeatNum(), sim.getSimId());
 |  | 
 | 
											
												
													
														|  | -        return AjaxResult.success("成功,检查一个座次[" + seat.getSeatNum() + "]OK!");
 |  | 
 | 
											
												
													
														|  | 
 |  | +        return AjaxResult.error("失败");
 | 
											
												
													
														|  |      }
 |  |      }
 | 
											
												
													
														|  |  
 |  |  
 | 
											
												
													
														|  |      /**
 |  |      /**
 | 
											
												
													
														|  | -     * 默认Seat中已经有CurrentSimId数据
 |  | 
 | 
											
												
													
														|  | 
 |  | +     * 纯数据库查询,模拟器是否在线。
 | 
											
												
													
														|  | 
 |  | +     * 模拟器是否被禁用。
 | 
											
												
													
														|  |       *
 |  |       *
 | 
											
												
													
														|  | -     * @param seat
 |  | 
 | 
											
												
													
														|  | -     * @param important
 |  | 
 | 
											
												
													
														|  | 
 |  | +     * @param simId
 | 
											
												
													
														|  |       * @return
 |  |       * @return
 | 
											
												
													
														|  |       */
 |  |       */
 | 
											
												
													
														|  | -    public AjaxResult checkOneSimState(final Seat seat, final boolean important) {
 |  | 
 | 
											
												
													
														|  | -        // check args.
 |  | 
 | 
											
												
													
														|  | -        if (seat == null) {
 |  | 
 | 
											
												
													
														|  | -            throw new IllegalArgumentException("seat is null");
 |  | 
 | 
											
												
													
														|  | -        }
 |  | 
 | 
											
												
													
														|  | -        if (seat.getCurrentSimId() == null || Sim.ID_0.equals(seat.getCurrentSimId())) {
 |  | 
 | 
											
												
													
														|  | -            return AjaxResult.error("模拟器ID不存在!");
 |  | 
 | 
											
												
													
														|  | -        }
 |  | 
 | 
											
												
													
														|  | -        if (!simService.existBySimId(seat.getCurrentSimId())) {
 |  | 
 | 
											
												
													
														|  | -            return AjaxResult.error("模拟器ID[" + seat.getCurrentSimId() + "]不存在!");
 |  | 
 | 
											
												
													
														|  | -        }
 |  | 
 | 
											
												
													
														|  | -        //
 |  | 
 | 
											
												
													
														|  | -        int retryTotalCount;
 |  | 
 | 
											
												
													
														|  | -        if (important) {
 |  | 
 | 
											
												
													
														|  | -            retryTotalCount = RETRY_COUNT_QUERY_SN_IMPORTANT;
 |  | 
 | 
											
												
													
														|  | -        } else {
 |  | 
 | 
											
												
													
														|  | -            retryTotalCount = RETRY_COUNT_0;
 |  | 
 | 
											
												
													
														|  | -        }
 |  | 
 | 
											
												
													
														|  | -        Sim sim = simService.selectSimBySimId(seat.getCurrentSimId());
 |  | 
 | 
											
												
													
														|  | -        SimMsg smS02 = commBuildService.buildSendMsgReadSimType(sim.getSimNum());
 |  | 
 | 
											
												
													
														|  | -        SimMsg smR02 = commSendService.send(smS02, seat, sim, retryTotalCount, CommConst.SLEEP_SHORT);
 |  | 
 | 
											
												
													
														|  | -        if (StringUtils.isNotBlank(smR02.getReceiveMsg())) {
 |  | 
 | 
											
												
													
														|  | -            // 只要返回正确报文,即认为在线。
 |  | 
 | 
											
												
													
														|  | -            simService.updateSimStateBySimId(sim.getSimId(), Sim.State.ONLINE);
 |  | 
 | 
											
												
													
														|  | -            // SocketOldService实现。
 |  | 
 | 
											
												
													
														|  | -            // socketOldService.commFailCountClearOne(sim.getSimId());
 |  | 
 | 
											
												
													
														|  | -            failedCountService.reset0(seat.toSimSocketVo());
 |  | 
 | 
											
												
													
														|  | -            return AjaxResult.success("成功,检查一个模拟器[" + sim.getSimNum() + "]OK!");
 |  | 
 | 
											
												
													
														|  | 
 |  | +    public AjaxResult checkOneSimOnlineState(final Long simId) {
 | 
											
												
													
														|  | 
 |  | +        Sim sim = simService.selectSimBySimId(simId);
 | 
											
												
													
														|  | 
 |  | +        if (sim != null) {
 | 
											
												
													
														|  | 
 |  | +            switch (sim.getSimState()) {
 | 
											
												
													
														|  | 
 |  | +                case Sim.State.ONLINE: {
 | 
											
												
													
														|  | 
 |  | +                    return AjaxResult.success("模拟器[" + sim.getSimNum() + "]在线!");
 | 
											
												
													
														|  | 
 |  | +                }
 | 
											
												
													
														|  | 
 |  | +                case Sim.State.OFFLINE: {
 | 
											
												
													
														|  | 
 |  | +                    return AjaxResult.success("模拟器[" + sim.getSimNum() + "]离线!");
 | 
											
												
													
														|  | 
 |  | +                }
 | 
											
												
													
														|  | 
 |  | +                case Sim.State.DISABLE: {
 | 
											
												
													
														|  | 
 |  | +                    return AjaxResult.error("模拟器[" + sim.getSimNum() + "]禁用!");
 | 
											
												
													
														|  | 
 |  | +                }
 | 
											
												
													
														|  | 
 |  | +            }
 | 
											
												
													
														|  |          }
 |  |          }
 | 
											
												
													
														|  | -        return AjaxResult.error("失败,检查一个模拟器[" + sim.getSimNum() + "]在线状态执行错误!");
 |  | 
 | 
											
												
													
														|  | 
 |  | +        return AjaxResult.error("模拟器[" + Objects.requireNonNull(sim).getSimNum() + "]XXXX!");
 | 
											
												
													
														|  |      }
 |  |      }
 | 
											
												
													
														|  |  
 |  |  
 | 
											
												
													
														|  |      /**
 |  |      /**
 | 
											
												
													
														|  |       * 默认Seat中已经有CurrentSimId数据
 |  |       * 默认Seat中已经有CurrentSimId数据
 | 
											
												
													
														|  |       * 检查回应报文模拟器类型是否正确。
 |  |       * 检查回应报文模拟器类型是否正确。
 | 
											
												
													
														|  |       *
 |  |       *
 | 
											
												
													
														|  | -     * @param seat
 |  | 
 | 
											
												
													
														|  | 
 |  | +     * @param seat          座次
 | 
											
												
													
														|  |       * @param important
 |  |       * @param important
 | 
											
												
													
														|  |       * @param targetSimType 期望模拟器目标类型
 |  |       * @param targetSimType 期望模拟器目标类型
 | 
											
												
													
														|  |       * @return
 |  |       * @return
 | 
											
										
											
												
													
														|  | @@ -231,10 +215,10 @@ public class CommCheckService {
 | 
											
												
													
														|  |              retryTotalCount = RETRY_COUNT_0;
 |  |              retryTotalCount = RETRY_COUNT_0;
 | 
											
												
													
														|  |          }
 |  |          }
 | 
											
												
													
														|  |          Sim sim = simService.selectSimBySimId(seat.getCurrentSimId());
 |  |          Sim sim = simService.selectSimBySimId(seat.getCurrentSimId());
 | 
											
												
													
														|  | -        SimMsg smS02 = commBuildService.buildSendMsgReadSimType(sim.getSimNum());
 |  | 
 | 
											
												
													
														|  | -        SimMsg smR02 = commSendService.send(smS02, seat, sim, retryTotalCount, CommConst.SLEEP_SHORT);
 |  | 
 | 
											
												
													
														|  | -        if (StringUtils.isNotBlank(smR02.getReceiveMsg())) {
 |  | 
 | 
											
												
													
														|  | -            final String content = CommParseUtils.subContentData(smR02);
 |  | 
 | 
											
												
													
														|  | 
 |  | +        SimMsg smS = commBuildService.buildSendMsgReadSimType(sim.getSimNum());
 | 
											
												
													
														|  | 
 |  | +        SimMsg smR = commSendService.send(smS, seat, sim, retryTotalCount, CommConst.SLEEP_SHORT);
 | 
											
												
													
														|  | 
 |  | +        if (StringUtils.isNotBlank(smR.getReceiveMsg())) {
 | 
											
												
													
														|  | 
 |  | +            final String content = CommParseUtils.subContentData(smR);
 | 
											
												
													
														|  |              switch (targetSimType) {
 |  |              switch (targetSimType) {
 | 
											
												
													
														|  |                  case Sim.TYPE_0001 -> {
 |  |                  case Sim.TYPE_0001 -> {
 | 
											
												
													
														|  |                      if (content.startsWith(CommConst.TYPE_0001_SN_PREFIX) && content.endsWith(sim.getSimNum())) {
 |  |                      if (content.startsWith(CommConst.TYPE_0001_SN_PREFIX) && content.endsWith(sim.getSimNum())) {
 | 
											
										
											
												
													
														|  | @@ -264,13 +248,54 @@ public class CommCheckService {
 | 
											
												
													
														|  |      }
 |  |      }
 | 
											
												
													
														|  |  
 |  |  
 | 
											
												
													
														|  |      /**
 |  |      /**
 | 
											
												
													
														|  | 
 |  | +     * 默认Seat中已经有CurrentSimId数据
 | 
											
												
													
														|  | 
 |  | +     *
 | 
											
												
													
														|  | 
 |  | +     * @param seat
 | 
											
												
													
														|  | 
 |  | +     * @param important
 | 
											
												
													
														|  | 
 |  | +     * @return
 | 
											
												
													
														|  | 
 |  | +     */
 | 
											
												
													
														|  | 
 |  | +    @Transactional
 | 
											
												
													
														|  | 
 |  | +    public AjaxResult checkOneSimOnlineState(final Seat seat, final boolean important) {
 | 
											
												
													
														|  | 
 |  | +        // check args.
 | 
											
												
													
														|  | 
 |  | +        if (seat == null) {
 | 
											
												
													
														|  | 
 |  | +            throw new IllegalArgumentException("seat is null");
 | 
											
												
													
														|  | 
 |  | +        }
 | 
											
												
													
														|  | 
 |  | +        if (seat.getCurrentSimId() == null || Sim.ID_0.equals(seat.getCurrentSimId())) {
 | 
											
												
													
														|  | 
 |  | +            return AjaxResult.error("模拟器ID不存在!");
 | 
											
												
													
														|  | 
 |  | +        }
 | 
											
												
													
														|  | 
 |  | +        if (!simService.existBySimId(seat.getCurrentSimId())) {
 | 
											
												
													
														|  | 
 |  | +            return AjaxResult.error("模拟器ID[" + seat.getCurrentSimId() + "]不存在!");
 | 
											
												
													
														|  | 
 |  | +        }
 | 
											
												
													
														|  | 
 |  | +        //
 | 
											
												
													
														|  | 
 |  | +        int retryTotalCount;
 | 
											
												
													
														|  | 
 |  | +        if (important) {
 | 
											
												
													
														|  | 
 |  | +            retryTotalCount = RETRY_COUNT_QUERY_SN_IMPORTANT;
 | 
											
												
													
														|  | 
 |  | +        } else {
 | 
											
												
													
														|  | 
 |  | +            retryTotalCount = RETRY_COUNT_0;
 | 
											
												
													
														|  | 
 |  | +        }
 | 
											
												
													
														|  | 
 |  | +        Sim sim = simService.selectSimBySimId(seat.getCurrentSimId());
 | 
											
												
													
														|  | 
 |  | +        SimMsg smS02 = commBuildService.buildSendMsgReadSimType(sim.getSimNum());
 | 
											
												
													
														|  | 
 |  | +        SimMsg smR02 = commSendService.send(smS02, seat, sim, retryTotalCount, CommConst.SLEEP_SHORT);
 | 
											
												
													
														|  | 
 |  | +        if (StringUtils.isNotBlank(smR02.getReceiveMsg())) {
 | 
											
												
													
														|  | 
 |  | +            // 只要返回正确报文,即认为在线。
 | 
											
												
													
														|  | 
 |  | +            simService.updateSimStateBySimId(sim.getSimId(), Sim.State.ONLINE);
 | 
											
												
													
														|  | 
 |  | +            // SocketOldService实现。
 | 
											
												
													
														|  | 
 |  | +            // socketOldService.commFailCountClearOne(sim.getSimId());
 | 
											
												
													
														|  | 
 |  | +            failedCountService.reset0(seat.toSimSocketVo());
 | 
											
												
													
														|  | 
 |  | +            return AjaxResult.success("成功,检查一个模拟器[" + sim.getSimNum() + "]OK!");
 | 
											
												
													
														|  | 
 |  | +        }
 | 
											
												
													
														|  | 
 |  | +        return AjaxResult.error("失败,检查一个模拟器[" + sim.getSimNum() + "]在线状态执行错误!");
 | 
											
												
													
														|  | 
 |  | +    }
 | 
											
												
													
														|  | 
 |  | +
 | 
											
												
													
														|  | 
 |  | +    /**
 | 
											
												
													
														|  |       * [定时执行]查找所有没有被手动禁用的座次 和 座次上的模拟器。
 |  |       * [定时执行]查找所有没有被手动禁用的座次 和 座次上的模拟器。
 | 
											
												
													
														|  |       */
 |  |       */
 | 
											
												
													
														|  | -    public void checkAllSeatAndSimState() {
 |  | 
 | 
											
												
													
														|  | 
 |  | +    public AjaxResult checkAllSeatAndSimState() {
 | 
											
												
													
														|  |          List<Seat> list = seatService.listAllEnable();
 |  |          List<Seat> list = seatService.listAllEnable();
 | 
											
												
													
														|  |          list.forEach(seat -> {
 |  |          list.forEach(seat -> {
 | 
											
												
													
														|  |              checkOneSeatState(seat, false);
 |  |              checkOneSeatState(seat, false);
 | 
											
												
													
														|  | -            checkOneSimState(seat, false);
 |  | 
 | 
											
												
													
														|  | 
 |  | +            // checkOneSimState(seat, false);
 | 
											
												
													
														|  |          });
 |  |          });
 | 
											
												
													
														|  | 
 |  | +        return AjaxResult.success("检查完毕,成功!");
 | 
											
												
													
														|  |      }
 |  |      }
 | 
											
												
													
														|  |  }
 |  |  }
 |