Sfoglia il codice sorgente

debug通过simNum清除一台模拟器所有故障。基本实现。

tom 3 mesi fa
parent
commit
8dad315b94

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

@@ -54,10 +54,10 @@ public class HardwareCommDebugController extends BaseController {
         return success(commSendService.debugClearOneFault(simNum, bindHardwareMsg));
     }
 
-    @GetMapping(value = "/debugClearAllFault/{simNum}")
-    @ApiOperation("debug清除所有故障")
-    public AjaxResult debugClearAllFault(@PathVariable("simNum") final String simNum) {
-        return success(commSendService.debugClearAllFault(simNum));
+    @GetMapping(value = "/debugClearAllFaultViaSimNum/{simNum}")
+    @ApiOperation("debug通过simNum清除一台模拟器所有故障")
+    public AjaxResult debugClearAllFaultBySimNum(@PathVariable("simNum") final String simNum) {
+        return commSendService.debugClearAllFaultBySimNum(simNum);
     }
 
     @GetMapping(value = "/debugWriteOneFault/{simNum}/{bindHardwareMsg}")

+ 28 - 8
ruoyi-sim/src/main/java/com/ruoyi/sim/domain/SimMsg.java

@@ -95,6 +95,16 @@ public class SimMsg extends BaseEntity {
     @Excel(name = "重试次数")
     private Integer retryCount = 0;
 
+    /**
+     * default value false.
+     */
+    private Boolean ok = false;
+
+    /**
+     * default ""
+     */
+    private String errorMsg = "";
+
     public void setSimMsgId(Long simMsgId) {
         this.simMsgId = simMsgId;
     }
@@ -191,6 +201,22 @@ public class SimMsg extends BaseEntity {
         return retryCount;
     }
 
+    public Boolean getOk() {
+        return ok;
+    }
+
+    public void setOk(Boolean ok) {
+        this.ok = ok;
+    }
+
+    public String getErrorMsg() {
+        return errorMsg;
+    }
+
+    public void setErrorMsg(String errorMsg) {
+        this.errorMsg = errorMsg;
+    }
+
     @Override
     public String toString() {
         return new ToStringBuilder(this, ToStringStyle.MULTI_LINE_STYLE)
@@ -206,6 +232,8 @@ public class SimMsg extends BaseEntity {
                 .append("receiveMsg", getReceiveMsg())
                 .append("receiveTime", getReceiveTime())
                 .append("retryCount", getRetryCount())
+                .append("ok", getOk())
+                .append("errorMsg", getErrorMsg())
                 .append("createBy", getCreateBy())
                 .append("createTime", getCreateTime())
                 .append("updateBy", getUpdateBy())
@@ -226,12 +254,4 @@ public class SimMsg extends BaseEntity {
     public void retryCountPlus1() {
         setRetryCount(getRetryCount() + 1);
     }
-
-    public boolean isOk() {
-        return !StringUtils.isBlank(getReceiveMsg());
-    }
-
-    public boolean isNotOk() {
-        return !isOk();
-    }
 }

+ 2 - 0
ruoyi-sim/src/main/java/com/ruoyi/sim/service/impl/CommBuildService.java

@@ -151,6 +151,8 @@ public class CommBuildService {
 //            if (!receiveMsg.substring(19, 22).equals(crc.toUpperCase())) {
 //                throw new IllegalArgumentException("checkReceiveMsg length error");
 //            }
+
+            // todo: 比对校验值,不正确。
         }
         return true;
     }

+ 3 - 0
ruoyi-sim/src/main/java/com/ruoyi/sim/service/impl/CommConst.java

@@ -46,6 +46,9 @@ public interface CommConst {
      * 报文长度
      */
     int LENGTH_20 = 20;
+    /**
+     * 添加CRC后的报文长度
+     */
     int LENGTH_24 = 24;
 
     /**

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

@@ -339,13 +339,23 @@ public class CommSendService {
      * @param simNum
      * @return
      */
-    public List<SimMsg> debugClearAllFault(final String simNum) {
+    public AjaxResult debugClearAllFaultBySimNum(final String simNum) {
+        Sim s = simService.uniqueBySimNum(simNum);
+        if (s == null) {
+            return AjaxResult.error("清除失败,对应simNum模拟器不存在!");
+        }
+        if (!Sim.State.ONLINE.equals(s.getSimState())) {
+            return AjaxResult.error("清除失败,模拟器尚未在线!");
+        }
         List<SimMsg> list = new ArrayList<>();
-        String simType = simService.uniqueBySimNum(simNum).getSimType();
-        for (String b : getGZBWBySimType(simType)) {
-            list.add(debugClearOneFault(simNum, b));
+        for (String b : getGZBWBySimType(s.getSimType())) {
+            SimMsg sm = debugClearOneFault(simNum, b);
+            list.add(sm);
+            if (sm != null && !sm.getOk()) {
+
+            }
         }
-        return list;
+        return AjaxResult.success("清除成功,清除当前模拟器所有故障!");
     }
 
     /**
@@ -449,9 +459,6 @@ public class CommSendService {
         // 下发故障
         SimMsg smA1 = commBuildService.buildSendMsgWriteFault(s.getSimNum(), f.getBindHardwareMsg());
         SimMsg smA2 = send(smA1, s, RETRY_COUNT_WRITE_ONE_FAULT, SLEEP_LONG);
-        if (smA2.isOk()) {
-
-        }
     }
 
     /**

+ 16 - 0
ruoyi-sim/src/main/java/com/ruoyi/sim/service/impl/FaultService.java

@@ -275,6 +275,22 @@ public class FaultService {
         return AjaxResult.success(list2);
     }
 
+    /**
+     * todo: 修改成数据库查询。
+     * @param simType
+     * @param faultType
+     * @return
+     */
+    public List<Fault> listEnableByTypeZZZZ(final String simType, final String faultType) {
+        List<Fault> list1 = new ArrayList<>();
+        Fault q = new Fault();
+        q.setSimType(simType);
+        q.setFaultState(Fault.State.ENABLE);
+        q.setFaultType(faultType);
+        list1.addAll(selectFaultList(q));
+        return list1;
+    }
+
 
     /**
      * 根据模拟器型号,查询故障列表tree。

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

@@ -354,7 +354,7 @@ public class RealExamService {
         }
         // 检查 sim_id 是否正确存在
         {
-            if (!simService.exist(re.getSimId())) {
+            if (!simService.existBySimId(re.getSimId())) {
                 return AjaxResult.error("对应模拟器Id不存在!");
             }
         }

+ 15 - 4
ruoyi-sim/src/main/java/com/ruoyi/sim/service/impl/SimService.java

@@ -89,21 +89,32 @@ public class SimService {
 
     // -------------------------------- tom add  --------------------------------
 
-    public boolean exist(Long simId) {
+    public boolean existBySimId(final Long simId) {
         if (simId == null) {
             return false;
         }
         if (simId == 0) {
             return false;
         }
-        Sim sim = selectSimBySimId(simId);
-        if (sim == null) {
+        Sim s = selectSimBySimId(simId);
+        if (s == null) {
+            return false;
+        }
+        return true;
+    }
+
+    public boolean existBySimNum(final String simNum) {
+        if (StringUtils.isEmpty(simNum)) {
+            return false;
+        }
+        Sim s = uniqueBySimNum(simNum);
+        if (s == null) {
             return false;
         }
         return true;
     }
 
-    public Sim uniqueBySimNum(String simNum) {
+    public Sim uniqueBySimNum(final String simNum) {
         Sim q = new Sim();
         q.setSimNum(simNum);
         List<Sim> simList = simMapper.selectSimList(q);