瀏覽代碼

清除异常考试,1型,外壳及零件,开始考试特殊check。

tom 1 月之前
父節點
當前提交
2f15ee2ca8

+ 8 - 0
ruoyi-sim/src/main/java/com/ruoyi/sim/service/impl/CommReceiveService.java

@@ -154,6 +154,14 @@ public class CommReceiveService {
         if (s == null) {
             return AjaxResult.error("没有对应模拟器!");
         }
+        // 1型 外壳及零件,特殊处理
+        if (StringUtils.equals(s.getSimType(), Sim.TYPE_0001) &&
+                StringUtils.equals(f.getFaultId(), "0001GZBW0009") &&
+                StringUtils.equals(checkValue, "00000002")) {
+            String msg = "故障部位[" + f.getBindHardwareMsg() + "][" + f.getReplaceName() + "]电池仓门被关闭,请保证电池仓门开启;";
+            l.info(msg);
+            return AjaxResult.success(msg, f);
+        }
         // 是否在 故障部位 跳过检查 白名单中。
         if (FaultConst.FAULT_SET_CHECK_PASS.contains(f.getFaultId())) {
             // 跳过检查,直接成功。

+ 15 - 3
ruoyi-sim/src/main/java/com/ruoyi/sim/service/impl/CommSendService.java

@@ -313,6 +313,14 @@ public class CommSendService {
     }
 
     /**
+     * 每30min运行一次。
+     */
+    public void scheduledSystemAutoCleanExam() {
+        l.info("scheduledSystemAutoCleanExam");
+        realExamService.systemAutoCleanExam();
+    }
+
+    /**
      * 每6hour运行一次。
      */
     public void scheduledProjectRestart() {
@@ -754,9 +762,9 @@ public class CommSendService {
             AjaxResult ar = readOneSimOneFaultCheck(seat, sim, f);
             if (!StringUtils.isBlank((String) ar.get(AjaxResult.MSG_TAG))) {
                 listNG.add(f);
-                l.info("故障部位[" + f.getBindHardwareMsg() + "][" + f.getReplaceName() + "]未正确安装;");
+                l.info("log 故障部位[" + f.getBindHardwareMsg() + "][" + f.getReplaceName() + "]未正确安装;");
             } else {
-                l.info("故障部位[" + f.getBindHardwareMsg() + "][" + f.getReplaceName() + "]安装ok;");
+                l.info("log 故障部位[" + f.getBindHardwareMsg() + "][" + f.getReplaceName() + "]安装ok;");
             }
             if (ar.isError()) {
                 return ar;
@@ -767,7 +775,11 @@ public class CommSendService {
         } else {
             StringBuilder sbNG = new StringBuilder();
             for (Fault f : listNG) {
-                sbNG.append("[" + f.getReplaceName() + "]可换件异常;<br>");
+                if (StringUtils.equals(f.getFaultId(), "0001GZBW0009")) {
+                    sbNG.append("[" + f.getReplaceName() + "]可换件异常;电池仓门被关闭,请确保电池舱门打开!<br>");
+                } else {
+                    sbNG.append("[" + f.getReplaceName() + "]可换件异常;<br>");
+                }
             }
             sbNG.append("请正确安装可换件,检查后重新开始考试!");
             return AjaxResult.error(sbNG.toString());

+ 21 - 0
ruoyi-sim/src/main/java/com/ruoyi/sim/service/impl/RealExamService.java

@@ -801,4 +801,25 @@ public class RealExamService {
         }
         return AjaxResult.success("考试数据错误");
     }
+
+    /**
+     * 清除异常考试
+     */
+    public void systemAutoCleanExam() {
+        RealExam reQ = new RealExam();
+        reQ.setExamStatus(RealExam.State.ANSWERING);
+        List<RealExam> list = selectRealExamList(reQ);
+        if (!list.isEmpty()) {
+            for (RealExam re : list) {
+                boolean timeout = checkRealExamIsTimeout(re.getExamId());
+                RealExamCollection rec = realExamCollectionService.selectRealExamCollectionByExamCollectionId(re.getExamCollectionId());
+                if (rec != null &&
+                        StringUtils.equals(rec.getExamCollectionType(), RealExamCollection.Type.SELF_EXERCISE) &&
+                        timeout) {
+                    re.setExamStatus(RealExam.State.SUBMITTED);
+                    updateRealExam(re);
+                }
+            }
+        }
+    }
 }