1
0

4 Revīzijas 7d48cd995b ... ec5327c55b

Autors SHA1 Ziņojums Datums
  tom ec5327c55b checkOneSimStateActive 主动发送报文,管理模拟器状态。 1 nedēļu atpakaļ
  tom b8146cd1eb 强制停掉所有的自主练习 所有自主练习CLOSED。 1 nedēļu atpakaļ
  tom a9ebdf51ff 修改文案。 1 nedēļu atpakaļ
  tom c70436b65e 全库备份。 1 nedēļu atpakaļ

+ 3 - 3
pla-sim/01_SQL/02_table/mx_fault.sql

@@ -11,7 +11,7 @@
  Target Server Version : 80032 (8.0.32-X-Cluster-8.4.19-20241112)
  File Encoding         : 65001
 
- Date: 15/02/2025 14:23:08
+ Date: 16/02/2025 10:02:59
 */
 
 SET NAMES utf8mb4;
@@ -179,7 +179,7 @@ INSERT INTO `mx_fault` VALUES ('0002KNYY0010', '000200040000', '', '', '', '2',
 INSERT INTO `mx_fault` VALUES ('0002KNYY0011', '000200040000', '', '', '', '2', '0002', '0', '', '0', '', '显示屏损坏故障', '', 0, NULL, NULL, NULL, NULL, NULL);
 INSERT INTO `mx_fault` VALUES ('0002KNYY0012', '000200050000', '', '', '', '2', '0002', '0', '', '0', '', '干燥管失效', '', 0, NULL, NULL, NULL, NULL, NULL);
 INSERT INTO `mx_fault` VALUES ('0002KNYY0013', '000200050000', '', '', '', '2', '0002', '0', '', '0', '', '维护管失效', '', 0, NULL, NULL, NULL, NULL, NULL);
-INSERT INTO `mx_fault` VALUES ('0002KNYY0014', '000200060000', '', '', '', '2', '0002', '0', '', '0', '', '屏幕故障', '', 0, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `mx_fault` VALUES ('0002KNYY0014', '000200060000', '', '', '', '2', '0002', '0', '', '0', '', '屏幕外观破损', '', 0, NULL, NULL, NULL, NULL, NULL);
 INSERT INTO `mx_fault` VALUES ('0002KNYY0015', '000200070000', '', '', '', '2', '0002', '0', '', '0', '', '电源模块故障', '', 0, NULL, NULL, NULL, NULL, NULL);
 INSERT INTO `mx_fault` VALUES ('0002PCFF0001', '000200010000', '', '', '', '4', '0002', '0', '', '0', '', '安装电池', '', 0, NULL, NULL, NULL, NULL, NULL);
 INSERT INTO `mx_fault` VALUES ('0002PCFF0002', '000200010000', '', '', '', '4', '0002', '0', '', '0', '', '更换电池', '', 0, NULL, NULL, NULL, NULL, NULL);
@@ -194,7 +194,7 @@ INSERT INTO `mx_fault` VALUES ('0002PCFF0010', '000200040000', '', '', '', '4',
 INSERT INTO `mx_fault` VALUES ('0002PCFF0011', '000200040000', '', '', '', '4', '0002', '0', '', '0', '', '供电电压正常,说明供电正常,认为屏幕故障,更换屏幕', '', 0, NULL, NULL, NULL, NULL, NULL);
 INSERT INTO `mx_fault` VALUES ('0002PCFF0012', '000200050000', '', '', '', '4', '0002', '0', '', '0', '', '更换干燥管', '', 0, NULL, NULL, NULL, NULL, NULL);
 INSERT INTO `mx_fault` VALUES ('0002PCFF0013', '000200050000', '', '', '', '4', '0002', '0', '', '0', '', '更换维护管', '', 0, NULL, NULL, NULL, NULL, NULL);
-INSERT INTO `mx_fault` VALUES ('0002PCFF0014', '000200060000', '', '', '', '4', '0002', '0', '', '0', '', '更换屏幕', '', 0, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `mx_fault` VALUES ('0002PCFF0014', '000200060000', '', '', '', '4', '0002', '0', '', '0', '', '更换破损屏幕', '', 0, NULL, NULL, NULL, NULL, NULL);
 INSERT INTO `mx_fault` VALUES ('0002PCFF0015', '000200070000', '', '', '', '4', '0002', '0', '', '0', '', '开机报电量低,电池电压正常,更换电源模块', '', 0, NULL, NULL, NULL, NULL, NULL);
 INSERT INTO `mx_fault` VALUES ('000300010000', '', '', '', '', '1', '0003', '0', '', '0', '', '仪器无法开机', '', 0, NULL, NULL, NULL, NULL, NULL);
 INSERT INTO `mx_fault` VALUES ('000300020000', '', '', '', '', '1', '0003', '0', '', '0', '', '开机后,显示屏无显示', '', 0, NULL, NULL, NULL, NULL, NULL);

+ 3 - 3
pla-sim/01_SQL/02_table/sim_fault.sql

@@ -11,7 +11,7 @@
  Target Server Version : 80032 (8.0.32-X-Cluster-8.4.19-20241112)
  File Encoding         : 65001
 
- Date: 15/02/2025 14:23:23
+ Date: 16/02/2025 10:02:44
 */
 
 SET NAMES utf8mb4;
@@ -179,7 +179,7 @@ INSERT INTO `sim_fault` VALUES ('0002KNYY0010', '000200040000', '', '', '', '2',
 INSERT INTO `sim_fault` VALUES ('0002KNYY0011', '000200040000', '', '', '', '2', '0002', '0', '', '0', '', '显示屏损坏故障', '', 0, NULL, NULL, NULL, NULL, NULL);
 INSERT INTO `sim_fault` VALUES ('0002KNYY0012', '000200050000', '', '', '', '2', '0002', '0', '', '0', '', '干燥管失效', '', 0, NULL, NULL, NULL, NULL, NULL);
 INSERT INTO `sim_fault` VALUES ('0002KNYY0013', '000200050000', '', '', '', '2', '0002', '0', '', '0', '', '维护管失效', '', 0, NULL, NULL, NULL, NULL, NULL);
-INSERT INTO `sim_fault` VALUES ('0002KNYY0014', '000200060000', '', '', '', '2', '0002', '0', '', '0', '', '屏幕故障', '', 0, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `sim_fault` VALUES ('0002KNYY0014', '000200060000', '', '', '', '2', '0002', '0', '', '0', '', '屏幕外观破损', '', 0, NULL, NULL, NULL, NULL, NULL);
 INSERT INTO `sim_fault` VALUES ('0002KNYY0015', '000200070000', '', '', '', '2', '0002', '0', '', '0', '', '电源模块故障', '', 0, NULL, NULL, NULL, NULL, NULL);
 INSERT INTO `sim_fault` VALUES ('0002PCFF0001', '000200010000', '', '', '', '4', '0002', '0', '', '0', '', '安装电池', '', 0, NULL, NULL, NULL, NULL, NULL);
 INSERT INTO `sim_fault` VALUES ('0002PCFF0002', '000200010000', '', '', '', '4', '0002', '0', '', '0', '', '更换电池', '', 0, NULL, NULL, NULL, NULL, NULL);
@@ -194,7 +194,7 @@ INSERT INTO `sim_fault` VALUES ('0002PCFF0010', '000200040000', '', '', '', '4',
 INSERT INTO `sim_fault` VALUES ('0002PCFF0011', '000200040000', '', '', '', '4', '0002', '0', '', '0', '', '供电电压正常,说明供电正常,认为屏幕故障,更换屏幕', '', 0, NULL, NULL, NULL, NULL, NULL);
 INSERT INTO `sim_fault` VALUES ('0002PCFF0012', '000200050000', '', '', '', '4', '0002', '0', '', '0', '', '更换干燥管', '', 0, NULL, NULL, NULL, NULL, NULL);
 INSERT INTO `sim_fault` VALUES ('0002PCFF0013', '000200050000', '', '', '', '4', '0002', '0', '', '0', '', '更换维护管', '', 0, NULL, NULL, NULL, NULL, NULL);
-INSERT INTO `sim_fault` VALUES ('0002PCFF0014', '000200060000', '', '', '', '4', '0002', '0', '', '0', '', '更换屏幕', '', 0, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `sim_fault` VALUES ('0002PCFF0014', '000200060000', '', '', '', '4', '0002', '0', '', '0', '', '更换破损屏幕', '', 0, NULL, NULL, NULL, NULL, NULL);
 INSERT INTO `sim_fault` VALUES ('0002PCFF0015', '000200070000', '', '', '', '4', '0002', '0', '', '0', '', '开机报电量低,电池电压正常,更换电源模块', '', 0, NULL, NULL, NULL, NULL, NULL);
 INSERT INTO `sim_fault` VALUES ('000300010000', '', '', '', '', '1', '0003', '0', '', '0', '', '仪器无法开机', '', 0, NULL, NULL, NULL, NULL, NULL);
 INSERT INTO `sim_fault` VALUES ('000300020000', '', '', '', '', '1', '0003', '0', '', '0', '', '开机后,显示屏无显示', '', 0, NULL, NULL, NULL, NULL, NULL);

Failā izmaiņas netiks attēlotas, jo tās ir par lielu
+ 18 - 18
pla-sim/01_SQL/03_dev_backup/pla-chem-sim-dev-1.sql


+ 31 - 9
ruoyi-sim/src/main/java/com/ruoyi/sim/service/impl/CommSendService.java

@@ -125,8 +125,11 @@ public class CommSendService {
         }
         //
         Sim s = simService.uniqueBySimNum(simNum);
-        if (s == null || !Sim.State.ONLINE.equals(s.getSimState())) {
-            return AjaxResult.error("未连接维修模拟器,请检查连接!");
+        {
+            AjaxResult arE3 = checkOneSimStateActive(s);
+            if (arE3.isError()) {
+                return arE3;
+            }
         }
         // todo: aj改造
         readOneSimAtLastByDebug(s);
@@ -140,7 +143,6 @@ public class CommSendService {
     }
 
     /**
-     *
      * 计算减分(不包括超时)。汇总到deduction_total_score字段。
      *
      * @param realExamId
@@ -156,7 +158,6 @@ public class CommSendService {
         realExamService.updateOneState(realExamId, RealExam.State.GOT_REPORT);
     }
 
-
     /**
      * todo:????
      * 定时任务。
@@ -246,6 +247,21 @@ public class CommSendService {
     }
 
     /**
+     * 主动更新模拟器状态。
+     *
+     * @param s
+     * @return
+     */
+    public AjaxResult checkOneSimStateActive(final Sim s) {
+        checkOneSimState(s, true);
+        // 如果模拟器离线
+        if (s == null || !Sim.State.ONLINE.equals(s.getSimState())) {
+            return AjaxResult.error("未连接模拟器,请检查连接!");
+        }
+        return AjaxResult.success();
+    }
+
+    /**
      * @param s
      */
     public void checkOneSimState(final Sim s, final boolean important) {
@@ -398,6 +414,12 @@ public class CommSendService {
      */
     public AjaxResult debugClearAllFaultBySimNum(final String simNum) {
         Sim s = simService.uniqueBySimNum(simNum);
+        {
+            AjaxResult arE3 = checkOneSimStateActive(s);
+            if (arE3.isError()) {
+                return arE3;
+            }
+        }
         if (s == null) {
             return AjaxResult.error("清除失败,对应simNum模拟器不存在!");
         }
@@ -471,7 +493,8 @@ public class CommSendService {
      */
     public List<SimMsg> debugWriteAllFault(final String simNum) {
         List<SimMsg> list = new ArrayList<>();
-        String simType = simService.uniqueBySimNum(simNum).getSimType();
+        Sim s = simService.uniqueBySimNum(simNum);
+        String simType = s.getSimType();
         for (String b : getGZBWBySimType(simType)) {
             list.add(debugWriteOneFault(simNum, b));
         }
@@ -504,10 +527,9 @@ public class CommSendService {
         }
         // Step 1 主动查询一次模拟器状态。
         {
-            checkOneSimState(s, true);
-            // 如果模拟器离线
-            if (s == null || !Sim.State.ONLINE.equals(s.getSimState())) {
-                return AjaxResult.error("未连接模拟器,请检查连接!");
+            AjaxResult arE3 = checkOneSimStateActive(s);
+            if (arE3.isError()) {
+                return arE3;
             }
         }
         // Step 2

+ 28 - 7
ruoyi-sim/src/main/java/com/ruoyi/sim/service/impl/RealExamCollectionService.java

@@ -288,6 +288,7 @@ public class RealExamCollectionService extends Ele6RYBaseService {
     public AjaxResult open(final Long examCollectionId, final String examCollectionType) {
         // check
 
+        // todo:暂时不做唯一性检查。
 //        if (existOpened()) {
 //            return AjaxResult.error("已经有打开的考试或者练习!");
 //        }
@@ -296,19 +297,39 @@ public class RealExamCollectionService extends Ele6RYBaseService {
         // check datetime todo:时间到了
         // do.
 
-        // todo:强制停掉所有的自主练习
 
-        RealExamCollection f = selectRealExamCollectionByExamCollectionId(examCollectionId);
-        if (f == null) {
+        // 打开socket
+        AjaxResult ar1 = commSendService.openSocket();
+        if (ar1.isError()) {
+            return ar1;
+        }
+        // 更新相关数据
+
+        // todo:强制停掉所有的自主练习 所有自主练习CLOSED
+        {
+            List<RealExamCollection> list = listAllByType(RealExamCollection.Type.SELF_EXERCISE);
+            for (RealExamCollection ec : list) {
+                ec.setExamCollectionState(RealExamCollection.State.CLOSED);
+                updateRealExamCollection(ec);
+            }
+        }
+        //
+        RealExamCollection ref = selectRealExamCollectionByExamCollectionId(examCollectionId);
+        if (ref == null) {
             return AjaxResult.error("考试集合不存在!");
         }
         // 修改考试集合状态。
         {
-            f.setExamCollectionState(RealExamCollection.State.OPENED);
-            updateRealExamCollection(f);
+            ref.setExamCollectionState(RealExamCollection.State.OPENED);
+            updateRealExamCollection(ref);
         }
-        // 打开socket
-        return commSendService.openSocket();
+        return AjaxResult.success("开启连接成功!");
+    }
+
+    public List<RealExamCollection> listAllByType(String examCollectionType) {
+        RealExamCollection q = new RealExamCollection();
+        q.setExamCollectionType(examCollectionType);
+        return selectRealExamCollectionList(q);
     }
 
     /**

+ 8 - 6
ruoyi-sim/src/main/java/com/ruoyi/sim/service/impl/RealExamService.java

@@ -309,10 +309,9 @@ public class RealExamService {
         Sim s = simService.selectSimBySimId(re.getSimId());
         // Step 1 主动查询一次模拟器状态。获取模拟器在线/离线状态。
         {
-            commSendService.checkOneSimState(s, true);
-            // 如果模拟器离线
-            if (s == null || !Sim.State.ONLINE.equals(s.getSimState())) {
-                return AjaxResult.error("未连接模拟器,请检查连接!");
+            AjaxResult arE3 = commSendService.checkOneSimStateActive(s);
+            if (arE3.isError()) {
+                return arE3;
             }
         }
         // Step 2 读取对应一台模拟器 所有故障部位值。检查模拟器所有的 真实的 故障部位 是否异常 或者 空值。特殊的故障部位要单独判断。
@@ -440,8 +439,11 @@ public class RealExamService {
         // 检查一下模拟器状态。
         Sim s = simService.selectSimBySimId(re.getSimId());
         // 如果模拟器离线
-        if (s == null || !Sim.State.ONLINE.equals(s.getSimState())) {
-            return AjaxResult.error("未连接模拟器,请检查连接!");
+        {
+            AjaxResult arE3 = commSendService.checkOneSimStateActive(s);
+            if (arE3.isError()) {
+                return arE3;
+            }
         }
         // 最后读取一下模拟器电阻值。
         commSendService.readOneExamAtLast(re);

Daži faili netika attēloti, jo izmaiņu fails ir pārāk liels