diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/controller/PatrolLogController.java b/casic-server/src/main/java/com/casic/missiles/modular/system/controller/PatrolLogController.java index b277154..0b5a69b 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/system/controller/PatrolLogController.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/controller/PatrolLogController.java @@ -1,9 +1,20 @@ package com.casic.missiles.modular.system.controller; -import org.springframework.web.bind.annotation.RequestMapping; - -import org.springframework.web.bind.annotation.RestController; +import cn.hutool.core.util.ObjectUtil; +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.casic.missiles.core.base.controller.ExportController; +import com.casic.missiles.core.page.PageFactory; +import com.casic.missiles.modular.system.dto.PatrolLogDTO; +import com.casic.missiles.modular.system.dto.ReturnDTO; +import com.casic.missiles.modular.system.entity.PatrolLog; +import com.casic.missiles.modular.system.service.IPatrolLogService; +import com.casic.missiles.modular.system.util.ReturnUtil; +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiOperation; +import lombok.RequiredArgsConstructor; +import org.springframework.web.bind.annotation.*; /** *

@@ -13,9 +24,23 @@ * @author zt * @since 2025-03-14 */ +@Api(tags = "巡航日志管理模块") +@RequiredArgsConstructor @RestController @RequestMapping("/system/patrolLog") -public class PatrolLogController { +public class PatrolLogController extends ExportController { + private final IPatrolLogService iPatrolLogService; + + @ApiOperation("查询分页接口") + @PostMapping("/listPage") + @ResponseBody + public ReturnDTO listPage(@RequestBody PatrolLogDTO requestDTO) { + Page page = PageFactory.defaultPage(); + QueryWrapper queryWrapper = new QueryWrapper<>(); + queryWrapper.eq(ObjectUtil.isNotEmpty(requestDTO.getRouteInfoId()), "route_info_id", requestDTO.getRouteInfoId()); + queryWrapper.orderByDesc("createTime"); + return ReturnUtil.success(super.packForBT(iPatrolLogService.page(page, queryWrapper))); + } } diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/controller/PatrolLogController.java b/casic-server/src/main/java/com/casic/missiles/modular/system/controller/PatrolLogController.java index b277154..0b5a69b 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/system/controller/PatrolLogController.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/controller/PatrolLogController.java @@ -1,9 +1,20 @@ package com.casic.missiles.modular.system.controller; -import org.springframework.web.bind.annotation.RequestMapping; - -import org.springframework.web.bind.annotation.RestController; +import cn.hutool.core.util.ObjectUtil; +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.casic.missiles.core.base.controller.ExportController; +import com.casic.missiles.core.page.PageFactory; +import com.casic.missiles.modular.system.dto.PatrolLogDTO; +import com.casic.missiles.modular.system.dto.ReturnDTO; +import com.casic.missiles.modular.system.entity.PatrolLog; +import com.casic.missiles.modular.system.service.IPatrolLogService; +import com.casic.missiles.modular.system.util.ReturnUtil; +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiOperation; +import lombok.RequiredArgsConstructor; +import org.springframework.web.bind.annotation.*; /** *

@@ -13,9 +24,23 @@ * @author zt * @since 2025-03-14 */ +@Api(tags = "巡航日志管理模块") +@RequiredArgsConstructor @RestController @RequestMapping("/system/patrolLog") -public class PatrolLogController { +public class PatrolLogController extends ExportController { + private final IPatrolLogService iPatrolLogService; + + @ApiOperation("查询分页接口") + @PostMapping("/listPage") + @ResponseBody + public ReturnDTO listPage(@RequestBody PatrolLogDTO requestDTO) { + Page page = PageFactory.defaultPage(); + QueryWrapper queryWrapper = new QueryWrapper<>(); + queryWrapper.eq(ObjectUtil.isNotEmpty(requestDTO.getRouteInfoId()), "route_info_id", requestDTO.getRouteInfoId()); + queryWrapper.orderByDesc("createTime"); + return ReturnUtil.success(super.packForBT(iPatrolLogService.page(page, queryWrapper))); + } } diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/controller/ReceiveDeviceDataController.java b/casic-server/src/main/java/com/casic/missiles/modular/system/controller/ReceiveDeviceDataController.java index e0bc9c6..75ae29e 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/system/controller/ReceiveDeviceDataController.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/controller/ReceiveDeviceDataController.java @@ -34,7 +34,6 @@ CompletableFuture.runAsync(() -> { iRouteInfoService.processData(map); -// ResponseResolver.makeResponse(map); } ); return ReturnUtil.success(); diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/controller/PatrolLogController.java b/casic-server/src/main/java/com/casic/missiles/modular/system/controller/PatrolLogController.java index b277154..0b5a69b 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/system/controller/PatrolLogController.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/controller/PatrolLogController.java @@ -1,9 +1,20 @@ package com.casic.missiles.modular.system.controller; -import org.springframework.web.bind.annotation.RequestMapping; - -import org.springframework.web.bind.annotation.RestController; +import cn.hutool.core.util.ObjectUtil; +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.casic.missiles.core.base.controller.ExportController; +import com.casic.missiles.core.page.PageFactory; +import com.casic.missiles.modular.system.dto.PatrolLogDTO; +import com.casic.missiles.modular.system.dto.ReturnDTO; +import com.casic.missiles.modular.system.entity.PatrolLog; +import com.casic.missiles.modular.system.service.IPatrolLogService; +import com.casic.missiles.modular.system.util.ReturnUtil; +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiOperation; +import lombok.RequiredArgsConstructor; +import org.springframework.web.bind.annotation.*; /** *

@@ -13,9 +24,23 @@ * @author zt * @since 2025-03-14 */ +@Api(tags = "巡航日志管理模块") +@RequiredArgsConstructor @RestController @RequestMapping("/system/patrolLog") -public class PatrolLogController { +public class PatrolLogController extends ExportController { + private final IPatrolLogService iPatrolLogService; + + @ApiOperation("查询分页接口") + @PostMapping("/listPage") + @ResponseBody + public ReturnDTO listPage(@RequestBody PatrolLogDTO requestDTO) { + Page page = PageFactory.defaultPage(); + QueryWrapper queryWrapper = new QueryWrapper<>(); + queryWrapper.eq(ObjectUtil.isNotEmpty(requestDTO.getRouteInfoId()), "route_info_id", requestDTO.getRouteInfoId()); + queryWrapper.orderByDesc("createTime"); + return ReturnUtil.success(super.packForBT(iPatrolLogService.page(page, queryWrapper))); + } } diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/controller/ReceiveDeviceDataController.java b/casic-server/src/main/java/com/casic/missiles/modular/system/controller/ReceiveDeviceDataController.java index e0bc9c6..75ae29e 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/system/controller/ReceiveDeviceDataController.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/controller/ReceiveDeviceDataController.java @@ -34,7 +34,6 @@ CompletableFuture.runAsync(() -> { iRouteInfoService.processData(map); -// ResponseResolver.makeResponse(map); } ); return ReturnUtil.success(); diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/controller/RobotDogInfoController.java b/casic-server/src/main/java/com/casic/missiles/modular/system/controller/RobotDogInfoController.java index baffa6f..004b2bf 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/system/controller/RobotDogInfoController.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/controller/RobotDogInfoController.java @@ -7,9 +7,7 @@ import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.casic.missiles.core.base.controller.ExportController; import com.casic.missiles.core.page.PageFactory; -import com.casic.missiles.modular.system.dto.IdsDTO; -import com.casic.missiles.modular.system.dto.ReturnDTO; -import com.casic.missiles.modular.system.dto.RobotDogInfoDTO; +import com.casic.missiles.modular.system.dto.*; import com.casic.missiles.modular.system.entity.RobotDogInfo; import com.casic.missiles.modular.system.enums.BusinessExceptionEnum; import com.casic.missiles.modular.system.exception.BusinessException; @@ -20,7 +18,6 @@ import lombok.RequiredArgsConstructor; import org.springframework.web.bind.annotation.*; -import java.util.List; import java.util.Objects; /** @@ -46,8 +43,8 @@ Page page = PageFactory.defaultPage(); QueryWrapper queryWrapper = new QueryWrapper<>(); queryWrapper.like(ObjectUtil.isNotEmpty(requestDTO.getRobotName()), "robot_name", requestDTO.getRobotName()); - queryWrapper.eq("robot_status", "1"); - return ReturnUtil.success(super.packForBT(iRobotDogInfoService.page(page,queryWrapper))); + queryWrapper.eq("valid", "1"); + return ReturnUtil.success(super.packForBT(iRobotDogInfoService.page(page, queryWrapper))); } @ApiOperation("增加设备类型") @@ -77,5 +74,33 @@ }); return ReturnUtil.success(iRobotDogInfoService.batchDeleteDogs(idsDTO.getIds())); } + + @ApiOperation("获取机器狗下拉列表") + @PostMapping("/selectDogList") + @ResponseBody + public ReturnDTO selectDogList() { + return ReturnUtil.success(iRobotDogInfoService.selectDogList()); + } + + @ApiOperation("根据设备获取巡航线,id魏机器狗id") + @PostMapping("/selectLines") + @ResponseBody + public ReturnDTO selectLines(@RequestBody IdDTO idDTO) { + Assert.isFalse(Objects.isNull(idDTO.getId()), () -> { + throw new BusinessException(BusinessExceptionEnum.ID_NULL); + }); + return ReturnUtil.success(iRobotDogInfoService.selectLines(idDTO.getId())); + } + + + @ApiOperation("根据设备编号获取机器狗信息") + @PostMapping("/getRobotDogByCode") + @ResponseBody + public ReturnDTO getRobotDogByCode(@RequestBody RobotDogInfoDTO requestDTO) { + QueryWrapper queryWrapper = new QueryWrapper<>(); + queryWrapper.eq(ObjectUtil.isNotEmpty(requestDTO.getRobotCode()), "robot_code", requestDTO.getRobotCode()); + queryWrapper.eq("robot_status", "1"); + return ReturnUtil.success(iRobotDogInfoService.list(queryWrapper)); + } } diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/controller/PatrolLogController.java b/casic-server/src/main/java/com/casic/missiles/modular/system/controller/PatrolLogController.java index b277154..0b5a69b 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/system/controller/PatrolLogController.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/controller/PatrolLogController.java @@ -1,9 +1,20 @@ package com.casic.missiles.modular.system.controller; -import org.springframework.web.bind.annotation.RequestMapping; - -import org.springframework.web.bind.annotation.RestController; +import cn.hutool.core.util.ObjectUtil; +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.casic.missiles.core.base.controller.ExportController; +import com.casic.missiles.core.page.PageFactory; +import com.casic.missiles.modular.system.dto.PatrolLogDTO; +import com.casic.missiles.modular.system.dto.ReturnDTO; +import com.casic.missiles.modular.system.entity.PatrolLog; +import com.casic.missiles.modular.system.service.IPatrolLogService; +import com.casic.missiles.modular.system.util.ReturnUtil; +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiOperation; +import lombok.RequiredArgsConstructor; +import org.springframework.web.bind.annotation.*; /** *

@@ -13,9 +24,23 @@ * @author zt * @since 2025-03-14 */ +@Api(tags = "巡航日志管理模块") +@RequiredArgsConstructor @RestController @RequestMapping("/system/patrolLog") -public class PatrolLogController { +public class PatrolLogController extends ExportController { + private final IPatrolLogService iPatrolLogService; + + @ApiOperation("查询分页接口") + @PostMapping("/listPage") + @ResponseBody + public ReturnDTO listPage(@RequestBody PatrolLogDTO requestDTO) { + Page page = PageFactory.defaultPage(); + QueryWrapper queryWrapper = new QueryWrapper<>(); + queryWrapper.eq(ObjectUtil.isNotEmpty(requestDTO.getRouteInfoId()), "route_info_id", requestDTO.getRouteInfoId()); + queryWrapper.orderByDesc("createTime"); + return ReturnUtil.success(super.packForBT(iPatrolLogService.page(page, queryWrapper))); + } } diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/controller/ReceiveDeviceDataController.java b/casic-server/src/main/java/com/casic/missiles/modular/system/controller/ReceiveDeviceDataController.java index e0bc9c6..75ae29e 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/system/controller/ReceiveDeviceDataController.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/controller/ReceiveDeviceDataController.java @@ -34,7 +34,6 @@ CompletableFuture.runAsync(() -> { iRouteInfoService.processData(map); -// ResponseResolver.makeResponse(map); } ); return ReturnUtil.success(); diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/controller/RobotDogInfoController.java b/casic-server/src/main/java/com/casic/missiles/modular/system/controller/RobotDogInfoController.java index baffa6f..004b2bf 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/system/controller/RobotDogInfoController.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/controller/RobotDogInfoController.java @@ -7,9 +7,7 @@ import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.casic.missiles.core.base.controller.ExportController; import com.casic.missiles.core.page.PageFactory; -import com.casic.missiles.modular.system.dto.IdsDTO; -import com.casic.missiles.modular.system.dto.ReturnDTO; -import com.casic.missiles.modular.system.dto.RobotDogInfoDTO; +import com.casic.missiles.modular.system.dto.*; import com.casic.missiles.modular.system.entity.RobotDogInfo; import com.casic.missiles.modular.system.enums.BusinessExceptionEnum; import com.casic.missiles.modular.system.exception.BusinessException; @@ -20,7 +18,6 @@ import lombok.RequiredArgsConstructor; import org.springframework.web.bind.annotation.*; -import java.util.List; import java.util.Objects; /** @@ -46,8 +43,8 @@ Page page = PageFactory.defaultPage(); QueryWrapper queryWrapper = new QueryWrapper<>(); queryWrapper.like(ObjectUtil.isNotEmpty(requestDTO.getRobotName()), "robot_name", requestDTO.getRobotName()); - queryWrapper.eq("robot_status", "1"); - return ReturnUtil.success(super.packForBT(iRobotDogInfoService.page(page,queryWrapper))); + queryWrapper.eq("valid", "1"); + return ReturnUtil.success(super.packForBT(iRobotDogInfoService.page(page, queryWrapper))); } @ApiOperation("增加设备类型") @@ -77,5 +74,33 @@ }); return ReturnUtil.success(iRobotDogInfoService.batchDeleteDogs(idsDTO.getIds())); } + + @ApiOperation("获取机器狗下拉列表") + @PostMapping("/selectDogList") + @ResponseBody + public ReturnDTO selectDogList() { + return ReturnUtil.success(iRobotDogInfoService.selectDogList()); + } + + @ApiOperation("根据设备获取巡航线,id魏机器狗id") + @PostMapping("/selectLines") + @ResponseBody + public ReturnDTO selectLines(@RequestBody IdDTO idDTO) { + Assert.isFalse(Objects.isNull(idDTO.getId()), () -> { + throw new BusinessException(BusinessExceptionEnum.ID_NULL); + }); + return ReturnUtil.success(iRobotDogInfoService.selectLines(idDTO.getId())); + } + + + @ApiOperation("根据设备编号获取机器狗信息") + @PostMapping("/getRobotDogByCode") + @ResponseBody + public ReturnDTO getRobotDogByCode(@RequestBody RobotDogInfoDTO requestDTO) { + QueryWrapper queryWrapper = new QueryWrapper<>(); + queryWrapper.eq(ObjectUtil.isNotEmpty(requestDTO.getRobotCode()), "robot_code", requestDTO.getRobotCode()); + queryWrapper.eq("robot_status", "1"); + return ReturnUtil.success(iRobotDogInfoService.list(queryWrapper)); + } } diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/controller/RouteInfoController.java b/casic-server/src/main/java/com/casic/missiles/modular/system/controller/RouteInfoController.java index d6ccb8e..0a24375 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/system/controller/RouteInfoController.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/controller/RouteInfoController.java @@ -9,6 +9,7 @@ import com.casic.missiles.modular.system.dto.IdsDTO; import com.casic.missiles.modular.system.dto.ReturnDTO; import com.casic.missiles.modular.system.dto.RouteInfoDTO; +import com.casic.missiles.modular.system.dto.SelectDTO; import com.casic.missiles.modular.system.entity.RouteInfo; import com.casic.missiles.modular.system.enums.BusinessExceptionEnum; import com.casic.missiles.modular.system.exception.BusinessException; @@ -74,14 +75,26 @@ return ReturnUtil.success(iRouteInfoService.editRouteInfo(routeInfo)); } + /** + * startRecordMap: 'w/', // 开始地图录入 + * endRecordMap: 'e/', // 完成地图录入 + * startRecordRoutInfo: 'x/', // 添加巡检点 + * endRecordRoutInfo: 'c/', // 保存巡检点和地图 + * delRecordRoutInfo: 'v/', // 删除所有的巡检点和地图 + * startNavigation: 'a/', // 开始巡检 + * pauseNavigation: 's/', // 暂停巡检 + * recoverNavigation: 'd/', // 恢复巡检 + * @param command + * @param devCode + * @return + */ @ApiOperation("控制指令类型(startRecordMap-开始地图录制,endRecordMap-完成地图录制," + - "startRecordRoutInfo-开始巡检线路录入,endRecordRoutInfo-结束巡检线路录入,"+ + "startRecordRoutInfo-开始巡检线路录入,endRecordRoutInfo-结束巡检线路录入," + "startPatrol-开始巡检,stopPatrol-结束巡检") @PostMapping("/control") @ResponseBody - public ResponseDataDTO control(String command, Long robotDogId) { - iRouteInfoService.control(command, robotDogId); - return ResponseDataDTO.success(); + public ReturnDTO control(String command, String devCode) { + return ReturnUtil.success(iRouteInfoService.control(command, devCode)); } } diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/controller/PatrolLogController.java b/casic-server/src/main/java/com/casic/missiles/modular/system/controller/PatrolLogController.java index b277154..0b5a69b 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/system/controller/PatrolLogController.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/controller/PatrolLogController.java @@ -1,9 +1,20 @@ package com.casic.missiles.modular.system.controller; -import org.springframework.web.bind.annotation.RequestMapping; - -import org.springframework.web.bind.annotation.RestController; +import cn.hutool.core.util.ObjectUtil; +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.casic.missiles.core.base.controller.ExportController; +import com.casic.missiles.core.page.PageFactory; +import com.casic.missiles.modular.system.dto.PatrolLogDTO; +import com.casic.missiles.modular.system.dto.ReturnDTO; +import com.casic.missiles.modular.system.entity.PatrolLog; +import com.casic.missiles.modular.system.service.IPatrolLogService; +import com.casic.missiles.modular.system.util.ReturnUtil; +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiOperation; +import lombok.RequiredArgsConstructor; +import org.springframework.web.bind.annotation.*; /** *

@@ -13,9 +24,23 @@ * @author zt * @since 2025-03-14 */ +@Api(tags = "巡航日志管理模块") +@RequiredArgsConstructor @RestController @RequestMapping("/system/patrolLog") -public class PatrolLogController { +public class PatrolLogController extends ExportController { + private final IPatrolLogService iPatrolLogService; + + @ApiOperation("查询分页接口") + @PostMapping("/listPage") + @ResponseBody + public ReturnDTO listPage(@RequestBody PatrolLogDTO requestDTO) { + Page page = PageFactory.defaultPage(); + QueryWrapper queryWrapper = new QueryWrapper<>(); + queryWrapper.eq(ObjectUtil.isNotEmpty(requestDTO.getRouteInfoId()), "route_info_id", requestDTO.getRouteInfoId()); + queryWrapper.orderByDesc("createTime"); + return ReturnUtil.success(super.packForBT(iPatrolLogService.page(page, queryWrapper))); + } } diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/controller/ReceiveDeviceDataController.java b/casic-server/src/main/java/com/casic/missiles/modular/system/controller/ReceiveDeviceDataController.java index e0bc9c6..75ae29e 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/system/controller/ReceiveDeviceDataController.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/controller/ReceiveDeviceDataController.java @@ -34,7 +34,6 @@ CompletableFuture.runAsync(() -> { iRouteInfoService.processData(map); -// ResponseResolver.makeResponse(map); } ); return ReturnUtil.success(); diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/controller/RobotDogInfoController.java b/casic-server/src/main/java/com/casic/missiles/modular/system/controller/RobotDogInfoController.java index baffa6f..004b2bf 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/system/controller/RobotDogInfoController.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/controller/RobotDogInfoController.java @@ -7,9 +7,7 @@ import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.casic.missiles.core.base.controller.ExportController; import com.casic.missiles.core.page.PageFactory; -import com.casic.missiles.modular.system.dto.IdsDTO; -import com.casic.missiles.modular.system.dto.ReturnDTO; -import com.casic.missiles.modular.system.dto.RobotDogInfoDTO; +import com.casic.missiles.modular.system.dto.*; import com.casic.missiles.modular.system.entity.RobotDogInfo; import com.casic.missiles.modular.system.enums.BusinessExceptionEnum; import com.casic.missiles.modular.system.exception.BusinessException; @@ -20,7 +18,6 @@ import lombok.RequiredArgsConstructor; import org.springframework.web.bind.annotation.*; -import java.util.List; import java.util.Objects; /** @@ -46,8 +43,8 @@ Page page = PageFactory.defaultPage(); QueryWrapper queryWrapper = new QueryWrapper<>(); queryWrapper.like(ObjectUtil.isNotEmpty(requestDTO.getRobotName()), "robot_name", requestDTO.getRobotName()); - queryWrapper.eq("robot_status", "1"); - return ReturnUtil.success(super.packForBT(iRobotDogInfoService.page(page,queryWrapper))); + queryWrapper.eq("valid", "1"); + return ReturnUtil.success(super.packForBT(iRobotDogInfoService.page(page, queryWrapper))); } @ApiOperation("增加设备类型") @@ -77,5 +74,33 @@ }); return ReturnUtil.success(iRobotDogInfoService.batchDeleteDogs(idsDTO.getIds())); } + + @ApiOperation("获取机器狗下拉列表") + @PostMapping("/selectDogList") + @ResponseBody + public ReturnDTO selectDogList() { + return ReturnUtil.success(iRobotDogInfoService.selectDogList()); + } + + @ApiOperation("根据设备获取巡航线,id魏机器狗id") + @PostMapping("/selectLines") + @ResponseBody + public ReturnDTO selectLines(@RequestBody IdDTO idDTO) { + Assert.isFalse(Objects.isNull(idDTO.getId()), () -> { + throw new BusinessException(BusinessExceptionEnum.ID_NULL); + }); + return ReturnUtil.success(iRobotDogInfoService.selectLines(idDTO.getId())); + } + + + @ApiOperation("根据设备编号获取机器狗信息") + @PostMapping("/getRobotDogByCode") + @ResponseBody + public ReturnDTO getRobotDogByCode(@RequestBody RobotDogInfoDTO requestDTO) { + QueryWrapper queryWrapper = new QueryWrapper<>(); + queryWrapper.eq(ObjectUtil.isNotEmpty(requestDTO.getRobotCode()), "robot_code", requestDTO.getRobotCode()); + queryWrapper.eq("robot_status", "1"); + return ReturnUtil.success(iRobotDogInfoService.list(queryWrapper)); + } } diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/controller/RouteInfoController.java b/casic-server/src/main/java/com/casic/missiles/modular/system/controller/RouteInfoController.java index d6ccb8e..0a24375 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/system/controller/RouteInfoController.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/controller/RouteInfoController.java @@ -9,6 +9,7 @@ import com.casic.missiles.modular.system.dto.IdsDTO; import com.casic.missiles.modular.system.dto.ReturnDTO; import com.casic.missiles.modular.system.dto.RouteInfoDTO; +import com.casic.missiles.modular.system.dto.SelectDTO; import com.casic.missiles.modular.system.entity.RouteInfo; import com.casic.missiles.modular.system.enums.BusinessExceptionEnum; import com.casic.missiles.modular.system.exception.BusinessException; @@ -74,14 +75,26 @@ return ReturnUtil.success(iRouteInfoService.editRouteInfo(routeInfo)); } + /** + * startRecordMap: 'w/', // 开始地图录入 + * endRecordMap: 'e/', // 完成地图录入 + * startRecordRoutInfo: 'x/', // 添加巡检点 + * endRecordRoutInfo: 'c/', // 保存巡检点和地图 + * delRecordRoutInfo: 'v/', // 删除所有的巡检点和地图 + * startNavigation: 'a/', // 开始巡检 + * pauseNavigation: 's/', // 暂停巡检 + * recoverNavigation: 'd/', // 恢复巡检 + * @param command + * @param devCode + * @return + */ @ApiOperation("控制指令类型(startRecordMap-开始地图录制,endRecordMap-完成地图录制," + - "startRecordRoutInfo-开始巡检线路录入,endRecordRoutInfo-结束巡检线路录入,"+ + "startRecordRoutInfo-开始巡检线路录入,endRecordRoutInfo-结束巡检线路录入," + "startPatrol-开始巡检,stopPatrol-结束巡检") @PostMapping("/control") @ResponseBody - public ResponseDataDTO control(String command, Long robotDogId) { - iRouteInfoService.control(command, robotDogId); - return ResponseDataDTO.success(); + public ReturnDTO control(String command, String devCode) { + return ReturnUtil.success(iRouteInfoService.control(command, devCode)); } } diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/dao/RobotDogInfoMapper.java b/casic-server/src/main/java/com/casic/missiles/modular/system/dao/RobotDogInfoMapper.java index bdf4553..0bbdf6c 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/system/dao/RobotDogInfoMapper.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/dao/RobotDogInfoMapper.java @@ -1,8 +1,13 @@ package com.casic.missiles.modular.system.dao; import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.casic.missiles.modular.system.dto.SelectDTO; import com.casic.missiles.modular.system.entity.RobotDogInfo; import org.apache.ibatis.annotations.Mapper; +import org.apache.ibatis.annotations.Param; +import org.apache.ibatis.annotations.Select; + +import java.util.List; /** *

@@ -15,4 +20,11 @@ @Mapper public interface RobotDogInfoMapper extends BaseMapper { + + @Select("SELECT robot_name as `name`,id,robot_code as `code` FROM `robot_dog_info` where valid='1'") + List selectDogList(); + + @Select("SELECT route_name as `name`,id FROM `route_info` where robot_id = #{robotId} and status='1'") + List selectLines(@Param("robotId") Long robotId); + } diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/controller/PatrolLogController.java b/casic-server/src/main/java/com/casic/missiles/modular/system/controller/PatrolLogController.java index b277154..0b5a69b 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/system/controller/PatrolLogController.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/controller/PatrolLogController.java @@ -1,9 +1,20 @@ package com.casic.missiles.modular.system.controller; -import org.springframework.web.bind.annotation.RequestMapping; - -import org.springframework.web.bind.annotation.RestController; +import cn.hutool.core.util.ObjectUtil; +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.casic.missiles.core.base.controller.ExportController; +import com.casic.missiles.core.page.PageFactory; +import com.casic.missiles.modular.system.dto.PatrolLogDTO; +import com.casic.missiles.modular.system.dto.ReturnDTO; +import com.casic.missiles.modular.system.entity.PatrolLog; +import com.casic.missiles.modular.system.service.IPatrolLogService; +import com.casic.missiles.modular.system.util.ReturnUtil; +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiOperation; +import lombok.RequiredArgsConstructor; +import org.springframework.web.bind.annotation.*; /** *

@@ -13,9 +24,23 @@ * @author zt * @since 2025-03-14 */ +@Api(tags = "巡航日志管理模块") +@RequiredArgsConstructor @RestController @RequestMapping("/system/patrolLog") -public class PatrolLogController { +public class PatrolLogController extends ExportController { + private final IPatrolLogService iPatrolLogService; + + @ApiOperation("查询分页接口") + @PostMapping("/listPage") + @ResponseBody + public ReturnDTO listPage(@RequestBody PatrolLogDTO requestDTO) { + Page page = PageFactory.defaultPage(); + QueryWrapper queryWrapper = new QueryWrapper<>(); + queryWrapper.eq(ObjectUtil.isNotEmpty(requestDTO.getRouteInfoId()), "route_info_id", requestDTO.getRouteInfoId()); + queryWrapper.orderByDesc("createTime"); + return ReturnUtil.success(super.packForBT(iPatrolLogService.page(page, queryWrapper))); + } } diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/controller/ReceiveDeviceDataController.java b/casic-server/src/main/java/com/casic/missiles/modular/system/controller/ReceiveDeviceDataController.java index e0bc9c6..75ae29e 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/system/controller/ReceiveDeviceDataController.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/controller/ReceiveDeviceDataController.java @@ -34,7 +34,6 @@ CompletableFuture.runAsync(() -> { iRouteInfoService.processData(map); -// ResponseResolver.makeResponse(map); } ); return ReturnUtil.success(); diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/controller/RobotDogInfoController.java b/casic-server/src/main/java/com/casic/missiles/modular/system/controller/RobotDogInfoController.java index baffa6f..004b2bf 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/system/controller/RobotDogInfoController.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/controller/RobotDogInfoController.java @@ -7,9 +7,7 @@ import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.casic.missiles.core.base.controller.ExportController; import com.casic.missiles.core.page.PageFactory; -import com.casic.missiles.modular.system.dto.IdsDTO; -import com.casic.missiles.modular.system.dto.ReturnDTO; -import com.casic.missiles.modular.system.dto.RobotDogInfoDTO; +import com.casic.missiles.modular.system.dto.*; import com.casic.missiles.modular.system.entity.RobotDogInfo; import com.casic.missiles.modular.system.enums.BusinessExceptionEnum; import com.casic.missiles.modular.system.exception.BusinessException; @@ -20,7 +18,6 @@ import lombok.RequiredArgsConstructor; import org.springframework.web.bind.annotation.*; -import java.util.List; import java.util.Objects; /** @@ -46,8 +43,8 @@ Page page = PageFactory.defaultPage(); QueryWrapper queryWrapper = new QueryWrapper<>(); queryWrapper.like(ObjectUtil.isNotEmpty(requestDTO.getRobotName()), "robot_name", requestDTO.getRobotName()); - queryWrapper.eq("robot_status", "1"); - return ReturnUtil.success(super.packForBT(iRobotDogInfoService.page(page,queryWrapper))); + queryWrapper.eq("valid", "1"); + return ReturnUtil.success(super.packForBT(iRobotDogInfoService.page(page, queryWrapper))); } @ApiOperation("增加设备类型") @@ -77,5 +74,33 @@ }); return ReturnUtil.success(iRobotDogInfoService.batchDeleteDogs(idsDTO.getIds())); } + + @ApiOperation("获取机器狗下拉列表") + @PostMapping("/selectDogList") + @ResponseBody + public ReturnDTO selectDogList() { + return ReturnUtil.success(iRobotDogInfoService.selectDogList()); + } + + @ApiOperation("根据设备获取巡航线,id魏机器狗id") + @PostMapping("/selectLines") + @ResponseBody + public ReturnDTO selectLines(@RequestBody IdDTO idDTO) { + Assert.isFalse(Objects.isNull(idDTO.getId()), () -> { + throw new BusinessException(BusinessExceptionEnum.ID_NULL); + }); + return ReturnUtil.success(iRobotDogInfoService.selectLines(idDTO.getId())); + } + + + @ApiOperation("根据设备编号获取机器狗信息") + @PostMapping("/getRobotDogByCode") + @ResponseBody + public ReturnDTO getRobotDogByCode(@RequestBody RobotDogInfoDTO requestDTO) { + QueryWrapper queryWrapper = new QueryWrapper<>(); + queryWrapper.eq(ObjectUtil.isNotEmpty(requestDTO.getRobotCode()), "robot_code", requestDTO.getRobotCode()); + queryWrapper.eq("robot_status", "1"); + return ReturnUtil.success(iRobotDogInfoService.list(queryWrapper)); + } } diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/controller/RouteInfoController.java b/casic-server/src/main/java/com/casic/missiles/modular/system/controller/RouteInfoController.java index d6ccb8e..0a24375 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/system/controller/RouteInfoController.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/controller/RouteInfoController.java @@ -9,6 +9,7 @@ import com.casic.missiles.modular.system.dto.IdsDTO; import com.casic.missiles.modular.system.dto.ReturnDTO; import com.casic.missiles.modular.system.dto.RouteInfoDTO; +import com.casic.missiles.modular.system.dto.SelectDTO; import com.casic.missiles.modular.system.entity.RouteInfo; import com.casic.missiles.modular.system.enums.BusinessExceptionEnum; import com.casic.missiles.modular.system.exception.BusinessException; @@ -74,14 +75,26 @@ return ReturnUtil.success(iRouteInfoService.editRouteInfo(routeInfo)); } + /** + * startRecordMap: 'w/', // 开始地图录入 + * endRecordMap: 'e/', // 完成地图录入 + * startRecordRoutInfo: 'x/', // 添加巡检点 + * endRecordRoutInfo: 'c/', // 保存巡检点和地图 + * delRecordRoutInfo: 'v/', // 删除所有的巡检点和地图 + * startNavigation: 'a/', // 开始巡检 + * pauseNavigation: 's/', // 暂停巡检 + * recoverNavigation: 'd/', // 恢复巡检 + * @param command + * @param devCode + * @return + */ @ApiOperation("控制指令类型(startRecordMap-开始地图录制,endRecordMap-完成地图录制," + - "startRecordRoutInfo-开始巡检线路录入,endRecordRoutInfo-结束巡检线路录入,"+ + "startRecordRoutInfo-开始巡检线路录入,endRecordRoutInfo-结束巡检线路录入," + "startPatrol-开始巡检,stopPatrol-结束巡检") @PostMapping("/control") @ResponseBody - public ResponseDataDTO control(String command, Long robotDogId) { - iRouteInfoService.control(command, robotDogId); - return ResponseDataDTO.success(); + public ReturnDTO control(String command, String devCode) { + return ReturnUtil.success(iRouteInfoService.control(command, devCode)); } } diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/dao/RobotDogInfoMapper.java b/casic-server/src/main/java/com/casic/missiles/modular/system/dao/RobotDogInfoMapper.java index bdf4553..0bbdf6c 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/system/dao/RobotDogInfoMapper.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/dao/RobotDogInfoMapper.java @@ -1,8 +1,13 @@ package com.casic.missiles.modular.system.dao; import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.casic.missiles.modular.system.dto.SelectDTO; import com.casic.missiles.modular.system.entity.RobotDogInfo; import org.apache.ibatis.annotations.Mapper; +import org.apache.ibatis.annotations.Param; +import org.apache.ibatis.annotations.Select; + +import java.util.List; /** *

@@ -15,4 +20,11 @@ @Mapper public interface RobotDogInfoMapper extends BaseMapper { + + @Select("SELECT robot_name as `name`,id,robot_code as `code` FROM `robot_dog_info` where valid='1'") + List selectDogList(); + + @Select("SELECT route_name as `name`,id FROM `route_info` where robot_id = #{robotId} and status='1'") + List selectLines(@Param("robotId") Long robotId); + } diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/dao/RouteInfoMapper.java b/casic-server/src/main/java/com/casic/missiles/modular/system/dao/RouteInfoMapper.java index bae594b..844b1fe 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/system/dao/RouteInfoMapper.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/dao/RouteInfoMapper.java @@ -5,8 +5,10 @@ import com.casic.missiles.core.datascope.DataScope; import com.casic.missiles.modular.system.dto.RouteInfoDTO; import com.casic.missiles.modular.system.entity.RouteInfo; +import org.apache.ibatis.annotations.Delete; import org.apache.ibatis.annotations.Mapper; import org.apache.ibatis.annotations.Param; +import org.apache.ibatis.annotations.Select; /** *

@@ -22,4 +24,8 @@ Page listPage(@Param("page") Page page, @Param("requestDTO") RouteInfoDTO requestDTO); + @Select("SELECT ri.id FROM `route_info` ri LEFT join robot_dog_info rd on ri.robot_id= rd.id " + + "where ri.status='1' and rd.robot_code = #{devCode} limit 1") + Long getLineId(@Param("devCode") String devCode); + } diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/controller/PatrolLogController.java b/casic-server/src/main/java/com/casic/missiles/modular/system/controller/PatrolLogController.java index b277154..0b5a69b 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/system/controller/PatrolLogController.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/controller/PatrolLogController.java @@ -1,9 +1,20 @@ package com.casic.missiles.modular.system.controller; -import org.springframework.web.bind.annotation.RequestMapping; - -import org.springframework.web.bind.annotation.RestController; +import cn.hutool.core.util.ObjectUtil; +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.casic.missiles.core.base.controller.ExportController; +import com.casic.missiles.core.page.PageFactory; +import com.casic.missiles.modular.system.dto.PatrolLogDTO; +import com.casic.missiles.modular.system.dto.ReturnDTO; +import com.casic.missiles.modular.system.entity.PatrolLog; +import com.casic.missiles.modular.system.service.IPatrolLogService; +import com.casic.missiles.modular.system.util.ReturnUtil; +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiOperation; +import lombok.RequiredArgsConstructor; +import org.springframework.web.bind.annotation.*; /** *

@@ -13,9 +24,23 @@ * @author zt * @since 2025-03-14 */ +@Api(tags = "巡航日志管理模块") +@RequiredArgsConstructor @RestController @RequestMapping("/system/patrolLog") -public class PatrolLogController { +public class PatrolLogController extends ExportController { + private final IPatrolLogService iPatrolLogService; + + @ApiOperation("查询分页接口") + @PostMapping("/listPage") + @ResponseBody + public ReturnDTO listPage(@RequestBody PatrolLogDTO requestDTO) { + Page page = PageFactory.defaultPage(); + QueryWrapper queryWrapper = new QueryWrapper<>(); + queryWrapper.eq(ObjectUtil.isNotEmpty(requestDTO.getRouteInfoId()), "route_info_id", requestDTO.getRouteInfoId()); + queryWrapper.orderByDesc("createTime"); + return ReturnUtil.success(super.packForBT(iPatrolLogService.page(page, queryWrapper))); + } } diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/controller/ReceiveDeviceDataController.java b/casic-server/src/main/java/com/casic/missiles/modular/system/controller/ReceiveDeviceDataController.java index e0bc9c6..75ae29e 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/system/controller/ReceiveDeviceDataController.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/controller/ReceiveDeviceDataController.java @@ -34,7 +34,6 @@ CompletableFuture.runAsync(() -> { iRouteInfoService.processData(map); -// ResponseResolver.makeResponse(map); } ); return ReturnUtil.success(); diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/controller/RobotDogInfoController.java b/casic-server/src/main/java/com/casic/missiles/modular/system/controller/RobotDogInfoController.java index baffa6f..004b2bf 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/system/controller/RobotDogInfoController.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/controller/RobotDogInfoController.java @@ -7,9 +7,7 @@ import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.casic.missiles.core.base.controller.ExportController; import com.casic.missiles.core.page.PageFactory; -import com.casic.missiles.modular.system.dto.IdsDTO; -import com.casic.missiles.modular.system.dto.ReturnDTO; -import com.casic.missiles.modular.system.dto.RobotDogInfoDTO; +import com.casic.missiles.modular.system.dto.*; import com.casic.missiles.modular.system.entity.RobotDogInfo; import com.casic.missiles.modular.system.enums.BusinessExceptionEnum; import com.casic.missiles.modular.system.exception.BusinessException; @@ -20,7 +18,6 @@ import lombok.RequiredArgsConstructor; import org.springframework.web.bind.annotation.*; -import java.util.List; import java.util.Objects; /** @@ -46,8 +43,8 @@ Page page = PageFactory.defaultPage(); QueryWrapper queryWrapper = new QueryWrapper<>(); queryWrapper.like(ObjectUtil.isNotEmpty(requestDTO.getRobotName()), "robot_name", requestDTO.getRobotName()); - queryWrapper.eq("robot_status", "1"); - return ReturnUtil.success(super.packForBT(iRobotDogInfoService.page(page,queryWrapper))); + queryWrapper.eq("valid", "1"); + return ReturnUtil.success(super.packForBT(iRobotDogInfoService.page(page, queryWrapper))); } @ApiOperation("增加设备类型") @@ -77,5 +74,33 @@ }); return ReturnUtil.success(iRobotDogInfoService.batchDeleteDogs(idsDTO.getIds())); } + + @ApiOperation("获取机器狗下拉列表") + @PostMapping("/selectDogList") + @ResponseBody + public ReturnDTO selectDogList() { + return ReturnUtil.success(iRobotDogInfoService.selectDogList()); + } + + @ApiOperation("根据设备获取巡航线,id魏机器狗id") + @PostMapping("/selectLines") + @ResponseBody + public ReturnDTO selectLines(@RequestBody IdDTO idDTO) { + Assert.isFalse(Objects.isNull(idDTO.getId()), () -> { + throw new BusinessException(BusinessExceptionEnum.ID_NULL); + }); + return ReturnUtil.success(iRobotDogInfoService.selectLines(idDTO.getId())); + } + + + @ApiOperation("根据设备编号获取机器狗信息") + @PostMapping("/getRobotDogByCode") + @ResponseBody + public ReturnDTO getRobotDogByCode(@RequestBody RobotDogInfoDTO requestDTO) { + QueryWrapper queryWrapper = new QueryWrapper<>(); + queryWrapper.eq(ObjectUtil.isNotEmpty(requestDTO.getRobotCode()), "robot_code", requestDTO.getRobotCode()); + queryWrapper.eq("robot_status", "1"); + return ReturnUtil.success(iRobotDogInfoService.list(queryWrapper)); + } } diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/controller/RouteInfoController.java b/casic-server/src/main/java/com/casic/missiles/modular/system/controller/RouteInfoController.java index d6ccb8e..0a24375 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/system/controller/RouteInfoController.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/controller/RouteInfoController.java @@ -9,6 +9,7 @@ import com.casic.missiles.modular.system.dto.IdsDTO; import com.casic.missiles.modular.system.dto.ReturnDTO; import com.casic.missiles.modular.system.dto.RouteInfoDTO; +import com.casic.missiles.modular.system.dto.SelectDTO; import com.casic.missiles.modular.system.entity.RouteInfo; import com.casic.missiles.modular.system.enums.BusinessExceptionEnum; import com.casic.missiles.modular.system.exception.BusinessException; @@ -74,14 +75,26 @@ return ReturnUtil.success(iRouteInfoService.editRouteInfo(routeInfo)); } + /** + * startRecordMap: 'w/', // 开始地图录入 + * endRecordMap: 'e/', // 完成地图录入 + * startRecordRoutInfo: 'x/', // 添加巡检点 + * endRecordRoutInfo: 'c/', // 保存巡检点和地图 + * delRecordRoutInfo: 'v/', // 删除所有的巡检点和地图 + * startNavigation: 'a/', // 开始巡检 + * pauseNavigation: 's/', // 暂停巡检 + * recoverNavigation: 'd/', // 恢复巡检 + * @param command + * @param devCode + * @return + */ @ApiOperation("控制指令类型(startRecordMap-开始地图录制,endRecordMap-完成地图录制," + - "startRecordRoutInfo-开始巡检线路录入,endRecordRoutInfo-结束巡检线路录入,"+ + "startRecordRoutInfo-开始巡检线路录入,endRecordRoutInfo-结束巡检线路录入," + "startPatrol-开始巡检,stopPatrol-结束巡检") @PostMapping("/control") @ResponseBody - public ResponseDataDTO control(String command, Long robotDogId) { - iRouteInfoService.control(command, robotDogId); - return ResponseDataDTO.success(); + public ReturnDTO control(String command, String devCode) { + return ReturnUtil.success(iRouteInfoService.control(command, devCode)); } } diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/dao/RobotDogInfoMapper.java b/casic-server/src/main/java/com/casic/missiles/modular/system/dao/RobotDogInfoMapper.java index bdf4553..0bbdf6c 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/system/dao/RobotDogInfoMapper.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/dao/RobotDogInfoMapper.java @@ -1,8 +1,13 @@ package com.casic.missiles.modular.system.dao; import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.casic.missiles.modular.system.dto.SelectDTO; import com.casic.missiles.modular.system.entity.RobotDogInfo; import org.apache.ibatis.annotations.Mapper; +import org.apache.ibatis.annotations.Param; +import org.apache.ibatis.annotations.Select; + +import java.util.List; /** *

@@ -15,4 +20,11 @@ @Mapper public interface RobotDogInfoMapper extends BaseMapper { + + @Select("SELECT robot_name as `name`,id,robot_code as `code` FROM `robot_dog_info` where valid='1'") + List selectDogList(); + + @Select("SELECT route_name as `name`,id FROM `route_info` where robot_id = #{robotId} and status='1'") + List selectLines(@Param("robotId") Long robotId); + } diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/dao/RouteInfoMapper.java b/casic-server/src/main/java/com/casic/missiles/modular/system/dao/RouteInfoMapper.java index bae594b..844b1fe 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/system/dao/RouteInfoMapper.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/dao/RouteInfoMapper.java @@ -5,8 +5,10 @@ import com.casic.missiles.core.datascope.DataScope; import com.casic.missiles.modular.system.dto.RouteInfoDTO; import com.casic.missiles.modular.system.entity.RouteInfo; +import org.apache.ibatis.annotations.Delete; import org.apache.ibatis.annotations.Mapper; import org.apache.ibatis.annotations.Param; +import org.apache.ibatis.annotations.Select; /** *

@@ -22,4 +24,8 @@ Page listPage(@Param("page") Page page, @Param("requestDTO") RouteInfoDTO requestDTO); + @Select("SELECT ri.id FROM `route_info` ri LEFT join robot_dog_info rd on ri.robot_id= rd.id " + + "where ri.status='1' and rd.robot_code = #{devCode} limit 1") + Long getLineId(@Param("devCode") String devCode); + } diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/dao/mapping/PatrolLogMapper.xml b/casic-server/src/main/java/com/casic/missiles/modular/system/dao/mapping/PatrolLogMapper.xml index 30aebdd..abeb14b 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/system/dao/mapping/PatrolLogMapper.xml +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/dao/mapping/PatrolLogMapper.xml @@ -1,6 +1,6 @@ - + diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/controller/PatrolLogController.java b/casic-server/src/main/java/com/casic/missiles/modular/system/controller/PatrolLogController.java index b277154..0b5a69b 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/system/controller/PatrolLogController.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/controller/PatrolLogController.java @@ -1,9 +1,20 @@ package com.casic.missiles.modular.system.controller; -import org.springframework.web.bind.annotation.RequestMapping; - -import org.springframework.web.bind.annotation.RestController; +import cn.hutool.core.util.ObjectUtil; +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.casic.missiles.core.base.controller.ExportController; +import com.casic.missiles.core.page.PageFactory; +import com.casic.missiles.modular.system.dto.PatrolLogDTO; +import com.casic.missiles.modular.system.dto.ReturnDTO; +import com.casic.missiles.modular.system.entity.PatrolLog; +import com.casic.missiles.modular.system.service.IPatrolLogService; +import com.casic.missiles.modular.system.util.ReturnUtil; +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiOperation; +import lombok.RequiredArgsConstructor; +import org.springframework.web.bind.annotation.*; /** *

@@ -13,9 +24,23 @@ * @author zt * @since 2025-03-14 */ +@Api(tags = "巡航日志管理模块") +@RequiredArgsConstructor @RestController @RequestMapping("/system/patrolLog") -public class PatrolLogController { +public class PatrolLogController extends ExportController { + private final IPatrolLogService iPatrolLogService; + + @ApiOperation("查询分页接口") + @PostMapping("/listPage") + @ResponseBody + public ReturnDTO listPage(@RequestBody PatrolLogDTO requestDTO) { + Page page = PageFactory.defaultPage(); + QueryWrapper queryWrapper = new QueryWrapper<>(); + queryWrapper.eq(ObjectUtil.isNotEmpty(requestDTO.getRouteInfoId()), "route_info_id", requestDTO.getRouteInfoId()); + queryWrapper.orderByDesc("createTime"); + return ReturnUtil.success(super.packForBT(iPatrolLogService.page(page, queryWrapper))); + } } diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/controller/ReceiveDeviceDataController.java b/casic-server/src/main/java/com/casic/missiles/modular/system/controller/ReceiveDeviceDataController.java index e0bc9c6..75ae29e 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/system/controller/ReceiveDeviceDataController.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/controller/ReceiveDeviceDataController.java @@ -34,7 +34,6 @@ CompletableFuture.runAsync(() -> { iRouteInfoService.processData(map); -// ResponseResolver.makeResponse(map); } ); return ReturnUtil.success(); diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/controller/RobotDogInfoController.java b/casic-server/src/main/java/com/casic/missiles/modular/system/controller/RobotDogInfoController.java index baffa6f..004b2bf 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/system/controller/RobotDogInfoController.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/controller/RobotDogInfoController.java @@ -7,9 +7,7 @@ import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.casic.missiles.core.base.controller.ExportController; import com.casic.missiles.core.page.PageFactory; -import com.casic.missiles.modular.system.dto.IdsDTO; -import com.casic.missiles.modular.system.dto.ReturnDTO; -import com.casic.missiles.modular.system.dto.RobotDogInfoDTO; +import com.casic.missiles.modular.system.dto.*; import com.casic.missiles.modular.system.entity.RobotDogInfo; import com.casic.missiles.modular.system.enums.BusinessExceptionEnum; import com.casic.missiles.modular.system.exception.BusinessException; @@ -20,7 +18,6 @@ import lombok.RequiredArgsConstructor; import org.springframework.web.bind.annotation.*; -import java.util.List; import java.util.Objects; /** @@ -46,8 +43,8 @@ Page page = PageFactory.defaultPage(); QueryWrapper queryWrapper = new QueryWrapper<>(); queryWrapper.like(ObjectUtil.isNotEmpty(requestDTO.getRobotName()), "robot_name", requestDTO.getRobotName()); - queryWrapper.eq("robot_status", "1"); - return ReturnUtil.success(super.packForBT(iRobotDogInfoService.page(page,queryWrapper))); + queryWrapper.eq("valid", "1"); + return ReturnUtil.success(super.packForBT(iRobotDogInfoService.page(page, queryWrapper))); } @ApiOperation("增加设备类型") @@ -77,5 +74,33 @@ }); return ReturnUtil.success(iRobotDogInfoService.batchDeleteDogs(idsDTO.getIds())); } + + @ApiOperation("获取机器狗下拉列表") + @PostMapping("/selectDogList") + @ResponseBody + public ReturnDTO selectDogList() { + return ReturnUtil.success(iRobotDogInfoService.selectDogList()); + } + + @ApiOperation("根据设备获取巡航线,id魏机器狗id") + @PostMapping("/selectLines") + @ResponseBody + public ReturnDTO selectLines(@RequestBody IdDTO idDTO) { + Assert.isFalse(Objects.isNull(idDTO.getId()), () -> { + throw new BusinessException(BusinessExceptionEnum.ID_NULL); + }); + return ReturnUtil.success(iRobotDogInfoService.selectLines(idDTO.getId())); + } + + + @ApiOperation("根据设备编号获取机器狗信息") + @PostMapping("/getRobotDogByCode") + @ResponseBody + public ReturnDTO getRobotDogByCode(@RequestBody RobotDogInfoDTO requestDTO) { + QueryWrapper queryWrapper = new QueryWrapper<>(); + queryWrapper.eq(ObjectUtil.isNotEmpty(requestDTO.getRobotCode()), "robot_code", requestDTO.getRobotCode()); + queryWrapper.eq("robot_status", "1"); + return ReturnUtil.success(iRobotDogInfoService.list(queryWrapper)); + } } diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/controller/RouteInfoController.java b/casic-server/src/main/java/com/casic/missiles/modular/system/controller/RouteInfoController.java index d6ccb8e..0a24375 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/system/controller/RouteInfoController.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/controller/RouteInfoController.java @@ -9,6 +9,7 @@ import com.casic.missiles.modular.system.dto.IdsDTO; import com.casic.missiles.modular.system.dto.ReturnDTO; import com.casic.missiles.modular.system.dto.RouteInfoDTO; +import com.casic.missiles.modular.system.dto.SelectDTO; import com.casic.missiles.modular.system.entity.RouteInfo; import com.casic.missiles.modular.system.enums.BusinessExceptionEnum; import com.casic.missiles.modular.system.exception.BusinessException; @@ -74,14 +75,26 @@ return ReturnUtil.success(iRouteInfoService.editRouteInfo(routeInfo)); } + /** + * startRecordMap: 'w/', // 开始地图录入 + * endRecordMap: 'e/', // 完成地图录入 + * startRecordRoutInfo: 'x/', // 添加巡检点 + * endRecordRoutInfo: 'c/', // 保存巡检点和地图 + * delRecordRoutInfo: 'v/', // 删除所有的巡检点和地图 + * startNavigation: 'a/', // 开始巡检 + * pauseNavigation: 's/', // 暂停巡检 + * recoverNavigation: 'd/', // 恢复巡检 + * @param command + * @param devCode + * @return + */ @ApiOperation("控制指令类型(startRecordMap-开始地图录制,endRecordMap-完成地图录制," + - "startRecordRoutInfo-开始巡检线路录入,endRecordRoutInfo-结束巡检线路录入,"+ + "startRecordRoutInfo-开始巡检线路录入,endRecordRoutInfo-结束巡检线路录入," + "startPatrol-开始巡检,stopPatrol-结束巡检") @PostMapping("/control") @ResponseBody - public ResponseDataDTO control(String command, Long robotDogId) { - iRouteInfoService.control(command, robotDogId); - return ResponseDataDTO.success(); + public ReturnDTO control(String command, String devCode) { + return ReturnUtil.success(iRouteInfoService.control(command, devCode)); } } diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/dao/RobotDogInfoMapper.java b/casic-server/src/main/java/com/casic/missiles/modular/system/dao/RobotDogInfoMapper.java index bdf4553..0bbdf6c 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/system/dao/RobotDogInfoMapper.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/dao/RobotDogInfoMapper.java @@ -1,8 +1,13 @@ package com.casic.missiles.modular.system.dao; import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.casic.missiles.modular.system.dto.SelectDTO; import com.casic.missiles.modular.system.entity.RobotDogInfo; import org.apache.ibatis.annotations.Mapper; +import org.apache.ibatis.annotations.Param; +import org.apache.ibatis.annotations.Select; + +import java.util.List; /** *

@@ -15,4 +20,11 @@ @Mapper public interface RobotDogInfoMapper extends BaseMapper { + + @Select("SELECT robot_name as `name`,id,robot_code as `code` FROM `robot_dog_info` where valid='1'") + List selectDogList(); + + @Select("SELECT route_name as `name`,id FROM `route_info` where robot_id = #{robotId} and status='1'") + List selectLines(@Param("robotId") Long robotId); + } diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/dao/RouteInfoMapper.java b/casic-server/src/main/java/com/casic/missiles/modular/system/dao/RouteInfoMapper.java index bae594b..844b1fe 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/system/dao/RouteInfoMapper.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/dao/RouteInfoMapper.java @@ -5,8 +5,10 @@ import com.casic.missiles.core.datascope.DataScope; import com.casic.missiles.modular.system.dto.RouteInfoDTO; import com.casic.missiles.modular.system.entity.RouteInfo; +import org.apache.ibatis.annotations.Delete; import org.apache.ibatis.annotations.Mapper; import org.apache.ibatis.annotations.Param; +import org.apache.ibatis.annotations.Select; /** *

@@ -22,4 +24,8 @@ Page listPage(@Param("page") Page page, @Param("requestDTO") RouteInfoDTO requestDTO); + @Select("SELECT ri.id FROM `route_info` ri LEFT join robot_dog_info rd on ri.robot_id= rd.id " + + "where ri.status='1' and rd.robot_code = #{devCode} limit 1") + Long getLineId(@Param("devCode") String devCode); + } diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/dao/mapping/PatrolLogMapper.xml b/casic-server/src/main/java/com/casic/missiles/modular/system/dao/mapping/PatrolLogMapper.xml index 30aebdd..abeb14b 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/system/dao/mapping/PatrolLogMapper.xml +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/dao/mapping/PatrolLogMapper.xml @@ -1,6 +1,6 @@ - + diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/dao/mapping/RobotDogInfoMapper.xml b/casic-server/src/main/java/com/casic/missiles/modular/system/dao/mapping/RobotDogInfoMapper.xml index 182ca3d..aa18c82 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/system/dao/mapping/RobotDogInfoMapper.xml +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/dao/mapping/RobotDogInfoMapper.xml @@ -1,6 +1,6 @@ - + diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/controller/PatrolLogController.java b/casic-server/src/main/java/com/casic/missiles/modular/system/controller/PatrolLogController.java index b277154..0b5a69b 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/system/controller/PatrolLogController.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/controller/PatrolLogController.java @@ -1,9 +1,20 @@ package com.casic.missiles.modular.system.controller; -import org.springframework.web.bind.annotation.RequestMapping; - -import org.springframework.web.bind.annotation.RestController; +import cn.hutool.core.util.ObjectUtil; +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.casic.missiles.core.base.controller.ExportController; +import com.casic.missiles.core.page.PageFactory; +import com.casic.missiles.modular.system.dto.PatrolLogDTO; +import com.casic.missiles.modular.system.dto.ReturnDTO; +import com.casic.missiles.modular.system.entity.PatrolLog; +import com.casic.missiles.modular.system.service.IPatrolLogService; +import com.casic.missiles.modular.system.util.ReturnUtil; +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiOperation; +import lombok.RequiredArgsConstructor; +import org.springframework.web.bind.annotation.*; /** *

@@ -13,9 +24,23 @@ * @author zt * @since 2025-03-14 */ +@Api(tags = "巡航日志管理模块") +@RequiredArgsConstructor @RestController @RequestMapping("/system/patrolLog") -public class PatrolLogController { +public class PatrolLogController extends ExportController { + private final IPatrolLogService iPatrolLogService; + + @ApiOperation("查询分页接口") + @PostMapping("/listPage") + @ResponseBody + public ReturnDTO listPage(@RequestBody PatrolLogDTO requestDTO) { + Page page = PageFactory.defaultPage(); + QueryWrapper queryWrapper = new QueryWrapper<>(); + queryWrapper.eq(ObjectUtil.isNotEmpty(requestDTO.getRouteInfoId()), "route_info_id", requestDTO.getRouteInfoId()); + queryWrapper.orderByDesc("createTime"); + return ReturnUtil.success(super.packForBT(iPatrolLogService.page(page, queryWrapper))); + } } diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/controller/ReceiveDeviceDataController.java b/casic-server/src/main/java/com/casic/missiles/modular/system/controller/ReceiveDeviceDataController.java index e0bc9c6..75ae29e 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/system/controller/ReceiveDeviceDataController.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/controller/ReceiveDeviceDataController.java @@ -34,7 +34,6 @@ CompletableFuture.runAsync(() -> { iRouteInfoService.processData(map); -// ResponseResolver.makeResponse(map); } ); return ReturnUtil.success(); diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/controller/RobotDogInfoController.java b/casic-server/src/main/java/com/casic/missiles/modular/system/controller/RobotDogInfoController.java index baffa6f..004b2bf 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/system/controller/RobotDogInfoController.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/controller/RobotDogInfoController.java @@ -7,9 +7,7 @@ import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.casic.missiles.core.base.controller.ExportController; import com.casic.missiles.core.page.PageFactory; -import com.casic.missiles.modular.system.dto.IdsDTO; -import com.casic.missiles.modular.system.dto.ReturnDTO; -import com.casic.missiles.modular.system.dto.RobotDogInfoDTO; +import com.casic.missiles.modular.system.dto.*; import com.casic.missiles.modular.system.entity.RobotDogInfo; import com.casic.missiles.modular.system.enums.BusinessExceptionEnum; import com.casic.missiles.modular.system.exception.BusinessException; @@ -20,7 +18,6 @@ import lombok.RequiredArgsConstructor; import org.springframework.web.bind.annotation.*; -import java.util.List; import java.util.Objects; /** @@ -46,8 +43,8 @@ Page page = PageFactory.defaultPage(); QueryWrapper queryWrapper = new QueryWrapper<>(); queryWrapper.like(ObjectUtil.isNotEmpty(requestDTO.getRobotName()), "robot_name", requestDTO.getRobotName()); - queryWrapper.eq("robot_status", "1"); - return ReturnUtil.success(super.packForBT(iRobotDogInfoService.page(page,queryWrapper))); + queryWrapper.eq("valid", "1"); + return ReturnUtil.success(super.packForBT(iRobotDogInfoService.page(page, queryWrapper))); } @ApiOperation("增加设备类型") @@ -77,5 +74,33 @@ }); return ReturnUtil.success(iRobotDogInfoService.batchDeleteDogs(idsDTO.getIds())); } + + @ApiOperation("获取机器狗下拉列表") + @PostMapping("/selectDogList") + @ResponseBody + public ReturnDTO selectDogList() { + return ReturnUtil.success(iRobotDogInfoService.selectDogList()); + } + + @ApiOperation("根据设备获取巡航线,id魏机器狗id") + @PostMapping("/selectLines") + @ResponseBody + public ReturnDTO selectLines(@RequestBody IdDTO idDTO) { + Assert.isFalse(Objects.isNull(idDTO.getId()), () -> { + throw new BusinessException(BusinessExceptionEnum.ID_NULL); + }); + return ReturnUtil.success(iRobotDogInfoService.selectLines(idDTO.getId())); + } + + + @ApiOperation("根据设备编号获取机器狗信息") + @PostMapping("/getRobotDogByCode") + @ResponseBody + public ReturnDTO getRobotDogByCode(@RequestBody RobotDogInfoDTO requestDTO) { + QueryWrapper queryWrapper = new QueryWrapper<>(); + queryWrapper.eq(ObjectUtil.isNotEmpty(requestDTO.getRobotCode()), "robot_code", requestDTO.getRobotCode()); + queryWrapper.eq("robot_status", "1"); + return ReturnUtil.success(iRobotDogInfoService.list(queryWrapper)); + } } diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/controller/RouteInfoController.java b/casic-server/src/main/java/com/casic/missiles/modular/system/controller/RouteInfoController.java index d6ccb8e..0a24375 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/system/controller/RouteInfoController.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/controller/RouteInfoController.java @@ -9,6 +9,7 @@ import com.casic.missiles.modular.system.dto.IdsDTO; import com.casic.missiles.modular.system.dto.ReturnDTO; import com.casic.missiles.modular.system.dto.RouteInfoDTO; +import com.casic.missiles.modular.system.dto.SelectDTO; import com.casic.missiles.modular.system.entity.RouteInfo; import com.casic.missiles.modular.system.enums.BusinessExceptionEnum; import com.casic.missiles.modular.system.exception.BusinessException; @@ -74,14 +75,26 @@ return ReturnUtil.success(iRouteInfoService.editRouteInfo(routeInfo)); } + /** + * startRecordMap: 'w/', // 开始地图录入 + * endRecordMap: 'e/', // 完成地图录入 + * startRecordRoutInfo: 'x/', // 添加巡检点 + * endRecordRoutInfo: 'c/', // 保存巡检点和地图 + * delRecordRoutInfo: 'v/', // 删除所有的巡检点和地图 + * startNavigation: 'a/', // 开始巡检 + * pauseNavigation: 's/', // 暂停巡检 + * recoverNavigation: 'd/', // 恢复巡检 + * @param command + * @param devCode + * @return + */ @ApiOperation("控制指令类型(startRecordMap-开始地图录制,endRecordMap-完成地图录制," + - "startRecordRoutInfo-开始巡检线路录入,endRecordRoutInfo-结束巡检线路录入,"+ + "startRecordRoutInfo-开始巡检线路录入,endRecordRoutInfo-结束巡检线路录入," + "startPatrol-开始巡检,stopPatrol-结束巡检") @PostMapping("/control") @ResponseBody - public ResponseDataDTO control(String command, Long robotDogId) { - iRouteInfoService.control(command, robotDogId); - return ResponseDataDTO.success(); + public ReturnDTO control(String command, String devCode) { + return ReturnUtil.success(iRouteInfoService.control(command, devCode)); } } diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/dao/RobotDogInfoMapper.java b/casic-server/src/main/java/com/casic/missiles/modular/system/dao/RobotDogInfoMapper.java index bdf4553..0bbdf6c 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/system/dao/RobotDogInfoMapper.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/dao/RobotDogInfoMapper.java @@ -1,8 +1,13 @@ package com.casic.missiles.modular.system.dao; import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.casic.missiles.modular.system.dto.SelectDTO; import com.casic.missiles.modular.system.entity.RobotDogInfo; import org.apache.ibatis.annotations.Mapper; +import org.apache.ibatis.annotations.Param; +import org.apache.ibatis.annotations.Select; + +import java.util.List; /** *

@@ -15,4 +20,11 @@ @Mapper public interface RobotDogInfoMapper extends BaseMapper { + + @Select("SELECT robot_name as `name`,id,robot_code as `code` FROM `robot_dog_info` where valid='1'") + List selectDogList(); + + @Select("SELECT route_name as `name`,id FROM `route_info` where robot_id = #{robotId} and status='1'") + List selectLines(@Param("robotId") Long robotId); + } diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/dao/RouteInfoMapper.java b/casic-server/src/main/java/com/casic/missiles/modular/system/dao/RouteInfoMapper.java index bae594b..844b1fe 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/system/dao/RouteInfoMapper.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/dao/RouteInfoMapper.java @@ -5,8 +5,10 @@ import com.casic.missiles.core.datascope.DataScope; import com.casic.missiles.modular.system.dto.RouteInfoDTO; import com.casic.missiles.modular.system.entity.RouteInfo; +import org.apache.ibatis.annotations.Delete; import org.apache.ibatis.annotations.Mapper; import org.apache.ibatis.annotations.Param; +import org.apache.ibatis.annotations.Select; /** *

@@ -22,4 +24,8 @@ Page listPage(@Param("page") Page page, @Param("requestDTO") RouteInfoDTO requestDTO); + @Select("SELECT ri.id FROM `route_info` ri LEFT join robot_dog_info rd on ri.robot_id= rd.id " + + "where ri.status='1' and rd.robot_code = #{devCode} limit 1") + Long getLineId(@Param("devCode") String devCode); + } diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/dao/mapping/PatrolLogMapper.xml b/casic-server/src/main/java/com/casic/missiles/modular/system/dao/mapping/PatrolLogMapper.xml index 30aebdd..abeb14b 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/system/dao/mapping/PatrolLogMapper.xml +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/dao/mapping/PatrolLogMapper.xml @@ -1,6 +1,6 @@ - + diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/dao/mapping/RobotDogInfoMapper.xml b/casic-server/src/main/java/com/casic/missiles/modular/system/dao/mapping/RobotDogInfoMapper.xml index 182ca3d..aa18c82 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/system/dao/mapping/RobotDogInfoMapper.xml +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/dao/mapping/RobotDogInfoMapper.xml @@ -1,6 +1,6 @@ - + diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/dao/mapping/RouteInfoDetailMapper.xml b/casic-server/src/main/java/com/casic/missiles/modular/system/dao/mapping/RouteInfoDetailMapper.xml index 1e36465..a224cde 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/system/dao/mapping/RouteInfoDetailMapper.xml +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/dao/mapping/RouteInfoDetailMapper.xml @@ -1,6 +1,6 @@ - + diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/controller/PatrolLogController.java b/casic-server/src/main/java/com/casic/missiles/modular/system/controller/PatrolLogController.java index b277154..0b5a69b 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/system/controller/PatrolLogController.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/controller/PatrolLogController.java @@ -1,9 +1,20 @@ package com.casic.missiles.modular.system.controller; -import org.springframework.web.bind.annotation.RequestMapping; - -import org.springframework.web.bind.annotation.RestController; +import cn.hutool.core.util.ObjectUtil; +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.casic.missiles.core.base.controller.ExportController; +import com.casic.missiles.core.page.PageFactory; +import com.casic.missiles.modular.system.dto.PatrolLogDTO; +import com.casic.missiles.modular.system.dto.ReturnDTO; +import com.casic.missiles.modular.system.entity.PatrolLog; +import com.casic.missiles.modular.system.service.IPatrolLogService; +import com.casic.missiles.modular.system.util.ReturnUtil; +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiOperation; +import lombok.RequiredArgsConstructor; +import org.springframework.web.bind.annotation.*; /** *

@@ -13,9 +24,23 @@ * @author zt * @since 2025-03-14 */ +@Api(tags = "巡航日志管理模块") +@RequiredArgsConstructor @RestController @RequestMapping("/system/patrolLog") -public class PatrolLogController { +public class PatrolLogController extends ExportController { + private final IPatrolLogService iPatrolLogService; + + @ApiOperation("查询分页接口") + @PostMapping("/listPage") + @ResponseBody + public ReturnDTO listPage(@RequestBody PatrolLogDTO requestDTO) { + Page page = PageFactory.defaultPage(); + QueryWrapper queryWrapper = new QueryWrapper<>(); + queryWrapper.eq(ObjectUtil.isNotEmpty(requestDTO.getRouteInfoId()), "route_info_id", requestDTO.getRouteInfoId()); + queryWrapper.orderByDesc("createTime"); + return ReturnUtil.success(super.packForBT(iPatrolLogService.page(page, queryWrapper))); + } } diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/controller/ReceiveDeviceDataController.java b/casic-server/src/main/java/com/casic/missiles/modular/system/controller/ReceiveDeviceDataController.java index e0bc9c6..75ae29e 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/system/controller/ReceiveDeviceDataController.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/controller/ReceiveDeviceDataController.java @@ -34,7 +34,6 @@ CompletableFuture.runAsync(() -> { iRouteInfoService.processData(map); -// ResponseResolver.makeResponse(map); } ); return ReturnUtil.success(); diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/controller/RobotDogInfoController.java b/casic-server/src/main/java/com/casic/missiles/modular/system/controller/RobotDogInfoController.java index baffa6f..004b2bf 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/system/controller/RobotDogInfoController.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/controller/RobotDogInfoController.java @@ -7,9 +7,7 @@ import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.casic.missiles.core.base.controller.ExportController; import com.casic.missiles.core.page.PageFactory; -import com.casic.missiles.modular.system.dto.IdsDTO; -import com.casic.missiles.modular.system.dto.ReturnDTO; -import com.casic.missiles.modular.system.dto.RobotDogInfoDTO; +import com.casic.missiles.modular.system.dto.*; import com.casic.missiles.modular.system.entity.RobotDogInfo; import com.casic.missiles.modular.system.enums.BusinessExceptionEnum; import com.casic.missiles.modular.system.exception.BusinessException; @@ -20,7 +18,6 @@ import lombok.RequiredArgsConstructor; import org.springframework.web.bind.annotation.*; -import java.util.List; import java.util.Objects; /** @@ -46,8 +43,8 @@ Page page = PageFactory.defaultPage(); QueryWrapper queryWrapper = new QueryWrapper<>(); queryWrapper.like(ObjectUtil.isNotEmpty(requestDTO.getRobotName()), "robot_name", requestDTO.getRobotName()); - queryWrapper.eq("robot_status", "1"); - return ReturnUtil.success(super.packForBT(iRobotDogInfoService.page(page,queryWrapper))); + queryWrapper.eq("valid", "1"); + return ReturnUtil.success(super.packForBT(iRobotDogInfoService.page(page, queryWrapper))); } @ApiOperation("增加设备类型") @@ -77,5 +74,33 @@ }); return ReturnUtil.success(iRobotDogInfoService.batchDeleteDogs(idsDTO.getIds())); } + + @ApiOperation("获取机器狗下拉列表") + @PostMapping("/selectDogList") + @ResponseBody + public ReturnDTO selectDogList() { + return ReturnUtil.success(iRobotDogInfoService.selectDogList()); + } + + @ApiOperation("根据设备获取巡航线,id魏机器狗id") + @PostMapping("/selectLines") + @ResponseBody + public ReturnDTO selectLines(@RequestBody IdDTO idDTO) { + Assert.isFalse(Objects.isNull(idDTO.getId()), () -> { + throw new BusinessException(BusinessExceptionEnum.ID_NULL); + }); + return ReturnUtil.success(iRobotDogInfoService.selectLines(idDTO.getId())); + } + + + @ApiOperation("根据设备编号获取机器狗信息") + @PostMapping("/getRobotDogByCode") + @ResponseBody + public ReturnDTO getRobotDogByCode(@RequestBody RobotDogInfoDTO requestDTO) { + QueryWrapper queryWrapper = new QueryWrapper<>(); + queryWrapper.eq(ObjectUtil.isNotEmpty(requestDTO.getRobotCode()), "robot_code", requestDTO.getRobotCode()); + queryWrapper.eq("robot_status", "1"); + return ReturnUtil.success(iRobotDogInfoService.list(queryWrapper)); + } } diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/controller/RouteInfoController.java b/casic-server/src/main/java/com/casic/missiles/modular/system/controller/RouteInfoController.java index d6ccb8e..0a24375 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/system/controller/RouteInfoController.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/controller/RouteInfoController.java @@ -9,6 +9,7 @@ import com.casic.missiles.modular.system.dto.IdsDTO; import com.casic.missiles.modular.system.dto.ReturnDTO; import com.casic.missiles.modular.system.dto.RouteInfoDTO; +import com.casic.missiles.modular.system.dto.SelectDTO; import com.casic.missiles.modular.system.entity.RouteInfo; import com.casic.missiles.modular.system.enums.BusinessExceptionEnum; import com.casic.missiles.modular.system.exception.BusinessException; @@ -74,14 +75,26 @@ return ReturnUtil.success(iRouteInfoService.editRouteInfo(routeInfo)); } + /** + * startRecordMap: 'w/', // 开始地图录入 + * endRecordMap: 'e/', // 完成地图录入 + * startRecordRoutInfo: 'x/', // 添加巡检点 + * endRecordRoutInfo: 'c/', // 保存巡检点和地图 + * delRecordRoutInfo: 'v/', // 删除所有的巡检点和地图 + * startNavigation: 'a/', // 开始巡检 + * pauseNavigation: 's/', // 暂停巡检 + * recoverNavigation: 'd/', // 恢复巡检 + * @param command + * @param devCode + * @return + */ @ApiOperation("控制指令类型(startRecordMap-开始地图录制,endRecordMap-完成地图录制," + - "startRecordRoutInfo-开始巡检线路录入,endRecordRoutInfo-结束巡检线路录入,"+ + "startRecordRoutInfo-开始巡检线路录入,endRecordRoutInfo-结束巡检线路录入," + "startPatrol-开始巡检,stopPatrol-结束巡检") @PostMapping("/control") @ResponseBody - public ResponseDataDTO control(String command, Long robotDogId) { - iRouteInfoService.control(command, robotDogId); - return ResponseDataDTO.success(); + public ReturnDTO control(String command, String devCode) { + return ReturnUtil.success(iRouteInfoService.control(command, devCode)); } } diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/dao/RobotDogInfoMapper.java b/casic-server/src/main/java/com/casic/missiles/modular/system/dao/RobotDogInfoMapper.java index bdf4553..0bbdf6c 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/system/dao/RobotDogInfoMapper.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/dao/RobotDogInfoMapper.java @@ -1,8 +1,13 @@ package com.casic.missiles.modular.system.dao; import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.casic.missiles.modular.system.dto.SelectDTO; import com.casic.missiles.modular.system.entity.RobotDogInfo; import org.apache.ibatis.annotations.Mapper; +import org.apache.ibatis.annotations.Param; +import org.apache.ibatis.annotations.Select; + +import java.util.List; /** *

@@ -15,4 +20,11 @@ @Mapper public interface RobotDogInfoMapper extends BaseMapper { + + @Select("SELECT robot_name as `name`,id,robot_code as `code` FROM `robot_dog_info` where valid='1'") + List selectDogList(); + + @Select("SELECT route_name as `name`,id FROM `route_info` where robot_id = #{robotId} and status='1'") + List selectLines(@Param("robotId") Long robotId); + } diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/dao/RouteInfoMapper.java b/casic-server/src/main/java/com/casic/missiles/modular/system/dao/RouteInfoMapper.java index bae594b..844b1fe 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/system/dao/RouteInfoMapper.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/dao/RouteInfoMapper.java @@ -5,8 +5,10 @@ import com.casic.missiles.core.datascope.DataScope; import com.casic.missiles.modular.system.dto.RouteInfoDTO; import com.casic.missiles.modular.system.entity.RouteInfo; +import org.apache.ibatis.annotations.Delete; import org.apache.ibatis.annotations.Mapper; import org.apache.ibatis.annotations.Param; +import org.apache.ibatis.annotations.Select; /** *

@@ -22,4 +24,8 @@ Page listPage(@Param("page") Page page, @Param("requestDTO") RouteInfoDTO requestDTO); + @Select("SELECT ri.id FROM `route_info` ri LEFT join robot_dog_info rd on ri.robot_id= rd.id " + + "where ri.status='1' and rd.robot_code = #{devCode} limit 1") + Long getLineId(@Param("devCode") String devCode); + } diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/dao/mapping/PatrolLogMapper.xml b/casic-server/src/main/java/com/casic/missiles/modular/system/dao/mapping/PatrolLogMapper.xml index 30aebdd..abeb14b 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/system/dao/mapping/PatrolLogMapper.xml +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/dao/mapping/PatrolLogMapper.xml @@ -1,6 +1,6 @@ - + diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/dao/mapping/RobotDogInfoMapper.xml b/casic-server/src/main/java/com/casic/missiles/modular/system/dao/mapping/RobotDogInfoMapper.xml index 182ca3d..aa18c82 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/system/dao/mapping/RobotDogInfoMapper.xml +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/dao/mapping/RobotDogInfoMapper.xml @@ -1,6 +1,6 @@ - + diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/dao/mapping/RouteInfoDetailMapper.xml b/casic-server/src/main/java/com/casic/missiles/modular/system/dao/mapping/RouteInfoDetailMapper.xml index 1e36465..a224cde 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/system/dao/mapping/RouteInfoDetailMapper.xml +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/dao/mapping/RouteInfoDetailMapper.xml @@ -1,6 +1,6 @@ - + diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/dao/mapping/RouteInfoMapper.xml b/casic-server/src/main/java/com/casic/missiles/modular/system/dao/mapping/RouteInfoMapper.xml index 2542993..6e5acda 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/system/dao/mapping/RouteInfoMapper.xml +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/dao/mapping/RouteInfoMapper.xml @@ -1,6 +1,6 @@ - + diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/controller/PatrolLogController.java b/casic-server/src/main/java/com/casic/missiles/modular/system/controller/PatrolLogController.java index b277154..0b5a69b 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/system/controller/PatrolLogController.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/controller/PatrolLogController.java @@ -1,9 +1,20 @@ package com.casic.missiles.modular.system.controller; -import org.springframework.web.bind.annotation.RequestMapping; - -import org.springframework.web.bind.annotation.RestController; +import cn.hutool.core.util.ObjectUtil; +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.casic.missiles.core.base.controller.ExportController; +import com.casic.missiles.core.page.PageFactory; +import com.casic.missiles.modular.system.dto.PatrolLogDTO; +import com.casic.missiles.modular.system.dto.ReturnDTO; +import com.casic.missiles.modular.system.entity.PatrolLog; +import com.casic.missiles.modular.system.service.IPatrolLogService; +import com.casic.missiles.modular.system.util.ReturnUtil; +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiOperation; +import lombok.RequiredArgsConstructor; +import org.springframework.web.bind.annotation.*; /** *

@@ -13,9 +24,23 @@ * @author zt * @since 2025-03-14 */ +@Api(tags = "巡航日志管理模块") +@RequiredArgsConstructor @RestController @RequestMapping("/system/patrolLog") -public class PatrolLogController { +public class PatrolLogController extends ExportController { + private final IPatrolLogService iPatrolLogService; + + @ApiOperation("查询分页接口") + @PostMapping("/listPage") + @ResponseBody + public ReturnDTO listPage(@RequestBody PatrolLogDTO requestDTO) { + Page page = PageFactory.defaultPage(); + QueryWrapper queryWrapper = new QueryWrapper<>(); + queryWrapper.eq(ObjectUtil.isNotEmpty(requestDTO.getRouteInfoId()), "route_info_id", requestDTO.getRouteInfoId()); + queryWrapper.orderByDesc("createTime"); + return ReturnUtil.success(super.packForBT(iPatrolLogService.page(page, queryWrapper))); + } } diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/controller/ReceiveDeviceDataController.java b/casic-server/src/main/java/com/casic/missiles/modular/system/controller/ReceiveDeviceDataController.java index e0bc9c6..75ae29e 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/system/controller/ReceiveDeviceDataController.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/controller/ReceiveDeviceDataController.java @@ -34,7 +34,6 @@ CompletableFuture.runAsync(() -> { iRouteInfoService.processData(map); -// ResponseResolver.makeResponse(map); } ); return ReturnUtil.success(); diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/controller/RobotDogInfoController.java b/casic-server/src/main/java/com/casic/missiles/modular/system/controller/RobotDogInfoController.java index baffa6f..004b2bf 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/system/controller/RobotDogInfoController.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/controller/RobotDogInfoController.java @@ -7,9 +7,7 @@ import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.casic.missiles.core.base.controller.ExportController; import com.casic.missiles.core.page.PageFactory; -import com.casic.missiles.modular.system.dto.IdsDTO; -import com.casic.missiles.modular.system.dto.ReturnDTO; -import com.casic.missiles.modular.system.dto.RobotDogInfoDTO; +import com.casic.missiles.modular.system.dto.*; import com.casic.missiles.modular.system.entity.RobotDogInfo; import com.casic.missiles.modular.system.enums.BusinessExceptionEnum; import com.casic.missiles.modular.system.exception.BusinessException; @@ -20,7 +18,6 @@ import lombok.RequiredArgsConstructor; import org.springframework.web.bind.annotation.*; -import java.util.List; import java.util.Objects; /** @@ -46,8 +43,8 @@ Page page = PageFactory.defaultPage(); QueryWrapper queryWrapper = new QueryWrapper<>(); queryWrapper.like(ObjectUtil.isNotEmpty(requestDTO.getRobotName()), "robot_name", requestDTO.getRobotName()); - queryWrapper.eq("robot_status", "1"); - return ReturnUtil.success(super.packForBT(iRobotDogInfoService.page(page,queryWrapper))); + queryWrapper.eq("valid", "1"); + return ReturnUtil.success(super.packForBT(iRobotDogInfoService.page(page, queryWrapper))); } @ApiOperation("增加设备类型") @@ -77,5 +74,33 @@ }); return ReturnUtil.success(iRobotDogInfoService.batchDeleteDogs(idsDTO.getIds())); } + + @ApiOperation("获取机器狗下拉列表") + @PostMapping("/selectDogList") + @ResponseBody + public ReturnDTO selectDogList() { + return ReturnUtil.success(iRobotDogInfoService.selectDogList()); + } + + @ApiOperation("根据设备获取巡航线,id魏机器狗id") + @PostMapping("/selectLines") + @ResponseBody + public ReturnDTO selectLines(@RequestBody IdDTO idDTO) { + Assert.isFalse(Objects.isNull(idDTO.getId()), () -> { + throw new BusinessException(BusinessExceptionEnum.ID_NULL); + }); + return ReturnUtil.success(iRobotDogInfoService.selectLines(idDTO.getId())); + } + + + @ApiOperation("根据设备编号获取机器狗信息") + @PostMapping("/getRobotDogByCode") + @ResponseBody + public ReturnDTO getRobotDogByCode(@RequestBody RobotDogInfoDTO requestDTO) { + QueryWrapper queryWrapper = new QueryWrapper<>(); + queryWrapper.eq(ObjectUtil.isNotEmpty(requestDTO.getRobotCode()), "robot_code", requestDTO.getRobotCode()); + queryWrapper.eq("robot_status", "1"); + return ReturnUtil.success(iRobotDogInfoService.list(queryWrapper)); + } } diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/controller/RouteInfoController.java b/casic-server/src/main/java/com/casic/missiles/modular/system/controller/RouteInfoController.java index d6ccb8e..0a24375 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/system/controller/RouteInfoController.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/controller/RouteInfoController.java @@ -9,6 +9,7 @@ import com.casic.missiles.modular.system.dto.IdsDTO; import com.casic.missiles.modular.system.dto.ReturnDTO; import com.casic.missiles.modular.system.dto.RouteInfoDTO; +import com.casic.missiles.modular.system.dto.SelectDTO; import com.casic.missiles.modular.system.entity.RouteInfo; import com.casic.missiles.modular.system.enums.BusinessExceptionEnum; import com.casic.missiles.modular.system.exception.BusinessException; @@ -74,14 +75,26 @@ return ReturnUtil.success(iRouteInfoService.editRouteInfo(routeInfo)); } + /** + * startRecordMap: 'w/', // 开始地图录入 + * endRecordMap: 'e/', // 完成地图录入 + * startRecordRoutInfo: 'x/', // 添加巡检点 + * endRecordRoutInfo: 'c/', // 保存巡检点和地图 + * delRecordRoutInfo: 'v/', // 删除所有的巡检点和地图 + * startNavigation: 'a/', // 开始巡检 + * pauseNavigation: 's/', // 暂停巡检 + * recoverNavigation: 'd/', // 恢复巡检 + * @param command + * @param devCode + * @return + */ @ApiOperation("控制指令类型(startRecordMap-开始地图录制,endRecordMap-完成地图录制," + - "startRecordRoutInfo-开始巡检线路录入,endRecordRoutInfo-结束巡检线路录入,"+ + "startRecordRoutInfo-开始巡检线路录入,endRecordRoutInfo-结束巡检线路录入," + "startPatrol-开始巡检,stopPatrol-结束巡检") @PostMapping("/control") @ResponseBody - public ResponseDataDTO control(String command, Long robotDogId) { - iRouteInfoService.control(command, robotDogId); - return ResponseDataDTO.success(); + public ReturnDTO control(String command, String devCode) { + return ReturnUtil.success(iRouteInfoService.control(command, devCode)); } } diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/dao/RobotDogInfoMapper.java b/casic-server/src/main/java/com/casic/missiles/modular/system/dao/RobotDogInfoMapper.java index bdf4553..0bbdf6c 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/system/dao/RobotDogInfoMapper.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/dao/RobotDogInfoMapper.java @@ -1,8 +1,13 @@ package com.casic.missiles.modular.system.dao; import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.casic.missiles.modular.system.dto.SelectDTO; import com.casic.missiles.modular.system.entity.RobotDogInfo; import org.apache.ibatis.annotations.Mapper; +import org.apache.ibatis.annotations.Param; +import org.apache.ibatis.annotations.Select; + +import java.util.List; /** *

@@ -15,4 +20,11 @@ @Mapper public interface RobotDogInfoMapper extends BaseMapper { + + @Select("SELECT robot_name as `name`,id,robot_code as `code` FROM `robot_dog_info` where valid='1'") + List selectDogList(); + + @Select("SELECT route_name as `name`,id FROM `route_info` where robot_id = #{robotId} and status='1'") + List selectLines(@Param("robotId") Long robotId); + } diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/dao/RouteInfoMapper.java b/casic-server/src/main/java/com/casic/missiles/modular/system/dao/RouteInfoMapper.java index bae594b..844b1fe 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/system/dao/RouteInfoMapper.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/dao/RouteInfoMapper.java @@ -5,8 +5,10 @@ import com.casic.missiles.core.datascope.DataScope; import com.casic.missiles.modular.system.dto.RouteInfoDTO; import com.casic.missiles.modular.system.entity.RouteInfo; +import org.apache.ibatis.annotations.Delete; import org.apache.ibatis.annotations.Mapper; import org.apache.ibatis.annotations.Param; +import org.apache.ibatis.annotations.Select; /** *

@@ -22,4 +24,8 @@ Page listPage(@Param("page") Page page, @Param("requestDTO") RouteInfoDTO requestDTO); + @Select("SELECT ri.id FROM `route_info` ri LEFT join robot_dog_info rd on ri.robot_id= rd.id " + + "where ri.status='1' and rd.robot_code = #{devCode} limit 1") + Long getLineId(@Param("devCode") String devCode); + } diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/dao/mapping/PatrolLogMapper.xml b/casic-server/src/main/java/com/casic/missiles/modular/system/dao/mapping/PatrolLogMapper.xml index 30aebdd..abeb14b 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/system/dao/mapping/PatrolLogMapper.xml +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/dao/mapping/PatrolLogMapper.xml @@ -1,6 +1,6 @@ - + diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/dao/mapping/RobotDogInfoMapper.xml b/casic-server/src/main/java/com/casic/missiles/modular/system/dao/mapping/RobotDogInfoMapper.xml index 182ca3d..aa18c82 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/system/dao/mapping/RobotDogInfoMapper.xml +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/dao/mapping/RobotDogInfoMapper.xml @@ -1,6 +1,6 @@ - + diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/dao/mapping/RouteInfoDetailMapper.xml b/casic-server/src/main/java/com/casic/missiles/modular/system/dao/mapping/RouteInfoDetailMapper.xml index 1e36465..a224cde 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/system/dao/mapping/RouteInfoDetailMapper.xml +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/dao/mapping/RouteInfoDetailMapper.xml @@ -1,6 +1,6 @@ - + diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/dao/mapping/RouteInfoMapper.xml b/casic-server/src/main/java/com/casic/missiles/modular/system/dao/mapping/RouteInfoMapper.xml index 2542993..6e5acda 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/system/dao/mapping/RouteInfoMapper.xml +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/dao/mapping/RouteInfoMapper.xml @@ -1,6 +1,6 @@ - + diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/dto/PatrolLogDTO.java b/casic-server/src/main/java/com/casic/missiles/modular/system/dto/PatrolLogDTO.java new file mode 100644 index 0000000..1b7b208 --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/dto/PatrolLogDTO.java @@ -0,0 +1,25 @@ +package com.casic.missiles.modular.system.dto; + + +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import java.io.Serializable; + + +@Data +public class PatrolLogDTO implements Serializable { + + private static final long serialVersionUID = 1L; + +// @ApiModelProperty("机器人id") +// private Long robotId; + @ApiModelProperty("巡航线id") + private Long routeInfoId; +// @ApiModelProperty("小区名称") +// private String communityName; +// @ApiModelProperty("小区地址") +// private String communityAddress; + + +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/controller/PatrolLogController.java b/casic-server/src/main/java/com/casic/missiles/modular/system/controller/PatrolLogController.java index b277154..0b5a69b 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/system/controller/PatrolLogController.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/controller/PatrolLogController.java @@ -1,9 +1,20 @@ package com.casic.missiles.modular.system.controller; -import org.springframework.web.bind.annotation.RequestMapping; - -import org.springframework.web.bind.annotation.RestController; +import cn.hutool.core.util.ObjectUtil; +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.casic.missiles.core.base.controller.ExportController; +import com.casic.missiles.core.page.PageFactory; +import com.casic.missiles.modular.system.dto.PatrolLogDTO; +import com.casic.missiles.modular.system.dto.ReturnDTO; +import com.casic.missiles.modular.system.entity.PatrolLog; +import com.casic.missiles.modular.system.service.IPatrolLogService; +import com.casic.missiles.modular.system.util.ReturnUtil; +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiOperation; +import lombok.RequiredArgsConstructor; +import org.springframework.web.bind.annotation.*; /** *

@@ -13,9 +24,23 @@ * @author zt * @since 2025-03-14 */ +@Api(tags = "巡航日志管理模块") +@RequiredArgsConstructor @RestController @RequestMapping("/system/patrolLog") -public class PatrolLogController { +public class PatrolLogController extends ExportController { + private final IPatrolLogService iPatrolLogService; + + @ApiOperation("查询分页接口") + @PostMapping("/listPage") + @ResponseBody + public ReturnDTO listPage(@RequestBody PatrolLogDTO requestDTO) { + Page page = PageFactory.defaultPage(); + QueryWrapper queryWrapper = new QueryWrapper<>(); + queryWrapper.eq(ObjectUtil.isNotEmpty(requestDTO.getRouteInfoId()), "route_info_id", requestDTO.getRouteInfoId()); + queryWrapper.orderByDesc("createTime"); + return ReturnUtil.success(super.packForBT(iPatrolLogService.page(page, queryWrapper))); + } } diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/controller/ReceiveDeviceDataController.java b/casic-server/src/main/java/com/casic/missiles/modular/system/controller/ReceiveDeviceDataController.java index e0bc9c6..75ae29e 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/system/controller/ReceiveDeviceDataController.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/controller/ReceiveDeviceDataController.java @@ -34,7 +34,6 @@ CompletableFuture.runAsync(() -> { iRouteInfoService.processData(map); -// ResponseResolver.makeResponse(map); } ); return ReturnUtil.success(); diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/controller/RobotDogInfoController.java b/casic-server/src/main/java/com/casic/missiles/modular/system/controller/RobotDogInfoController.java index baffa6f..004b2bf 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/system/controller/RobotDogInfoController.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/controller/RobotDogInfoController.java @@ -7,9 +7,7 @@ import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.casic.missiles.core.base.controller.ExportController; import com.casic.missiles.core.page.PageFactory; -import com.casic.missiles.modular.system.dto.IdsDTO; -import com.casic.missiles.modular.system.dto.ReturnDTO; -import com.casic.missiles.modular.system.dto.RobotDogInfoDTO; +import com.casic.missiles.modular.system.dto.*; import com.casic.missiles.modular.system.entity.RobotDogInfo; import com.casic.missiles.modular.system.enums.BusinessExceptionEnum; import com.casic.missiles.modular.system.exception.BusinessException; @@ -20,7 +18,6 @@ import lombok.RequiredArgsConstructor; import org.springframework.web.bind.annotation.*; -import java.util.List; import java.util.Objects; /** @@ -46,8 +43,8 @@ Page page = PageFactory.defaultPage(); QueryWrapper queryWrapper = new QueryWrapper<>(); queryWrapper.like(ObjectUtil.isNotEmpty(requestDTO.getRobotName()), "robot_name", requestDTO.getRobotName()); - queryWrapper.eq("robot_status", "1"); - return ReturnUtil.success(super.packForBT(iRobotDogInfoService.page(page,queryWrapper))); + queryWrapper.eq("valid", "1"); + return ReturnUtil.success(super.packForBT(iRobotDogInfoService.page(page, queryWrapper))); } @ApiOperation("增加设备类型") @@ -77,5 +74,33 @@ }); return ReturnUtil.success(iRobotDogInfoService.batchDeleteDogs(idsDTO.getIds())); } + + @ApiOperation("获取机器狗下拉列表") + @PostMapping("/selectDogList") + @ResponseBody + public ReturnDTO selectDogList() { + return ReturnUtil.success(iRobotDogInfoService.selectDogList()); + } + + @ApiOperation("根据设备获取巡航线,id魏机器狗id") + @PostMapping("/selectLines") + @ResponseBody + public ReturnDTO selectLines(@RequestBody IdDTO idDTO) { + Assert.isFalse(Objects.isNull(idDTO.getId()), () -> { + throw new BusinessException(BusinessExceptionEnum.ID_NULL); + }); + return ReturnUtil.success(iRobotDogInfoService.selectLines(idDTO.getId())); + } + + + @ApiOperation("根据设备编号获取机器狗信息") + @PostMapping("/getRobotDogByCode") + @ResponseBody + public ReturnDTO getRobotDogByCode(@RequestBody RobotDogInfoDTO requestDTO) { + QueryWrapper queryWrapper = new QueryWrapper<>(); + queryWrapper.eq(ObjectUtil.isNotEmpty(requestDTO.getRobotCode()), "robot_code", requestDTO.getRobotCode()); + queryWrapper.eq("robot_status", "1"); + return ReturnUtil.success(iRobotDogInfoService.list(queryWrapper)); + } } diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/controller/RouteInfoController.java b/casic-server/src/main/java/com/casic/missiles/modular/system/controller/RouteInfoController.java index d6ccb8e..0a24375 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/system/controller/RouteInfoController.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/controller/RouteInfoController.java @@ -9,6 +9,7 @@ import com.casic.missiles.modular.system.dto.IdsDTO; import com.casic.missiles.modular.system.dto.ReturnDTO; import com.casic.missiles.modular.system.dto.RouteInfoDTO; +import com.casic.missiles.modular.system.dto.SelectDTO; import com.casic.missiles.modular.system.entity.RouteInfo; import com.casic.missiles.modular.system.enums.BusinessExceptionEnum; import com.casic.missiles.modular.system.exception.BusinessException; @@ -74,14 +75,26 @@ return ReturnUtil.success(iRouteInfoService.editRouteInfo(routeInfo)); } + /** + * startRecordMap: 'w/', // 开始地图录入 + * endRecordMap: 'e/', // 完成地图录入 + * startRecordRoutInfo: 'x/', // 添加巡检点 + * endRecordRoutInfo: 'c/', // 保存巡检点和地图 + * delRecordRoutInfo: 'v/', // 删除所有的巡检点和地图 + * startNavigation: 'a/', // 开始巡检 + * pauseNavigation: 's/', // 暂停巡检 + * recoverNavigation: 'd/', // 恢复巡检 + * @param command + * @param devCode + * @return + */ @ApiOperation("控制指令类型(startRecordMap-开始地图录制,endRecordMap-完成地图录制," + - "startRecordRoutInfo-开始巡检线路录入,endRecordRoutInfo-结束巡检线路录入,"+ + "startRecordRoutInfo-开始巡检线路录入,endRecordRoutInfo-结束巡检线路录入," + "startPatrol-开始巡检,stopPatrol-结束巡检") @PostMapping("/control") @ResponseBody - public ResponseDataDTO control(String command, Long robotDogId) { - iRouteInfoService.control(command, robotDogId); - return ResponseDataDTO.success(); + public ReturnDTO control(String command, String devCode) { + return ReturnUtil.success(iRouteInfoService.control(command, devCode)); } } diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/dao/RobotDogInfoMapper.java b/casic-server/src/main/java/com/casic/missiles/modular/system/dao/RobotDogInfoMapper.java index bdf4553..0bbdf6c 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/system/dao/RobotDogInfoMapper.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/dao/RobotDogInfoMapper.java @@ -1,8 +1,13 @@ package com.casic.missiles.modular.system.dao; import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.casic.missiles.modular.system.dto.SelectDTO; import com.casic.missiles.modular.system.entity.RobotDogInfo; import org.apache.ibatis.annotations.Mapper; +import org.apache.ibatis.annotations.Param; +import org.apache.ibatis.annotations.Select; + +import java.util.List; /** *

@@ -15,4 +20,11 @@ @Mapper public interface RobotDogInfoMapper extends BaseMapper { + + @Select("SELECT robot_name as `name`,id,robot_code as `code` FROM `robot_dog_info` where valid='1'") + List selectDogList(); + + @Select("SELECT route_name as `name`,id FROM `route_info` where robot_id = #{robotId} and status='1'") + List selectLines(@Param("robotId") Long robotId); + } diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/dao/RouteInfoMapper.java b/casic-server/src/main/java/com/casic/missiles/modular/system/dao/RouteInfoMapper.java index bae594b..844b1fe 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/system/dao/RouteInfoMapper.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/dao/RouteInfoMapper.java @@ -5,8 +5,10 @@ import com.casic.missiles.core.datascope.DataScope; import com.casic.missiles.modular.system.dto.RouteInfoDTO; import com.casic.missiles.modular.system.entity.RouteInfo; +import org.apache.ibatis.annotations.Delete; import org.apache.ibatis.annotations.Mapper; import org.apache.ibatis.annotations.Param; +import org.apache.ibatis.annotations.Select; /** *

@@ -22,4 +24,8 @@ Page listPage(@Param("page") Page page, @Param("requestDTO") RouteInfoDTO requestDTO); + @Select("SELECT ri.id FROM `route_info` ri LEFT join robot_dog_info rd on ri.robot_id= rd.id " + + "where ri.status='1' and rd.robot_code = #{devCode} limit 1") + Long getLineId(@Param("devCode") String devCode); + } diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/dao/mapping/PatrolLogMapper.xml b/casic-server/src/main/java/com/casic/missiles/modular/system/dao/mapping/PatrolLogMapper.xml index 30aebdd..abeb14b 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/system/dao/mapping/PatrolLogMapper.xml +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/dao/mapping/PatrolLogMapper.xml @@ -1,6 +1,6 @@ - + diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/dao/mapping/RobotDogInfoMapper.xml b/casic-server/src/main/java/com/casic/missiles/modular/system/dao/mapping/RobotDogInfoMapper.xml index 182ca3d..aa18c82 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/system/dao/mapping/RobotDogInfoMapper.xml +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/dao/mapping/RobotDogInfoMapper.xml @@ -1,6 +1,6 @@ - + diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/dao/mapping/RouteInfoDetailMapper.xml b/casic-server/src/main/java/com/casic/missiles/modular/system/dao/mapping/RouteInfoDetailMapper.xml index 1e36465..a224cde 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/system/dao/mapping/RouteInfoDetailMapper.xml +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/dao/mapping/RouteInfoDetailMapper.xml @@ -1,6 +1,6 @@ - + diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/dao/mapping/RouteInfoMapper.xml b/casic-server/src/main/java/com/casic/missiles/modular/system/dao/mapping/RouteInfoMapper.xml index 2542993..6e5acda 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/system/dao/mapping/RouteInfoMapper.xml +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/dao/mapping/RouteInfoMapper.xml @@ -1,6 +1,6 @@ - + diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/dto/PatrolLogDTO.java b/casic-server/src/main/java/com/casic/missiles/modular/system/dto/PatrolLogDTO.java new file mode 100644 index 0000000..1b7b208 --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/dto/PatrolLogDTO.java @@ -0,0 +1,25 @@ +package com.casic.missiles.modular.system.dto; + + +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import java.io.Serializable; + + +@Data +public class PatrolLogDTO implements Serializable { + + private static final long serialVersionUID = 1L; + +// @ApiModelProperty("机器人id") +// private Long robotId; + @ApiModelProperty("巡航线id") + private Long routeInfoId; +// @ApiModelProperty("小区名称") +// private String communityName; +// @ApiModelProperty("小区地址") +// private String communityAddress; + + +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/dto/RobotDogInfoDTO.java b/casic-server/src/main/java/com/casic/missiles/modular/system/dto/RobotDogInfoDTO.java index 99f94ff..e76a861 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/system/dto/RobotDogInfoDTO.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/dto/RobotDogInfoDTO.java @@ -15,5 +15,8 @@ @ApiModelProperty("设备名称") private String robotName; + @ApiModelProperty("设备编号") + private String robotCode; + } diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/controller/PatrolLogController.java b/casic-server/src/main/java/com/casic/missiles/modular/system/controller/PatrolLogController.java index b277154..0b5a69b 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/system/controller/PatrolLogController.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/controller/PatrolLogController.java @@ -1,9 +1,20 @@ package com.casic.missiles.modular.system.controller; -import org.springframework.web.bind.annotation.RequestMapping; - -import org.springframework.web.bind.annotation.RestController; +import cn.hutool.core.util.ObjectUtil; +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.casic.missiles.core.base.controller.ExportController; +import com.casic.missiles.core.page.PageFactory; +import com.casic.missiles.modular.system.dto.PatrolLogDTO; +import com.casic.missiles.modular.system.dto.ReturnDTO; +import com.casic.missiles.modular.system.entity.PatrolLog; +import com.casic.missiles.modular.system.service.IPatrolLogService; +import com.casic.missiles.modular.system.util.ReturnUtil; +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiOperation; +import lombok.RequiredArgsConstructor; +import org.springframework.web.bind.annotation.*; /** *

@@ -13,9 +24,23 @@ * @author zt * @since 2025-03-14 */ +@Api(tags = "巡航日志管理模块") +@RequiredArgsConstructor @RestController @RequestMapping("/system/patrolLog") -public class PatrolLogController { +public class PatrolLogController extends ExportController { + private final IPatrolLogService iPatrolLogService; + + @ApiOperation("查询分页接口") + @PostMapping("/listPage") + @ResponseBody + public ReturnDTO listPage(@RequestBody PatrolLogDTO requestDTO) { + Page page = PageFactory.defaultPage(); + QueryWrapper queryWrapper = new QueryWrapper<>(); + queryWrapper.eq(ObjectUtil.isNotEmpty(requestDTO.getRouteInfoId()), "route_info_id", requestDTO.getRouteInfoId()); + queryWrapper.orderByDesc("createTime"); + return ReturnUtil.success(super.packForBT(iPatrolLogService.page(page, queryWrapper))); + } } diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/controller/ReceiveDeviceDataController.java b/casic-server/src/main/java/com/casic/missiles/modular/system/controller/ReceiveDeviceDataController.java index e0bc9c6..75ae29e 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/system/controller/ReceiveDeviceDataController.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/controller/ReceiveDeviceDataController.java @@ -34,7 +34,6 @@ CompletableFuture.runAsync(() -> { iRouteInfoService.processData(map); -// ResponseResolver.makeResponse(map); } ); return ReturnUtil.success(); diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/controller/RobotDogInfoController.java b/casic-server/src/main/java/com/casic/missiles/modular/system/controller/RobotDogInfoController.java index baffa6f..004b2bf 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/system/controller/RobotDogInfoController.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/controller/RobotDogInfoController.java @@ -7,9 +7,7 @@ import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.casic.missiles.core.base.controller.ExportController; import com.casic.missiles.core.page.PageFactory; -import com.casic.missiles.modular.system.dto.IdsDTO; -import com.casic.missiles.modular.system.dto.ReturnDTO; -import com.casic.missiles.modular.system.dto.RobotDogInfoDTO; +import com.casic.missiles.modular.system.dto.*; import com.casic.missiles.modular.system.entity.RobotDogInfo; import com.casic.missiles.modular.system.enums.BusinessExceptionEnum; import com.casic.missiles.modular.system.exception.BusinessException; @@ -20,7 +18,6 @@ import lombok.RequiredArgsConstructor; import org.springframework.web.bind.annotation.*; -import java.util.List; import java.util.Objects; /** @@ -46,8 +43,8 @@ Page page = PageFactory.defaultPage(); QueryWrapper queryWrapper = new QueryWrapper<>(); queryWrapper.like(ObjectUtil.isNotEmpty(requestDTO.getRobotName()), "robot_name", requestDTO.getRobotName()); - queryWrapper.eq("robot_status", "1"); - return ReturnUtil.success(super.packForBT(iRobotDogInfoService.page(page,queryWrapper))); + queryWrapper.eq("valid", "1"); + return ReturnUtil.success(super.packForBT(iRobotDogInfoService.page(page, queryWrapper))); } @ApiOperation("增加设备类型") @@ -77,5 +74,33 @@ }); return ReturnUtil.success(iRobotDogInfoService.batchDeleteDogs(idsDTO.getIds())); } + + @ApiOperation("获取机器狗下拉列表") + @PostMapping("/selectDogList") + @ResponseBody + public ReturnDTO selectDogList() { + return ReturnUtil.success(iRobotDogInfoService.selectDogList()); + } + + @ApiOperation("根据设备获取巡航线,id魏机器狗id") + @PostMapping("/selectLines") + @ResponseBody + public ReturnDTO selectLines(@RequestBody IdDTO idDTO) { + Assert.isFalse(Objects.isNull(idDTO.getId()), () -> { + throw new BusinessException(BusinessExceptionEnum.ID_NULL); + }); + return ReturnUtil.success(iRobotDogInfoService.selectLines(idDTO.getId())); + } + + + @ApiOperation("根据设备编号获取机器狗信息") + @PostMapping("/getRobotDogByCode") + @ResponseBody + public ReturnDTO getRobotDogByCode(@RequestBody RobotDogInfoDTO requestDTO) { + QueryWrapper queryWrapper = new QueryWrapper<>(); + queryWrapper.eq(ObjectUtil.isNotEmpty(requestDTO.getRobotCode()), "robot_code", requestDTO.getRobotCode()); + queryWrapper.eq("robot_status", "1"); + return ReturnUtil.success(iRobotDogInfoService.list(queryWrapper)); + } } diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/controller/RouteInfoController.java b/casic-server/src/main/java/com/casic/missiles/modular/system/controller/RouteInfoController.java index d6ccb8e..0a24375 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/system/controller/RouteInfoController.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/controller/RouteInfoController.java @@ -9,6 +9,7 @@ import com.casic.missiles.modular.system.dto.IdsDTO; import com.casic.missiles.modular.system.dto.ReturnDTO; import com.casic.missiles.modular.system.dto.RouteInfoDTO; +import com.casic.missiles.modular.system.dto.SelectDTO; import com.casic.missiles.modular.system.entity.RouteInfo; import com.casic.missiles.modular.system.enums.BusinessExceptionEnum; import com.casic.missiles.modular.system.exception.BusinessException; @@ -74,14 +75,26 @@ return ReturnUtil.success(iRouteInfoService.editRouteInfo(routeInfo)); } + /** + * startRecordMap: 'w/', // 开始地图录入 + * endRecordMap: 'e/', // 完成地图录入 + * startRecordRoutInfo: 'x/', // 添加巡检点 + * endRecordRoutInfo: 'c/', // 保存巡检点和地图 + * delRecordRoutInfo: 'v/', // 删除所有的巡检点和地图 + * startNavigation: 'a/', // 开始巡检 + * pauseNavigation: 's/', // 暂停巡检 + * recoverNavigation: 'd/', // 恢复巡检 + * @param command + * @param devCode + * @return + */ @ApiOperation("控制指令类型(startRecordMap-开始地图录制,endRecordMap-完成地图录制," + - "startRecordRoutInfo-开始巡检线路录入,endRecordRoutInfo-结束巡检线路录入,"+ + "startRecordRoutInfo-开始巡检线路录入,endRecordRoutInfo-结束巡检线路录入," + "startPatrol-开始巡检,stopPatrol-结束巡检") @PostMapping("/control") @ResponseBody - public ResponseDataDTO control(String command, Long robotDogId) { - iRouteInfoService.control(command, robotDogId); - return ResponseDataDTO.success(); + public ReturnDTO control(String command, String devCode) { + return ReturnUtil.success(iRouteInfoService.control(command, devCode)); } } diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/dao/RobotDogInfoMapper.java b/casic-server/src/main/java/com/casic/missiles/modular/system/dao/RobotDogInfoMapper.java index bdf4553..0bbdf6c 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/system/dao/RobotDogInfoMapper.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/dao/RobotDogInfoMapper.java @@ -1,8 +1,13 @@ package com.casic.missiles.modular.system.dao; import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.casic.missiles.modular.system.dto.SelectDTO; import com.casic.missiles.modular.system.entity.RobotDogInfo; import org.apache.ibatis.annotations.Mapper; +import org.apache.ibatis.annotations.Param; +import org.apache.ibatis.annotations.Select; + +import java.util.List; /** *

@@ -15,4 +20,11 @@ @Mapper public interface RobotDogInfoMapper extends BaseMapper { + + @Select("SELECT robot_name as `name`,id,robot_code as `code` FROM `robot_dog_info` where valid='1'") + List selectDogList(); + + @Select("SELECT route_name as `name`,id FROM `route_info` where robot_id = #{robotId} and status='1'") + List selectLines(@Param("robotId") Long robotId); + } diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/dao/RouteInfoMapper.java b/casic-server/src/main/java/com/casic/missiles/modular/system/dao/RouteInfoMapper.java index bae594b..844b1fe 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/system/dao/RouteInfoMapper.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/dao/RouteInfoMapper.java @@ -5,8 +5,10 @@ import com.casic.missiles.core.datascope.DataScope; import com.casic.missiles.modular.system.dto.RouteInfoDTO; import com.casic.missiles.modular.system.entity.RouteInfo; +import org.apache.ibatis.annotations.Delete; import org.apache.ibatis.annotations.Mapper; import org.apache.ibatis.annotations.Param; +import org.apache.ibatis.annotations.Select; /** *

@@ -22,4 +24,8 @@ Page listPage(@Param("page") Page page, @Param("requestDTO") RouteInfoDTO requestDTO); + @Select("SELECT ri.id FROM `route_info` ri LEFT join robot_dog_info rd on ri.robot_id= rd.id " + + "where ri.status='1' and rd.robot_code = #{devCode} limit 1") + Long getLineId(@Param("devCode") String devCode); + } diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/dao/mapping/PatrolLogMapper.xml b/casic-server/src/main/java/com/casic/missiles/modular/system/dao/mapping/PatrolLogMapper.xml index 30aebdd..abeb14b 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/system/dao/mapping/PatrolLogMapper.xml +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/dao/mapping/PatrolLogMapper.xml @@ -1,6 +1,6 @@ - + diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/dao/mapping/RobotDogInfoMapper.xml b/casic-server/src/main/java/com/casic/missiles/modular/system/dao/mapping/RobotDogInfoMapper.xml index 182ca3d..aa18c82 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/system/dao/mapping/RobotDogInfoMapper.xml +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/dao/mapping/RobotDogInfoMapper.xml @@ -1,6 +1,6 @@ - + diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/dao/mapping/RouteInfoDetailMapper.xml b/casic-server/src/main/java/com/casic/missiles/modular/system/dao/mapping/RouteInfoDetailMapper.xml index 1e36465..a224cde 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/system/dao/mapping/RouteInfoDetailMapper.xml +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/dao/mapping/RouteInfoDetailMapper.xml @@ -1,6 +1,6 @@ - + diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/dao/mapping/RouteInfoMapper.xml b/casic-server/src/main/java/com/casic/missiles/modular/system/dao/mapping/RouteInfoMapper.xml index 2542993..6e5acda 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/system/dao/mapping/RouteInfoMapper.xml +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/dao/mapping/RouteInfoMapper.xml @@ -1,6 +1,6 @@ - + diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/dto/PatrolLogDTO.java b/casic-server/src/main/java/com/casic/missiles/modular/system/dto/PatrolLogDTO.java new file mode 100644 index 0000000..1b7b208 --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/dto/PatrolLogDTO.java @@ -0,0 +1,25 @@ +package com.casic.missiles.modular.system.dto; + + +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import java.io.Serializable; + + +@Data +public class PatrolLogDTO implements Serializable { + + private static final long serialVersionUID = 1L; + +// @ApiModelProperty("机器人id") +// private Long robotId; + @ApiModelProperty("巡航线id") + private Long routeInfoId; +// @ApiModelProperty("小区名称") +// private String communityName; +// @ApiModelProperty("小区地址") +// private String communityAddress; + + +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/dto/RobotDogInfoDTO.java b/casic-server/src/main/java/com/casic/missiles/modular/system/dto/RobotDogInfoDTO.java index 99f94ff..e76a861 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/system/dto/RobotDogInfoDTO.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/dto/RobotDogInfoDTO.java @@ -15,5 +15,8 @@ @ApiModelProperty("设备名称") private String robotName; + @ApiModelProperty("设备编号") + private String robotCode; + } diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/dto/SelectDTO.java b/casic-server/src/main/java/com/casic/missiles/modular/system/dto/SelectDTO.java new file mode 100644 index 0000000..b8156d7 --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/dto/SelectDTO.java @@ -0,0 +1,26 @@ +package com.casic.missiles.modular.system.dto; + + +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import java.io.Serializable; + + +@Data +public class SelectDTO implements Serializable { + + private static final long serialVersionUID = 1L; + + + @ApiModelProperty("id") + private Long id; + + @ApiModelProperty("name") + private String name; + + @ApiModelProperty("code") + private String code; + + +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/controller/PatrolLogController.java b/casic-server/src/main/java/com/casic/missiles/modular/system/controller/PatrolLogController.java index b277154..0b5a69b 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/system/controller/PatrolLogController.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/controller/PatrolLogController.java @@ -1,9 +1,20 @@ package com.casic.missiles.modular.system.controller; -import org.springframework.web.bind.annotation.RequestMapping; - -import org.springframework.web.bind.annotation.RestController; +import cn.hutool.core.util.ObjectUtil; +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.casic.missiles.core.base.controller.ExportController; +import com.casic.missiles.core.page.PageFactory; +import com.casic.missiles.modular.system.dto.PatrolLogDTO; +import com.casic.missiles.modular.system.dto.ReturnDTO; +import com.casic.missiles.modular.system.entity.PatrolLog; +import com.casic.missiles.modular.system.service.IPatrolLogService; +import com.casic.missiles.modular.system.util.ReturnUtil; +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiOperation; +import lombok.RequiredArgsConstructor; +import org.springframework.web.bind.annotation.*; /** *

@@ -13,9 +24,23 @@ * @author zt * @since 2025-03-14 */ +@Api(tags = "巡航日志管理模块") +@RequiredArgsConstructor @RestController @RequestMapping("/system/patrolLog") -public class PatrolLogController { +public class PatrolLogController extends ExportController { + private final IPatrolLogService iPatrolLogService; + + @ApiOperation("查询分页接口") + @PostMapping("/listPage") + @ResponseBody + public ReturnDTO listPage(@RequestBody PatrolLogDTO requestDTO) { + Page page = PageFactory.defaultPage(); + QueryWrapper queryWrapper = new QueryWrapper<>(); + queryWrapper.eq(ObjectUtil.isNotEmpty(requestDTO.getRouteInfoId()), "route_info_id", requestDTO.getRouteInfoId()); + queryWrapper.orderByDesc("createTime"); + return ReturnUtil.success(super.packForBT(iPatrolLogService.page(page, queryWrapper))); + } } diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/controller/ReceiveDeviceDataController.java b/casic-server/src/main/java/com/casic/missiles/modular/system/controller/ReceiveDeviceDataController.java index e0bc9c6..75ae29e 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/system/controller/ReceiveDeviceDataController.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/controller/ReceiveDeviceDataController.java @@ -34,7 +34,6 @@ CompletableFuture.runAsync(() -> { iRouteInfoService.processData(map); -// ResponseResolver.makeResponse(map); } ); return ReturnUtil.success(); diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/controller/RobotDogInfoController.java b/casic-server/src/main/java/com/casic/missiles/modular/system/controller/RobotDogInfoController.java index baffa6f..004b2bf 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/system/controller/RobotDogInfoController.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/controller/RobotDogInfoController.java @@ -7,9 +7,7 @@ import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.casic.missiles.core.base.controller.ExportController; import com.casic.missiles.core.page.PageFactory; -import com.casic.missiles.modular.system.dto.IdsDTO; -import com.casic.missiles.modular.system.dto.ReturnDTO; -import com.casic.missiles.modular.system.dto.RobotDogInfoDTO; +import com.casic.missiles.modular.system.dto.*; import com.casic.missiles.modular.system.entity.RobotDogInfo; import com.casic.missiles.modular.system.enums.BusinessExceptionEnum; import com.casic.missiles.modular.system.exception.BusinessException; @@ -20,7 +18,6 @@ import lombok.RequiredArgsConstructor; import org.springframework.web.bind.annotation.*; -import java.util.List; import java.util.Objects; /** @@ -46,8 +43,8 @@ Page page = PageFactory.defaultPage(); QueryWrapper queryWrapper = new QueryWrapper<>(); queryWrapper.like(ObjectUtil.isNotEmpty(requestDTO.getRobotName()), "robot_name", requestDTO.getRobotName()); - queryWrapper.eq("robot_status", "1"); - return ReturnUtil.success(super.packForBT(iRobotDogInfoService.page(page,queryWrapper))); + queryWrapper.eq("valid", "1"); + return ReturnUtil.success(super.packForBT(iRobotDogInfoService.page(page, queryWrapper))); } @ApiOperation("增加设备类型") @@ -77,5 +74,33 @@ }); return ReturnUtil.success(iRobotDogInfoService.batchDeleteDogs(idsDTO.getIds())); } + + @ApiOperation("获取机器狗下拉列表") + @PostMapping("/selectDogList") + @ResponseBody + public ReturnDTO selectDogList() { + return ReturnUtil.success(iRobotDogInfoService.selectDogList()); + } + + @ApiOperation("根据设备获取巡航线,id魏机器狗id") + @PostMapping("/selectLines") + @ResponseBody + public ReturnDTO selectLines(@RequestBody IdDTO idDTO) { + Assert.isFalse(Objects.isNull(idDTO.getId()), () -> { + throw new BusinessException(BusinessExceptionEnum.ID_NULL); + }); + return ReturnUtil.success(iRobotDogInfoService.selectLines(idDTO.getId())); + } + + + @ApiOperation("根据设备编号获取机器狗信息") + @PostMapping("/getRobotDogByCode") + @ResponseBody + public ReturnDTO getRobotDogByCode(@RequestBody RobotDogInfoDTO requestDTO) { + QueryWrapper queryWrapper = new QueryWrapper<>(); + queryWrapper.eq(ObjectUtil.isNotEmpty(requestDTO.getRobotCode()), "robot_code", requestDTO.getRobotCode()); + queryWrapper.eq("robot_status", "1"); + return ReturnUtil.success(iRobotDogInfoService.list(queryWrapper)); + } } diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/controller/RouteInfoController.java b/casic-server/src/main/java/com/casic/missiles/modular/system/controller/RouteInfoController.java index d6ccb8e..0a24375 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/system/controller/RouteInfoController.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/controller/RouteInfoController.java @@ -9,6 +9,7 @@ import com.casic.missiles.modular.system.dto.IdsDTO; import com.casic.missiles.modular.system.dto.ReturnDTO; import com.casic.missiles.modular.system.dto.RouteInfoDTO; +import com.casic.missiles.modular.system.dto.SelectDTO; import com.casic.missiles.modular.system.entity.RouteInfo; import com.casic.missiles.modular.system.enums.BusinessExceptionEnum; import com.casic.missiles.modular.system.exception.BusinessException; @@ -74,14 +75,26 @@ return ReturnUtil.success(iRouteInfoService.editRouteInfo(routeInfo)); } + /** + * startRecordMap: 'w/', // 开始地图录入 + * endRecordMap: 'e/', // 完成地图录入 + * startRecordRoutInfo: 'x/', // 添加巡检点 + * endRecordRoutInfo: 'c/', // 保存巡检点和地图 + * delRecordRoutInfo: 'v/', // 删除所有的巡检点和地图 + * startNavigation: 'a/', // 开始巡检 + * pauseNavigation: 's/', // 暂停巡检 + * recoverNavigation: 'd/', // 恢复巡检 + * @param command + * @param devCode + * @return + */ @ApiOperation("控制指令类型(startRecordMap-开始地图录制,endRecordMap-完成地图录制," + - "startRecordRoutInfo-开始巡检线路录入,endRecordRoutInfo-结束巡检线路录入,"+ + "startRecordRoutInfo-开始巡检线路录入,endRecordRoutInfo-结束巡检线路录入," + "startPatrol-开始巡检,stopPatrol-结束巡检") @PostMapping("/control") @ResponseBody - public ResponseDataDTO control(String command, Long robotDogId) { - iRouteInfoService.control(command, robotDogId); - return ResponseDataDTO.success(); + public ReturnDTO control(String command, String devCode) { + return ReturnUtil.success(iRouteInfoService.control(command, devCode)); } } diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/dao/RobotDogInfoMapper.java b/casic-server/src/main/java/com/casic/missiles/modular/system/dao/RobotDogInfoMapper.java index bdf4553..0bbdf6c 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/system/dao/RobotDogInfoMapper.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/dao/RobotDogInfoMapper.java @@ -1,8 +1,13 @@ package com.casic.missiles.modular.system.dao; import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.casic.missiles.modular.system.dto.SelectDTO; import com.casic.missiles.modular.system.entity.RobotDogInfo; import org.apache.ibatis.annotations.Mapper; +import org.apache.ibatis.annotations.Param; +import org.apache.ibatis.annotations.Select; + +import java.util.List; /** *

@@ -15,4 +20,11 @@ @Mapper public interface RobotDogInfoMapper extends BaseMapper { + + @Select("SELECT robot_name as `name`,id,robot_code as `code` FROM `robot_dog_info` where valid='1'") + List selectDogList(); + + @Select("SELECT route_name as `name`,id FROM `route_info` where robot_id = #{robotId} and status='1'") + List selectLines(@Param("robotId") Long robotId); + } diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/dao/RouteInfoMapper.java b/casic-server/src/main/java/com/casic/missiles/modular/system/dao/RouteInfoMapper.java index bae594b..844b1fe 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/system/dao/RouteInfoMapper.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/dao/RouteInfoMapper.java @@ -5,8 +5,10 @@ import com.casic.missiles.core.datascope.DataScope; import com.casic.missiles.modular.system.dto.RouteInfoDTO; import com.casic.missiles.modular.system.entity.RouteInfo; +import org.apache.ibatis.annotations.Delete; import org.apache.ibatis.annotations.Mapper; import org.apache.ibatis.annotations.Param; +import org.apache.ibatis.annotations.Select; /** *

@@ -22,4 +24,8 @@ Page listPage(@Param("page") Page page, @Param("requestDTO") RouteInfoDTO requestDTO); + @Select("SELECT ri.id FROM `route_info` ri LEFT join robot_dog_info rd on ri.robot_id= rd.id " + + "where ri.status='1' and rd.robot_code = #{devCode} limit 1") + Long getLineId(@Param("devCode") String devCode); + } diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/dao/mapping/PatrolLogMapper.xml b/casic-server/src/main/java/com/casic/missiles/modular/system/dao/mapping/PatrolLogMapper.xml index 30aebdd..abeb14b 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/system/dao/mapping/PatrolLogMapper.xml +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/dao/mapping/PatrolLogMapper.xml @@ -1,6 +1,6 @@ - + diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/dao/mapping/RobotDogInfoMapper.xml b/casic-server/src/main/java/com/casic/missiles/modular/system/dao/mapping/RobotDogInfoMapper.xml index 182ca3d..aa18c82 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/system/dao/mapping/RobotDogInfoMapper.xml +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/dao/mapping/RobotDogInfoMapper.xml @@ -1,6 +1,6 @@ - + diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/dao/mapping/RouteInfoDetailMapper.xml b/casic-server/src/main/java/com/casic/missiles/modular/system/dao/mapping/RouteInfoDetailMapper.xml index 1e36465..a224cde 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/system/dao/mapping/RouteInfoDetailMapper.xml +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/dao/mapping/RouteInfoDetailMapper.xml @@ -1,6 +1,6 @@ - + diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/dao/mapping/RouteInfoMapper.xml b/casic-server/src/main/java/com/casic/missiles/modular/system/dao/mapping/RouteInfoMapper.xml index 2542993..6e5acda 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/system/dao/mapping/RouteInfoMapper.xml +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/dao/mapping/RouteInfoMapper.xml @@ -1,6 +1,6 @@ - + diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/dto/PatrolLogDTO.java b/casic-server/src/main/java/com/casic/missiles/modular/system/dto/PatrolLogDTO.java new file mode 100644 index 0000000..1b7b208 --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/dto/PatrolLogDTO.java @@ -0,0 +1,25 @@ +package com.casic.missiles.modular.system.dto; + + +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import java.io.Serializable; + + +@Data +public class PatrolLogDTO implements Serializable { + + private static final long serialVersionUID = 1L; + +// @ApiModelProperty("机器人id") +// private Long robotId; + @ApiModelProperty("巡航线id") + private Long routeInfoId; +// @ApiModelProperty("小区名称") +// private String communityName; +// @ApiModelProperty("小区地址") +// private String communityAddress; + + +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/dto/RobotDogInfoDTO.java b/casic-server/src/main/java/com/casic/missiles/modular/system/dto/RobotDogInfoDTO.java index 99f94ff..e76a861 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/system/dto/RobotDogInfoDTO.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/dto/RobotDogInfoDTO.java @@ -15,5 +15,8 @@ @ApiModelProperty("设备名称") private String robotName; + @ApiModelProperty("设备编号") + private String robotCode; + } diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/dto/SelectDTO.java b/casic-server/src/main/java/com/casic/missiles/modular/system/dto/SelectDTO.java new file mode 100644 index 0000000..b8156d7 --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/dto/SelectDTO.java @@ -0,0 +1,26 @@ +package com.casic.missiles.modular.system.dto; + + +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import java.io.Serializable; + + +@Data +public class SelectDTO implements Serializable { + + private static final long serialVersionUID = 1L; + + + @ApiModelProperty("id") + private Long id; + + @ApiModelProperty("name") + private String name; + + @ApiModelProperty("code") + private String code; + + +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/entity/RobotDogInfo.java b/casic-server/src/main/java/com/casic/missiles/modular/system/entity/RobotDogInfo.java index 454b1bc..bfb9c50 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/system/entity/RobotDogInfo.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/entity/RobotDogInfo.java @@ -46,10 +46,14 @@ @TableField("robot_port") private Integer robotPort; - @ApiModelProperty("机器狗状态(1,有效,0无效)") + @ApiModelProperty("机器狗状态(1,在线,离线)") @TableField("robot_status") private String robotStatus; + @ApiModelProperty("删除状态(1,有效,0无效)") + @TableField("valid") + private String valid; + @ApiModelProperty("电量") @TableField("robot_cell") private String robotCell; diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/controller/PatrolLogController.java b/casic-server/src/main/java/com/casic/missiles/modular/system/controller/PatrolLogController.java index b277154..0b5a69b 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/system/controller/PatrolLogController.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/controller/PatrolLogController.java @@ -1,9 +1,20 @@ package com.casic.missiles.modular.system.controller; -import org.springframework.web.bind.annotation.RequestMapping; - -import org.springframework.web.bind.annotation.RestController; +import cn.hutool.core.util.ObjectUtil; +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.casic.missiles.core.base.controller.ExportController; +import com.casic.missiles.core.page.PageFactory; +import com.casic.missiles.modular.system.dto.PatrolLogDTO; +import com.casic.missiles.modular.system.dto.ReturnDTO; +import com.casic.missiles.modular.system.entity.PatrolLog; +import com.casic.missiles.modular.system.service.IPatrolLogService; +import com.casic.missiles.modular.system.util.ReturnUtil; +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiOperation; +import lombok.RequiredArgsConstructor; +import org.springframework.web.bind.annotation.*; /** *

@@ -13,9 +24,23 @@ * @author zt * @since 2025-03-14 */ +@Api(tags = "巡航日志管理模块") +@RequiredArgsConstructor @RestController @RequestMapping("/system/patrolLog") -public class PatrolLogController { +public class PatrolLogController extends ExportController { + private final IPatrolLogService iPatrolLogService; + + @ApiOperation("查询分页接口") + @PostMapping("/listPage") + @ResponseBody + public ReturnDTO listPage(@RequestBody PatrolLogDTO requestDTO) { + Page page = PageFactory.defaultPage(); + QueryWrapper queryWrapper = new QueryWrapper<>(); + queryWrapper.eq(ObjectUtil.isNotEmpty(requestDTO.getRouteInfoId()), "route_info_id", requestDTO.getRouteInfoId()); + queryWrapper.orderByDesc("createTime"); + return ReturnUtil.success(super.packForBT(iPatrolLogService.page(page, queryWrapper))); + } } diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/controller/ReceiveDeviceDataController.java b/casic-server/src/main/java/com/casic/missiles/modular/system/controller/ReceiveDeviceDataController.java index e0bc9c6..75ae29e 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/system/controller/ReceiveDeviceDataController.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/controller/ReceiveDeviceDataController.java @@ -34,7 +34,6 @@ CompletableFuture.runAsync(() -> { iRouteInfoService.processData(map); -// ResponseResolver.makeResponse(map); } ); return ReturnUtil.success(); diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/controller/RobotDogInfoController.java b/casic-server/src/main/java/com/casic/missiles/modular/system/controller/RobotDogInfoController.java index baffa6f..004b2bf 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/system/controller/RobotDogInfoController.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/controller/RobotDogInfoController.java @@ -7,9 +7,7 @@ import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.casic.missiles.core.base.controller.ExportController; import com.casic.missiles.core.page.PageFactory; -import com.casic.missiles.modular.system.dto.IdsDTO; -import com.casic.missiles.modular.system.dto.ReturnDTO; -import com.casic.missiles.modular.system.dto.RobotDogInfoDTO; +import com.casic.missiles.modular.system.dto.*; import com.casic.missiles.modular.system.entity.RobotDogInfo; import com.casic.missiles.modular.system.enums.BusinessExceptionEnum; import com.casic.missiles.modular.system.exception.BusinessException; @@ -20,7 +18,6 @@ import lombok.RequiredArgsConstructor; import org.springframework.web.bind.annotation.*; -import java.util.List; import java.util.Objects; /** @@ -46,8 +43,8 @@ Page page = PageFactory.defaultPage(); QueryWrapper queryWrapper = new QueryWrapper<>(); queryWrapper.like(ObjectUtil.isNotEmpty(requestDTO.getRobotName()), "robot_name", requestDTO.getRobotName()); - queryWrapper.eq("robot_status", "1"); - return ReturnUtil.success(super.packForBT(iRobotDogInfoService.page(page,queryWrapper))); + queryWrapper.eq("valid", "1"); + return ReturnUtil.success(super.packForBT(iRobotDogInfoService.page(page, queryWrapper))); } @ApiOperation("增加设备类型") @@ -77,5 +74,33 @@ }); return ReturnUtil.success(iRobotDogInfoService.batchDeleteDogs(idsDTO.getIds())); } + + @ApiOperation("获取机器狗下拉列表") + @PostMapping("/selectDogList") + @ResponseBody + public ReturnDTO selectDogList() { + return ReturnUtil.success(iRobotDogInfoService.selectDogList()); + } + + @ApiOperation("根据设备获取巡航线,id魏机器狗id") + @PostMapping("/selectLines") + @ResponseBody + public ReturnDTO selectLines(@RequestBody IdDTO idDTO) { + Assert.isFalse(Objects.isNull(idDTO.getId()), () -> { + throw new BusinessException(BusinessExceptionEnum.ID_NULL); + }); + return ReturnUtil.success(iRobotDogInfoService.selectLines(idDTO.getId())); + } + + + @ApiOperation("根据设备编号获取机器狗信息") + @PostMapping("/getRobotDogByCode") + @ResponseBody + public ReturnDTO getRobotDogByCode(@RequestBody RobotDogInfoDTO requestDTO) { + QueryWrapper queryWrapper = new QueryWrapper<>(); + queryWrapper.eq(ObjectUtil.isNotEmpty(requestDTO.getRobotCode()), "robot_code", requestDTO.getRobotCode()); + queryWrapper.eq("robot_status", "1"); + return ReturnUtil.success(iRobotDogInfoService.list(queryWrapper)); + } } diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/controller/RouteInfoController.java b/casic-server/src/main/java/com/casic/missiles/modular/system/controller/RouteInfoController.java index d6ccb8e..0a24375 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/system/controller/RouteInfoController.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/controller/RouteInfoController.java @@ -9,6 +9,7 @@ import com.casic.missiles.modular.system.dto.IdsDTO; import com.casic.missiles.modular.system.dto.ReturnDTO; import com.casic.missiles.modular.system.dto.RouteInfoDTO; +import com.casic.missiles.modular.system.dto.SelectDTO; import com.casic.missiles.modular.system.entity.RouteInfo; import com.casic.missiles.modular.system.enums.BusinessExceptionEnum; import com.casic.missiles.modular.system.exception.BusinessException; @@ -74,14 +75,26 @@ return ReturnUtil.success(iRouteInfoService.editRouteInfo(routeInfo)); } + /** + * startRecordMap: 'w/', // 开始地图录入 + * endRecordMap: 'e/', // 完成地图录入 + * startRecordRoutInfo: 'x/', // 添加巡检点 + * endRecordRoutInfo: 'c/', // 保存巡检点和地图 + * delRecordRoutInfo: 'v/', // 删除所有的巡检点和地图 + * startNavigation: 'a/', // 开始巡检 + * pauseNavigation: 's/', // 暂停巡检 + * recoverNavigation: 'd/', // 恢复巡检 + * @param command + * @param devCode + * @return + */ @ApiOperation("控制指令类型(startRecordMap-开始地图录制,endRecordMap-完成地图录制," + - "startRecordRoutInfo-开始巡检线路录入,endRecordRoutInfo-结束巡检线路录入,"+ + "startRecordRoutInfo-开始巡检线路录入,endRecordRoutInfo-结束巡检线路录入," + "startPatrol-开始巡检,stopPatrol-结束巡检") @PostMapping("/control") @ResponseBody - public ResponseDataDTO control(String command, Long robotDogId) { - iRouteInfoService.control(command, robotDogId); - return ResponseDataDTO.success(); + public ReturnDTO control(String command, String devCode) { + return ReturnUtil.success(iRouteInfoService.control(command, devCode)); } } diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/dao/RobotDogInfoMapper.java b/casic-server/src/main/java/com/casic/missiles/modular/system/dao/RobotDogInfoMapper.java index bdf4553..0bbdf6c 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/system/dao/RobotDogInfoMapper.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/dao/RobotDogInfoMapper.java @@ -1,8 +1,13 @@ package com.casic.missiles.modular.system.dao; import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.casic.missiles.modular.system.dto.SelectDTO; import com.casic.missiles.modular.system.entity.RobotDogInfo; import org.apache.ibatis.annotations.Mapper; +import org.apache.ibatis.annotations.Param; +import org.apache.ibatis.annotations.Select; + +import java.util.List; /** *

@@ -15,4 +20,11 @@ @Mapper public interface RobotDogInfoMapper extends BaseMapper { + + @Select("SELECT robot_name as `name`,id,robot_code as `code` FROM `robot_dog_info` where valid='1'") + List selectDogList(); + + @Select("SELECT route_name as `name`,id FROM `route_info` where robot_id = #{robotId} and status='1'") + List selectLines(@Param("robotId") Long robotId); + } diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/dao/RouteInfoMapper.java b/casic-server/src/main/java/com/casic/missiles/modular/system/dao/RouteInfoMapper.java index bae594b..844b1fe 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/system/dao/RouteInfoMapper.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/dao/RouteInfoMapper.java @@ -5,8 +5,10 @@ import com.casic.missiles.core.datascope.DataScope; import com.casic.missiles.modular.system.dto.RouteInfoDTO; import com.casic.missiles.modular.system.entity.RouteInfo; +import org.apache.ibatis.annotations.Delete; import org.apache.ibatis.annotations.Mapper; import org.apache.ibatis.annotations.Param; +import org.apache.ibatis.annotations.Select; /** *

@@ -22,4 +24,8 @@ Page listPage(@Param("page") Page page, @Param("requestDTO") RouteInfoDTO requestDTO); + @Select("SELECT ri.id FROM `route_info` ri LEFT join robot_dog_info rd on ri.robot_id= rd.id " + + "where ri.status='1' and rd.robot_code = #{devCode} limit 1") + Long getLineId(@Param("devCode") String devCode); + } diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/dao/mapping/PatrolLogMapper.xml b/casic-server/src/main/java/com/casic/missiles/modular/system/dao/mapping/PatrolLogMapper.xml index 30aebdd..abeb14b 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/system/dao/mapping/PatrolLogMapper.xml +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/dao/mapping/PatrolLogMapper.xml @@ -1,6 +1,6 @@ - + diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/dao/mapping/RobotDogInfoMapper.xml b/casic-server/src/main/java/com/casic/missiles/modular/system/dao/mapping/RobotDogInfoMapper.xml index 182ca3d..aa18c82 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/system/dao/mapping/RobotDogInfoMapper.xml +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/dao/mapping/RobotDogInfoMapper.xml @@ -1,6 +1,6 @@ - + diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/dao/mapping/RouteInfoDetailMapper.xml b/casic-server/src/main/java/com/casic/missiles/modular/system/dao/mapping/RouteInfoDetailMapper.xml index 1e36465..a224cde 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/system/dao/mapping/RouteInfoDetailMapper.xml +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/dao/mapping/RouteInfoDetailMapper.xml @@ -1,6 +1,6 @@ - + diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/dao/mapping/RouteInfoMapper.xml b/casic-server/src/main/java/com/casic/missiles/modular/system/dao/mapping/RouteInfoMapper.xml index 2542993..6e5acda 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/system/dao/mapping/RouteInfoMapper.xml +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/dao/mapping/RouteInfoMapper.xml @@ -1,6 +1,6 @@ - + diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/dto/PatrolLogDTO.java b/casic-server/src/main/java/com/casic/missiles/modular/system/dto/PatrolLogDTO.java new file mode 100644 index 0000000..1b7b208 --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/dto/PatrolLogDTO.java @@ -0,0 +1,25 @@ +package com.casic.missiles.modular.system.dto; + + +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import java.io.Serializable; + + +@Data +public class PatrolLogDTO implements Serializable { + + private static final long serialVersionUID = 1L; + +// @ApiModelProperty("机器人id") +// private Long robotId; + @ApiModelProperty("巡航线id") + private Long routeInfoId; +// @ApiModelProperty("小区名称") +// private String communityName; +// @ApiModelProperty("小区地址") +// private String communityAddress; + + +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/dto/RobotDogInfoDTO.java b/casic-server/src/main/java/com/casic/missiles/modular/system/dto/RobotDogInfoDTO.java index 99f94ff..e76a861 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/system/dto/RobotDogInfoDTO.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/dto/RobotDogInfoDTO.java @@ -15,5 +15,8 @@ @ApiModelProperty("设备名称") private String robotName; + @ApiModelProperty("设备编号") + private String robotCode; + } diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/dto/SelectDTO.java b/casic-server/src/main/java/com/casic/missiles/modular/system/dto/SelectDTO.java new file mode 100644 index 0000000..b8156d7 --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/dto/SelectDTO.java @@ -0,0 +1,26 @@ +package com.casic.missiles.modular.system.dto; + + +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import java.io.Serializable; + + +@Data +public class SelectDTO implements Serializable { + + private static final long serialVersionUID = 1L; + + + @ApiModelProperty("id") + private Long id; + + @ApiModelProperty("name") + private String name; + + @ApiModelProperty("code") + private String code; + + +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/entity/RobotDogInfo.java b/casic-server/src/main/java/com/casic/missiles/modular/system/entity/RobotDogInfo.java index 454b1bc..bfb9c50 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/system/entity/RobotDogInfo.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/entity/RobotDogInfo.java @@ -46,10 +46,14 @@ @TableField("robot_port") private Integer robotPort; - @ApiModelProperty("机器狗状态(1,有效,0无效)") + @ApiModelProperty("机器狗状态(1,在线,离线)") @TableField("robot_status") private String robotStatus; + @ApiModelProperty("删除状态(1,有效,0无效)") + @TableField("valid") + private String valid; + @ApiModelProperty("电量") @TableField("robot_cell") private String robotCell; diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/entity/RouteInfo.java b/casic-server/src/main/java/com/casic/missiles/modular/system/entity/RouteInfo.java index 9b88a35..299594b 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/system/entity/RouteInfo.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/entity/RouteInfo.java @@ -43,6 +43,10 @@ @TableField("route_name") private String routeName; + @ApiModelProperty("状态1:有效,0:无效") + @TableField("status") + private String status; + @ApiModelProperty("机器人ID") @TableField("robot_id") private Long robotId; @@ -61,4 +65,9 @@ @TableField(exist = false) private List routeInfoDetailList; + + @ApiModelProperty("机器人名称") + @TableField(exist = false) + private String robotName; + } diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/controller/PatrolLogController.java b/casic-server/src/main/java/com/casic/missiles/modular/system/controller/PatrolLogController.java index b277154..0b5a69b 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/system/controller/PatrolLogController.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/controller/PatrolLogController.java @@ -1,9 +1,20 @@ package com.casic.missiles.modular.system.controller; -import org.springframework.web.bind.annotation.RequestMapping; - -import org.springframework.web.bind.annotation.RestController; +import cn.hutool.core.util.ObjectUtil; +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.casic.missiles.core.base.controller.ExportController; +import com.casic.missiles.core.page.PageFactory; +import com.casic.missiles.modular.system.dto.PatrolLogDTO; +import com.casic.missiles.modular.system.dto.ReturnDTO; +import com.casic.missiles.modular.system.entity.PatrolLog; +import com.casic.missiles.modular.system.service.IPatrolLogService; +import com.casic.missiles.modular.system.util.ReturnUtil; +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiOperation; +import lombok.RequiredArgsConstructor; +import org.springframework.web.bind.annotation.*; /** *

@@ -13,9 +24,23 @@ * @author zt * @since 2025-03-14 */ +@Api(tags = "巡航日志管理模块") +@RequiredArgsConstructor @RestController @RequestMapping("/system/patrolLog") -public class PatrolLogController { +public class PatrolLogController extends ExportController { + private final IPatrolLogService iPatrolLogService; + + @ApiOperation("查询分页接口") + @PostMapping("/listPage") + @ResponseBody + public ReturnDTO listPage(@RequestBody PatrolLogDTO requestDTO) { + Page page = PageFactory.defaultPage(); + QueryWrapper queryWrapper = new QueryWrapper<>(); + queryWrapper.eq(ObjectUtil.isNotEmpty(requestDTO.getRouteInfoId()), "route_info_id", requestDTO.getRouteInfoId()); + queryWrapper.orderByDesc("createTime"); + return ReturnUtil.success(super.packForBT(iPatrolLogService.page(page, queryWrapper))); + } } diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/controller/ReceiveDeviceDataController.java b/casic-server/src/main/java/com/casic/missiles/modular/system/controller/ReceiveDeviceDataController.java index e0bc9c6..75ae29e 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/system/controller/ReceiveDeviceDataController.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/controller/ReceiveDeviceDataController.java @@ -34,7 +34,6 @@ CompletableFuture.runAsync(() -> { iRouteInfoService.processData(map); -// ResponseResolver.makeResponse(map); } ); return ReturnUtil.success(); diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/controller/RobotDogInfoController.java b/casic-server/src/main/java/com/casic/missiles/modular/system/controller/RobotDogInfoController.java index baffa6f..004b2bf 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/system/controller/RobotDogInfoController.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/controller/RobotDogInfoController.java @@ -7,9 +7,7 @@ import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.casic.missiles.core.base.controller.ExportController; import com.casic.missiles.core.page.PageFactory; -import com.casic.missiles.modular.system.dto.IdsDTO; -import com.casic.missiles.modular.system.dto.ReturnDTO; -import com.casic.missiles.modular.system.dto.RobotDogInfoDTO; +import com.casic.missiles.modular.system.dto.*; import com.casic.missiles.modular.system.entity.RobotDogInfo; import com.casic.missiles.modular.system.enums.BusinessExceptionEnum; import com.casic.missiles.modular.system.exception.BusinessException; @@ -20,7 +18,6 @@ import lombok.RequiredArgsConstructor; import org.springframework.web.bind.annotation.*; -import java.util.List; import java.util.Objects; /** @@ -46,8 +43,8 @@ Page page = PageFactory.defaultPage(); QueryWrapper queryWrapper = new QueryWrapper<>(); queryWrapper.like(ObjectUtil.isNotEmpty(requestDTO.getRobotName()), "robot_name", requestDTO.getRobotName()); - queryWrapper.eq("robot_status", "1"); - return ReturnUtil.success(super.packForBT(iRobotDogInfoService.page(page,queryWrapper))); + queryWrapper.eq("valid", "1"); + return ReturnUtil.success(super.packForBT(iRobotDogInfoService.page(page, queryWrapper))); } @ApiOperation("增加设备类型") @@ -77,5 +74,33 @@ }); return ReturnUtil.success(iRobotDogInfoService.batchDeleteDogs(idsDTO.getIds())); } + + @ApiOperation("获取机器狗下拉列表") + @PostMapping("/selectDogList") + @ResponseBody + public ReturnDTO selectDogList() { + return ReturnUtil.success(iRobotDogInfoService.selectDogList()); + } + + @ApiOperation("根据设备获取巡航线,id魏机器狗id") + @PostMapping("/selectLines") + @ResponseBody + public ReturnDTO selectLines(@RequestBody IdDTO idDTO) { + Assert.isFalse(Objects.isNull(idDTO.getId()), () -> { + throw new BusinessException(BusinessExceptionEnum.ID_NULL); + }); + return ReturnUtil.success(iRobotDogInfoService.selectLines(idDTO.getId())); + } + + + @ApiOperation("根据设备编号获取机器狗信息") + @PostMapping("/getRobotDogByCode") + @ResponseBody + public ReturnDTO getRobotDogByCode(@RequestBody RobotDogInfoDTO requestDTO) { + QueryWrapper queryWrapper = new QueryWrapper<>(); + queryWrapper.eq(ObjectUtil.isNotEmpty(requestDTO.getRobotCode()), "robot_code", requestDTO.getRobotCode()); + queryWrapper.eq("robot_status", "1"); + return ReturnUtil.success(iRobotDogInfoService.list(queryWrapper)); + } } diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/controller/RouteInfoController.java b/casic-server/src/main/java/com/casic/missiles/modular/system/controller/RouteInfoController.java index d6ccb8e..0a24375 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/system/controller/RouteInfoController.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/controller/RouteInfoController.java @@ -9,6 +9,7 @@ import com.casic.missiles.modular.system.dto.IdsDTO; import com.casic.missiles.modular.system.dto.ReturnDTO; import com.casic.missiles.modular.system.dto.RouteInfoDTO; +import com.casic.missiles.modular.system.dto.SelectDTO; import com.casic.missiles.modular.system.entity.RouteInfo; import com.casic.missiles.modular.system.enums.BusinessExceptionEnum; import com.casic.missiles.modular.system.exception.BusinessException; @@ -74,14 +75,26 @@ return ReturnUtil.success(iRouteInfoService.editRouteInfo(routeInfo)); } + /** + * startRecordMap: 'w/', // 开始地图录入 + * endRecordMap: 'e/', // 完成地图录入 + * startRecordRoutInfo: 'x/', // 添加巡检点 + * endRecordRoutInfo: 'c/', // 保存巡检点和地图 + * delRecordRoutInfo: 'v/', // 删除所有的巡检点和地图 + * startNavigation: 'a/', // 开始巡检 + * pauseNavigation: 's/', // 暂停巡检 + * recoverNavigation: 'd/', // 恢复巡检 + * @param command + * @param devCode + * @return + */ @ApiOperation("控制指令类型(startRecordMap-开始地图录制,endRecordMap-完成地图录制," + - "startRecordRoutInfo-开始巡检线路录入,endRecordRoutInfo-结束巡检线路录入,"+ + "startRecordRoutInfo-开始巡检线路录入,endRecordRoutInfo-结束巡检线路录入," + "startPatrol-开始巡检,stopPatrol-结束巡检") @PostMapping("/control") @ResponseBody - public ResponseDataDTO control(String command, Long robotDogId) { - iRouteInfoService.control(command, robotDogId); - return ResponseDataDTO.success(); + public ReturnDTO control(String command, String devCode) { + return ReturnUtil.success(iRouteInfoService.control(command, devCode)); } } diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/dao/RobotDogInfoMapper.java b/casic-server/src/main/java/com/casic/missiles/modular/system/dao/RobotDogInfoMapper.java index bdf4553..0bbdf6c 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/system/dao/RobotDogInfoMapper.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/dao/RobotDogInfoMapper.java @@ -1,8 +1,13 @@ package com.casic.missiles.modular.system.dao; import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.casic.missiles.modular.system.dto.SelectDTO; import com.casic.missiles.modular.system.entity.RobotDogInfo; import org.apache.ibatis.annotations.Mapper; +import org.apache.ibatis.annotations.Param; +import org.apache.ibatis.annotations.Select; + +import java.util.List; /** *

@@ -15,4 +20,11 @@ @Mapper public interface RobotDogInfoMapper extends BaseMapper { + + @Select("SELECT robot_name as `name`,id,robot_code as `code` FROM `robot_dog_info` where valid='1'") + List selectDogList(); + + @Select("SELECT route_name as `name`,id FROM `route_info` where robot_id = #{robotId} and status='1'") + List selectLines(@Param("robotId") Long robotId); + } diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/dao/RouteInfoMapper.java b/casic-server/src/main/java/com/casic/missiles/modular/system/dao/RouteInfoMapper.java index bae594b..844b1fe 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/system/dao/RouteInfoMapper.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/dao/RouteInfoMapper.java @@ -5,8 +5,10 @@ import com.casic.missiles.core.datascope.DataScope; import com.casic.missiles.modular.system.dto.RouteInfoDTO; import com.casic.missiles.modular.system.entity.RouteInfo; +import org.apache.ibatis.annotations.Delete; import org.apache.ibatis.annotations.Mapper; import org.apache.ibatis.annotations.Param; +import org.apache.ibatis.annotations.Select; /** *

@@ -22,4 +24,8 @@ Page listPage(@Param("page") Page page, @Param("requestDTO") RouteInfoDTO requestDTO); + @Select("SELECT ri.id FROM `route_info` ri LEFT join robot_dog_info rd on ri.robot_id= rd.id " + + "where ri.status='1' and rd.robot_code = #{devCode} limit 1") + Long getLineId(@Param("devCode") String devCode); + } diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/dao/mapping/PatrolLogMapper.xml b/casic-server/src/main/java/com/casic/missiles/modular/system/dao/mapping/PatrolLogMapper.xml index 30aebdd..abeb14b 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/system/dao/mapping/PatrolLogMapper.xml +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/dao/mapping/PatrolLogMapper.xml @@ -1,6 +1,6 @@ - + diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/dao/mapping/RobotDogInfoMapper.xml b/casic-server/src/main/java/com/casic/missiles/modular/system/dao/mapping/RobotDogInfoMapper.xml index 182ca3d..aa18c82 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/system/dao/mapping/RobotDogInfoMapper.xml +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/dao/mapping/RobotDogInfoMapper.xml @@ -1,6 +1,6 @@ - + diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/dao/mapping/RouteInfoDetailMapper.xml b/casic-server/src/main/java/com/casic/missiles/modular/system/dao/mapping/RouteInfoDetailMapper.xml index 1e36465..a224cde 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/system/dao/mapping/RouteInfoDetailMapper.xml +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/dao/mapping/RouteInfoDetailMapper.xml @@ -1,6 +1,6 @@ - + diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/dao/mapping/RouteInfoMapper.xml b/casic-server/src/main/java/com/casic/missiles/modular/system/dao/mapping/RouteInfoMapper.xml index 2542993..6e5acda 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/system/dao/mapping/RouteInfoMapper.xml +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/dao/mapping/RouteInfoMapper.xml @@ -1,6 +1,6 @@ - + diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/dto/PatrolLogDTO.java b/casic-server/src/main/java/com/casic/missiles/modular/system/dto/PatrolLogDTO.java new file mode 100644 index 0000000..1b7b208 --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/dto/PatrolLogDTO.java @@ -0,0 +1,25 @@ +package com.casic.missiles.modular.system.dto; + + +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import java.io.Serializable; + + +@Data +public class PatrolLogDTO implements Serializable { + + private static final long serialVersionUID = 1L; + +// @ApiModelProperty("机器人id") +// private Long robotId; + @ApiModelProperty("巡航线id") + private Long routeInfoId; +// @ApiModelProperty("小区名称") +// private String communityName; +// @ApiModelProperty("小区地址") +// private String communityAddress; + + +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/dto/RobotDogInfoDTO.java b/casic-server/src/main/java/com/casic/missiles/modular/system/dto/RobotDogInfoDTO.java index 99f94ff..e76a861 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/system/dto/RobotDogInfoDTO.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/dto/RobotDogInfoDTO.java @@ -15,5 +15,8 @@ @ApiModelProperty("设备名称") private String robotName; + @ApiModelProperty("设备编号") + private String robotCode; + } diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/dto/SelectDTO.java b/casic-server/src/main/java/com/casic/missiles/modular/system/dto/SelectDTO.java new file mode 100644 index 0000000..b8156d7 --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/dto/SelectDTO.java @@ -0,0 +1,26 @@ +package com.casic.missiles.modular.system.dto; + + +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import java.io.Serializable; + + +@Data +public class SelectDTO implements Serializable { + + private static final long serialVersionUID = 1L; + + + @ApiModelProperty("id") + private Long id; + + @ApiModelProperty("name") + private String name; + + @ApiModelProperty("code") + private String code; + + +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/entity/RobotDogInfo.java b/casic-server/src/main/java/com/casic/missiles/modular/system/entity/RobotDogInfo.java index 454b1bc..bfb9c50 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/system/entity/RobotDogInfo.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/entity/RobotDogInfo.java @@ -46,10 +46,14 @@ @TableField("robot_port") private Integer robotPort; - @ApiModelProperty("机器狗状态(1,有效,0无效)") + @ApiModelProperty("机器狗状态(1,在线,离线)") @TableField("robot_status") private String robotStatus; + @ApiModelProperty("删除状态(1,有效,0无效)") + @TableField("valid") + private String valid; + @ApiModelProperty("电量") @TableField("robot_cell") private String robotCell; diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/entity/RouteInfo.java b/casic-server/src/main/java/com/casic/missiles/modular/system/entity/RouteInfo.java index 9b88a35..299594b 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/system/entity/RouteInfo.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/entity/RouteInfo.java @@ -43,6 +43,10 @@ @TableField("route_name") private String routeName; + @ApiModelProperty("状态1:有效,0:无效") + @TableField("status") + private String status; + @ApiModelProperty("机器人ID") @TableField("robot_id") private Long robotId; @@ -61,4 +65,9 @@ @TableField(exist = false) private List routeInfoDetailList; + + @ApiModelProperty("机器人名称") + @TableField(exist = false) + private String robotName; + } diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/enums/BusinessExceptionEnum.java b/casic-server/src/main/java/com/casic/missiles/modular/system/enums/BusinessExceptionEnum.java index 7924c30..6bafabf 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/system/enums/BusinessExceptionEnum.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/enums/BusinessExceptionEnum.java @@ -29,7 +29,9 @@ MONITOR_VALID_FAILED(2099, "云台登录地址重复"), - DEVICE_DUPLICATE(2011, "设备编号重复"); + DEVICE_DUPLICATE(2011, "设备编号重复"), + + CONFIG_FAIL(4005, "设备通讯一次,下发失败"); private Integer code; diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/controller/PatrolLogController.java b/casic-server/src/main/java/com/casic/missiles/modular/system/controller/PatrolLogController.java index b277154..0b5a69b 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/system/controller/PatrolLogController.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/controller/PatrolLogController.java @@ -1,9 +1,20 @@ package com.casic.missiles.modular.system.controller; -import org.springframework.web.bind.annotation.RequestMapping; - -import org.springframework.web.bind.annotation.RestController; +import cn.hutool.core.util.ObjectUtil; +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.casic.missiles.core.base.controller.ExportController; +import com.casic.missiles.core.page.PageFactory; +import com.casic.missiles.modular.system.dto.PatrolLogDTO; +import com.casic.missiles.modular.system.dto.ReturnDTO; +import com.casic.missiles.modular.system.entity.PatrolLog; +import com.casic.missiles.modular.system.service.IPatrolLogService; +import com.casic.missiles.modular.system.util.ReturnUtil; +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiOperation; +import lombok.RequiredArgsConstructor; +import org.springframework.web.bind.annotation.*; /** *

@@ -13,9 +24,23 @@ * @author zt * @since 2025-03-14 */ +@Api(tags = "巡航日志管理模块") +@RequiredArgsConstructor @RestController @RequestMapping("/system/patrolLog") -public class PatrolLogController { +public class PatrolLogController extends ExportController { + private final IPatrolLogService iPatrolLogService; + + @ApiOperation("查询分页接口") + @PostMapping("/listPage") + @ResponseBody + public ReturnDTO listPage(@RequestBody PatrolLogDTO requestDTO) { + Page page = PageFactory.defaultPage(); + QueryWrapper queryWrapper = new QueryWrapper<>(); + queryWrapper.eq(ObjectUtil.isNotEmpty(requestDTO.getRouteInfoId()), "route_info_id", requestDTO.getRouteInfoId()); + queryWrapper.orderByDesc("createTime"); + return ReturnUtil.success(super.packForBT(iPatrolLogService.page(page, queryWrapper))); + } } diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/controller/ReceiveDeviceDataController.java b/casic-server/src/main/java/com/casic/missiles/modular/system/controller/ReceiveDeviceDataController.java index e0bc9c6..75ae29e 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/system/controller/ReceiveDeviceDataController.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/controller/ReceiveDeviceDataController.java @@ -34,7 +34,6 @@ CompletableFuture.runAsync(() -> { iRouteInfoService.processData(map); -// ResponseResolver.makeResponse(map); } ); return ReturnUtil.success(); diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/controller/RobotDogInfoController.java b/casic-server/src/main/java/com/casic/missiles/modular/system/controller/RobotDogInfoController.java index baffa6f..004b2bf 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/system/controller/RobotDogInfoController.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/controller/RobotDogInfoController.java @@ -7,9 +7,7 @@ import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.casic.missiles.core.base.controller.ExportController; import com.casic.missiles.core.page.PageFactory; -import com.casic.missiles.modular.system.dto.IdsDTO; -import com.casic.missiles.modular.system.dto.ReturnDTO; -import com.casic.missiles.modular.system.dto.RobotDogInfoDTO; +import com.casic.missiles.modular.system.dto.*; import com.casic.missiles.modular.system.entity.RobotDogInfo; import com.casic.missiles.modular.system.enums.BusinessExceptionEnum; import com.casic.missiles.modular.system.exception.BusinessException; @@ -20,7 +18,6 @@ import lombok.RequiredArgsConstructor; import org.springframework.web.bind.annotation.*; -import java.util.List; import java.util.Objects; /** @@ -46,8 +43,8 @@ Page page = PageFactory.defaultPage(); QueryWrapper queryWrapper = new QueryWrapper<>(); queryWrapper.like(ObjectUtil.isNotEmpty(requestDTO.getRobotName()), "robot_name", requestDTO.getRobotName()); - queryWrapper.eq("robot_status", "1"); - return ReturnUtil.success(super.packForBT(iRobotDogInfoService.page(page,queryWrapper))); + queryWrapper.eq("valid", "1"); + return ReturnUtil.success(super.packForBT(iRobotDogInfoService.page(page, queryWrapper))); } @ApiOperation("增加设备类型") @@ -77,5 +74,33 @@ }); return ReturnUtil.success(iRobotDogInfoService.batchDeleteDogs(idsDTO.getIds())); } + + @ApiOperation("获取机器狗下拉列表") + @PostMapping("/selectDogList") + @ResponseBody + public ReturnDTO selectDogList() { + return ReturnUtil.success(iRobotDogInfoService.selectDogList()); + } + + @ApiOperation("根据设备获取巡航线,id魏机器狗id") + @PostMapping("/selectLines") + @ResponseBody + public ReturnDTO selectLines(@RequestBody IdDTO idDTO) { + Assert.isFalse(Objects.isNull(idDTO.getId()), () -> { + throw new BusinessException(BusinessExceptionEnum.ID_NULL); + }); + return ReturnUtil.success(iRobotDogInfoService.selectLines(idDTO.getId())); + } + + + @ApiOperation("根据设备编号获取机器狗信息") + @PostMapping("/getRobotDogByCode") + @ResponseBody + public ReturnDTO getRobotDogByCode(@RequestBody RobotDogInfoDTO requestDTO) { + QueryWrapper queryWrapper = new QueryWrapper<>(); + queryWrapper.eq(ObjectUtil.isNotEmpty(requestDTO.getRobotCode()), "robot_code", requestDTO.getRobotCode()); + queryWrapper.eq("robot_status", "1"); + return ReturnUtil.success(iRobotDogInfoService.list(queryWrapper)); + } } diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/controller/RouteInfoController.java b/casic-server/src/main/java/com/casic/missiles/modular/system/controller/RouteInfoController.java index d6ccb8e..0a24375 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/system/controller/RouteInfoController.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/controller/RouteInfoController.java @@ -9,6 +9,7 @@ import com.casic.missiles.modular.system.dto.IdsDTO; import com.casic.missiles.modular.system.dto.ReturnDTO; import com.casic.missiles.modular.system.dto.RouteInfoDTO; +import com.casic.missiles.modular.system.dto.SelectDTO; import com.casic.missiles.modular.system.entity.RouteInfo; import com.casic.missiles.modular.system.enums.BusinessExceptionEnum; import com.casic.missiles.modular.system.exception.BusinessException; @@ -74,14 +75,26 @@ return ReturnUtil.success(iRouteInfoService.editRouteInfo(routeInfo)); } + /** + * startRecordMap: 'w/', // 开始地图录入 + * endRecordMap: 'e/', // 完成地图录入 + * startRecordRoutInfo: 'x/', // 添加巡检点 + * endRecordRoutInfo: 'c/', // 保存巡检点和地图 + * delRecordRoutInfo: 'v/', // 删除所有的巡检点和地图 + * startNavigation: 'a/', // 开始巡检 + * pauseNavigation: 's/', // 暂停巡检 + * recoverNavigation: 'd/', // 恢复巡检 + * @param command + * @param devCode + * @return + */ @ApiOperation("控制指令类型(startRecordMap-开始地图录制,endRecordMap-完成地图录制," + - "startRecordRoutInfo-开始巡检线路录入,endRecordRoutInfo-结束巡检线路录入,"+ + "startRecordRoutInfo-开始巡检线路录入,endRecordRoutInfo-结束巡检线路录入," + "startPatrol-开始巡检,stopPatrol-结束巡检") @PostMapping("/control") @ResponseBody - public ResponseDataDTO control(String command, Long robotDogId) { - iRouteInfoService.control(command, robotDogId); - return ResponseDataDTO.success(); + public ReturnDTO control(String command, String devCode) { + return ReturnUtil.success(iRouteInfoService.control(command, devCode)); } } diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/dao/RobotDogInfoMapper.java b/casic-server/src/main/java/com/casic/missiles/modular/system/dao/RobotDogInfoMapper.java index bdf4553..0bbdf6c 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/system/dao/RobotDogInfoMapper.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/dao/RobotDogInfoMapper.java @@ -1,8 +1,13 @@ package com.casic.missiles.modular.system.dao; import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.casic.missiles.modular.system.dto.SelectDTO; import com.casic.missiles.modular.system.entity.RobotDogInfo; import org.apache.ibatis.annotations.Mapper; +import org.apache.ibatis.annotations.Param; +import org.apache.ibatis.annotations.Select; + +import java.util.List; /** *

@@ -15,4 +20,11 @@ @Mapper public interface RobotDogInfoMapper extends BaseMapper { + + @Select("SELECT robot_name as `name`,id,robot_code as `code` FROM `robot_dog_info` where valid='1'") + List selectDogList(); + + @Select("SELECT route_name as `name`,id FROM `route_info` where robot_id = #{robotId} and status='1'") + List selectLines(@Param("robotId") Long robotId); + } diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/dao/RouteInfoMapper.java b/casic-server/src/main/java/com/casic/missiles/modular/system/dao/RouteInfoMapper.java index bae594b..844b1fe 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/system/dao/RouteInfoMapper.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/dao/RouteInfoMapper.java @@ -5,8 +5,10 @@ import com.casic.missiles.core.datascope.DataScope; import com.casic.missiles.modular.system.dto.RouteInfoDTO; import com.casic.missiles.modular.system.entity.RouteInfo; +import org.apache.ibatis.annotations.Delete; import org.apache.ibatis.annotations.Mapper; import org.apache.ibatis.annotations.Param; +import org.apache.ibatis.annotations.Select; /** *

@@ -22,4 +24,8 @@ Page listPage(@Param("page") Page page, @Param("requestDTO") RouteInfoDTO requestDTO); + @Select("SELECT ri.id FROM `route_info` ri LEFT join robot_dog_info rd on ri.robot_id= rd.id " + + "where ri.status='1' and rd.robot_code = #{devCode} limit 1") + Long getLineId(@Param("devCode") String devCode); + } diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/dao/mapping/PatrolLogMapper.xml b/casic-server/src/main/java/com/casic/missiles/modular/system/dao/mapping/PatrolLogMapper.xml index 30aebdd..abeb14b 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/system/dao/mapping/PatrolLogMapper.xml +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/dao/mapping/PatrolLogMapper.xml @@ -1,6 +1,6 @@ - + diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/dao/mapping/RobotDogInfoMapper.xml b/casic-server/src/main/java/com/casic/missiles/modular/system/dao/mapping/RobotDogInfoMapper.xml index 182ca3d..aa18c82 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/system/dao/mapping/RobotDogInfoMapper.xml +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/dao/mapping/RobotDogInfoMapper.xml @@ -1,6 +1,6 @@ - + diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/dao/mapping/RouteInfoDetailMapper.xml b/casic-server/src/main/java/com/casic/missiles/modular/system/dao/mapping/RouteInfoDetailMapper.xml index 1e36465..a224cde 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/system/dao/mapping/RouteInfoDetailMapper.xml +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/dao/mapping/RouteInfoDetailMapper.xml @@ -1,6 +1,6 @@ - + diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/dao/mapping/RouteInfoMapper.xml b/casic-server/src/main/java/com/casic/missiles/modular/system/dao/mapping/RouteInfoMapper.xml index 2542993..6e5acda 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/system/dao/mapping/RouteInfoMapper.xml +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/dao/mapping/RouteInfoMapper.xml @@ -1,6 +1,6 @@ - + diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/dto/PatrolLogDTO.java b/casic-server/src/main/java/com/casic/missiles/modular/system/dto/PatrolLogDTO.java new file mode 100644 index 0000000..1b7b208 --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/dto/PatrolLogDTO.java @@ -0,0 +1,25 @@ +package com.casic.missiles.modular.system.dto; + + +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import java.io.Serializable; + + +@Data +public class PatrolLogDTO implements Serializable { + + private static final long serialVersionUID = 1L; + +// @ApiModelProperty("机器人id") +// private Long robotId; + @ApiModelProperty("巡航线id") + private Long routeInfoId; +// @ApiModelProperty("小区名称") +// private String communityName; +// @ApiModelProperty("小区地址") +// private String communityAddress; + + +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/dto/RobotDogInfoDTO.java b/casic-server/src/main/java/com/casic/missiles/modular/system/dto/RobotDogInfoDTO.java index 99f94ff..e76a861 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/system/dto/RobotDogInfoDTO.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/dto/RobotDogInfoDTO.java @@ -15,5 +15,8 @@ @ApiModelProperty("设备名称") private String robotName; + @ApiModelProperty("设备编号") + private String robotCode; + } diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/dto/SelectDTO.java b/casic-server/src/main/java/com/casic/missiles/modular/system/dto/SelectDTO.java new file mode 100644 index 0000000..b8156d7 --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/dto/SelectDTO.java @@ -0,0 +1,26 @@ +package com.casic.missiles.modular.system.dto; + + +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import java.io.Serializable; + + +@Data +public class SelectDTO implements Serializable { + + private static final long serialVersionUID = 1L; + + + @ApiModelProperty("id") + private Long id; + + @ApiModelProperty("name") + private String name; + + @ApiModelProperty("code") + private String code; + + +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/entity/RobotDogInfo.java b/casic-server/src/main/java/com/casic/missiles/modular/system/entity/RobotDogInfo.java index 454b1bc..bfb9c50 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/system/entity/RobotDogInfo.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/entity/RobotDogInfo.java @@ -46,10 +46,14 @@ @TableField("robot_port") private Integer robotPort; - @ApiModelProperty("机器狗状态(1,有效,0无效)") + @ApiModelProperty("机器狗状态(1,在线,离线)") @TableField("robot_status") private String robotStatus; + @ApiModelProperty("删除状态(1,有效,0无效)") + @TableField("valid") + private String valid; + @ApiModelProperty("电量") @TableField("robot_cell") private String robotCell; diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/entity/RouteInfo.java b/casic-server/src/main/java/com/casic/missiles/modular/system/entity/RouteInfo.java index 9b88a35..299594b 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/system/entity/RouteInfo.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/entity/RouteInfo.java @@ -43,6 +43,10 @@ @TableField("route_name") private String routeName; + @ApiModelProperty("状态1:有效,0:无效") + @TableField("status") + private String status; + @ApiModelProperty("机器人ID") @TableField("robot_id") private Long robotId; @@ -61,4 +65,9 @@ @TableField(exist = false) private List routeInfoDetailList; + + @ApiModelProperty("机器人名称") + @TableField(exist = false) + private String robotName; + } diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/enums/BusinessExceptionEnum.java b/casic-server/src/main/java/com/casic/missiles/modular/system/enums/BusinessExceptionEnum.java index 7924c30..6bafabf 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/system/enums/BusinessExceptionEnum.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/enums/BusinessExceptionEnum.java @@ -29,7 +29,9 @@ MONITOR_VALID_FAILED(2099, "云台登录地址重复"), - DEVICE_DUPLICATE(2011, "设备编号重复"); + DEVICE_DUPLICATE(2011, "设备编号重复"), + + CONFIG_FAIL(4005, "设备通讯一次,下发失败"); private Integer code; diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/netty/NettyServer.java b/casic-server/src/main/java/com/casic/missiles/modular/system/netty/NettyServer.java index 52b8451..0e608c3 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/system/netty/NettyServer.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/netty/NettyServer.java @@ -39,7 +39,7 @@ .childOption(ChannelOption.SO_KEEPALIVE, true); // 绑定端口并开始接受进来的连接 - future = bootstrap.bind(7000).sync(); + future = bootstrap.bind(11647).sync(); // 等待服务器套接字关闭 future.channel().closeFuture().sync(); diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/controller/PatrolLogController.java b/casic-server/src/main/java/com/casic/missiles/modular/system/controller/PatrolLogController.java index b277154..0b5a69b 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/system/controller/PatrolLogController.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/controller/PatrolLogController.java @@ -1,9 +1,20 @@ package com.casic.missiles.modular.system.controller; -import org.springframework.web.bind.annotation.RequestMapping; - -import org.springframework.web.bind.annotation.RestController; +import cn.hutool.core.util.ObjectUtil; +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.casic.missiles.core.base.controller.ExportController; +import com.casic.missiles.core.page.PageFactory; +import com.casic.missiles.modular.system.dto.PatrolLogDTO; +import com.casic.missiles.modular.system.dto.ReturnDTO; +import com.casic.missiles.modular.system.entity.PatrolLog; +import com.casic.missiles.modular.system.service.IPatrolLogService; +import com.casic.missiles.modular.system.util.ReturnUtil; +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiOperation; +import lombok.RequiredArgsConstructor; +import org.springframework.web.bind.annotation.*; /** *

@@ -13,9 +24,23 @@ * @author zt * @since 2025-03-14 */ +@Api(tags = "巡航日志管理模块") +@RequiredArgsConstructor @RestController @RequestMapping("/system/patrolLog") -public class PatrolLogController { +public class PatrolLogController extends ExportController { + private final IPatrolLogService iPatrolLogService; + + @ApiOperation("查询分页接口") + @PostMapping("/listPage") + @ResponseBody + public ReturnDTO listPage(@RequestBody PatrolLogDTO requestDTO) { + Page page = PageFactory.defaultPage(); + QueryWrapper queryWrapper = new QueryWrapper<>(); + queryWrapper.eq(ObjectUtil.isNotEmpty(requestDTO.getRouteInfoId()), "route_info_id", requestDTO.getRouteInfoId()); + queryWrapper.orderByDesc("createTime"); + return ReturnUtil.success(super.packForBT(iPatrolLogService.page(page, queryWrapper))); + } } diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/controller/ReceiveDeviceDataController.java b/casic-server/src/main/java/com/casic/missiles/modular/system/controller/ReceiveDeviceDataController.java index e0bc9c6..75ae29e 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/system/controller/ReceiveDeviceDataController.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/controller/ReceiveDeviceDataController.java @@ -34,7 +34,6 @@ CompletableFuture.runAsync(() -> { iRouteInfoService.processData(map); -// ResponseResolver.makeResponse(map); } ); return ReturnUtil.success(); diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/controller/RobotDogInfoController.java b/casic-server/src/main/java/com/casic/missiles/modular/system/controller/RobotDogInfoController.java index baffa6f..004b2bf 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/system/controller/RobotDogInfoController.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/controller/RobotDogInfoController.java @@ -7,9 +7,7 @@ import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.casic.missiles.core.base.controller.ExportController; import com.casic.missiles.core.page.PageFactory; -import com.casic.missiles.modular.system.dto.IdsDTO; -import com.casic.missiles.modular.system.dto.ReturnDTO; -import com.casic.missiles.modular.system.dto.RobotDogInfoDTO; +import com.casic.missiles.modular.system.dto.*; import com.casic.missiles.modular.system.entity.RobotDogInfo; import com.casic.missiles.modular.system.enums.BusinessExceptionEnum; import com.casic.missiles.modular.system.exception.BusinessException; @@ -20,7 +18,6 @@ import lombok.RequiredArgsConstructor; import org.springframework.web.bind.annotation.*; -import java.util.List; import java.util.Objects; /** @@ -46,8 +43,8 @@ Page page = PageFactory.defaultPage(); QueryWrapper queryWrapper = new QueryWrapper<>(); queryWrapper.like(ObjectUtil.isNotEmpty(requestDTO.getRobotName()), "robot_name", requestDTO.getRobotName()); - queryWrapper.eq("robot_status", "1"); - return ReturnUtil.success(super.packForBT(iRobotDogInfoService.page(page,queryWrapper))); + queryWrapper.eq("valid", "1"); + return ReturnUtil.success(super.packForBT(iRobotDogInfoService.page(page, queryWrapper))); } @ApiOperation("增加设备类型") @@ -77,5 +74,33 @@ }); return ReturnUtil.success(iRobotDogInfoService.batchDeleteDogs(idsDTO.getIds())); } + + @ApiOperation("获取机器狗下拉列表") + @PostMapping("/selectDogList") + @ResponseBody + public ReturnDTO selectDogList() { + return ReturnUtil.success(iRobotDogInfoService.selectDogList()); + } + + @ApiOperation("根据设备获取巡航线,id魏机器狗id") + @PostMapping("/selectLines") + @ResponseBody + public ReturnDTO selectLines(@RequestBody IdDTO idDTO) { + Assert.isFalse(Objects.isNull(idDTO.getId()), () -> { + throw new BusinessException(BusinessExceptionEnum.ID_NULL); + }); + return ReturnUtil.success(iRobotDogInfoService.selectLines(idDTO.getId())); + } + + + @ApiOperation("根据设备编号获取机器狗信息") + @PostMapping("/getRobotDogByCode") + @ResponseBody + public ReturnDTO getRobotDogByCode(@RequestBody RobotDogInfoDTO requestDTO) { + QueryWrapper queryWrapper = new QueryWrapper<>(); + queryWrapper.eq(ObjectUtil.isNotEmpty(requestDTO.getRobotCode()), "robot_code", requestDTO.getRobotCode()); + queryWrapper.eq("robot_status", "1"); + return ReturnUtil.success(iRobotDogInfoService.list(queryWrapper)); + } } diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/controller/RouteInfoController.java b/casic-server/src/main/java/com/casic/missiles/modular/system/controller/RouteInfoController.java index d6ccb8e..0a24375 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/system/controller/RouteInfoController.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/controller/RouteInfoController.java @@ -9,6 +9,7 @@ import com.casic.missiles.modular.system.dto.IdsDTO; import com.casic.missiles.modular.system.dto.ReturnDTO; import com.casic.missiles.modular.system.dto.RouteInfoDTO; +import com.casic.missiles.modular.system.dto.SelectDTO; import com.casic.missiles.modular.system.entity.RouteInfo; import com.casic.missiles.modular.system.enums.BusinessExceptionEnum; import com.casic.missiles.modular.system.exception.BusinessException; @@ -74,14 +75,26 @@ return ReturnUtil.success(iRouteInfoService.editRouteInfo(routeInfo)); } + /** + * startRecordMap: 'w/', // 开始地图录入 + * endRecordMap: 'e/', // 完成地图录入 + * startRecordRoutInfo: 'x/', // 添加巡检点 + * endRecordRoutInfo: 'c/', // 保存巡检点和地图 + * delRecordRoutInfo: 'v/', // 删除所有的巡检点和地图 + * startNavigation: 'a/', // 开始巡检 + * pauseNavigation: 's/', // 暂停巡检 + * recoverNavigation: 'd/', // 恢复巡检 + * @param command + * @param devCode + * @return + */ @ApiOperation("控制指令类型(startRecordMap-开始地图录制,endRecordMap-完成地图录制," + - "startRecordRoutInfo-开始巡检线路录入,endRecordRoutInfo-结束巡检线路录入,"+ + "startRecordRoutInfo-开始巡检线路录入,endRecordRoutInfo-结束巡检线路录入," + "startPatrol-开始巡检,stopPatrol-结束巡检") @PostMapping("/control") @ResponseBody - public ResponseDataDTO control(String command, Long robotDogId) { - iRouteInfoService.control(command, robotDogId); - return ResponseDataDTO.success(); + public ReturnDTO control(String command, String devCode) { + return ReturnUtil.success(iRouteInfoService.control(command, devCode)); } } diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/dao/RobotDogInfoMapper.java b/casic-server/src/main/java/com/casic/missiles/modular/system/dao/RobotDogInfoMapper.java index bdf4553..0bbdf6c 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/system/dao/RobotDogInfoMapper.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/dao/RobotDogInfoMapper.java @@ -1,8 +1,13 @@ package com.casic.missiles.modular.system.dao; import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.casic.missiles.modular.system.dto.SelectDTO; import com.casic.missiles.modular.system.entity.RobotDogInfo; import org.apache.ibatis.annotations.Mapper; +import org.apache.ibatis.annotations.Param; +import org.apache.ibatis.annotations.Select; + +import java.util.List; /** *

@@ -15,4 +20,11 @@ @Mapper public interface RobotDogInfoMapper extends BaseMapper { + + @Select("SELECT robot_name as `name`,id,robot_code as `code` FROM `robot_dog_info` where valid='1'") + List selectDogList(); + + @Select("SELECT route_name as `name`,id FROM `route_info` where robot_id = #{robotId} and status='1'") + List selectLines(@Param("robotId") Long robotId); + } diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/dao/RouteInfoMapper.java b/casic-server/src/main/java/com/casic/missiles/modular/system/dao/RouteInfoMapper.java index bae594b..844b1fe 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/system/dao/RouteInfoMapper.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/dao/RouteInfoMapper.java @@ -5,8 +5,10 @@ import com.casic.missiles.core.datascope.DataScope; import com.casic.missiles.modular.system.dto.RouteInfoDTO; import com.casic.missiles.modular.system.entity.RouteInfo; +import org.apache.ibatis.annotations.Delete; import org.apache.ibatis.annotations.Mapper; import org.apache.ibatis.annotations.Param; +import org.apache.ibatis.annotations.Select; /** *

@@ -22,4 +24,8 @@ Page listPage(@Param("page") Page page, @Param("requestDTO") RouteInfoDTO requestDTO); + @Select("SELECT ri.id FROM `route_info` ri LEFT join robot_dog_info rd on ri.robot_id= rd.id " + + "where ri.status='1' and rd.robot_code = #{devCode} limit 1") + Long getLineId(@Param("devCode") String devCode); + } diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/dao/mapping/PatrolLogMapper.xml b/casic-server/src/main/java/com/casic/missiles/modular/system/dao/mapping/PatrolLogMapper.xml index 30aebdd..abeb14b 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/system/dao/mapping/PatrolLogMapper.xml +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/dao/mapping/PatrolLogMapper.xml @@ -1,6 +1,6 @@ - + diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/dao/mapping/RobotDogInfoMapper.xml b/casic-server/src/main/java/com/casic/missiles/modular/system/dao/mapping/RobotDogInfoMapper.xml index 182ca3d..aa18c82 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/system/dao/mapping/RobotDogInfoMapper.xml +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/dao/mapping/RobotDogInfoMapper.xml @@ -1,6 +1,6 @@ - + diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/dao/mapping/RouteInfoDetailMapper.xml b/casic-server/src/main/java/com/casic/missiles/modular/system/dao/mapping/RouteInfoDetailMapper.xml index 1e36465..a224cde 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/system/dao/mapping/RouteInfoDetailMapper.xml +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/dao/mapping/RouteInfoDetailMapper.xml @@ -1,6 +1,6 @@ - + diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/dao/mapping/RouteInfoMapper.xml b/casic-server/src/main/java/com/casic/missiles/modular/system/dao/mapping/RouteInfoMapper.xml index 2542993..6e5acda 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/system/dao/mapping/RouteInfoMapper.xml +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/dao/mapping/RouteInfoMapper.xml @@ -1,6 +1,6 @@ - + diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/dto/PatrolLogDTO.java b/casic-server/src/main/java/com/casic/missiles/modular/system/dto/PatrolLogDTO.java new file mode 100644 index 0000000..1b7b208 --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/dto/PatrolLogDTO.java @@ -0,0 +1,25 @@ +package com.casic.missiles.modular.system.dto; + + +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import java.io.Serializable; + + +@Data +public class PatrolLogDTO implements Serializable { + + private static final long serialVersionUID = 1L; + +// @ApiModelProperty("机器人id") +// private Long robotId; + @ApiModelProperty("巡航线id") + private Long routeInfoId; +// @ApiModelProperty("小区名称") +// private String communityName; +// @ApiModelProperty("小区地址") +// private String communityAddress; + + +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/dto/RobotDogInfoDTO.java b/casic-server/src/main/java/com/casic/missiles/modular/system/dto/RobotDogInfoDTO.java index 99f94ff..e76a861 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/system/dto/RobotDogInfoDTO.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/dto/RobotDogInfoDTO.java @@ -15,5 +15,8 @@ @ApiModelProperty("设备名称") private String robotName; + @ApiModelProperty("设备编号") + private String robotCode; + } diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/dto/SelectDTO.java b/casic-server/src/main/java/com/casic/missiles/modular/system/dto/SelectDTO.java new file mode 100644 index 0000000..b8156d7 --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/dto/SelectDTO.java @@ -0,0 +1,26 @@ +package com.casic.missiles.modular.system.dto; + + +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import java.io.Serializable; + + +@Data +public class SelectDTO implements Serializable { + + private static final long serialVersionUID = 1L; + + + @ApiModelProperty("id") + private Long id; + + @ApiModelProperty("name") + private String name; + + @ApiModelProperty("code") + private String code; + + +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/entity/RobotDogInfo.java b/casic-server/src/main/java/com/casic/missiles/modular/system/entity/RobotDogInfo.java index 454b1bc..bfb9c50 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/system/entity/RobotDogInfo.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/entity/RobotDogInfo.java @@ -46,10 +46,14 @@ @TableField("robot_port") private Integer robotPort; - @ApiModelProperty("机器狗状态(1,有效,0无效)") + @ApiModelProperty("机器狗状态(1,在线,离线)") @TableField("robot_status") private String robotStatus; + @ApiModelProperty("删除状态(1,有效,0无效)") + @TableField("valid") + private String valid; + @ApiModelProperty("电量") @TableField("robot_cell") private String robotCell; diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/entity/RouteInfo.java b/casic-server/src/main/java/com/casic/missiles/modular/system/entity/RouteInfo.java index 9b88a35..299594b 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/system/entity/RouteInfo.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/entity/RouteInfo.java @@ -43,6 +43,10 @@ @TableField("route_name") private String routeName; + @ApiModelProperty("状态1:有效,0:无效") + @TableField("status") + private String status; + @ApiModelProperty("机器人ID") @TableField("robot_id") private Long robotId; @@ -61,4 +65,9 @@ @TableField(exist = false) private List routeInfoDetailList; + + @ApiModelProperty("机器人名称") + @TableField(exist = false) + private String robotName; + } diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/enums/BusinessExceptionEnum.java b/casic-server/src/main/java/com/casic/missiles/modular/system/enums/BusinessExceptionEnum.java index 7924c30..6bafabf 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/system/enums/BusinessExceptionEnum.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/enums/BusinessExceptionEnum.java @@ -29,7 +29,9 @@ MONITOR_VALID_FAILED(2099, "云台登录地址重复"), - DEVICE_DUPLICATE(2011, "设备编号重复"); + DEVICE_DUPLICATE(2011, "设备编号重复"), + + CONFIG_FAIL(4005, "设备通讯一次,下发失败"); private Integer code; diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/netty/NettyServer.java b/casic-server/src/main/java/com/casic/missiles/modular/system/netty/NettyServer.java index 52b8451..0e608c3 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/system/netty/NettyServer.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/netty/NettyServer.java @@ -39,7 +39,7 @@ .childOption(ChannelOption.SO_KEEPALIVE, true); // 绑定端口并开始接受进来的连接 - future = bootstrap.bind(7000).sync(); + future = bootstrap.bind(11647).sync(); // 等待服务器套接字关闭 future.channel().closeFuture().sync(); diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/netty/RobotChannelHandler.java b/casic-server/src/main/java/com/casic/missiles/modular/system/netty/RobotChannelHandler.java index 11878ff..ac53fc7 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/system/netty/RobotChannelHandler.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/netty/RobotChannelHandler.java @@ -1,6 +1,7 @@ package com.casic.missiles.modular.system.netty; +import cn.hutool.core.util.ObjectUtil; import com.casic.missiles.modular.system.service.impl.RouteInfoServiceImpl; import io.netty.channel.Channel; import io.netty.channel.ChannelHandlerContext; @@ -43,16 +44,16 @@ executor.submit(new Runnable() { @Override public void run() { - String encryptData = msg.toString(); - DeviceCommon.devcodeMap.put(encryptData, channel.id().asLongText()); - System.out.println("接收到加密数据:" + encryptData); - routeInfoService.getMsg(1L,encryptData); -// String decryptData = RSAUtil.getDecryptMsg(encryptData); -// if (ObjectUtil.isNotEmpty(decryptData) && decryptData.contains(",")) { -// String devCode = decryptData.split(",")[0]; -// DeviceCommon.devcodeMap.put(devCode, channel.id().asLongText()); -// dataPanGasService.process(decryptData); -// } + String dataMsg = msg.toString(); + log.info("接收到机器狗数据:" + dataMsg); + if(ObjectUtil.isNotEmpty(dataMsg)){ + //只接收设备基本信息,其他过滤 + if(dataMsg.startsWith("devCode:")){ + String devCode = dataMsg.substring(8); + DeviceCommon.devcodeMap.put(devCode, channel.id().asLongText()); + routeInfoService.getMsg(devCode,dataMsg); + } + } } }); } diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/controller/PatrolLogController.java b/casic-server/src/main/java/com/casic/missiles/modular/system/controller/PatrolLogController.java index b277154..0b5a69b 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/system/controller/PatrolLogController.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/controller/PatrolLogController.java @@ -1,9 +1,20 @@ package com.casic.missiles.modular.system.controller; -import org.springframework.web.bind.annotation.RequestMapping; - -import org.springframework.web.bind.annotation.RestController; +import cn.hutool.core.util.ObjectUtil; +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.casic.missiles.core.base.controller.ExportController; +import com.casic.missiles.core.page.PageFactory; +import com.casic.missiles.modular.system.dto.PatrolLogDTO; +import com.casic.missiles.modular.system.dto.ReturnDTO; +import com.casic.missiles.modular.system.entity.PatrolLog; +import com.casic.missiles.modular.system.service.IPatrolLogService; +import com.casic.missiles.modular.system.util.ReturnUtil; +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiOperation; +import lombok.RequiredArgsConstructor; +import org.springframework.web.bind.annotation.*; /** *

@@ -13,9 +24,23 @@ * @author zt * @since 2025-03-14 */ +@Api(tags = "巡航日志管理模块") +@RequiredArgsConstructor @RestController @RequestMapping("/system/patrolLog") -public class PatrolLogController { +public class PatrolLogController extends ExportController { + private final IPatrolLogService iPatrolLogService; + + @ApiOperation("查询分页接口") + @PostMapping("/listPage") + @ResponseBody + public ReturnDTO listPage(@RequestBody PatrolLogDTO requestDTO) { + Page page = PageFactory.defaultPage(); + QueryWrapper queryWrapper = new QueryWrapper<>(); + queryWrapper.eq(ObjectUtil.isNotEmpty(requestDTO.getRouteInfoId()), "route_info_id", requestDTO.getRouteInfoId()); + queryWrapper.orderByDesc("createTime"); + return ReturnUtil.success(super.packForBT(iPatrolLogService.page(page, queryWrapper))); + } } diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/controller/ReceiveDeviceDataController.java b/casic-server/src/main/java/com/casic/missiles/modular/system/controller/ReceiveDeviceDataController.java index e0bc9c6..75ae29e 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/system/controller/ReceiveDeviceDataController.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/controller/ReceiveDeviceDataController.java @@ -34,7 +34,6 @@ CompletableFuture.runAsync(() -> { iRouteInfoService.processData(map); -// ResponseResolver.makeResponse(map); } ); return ReturnUtil.success(); diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/controller/RobotDogInfoController.java b/casic-server/src/main/java/com/casic/missiles/modular/system/controller/RobotDogInfoController.java index baffa6f..004b2bf 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/system/controller/RobotDogInfoController.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/controller/RobotDogInfoController.java @@ -7,9 +7,7 @@ import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.casic.missiles.core.base.controller.ExportController; import com.casic.missiles.core.page.PageFactory; -import com.casic.missiles.modular.system.dto.IdsDTO; -import com.casic.missiles.modular.system.dto.ReturnDTO; -import com.casic.missiles.modular.system.dto.RobotDogInfoDTO; +import com.casic.missiles.modular.system.dto.*; import com.casic.missiles.modular.system.entity.RobotDogInfo; import com.casic.missiles.modular.system.enums.BusinessExceptionEnum; import com.casic.missiles.modular.system.exception.BusinessException; @@ -20,7 +18,6 @@ import lombok.RequiredArgsConstructor; import org.springframework.web.bind.annotation.*; -import java.util.List; import java.util.Objects; /** @@ -46,8 +43,8 @@ Page page = PageFactory.defaultPage(); QueryWrapper queryWrapper = new QueryWrapper<>(); queryWrapper.like(ObjectUtil.isNotEmpty(requestDTO.getRobotName()), "robot_name", requestDTO.getRobotName()); - queryWrapper.eq("robot_status", "1"); - return ReturnUtil.success(super.packForBT(iRobotDogInfoService.page(page,queryWrapper))); + queryWrapper.eq("valid", "1"); + return ReturnUtil.success(super.packForBT(iRobotDogInfoService.page(page, queryWrapper))); } @ApiOperation("增加设备类型") @@ -77,5 +74,33 @@ }); return ReturnUtil.success(iRobotDogInfoService.batchDeleteDogs(idsDTO.getIds())); } + + @ApiOperation("获取机器狗下拉列表") + @PostMapping("/selectDogList") + @ResponseBody + public ReturnDTO selectDogList() { + return ReturnUtil.success(iRobotDogInfoService.selectDogList()); + } + + @ApiOperation("根据设备获取巡航线,id魏机器狗id") + @PostMapping("/selectLines") + @ResponseBody + public ReturnDTO selectLines(@RequestBody IdDTO idDTO) { + Assert.isFalse(Objects.isNull(idDTO.getId()), () -> { + throw new BusinessException(BusinessExceptionEnum.ID_NULL); + }); + return ReturnUtil.success(iRobotDogInfoService.selectLines(idDTO.getId())); + } + + + @ApiOperation("根据设备编号获取机器狗信息") + @PostMapping("/getRobotDogByCode") + @ResponseBody + public ReturnDTO getRobotDogByCode(@RequestBody RobotDogInfoDTO requestDTO) { + QueryWrapper queryWrapper = new QueryWrapper<>(); + queryWrapper.eq(ObjectUtil.isNotEmpty(requestDTO.getRobotCode()), "robot_code", requestDTO.getRobotCode()); + queryWrapper.eq("robot_status", "1"); + return ReturnUtil.success(iRobotDogInfoService.list(queryWrapper)); + } } diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/controller/RouteInfoController.java b/casic-server/src/main/java/com/casic/missiles/modular/system/controller/RouteInfoController.java index d6ccb8e..0a24375 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/system/controller/RouteInfoController.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/controller/RouteInfoController.java @@ -9,6 +9,7 @@ import com.casic.missiles.modular.system.dto.IdsDTO; import com.casic.missiles.modular.system.dto.ReturnDTO; import com.casic.missiles.modular.system.dto.RouteInfoDTO; +import com.casic.missiles.modular.system.dto.SelectDTO; import com.casic.missiles.modular.system.entity.RouteInfo; import com.casic.missiles.modular.system.enums.BusinessExceptionEnum; import com.casic.missiles.modular.system.exception.BusinessException; @@ -74,14 +75,26 @@ return ReturnUtil.success(iRouteInfoService.editRouteInfo(routeInfo)); } + /** + * startRecordMap: 'w/', // 开始地图录入 + * endRecordMap: 'e/', // 完成地图录入 + * startRecordRoutInfo: 'x/', // 添加巡检点 + * endRecordRoutInfo: 'c/', // 保存巡检点和地图 + * delRecordRoutInfo: 'v/', // 删除所有的巡检点和地图 + * startNavigation: 'a/', // 开始巡检 + * pauseNavigation: 's/', // 暂停巡检 + * recoverNavigation: 'd/', // 恢复巡检 + * @param command + * @param devCode + * @return + */ @ApiOperation("控制指令类型(startRecordMap-开始地图录制,endRecordMap-完成地图录制," + - "startRecordRoutInfo-开始巡检线路录入,endRecordRoutInfo-结束巡检线路录入,"+ + "startRecordRoutInfo-开始巡检线路录入,endRecordRoutInfo-结束巡检线路录入," + "startPatrol-开始巡检,stopPatrol-结束巡检") @PostMapping("/control") @ResponseBody - public ResponseDataDTO control(String command, Long robotDogId) { - iRouteInfoService.control(command, robotDogId); - return ResponseDataDTO.success(); + public ReturnDTO control(String command, String devCode) { + return ReturnUtil.success(iRouteInfoService.control(command, devCode)); } } diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/dao/RobotDogInfoMapper.java b/casic-server/src/main/java/com/casic/missiles/modular/system/dao/RobotDogInfoMapper.java index bdf4553..0bbdf6c 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/system/dao/RobotDogInfoMapper.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/dao/RobotDogInfoMapper.java @@ -1,8 +1,13 @@ package com.casic.missiles.modular.system.dao; import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.casic.missiles.modular.system.dto.SelectDTO; import com.casic.missiles.modular.system.entity.RobotDogInfo; import org.apache.ibatis.annotations.Mapper; +import org.apache.ibatis.annotations.Param; +import org.apache.ibatis.annotations.Select; + +import java.util.List; /** *

@@ -15,4 +20,11 @@ @Mapper public interface RobotDogInfoMapper extends BaseMapper { + + @Select("SELECT robot_name as `name`,id,robot_code as `code` FROM `robot_dog_info` where valid='1'") + List selectDogList(); + + @Select("SELECT route_name as `name`,id FROM `route_info` where robot_id = #{robotId} and status='1'") + List selectLines(@Param("robotId") Long robotId); + } diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/dao/RouteInfoMapper.java b/casic-server/src/main/java/com/casic/missiles/modular/system/dao/RouteInfoMapper.java index bae594b..844b1fe 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/system/dao/RouteInfoMapper.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/dao/RouteInfoMapper.java @@ -5,8 +5,10 @@ import com.casic.missiles.core.datascope.DataScope; import com.casic.missiles.modular.system.dto.RouteInfoDTO; import com.casic.missiles.modular.system.entity.RouteInfo; +import org.apache.ibatis.annotations.Delete; import org.apache.ibatis.annotations.Mapper; import org.apache.ibatis.annotations.Param; +import org.apache.ibatis.annotations.Select; /** *

@@ -22,4 +24,8 @@ Page listPage(@Param("page") Page page, @Param("requestDTO") RouteInfoDTO requestDTO); + @Select("SELECT ri.id FROM `route_info` ri LEFT join robot_dog_info rd on ri.robot_id= rd.id " + + "where ri.status='1' and rd.robot_code = #{devCode} limit 1") + Long getLineId(@Param("devCode") String devCode); + } diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/dao/mapping/PatrolLogMapper.xml b/casic-server/src/main/java/com/casic/missiles/modular/system/dao/mapping/PatrolLogMapper.xml index 30aebdd..abeb14b 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/system/dao/mapping/PatrolLogMapper.xml +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/dao/mapping/PatrolLogMapper.xml @@ -1,6 +1,6 @@ - + diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/dao/mapping/RobotDogInfoMapper.xml b/casic-server/src/main/java/com/casic/missiles/modular/system/dao/mapping/RobotDogInfoMapper.xml index 182ca3d..aa18c82 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/system/dao/mapping/RobotDogInfoMapper.xml +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/dao/mapping/RobotDogInfoMapper.xml @@ -1,6 +1,6 @@ - + diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/dao/mapping/RouteInfoDetailMapper.xml b/casic-server/src/main/java/com/casic/missiles/modular/system/dao/mapping/RouteInfoDetailMapper.xml index 1e36465..a224cde 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/system/dao/mapping/RouteInfoDetailMapper.xml +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/dao/mapping/RouteInfoDetailMapper.xml @@ -1,6 +1,6 @@ - + diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/dao/mapping/RouteInfoMapper.xml b/casic-server/src/main/java/com/casic/missiles/modular/system/dao/mapping/RouteInfoMapper.xml index 2542993..6e5acda 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/system/dao/mapping/RouteInfoMapper.xml +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/dao/mapping/RouteInfoMapper.xml @@ -1,6 +1,6 @@ - + diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/dto/PatrolLogDTO.java b/casic-server/src/main/java/com/casic/missiles/modular/system/dto/PatrolLogDTO.java new file mode 100644 index 0000000..1b7b208 --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/dto/PatrolLogDTO.java @@ -0,0 +1,25 @@ +package com.casic.missiles.modular.system.dto; + + +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import java.io.Serializable; + + +@Data +public class PatrolLogDTO implements Serializable { + + private static final long serialVersionUID = 1L; + +// @ApiModelProperty("机器人id") +// private Long robotId; + @ApiModelProperty("巡航线id") + private Long routeInfoId; +// @ApiModelProperty("小区名称") +// private String communityName; +// @ApiModelProperty("小区地址") +// private String communityAddress; + + +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/dto/RobotDogInfoDTO.java b/casic-server/src/main/java/com/casic/missiles/modular/system/dto/RobotDogInfoDTO.java index 99f94ff..e76a861 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/system/dto/RobotDogInfoDTO.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/dto/RobotDogInfoDTO.java @@ -15,5 +15,8 @@ @ApiModelProperty("设备名称") private String robotName; + @ApiModelProperty("设备编号") + private String robotCode; + } diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/dto/SelectDTO.java b/casic-server/src/main/java/com/casic/missiles/modular/system/dto/SelectDTO.java new file mode 100644 index 0000000..b8156d7 --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/dto/SelectDTO.java @@ -0,0 +1,26 @@ +package com.casic.missiles.modular.system.dto; + + +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import java.io.Serializable; + + +@Data +public class SelectDTO implements Serializable { + + private static final long serialVersionUID = 1L; + + + @ApiModelProperty("id") + private Long id; + + @ApiModelProperty("name") + private String name; + + @ApiModelProperty("code") + private String code; + + +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/entity/RobotDogInfo.java b/casic-server/src/main/java/com/casic/missiles/modular/system/entity/RobotDogInfo.java index 454b1bc..bfb9c50 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/system/entity/RobotDogInfo.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/entity/RobotDogInfo.java @@ -46,10 +46,14 @@ @TableField("robot_port") private Integer robotPort; - @ApiModelProperty("机器狗状态(1,有效,0无效)") + @ApiModelProperty("机器狗状态(1,在线,离线)") @TableField("robot_status") private String robotStatus; + @ApiModelProperty("删除状态(1,有效,0无效)") + @TableField("valid") + private String valid; + @ApiModelProperty("电量") @TableField("robot_cell") private String robotCell; diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/entity/RouteInfo.java b/casic-server/src/main/java/com/casic/missiles/modular/system/entity/RouteInfo.java index 9b88a35..299594b 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/system/entity/RouteInfo.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/entity/RouteInfo.java @@ -43,6 +43,10 @@ @TableField("route_name") private String routeName; + @ApiModelProperty("状态1:有效,0:无效") + @TableField("status") + private String status; + @ApiModelProperty("机器人ID") @TableField("robot_id") private Long robotId; @@ -61,4 +65,9 @@ @TableField(exist = false) private List routeInfoDetailList; + + @ApiModelProperty("机器人名称") + @TableField(exist = false) + private String robotName; + } diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/enums/BusinessExceptionEnum.java b/casic-server/src/main/java/com/casic/missiles/modular/system/enums/BusinessExceptionEnum.java index 7924c30..6bafabf 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/system/enums/BusinessExceptionEnum.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/enums/BusinessExceptionEnum.java @@ -29,7 +29,9 @@ MONITOR_VALID_FAILED(2099, "云台登录地址重复"), - DEVICE_DUPLICATE(2011, "设备编号重复"); + DEVICE_DUPLICATE(2011, "设备编号重复"), + + CONFIG_FAIL(4005, "设备通讯一次,下发失败"); private Integer code; diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/netty/NettyServer.java b/casic-server/src/main/java/com/casic/missiles/modular/system/netty/NettyServer.java index 52b8451..0e608c3 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/system/netty/NettyServer.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/netty/NettyServer.java @@ -39,7 +39,7 @@ .childOption(ChannelOption.SO_KEEPALIVE, true); // 绑定端口并开始接受进来的连接 - future = bootstrap.bind(7000).sync(); + future = bootstrap.bind(11647).sync(); // 等待服务器套接字关闭 future.channel().closeFuture().sync(); diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/netty/RobotChannelHandler.java b/casic-server/src/main/java/com/casic/missiles/modular/system/netty/RobotChannelHandler.java index 11878ff..ac53fc7 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/system/netty/RobotChannelHandler.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/netty/RobotChannelHandler.java @@ -1,6 +1,7 @@ package com.casic.missiles.modular.system.netty; +import cn.hutool.core.util.ObjectUtil; import com.casic.missiles.modular.system.service.impl.RouteInfoServiceImpl; import io.netty.channel.Channel; import io.netty.channel.ChannelHandlerContext; @@ -43,16 +44,16 @@ executor.submit(new Runnable() { @Override public void run() { - String encryptData = msg.toString(); - DeviceCommon.devcodeMap.put(encryptData, channel.id().asLongText()); - System.out.println("接收到加密数据:" + encryptData); - routeInfoService.getMsg(1L,encryptData); -// String decryptData = RSAUtil.getDecryptMsg(encryptData); -// if (ObjectUtil.isNotEmpty(decryptData) && decryptData.contains(",")) { -// String devCode = decryptData.split(",")[0]; -// DeviceCommon.devcodeMap.put(devCode, channel.id().asLongText()); -// dataPanGasService.process(decryptData); -// } + String dataMsg = msg.toString(); + log.info("接收到机器狗数据:" + dataMsg); + if(ObjectUtil.isNotEmpty(dataMsg)){ + //只接收设备基本信息,其他过滤 + if(dataMsg.startsWith("devCode:")){ + String devCode = dataMsg.substring(8); + DeviceCommon.devcodeMap.put(devCode, channel.id().asLongText()); + routeInfoService.getMsg(devCode,dataMsg); + } + } } }); } diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/service/IRobotDogInfoService.java b/casic-server/src/main/java/com/casic/missiles/modular/system/service/IRobotDogInfoService.java index 1c6f24e..1320c8d 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/system/service/IRobotDogInfoService.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/service/IRobotDogInfoService.java @@ -1,7 +1,8 @@ package com.casic.missiles.modular.system.service; -import com.casic.missiles.modular.system.entity.RobotDogInfo; import com.baomidou.mybatisplus.extension.service.IService; +import com.casic.missiles.modular.system.dto.SelectDTO; +import com.casic.missiles.modular.system.entity.RobotDogInfo; import java.util.List; @@ -17,4 +18,12 @@ boolean batchDeleteDogs(List ids); + boolean updateRobotDogLine(String devCode, Long lineId); + + boolean updateRobotDogStatus(String devCode, String status); + + List selectDogList(); + + List selectLines(Long robotId); + } diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/controller/PatrolLogController.java b/casic-server/src/main/java/com/casic/missiles/modular/system/controller/PatrolLogController.java index b277154..0b5a69b 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/system/controller/PatrolLogController.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/controller/PatrolLogController.java @@ -1,9 +1,20 @@ package com.casic.missiles.modular.system.controller; -import org.springframework.web.bind.annotation.RequestMapping; - -import org.springframework.web.bind.annotation.RestController; +import cn.hutool.core.util.ObjectUtil; +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.casic.missiles.core.base.controller.ExportController; +import com.casic.missiles.core.page.PageFactory; +import com.casic.missiles.modular.system.dto.PatrolLogDTO; +import com.casic.missiles.modular.system.dto.ReturnDTO; +import com.casic.missiles.modular.system.entity.PatrolLog; +import com.casic.missiles.modular.system.service.IPatrolLogService; +import com.casic.missiles.modular.system.util.ReturnUtil; +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiOperation; +import lombok.RequiredArgsConstructor; +import org.springframework.web.bind.annotation.*; /** *

@@ -13,9 +24,23 @@ * @author zt * @since 2025-03-14 */ +@Api(tags = "巡航日志管理模块") +@RequiredArgsConstructor @RestController @RequestMapping("/system/patrolLog") -public class PatrolLogController { +public class PatrolLogController extends ExportController { + private final IPatrolLogService iPatrolLogService; + + @ApiOperation("查询分页接口") + @PostMapping("/listPage") + @ResponseBody + public ReturnDTO listPage(@RequestBody PatrolLogDTO requestDTO) { + Page page = PageFactory.defaultPage(); + QueryWrapper queryWrapper = new QueryWrapper<>(); + queryWrapper.eq(ObjectUtil.isNotEmpty(requestDTO.getRouteInfoId()), "route_info_id", requestDTO.getRouteInfoId()); + queryWrapper.orderByDesc("createTime"); + return ReturnUtil.success(super.packForBT(iPatrolLogService.page(page, queryWrapper))); + } } diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/controller/ReceiveDeviceDataController.java b/casic-server/src/main/java/com/casic/missiles/modular/system/controller/ReceiveDeviceDataController.java index e0bc9c6..75ae29e 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/system/controller/ReceiveDeviceDataController.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/controller/ReceiveDeviceDataController.java @@ -34,7 +34,6 @@ CompletableFuture.runAsync(() -> { iRouteInfoService.processData(map); -// ResponseResolver.makeResponse(map); } ); return ReturnUtil.success(); diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/controller/RobotDogInfoController.java b/casic-server/src/main/java/com/casic/missiles/modular/system/controller/RobotDogInfoController.java index baffa6f..004b2bf 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/system/controller/RobotDogInfoController.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/controller/RobotDogInfoController.java @@ -7,9 +7,7 @@ import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.casic.missiles.core.base.controller.ExportController; import com.casic.missiles.core.page.PageFactory; -import com.casic.missiles.modular.system.dto.IdsDTO; -import com.casic.missiles.modular.system.dto.ReturnDTO; -import com.casic.missiles.modular.system.dto.RobotDogInfoDTO; +import com.casic.missiles.modular.system.dto.*; import com.casic.missiles.modular.system.entity.RobotDogInfo; import com.casic.missiles.modular.system.enums.BusinessExceptionEnum; import com.casic.missiles.modular.system.exception.BusinessException; @@ -20,7 +18,6 @@ import lombok.RequiredArgsConstructor; import org.springframework.web.bind.annotation.*; -import java.util.List; import java.util.Objects; /** @@ -46,8 +43,8 @@ Page page = PageFactory.defaultPage(); QueryWrapper queryWrapper = new QueryWrapper<>(); queryWrapper.like(ObjectUtil.isNotEmpty(requestDTO.getRobotName()), "robot_name", requestDTO.getRobotName()); - queryWrapper.eq("robot_status", "1"); - return ReturnUtil.success(super.packForBT(iRobotDogInfoService.page(page,queryWrapper))); + queryWrapper.eq("valid", "1"); + return ReturnUtil.success(super.packForBT(iRobotDogInfoService.page(page, queryWrapper))); } @ApiOperation("增加设备类型") @@ -77,5 +74,33 @@ }); return ReturnUtil.success(iRobotDogInfoService.batchDeleteDogs(idsDTO.getIds())); } + + @ApiOperation("获取机器狗下拉列表") + @PostMapping("/selectDogList") + @ResponseBody + public ReturnDTO selectDogList() { + return ReturnUtil.success(iRobotDogInfoService.selectDogList()); + } + + @ApiOperation("根据设备获取巡航线,id魏机器狗id") + @PostMapping("/selectLines") + @ResponseBody + public ReturnDTO selectLines(@RequestBody IdDTO idDTO) { + Assert.isFalse(Objects.isNull(idDTO.getId()), () -> { + throw new BusinessException(BusinessExceptionEnum.ID_NULL); + }); + return ReturnUtil.success(iRobotDogInfoService.selectLines(idDTO.getId())); + } + + + @ApiOperation("根据设备编号获取机器狗信息") + @PostMapping("/getRobotDogByCode") + @ResponseBody + public ReturnDTO getRobotDogByCode(@RequestBody RobotDogInfoDTO requestDTO) { + QueryWrapper queryWrapper = new QueryWrapper<>(); + queryWrapper.eq(ObjectUtil.isNotEmpty(requestDTO.getRobotCode()), "robot_code", requestDTO.getRobotCode()); + queryWrapper.eq("robot_status", "1"); + return ReturnUtil.success(iRobotDogInfoService.list(queryWrapper)); + } } diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/controller/RouteInfoController.java b/casic-server/src/main/java/com/casic/missiles/modular/system/controller/RouteInfoController.java index d6ccb8e..0a24375 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/system/controller/RouteInfoController.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/controller/RouteInfoController.java @@ -9,6 +9,7 @@ import com.casic.missiles.modular.system.dto.IdsDTO; import com.casic.missiles.modular.system.dto.ReturnDTO; import com.casic.missiles.modular.system.dto.RouteInfoDTO; +import com.casic.missiles.modular.system.dto.SelectDTO; import com.casic.missiles.modular.system.entity.RouteInfo; import com.casic.missiles.modular.system.enums.BusinessExceptionEnum; import com.casic.missiles.modular.system.exception.BusinessException; @@ -74,14 +75,26 @@ return ReturnUtil.success(iRouteInfoService.editRouteInfo(routeInfo)); } + /** + * startRecordMap: 'w/', // 开始地图录入 + * endRecordMap: 'e/', // 完成地图录入 + * startRecordRoutInfo: 'x/', // 添加巡检点 + * endRecordRoutInfo: 'c/', // 保存巡检点和地图 + * delRecordRoutInfo: 'v/', // 删除所有的巡检点和地图 + * startNavigation: 'a/', // 开始巡检 + * pauseNavigation: 's/', // 暂停巡检 + * recoverNavigation: 'd/', // 恢复巡检 + * @param command + * @param devCode + * @return + */ @ApiOperation("控制指令类型(startRecordMap-开始地图录制,endRecordMap-完成地图录制," + - "startRecordRoutInfo-开始巡检线路录入,endRecordRoutInfo-结束巡检线路录入,"+ + "startRecordRoutInfo-开始巡检线路录入,endRecordRoutInfo-结束巡检线路录入," + "startPatrol-开始巡检,stopPatrol-结束巡检") @PostMapping("/control") @ResponseBody - public ResponseDataDTO control(String command, Long robotDogId) { - iRouteInfoService.control(command, robotDogId); - return ResponseDataDTO.success(); + public ReturnDTO control(String command, String devCode) { + return ReturnUtil.success(iRouteInfoService.control(command, devCode)); } } diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/dao/RobotDogInfoMapper.java b/casic-server/src/main/java/com/casic/missiles/modular/system/dao/RobotDogInfoMapper.java index bdf4553..0bbdf6c 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/system/dao/RobotDogInfoMapper.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/dao/RobotDogInfoMapper.java @@ -1,8 +1,13 @@ package com.casic.missiles.modular.system.dao; import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.casic.missiles.modular.system.dto.SelectDTO; import com.casic.missiles.modular.system.entity.RobotDogInfo; import org.apache.ibatis.annotations.Mapper; +import org.apache.ibatis.annotations.Param; +import org.apache.ibatis.annotations.Select; + +import java.util.List; /** *

@@ -15,4 +20,11 @@ @Mapper public interface RobotDogInfoMapper extends BaseMapper { + + @Select("SELECT robot_name as `name`,id,robot_code as `code` FROM `robot_dog_info` where valid='1'") + List selectDogList(); + + @Select("SELECT route_name as `name`,id FROM `route_info` where robot_id = #{robotId} and status='1'") + List selectLines(@Param("robotId") Long robotId); + } diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/dao/RouteInfoMapper.java b/casic-server/src/main/java/com/casic/missiles/modular/system/dao/RouteInfoMapper.java index bae594b..844b1fe 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/system/dao/RouteInfoMapper.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/dao/RouteInfoMapper.java @@ -5,8 +5,10 @@ import com.casic.missiles.core.datascope.DataScope; import com.casic.missiles.modular.system.dto.RouteInfoDTO; import com.casic.missiles.modular.system.entity.RouteInfo; +import org.apache.ibatis.annotations.Delete; import org.apache.ibatis.annotations.Mapper; import org.apache.ibatis.annotations.Param; +import org.apache.ibatis.annotations.Select; /** *

@@ -22,4 +24,8 @@ Page listPage(@Param("page") Page page, @Param("requestDTO") RouteInfoDTO requestDTO); + @Select("SELECT ri.id FROM `route_info` ri LEFT join robot_dog_info rd on ri.robot_id= rd.id " + + "where ri.status='1' and rd.robot_code = #{devCode} limit 1") + Long getLineId(@Param("devCode") String devCode); + } diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/dao/mapping/PatrolLogMapper.xml b/casic-server/src/main/java/com/casic/missiles/modular/system/dao/mapping/PatrolLogMapper.xml index 30aebdd..abeb14b 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/system/dao/mapping/PatrolLogMapper.xml +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/dao/mapping/PatrolLogMapper.xml @@ -1,6 +1,6 @@ - + diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/dao/mapping/RobotDogInfoMapper.xml b/casic-server/src/main/java/com/casic/missiles/modular/system/dao/mapping/RobotDogInfoMapper.xml index 182ca3d..aa18c82 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/system/dao/mapping/RobotDogInfoMapper.xml +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/dao/mapping/RobotDogInfoMapper.xml @@ -1,6 +1,6 @@ - + diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/dao/mapping/RouteInfoDetailMapper.xml b/casic-server/src/main/java/com/casic/missiles/modular/system/dao/mapping/RouteInfoDetailMapper.xml index 1e36465..a224cde 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/system/dao/mapping/RouteInfoDetailMapper.xml +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/dao/mapping/RouteInfoDetailMapper.xml @@ -1,6 +1,6 @@ - + diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/dao/mapping/RouteInfoMapper.xml b/casic-server/src/main/java/com/casic/missiles/modular/system/dao/mapping/RouteInfoMapper.xml index 2542993..6e5acda 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/system/dao/mapping/RouteInfoMapper.xml +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/dao/mapping/RouteInfoMapper.xml @@ -1,6 +1,6 @@ - + diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/dto/PatrolLogDTO.java b/casic-server/src/main/java/com/casic/missiles/modular/system/dto/PatrolLogDTO.java new file mode 100644 index 0000000..1b7b208 --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/dto/PatrolLogDTO.java @@ -0,0 +1,25 @@ +package com.casic.missiles.modular.system.dto; + + +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import java.io.Serializable; + + +@Data +public class PatrolLogDTO implements Serializable { + + private static final long serialVersionUID = 1L; + +// @ApiModelProperty("机器人id") +// private Long robotId; + @ApiModelProperty("巡航线id") + private Long routeInfoId; +// @ApiModelProperty("小区名称") +// private String communityName; +// @ApiModelProperty("小区地址") +// private String communityAddress; + + +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/dto/RobotDogInfoDTO.java b/casic-server/src/main/java/com/casic/missiles/modular/system/dto/RobotDogInfoDTO.java index 99f94ff..e76a861 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/system/dto/RobotDogInfoDTO.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/dto/RobotDogInfoDTO.java @@ -15,5 +15,8 @@ @ApiModelProperty("设备名称") private String robotName; + @ApiModelProperty("设备编号") + private String robotCode; + } diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/dto/SelectDTO.java b/casic-server/src/main/java/com/casic/missiles/modular/system/dto/SelectDTO.java new file mode 100644 index 0000000..b8156d7 --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/dto/SelectDTO.java @@ -0,0 +1,26 @@ +package com.casic.missiles.modular.system.dto; + + +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import java.io.Serializable; + + +@Data +public class SelectDTO implements Serializable { + + private static final long serialVersionUID = 1L; + + + @ApiModelProperty("id") + private Long id; + + @ApiModelProperty("name") + private String name; + + @ApiModelProperty("code") + private String code; + + +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/entity/RobotDogInfo.java b/casic-server/src/main/java/com/casic/missiles/modular/system/entity/RobotDogInfo.java index 454b1bc..bfb9c50 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/system/entity/RobotDogInfo.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/entity/RobotDogInfo.java @@ -46,10 +46,14 @@ @TableField("robot_port") private Integer robotPort; - @ApiModelProperty("机器狗状态(1,有效,0无效)") + @ApiModelProperty("机器狗状态(1,在线,离线)") @TableField("robot_status") private String robotStatus; + @ApiModelProperty("删除状态(1,有效,0无效)") + @TableField("valid") + private String valid; + @ApiModelProperty("电量") @TableField("robot_cell") private String robotCell; diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/entity/RouteInfo.java b/casic-server/src/main/java/com/casic/missiles/modular/system/entity/RouteInfo.java index 9b88a35..299594b 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/system/entity/RouteInfo.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/entity/RouteInfo.java @@ -43,6 +43,10 @@ @TableField("route_name") private String routeName; + @ApiModelProperty("状态1:有效,0:无效") + @TableField("status") + private String status; + @ApiModelProperty("机器人ID") @TableField("robot_id") private Long robotId; @@ -61,4 +65,9 @@ @TableField(exist = false) private List routeInfoDetailList; + + @ApiModelProperty("机器人名称") + @TableField(exist = false) + private String robotName; + } diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/enums/BusinessExceptionEnum.java b/casic-server/src/main/java/com/casic/missiles/modular/system/enums/BusinessExceptionEnum.java index 7924c30..6bafabf 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/system/enums/BusinessExceptionEnum.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/enums/BusinessExceptionEnum.java @@ -29,7 +29,9 @@ MONITOR_VALID_FAILED(2099, "云台登录地址重复"), - DEVICE_DUPLICATE(2011, "设备编号重复"); + DEVICE_DUPLICATE(2011, "设备编号重复"), + + CONFIG_FAIL(4005, "设备通讯一次,下发失败"); private Integer code; diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/netty/NettyServer.java b/casic-server/src/main/java/com/casic/missiles/modular/system/netty/NettyServer.java index 52b8451..0e608c3 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/system/netty/NettyServer.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/netty/NettyServer.java @@ -39,7 +39,7 @@ .childOption(ChannelOption.SO_KEEPALIVE, true); // 绑定端口并开始接受进来的连接 - future = bootstrap.bind(7000).sync(); + future = bootstrap.bind(11647).sync(); // 等待服务器套接字关闭 future.channel().closeFuture().sync(); diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/netty/RobotChannelHandler.java b/casic-server/src/main/java/com/casic/missiles/modular/system/netty/RobotChannelHandler.java index 11878ff..ac53fc7 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/system/netty/RobotChannelHandler.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/netty/RobotChannelHandler.java @@ -1,6 +1,7 @@ package com.casic.missiles.modular.system.netty; +import cn.hutool.core.util.ObjectUtil; import com.casic.missiles.modular.system.service.impl.RouteInfoServiceImpl; import io.netty.channel.Channel; import io.netty.channel.ChannelHandlerContext; @@ -43,16 +44,16 @@ executor.submit(new Runnable() { @Override public void run() { - String encryptData = msg.toString(); - DeviceCommon.devcodeMap.put(encryptData, channel.id().asLongText()); - System.out.println("接收到加密数据:" + encryptData); - routeInfoService.getMsg(1L,encryptData); -// String decryptData = RSAUtil.getDecryptMsg(encryptData); -// if (ObjectUtil.isNotEmpty(decryptData) && decryptData.contains(",")) { -// String devCode = decryptData.split(",")[0]; -// DeviceCommon.devcodeMap.put(devCode, channel.id().asLongText()); -// dataPanGasService.process(decryptData); -// } + String dataMsg = msg.toString(); + log.info("接收到机器狗数据:" + dataMsg); + if(ObjectUtil.isNotEmpty(dataMsg)){ + //只接收设备基本信息,其他过滤 + if(dataMsg.startsWith("devCode:")){ + String devCode = dataMsg.substring(8); + DeviceCommon.devcodeMap.put(devCode, channel.id().asLongText()); + routeInfoService.getMsg(devCode,dataMsg); + } + } } }); } diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/service/IRobotDogInfoService.java b/casic-server/src/main/java/com/casic/missiles/modular/system/service/IRobotDogInfoService.java index 1c6f24e..1320c8d 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/system/service/IRobotDogInfoService.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/service/IRobotDogInfoService.java @@ -1,7 +1,8 @@ package com.casic.missiles.modular.system.service; -import com.casic.missiles.modular.system.entity.RobotDogInfo; import com.baomidou.mybatisplus.extension.service.IService; +import com.casic.missiles.modular.system.dto.SelectDTO; +import com.casic.missiles.modular.system.entity.RobotDogInfo; import java.util.List; @@ -17,4 +18,12 @@ boolean batchDeleteDogs(List ids); + boolean updateRobotDogLine(String devCode, Long lineId); + + boolean updateRobotDogStatus(String devCode, String status); + + List selectDogList(); + + List selectLines(Long robotId); + } diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/service/IRouteInfoService.java b/casic-server/src/main/java/com/casic/missiles/modular/system/service/IRouteInfoService.java index 1658f2e..9cb5804 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/system/service/IRouteInfoService.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/service/IRouteInfoService.java @@ -24,7 +24,7 @@ boolean editRouteInfo(RouteInfo routeInfo); - void control(String command,Long robotDogId); + boolean control(String command,String devCode); void processData(Map map); diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/controller/PatrolLogController.java b/casic-server/src/main/java/com/casic/missiles/modular/system/controller/PatrolLogController.java index b277154..0b5a69b 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/system/controller/PatrolLogController.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/controller/PatrolLogController.java @@ -1,9 +1,20 @@ package com.casic.missiles.modular.system.controller; -import org.springframework.web.bind.annotation.RequestMapping; - -import org.springframework.web.bind.annotation.RestController; +import cn.hutool.core.util.ObjectUtil; +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.casic.missiles.core.base.controller.ExportController; +import com.casic.missiles.core.page.PageFactory; +import com.casic.missiles.modular.system.dto.PatrolLogDTO; +import com.casic.missiles.modular.system.dto.ReturnDTO; +import com.casic.missiles.modular.system.entity.PatrolLog; +import com.casic.missiles.modular.system.service.IPatrolLogService; +import com.casic.missiles.modular.system.util.ReturnUtil; +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiOperation; +import lombok.RequiredArgsConstructor; +import org.springframework.web.bind.annotation.*; /** *

@@ -13,9 +24,23 @@ * @author zt * @since 2025-03-14 */ +@Api(tags = "巡航日志管理模块") +@RequiredArgsConstructor @RestController @RequestMapping("/system/patrolLog") -public class PatrolLogController { +public class PatrolLogController extends ExportController { + private final IPatrolLogService iPatrolLogService; + + @ApiOperation("查询分页接口") + @PostMapping("/listPage") + @ResponseBody + public ReturnDTO listPage(@RequestBody PatrolLogDTO requestDTO) { + Page page = PageFactory.defaultPage(); + QueryWrapper queryWrapper = new QueryWrapper<>(); + queryWrapper.eq(ObjectUtil.isNotEmpty(requestDTO.getRouteInfoId()), "route_info_id", requestDTO.getRouteInfoId()); + queryWrapper.orderByDesc("createTime"); + return ReturnUtil.success(super.packForBT(iPatrolLogService.page(page, queryWrapper))); + } } diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/controller/ReceiveDeviceDataController.java b/casic-server/src/main/java/com/casic/missiles/modular/system/controller/ReceiveDeviceDataController.java index e0bc9c6..75ae29e 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/system/controller/ReceiveDeviceDataController.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/controller/ReceiveDeviceDataController.java @@ -34,7 +34,6 @@ CompletableFuture.runAsync(() -> { iRouteInfoService.processData(map); -// ResponseResolver.makeResponse(map); } ); return ReturnUtil.success(); diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/controller/RobotDogInfoController.java b/casic-server/src/main/java/com/casic/missiles/modular/system/controller/RobotDogInfoController.java index baffa6f..004b2bf 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/system/controller/RobotDogInfoController.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/controller/RobotDogInfoController.java @@ -7,9 +7,7 @@ import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.casic.missiles.core.base.controller.ExportController; import com.casic.missiles.core.page.PageFactory; -import com.casic.missiles.modular.system.dto.IdsDTO; -import com.casic.missiles.modular.system.dto.ReturnDTO; -import com.casic.missiles.modular.system.dto.RobotDogInfoDTO; +import com.casic.missiles.modular.system.dto.*; import com.casic.missiles.modular.system.entity.RobotDogInfo; import com.casic.missiles.modular.system.enums.BusinessExceptionEnum; import com.casic.missiles.modular.system.exception.BusinessException; @@ -20,7 +18,6 @@ import lombok.RequiredArgsConstructor; import org.springframework.web.bind.annotation.*; -import java.util.List; import java.util.Objects; /** @@ -46,8 +43,8 @@ Page page = PageFactory.defaultPage(); QueryWrapper queryWrapper = new QueryWrapper<>(); queryWrapper.like(ObjectUtil.isNotEmpty(requestDTO.getRobotName()), "robot_name", requestDTO.getRobotName()); - queryWrapper.eq("robot_status", "1"); - return ReturnUtil.success(super.packForBT(iRobotDogInfoService.page(page,queryWrapper))); + queryWrapper.eq("valid", "1"); + return ReturnUtil.success(super.packForBT(iRobotDogInfoService.page(page, queryWrapper))); } @ApiOperation("增加设备类型") @@ -77,5 +74,33 @@ }); return ReturnUtil.success(iRobotDogInfoService.batchDeleteDogs(idsDTO.getIds())); } + + @ApiOperation("获取机器狗下拉列表") + @PostMapping("/selectDogList") + @ResponseBody + public ReturnDTO selectDogList() { + return ReturnUtil.success(iRobotDogInfoService.selectDogList()); + } + + @ApiOperation("根据设备获取巡航线,id魏机器狗id") + @PostMapping("/selectLines") + @ResponseBody + public ReturnDTO selectLines(@RequestBody IdDTO idDTO) { + Assert.isFalse(Objects.isNull(idDTO.getId()), () -> { + throw new BusinessException(BusinessExceptionEnum.ID_NULL); + }); + return ReturnUtil.success(iRobotDogInfoService.selectLines(idDTO.getId())); + } + + + @ApiOperation("根据设备编号获取机器狗信息") + @PostMapping("/getRobotDogByCode") + @ResponseBody + public ReturnDTO getRobotDogByCode(@RequestBody RobotDogInfoDTO requestDTO) { + QueryWrapper queryWrapper = new QueryWrapper<>(); + queryWrapper.eq(ObjectUtil.isNotEmpty(requestDTO.getRobotCode()), "robot_code", requestDTO.getRobotCode()); + queryWrapper.eq("robot_status", "1"); + return ReturnUtil.success(iRobotDogInfoService.list(queryWrapper)); + } } diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/controller/RouteInfoController.java b/casic-server/src/main/java/com/casic/missiles/modular/system/controller/RouteInfoController.java index d6ccb8e..0a24375 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/system/controller/RouteInfoController.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/controller/RouteInfoController.java @@ -9,6 +9,7 @@ import com.casic.missiles.modular.system.dto.IdsDTO; import com.casic.missiles.modular.system.dto.ReturnDTO; import com.casic.missiles.modular.system.dto.RouteInfoDTO; +import com.casic.missiles.modular.system.dto.SelectDTO; import com.casic.missiles.modular.system.entity.RouteInfo; import com.casic.missiles.modular.system.enums.BusinessExceptionEnum; import com.casic.missiles.modular.system.exception.BusinessException; @@ -74,14 +75,26 @@ return ReturnUtil.success(iRouteInfoService.editRouteInfo(routeInfo)); } + /** + * startRecordMap: 'w/', // 开始地图录入 + * endRecordMap: 'e/', // 完成地图录入 + * startRecordRoutInfo: 'x/', // 添加巡检点 + * endRecordRoutInfo: 'c/', // 保存巡检点和地图 + * delRecordRoutInfo: 'v/', // 删除所有的巡检点和地图 + * startNavigation: 'a/', // 开始巡检 + * pauseNavigation: 's/', // 暂停巡检 + * recoverNavigation: 'd/', // 恢复巡检 + * @param command + * @param devCode + * @return + */ @ApiOperation("控制指令类型(startRecordMap-开始地图录制,endRecordMap-完成地图录制," + - "startRecordRoutInfo-开始巡检线路录入,endRecordRoutInfo-结束巡检线路录入,"+ + "startRecordRoutInfo-开始巡检线路录入,endRecordRoutInfo-结束巡检线路录入," + "startPatrol-开始巡检,stopPatrol-结束巡检") @PostMapping("/control") @ResponseBody - public ResponseDataDTO control(String command, Long robotDogId) { - iRouteInfoService.control(command, robotDogId); - return ResponseDataDTO.success(); + public ReturnDTO control(String command, String devCode) { + return ReturnUtil.success(iRouteInfoService.control(command, devCode)); } } diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/dao/RobotDogInfoMapper.java b/casic-server/src/main/java/com/casic/missiles/modular/system/dao/RobotDogInfoMapper.java index bdf4553..0bbdf6c 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/system/dao/RobotDogInfoMapper.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/dao/RobotDogInfoMapper.java @@ -1,8 +1,13 @@ package com.casic.missiles.modular.system.dao; import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.casic.missiles.modular.system.dto.SelectDTO; import com.casic.missiles.modular.system.entity.RobotDogInfo; import org.apache.ibatis.annotations.Mapper; +import org.apache.ibatis.annotations.Param; +import org.apache.ibatis.annotations.Select; + +import java.util.List; /** *

@@ -15,4 +20,11 @@ @Mapper public interface RobotDogInfoMapper extends BaseMapper { + + @Select("SELECT robot_name as `name`,id,robot_code as `code` FROM `robot_dog_info` where valid='1'") + List selectDogList(); + + @Select("SELECT route_name as `name`,id FROM `route_info` where robot_id = #{robotId} and status='1'") + List selectLines(@Param("robotId") Long robotId); + } diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/dao/RouteInfoMapper.java b/casic-server/src/main/java/com/casic/missiles/modular/system/dao/RouteInfoMapper.java index bae594b..844b1fe 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/system/dao/RouteInfoMapper.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/dao/RouteInfoMapper.java @@ -5,8 +5,10 @@ import com.casic.missiles.core.datascope.DataScope; import com.casic.missiles.modular.system.dto.RouteInfoDTO; import com.casic.missiles.modular.system.entity.RouteInfo; +import org.apache.ibatis.annotations.Delete; import org.apache.ibatis.annotations.Mapper; import org.apache.ibatis.annotations.Param; +import org.apache.ibatis.annotations.Select; /** *

@@ -22,4 +24,8 @@ Page listPage(@Param("page") Page page, @Param("requestDTO") RouteInfoDTO requestDTO); + @Select("SELECT ri.id FROM `route_info` ri LEFT join robot_dog_info rd on ri.robot_id= rd.id " + + "where ri.status='1' and rd.robot_code = #{devCode} limit 1") + Long getLineId(@Param("devCode") String devCode); + } diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/dao/mapping/PatrolLogMapper.xml b/casic-server/src/main/java/com/casic/missiles/modular/system/dao/mapping/PatrolLogMapper.xml index 30aebdd..abeb14b 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/system/dao/mapping/PatrolLogMapper.xml +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/dao/mapping/PatrolLogMapper.xml @@ -1,6 +1,6 @@ - + diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/dao/mapping/RobotDogInfoMapper.xml b/casic-server/src/main/java/com/casic/missiles/modular/system/dao/mapping/RobotDogInfoMapper.xml index 182ca3d..aa18c82 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/system/dao/mapping/RobotDogInfoMapper.xml +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/dao/mapping/RobotDogInfoMapper.xml @@ -1,6 +1,6 @@ - + diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/dao/mapping/RouteInfoDetailMapper.xml b/casic-server/src/main/java/com/casic/missiles/modular/system/dao/mapping/RouteInfoDetailMapper.xml index 1e36465..a224cde 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/system/dao/mapping/RouteInfoDetailMapper.xml +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/dao/mapping/RouteInfoDetailMapper.xml @@ -1,6 +1,6 @@ - + diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/dao/mapping/RouteInfoMapper.xml b/casic-server/src/main/java/com/casic/missiles/modular/system/dao/mapping/RouteInfoMapper.xml index 2542993..6e5acda 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/system/dao/mapping/RouteInfoMapper.xml +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/dao/mapping/RouteInfoMapper.xml @@ -1,6 +1,6 @@ - + diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/dto/PatrolLogDTO.java b/casic-server/src/main/java/com/casic/missiles/modular/system/dto/PatrolLogDTO.java new file mode 100644 index 0000000..1b7b208 --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/dto/PatrolLogDTO.java @@ -0,0 +1,25 @@ +package com.casic.missiles.modular.system.dto; + + +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import java.io.Serializable; + + +@Data +public class PatrolLogDTO implements Serializable { + + private static final long serialVersionUID = 1L; + +// @ApiModelProperty("机器人id") +// private Long robotId; + @ApiModelProperty("巡航线id") + private Long routeInfoId; +// @ApiModelProperty("小区名称") +// private String communityName; +// @ApiModelProperty("小区地址") +// private String communityAddress; + + +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/dto/RobotDogInfoDTO.java b/casic-server/src/main/java/com/casic/missiles/modular/system/dto/RobotDogInfoDTO.java index 99f94ff..e76a861 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/system/dto/RobotDogInfoDTO.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/dto/RobotDogInfoDTO.java @@ -15,5 +15,8 @@ @ApiModelProperty("设备名称") private String robotName; + @ApiModelProperty("设备编号") + private String robotCode; + } diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/dto/SelectDTO.java b/casic-server/src/main/java/com/casic/missiles/modular/system/dto/SelectDTO.java new file mode 100644 index 0000000..b8156d7 --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/dto/SelectDTO.java @@ -0,0 +1,26 @@ +package com.casic.missiles.modular.system.dto; + + +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import java.io.Serializable; + + +@Data +public class SelectDTO implements Serializable { + + private static final long serialVersionUID = 1L; + + + @ApiModelProperty("id") + private Long id; + + @ApiModelProperty("name") + private String name; + + @ApiModelProperty("code") + private String code; + + +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/entity/RobotDogInfo.java b/casic-server/src/main/java/com/casic/missiles/modular/system/entity/RobotDogInfo.java index 454b1bc..bfb9c50 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/system/entity/RobotDogInfo.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/entity/RobotDogInfo.java @@ -46,10 +46,14 @@ @TableField("robot_port") private Integer robotPort; - @ApiModelProperty("机器狗状态(1,有效,0无效)") + @ApiModelProperty("机器狗状态(1,在线,离线)") @TableField("robot_status") private String robotStatus; + @ApiModelProperty("删除状态(1,有效,0无效)") + @TableField("valid") + private String valid; + @ApiModelProperty("电量") @TableField("robot_cell") private String robotCell; diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/entity/RouteInfo.java b/casic-server/src/main/java/com/casic/missiles/modular/system/entity/RouteInfo.java index 9b88a35..299594b 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/system/entity/RouteInfo.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/entity/RouteInfo.java @@ -43,6 +43,10 @@ @TableField("route_name") private String routeName; + @ApiModelProperty("状态1:有效,0:无效") + @TableField("status") + private String status; + @ApiModelProperty("机器人ID") @TableField("robot_id") private Long robotId; @@ -61,4 +65,9 @@ @TableField(exist = false) private List routeInfoDetailList; + + @ApiModelProperty("机器人名称") + @TableField(exist = false) + private String robotName; + } diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/enums/BusinessExceptionEnum.java b/casic-server/src/main/java/com/casic/missiles/modular/system/enums/BusinessExceptionEnum.java index 7924c30..6bafabf 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/system/enums/BusinessExceptionEnum.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/enums/BusinessExceptionEnum.java @@ -29,7 +29,9 @@ MONITOR_VALID_FAILED(2099, "云台登录地址重复"), - DEVICE_DUPLICATE(2011, "设备编号重复"); + DEVICE_DUPLICATE(2011, "设备编号重复"), + + CONFIG_FAIL(4005, "设备通讯一次,下发失败"); private Integer code; diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/netty/NettyServer.java b/casic-server/src/main/java/com/casic/missiles/modular/system/netty/NettyServer.java index 52b8451..0e608c3 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/system/netty/NettyServer.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/netty/NettyServer.java @@ -39,7 +39,7 @@ .childOption(ChannelOption.SO_KEEPALIVE, true); // 绑定端口并开始接受进来的连接 - future = bootstrap.bind(7000).sync(); + future = bootstrap.bind(11647).sync(); // 等待服务器套接字关闭 future.channel().closeFuture().sync(); diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/netty/RobotChannelHandler.java b/casic-server/src/main/java/com/casic/missiles/modular/system/netty/RobotChannelHandler.java index 11878ff..ac53fc7 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/system/netty/RobotChannelHandler.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/netty/RobotChannelHandler.java @@ -1,6 +1,7 @@ package com.casic.missiles.modular.system.netty; +import cn.hutool.core.util.ObjectUtil; import com.casic.missiles.modular.system.service.impl.RouteInfoServiceImpl; import io.netty.channel.Channel; import io.netty.channel.ChannelHandlerContext; @@ -43,16 +44,16 @@ executor.submit(new Runnable() { @Override public void run() { - String encryptData = msg.toString(); - DeviceCommon.devcodeMap.put(encryptData, channel.id().asLongText()); - System.out.println("接收到加密数据:" + encryptData); - routeInfoService.getMsg(1L,encryptData); -// String decryptData = RSAUtil.getDecryptMsg(encryptData); -// if (ObjectUtil.isNotEmpty(decryptData) && decryptData.contains(",")) { -// String devCode = decryptData.split(",")[0]; -// DeviceCommon.devcodeMap.put(devCode, channel.id().asLongText()); -// dataPanGasService.process(decryptData); -// } + String dataMsg = msg.toString(); + log.info("接收到机器狗数据:" + dataMsg); + if(ObjectUtil.isNotEmpty(dataMsg)){ + //只接收设备基本信息,其他过滤 + if(dataMsg.startsWith("devCode:")){ + String devCode = dataMsg.substring(8); + DeviceCommon.devcodeMap.put(devCode, channel.id().asLongText()); + routeInfoService.getMsg(devCode,dataMsg); + } + } } }); } diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/service/IRobotDogInfoService.java b/casic-server/src/main/java/com/casic/missiles/modular/system/service/IRobotDogInfoService.java index 1c6f24e..1320c8d 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/system/service/IRobotDogInfoService.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/service/IRobotDogInfoService.java @@ -1,7 +1,8 @@ package com.casic.missiles.modular.system.service; -import com.casic.missiles.modular.system.entity.RobotDogInfo; import com.baomidou.mybatisplus.extension.service.IService; +import com.casic.missiles.modular.system.dto.SelectDTO; +import com.casic.missiles.modular.system.entity.RobotDogInfo; import java.util.List; @@ -17,4 +18,12 @@ boolean batchDeleteDogs(List ids); + boolean updateRobotDogLine(String devCode, Long lineId); + + boolean updateRobotDogStatus(String devCode, String status); + + List selectDogList(); + + List selectLines(Long robotId); + } diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/service/IRouteInfoService.java b/casic-server/src/main/java/com/casic/missiles/modular/system/service/IRouteInfoService.java index 1658f2e..9cb5804 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/system/service/IRouteInfoService.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/service/IRouteInfoService.java @@ -24,7 +24,7 @@ boolean editRouteInfo(RouteInfo routeInfo); - void control(String command,Long robotDogId); + boolean control(String command,String devCode); void processData(Map map); diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/service/impl/PatrolLogServiceImpl.java b/casic-server/src/main/java/com/casic/missiles/modular/system/service/impl/PatrolLogServiceImpl.java index ae8438a..51b90c5 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/system/service/impl/PatrolLogServiceImpl.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/service/impl/PatrolLogServiceImpl.java @@ -2,6 +2,7 @@ import cn.hutool.core.util.ObjectUtil; import com.alibaba.fastjson.JSON; +import com.alibaba.fastjson.JSONObject; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.casic.missiles.core.common.service.ICommonFileService; import com.casic.missiles.modular.system.dao.PatrolLogMapper; @@ -9,6 +10,7 @@ import com.casic.missiles.modular.system.service.IPatrolLogService; import com.casic.missiles.modular.system.util.CommonUtil; import com.casic.missiles.modular.system.util.HttpClientUtils; +import com.casic.missiles.modular.system.util.WebSocket; import lombok.RequiredArgsConstructor; import org.slf4j.Logger; import org.slf4j.LoggerFactory; @@ -38,6 +40,8 @@ @Resource private ICommonFileService commonFileService; + private final WebSocket webSocket; + @Value("${casic.brPushUrl}") private String brPushUrl; @@ -64,9 +68,23 @@ } this.saveBatch(patrolLogList); - //推送第三方 + CompletableFuture.runAsync(() -> { -// ResponseResolver.makeResponse(map); + + //websocket推送给前端 + if (patrolLogList.size() > 0) { + for (PatrolLog patrolLog : patrolLogList) { + JSONObject jsonObject = new JSONObject(); + jsonObject.put("routeInfoId", patrolLog.getRouteInfoId()); + jsonObject.put("patrolType", patrolLog.getPatrolType()); + jsonObject.put("patrolContent", patrolLog.getPatrolContent()); + jsonObject.put("patrolTime", patrolLog.getCreateTime()); + jsonObject.put("picture", patrolLog.getPatrolPicture()); + webSocket.sendAllMessage(jsonObject.toJSONString()); + } + } + + //推送第三方 Map parasMap = new HashMap<>(); HttpClientUtils.post(brPushUrl, JSON.toJSONString(parasMap)); } diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/controller/PatrolLogController.java b/casic-server/src/main/java/com/casic/missiles/modular/system/controller/PatrolLogController.java index b277154..0b5a69b 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/system/controller/PatrolLogController.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/controller/PatrolLogController.java @@ -1,9 +1,20 @@ package com.casic.missiles.modular.system.controller; -import org.springframework.web.bind.annotation.RequestMapping; - -import org.springframework.web.bind.annotation.RestController; +import cn.hutool.core.util.ObjectUtil; +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.casic.missiles.core.base.controller.ExportController; +import com.casic.missiles.core.page.PageFactory; +import com.casic.missiles.modular.system.dto.PatrolLogDTO; +import com.casic.missiles.modular.system.dto.ReturnDTO; +import com.casic.missiles.modular.system.entity.PatrolLog; +import com.casic.missiles.modular.system.service.IPatrolLogService; +import com.casic.missiles.modular.system.util.ReturnUtil; +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiOperation; +import lombok.RequiredArgsConstructor; +import org.springframework.web.bind.annotation.*; /** *

@@ -13,9 +24,23 @@ * @author zt * @since 2025-03-14 */ +@Api(tags = "巡航日志管理模块") +@RequiredArgsConstructor @RestController @RequestMapping("/system/patrolLog") -public class PatrolLogController { +public class PatrolLogController extends ExportController { + private final IPatrolLogService iPatrolLogService; + + @ApiOperation("查询分页接口") + @PostMapping("/listPage") + @ResponseBody + public ReturnDTO listPage(@RequestBody PatrolLogDTO requestDTO) { + Page page = PageFactory.defaultPage(); + QueryWrapper queryWrapper = new QueryWrapper<>(); + queryWrapper.eq(ObjectUtil.isNotEmpty(requestDTO.getRouteInfoId()), "route_info_id", requestDTO.getRouteInfoId()); + queryWrapper.orderByDesc("createTime"); + return ReturnUtil.success(super.packForBT(iPatrolLogService.page(page, queryWrapper))); + } } diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/controller/ReceiveDeviceDataController.java b/casic-server/src/main/java/com/casic/missiles/modular/system/controller/ReceiveDeviceDataController.java index e0bc9c6..75ae29e 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/system/controller/ReceiveDeviceDataController.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/controller/ReceiveDeviceDataController.java @@ -34,7 +34,6 @@ CompletableFuture.runAsync(() -> { iRouteInfoService.processData(map); -// ResponseResolver.makeResponse(map); } ); return ReturnUtil.success(); diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/controller/RobotDogInfoController.java b/casic-server/src/main/java/com/casic/missiles/modular/system/controller/RobotDogInfoController.java index baffa6f..004b2bf 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/system/controller/RobotDogInfoController.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/controller/RobotDogInfoController.java @@ -7,9 +7,7 @@ import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.casic.missiles.core.base.controller.ExportController; import com.casic.missiles.core.page.PageFactory; -import com.casic.missiles.modular.system.dto.IdsDTO; -import com.casic.missiles.modular.system.dto.ReturnDTO; -import com.casic.missiles.modular.system.dto.RobotDogInfoDTO; +import com.casic.missiles.modular.system.dto.*; import com.casic.missiles.modular.system.entity.RobotDogInfo; import com.casic.missiles.modular.system.enums.BusinessExceptionEnum; import com.casic.missiles.modular.system.exception.BusinessException; @@ -20,7 +18,6 @@ import lombok.RequiredArgsConstructor; import org.springframework.web.bind.annotation.*; -import java.util.List; import java.util.Objects; /** @@ -46,8 +43,8 @@ Page page = PageFactory.defaultPage(); QueryWrapper queryWrapper = new QueryWrapper<>(); queryWrapper.like(ObjectUtil.isNotEmpty(requestDTO.getRobotName()), "robot_name", requestDTO.getRobotName()); - queryWrapper.eq("robot_status", "1"); - return ReturnUtil.success(super.packForBT(iRobotDogInfoService.page(page,queryWrapper))); + queryWrapper.eq("valid", "1"); + return ReturnUtil.success(super.packForBT(iRobotDogInfoService.page(page, queryWrapper))); } @ApiOperation("增加设备类型") @@ -77,5 +74,33 @@ }); return ReturnUtil.success(iRobotDogInfoService.batchDeleteDogs(idsDTO.getIds())); } + + @ApiOperation("获取机器狗下拉列表") + @PostMapping("/selectDogList") + @ResponseBody + public ReturnDTO selectDogList() { + return ReturnUtil.success(iRobotDogInfoService.selectDogList()); + } + + @ApiOperation("根据设备获取巡航线,id魏机器狗id") + @PostMapping("/selectLines") + @ResponseBody + public ReturnDTO selectLines(@RequestBody IdDTO idDTO) { + Assert.isFalse(Objects.isNull(idDTO.getId()), () -> { + throw new BusinessException(BusinessExceptionEnum.ID_NULL); + }); + return ReturnUtil.success(iRobotDogInfoService.selectLines(idDTO.getId())); + } + + + @ApiOperation("根据设备编号获取机器狗信息") + @PostMapping("/getRobotDogByCode") + @ResponseBody + public ReturnDTO getRobotDogByCode(@RequestBody RobotDogInfoDTO requestDTO) { + QueryWrapper queryWrapper = new QueryWrapper<>(); + queryWrapper.eq(ObjectUtil.isNotEmpty(requestDTO.getRobotCode()), "robot_code", requestDTO.getRobotCode()); + queryWrapper.eq("robot_status", "1"); + return ReturnUtil.success(iRobotDogInfoService.list(queryWrapper)); + } } diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/controller/RouteInfoController.java b/casic-server/src/main/java/com/casic/missiles/modular/system/controller/RouteInfoController.java index d6ccb8e..0a24375 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/system/controller/RouteInfoController.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/controller/RouteInfoController.java @@ -9,6 +9,7 @@ import com.casic.missiles.modular.system.dto.IdsDTO; import com.casic.missiles.modular.system.dto.ReturnDTO; import com.casic.missiles.modular.system.dto.RouteInfoDTO; +import com.casic.missiles.modular.system.dto.SelectDTO; import com.casic.missiles.modular.system.entity.RouteInfo; import com.casic.missiles.modular.system.enums.BusinessExceptionEnum; import com.casic.missiles.modular.system.exception.BusinessException; @@ -74,14 +75,26 @@ return ReturnUtil.success(iRouteInfoService.editRouteInfo(routeInfo)); } + /** + * startRecordMap: 'w/', // 开始地图录入 + * endRecordMap: 'e/', // 完成地图录入 + * startRecordRoutInfo: 'x/', // 添加巡检点 + * endRecordRoutInfo: 'c/', // 保存巡检点和地图 + * delRecordRoutInfo: 'v/', // 删除所有的巡检点和地图 + * startNavigation: 'a/', // 开始巡检 + * pauseNavigation: 's/', // 暂停巡检 + * recoverNavigation: 'd/', // 恢复巡检 + * @param command + * @param devCode + * @return + */ @ApiOperation("控制指令类型(startRecordMap-开始地图录制,endRecordMap-完成地图录制," + - "startRecordRoutInfo-开始巡检线路录入,endRecordRoutInfo-结束巡检线路录入,"+ + "startRecordRoutInfo-开始巡检线路录入,endRecordRoutInfo-结束巡检线路录入," + "startPatrol-开始巡检,stopPatrol-结束巡检") @PostMapping("/control") @ResponseBody - public ResponseDataDTO control(String command, Long robotDogId) { - iRouteInfoService.control(command, robotDogId); - return ResponseDataDTO.success(); + public ReturnDTO control(String command, String devCode) { + return ReturnUtil.success(iRouteInfoService.control(command, devCode)); } } diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/dao/RobotDogInfoMapper.java b/casic-server/src/main/java/com/casic/missiles/modular/system/dao/RobotDogInfoMapper.java index bdf4553..0bbdf6c 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/system/dao/RobotDogInfoMapper.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/dao/RobotDogInfoMapper.java @@ -1,8 +1,13 @@ package com.casic.missiles.modular.system.dao; import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.casic.missiles.modular.system.dto.SelectDTO; import com.casic.missiles.modular.system.entity.RobotDogInfo; import org.apache.ibatis.annotations.Mapper; +import org.apache.ibatis.annotations.Param; +import org.apache.ibatis.annotations.Select; + +import java.util.List; /** *

@@ -15,4 +20,11 @@ @Mapper public interface RobotDogInfoMapper extends BaseMapper { + + @Select("SELECT robot_name as `name`,id,robot_code as `code` FROM `robot_dog_info` where valid='1'") + List selectDogList(); + + @Select("SELECT route_name as `name`,id FROM `route_info` where robot_id = #{robotId} and status='1'") + List selectLines(@Param("robotId") Long robotId); + } diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/dao/RouteInfoMapper.java b/casic-server/src/main/java/com/casic/missiles/modular/system/dao/RouteInfoMapper.java index bae594b..844b1fe 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/system/dao/RouteInfoMapper.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/dao/RouteInfoMapper.java @@ -5,8 +5,10 @@ import com.casic.missiles.core.datascope.DataScope; import com.casic.missiles.modular.system.dto.RouteInfoDTO; import com.casic.missiles.modular.system.entity.RouteInfo; +import org.apache.ibatis.annotations.Delete; import org.apache.ibatis.annotations.Mapper; import org.apache.ibatis.annotations.Param; +import org.apache.ibatis.annotations.Select; /** *

@@ -22,4 +24,8 @@ Page listPage(@Param("page") Page page, @Param("requestDTO") RouteInfoDTO requestDTO); + @Select("SELECT ri.id FROM `route_info` ri LEFT join robot_dog_info rd on ri.robot_id= rd.id " + + "where ri.status='1' and rd.robot_code = #{devCode} limit 1") + Long getLineId(@Param("devCode") String devCode); + } diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/dao/mapping/PatrolLogMapper.xml b/casic-server/src/main/java/com/casic/missiles/modular/system/dao/mapping/PatrolLogMapper.xml index 30aebdd..abeb14b 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/system/dao/mapping/PatrolLogMapper.xml +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/dao/mapping/PatrolLogMapper.xml @@ -1,6 +1,6 @@ - + diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/dao/mapping/RobotDogInfoMapper.xml b/casic-server/src/main/java/com/casic/missiles/modular/system/dao/mapping/RobotDogInfoMapper.xml index 182ca3d..aa18c82 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/system/dao/mapping/RobotDogInfoMapper.xml +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/dao/mapping/RobotDogInfoMapper.xml @@ -1,6 +1,6 @@ - + diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/dao/mapping/RouteInfoDetailMapper.xml b/casic-server/src/main/java/com/casic/missiles/modular/system/dao/mapping/RouteInfoDetailMapper.xml index 1e36465..a224cde 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/system/dao/mapping/RouteInfoDetailMapper.xml +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/dao/mapping/RouteInfoDetailMapper.xml @@ -1,6 +1,6 @@ - + diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/dao/mapping/RouteInfoMapper.xml b/casic-server/src/main/java/com/casic/missiles/modular/system/dao/mapping/RouteInfoMapper.xml index 2542993..6e5acda 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/system/dao/mapping/RouteInfoMapper.xml +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/dao/mapping/RouteInfoMapper.xml @@ -1,6 +1,6 @@ - + diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/dto/PatrolLogDTO.java b/casic-server/src/main/java/com/casic/missiles/modular/system/dto/PatrolLogDTO.java new file mode 100644 index 0000000..1b7b208 --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/dto/PatrolLogDTO.java @@ -0,0 +1,25 @@ +package com.casic.missiles.modular.system.dto; + + +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import java.io.Serializable; + + +@Data +public class PatrolLogDTO implements Serializable { + + private static final long serialVersionUID = 1L; + +// @ApiModelProperty("机器人id") +// private Long robotId; + @ApiModelProperty("巡航线id") + private Long routeInfoId; +// @ApiModelProperty("小区名称") +// private String communityName; +// @ApiModelProperty("小区地址") +// private String communityAddress; + + +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/dto/RobotDogInfoDTO.java b/casic-server/src/main/java/com/casic/missiles/modular/system/dto/RobotDogInfoDTO.java index 99f94ff..e76a861 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/system/dto/RobotDogInfoDTO.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/dto/RobotDogInfoDTO.java @@ -15,5 +15,8 @@ @ApiModelProperty("设备名称") private String robotName; + @ApiModelProperty("设备编号") + private String robotCode; + } diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/dto/SelectDTO.java b/casic-server/src/main/java/com/casic/missiles/modular/system/dto/SelectDTO.java new file mode 100644 index 0000000..b8156d7 --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/dto/SelectDTO.java @@ -0,0 +1,26 @@ +package com.casic.missiles.modular.system.dto; + + +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import java.io.Serializable; + + +@Data +public class SelectDTO implements Serializable { + + private static final long serialVersionUID = 1L; + + + @ApiModelProperty("id") + private Long id; + + @ApiModelProperty("name") + private String name; + + @ApiModelProperty("code") + private String code; + + +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/entity/RobotDogInfo.java b/casic-server/src/main/java/com/casic/missiles/modular/system/entity/RobotDogInfo.java index 454b1bc..bfb9c50 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/system/entity/RobotDogInfo.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/entity/RobotDogInfo.java @@ -46,10 +46,14 @@ @TableField("robot_port") private Integer robotPort; - @ApiModelProperty("机器狗状态(1,有效,0无效)") + @ApiModelProperty("机器狗状态(1,在线,离线)") @TableField("robot_status") private String robotStatus; + @ApiModelProperty("删除状态(1,有效,0无效)") + @TableField("valid") + private String valid; + @ApiModelProperty("电量") @TableField("robot_cell") private String robotCell; diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/entity/RouteInfo.java b/casic-server/src/main/java/com/casic/missiles/modular/system/entity/RouteInfo.java index 9b88a35..299594b 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/system/entity/RouteInfo.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/entity/RouteInfo.java @@ -43,6 +43,10 @@ @TableField("route_name") private String routeName; + @ApiModelProperty("状态1:有效,0:无效") + @TableField("status") + private String status; + @ApiModelProperty("机器人ID") @TableField("robot_id") private Long robotId; @@ -61,4 +65,9 @@ @TableField(exist = false) private List routeInfoDetailList; + + @ApiModelProperty("机器人名称") + @TableField(exist = false) + private String robotName; + } diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/enums/BusinessExceptionEnum.java b/casic-server/src/main/java/com/casic/missiles/modular/system/enums/BusinessExceptionEnum.java index 7924c30..6bafabf 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/system/enums/BusinessExceptionEnum.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/enums/BusinessExceptionEnum.java @@ -29,7 +29,9 @@ MONITOR_VALID_FAILED(2099, "云台登录地址重复"), - DEVICE_DUPLICATE(2011, "设备编号重复"); + DEVICE_DUPLICATE(2011, "设备编号重复"), + + CONFIG_FAIL(4005, "设备通讯一次,下发失败"); private Integer code; diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/netty/NettyServer.java b/casic-server/src/main/java/com/casic/missiles/modular/system/netty/NettyServer.java index 52b8451..0e608c3 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/system/netty/NettyServer.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/netty/NettyServer.java @@ -39,7 +39,7 @@ .childOption(ChannelOption.SO_KEEPALIVE, true); // 绑定端口并开始接受进来的连接 - future = bootstrap.bind(7000).sync(); + future = bootstrap.bind(11647).sync(); // 等待服务器套接字关闭 future.channel().closeFuture().sync(); diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/netty/RobotChannelHandler.java b/casic-server/src/main/java/com/casic/missiles/modular/system/netty/RobotChannelHandler.java index 11878ff..ac53fc7 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/system/netty/RobotChannelHandler.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/netty/RobotChannelHandler.java @@ -1,6 +1,7 @@ package com.casic.missiles.modular.system.netty; +import cn.hutool.core.util.ObjectUtil; import com.casic.missiles.modular.system.service.impl.RouteInfoServiceImpl; import io.netty.channel.Channel; import io.netty.channel.ChannelHandlerContext; @@ -43,16 +44,16 @@ executor.submit(new Runnable() { @Override public void run() { - String encryptData = msg.toString(); - DeviceCommon.devcodeMap.put(encryptData, channel.id().asLongText()); - System.out.println("接收到加密数据:" + encryptData); - routeInfoService.getMsg(1L,encryptData); -// String decryptData = RSAUtil.getDecryptMsg(encryptData); -// if (ObjectUtil.isNotEmpty(decryptData) && decryptData.contains(",")) { -// String devCode = decryptData.split(",")[0]; -// DeviceCommon.devcodeMap.put(devCode, channel.id().asLongText()); -// dataPanGasService.process(decryptData); -// } + String dataMsg = msg.toString(); + log.info("接收到机器狗数据:" + dataMsg); + if(ObjectUtil.isNotEmpty(dataMsg)){ + //只接收设备基本信息,其他过滤 + if(dataMsg.startsWith("devCode:")){ + String devCode = dataMsg.substring(8); + DeviceCommon.devcodeMap.put(devCode, channel.id().asLongText()); + routeInfoService.getMsg(devCode,dataMsg); + } + } } }); } diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/service/IRobotDogInfoService.java b/casic-server/src/main/java/com/casic/missiles/modular/system/service/IRobotDogInfoService.java index 1c6f24e..1320c8d 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/system/service/IRobotDogInfoService.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/service/IRobotDogInfoService.java @@ -1,7 +1,8 @@ package com.casic.missiles.modular.system.service; -import com.casic.missiles.modular.system.entity.RobotDogInfo; import com.baomidou.mybatisplus.extension.service.IService; +import com.casic.missiles.modular.system.dto.SelectDTO; +import com.casic.missiles.modular.system.entity.RobotDogInfo; import java.util.List; @@ -17,4 +18,12 @@ boolean batchDeleteDogs(List ids); + boolean updateRobotDogLine(String devCode, Long lineId); + + boolean updateRobotDogStatus(String devCode, String status); + + List selectDogList(); + + List selectLines(Long robotId); + } diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/service/IRouteInfoService.java b/casic-server/src/main/java/com/casic/missiles/modular/system/service/IRouteInfoService.java index 1658f2e..9cb5804 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/system/service/IRouteInfoService.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/service/IRouteInfoService.java @@ -24,7 +24,7 @@ boolean editRouteInfo(RouteInfo routeInfo); - void control(String command,Long robotDogId); + boolean control(String command,String devCode); void processData(Map map); diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/service/impl/PatrolLogServiceImpl.java b/casic-server/src/main/java/com/casic/missiles/modular/system/service/impl/PatrolLogServiceImpl.java index ae8438a..51b90c5 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/system/service/impl/PatrolLogServiceImpl.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/service/impl/PatrolLogServiceImpl.java @@ -2,6 +2,7 @@ import cn.hutool.core.util.ObjectUtil; import com.alibaba.fastjson.JSON; +import com.alibaba.fastjson.JSONObject; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.casic.missiles.core.common.service.ICommonFileService; import com.casic.missiles.modular.system.dao.PatrolLogMapper; @@ -9,6 +10,7 @@ import com.casic.missiles.modular.system.service.IPatrolLogService; import com.casic.missiles.modular.system.util.CommonUtil; import com.casic.missiles.modular.system.util.HttpClientUtils; +import com.casic.missiles.modular.system.util.WebSocket; import lombok.RequiredArgsConstructor; import org.slf4j.Logger; import org.slf4j.LoggerFactory; @@ -38,6 +40,8 @@ @Resource private ICommonFileService commonFileService; + private final WebSocket webSocket; + @Value("${casic.brPushUrl}") private String brPushUrl; @@ -64,9 +68,23 @@ } this.saveBatch(patrolLogList); - //推送第三方 + CompletableFuture.runAsync(() -> { -// ResponseResolver.makeResponse(map); + + //websocket推送给前端 + if (patrolLogList.size() > 0) { + for (PatrolLog patrolLog : patrolLogList) { + JSONObject jsonObject = new JSONObject(); + jsonObject.put("routeInfoId", patrolLog.getRouteInfoId()); + jsonObject.put("patrolType", patrolLog.getPatrolType()); + jsonObject.put("patrolContent", patrolLog.getPatrolContent()); + jsonObject.put("patrolTime", patrolLog.getCreateTime()); + jsonObject.put("picture", patrolLog.getPatrolPicture()); + webSocket.sendAllMessage(jsonObject.toJSONString()); + } + } + + //推送第三方 Map parasMap = new HashMap<>(); HttpClientUtils.post(brPushUrl, JSON.toJSONString(parasMap)); } diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/service/impl/RobotDogInfoServiceImpl.java b/casic-server/src/main/java/com/casic/missiles/modular/system/service/impl/RobotDogInfoServiceImpl.java index ad9caa9..a260aaa 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/system/service/impl/RobotDogInfoServiceImpl.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/service/impl/RobotDogInfoServiceImpl.java @@ -3,6 +3,7 @@ import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.casic.missiles.modular.system.dao.RobotDogInfoMapper; +import com.casic.missiles.modular.system.dto.SelectDTO; import com.casic.missiles.modular.system.entity.RobotDogInfo; import com.casic.missiles.modular.system.service.IRobotDogInfoService; import org.springframework.stereotype.Service; @@ -20,12 +21,38 @@ @Service public class RobotDogInfoServiceImpl extends ServiceImpl implements IRobotDogInfoService { - @Override public boolean batchDeleteDogs(List ids) { UpdateWrapper updateWrapper = new UpdateWrapper<>(); updateWrapper.in("id", ids); - updateWrapper.set("robot_status", "0"); + updateWrapper.set("valid", "0"); + return this.update(updateWrapper); + } + + @Override + public List selectDogList() { + + return this.baseMapper.selectDogList(); + } + + @Override + public List selectLines(Long robotId) { + return this.baseMapper.selectLines(robotId); + } + + @Override + public boolean updateRobotDogLine(String devCode, Long lineId) { + UpdateWrapper updateWrapper = new UpdateWrapper<>(); + updateWrapper.eq("robot_code", devCode); + updateWrapper.set("route_id", lineId); + return this.update(updateWrapper); + } + + @Override + public boolean updateRobotDogStatus(String devCode, String status) { + UpdateWrapper updateWrapper = new UpdateWrapper<>(); + updateWrapper.eq("robot_code", devCode); + updateWrapper.set("robot_status", status); return this.update(updateWrapper); } } diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/controller/PatrolLogController.java b/casic-server/src/main/java/com/casic/missiles/modular/system/controller/PatrolLogController.java index b277154..0b5a69b 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/system/controller/PatrolLogController.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/controller/PatrolLogController.java @@ -1,9 +1,20 @@ package com.casic.missiles.modular.system.controller; -import org.springframework.web.bind.annotation.RequestMapping; - -import org.springframework.web.bind.annotation.RestController; +import cn.hutool.core.util.ObjectUtil; +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.casic.missiles.core.base.controller.ExportController; +import com.casic.missiles.core.page.PageFactory; +import com.casic.missiles.modular.system.dto.PatrolLogDTO; +import com.casic.missiles.modular.system.dto.ReturnDTO; +import com.casic.missiles.modular.system.entity.PatrolLog; +import com.casic.missiles.modular.system.service.IPatrolLogService; +import com.casic.missiles.modular.system.util.ReturnUtil; +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiOperation; +import lombok.RequiredArgsConstructor; +import org.springframework.web.bind.annotation.*; /** *

@@ -13,9 +24,23 @@ * @author zt * @since 2025-03-14 */ +@Api(tags = "巡航日志管理模块") +@RequiredArgsConstructor @RestController @RequestMapping("/system/patrolLog") -public class PatrolLogController { +public class PatrolLogController extends ExportController { + private final IPatrolLogService iPatrolLogService; + + @ApiOperation("查询分页接口") + @PostMapping("/listPage") + @ResponseBody + public ReturnDTO listPage(@RequestBody PatrolLogDTO requestDTO) { + Page page = PageFactory.defaultPage(); + QueryWrapper queryWrapper = new QueryWrapper<>(); + queryWrapper.eq(ObjectUtil.isNotEmpty(requestDTO.getRouteInfoId()), "route_info_id", requestDTO.getRouteInfoId()); + queryWrapper.orderByDesc("createTime"); + return ReturnUtil.success(super.packForBT(iPatrolLogService.page(page, queryWrapper))); + } } diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/controller/ReceiveDeviceDataController.java b/casic-server/src/main/java/com/casic/missiles/modular/system/controller/ReceiveDeviceDataController.java index e0bc9c6..75ae29e 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/system/controller/ReceiveDeviceDataController.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/controller/ReceiveDeviceDataController.java @@ -34,7 +34,6 @@ CompletableFuture.runAsync(() -> { iRouteInfoService.processData(map); -// ResponseResolver.makeResponse(map); } ); return ReturnUtil.success(); diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/controller/RobotDogInfoController.java b/casic-server/src/main/java/com/casic/missiles/modular/system/controller/RobotDogInfoController.java index baffa6f..004b2bf 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/system/controller/RobotDogInfoController.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/controller/RobotDogInfoController.java @@ -7,9 +7,7 @@ import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.casic.missiles.core.base.controller.ExportController; import com.casic.missiles.core.page.PageFactory; -import com.casic.missiles.modular.system.dto.IdsDTO; -import com.casic.missiles.modular.system.dto.ReturnDTO; -import com.casic.missiles.modular.system.dto.RobotDogInfoDTO; +import com.casic.missiles.modular.system.dto.*; import com.casic.missiles.modular.system.entity.RobotDogInfo; import com.casic.missiles.modular.system.enums.BusinessExceptionEnum; import com.casic.missiles.modular.system.exception.BusinessException; @@ -20,7 +18,6 @@ import lombok.RequiredArgsConstructor; import org.springframework.web.bind.annotation.*; -import java.util.List; import java.util.Objects; /** @@ -46,8 +43,8 @@ Page page = PageFactory.defaultPage(); QueryWrapper queryWrapper = new QueryWrapper<>(); queryWrapper.like(ObjectUtil.isNotEmpty(requestDTO.getRobotName()), "robot_name", requestDTO.getRobotName()); - queryWrapper.eq("robot_status", "1"); - return ReturnUtil.success(super.packForBT(iRobotDogInfoService.page(page,queryWrapper))); + queryWrapper.eq("valid", "1"); + return ReturnUtil.success(super.packForBT(iRobotDogInfoService.page(page, queryWrapper))); } @ApiOperation("增加设备类型") @@ -77,5 +74,33 @@ }); return ReturnUtil.success(iRobotDogInfoService.batchDeleteDogs(idsDTO.getIds())); } + + @ApiOperation("获取机器狗下拉列表") + @PostMapping("/selectDogList") + @ResponseBody + public ReturnDTO selectDogList() { + return ReturnUtil.success(iRobotDogInfoService.selectDogList()); + } + + @ApiOperation("根据设备获取巡航线,id魏机器狗id") + @PostMapping("/selectLines") + @ResponseBody + public ReturnDTO selectLines(@RequestBody IdDTO idDTO) { + Assert.isFalse(Objects.isNull(idDTO.getId()), () -> { + throw new BusinessException(BusinessExceptionEnum.ID_NULL); + }); + return ReturnUtil.success(iRobotDogInfoService.selectLines(idDTO.getId())); + } + + + @ApiOperation("根据设备编号获取机器狗信息") + @PostMapping("/getRobotDogByCode") + @ResponseBody + public ReturnDTO getRobotDogByCode(@RequestBody RobotDogInfoDTO requestDTO) { + QueryWrapper queryWrapper = new QueryWrapper<>(); + queryWrapper.eq(ObjectUtil.isNotEmpty(requestDTO.getRobotCode()), "robot_code", requestDTO.getRobotCode()); + queryWrapper.eq("robot_status", "1"); + return ReturnUtil.success(iRobotDogInfoService.list(queryWrapper)); + } } diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/controller/RouteInfoController.java b/casic-server/src/main/java/com/casic/missiles/modular/system/controller/RouteInfoController.java index d6ccb8e..0a24375 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/system/controller/RouteInfoController.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/controller/RouteInfoController.java @@ -9,6 +9,7 @@ import com.casic.missiles.modular.system.dto.IdsDTO; import com.casic.missiles.modular.system.dto.ReturnDTO; import com.casic.missiles.modular.system.dto.RouteInfoDTO; +import com.casic.missiles.modular.system.dto.SelectDTO; import com.casic.missiles.modular.system.entity.RouteInfo; import com.casic.missiles.modular.system.enums.BusinessExceptionEnum; import com.casic.missiles.modular.system.exception.BusinessException; @@ -74,14 +75,26 @@ return ReturnUtil.success(iRouteInfoService.editRouteInfo(routeInfo)); } + /** + * startRecordMap: 'w/', // 开始地图录入 + * endRecordMap: 'e/', // 完成地图录入 + * startRecordRoutInfo: 'x/', // 添加巡检点 + * endRecordRoutInfo: 'c/', // 保存巡检点和地图 + * delRecordRoutInfo: 'v/', // 删除所有的巡检点和地图 + * startNavigation: 'a/', // 开始巡检 + * pauseNavigation: 's/', // 暂停巡检 + * recoverNavigation: 'd/', // 恢复巡检 + * @param command + * @param devCode + * @return + */ @ApiOperation("控制指令类型(startRecordMap-开始地图录制,endRecordMap-完成地图录制," + - "startRecordRoutInfo-开始巡检线路录入,endRecordRoutInfo-结束巡检线路录入,"+ + "startRecordRoutInfo-开始巡检线路录入,endRecordRoutInfo-结束巡检线路录入," + "startPatrol-开始巡检,stopPatrol-结束巡检") @PostMapping("/control") @ResponseBody - public ResponseDataDTO control(String command, Long robotDogId) { - iRouteInfoService.control(command, robotDogId); - return ResponseDataDTO.success(); + public ReturnDTO control(String command, String devCode) { + return ReturnUtil.success(iRouteInfoService.control(command, devCode)); } } diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/dao/RobotDogInfoMapper.java b/casic-server/src/main/java/com/casic/missiles/modular/system/dao/RobotDogInfoMapper.java index bdf4553..0bbdf6c 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/system/dao/RobotDogInfoMapper.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/dao/RobotDogInfoMapper.java @@ -1,8 +1,13 @@ package com.casic.missiles.modular.system.dao; import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.casic.missiles.modular.system.dto.SelectDTO; import com.casic.missiles.modular.system.entity.RobotDogInfo; import org.apache.ibatis.annotations.Mapper; +import org.apache.ibatis.annotations.Param; +import org.apache.ibatis.annotations.Select; + +import java.util.List; /** *

@@ -15,4 +20,11 @@ @Mapper public interface RobotDogInfoMapper extends BaseMapper { + + @Select("SELECT robot_name as `name`,id,robot_code as `code` FROM `robot_dog_info` where valid='1'") + List selectDogList(); + + @Select("SELECT route_name as `name`,id FROM `route_info` where robot_id = #{robotId} and status='1'") + List selectLines(@Param("robotId") Long robotId); + } diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/dao/RouteInfoMapper.java b/casic-server/src/main/java/com/casic/missiles/modular/system/dao/RouteInfoMapper.java index bae594b..844b1fe 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/system/dao/RouteInfoMapper.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/dao/RouteInfoMapper.java @@ -5,8 +5,10 @@ import com.casic.missiles.core.datascope.DataScope; import com.casic.missiles.modular.system.dto.RouteInfoDTO; import com.casic.missiles.modular.system.entity.RouteInfo; +import org.apache.ibatis.annotations.Delete; import org.apache.ibatis.annotations.Mapper; import org.apache.ibatis.annotations.Param; +import org.apache.ibatis.annotations.Select; /** *

@@ -22,4 +24,8 @@ Page listPage(@Param("page") Page page, @Param("requestDTO") RouteInfoDTO requestDTO); + @Select("SELECT ri.id FROM `route_info` ri LEFT join robot_dog_info rd on ri.robot_id= rd.id " + + "where ri.status='1' and rd.robot_code = #{devCode} limit 1") + Long getLineId(@Param("devCode") String devCode); + } diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/dao/mapping/PatrolLogMapper.xml b/casic-server/src/main/java/com/casic/missiles/modular/system/dao/mapping/PatrolLogMapper.xml index 30aebdd..abeb14b 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/system/dao/mapping/PatrolLogMapper.xml +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/dao/mapping/PatrolLogMapper.xml @@ -1,6 +1,6 @@ - + diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/dao/mapping/RobotDogInfoMapper.xml b/casic-server/src/main/java/com/casic/missiles/modular/system/dao/mapping/RobotDogInfoMapper.xml index 182ca3d..aa18c82 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/system/dao/mapping/RobotDogInfoMapper.xml +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/dao/mapping/RobotDogInfoMapper.xml @@ -1,6 +1,6 @@ - + diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/dao/mapping/RouteInfoDetailMapper.xml b/casic-server/src/main/java/com/casic/missiles/modular/system/dao/mapping/RouteInfoDetailMapper.xml index 1e36465..a224cde 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/system/dao/mapping/RouteInfoDetailMapper.xml +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/dao/mapping/RouteInfoDetailMapper.xml @@ -1,6 +1,6 @@ - + diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/dao/mapping/RouteInfoMapper.xml b/casic-server/src/main/java/com/casic/missiles/modular/system/dao/mapping/RouteInfoMapper.xml index 2542993..6e5acda 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/system/dao/mapping/RouteInfoMapper.xml +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/dao/mapping/RouteInfoMapper.xml @@ -1,6 +1,6 @@ - + diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/dto/PatrolLogDTO.java b/casic-server/src/main/java/com/casic/missiles/modular/system/dto/PatrolLogDTO.java new file mode 100644 index 0000000..1b7b208 --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/dto/PatrolLogDTO.java @@ -0,0 +1,25 @@ +package com.casic.missiles.modular.system.dto; + + +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import java.io.Serializable; + + +@Data +public class PatrolLogDTO implements Serializable { + + private static final long serialVersionUID = 1L; + +// @ApiModelProperty("机器人id") +// private Long robotId; + @ApiModelProperty("巡航线id") + private Long routeInfoId; +// @ApiModelProperty("小区名称") +// private String communityName; +// @ApiModelProperty("小区地址") +// private String communityAddress; + + +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/dto/RobotDogInfoDTO.java b/casic-server/src/main/java/com/casic/missiles/modular/system/dto/RobotDogInfoDTO.java index 99f94ff..e76a861 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/system/dto/RobotDogInfoDTO.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/dto/RobotDogInfoDTO.java @@ -15,5 +15,8 @@ @ApiModelProperty("设备名称") private String robotName; + @ApiModelProperty("设备编号") + private String robotCode; + } diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/dto/SelectDTO.java b/casic-server/src/main/java/com/casic/missiles/modular/system/dto/SelectDTO.java new file mode 100644 index 0000000..b8156d7 --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/dto/SelectDTO.java @@ -0,0 +1,26 @@ +package com.casic.missiles.modular.system.dto; + + +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import java.io.Serializable; + + +@Data +public class SelectDTO implements Serializable { + + private static final long serialVersionUID = 1L; + + + @ApiModelProperty("id") + private Long id; + + @ApiModelProperty("name") + private String name; + + @ApiModelProperty("code") + private String code; + + +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/entity/RobotDogInfo.java b/casic-server/src/main/java/com/casic/missiles/modular/system/entity/RobotDogInfo.java index 454b1bc..bfb9c50 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/system/entity/RobotDogInfo.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/entity/RobotDogInfo.java @@ -46,10 +46,14 @@ @TableField("robot_port") private Integer robotPort; - @ApiModelProperty("机器狗状态(1,有效,0无效)") + @ApiModelProperty("机器狗状态(1,在线,离线)") @TableField("robot_status") private String robotStatus; + @ApiModelProperty("删除状态(1,有效,0无效)") + @TableField("valid") + private String valid; + @ApiModelProperty("电量") @TableField("robot_cell") private String robotCell; diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/entity/RouteInfo.java b/casic-server/src/main/java/com/casic/missiles/modular/system/entity/RouteInfo.java index 9b88a35..299594b 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/system/entity/RouteInfo.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/entity/RouteInfo.java @@ -43,6 +43,10 @@ @TableField("route_name") private String routeName; + @ApiModelProperty("状态1:有效,0:无效") + @TableField("status") + private String status; + @ApiModelProperty("机器人ID") @TableField("robot_id") private Long robotId; @@ -61,4 +65,9 @@ @TableField(exist = false) private List routeInfoDetailList; + + @ApiModelProperty("机器人名称") + @TableField(exist = false) + private String robotName; + } diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/enums/BusinessExceptionEnum.java b/casic-server/src/main/java/com/casic/missiles/modular/system/enums/BusinessExceptionEnum.java index 7924c30..6bafabf 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/system/enums/BusinessExceptionEnum.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/enums/BusinessExceptionEnum.java @@ -29,7 +29,9 @@ MONITOR_VALID_FAILED(2099, "云台登录地址重复"), - DEVICE_DUPLICATE(2011, "设备编号重复"); + DEVICE_DUPLICATE(2011, "设备编号重复"), + + CONFIG_FAIL(4005, "设备通讯一次,下发失败"); private Integer code; diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/netty/NettyServer.java b/casic-server/src/main/java/com/casic/missiles/modular/system/netty/NettyServer.java index 52b8451..0e608c3 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/system/netty/NettyServer.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/netty/NettyServer.java @@ -39,7 +39,7 @@ .childOption(ChannelOption.SO_KEEPALIVE, true); // 绑定端口并开始接受进来的连接 - future = bootstrap.bind(7000).sync(); + future = bootstrap.bind(11647).sync(); // 等待服务器套接字关闭 future.channel().closeFuture().sync(); diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/netty/RobotChannelHandler.java b/casic-server/src/main/java/com/casic/missiles/modular/system/netty/RobotChannelHandler.java index 11878ff..ac53fc7 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/system/netty/RobotChannelHandler.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/netty/RobotChannelHandler.java @@ -1,6 +1,7 @@ package com.casic.missiles.modular.system.netty; +import cn.hutool.core.util.ObjectUtil; import com.casic.missiles.modular.system.service.impl.RouteInfoServiceImpl; import io.netty.channel.Channel; import io.netty.channel.ChannelHandlerContext; @@ -43,16 +44,16 @@ executor.submit(new Runnable() { @Override public void run() { - String encryptData = msg.toString(); - DeviceCommon.devcodeMap.put(encryptData, channel.id().asLongText()); - System.out.println("接收到加密数据:" + encryptData); - routeInfoService.getMsg(1L,encryptData); -// String decryptData = RSAUtil.getDecryptMsg(encryptData); -// if (ObjectUtil.isNotEmpty(decryptData) && decryptData.contains(",")) { -// String devCode = decryptData.split(",")[0]; -// DeviceCommon.devcodeMap.put(devCode, channel.id().asLongText()); -// dataPanGasService.process(decryptData); -// } + String dataMsg = msg.toString(); + log.info("接收到机器狗数据:" + dataMsg); + if(ObjectUtil.isNotEmpty(dataMsg)){ + //只接收设备基本信息,其他过滤 + if(dataMsg.startsWith("devCode:")){ + String devCode = dataMsg.substring(8); + DeviceCommon.devcodeMap.put(devCode, channel.id().asLongText()); + routeInfoService.getMsg(devCode,dataMsg); + } + } } }); } diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/service/IRobotDogInfoService.java b/casic-server/src/main/java/com/casic/missiles/modular/system/service/IRobotDogInfoService.java index 1c6f24e..1320c8d 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/system/service/IRobotDogInfoService.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/service/IRobotDogInfoService.java @@ -1,7 +1,8 @@ package com.casic.missiles.modular.system.service; -import com.casic.missiles.modular.system.entity.RobotDogInfo; import com.baomidou.mybatisplus.extension.service.IService; +import com.casic.missiles.modular.system.dto.SelectDTO; +import com.casic.missiles.modular.system.entity.RobotDogInfo; import java.util.List; @@ -17,4 +18,12 @@ boolean batchDeleteDogs(List ids); + boolean updateRobotDogLine(String devCode, Long lineId); + + boolean updateRobotDogStatus(String devCode, String status); + + List selectDogList(); + + List selectLines(Long robotId); + } diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/service/IRouteInfoService.java b/casic-server/src/main/java/com/casic/missiles/modular/system/service/IRouteInfoService.java index 1658f2e..9cb5804 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/system/service/IRouteInfoService.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/service/IRouteInfoService.java @@ -24,7 +24,7 @@ boolean editRouteInfo(RouteInfo routeInfo); - void control(String command,Long robotDogId); + boolean control(String command,String devCode); void processData(Map map); diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/service/impl/PatrolLogServiceImpl.java b/casic-server/src/main/java/com/casic/missiles/modular/system/service/impl/PatrolLogServiceImpl.java index ae8438a..51b90c5 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/system/service/impl/PatrolLogServiceImpl.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/service/impl/PatrolLogServiceImpl.java @@ -2,6 +2,7 @@ import cn.hutool.core.util.ObjectUtil; import com.alibaba.fastjson.JSON; +import com.alibaba.fastjson.JSONObject; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.casic.missiles.core.common.service.ICommonFileService; import com.casic.missiles.modular.system.dao.PatrolLogMapper; @@ -9,6 +10,7 @@ import com.casic.missiles.modular.system.service.IPatrolLogService; import com.casic.missiles.modular.system.util.CommonUtil; import com.casic.missiles.modular.system.util.HttpClientUtils; +import com.casic.missiles.modular.system.util.WebSocket; import lombok.RequiredArgsConstructor; import org.slf4j.Logger; import org.slf4j.LoggerFactory; @@ -38,6 +40,8 @@ @Resource private ICommonFileService commonFileService; + private final WebSocket webSocket; + @Value("${casic.brPushUrl}") private String brPushUrl; @@ -64,9 +68,23 @@ } this.saveBatch(patrolLogList); - //推送第三方 + CompletableFuture.runAsync(() -> { -// ResponseResolver.makeResponse(map); + + //websocket推送给前端 + if (patrolLogList.size() > 0) { + for (PatrolLog patrolLog : patrolLogList) { + JSONObject jsonObject = new JSONObject(); + jsonObject.put("routeInfoId", patrolLog.getRouteInfoId()); + jsonObject.put("patrolType", patrolLog.getPatrolType()); + jsonObject.put("patrolContent", patrolLog.getPatrolContent()); + jsonObject.put("patrolTime", patrolLog.getCreateTime()); + jsonObject.put("picture", patrolLog.getPatrolPicture()); + webSocket.sendAllMessage(jsonObject.toJSONString()); + } + } + + //推送第三方 Map parasMap = new HashMap<>(); HttpClientUtils.post(brPushUrl, JSON.toJSONString(parasMap)); } diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/service/impl/RobotDogInfoServiceImpl.java b/casic-server/src/main/java/com/casic/missiles/modular/system/service/impl/RobotDogInfoServiceImpl.java index ad9caa9..a260aaa 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/system/service/impl/RobotDogInfoServiceImpl.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/service/impl/RobotDogInfoServiceImpl.java @@ -3,6 +3,7 @@ import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.casic.missiles.modular.system.dao.RobotDogInfoMapper; +import com.casic.missiles.modular.system.dto.SelectDTO; import com.casic.missiles.modular.system.entity.RobotDogInfo; import com.casic.missiles.modular.system.service.IRobotDogInfoService; import org.springframework.stereotype.Service; @@ -20,12 +21,38 @@ @Service public class RobotDogInfoServiceImpl extends ServiceImpl implements IRobotDogInfoService { - @Override public boolean batchDeleteDogs(List ids) { UpdateWrapper updateWrapper = new UpdateWrapper<>(); updateWrapper.in("id", ids); - updateWrapper.set("robot_status", "0"); + updateWrapper.set("valid", "0"); + return this.update(updateWrapper); + } + + @Override + public List selectDogList() { + + return this.baseMapper.selectDogList(); + } + + @Override + public List selectLines(Long robotId) { + return this.baseMapper.selectLines(robotId); + } + + @Override + public boolean updateRobotDogLine(String devCode, Long lineId) { + UpdateWrapper updateWrapper = new UpdateWrapper<>(); + updateWrapper.eq("robot_code", devCode); + updateWrapper.set("route_id", lineId); + return this.update(updateWrapper); + } + + @Override + public boolean updateRobotDogStatus(String devCode, String status) { + UpdateWrapper updateWrapper = new UpdateWrapper<>(); + updateWrapper.eq("robot_code", devCode); + updateWrapper.set("robot_status", status); return this.update(updateWrapper); } } diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/service/impl/RouteInfoServiceImpl.java b/casic-server/src/main/java/com/casic/missiles/modular/system/service/impl/RouteInfoServiceImpl.java index 501dedd..3f583f6 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/system/service/impl/RouteInfoServiceImpl.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/service/impl/RouteInfoServiceImpl.java @@ -3,13 +3,17 @@ import cn.hutool.core.util.ObjectUtil; import com.alibaba.fastjson.JSON; import com.alibaba.fastjson.JSONObject; +import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.casic.missiles.modular.system.dao.RouteInfoMapper; import com.casic.missiles.modular.system.dto.RouteInfoDTO; import com.casic.missiles.modular.system.entity.RouteInfo; import com.casic.missiles.modular.system.entity.RouteInfoDetail; +import com.casic.missiles.modular.system.enums.BusinessExceptionEnum; +import com.casic.missiles.modular.system.exception.BusinessException; import com.casic.missiles.modular.system.netty.DeviceCommon; +import com.casic.missiles.modular.system.service.IRobotDogInfoService; import com.casic.missiles.modular.system.service.IRouteInfoDetailService; import com.casic.missiles.modular.system.service.IRouteInfoService; import com.casic.missiles.modular.system.util.SnowFlakeUtil; @@ -37,6 +41,8 @@ private final IRouteInfoDetailService detailService; private final DeviceCommon deviceCommon; private final WebSocket webSocket; + private final IRobotDogInfoService iRobotDogInfoService; + @Transactional @Override public boolean saveRouteInfo(RouteInfo routeInfo) { @@ -52,9 +58,18 @@ } detailService.saveBatch(routeInfo.getRouteInfoDetailList()); } + //由于机器人只能有一条有效的巡航线,其他已录入的更新成无效 + deleteRouteInfo(routeInfo.getRobotId()); return true; } + public void deleteRouteInfo(Long robotId) { + UpdateWrapper updateWrapper = new UpdateWrapper<>(); + updateWrapper.eq("robot_id", robotId); + updateWrapper.set("status", "0"); + this.update(updateWrapper); + } + @Override public Page pageList(Page page, RouteInfoDTO requestDTO) { @@ -74,7 +89,10 @@ //先删除巡航线预置点信息 detailService.deleteByRouteInfoIds(ids); //再删除巡航线信息 - return this.removeByIds(ids); + UpdateWrapper updateWrapper = new UpdateWrapper<>(); + updateWrapper.in("id", ids); + updateWrapper.set("status", "0"); + return this.update(updateWrapper); } @Transactional @@ -92,38 +110,33 @@ } @Override - public void control(String command, Long robotDogId) { - switch (command) { - case "startRecordMap": - deviceCommon.sendMsg("111","startRecordMap"); -// this.deviceInit(detectorId); - break; - case "endRecordMap": -// this.pressurize(detectorId); - break; - case "startRecordRoutInfo": -// this.depress(detectorId); - break; - case "startPatrol": -// this.depress(detectorId); - break; - case "stopPatrol": -// this.depress(detectorId); - break; - case "endRecordRoutInfo": + public boolean control(String command, String devCode) { + boolean isSend = deviceCommon.sendMsg(devCode, command); + if (!isSend) { + throw new BusinessException(BusinessExceptionEnum.CONFIG_FAIL); + } + switch (command) { + case "a/": + //开始巡检时更新机器人巡检路线信息 + Long lineId = getLineId(devCode); + if (null != lineId) + iRobotDogInfoService.updateRobotDogLine(devCode, lineId); + break; default: break; } + return isSend; } - public void getMsg(Long detectorId, String msg) { - - //TOdO:处理数据 - - System.out.println("getMsg"+ msg); - //发送指令给设备 - //发送指令给设备 + public void getMsg(String devCode, String msg) { + //更新设备状态 + iRobotDogInfoService.updateRobotDogStatus(devCode, "1"); + //推送上线消息给前端 + JSONObject jsonObject = new JSONObject(); + jsonObject.put("devCode", devCode); + jsonObject.put("type", "onLine"); + webSocket.sendAllMessage(jsonObject.toJSONString()); } @Override @@ -136,14 +149,28 @@ //{"type":2,"devcode":"1212",data:[{"gps_x:1212","gps_y":1212","route_x":"1","route_y":"1","route_number":1},{"gps_x:1212","gps_y":"1212","route_x":"1","route_y":"1","route_number":2}]} //{"type":1,"devcode":"1212",data:[{"gps_x:1212","gps_y":1212"}] //{"type":3,"devcode":"1212",data:[{"gps_x:1212","gps_y":1212"}] - //{"type":5,"devcode":"1212",data:[{"cell:1212","gps_y":1212"}] + //{"type":5,"devcode":"1212",data:{"cell:20"} + if ("2".equals(type)) { +// JSONArray jsonArray = json.getJSONArray("data"); +// for (int i = 0; i < jsonArray.size(); i++) { +// JSONObject jsonObject = jsonArray.getJSONObject(i); +// RouteInfoDetail routeInfoDetail = new RouteInfoDetail(); +// routeInfoDetail.setGpsX(jsonObject.getString("gps_x")); +// routeInfoDetail.setGpsY(jsonObject.getString("gps_y")); +// routeInfoDetail.setRouteX(jsonObject.getString("route_x")); +// routeInfoDetail.setRouteY(jsonObject.getString("route_y")); +// routeInfoDetail.setRouteNumber(jsonObject.getString("route_number")); +// } + JSONObject msg = new JSONObject(); + msg.put("devcode", "922431"); + msg.put("points", json.getJSONArray("data")); + msg.put("type", "sendPoints"); + webSocket.sendAllMessage(msg.toJSONString()); + } + } - JSONObject msg = new JSONObject(); - msg.put("devcode", "1212"); - msg.put("gps_x", "121212"); - msg.put("gps_y", "322323"); - webSocket.sendAllMessage(msg.toJSONString()); - + public Long getLineId(String devCode) { + return this.baseMapper.getLineId(devCode); } } diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/controller/PatrolLogController.java b/casic-server/src/main/java/com/casic/missiles/modular/system/controller/PatrolLogController.java index b277154..0b5a69b 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/system/controller/PatrolLogController.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/controller/PatrolLogController.java @@ -1,9 +1,20 @@ package com.casic.missiles.modular.system.controller; -import org.springframework.web.bind.annotation.RequestMapping; - -import org.springframework.web.bind.annotation.RestController; +import cn.hutool.core.util.ObjectUtil; +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.casic.missiles.core.base.controller.ExportController; +import com.casic.missiles.core.page.PageFactory; +import com.casic.missiles.modular.system.dto.PatrolLogDTO; +import com.casic.missiles.modular.system.dto.ReturnDTO; +import com.casic.missiles.modular.system.entity.PatrolLog; +import com.casic.missiles.modular.system.service.IPatrolLogService; +import com.casic.missiles.modular.system.util.ReturnUtil; +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiOperation; +import lombok.RequiredArgsConstructor; +import org.springframework.web.bind.annotation.*; /** *

@@ -13,9 +24,23 @@ * @author zt * @since 2025-03-14 */ +@Api(tags = "巡航日志管理模块") +@RequiredArgsConstructor @RestController @RequestMapping("/system/patrolLog") -public class PatrolLogController { +public class PatrolLogController extends ExportController { + private final IPatrolLogService iPatrolLogService; + + @ApiOperation("查询分页接口") + @PostMapping("/listPage") + @ResponseBody + public ReturnDTO listPage(@RequestBody PatrolLogDTO requestDTO) { + Page page = PageFactory.defaultPage(); + QueryWrapper queryWrapper = new QueryWrapper<>(); + queryWrapper.eq(ObjectUtil.isNotEmpty(requestDTO.getRouteInfoId()), "route_info_id", requestDTO.getRouteInfoId()); + queryWrapper.orderByDesc("createTime"); + return ReturnUtil.success(super.packForBT(iPatrolLogService.page(page, queryWrapper))); + } } diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/controller/ReceiveDeviceDataController.java b/casic-server/src/main/java/com/casic/missiles/modular/system/controller/ReceiveDeviceDataController.java index e0bc9c6..75ae29e 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/system/controller/ReceiveDeviceDataController.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/controller/ReceiveDeviceDataController.java @@ -34,7 +34,6 @@ CompletableFuture.runAsync(() -> { iRouteInfoService.processData(map); -// ResponseResolver.makeResponse(map); } ); return ReturnUtil.success(); diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/controller/RobotDogInfoController.java b/casic-server/src/main/java/com/casic/missiles/modular/system/controller/RobotDogInfoController.java index baffa6f..004b2bf 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/system/controller/RobotDogInfoController.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/controller/RobotDogInfoController.java @@ -7,9 +7,7 @@ import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.casic.missiles.core.base.controller.ExportController; import com.casic.missiles.core.page.PageFactory; -import com.casic.missiles.modular.system.dto.IdsDTO; -import com.casic.missiles.modular.system.dto.ReturnDTO; -import com.casic.missiles.modular.system.dto.RobotDogInfoDTO; +import com.casic.missiles.modular.system.dto.*; import com.casic.missiles.modular.system.entity.RobotDogInfo; import com.casic.missiles.modular.system.enums.BusinessExceptionEnum; import com.casic.missiles.modular.system.exception.BusinessException; @@ -20,7 +18,6 @@ import lombok.RequiredArgsConstructor; import org.springframework.web.bind.annotation.*; -import java.util.List; import java.util.Objects; /** @@ -46,8 +43,8 @@ Page page = PageFactory.defaultPage(); QueryWrapper queryWrapper = new QueryWrapper<>(); queryWrapper.like(ObjectUtil.isNotEmpty(requestDTO.getRobotName()), "robot_name", requestDTO.getRobotName()); - queryWrapper.eq("robot_status", "1"); - return ReturnUtil.success(super.packForBT(iRobotDogInfoService.page(page,queryWrapper))); + queryWrapper.eq("valid", "1"); + return ReturnUtil.success(super.packForBT(iRobotDogInfoService.page(page, queryWrapper))); } @ApiOperation("增加设备类型") @@ -77,5 +74,33 @@ }); return ReturnUtil.success(iRobotDogInfoService.batchDeleteDogs(idsDTO.getIds())); } + + @ApiOperation("获取机器狗下拉列表") + @PostMapping("/selectDogList") + @ResponseBody + public ReturnDTO selectDogList() { + return ReturnUtil.success(iRobotDogInfoService.selectDogList()); + } + + @ApiOperation("根据设备获取巡航线,id魏机器狗id") + @PostMapping("/selectLines") + @ResponseBody + public ReturnDTO selectLines(@RequestBody IdDTO idDTO) { + Assert.isFalse(Objects.isNull(idDTO.getId()), () -> { + throw new BusinessException(BusinessExceptionEnum.ID_NULL); + }); + return ReturnUtil.success(iRobotDogInfoService.selectLines(idDTO.getId())); + } + + + @ApiOperation("根据设备编号获取机器狗信息") + @PostMapping("/getRobotDogByCode") + @ResponseBody + public ReturnDTO getRobotDogByCode(@RequestBody RobotDogInfoDTO requestDTO) { + QueryWrapper queryWrapper = new QueryWrapper<>(); + queryWrapper.eq(ObjectUtil.isNotEmpty(requestDTO.getRobotCode()), "robot_code", requestDTO.getRobotCode()); + queryWrapper.eq("robot_status", "1"); + return ReturnUtil.success(iRobotDogInfoService.list(queryWrapper)); + } } diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/controller/RouteInfoController.java b/casic-server/src/main/java/com/casic/missiles/modular/system/controller/RouteInfoController.java index d6ccb8e..0a24375 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/system/controller/RouteInfoController.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/controller/RouteInfoController.java @@ -9,6 +9,7 @@ import com.casic.missiles.modular.system.dto.IdsDTO; import com.casic.missiles.modular.system.dto.ReturnDTO; import com.casic.missiles.modular.system.dto.RouteInfoDTO; +import com.casic.missiles.modular.system.dto.SelectDTO; import com.casic.missiles.modular.system.entity.RouteInfo; import com.casic.missiles.modular.system.enums.BusinessExceptionEnum; import com.casic.missiles.modular.system.exception.BusinessException; @@ -74,14 +75,26 @@ return ReturnUtil.success(iRouteInfoService.editRouteInfo(routeInfo)); } + /** + * startRecordMap: 'w/', // 开始地图录入 + * endRecordMap: 'e/', // 完成地图录入 + * startRecordRoutInfo: 'x/', // 添加巡检点 + * endRecordRoutInfo: 'c/', // 保存巡检点和地图 + * delRecordRoutInfo: 'v/', // 删除所有的巡检点和地图 + * startNavigation: 'a/', // 开始巡检 + * pauseNavigation: 's/', // 暂停巡检 + * recoverNavigation: 'd/', // 恢复巡检 + * @param command + * @param devCode + * @return + */ @ApiOperation("控制指令类型(startRecordMap-开始地图录制,endRecordMap-完成地图录制," + - "startRecordRoutInfo-开始巡检线路录入,endRecordRoutInfo-结束巡检线路录入,"+ + "startRecordRoutInfo-开始巡检线路录入,endRecordRoutInfo-结束巡检线路录入," + "startPatrol-开始巡检,stopPatrol-结束巡检") @PostMapping("/control") @ResponseBody - public ResponseDataDTO control(String command, Long robotDogId) { - iRouteInfoService.control(command, robotDogId); - return ResponseDataDTO.success(); + public ReturnDTO control(String command, String devCode) { + return ReturnUtil.success(iRouteInfoService.control(command, devCode)); } } diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/dao/RobotDogInfoMapper.java b/casic-server/src/main/java/com/casic/missiles/modular/system/dao/RobotDogInfoMapper.java index bdf4553..0bbdf6c 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/system/dao/RobotDogInfoMapper.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/dao/RobotDogInfoMapper.java @@ -1,8 +1,13 @@ package com.casic.missiles.modular.system.dao; import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.casic.missiles.modular.system.dto.SelectDTO; import com.casic.missiles.modular.system.entity.RobotDogInfo; import org.apache.ibatis.annotations.Mapper; +import org.apache.ibatis.annotations.Param; +import org.apache.ibatis.annotations.Select; + +import java.util.List; /** *

@@ -15,4 +20,11 @@ @Mapper public interface RobotDogInfoMapper extends BaseMapper { + + @Select("SELECT robot_name as `name`,id,robot_code as `code` FROM `robot_dog_info` where valid='1'") + List selectDogList(); + + @Select("SELECT route_name as `name`,id FROM `route_info` where robot_id = #{robotId} and status='1'") + List selectLines(@Param("robotId") Long robotId); + } diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/dao/RouteInfoMapper.java b/casic-server/src/main/java/com/casic/missiles/modular/system/dao/RouteInfoMapper.java index bae594b..844b1fe 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/system/dao/RouteInfoMapper.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/dao/RouteInfoMapper.java @@ -5,8 +5,10 @@ import com.casic.missiles.core.datascope.DataScope; import com.casic.missiles.modular.system.dto.RouteInfoDTO; import com.casic.missiles.modular.system.entity.RouteInfo; +import org.apache.ibatis.annotations.Delete; import org.apache.ibatis.annotations.Mapper; import org.apache.ibatis.annotations.Param; +import org.apache.ibatis.annotations.Select; /** *

@@ -22,4 +24,8 @@ Page listPage(@Param("page") Page page, @Param("requestDTO") RouteInfoDTO requestDTO); + @Select("SELECT ri.id FROM `route_info` ri LEFT join robot_dog_info rd on ri.robot_id= rd.id " + + "where ri.status='1' and rd.robot_code = #{devCode} limit 1") + Long getLineId(@Param("devCode") String devCode); + } diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/dao/mapping/PatrolLogMapper.xml b/casic-server/src/main/java/com/casic/missiles/modular/system/dao/mapping/PatrolLogMapper.xml index 30aebdd..abeb14b 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/system/dao/mapping/PatrolLogMapper.xml +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/dao/mapping/PatrolLogMapper.xml @@ -1,6 +1,6 @@ - + diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/dao/mapping/RobotDogInfoMapper.xml b/casic-server/src/main/java/com/casic/missiles/modular/system/dao/mapping/RobotDogInfoMapper.xml index 182ca3d..aa18c82 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/system/dao/mapping/RobotDogInfoMapper.xml +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/dao/mapping/RobotDogInfoMapper.xml @@ -1,6 +1,6 @@ - + diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/dao/mapping/RouteInfoDetailMapper.xml b/casic-server/src/main/java/com/casic/missiles/modular/system/dao/mapping/RouteInfoDetailMapper.xml index 1e36465..a224cde 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/system/dao/mapping/RouteInfoDetailMapper.xml +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/dao/mapping/RouteInfoDetailMapper.xml @@ -1,6 +1,6 @@ - + diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/dao/mapping/RouteInfoMapper.xml b/casic-server/src/main/java/com/casic/missiles/modular/system/dao/mapping/RouteInfoMapper.xml index 2542993..6e5acda 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/system/dao/mapping/RouteInfoMapper.xml +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/dao/mapping/RouteInfoMapper.xml @@ -1,6 +1,6 @@ - + diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/dto/PatrolLogDTO.java b/casic-server/src/main/java/com/casic/missiles/modular/system/dto/PatrolLogDTO.java new file mode 100644 index 0000000..1b7b208 --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/dto/PatrolLogDTO.java @@ -0,0 +1,25 @@ +package com.casic.missiles.modular.system.dto; + + +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import java.io.Serializable; + + +@Data +public class PatrolLogDTO implements Serializable { + + private static final long serialVersionUID = 1L; + +// @ApiModelProperty("机器人id") +// private Long robotId; + @ApiModelProperty("巡航线id") + private Long routeInfoId; +// @ApiModelProperty("小区名称") +// private String communityName; +// @ApiModelProperty("小区地址") +// private String communityAddress; + + +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/dto/RobotDogInfoDTO.java b/casic-server/src/main/java/com/casic/missiles/modular/system/dto/RobotDogInfoDTO.java index 99f94ff..e76a861 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/system/dto/RobotDogInfoDTO.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/dto/RobotDogInfoDTO.java @@ -15,5 +15,8 @@ @ApiModelProperty("设备名称") private String robotName; + @ApiModelProperty("设备编号") + private String robotCode; + } diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/dto/SelectDTO.java b/casic-server/src/main/java/com/casic/missiles/modular/system/dto/SelectDTO.java new file mode 100644 index 0000000..b8156d7 --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/dto/SelectDTO.java @@ -0,0 +1,26 @@ +package com.casic.missiles.modular.system.dto; + + +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import java.io.Serializable; + + +@Data +public class SelectDTO implements Serializable { + + private static final long serialVersionUID = 1L; + + + @ApiModelProperty("id") + private Long id; + + @ApiModelProperty("name") + private String name; + + @ApiModelProperty("code") + private String code; + + +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/entity/RobotDogInfo.java b/casic-server/src/main/java/com/casic/missiles/modular/system/entity/RobotDogInfo.java index 454b1bc..bfb9c50 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/system/entity/RobotDogInfo.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/entity/RobotDogInfo.java @@ -46,10 +46,14 @@ @TableField("robot_port") private Integer robotPort; - @ApiModelProperty("机器狗状态(1,有效,0无效)") + @ApiModelProperty("机器狗状态(1,在线,离线)") @TableField("robot_status") private String robotStatus; + @ApiModelProperty("删除状态(1,有效,0无效)") + @TableField("valid") + private String valid; + @ApiModelProperty("电量") @TableField("robot_cell") private String robotCell; diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/entity/RouteInfo.java b/casic-server/src/main/java/com/casic/missiles/modular/system/entity/RouteInfo.java index 9b88a35..299594b 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/system/entity/RouteInfo.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/entity/RouteInfo.java @@ -43,6 +43,10 @@ @TableField("route_name") private String routeName; + @ApiModelProperty("状态1:有效,0:无效") + @TableField("status") + private String status; + @ApiModelProperty("机器人ID") @TableField("robot_id") private Long robotId; @@ -61,4 +65,9 @@ @TableField(exist = false) private List routeInfoDetailList; + + @ApiModelProperty("机器人名称") + @TableField(exist = false) + private String robotName; + } diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/enums/BusinessExceptionEnum.java b/casic-server/src/main/java/com/casic/missiles/modular/system/enums/BusinessExceptionEnum.java index 7924c30..6bafabf 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/system/enums/BusinessExceptionEnum.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/enums/BusinessExceptionEnum.java @@ -29,7 +29,9 @@ MONITOR_VALID_FAILED(2099, "云台登录地址重复"), - DEVICE_DUPLICATE(2011, "设备编号重复"); + DEVICE_DUPLICATE(2011, "设备编号重复"), + + CONFIG_FAIL(4005, "设备通讯一次,下发失败"); private Integer code; diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/netty/NettyServer.java b/casic-server/src/main/java/com/casic/missiles/modular/system/netty/NettyServer.java index 52b8451..0e608c3 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/system/netty/NettyServer.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/netty/NettyServer.java @@ -39,7 +39,7 @@ .childOption(ChannelOption.SO_KEEPALIVE, true); // 绑定端口并开始接受进来的连接 - future = bootstrap.bind(7000).sync(); + future = bootstrap.bind(11647).sync(); // 等待服务器套接字关闭 future.channel().closeFuture().sync(); diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/netty/RobotChannelHandler.java b/casic-server/src/main/java/com/casic/missiles/modular/system/netty/RobotChannelHandler.java index 11878ff..ac53fc7 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/system/netty/RobotChannelHandler.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/netty/RobotChannelHandler.java @@ -1,6 +1,7 @@ package com.casic.missiles.modular.system.netty; +import cn.hutool.core.util.ObjectUtil; import com.casic.missiles.modular.system.service.impl.RouteInfoServiceImpl; import io.netty.channel.Channel; import io.netty.channel.ChannelHandlerContext; @@ -43,16 +44,16 @@ executor.submit(new Runnable() { @Override public void run() { - String encryptData = msg.toString(); - DeviceCommon.devcodeMap.put(encryptData, channel.id().asLongText()); - System.out.println("接收到加密数据:" + encryptData); - routeInfoService.getMsg(1L,encryptData); -// String decryptData = RSAUtil.getDecryptMsg(encryptData); -// if (ObjectUtil.isNotEmpty(decryptData) && decryptData.contains(",")) { -// String devCode = decryptData.split(",")[0]; -// DeviceCommon.devcodeMap.put(devCode, channel.id().asLongText()); -// dataPanGasService.process(decryptData); -// } + String dataMsg = msg.toString(); + log.info("接收到机器狗数据:" + dataMsg); + if(ObjectUtil.isNotEmpty(dataMsg)){ + //只接收设备基本信息,其他过滤 + if(dataMsg.startsWith("devCode:")){ + String devCode = dataMsg.substring(8); + DeviceCommon.devcodeMap.put(devCode, channel.id().asLongText()); + routeInfoService.getMsg(devCode,dataMsg); + } + } } }); } diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/service/IRobotDogInfoService.java b/casic-server/src/main/java/com/casic/missiles/modular/system/service/IRobotDogInfoService.java index 1c6f24e..1320c8d 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/system/service/IRobotDogInfoService.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/service/IRobotDogInfoService.java @@ -1,7 +1,8 @@ package com.casic.missiles.modular.system.service; -import com.casic.missiles.modular.system.entity.RobotDogInfo; import com.baomidou.mybatisplus.extension.service.IService; +import com.casic.missiles.modular.system.dto.SelectDTO; +import com.casic.missiles.modular.system.entity.RobotDogInfo; import java.util.List; @@ -17,4 +18,12 @@ boolean batchDeleteDogs(List ids); + boolean updateRobotDogLine(String devCode, Long lineId); + + boolean updateRobotDogStatus(String devCode, String status); + + List selectDogList(); + + List selectLines(Long robotId); + } diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/service/IRouteInfoService.java b/casic-server/src/main/java/com/casic/missiles/modular/system/service/IRouteInfoService.java index 1658f2e..9cb5804 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/system/service/IRouteInfoService.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/service/IRouteInfoService.java @@ -24,7 +24,7 @@ boolean editRouteInfo(RouteInfo routeInfo); - void control(String command,Long robotDogId); + boolean control(String command,String devCode); void processData(Map map); diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/service/impl/PatrolLogServiceImpl.java b/casic-server/src/main/java/com/casic/missiles/modular/system/service/impl/PatrolLogServiceImpl.java index ae8438a..51b90c5 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/system/service/impl/PatrolLogServiceImpl.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/service/impl/PatrolLogServiceImpl.java @@ -2,6 +2,7 @@ import cn.hutool.core.util.ObjectUtil; import com.alibaba.fastjson.JSON; +import com.alibaba.fastjson.JSONObject; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.casic.missiles.core.common.service.ICommonFileService; import com.casic.missiles.modular.system.dao.PatrolLogMapper; @@ -9,6 +10,7 @@ import com.casic.missiles.modular.system.service.IPatrolLogService; import com.casic.missiles.modular.system.util.CommonUtil; import com.casic.missiles.modular.system.util.HttpClientUtils; +import com.casic.missiles.modular.system.util.WebSocket; import lombok.RequiredArgsConstructor; import org.slf4j.Logger; import org.slf4j.LoggerFactory; @@ -38,6 +40,8 @@ @Resource private ICommonFileService commonFileService; + private final WebSocket webSocket; + @Value("${casic.brPushUrl}") private String brPushUrl; @@ -64,9 +68,23 @@ } this.saveBatch(patrolLogList); - //推送第三方 + CompletableFuture.runAsync(() -> { -// ResponseResolver.makeResponse(map); + + //websocket推送给前端 + if (patrolLogList.size() > 0) { + for (PatrolLog patrolLog : patrolLogList) { + JSONObject jsonObject = new JSONObject(); + jsonObject.put("routeInfoId", patrolLog.getRouteInfoId()); + jsonObject.put("patrolType", patrolLog.getPatrolType()); + jsonObject.put("patrolContent", patrolLog.getPatrolContent()); + jsonObject.put("patrolTime", patrolLog.getCreateTime()); + jsonObject.put("picture", patrolLog.getPatrolPicture()); + webSocket.sendAllMessage(jsonObject.toJSONString()); + } + } + + //推送第三方 Map parasMap = new HashMap<>(); HttpClientUtils.post(brPushUrl, JSON.toJSONString(parasMap)); } diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/service/impl/RobotDogInfoServiceImpl.java b/casic-server/src/main/java/com/casic/missiles/modular/system/service/impl/RobotDogInfoServiceImpl.java index ad9caa9..a260aaa 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/system/service/impl/RobotDogInfoServiceImpl.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/service/impl/RobotDogInfoServiceImpl.java @@ -3,6 +3,7 @@ import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.casic.missiles.modular.system.dao.RobotDogInfoMapper; +import com.casic.missiles.modular.system.dto.SelectDTO; import com.casic.missiles.modular.system.entity.RobotDogInfo; import com.casic.missiles.modular.system.service.IRobotDogInfoService; import org.springframework.stereotype.Service; @@ -20,12 +21,38 @@ @Service public class RobotDogInfoServiceImpl extends ServiceImpl implements IRobotDogInfoService { - @Override public boolean batchDeleteDogs(List ids) { UpdateWrapper updateWrapper = new UpdateWrapper<>(); updateWrapper.in("id", ids); - updateWrapper.set("robot_status", "0"); + updateWrapper.set("valid", "0"); + return this.update(updateWrapper); + } + + @Override + public List selectDogList() { + + return this.baseMapper.selectDogList(); + } + + @Override + public List selectLines(Long robotId) { + return this.baseMapper.selectLines(robotId); + } + + @Override + public boolean updateRobotDogLine(String devCode, Long lineId) { + UpdateWrapper updateWrapper = new UpdateWrapper<>(); + updateWrapper.eq("robot_code", devCode); + updateWrapper.set("route_id", lineId); + return this.update(updateWrapper); + } + + @Override + public boolean updateRobotDogStatus(String devCode, String status) { + UpdateWrapper updateWrapper = new UpdateWrapper<>(); + updateWrapper.eq("robot_code", devCode); + updateWrapper.set("robot_status", status); return this.update(updateWrapper); } } diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/service/impl/RouteInfoServiceImpl.java b/casic-server/src/main/java/com/casic/missiles/modular/system/service/impl/RouteInfoServiceImpl.java index 501dedd..3f583f6 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/system/service/impl/RouteInfoServiceImpl.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/service/impl/RouteInfoServiceImpl.java @@ -3,13 +3,17 @@ import cn.hutool.core.util.ObjectUtil; import com.alibaba.fastjson.JSON; import com.alibaba.fastjson.JSONObject; +import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.casic.missiles.modular.system.dao.RouteInfoMapper; import com.casic.missiles.modular.system.dto.RouteInfoDTO; import com.casic.missiles.modular.system.entity.RouteInfo; import com.casic.missiles.modular.system.entity.RouteInfoDetail; +import com.casic.missiles.modular.system.enums.BusinessExceptionEnum; +import com.casic.missiles.modular.system.exception.BusinessException; import com.casic.missiles.modular.system.netty.DeviceCommon; +import com.casic.missiles.modular.system.service.IRobotDogInfoService; import com.casic.missiles.modular.system.service.IRouteInfoDetailService; import com.casic.missiles.modular.system.service.IRouteInfoService; import com.casic.missiles.modular.system.util.SnowFlakeUtil; @@ -37,6 +41,8 @@ private final IRouteInfoDetailService detailService; private final DeviceCommon deviceCommon; private final WebSocket webSocket; + private final IRobotDogInfoService iRobotDogInfoService; + @Transactional @Override public boolean saveRouteInfo(RouteInfo routeInfo) { @@ -52,9 +58,18 @@ } detailService.saveBatch(routeInfo.getRouteInfoDetailList()); } + //由于机器人只能有一条有效的巡航线,其他已录入的更新成无效 + deleteRouteInfo(routeInfo.getRobotId()); return true; } + public void deleteRouteInfo(Long robotId) { + UpdateWrapper updateWrapper = new UpdateWrapper<>(); + updateWrapper.eq("robot_id", robotId); + updateWrapper.set("status", "0"); + this.update(updateWrapper); + } + @Override public Page pageList(Page page, RouteInfoDTO requestDTO) { @@ -74,7 +89,10 @@ //先删除巡航线预置点信息 detailService.deleteByRouteInfoIds(ids); //再删除巡航线信息 - return this.removeByIds(ids); + UpdateWrapper updateWrapper = new UpdateWrapper<>(); + updateWrapper.in("id", ids); + updateWrapper.set("status", "0"); + return this.update(updateWrapper); } @Transactional @@ -92,38 +110,33 @@ } @Override - public void control(String command, Long robotDogId) { - switch (command) { - case "startRecordMap": - deviceCommon.sendMsg("111","startRecordMap"); -// this.deviceInit(detectorId); - break; - case "endRecordMap": -// this.pressurize(detectorId); - break; - case "startRecordRoutInfo": -// this.depress(detectorId); - break; - case "startPatrol": -// this.depress(detectorId); - break; - case "stopPatrol": -// this.depress(detectorId); - break; - case "endRecordRoutInfo": + public boolean control(String command, String devCode) { + boolean isSend = deviceCommon.sendMsg(devCode, command); + if (!isSend) { + throw new BusinessException(BusinessExceptionEnum.CONFIG_FAIL); + } + switch (command) { + case "a/": + //开始巡检时更新机器人巡检路线信息 + Long lineId = getLineId(devCode); + if (null != lineId) + iRobotDogInfoService.updateRobotDogLine(devCode, lineId); + break; default: break; } + return isSend; } - public void getMsg(Long detectorId, String msg) { - - //TOdO:处理数据 - - System.out.println("getMsg"+ msg); - //发送指令给设备 - //发送指令给设备 + public void getMsg(String devCode, String msg) { + //更新设备状态 + iRobotDogInfoService.updateRobotDogStatus(devCode, "1"); + //推送上线消息给前端 + JSONObject jsonObject = new JSONObject(); + jsonObject.put("devCode", devCode); + jsonObject.put("type", "onLine"); + webSocket.sendAllMessage(jsonObject.toJSONString()); } @Override @@ -136,14 +149,28 @@ //{"type":2,"devcode":"1212",data:[{"gps_x:1212","gps_y":1212","route_x":"1","route_y":"1","route_number":1},{"gps_x:1212","gps_y":"1212","route_x":"1","route_y":"1","route_number":2}]} //{"type":1,"devcode":"1212",data:[{"gps_x:1212","gps_y":1212"}] //{"type":3,"devcode":"1212",data:[{"gps_x:1212","gps_y":1212"}] - //{"type":5,"devcode":"1212",data:[{"cell:1212","gps_y":1212"}] + //{"type":5,"devcode":"1212",data:{"cell:20"} + if ("2".equals(type)) { +// JSONArray jsonArray = json.getJSONArray("data"); +// for (int i = 0; i < jsonArray.size(); i++) { +// JSONObject jsonObject = jsonArray.getJSONObject(i); +// RouteInfoDetail routeInfoDetail = new RouteInfoDetail(); +// routeInfoDetail.setGpsX(jsonObject.getString("gps_x")); +// routeInfoDetail.setGpsY(jsonObject.getString("gps_y")); +// routeInfoDetail.setRouteX(jsonObject.getString("route_x")); +// routeInfoDetail.setRouteY(jsonObject.getString("route_y")); +// routeInfoDetail.setRouteNumber(jsonObject.getString("route_number")); +// } + JSONObject msg = new JSONObject(); + msg.put("devcode", "922431"); + msg.put("points", json.getJSONArray("data")); + msg.put("type", "sendPoints"); + webSocket.sendAllMessage(msg.toJSONString()); + } + } - JSONObject msg = new JSONObject(); - msg.put("devcode", "1212"); - msg.put("gps_x", "121212"); - msg.put("gps_y", "322323"); - webSocket.sendAllMessage(msg.toJSONString()); - + public Long getLineId(String devCode) { + return this.baseMapper.getLineId(devCode); } } diff --git a/casic-web/src/main/resources/config/application-dev.yml b/casic-web/src/main/resources/config/application-dev.yml index e19ffb8..3e64c75 100644 --- a/casic-web/src/main/resources/config/application-dev.yml +++ b/casic-web/src/main/resources/config/application-dev.yml @@ -19,12 +19,12 @@ # redisValueSerializer: org.springframework.data.redis.serializer.JdkSerializationRedisSerializer casic: #kaptcha-open: false #是否开启登录时验证码 (true/false) - no-login-urls: ${casic.sysUrl}/user/login,${casic.sysUrl}/user/appLogin,${casic.sysUrl}/kaptcha/base64,${casic.sysUrl}/config/baseConfig,/route/mockToken,/websocket/*,/v2/api-docs,/v2/api-docs-ext,/doc.html,/v2/api-docs/swagger-ui.html,/swagger-resources,/webjars/**,/device/receiveData,/algorithm/receiveData + no-login-urls: ${casic.sysUrl}/user/login,${casic.sysUrl}/user/appLogin,${casic.sysUrl}/kaptcha/base64,${casic.sysUrl}/config/baseConfig,/route/mockToken,/websocket/*,/v2/api-docs,/v2/api-docs-ext,/doc.html,/v2/api-docs/swagger-ui.html,/swagger-resources,/webjars/**,/device/receiveData,/algorithm/receiveData,/system/routeInfo/control #flowable数据源和多数据源配置 db: init: enable: false - brPushUrl: http://10.30.7.26:20110/monitorDataReceive/alarmPush + brPushUrl: http://10.30.7.25:20115/coordination/pushAiEvent logging: level.root: info level.com.casic: debug