浏览代码

增加电表开关

zhengqiang 5 年之前
父节点
当前提交
ea69781f56
共有 1 个文件被更改,包括 44 次插入0 次删除
  1. 44 0
      src/main/java/com/jpsoft/smart/modules/business/controller/MobileApiController.java

+ 44 - 0
src/main/java/com/jpsoft/smart/modules/business/controller/MobileApiController.java

@@ -40,6 +40,9 @@ public class MobileApiController {
     @Autowired
     @Autowired
     private RechargeService rechargeService;
     private RechargeService rechargeService;
 
 
+    @Autowired
+    private ElectricClientInfoService electricClientInfoService;
+
     @Autowired
     @Autowired
     private DataDictionaryService dataDictionaryService;
     private DataDictionaryService dataDictionaryService;
 
 
@@ -104,6 +107,47 @@ public class MobileApiController {
         return msgResult;
         return msgResult;
     }
     }
 
 
+
+    @ApiOperation(value="打开或关闭电源")
+    @PostMapping("powerSwitch")
+    public MessageResult<MeterReceivePacket> powerSwitch(String roomId, int cmd) {
+        MessageResult<MeterReceivePacket> msgResult = new MessageResult<>();
+
+        try {
+            MeterReceivePacket mrp = null;
+
+            if(cmd==1) {
+                mrp = rechargeService.sendCommand(roomId, MeterSendPacket.ON,5, TimeUnit.SECONDS);
+            }
+            else {
+                mrp = rechargeService.sendCommand(roomId, MeterSendPacket.OFF,5,TimeUnit.SECONDS);
+            }
+
+            if(mrp!=null && mrp.isValidateResult()){
+                ElectricClientInfo clientInfo = electricClientInfoService.findOneByRoomId(roomId);
+
+                clientInfo.setActive(mrp.getState()!=1);
+
+                electricClientInfoService.update(clientInfo);
+
+                msgResult.setResult(true);
+                msgResult.setData(mrp);
+            }
+            else{
+                msgResult.setResult(false);
+                msgResult.setMessage("命令超时!");
+            }
+
+        } catch (Exception e) {
+            log.error(e.getMessage(),e);
+
+            msgResult.setMessage(e.getMessage());
+            msgResult.setResult(false);
+        }
+
+        return msgResult;
+    }
+
     @GetMapping(value="queryRoomDetail")
     @GetMapping(value="queryRoomDetail")
     public MessageResult<Map> queryRoomDetail(String roomId) {
     public MessageResult<Map> queryRoomDetail(String roomId) {
         MessageResult<Map> msgResult = new MessageResult<>();
         MessageResult<Map> msgResult = new MessageResult<>();