Browse Source

完善模拟器直连界面。

tom 2 tháng trước cách đây
mục cha
commit
901b7f8435

+ 6 - 1
ruoyi-sim/src/main/java/com/ruoyi/sim/controller/HardwareCommDebugController.java

@@ -98,12 +98,17 @@ public class HardwareCommDebugController extends BaseController {
         return success(commSendService.debugWriteAllFault(seatId));
     }
 
+    /**
+     * 新版使用seatId
+     *
+     * @return
+     */
     @GetMapping(value = "/debugWriteSelectedFaultBySimNum/{seatId}/{faultIds}")
     @ApiOperation("debug下发所选故障,保存[debug_fault]表中,类似开始考试")
     public AjaxResult debugWriteSelectedFaultBySimNum(@PathVariable("seatId") final Long seatId,
                                                       @PathVariable("faultIds") final String[] faultIds,
                                                       @RequestParam final Boolean checkReplace) {
-        return commSendService.debugWriteSelectedFaultBySimNum(seatId, faultIds, checkReplace);
+        return commSendService.debugWriteSelectedFaultBySeatId(seatId, faultIds, checkReplace);
     }
 
     /**

+ 16 - 31
ruoyi-sim/src/main/java/com/ruoyi/sim/service/impl/CommReceiveService.java

@@ -11,6 +11,7 @@ import org.slf4j.LoggerFactory;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 
+import java.util.Arrays;
 import java.util.HashSet;
 
 import static com.ruoyi.sim.constant.CommConst.*;
@@ -49,7 +50,7 @@ public class CommReceiveService {
      * @param s
      * @param reF      debug模式下为null。
      * @param f
-     * @param faultIds debug模式下为null。
+     * @param faultIds debug模式必须有值
      */
     public void setFaultQuestionValue(SimMsg sm, Sim s, RealExamFault reF, Fault f, String[] faultIds) {
         // check
@@ -73,40 +74,24 @@ public class CommReceiveService {
             }
         } else {
             //
-
-            //
-            HashSet<String> fSet = new HashSet<>();
-            for (String fId : faultIds) {
-                fSet.add(fId);
-            }
-            l.info("fSet.size() = {}", fSet.size());
+            HashSet<String> fTempSet = new HashSet<>(Arrays.asList(faultIds));
+            l.info("fTempSet.toArray = {}", fTempSet.toArray());
             String faultId = f.getFaultId();
             l.info("faultId = {}", faultId);
-            DebugFault df = debugFaultService.exist(s.getSimId(), faultId);
-            if (df == null) {
-                df = new DebugFault();
-                df.setSimId(s.getSimId());
-                df.setFaultId(f.getFaultId());
-                if (fSet.contains(faultId)) {
-                    df.setFlag(DebugFault.Flag.YES);
-                } else {
-                    df.setFlag(DebugFault.Flag.NO);
-                }
-                df.setSimFaultQuestionValue(faultQuestionValue);
-                df.setSimFaultAnswerValue("");
-                df.setAnswerRight(DebugFault.AnswerRight.UNKNOWN);
-                debugFaultService.insertDebugFault(df);
+            // 不判断是否存在,因为之前已经删除所有表中数据,所以应该直接插入数据。
+            DebugFault df = new DebugFault();
+            df.setSimId(s.getSimId());
+            df.setFaultId(f.getFaultId());
+            if (fTempSet.contains(faultId)) {
+                df.setFlag(DebugFault.Flag.YES);
             } else {
-                if (fSet.contains(faultId)) {
-                    df.setFlag(DebugFault.Flag.YES);
-                } else {
-                    df.setFlag(DebugFault.Flag.NO);
-                }
-                df.setSimFaultQuestionValue(faultQuestionValue);
-                df.setSimFaultAnswerValue("");
-                df.setAnswerRight(DebugFault.AnswerRight.UNKNOWN);
-                debugFaultService.updateDebugFault(df);
+                df.setFlag(DebugFault.Flag.NO);
             }
+            df.setSimFaultQuestionValue(faultQuestionValue);
+            // 答题值为空。
+            df.setSimFaultAnswerValue("");
+            df.setAnswerRight(DebugFault.AnswerRight.UNKNOWN);
+            debugFaultService.insertDebugFault(df);
         }
     }
 

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

@@ -522,7 +522,7 @@ public class CommSendService {
      * @return
      */
     @Transactional
-    public AjaxResult debugWriteSelectedFaultBySimNum(final Long seatId, final String[] faultIds, final Boolean checkReplace) {
+    public AjaxResult debugWriteSelectedFaultBySeatId(final Long seatId, final String[] faultIds, final Boolean checkReplace) {
         // Check:seatId有效性
         {
             AjaxResult ar = debugCheckSeatId(seatId);
@@ -740,8 +740,9 @@ public class CommSendService {
     /**
      * 第一次读取,作为出题值。debug模式。
      *
+     * @param seat
      * @param sim
-     * @param faultIds
+     * @param faultIds debug模式必须有值
      */
     public void readOneSimAllFaultFirstTimeBySim(Seat seat, Sim sim, final String[] faultIds) {
         l.info("readOneSimAllFaultFirstTimeBySim s = {}", sim);
@@ -757,7 +758,7 @@ public class CommSendService {
      * @param sim
      * @param ref      debug调试模式为空。可以为空。
      * @param f
-     * @param faultIds debug调试模式为空。
+     * @param faultIds debug模式必须有值
      */
     public void readOneSimOneFaultFirstTime(Seat seat, Sim sim, RealExamFault ref, Fault f, String[] faultIds) {
         l.info("readOneSimOneFaultFirstTime");