diff --git a/casic-iris-device/src/main/java/com/casic/missiles/modular/system/constant/DeviceConst.java b/casic-iris-device/src/main/java/com/casic/missiles/modular/system/constant/DeviceConst.java index f58e930..92cf6f8 100644 --- a/casic-iris-device/src/main/java/com/casic/missiles/modular/system/constant/DeviceConst.java +++ b/casic-iris-device/src/main/java/com/casic/missiles/modular/system/constant/DeviceConst.java @@ -21,4 +21,8 @@ */ public static final String ALWAYS_CLOSE = "alwaysClose"; + /** + * 远程开门指令 + */ + public static final String UPDATE_DB = "update"; } diff --git a/casic-iris-device/src/main/java/com/casic/missiles/modular/system/constant/DeviceConst.java b/casic-iris-device/src/main/java/com/casic/missiles/modular/system/constant/DeviceConst.java index f58e930..92cf6f8 100644 --- a/casic-iris-device/src/main/java/com/casic/missiles/modular/system/constant/DeviceConst.java +++ b/casic-iris-device/src/main/java/com/casic/missiles/modular/system/constant/DeviceConst.java @@ -21,4 +21,8 @@ */ public static final String ALWAYS_CLOSE = "alwaysClose"; + /** + * 远程开门指令 + */ + public static final String UPDATE_DB = "update"; } diff --git a/casic-iris-device/src/main/java/com/casic/missiles/modular/system/controller/DeviceController.java b/casic-iris-device/src/main/java/com/casic/missiles/modular/system/controller/DeviceController.java index 3271a10..193565d 100644 --- a/casic-iris-device/src/main/java/com/casic/missiles/modular/system/controller/DeviceController.java +++ b/casic-iris-device/src/main/java/com/casic/missiles/modular/system/controller/DeviceController.java @@ -21,6 +21,8 @@ import org.springframework.beans.factory.annotation.Autowired; import com.baomidou.mybatisplus.plugins.Page; import com.baomidou.mybatisplus.mapper.EntityWrapper; + +import java.util.ArrayList; import java.util.List; import java.util.Map; @@ -145,35 +147,24 @@ return ResponseData.success(); } -// /** -// * 远程开门 -// */ -// @RequestMapping(value = "/open", method = RequestMethod.POST) -// @ResponseBody -// public Object open(Integer id){ -// if(deviceService.remoteOpen(id)){ -// return ResponseData.success(); -// }else { -// return ResponseData.error("请求失败"); -// } -// } -// -// /** -// * 常开常闭 -// * @param id -// * @param alwaysOpen 1:常开 0:常闭 -// */ -// @RequestMapping(value = "/alwaysOpen",method = RequestMethod.POST) -// @ResponseBody -// public Object alwaysOpen(Integer id, String alwaysOpen){ -// if (ToolUtil.isEmpty(id) || ToolUtil.isEmpty(alwaysOpen)) { -// throw new GunsException(GunsExceptionEnum.REQUEST_NULL); -// } -// if(deviceService.alwaysOpen(id,alwaysOpen)){ -// return ResponseData.success(); -// }else { -// return ResponseData.error("请求失败"); -// } -// -// } + /** + * 下发更新数据库指令 + */ + @RequestMapping(value = "/updateDB",method = RequestMethod.POST) + @ResponseBody + @BussinessLog(value = "下发更新数据库指令") + public Object updateDB(@RequestParam List ids){ + List failedIds = deviceService.batchUpdateDB(ids); + if(ToolUtil.isEmpty(failedIds)){ + return ResponseData.success(); + }else{ + // id转code + List failedCodes = new ArrayList<>(); + for (Integer failedId : failedIds) { + failedCodes.add(deviceService.selectById(failedId).getDevCode()); + } + return ResponseData.error(String.join(",",failedCodes) + " 更新失败"); + } + } + } diff --git a/casic-iris-device/src/main/java/com/casic/missiles/modular/system/constant/DeviceConst.java b/casic-iris-device/src/main/java/com/casic/missiles/modular/system/constant/DeviceConst.java index f58e930..92cf6f8 100644 --- a/casic-iris-device/src/main/java/com/casic/missiles/modular/system/constant/DeviceConst.java +++ b/casic-iris-device/src/main/java/com/casic/missiles/modular/system/constant/DeviceConst.java @@ -21,4 +21,8 @@ */ public static final String ALWAYS_CLOSE = "alwaysClose"; + /** + * 远程开门指令 + */ + public static final String UPDATE_DB = "update"; } diff --git a/casic-iris-device/src/main/java/com/casic/missiles/modular/system/controller/DeviceController.java b/casic-iris-device/src/main/java/com/casic/missiles/modular/system/controller/DeviceController.java index 3271a10..193565d 100644 --- a/casic-iris-device/src/main/java/com/casic/missiles/modular/system/controller/DeviceController.java +++ b/casic-iris-device/src/main/java/com/casic/missiles/modular/system/controller/DeviceController.java @@ -21,6 +21,8 @@ import org.springframework.beans.factory.annotation.Autowired; import com.baomidou.mybatisplus.plugins.Page; import com.baomidou.mybatisplus.mapper.EntityWrapper; + +import java.util.ArrayList; import java.util.List; import java.util.Map; @@ -145,35 +147,24 @@ return ResponseData.success(); } -// /** -// * 远程开门 -// */ -// @RequestMapping(value = "/open", method = RequestMethod.POST) -// @ResponseBody -// public Object open(Integer id){ -// if(deviceService.remoteOpen(id)){ -// return ResponseData.success(); -// }else { -// return ResponseData.error("请求失败"); -// } -// } -// -// /** -// * 常开常闭 -// * @param id -// * @param alwaysOpen 1:常开 0:常闭 -// */ -// @RequestMapping(value = "/alwaysOpen",method = RequestMethod.POST) -// @ResponseBody -// public Object alwaysOpen(Integer id, String alwaysOpen){ -// if (ToolUtil.isEmpty(id) || ToolUtil.isEmpty(alwaysOpen)) { -// throw new GunsException(GunsExceptionEnum.REQUEST_NULL); -// } -// if(deviceService.alwaysOpen(id,alwaysOpen)){ -// return ResponseData.success(); -// }else { -// return ResponseData.error("请求失败"); -// } -// -// } + /** + * 下发更新数据库指令 + */ + @RequestMapping(value = "/updateDB",method = RequestMethod.POST) + @ResponseBody + @BussinessLog(value = "下发更新数据库指令") + public Object updateDB(@RequestParam List ids){ + List failedIds = deviceService.batchUpdateDB(ids); + if(ToolUtil.isEmpty(failedIds)){ + return ResponseData.success(); + }else{ + // id转code + List failedCodes = new ArrayList<>(); + for (Integer failedId : failedIds) { + failedCodes.add(deviceService.selectById(failedId).getDevCode()); + } + return ResponseData.error(String.join(",",failedCodes) + " 更新失败"); + } + } + } diff --git a/casic-iris-device/src/main/java/com/casic/missiles/modular/system/service/IDeviceService.java b/casic-iris-device/src/main/java/com/casic/missiles/modular/system/service/IDeviceService.java index 3c5dfcc..69d7d0f 100644 --- a/casic-iris-device/src/main/java/com/casic/missiles/modular/system/service/IDeviceService.java +++ b/casic-iris-device/src/main/java/com/casic/missiles/modular/system/service/IDeviceService.java @@ -20,4 +20,11 @@ Boolean remoteOpen(Integer id); Boolean clearDoorCode(String doorCode); List> selectDeviceByDoor(String doorCode,String inoutType); + + /** + * 批量下发更新数据库指令 + * @param ids 设备id列表 + * @return + */ + List batchUpdateDB(List ids); } diff --git a/casic-iris-device/src/main/java/com/casic/missiles/modular/system/constant/DeviceConst.java b/casic-iris-device/src/main/java/com/casic/missiles/modular/system/constant/DeviceConst.java index f58e930..92cf6f8 100644 --- a/casic-iris-device/src/main/java/com/casic/missiles/modular/system/constant/DeviceConst.java +++ b/casic-iris-device/src/main/java/com/casic/missiles/modular/system/constant/DeviceConst.java @@ -21,4 +21,8 @@ */ public static final String ALWAYS_CLOSE = "alwaysClose"; + /** + * 远程开门指令 + */ + public static final String UPDATE_DB = "update"; } diff --git a/casic-iris-device/src/main/java/com/casic/missiles/modular/system/controller/DeviceController.java b/casic-iris-device/src/main/java/com/casic/missiles/modular/system/controller/DeviceController.java index 3271a10..193565d 100644 --- a/casic-iris-device/src/main/java/com/casic/missiles/modular/system/controller/DeviceController.java +++ b/casic-iris-device/src/main/java/com/casic/missiles/modular/system/controller/DeviceController.java @@ -21,6 +21,8 @@ import org.springframework.beans.factory.annotation.Autowired; import com.baomidou.mybatisplus.plugins.Page; import com.baomidou.mybatisplus.mapper.EntityWrapper; + +import java.util.ArrayList; import java.util.List; import java.util.Map; @@ -145,35 +147,24 @@ return ResponseData.success(); } -// /** -// * 远程开门 -// */ -// @RequestMapping(value = "/open", method = RequestMethod.POST) -// @ResponseBody -// public Object open(Integer id){ -// if(deviceService.remoteOpen(id)){ -// return ResponseData.success(); -// }else { -// return ResponseData.error("请求失败"); -// } -// } -// -// /** -// * 常开常闭 -// * @param id -// * @param alwaysOpen 1:常开 0:常闭 -// */ -// @RequestMapping(value = "/alwaysOpen",method = RequestMethod.POST) -// @ResponseBody -// public Object alwaysOpen(Integer id, String alwaysOpen){ -// if (ToolUtil.isEmpty(id) || ToolUtil.isEmpty(alwaysOpen)) { -// throw new GunsException(GunsExceptionEnum.REQUEST_NULL); -// } -// if(deviceService.alwaysOpen(id,alwaysOpen)){ -// return ResponseData.success(); -// }else { -// return ResponseData.error("请求失败"); -// } -// -// } + /** + * 下发更新数据库指令 + */ + @RequestMapping(value = "/updateDB",method = RequestMethod.POST) + @ResponseBody + @BussinessLog(value = "下发更新数据库指令") + public Object updateDB(@RequestParam List ids){ + List failedIds = deviceService.batchUpdateDB(ids); + if(ToolUtil.isEmpty(failedIds)){ + return ResponseData.success(); + }else{ + // id转code + List failedCodes = new ArrayList<>(); + for (Integer failedId : failedIds) { + failedCodes.add(deviceService.selectById(failedId).getDevCode()); + } + return ResponseData.error(String.join(",",failedCodes) + " 更新失败"); + } + } + } diff --git a/casic-iris-device/src/main/java/com/casic/missiles/modular/system/service/IDeviceService.java b/casic-iris-device/src/main/java/com/casic/missiles/modular/system/service/IDeviceService.java index 3c5dfcc..69d7d0f 100644 --- a/casic-iris-device/src/main/java/com/casic/missiles/modular/system/service/IDeviceService.java +++ b/casic-iris-device/src/main/java/com/casic/missiles/modular/system/service/IDeviceService.java @@ -20,4 +20,11 @@ Boolean remoteOpen(Integer id); Boolean clearDoorCode(String doorCode); List> selectDeviceByDoor(String doorCode,String inoutType); + + /** + * 批量下发更新数据库指令 + * @param ids 设备id列表 + * @return + */ + List batchUpdateDB(List ids); } diff --git a/casic-iris-device/src/main/java/com/casic/missiles/modular/system/service/impl/DeviceServiceImpl.java b/casic-iris-device/src/main/java/com/casic/missiles/modular/system/service/impl/DeviceServiceImpl.java index 1cb3988..efbb939 100644 --- a/casic-iris-device/src/main/java/com/casic/missiles/modular/system/service/impl/DeviceServiceImpl.java +++ b/casic-iris-device/src/main/java/com/casic/missiles/modular/system/service/impl/DeviceServiceImpl.java @@ -8,6 +8,7 @@ import org.springframework.beans.factory.annotation.Value; import org.springframework.stereotype.Service; +import java.util.ArrayList; import java.util.List; import java.util.Map; @@ -49,4 +50,20 @@ return this.baseMapper.selectDeviceByDoor(doorCode, inoutType); } + @Override + public List batchUpdateDB(List ids) { + List failedIds = new ArrayList<>(); + for (Integer id : ids) { + Device device = this.selectById(id); + String devIp = device.getDevIp(); + Map res = SocketClientUtil.sendMessage(devIp,port,DeviceConst.UPDATE_DB); + if ((boolean)res.get("success")){ + // 成功 + }else { + // 失败 + failedIds.add(id); + } + } + return failedIds; + } }