Parcourir la source

2023-3-27 预案专用的继电器操作方法。

chaiyunlong il y a 2 ans
Parent
commit
67db4d3694

+ 7 - 0
zd-modules/zd-modules-laboratory/src/main/java/com/zd/laboratory/service/ILabControlService.java

@@ -34,6 +34,13 @@ public interface ILabControlService {
     public List<LabControlVO> selectLabControlList(LabControlVO labControl);
     public List<LabControlVO> selectLabControlList(LabControlVO labControl);
 
 
     /**
     /**
+     * 创建一个控制记录并且报错:预案专用
+     * @param hardwareVO
+     * @return
+     */
+    public void  riskCreateLabControlAndSave(LabHardware hardwareVO, Symbol.order order , Symbol.command command);
+
+    /**
      * 创建一个控制记录并且报错:手动方式
      * 创建一个控制记录并且报错:手动方式
      * @param hardwareVO
      * @param hardwareVO
      * @return
      * @return

+ 22 - 2
zd-modules/zd-modules-laboratory/src/main/java/com/zd/laboratory/service/impl/LabControlServiceImpl.java

@@ -68,11 +68,11 @@ public class LabControlServiceImpl implements ILabControlService {
     }
     }
 
 
     /**
     /**
-     * 创建一个控制记录并且报错:手动方式
+     * 创建一个控制记录并且报错:预案专用
      * @param hardwareVO
      * @param hardwareVO
      * @return
      * @return
      */
      */
-    public void  manualCreateLabControlAndSave(LabHardware hardwareVO,Symbol.order order , Symbol.command command)
+    public void  riskCreateLabControlAndSave(LabHardware hardwareVO,Symbol.order order , Symbol.command command)
     {
     {
         LabControl lab = createLab(hardwareVO, order, command);
         LabControl lab = createLab(hardwareVO, order, command);
         lab.setTriggerModes(1);
         lab.setTriggerModes(1);
@@ -86,6 +86,26 @@ public class LabControlServiceImpl implements ILabControlService {
 
 
         insertLabControl(lab);
         insertLabControl(lab);
     }
     }
+
+    /**
+     * 创建一个控制记录并且报错:手动方式
+     * @param hardwareVO
+     * @return
+     */
+    public void  manualCreateLabControlAndSave(LabHardware hardwareVO,Symbol.order order , Symbol.command command)
+    {
+        LabControl lab = createLab(hardwareVO, order, command);
+        lab.setTriggerModes(2);
+        String userName=SecurityUtils.getUsername();
+        if(StringUtils.isNotEmpty(userName)){
+            SaveUtil.setCommonAttr(lab);
+            lab.setUserName(userName);
+        }else{
+            lab.setUserName("人工操作");
+        }
+
+        insertLabControl(lab);
+    }
     /**
     /**
      * 创建一个控制记录并且报错:自动
      * 创建一个控制记录并且报错:自动
      * @param hardwareVO
      * @param hardwareVO

+ 1 - 1
zd-modules/zd-modules-laboratory/src/main/java/com/zd/laboratory/service/impl/LabRiskPlanServiceImpl.java

@@ -1511,7 +1511,7 @@ public class LabRiskPlanServiceImpl extends ServiceImpl<LabRiskPlanMapper, LabRi
         List<LabHardware> hardwareList = labHardwareMapper.selectLabHardwareListBySubject(labHardware);
         List<LabHardware> hardwareList = labHardwareMapper.selectLabHardwareListBySubject(labHardware);
         //循环执行实验室下的硬件功能
         //循环执行实验室下的硬件功能
         Optional.ofNullable(hardwareList).filter(a -> a.size() > 0).orElseGet(Collections::emptyList).stream().forEach(a -> {
         Optional.ofNullable(hardwareList).filter(a -> a.size() > 0).orElseGet(Collections::emptyList).stream().forEach(a -> {
-            subjectManagerService.control(a.getId(), Symbol.command.close);
+            subjectManagerService.riskControl(a.getId(), Symbol.command.close);
         });
         });
         return 200;
         return 200;
     }
     }

+ 36 - 1
zd-modules/zd-modules-laboratory/src/main/java/com/zd/laboratory/service/impl/LabSubjectManagerService.java

@@ -180,7 +180,7 @@ public class LabSubjectManagerService {
         }
         }
 
 
         logger.info("预案调用硬件,硬件id={},硬件名称={},硬件指令={}",labHardware.getId(), JSON.toJSONString(labHardware.getName()),JSON.toJSONString(command));
         logger.info("预案调用硬件,硬件id={},硬件名称={},硬件指令={}",labHardware.getId(), JSON.toJSONString(labHardware.getName()),JSON.toJSONString(command));
-        return ResultData.success(control(labHardware.getId(), command));
+        return ResultData.success(riskControl(labHardware.getId(), command));
 
 
         //老继电器调用方法
         //老继电器调用方法
 //        return controlService.execution(labHardware, functionStatus);
 //        return controlService.execution(labHardware, functionStatus);
@@ -192,6 +192,41 @@ public class LabSubjectManagerService {
     }
     }
 
 
     /**
     /**
+     * 控制电源开关设备 预案专用
+     *
+     * @param id
+     */
+    public Boolean riskControl(Long id, Symbol.command command) {
+        //通过设备编号获取设备详细信息
+        LabHardwareVO labHardwareVO = hardwareMapper.selectLabHardwareById(id);
+        if (labHardwareVO == null || labHardwareVO.getRelayCode() == null) {
+            logger.error("硬件不存在或未关联继电器!id:{}", id);
+            return false;
+        }
+        if (labHardwareVO.getBit() == null) {
+            logger.error("未关联继电器位!id:{},名称:{}", id, labHardwareVO.getName());
+            return false;
+        }
+        if (labHardwareVO.getHardwareType() == 2) {
+            ResultData ResultData = socketService.sendMqttCommand(labHardwareVO.getId(), labHardwareVO.getRelayCode(), command, labHardwareVO.getBit(),labHardwareVO.getSubjectId());
+            boolean equals = ResultData.getCode().equals(HttpStatus.SUCCESS);
+            if (equals) {
+                //添加记录
+                labControlService.riskCreateLabControlAndSave(labHardwareVO, Symbol.order.control, command);
+            }
+        } else {
+            ResultData ResultData = socketService.sendCommand(Symbol.order.control, labHardwareVO.getRelayCode(), command, labHardwareVO.getBit());
+            boolean equals = ResultData.getCode().equals(HttpStatus.SUCCESS);
+            if (equals) {
+                //添加记录
+                labControlService.riskCreateLabControlAndSave(labHardwareVO, Symbol.order.control, command);
+            }
+            return equals;
+        }
+        return true;
+    }
+
+    /**
      * 控制电源开关设备
      * 控制电源开关设备
      *
      *
      * @param id
      * @param id