diff --git a/casic-server/src/main/java/com/casic/missiles/modular/constants/RobotDictConstants.java b/casic-server/src/main/java/com/casic/missiles/modular/constants/RobotDictConstants.java index 94a7379..6394b03 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/constants/RobotDictConstants.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/constants/RobotDictConstants.java @@ -31,5 +31,9 @@ * 当前栅格点位信息 */ String KEY_CUR_POINT = "KEY_CUR_POINT_"; + /** + * 当前坐标信息缓存 + */ + String KEY_CUR_XY_POINT = "KEY_CUR_XY_POINT_"; String KEY_CUR_ESTIMATE_GRID = "KEY_CUR_ESTIMATE_GRID_"; } diff --git a/casic-server/src/main/java/com/casic/missiles/modular/constants/RobotDictConstants.java b/casic-server/src/main/java/com/casic/missiles/modular/constants/RobotDictConstants.java index 94a7379..6394b03 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/constants/RobotDictConstants.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/constants/RobotDictConstants.java @@ -31,5 +31,9 @@ * 当前栅格点位信息 */ String KEY_CUR_POINT = "KEY_CUR_POINT_"; + /** + * 当前坐标信息缓存 + */ + String KEY_CUR_XY_POINT = "KEY_CUR_XY_POINT_"; String KEY_CUR_ESTIMATE_GRID = "KEY_CUR_ESTIMATE_GRID_"; } diff --git a/casic-server/src/main/java/com/casic/missiles/modular/robot/dto/PointNextDTO.java b/casic-server/src/main/java/com/casic/missiles/modular/robot/dto/PointNextDTO.java index a29734d..f0413d3 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/robot/dto/PointNextDTO.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/robot/dto/PointNextDTO.java @@ -2,10 +2,11 @@ import lombok.Data; +import java.io.Serializable; import java.util.List; @Data -public class PointNextDTO { +public class PointNextDTO implements Serializable { private String x; private String y; private String z; diff --git a/casic-server/src/main/java/com/casic/missiles/modular/constants/RobotDictConstants.java b/casic-server/src/main/java/com/casic/missiles/modular/constants/RobotDictConstants.java index 94a7379..6394b03 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/constants/RobotDictConstants.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/constants/RobotDictConstants.java @@ -31,5 +31,9 @@ * 当前栅格点位信息 */ String KEY_CUR_POINT = "KEY_CUR_POINT_"; + /** + * 当前坐标信息缓存 + */ + String KEY_CUR_XY_POINT = "KEY_CUR_XY_POINT_"; String KEY_CUR_ESTIMATE_GRID = "KEY_CUR_ESTIMATE_GRID_"; } diff --git a/casic-server/src/main/java/com/casic/missiles/modular/robot/dto/PointNextDTO.java b/casic-server/src/main/java/com/casic/missiles/modular/robot/dto/PointNextDTO.java index a29734d..f0413d3 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/robot/dto/PointNextDTO.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/robot/dto/PointNextDTO.java @@ -2,10 +2,11 @@ import lombok.Data; +import java.io.Serializable; import java.util.List; @Data -public class PointNextDTO { +public class PointNextDTO implements Serializable { private String x; private String y; private String z; diff --git a/casic-server/src/main/java/com/casic/missiles/modular/robot/model/TaskInfo.java b/casic-server/src/main/java/com/casic/missiles/modular/robot/model/TaskInfo.java index 5b66a76..7da2fa0 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/robot/model/TaskInfo.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/robot/model/TaskInfo.java @@ -9,6 +9,7 @@ import io.swagger.annotations.ApiModelProperty; import lombok.Data; +import java.math.BigDecimal; import java.util.Date; /** @@ -139,6 +140,13 @@ @ApiModelProperty(value = "热力分布图路径") @TableField("heat_img") private String heatImg; + + @ApiModelProperty(value = "栅格顶点值", dataType = "Integer") + @TableField("grid_size") + private BigDecimal gridSize; + @ApiModelProperty(value = "栅格数量", dataType = "Integer") + @TableField("grid_number") + private Integer gridNumber; @Override public String toString() { return "TaskInfo{" diff --git a/casic-server/src/main/java/com/casic/missiles/modular/constants/RobotDictConstants.java b/casic-server/src/main/java/com/casic/missiles/modular/constants/RobotDictConstants.java index 94a7379..6394b03 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/constants/RobotDictConstants.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/constants/RobotDictConstants.java @@ -31,5 +31,9 @@ * 当前栅格点位信息 */ String KEY_CUR_POINT = "KEY_CUR_POINT_"; + /** + * 当前坐标信息缓存 + */ + String KEY_CUR_XY_POINT = "KEY_CUR_XY_POINT_"; String KEY_CUR_ESTIMATE_GRID = "KEY_CUR_ESTIMATE_GRID_"; } diff --git a/casic-server/src/main/java/com/casic/missiles/modular/robot/dto/PointNextDTO.java b/casic-server/src/main/java/com/casic/missiles/modular/robot/dto/PointNextDTO.java index a29734d..f0413d3 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/robot/dto/PointNextDTO.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/robot/dto/PointNextDTO.java @@ -2,10 +2,11 @@ import lombok.Data; +import java.io.Serializable; import java.util.List; @Data -public class PointNextDTO { +public class PointNextDTO implements Serializable { private String x; private String y; private String z; diff --git a/casic-server/src/main/java/com/casic/missiles/modular/robot/model/TaskInfo.java b/casic-server/src/main/java/com/casic/missiles/modular/robot/model/TaskInfo.java index 5b66a76..7da2fa0 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/robot/model/TaskInfo.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/robot/model/TaskInfo.java @@ -9,6 +9,7 @@ import io.swagger.annotations.ApiModelProperty; import lombok.Data; +import java.math.BigDecimal; import java.util.Date; /** @@ -139,6 +140,13 @@ @ApiModelProperty(value = "热力分布图路径") @TableField("heat_img") private String heatImg; + + @ApiModelProperty(value = "栅格顶点值", dataType = "Integer") + @TableField("grid_size") + private BigDecimal gridSize; + @ApiModelProperty(value = "栅格数量", dataType = "Integer") + @TableField("grid_number") + private Integer gridNumber; @Override public String toString() { return "TaskInfo{" diff --git a/casic-server/src/main/java/com/casic/missiles/modular/robot/opt/instruct/dto/PoseMessageResponseDTO.java b/casic-server/src/main/java/com/casic/missiles/modular/robot/opt/instruct/dto/PoseMessageResponseDTO.java index ef8b479..ee40333 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/robot/opt/instruct/dto/PoseMessageResponseDTO.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/robot/opt/instruct/dto/PoseMessageResponseDTO.java @@ -1,14 +1,16 @@ package com.casic.missiles.modular.robot.opt.instruct.dto; +import com.fasterxml.jackson.core.SerializableString; import lombok.Data; +import java.io.Serializable; import java.math.BigDecimal; /** * 实时点位上报 {"msg": {"y": -20.73847741021961, "x": -1.958316040901666, "z": 0.4921659690312511, "theta": -2.494841778370823}} */ @Data -public class PoseMessageResponseDTO { +public class PoseMessageResponseDTO implements Serializable { private BigDecimal x; private BigDecimal y; private BigDecimal z; diff --git a/casic-server/src/main/java/com/casic/missiles/modular/constants/RobotDictConstants.java b/casic-server/src/main/java/com/casic/missiles/modular/constants/RobotDictConstants.java index 94a7379..6394b03 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/constants/RobotDictConstants.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/constants/RobotDictConstants.java @@ -31,5 +31,9 @@ * 当前栅格点位信息 */ String KEY_CUR_POINT = "KEY_CUR_POINT_"; + /** + * 当前坐标信息缓存 + */ + String KEY_CUR_XY_POINT = "KEY_CUR_XY_POINT_"; String KEY_CUR_ESTIMATE_GRID = "KEY_CUR_ESTIMATE_GRID_"; } diff --git a/casic-server/src/main/java/com/casic/missiles/modular/robot/dto/PointNextDTO.java b/casic-server/src/main/java/com/casic/missiles/modular/robot/dto/PointNextDTO.java index a29734d..f0413d3 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/robot/dto/PointNextDTO.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/robot/dto/PointNextDTO.java @@ -2,10 +2,11 @@ import lombok.Data; +import java.io.Serializable; import java.util.List; @Data -public class PointNextDTO { +public class PointNextDTO implements Serializable { private String x; private String y; private String z; diff --git a/casic-server/src/main/java/com/casic/missiles/modular/robot/model/TaskInfo.java b/casic-server/src/main/java/com/casic/missiles/modular/robot/model/TaskInfo.java index 5b66a76..7da2fa0 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/robot/model/TaskInfo.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/robot/model/TaskInfo.java @@ -9,6 +9,7 @@ import io.swagger.annotations.ApiModelProperty; import lombok.Data; +import java.math.BigDecimal; import java.util.Date; /** @@ -139,6 +140,13 @@ @ApiModelProperty(value = "热力分布图路径") @TableField("heat_img") private String heatImg; + + @ApiModelProperty(value = "栅格顶点值", dataType = "Integer") + @TableField("grid_size") + private BigDecimal gridSize; + @ApiModelProperty(value = "栅格数量", dataType = "Integer") + @TableField("grid_number") + private Integer gridNumber; @Override public String toString() { return "TaskInfo{" diff --git a/casic-server/src/main/java/com/casic/missiles/modular/robot/opt/instruct/dto/PoseMessageResponseDTO.java b/casic-server/src/main/java/com/casic/missiles/modular/robot/opt/instruct/dto/PoseMessageResponseDTO.java index ef8b479..ee40333 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/robot/opt/instruct/dto/PoseMessageResponseDTO.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/robot/opt/instruct/dto/PoseMessageResponseDTO.java @@ -1,14 +1,16 @@ package com.casic.missiles.modular.robot.opt.instruct.dto; +import com.fasterxml.jackson.core.SerializableString; import lombok.Data; +import java.io.Serializable; import java.math.BigDecimal; /** * 实时点位上报 {"msg": {"y": -20.73847741021961, "x": -1.958316040901666, "z": 0.4921659690312511, "theta": -2.494841778370823}} */ @Data -public class PoseMessageResponseDTO { +public class PoseMessageResponseDTO implements Serializable { private BigDecimal x; private BigDecimal y; private BigDecimal z; diff --git a/casic-server/src/main/java/com/casic/missiles/modular/robot/service/IRobotCacheService.java b/casic-server/src/main/java/com/casic/missiles/modular/robot/service/IRobotCacheService.java index 22bf7b8..73982ee 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/robot/service/IRobotCacheService.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/robot/service/IRobotCacheService.java @@ -1,8 +1,8 @@ package com.casic.missiles.modular.robot.service; -import com.casic.missiles.modular.robot.dto.GridPointDTO; import com.casic.missiles.modular.robot.dto.PointNextDTO; import com.casic.missiles.modular.robot.model.RobotInfo; +import com.casic.missiles.modular.robot.opt.instruct.dto.PoseMessageResponseDTO; /** * 机器人缓存服务 @@ -74,4 +74,12 @@ * @return */ PointNextDTO readEstimateGrid(Long robotId); + + /** + * 机器人当前点位信息缓存 + * + * @param robotId 机器ID + * @return + */ + PoseMessageResponseDTO readRobotPoint(Long robotId); } \ No newline at end of file diff --git a/casic-server/src/main/java/com/casic/missiles/modular/constants/RobotDictConstants.java b/casic-server/src/main/java/com/casic/missiles/modular/constants/RobotDictConstants.java index 94a7379..6394b03 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/constants/RobotDictConstants.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/constants/RobotDictConstants.java @@ -31,5 +31,9 @@ * 当前栅格点位信息 */ String KEY_CUR_POINT = "KEY_CUR_POINT_"; + /** + * 当前坐标信息缓存 + */ + String KEY_CUR_XY_POINT = "KEY_CUR_XY_POINT_"; String KEY_CUR_ESTIMATE_GRID = "KEY_CUR_ESTIMATE_GRID_"; } diff --git a/casic-server/src/main/java/com/casic/missiles/modular/robot/dto/PointNextDTO.java b/casic-server/src/main/java/com/casic/missiles/modular/robot/dto/PointNextDTO.java index a29734d..f0413d3 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/robot/dto/PointNextDTO.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/robot/dto/PointNextDTO.java @@ -2,10 +2,11 @@ import lombok.Data; +import java.io.Serializable; import java.util.List; @Data -public class PointNextDTO { +public class PointNextDTO implements Serializable { private String x; private String y; private String z; diff --git a/casic-server/src/main/java/com/casic/missiles/modular/robot/model/TaskInfo.java b/casic-server/src/main/java/com/casic/missiles/modular/robot/model/TaskInfo.java index 5b66a76..7da2fa0 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/robot/model/TaskInfo.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/robot/model/TaskInfo.java @@ -9,6 +9,7 @@ import io.swagger.annotations.ApiModelProperty; import lombok.Data; +import java.math.BigDecimal; import java.util.Date; /** @@ -139,6 +140,13 @@ @ApiModelProperty(value = "热力分布图路径") @TableField("heat_img") private String heatImg; + + @ApiModelProperty(value = "栅格顶点值", dataType = "Integer") + @TableField("grid_size") + private BigDecimal gridSize; + @ApiModelProperty(value = "栅格数量", dataType = "Integer") + @TableField("grid_number") + private Integer gridNumber; @Override public String toString() { return "TaskInfo{" diff --git a/casic-server/src/main/java/com/casic/missiles/modular/robot/opt/instruct/dto/PoseMessageResponseDTO.java b/casic-server/src/main/java/com/casic/missiles/modular/robot/opt/instruct/dto/PoseMessageResponseDTO.java index ef8b479..ee40333 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/robot/opt/instruct/dto/PoseMessageResponseDTO.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/robot/opt/instruct/dto/PoseMessageResponseDTO.java @@ -1,14 +1,16 @@ package com.casic.missiles.modular.robot.opt.instruct.dto; +import com.fasterxml.jackson.core.SerializableString; import lombok.Data; +import java.io.Serializable; import java.math.BigDecimal; /** * 实时点位上报 {"msg": {"y": -20.73847741021961, "x": -1.958316040901666, "z": 0.4921659690312511, "theta": -2.494841778370823}} */ @Data -public class PoseMessageResponseDTO { +public class PoseMessageResponseDTO implements Serializable { private BigDecimal x; private BigDecimal y; private BigDecimal z; diff --git a/casic-server/src/main/java/com/casic/missiles/modular/robot/service/IRobotCacheService.java b/casic-server/src/main/java/com/casic/missiles/modular/robot/service/IRobotCacheService.java index 22bf7b8..73982ee 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/robot/service/IRobotCacheService.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/robot/service/IRobotCacheService.java @@ -1,8 +1,8 @@ package com.casic.missiles.modular.robot.service; -import com.casic.missiles.modular.robot.dto.GridPointDTO; import com.casic.missiles.modular.robot.dto.PointNextDTO; import com.casic.missiles.modular.robot.model.RobotInfo; +import com.casic.missiles.modular.robot.opt.instruct.dto.PoseMessageResponseDTO; /** * 机器人缓存服务 @@ -74,4 +74,12 @@ * @return */ PointNextDTO readEstimateGrid(Long robotId); + + /** + * 机器人当前点位信息缓存 + * + * @param robotId 机器ID + * @return + */ + PoseMessageResponseDTO readRobotPoint(Long robotId); } \ No newline at end of file diff --git a/casic-server/src/main/java/com/casic/missiles/modular/robot/service/impl/RobotCacheServiceImpl.java b/casic-server/src/main/java/com/casic/missiles/modular/robot/service/impl/RobotCacheServiceImpl.java index f011407..fe543a2 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/robot/service/impl/RobotCacheServiceImpl.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/robot/service/impl/RobotCacheServiceImpl.java @@ -3,9 +3,9 @@ import cn.hutool.core.util.RandomUtil; import com.casic.missiles.core.cache.CacheUtil; import com.casic.missiles.modular.constants.RobotDictConstants; -import com.casic.missiles.modular.robot.dto.GridPointDTO; import com.casic.missiles.modular.robot.dto.PointNextDTO; import com.casic.missiles.modular.robot.model.RobotInfo; +import com.casic.missiles.modular.robot.opt.instruct.dto.PoseMessageResponseDTO; import com.casic.missiles.modular.robot.service.IRobotCacheService; import com.casic.missiles.modular.robot.service.IRobotInfoService; import org.springframework.stereotype.Service; @@ -71,6 +71,12 @@ } @Override + public PoseMessageResponseDTO readRobotPoint(Long robotId) { + PoseMessageResponseDTO point = CacheUtil.get(RobotDictConstants.CACHE_SCHEMA, RobotDictConstants.KEY_CUR_XY_POINT + robotId); + return point; + } + + @Override public Long readTaskId(Long robotId) { Long currId = CacheUtil.get(RobotDictConstants.CACHE_SCHEMA, RobotDictConstants.KEY_CUR_TASK_ID + robotId); return currId; diff --git a/casic-server/src/main/java/com/casic/missiles/modular/constants/RobotDictConstants.java b/casic-server/src/main/java/com/casic/missiles/modular/constants/RobotDictConstants.java index 94a7379..6394b03 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/constants/RobotDictConstants.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/constants/RobotDictConstants.java @@ -31,5 +31,9 @@ * 当前栅格点位信息 */ String KEY_CUR_POINT = "KEY_CUR_POINT_"; + /** + * 当前坐标信息缓存 + */ + String KEY_CUR_XY_POINT = "KEY_CUR_XY_POINT_"; String KEY_CUR_ESTIMATE_GRID = "KEY_CUR_ESTIMATE_GRID_"; } diff --git a/casic-server/src/main/java/com/casic/missiles/modular/robot/dto/PointNextDTO.java b/casic-server/src/main/java/com/casic/missiles/modular/robot/dto/PointNextDTO.java index a29734d..f0413d3 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/robot/dto/PointNextDTO.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/robot/dto/PointNextDTO.java @@ -2,10 +2,11 @@ import lombok.Data; +import java.io.Serializable; import java.util.List; @Data -public class PointNextDTO { +public class PointNextDTO implements Serializable { private String x; private String y; private String z; diff --git a/casic-server/src/main/java/com/casic/missiles/modular/robot/model/TaskInfo.java b/casic-server/src/main/java/com/casic/missiles/modular/robot/model/TaskInfo.java index 5b66a76..7da2fa0 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/robot/model/TaskInfo.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/robot/model/TaskInfo.java @@ -9,6 +9,7 @@ import io.swagger.annotations.ApiModelProperty; import lombok.Data; +import java.math.BigDecimal; import java.util.Date; /** @@ -139,6 +140,13 @@ @ApiModelProperty(value = "热力分布图路径") @TableField("heat_img") private String heatImg; + + @ApiModelProperty(value = "栅格顶点值", dataType = "Integer") + @TableField("grid_size") + private BigDecimal gridSize; + @ApiModelProperty(value = "栅格数量", dataType = "Integer") + @TableField("grid_number") + private Integer gridNumber; @Override public String toString() { return "TaskInfo{" diff --git a/casic-server/src/main/java/com/casic/missiles/modular/robot/opt/instruct/dto/PoseMessageResponseDTO.java b/casic-server/src/main/java/com/casic/missiles/modular/robot/opt/instruct/dto/PoseMessageResponseDTO.java index ef8b479..ee40333 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/robot/opt/instruct/dto/PoseMessageResponseDTO.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/robot/opt/instruct/dto/PoseMessageResponseDTO.java @@ -1,14 +1,16 @@ package com.casic.missiles.modular.robot.opt.instruct.dto; +import com.fasterxml.jackson.core.SerializableString; import lombok.Data; +import java.io.Serializable; import java.math.BigDecimal; /** * 实时点位上报 {"msg": {"y": -20.73847741021961, "x": -1.958316040901666, "z": 0.4921659690312511, "theta": -2.494841778370823}} */ @Data -public class PoseMessageResponseDTO { +public class PoseMessageResponseDTO implements Serializable { private BigDecimal x; private BigDecimal y; private BigDecimal z; diff --git a/casic-server/src/main/java/com/casic/missiles/modular/robot/service/IRobotCacheService.java b/casic-server/src/main/java/com/casic/missiles/modular/robot/service/IRobotCacheService.java index 22bf7b8..73982ee 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/robot/service/IRobotCacheService.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/robot/service/IRobotCacheService.java @@ -1,8 +1,8 @@ package com.casic.missiles.modular.robot.service; -import com.casic.missiles.modular.robot.dto.GridPointDTO; import com.casic.missiles.modular.robot.dto.PointNextDTO; import com.casic.missiles.modular.robot.model.RobotInfo; +import com.casic.missiles.modular.robot.opt.instruct.dto.PoseMessageResponseDTO; /** * 机器人缓存服务 @@ -74,4 +74,12 @@ * @return */ PointNextDTO readEstimateGrid(Long robotId); + + /** + * 机器人当前点位信息缓存 + * + * @param robotId 机器ID + * @return + */ + PoseMessageResponseDTO readRobotPoint(Long robotId); } \ No newline at end of file diff --git a/casic-server/src/main/java/com/casic/missiles/modular/robot/service/impl/RobotCacheServiceImpl.java b/casic-server/src/main/java/com/casic/missiles/modular/robot/service/impl/RobotCacheServiceImpl.java index f011407..fe543a2 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/robot/service/impl/RobotCacheServiceImpl.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/robot/service/impl/RobotCacheServiceImpl.java @@ -3,9 +3,9 @@ import cn.hutool.core.util.RandomUtil; import com.casic.missiles.core.cache.CacheUtil; import com.casic.missiles.modular.constants.RobotDictConstants; -import com.casic.missiles.modular.robot.dto.GridPointDTO; import com.casic.missiles.modular.robot.dto.PointNextDTO; import com.casic.missiles.modular.robot.model.RobotInfo; +import com.casic.missiles.modular.robot.opt.instruct.dto.PoseMessageResponseDTO; import com.casic.missiles.modular.robot.service.IRobotCacheService; import com.casic.missiles.modular.robot.service.IRobotInfoService; import org.springframework.stereotype.Service; @@ -71,6 +71,12 @@ } @Override + public PoseMessageResponseDTO readRobotPoint(Long robotId) { + PoseMessageResponseDTO point = CacheUtil.get(RobotDictConstants.CACHE_SCHEMA, RobotDictConstants.KEY_CUR_XY_POINT + robotId); + return point; + } + + @Override public Long readTaskId(Long robotId) { Long currId = CacheUtil.get(RobotDictConstants.CACHE_SCHEMA, RobotDictConstants.KEY_CUR_TASK_ID + robotId); return currId; diff --git a/casic-server/src/main/java/com/casic/missiles/modular/robot/service/impl/RobotTrajectoryInfoServiceImpl.java b/casic-server/src/main/java/com/casic/missiles/modular/robot/service/impl/RobotTrajectoryInfoServiceImpl.java index 54c2c42..7e02ebc 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/robot/service/impl/RobotTrajectoryInfoServiceImpl.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/robot/service/impl/RobotTrajectoryInfoServiceImpl.java @@ -10,6 +10,7 @@ import com.casic.missiles.modular.robot.model.RobotTrajectoryInfo; import com.casic.missiles.modular.robot.opt.instruct.base.dto.RobotResponseDTO; import com.casic.missiles.modular.robot.opt.instruct.dto.PoseMessageResponseDTO; +import com.casic.missiles.modular.robot.service.IRobotCacheService; import com.casic.missiles.modular.robot.service.IRobotStatusInfoService; import com.casic.missiles.modular.robot.service.IRobotTrajectoryInfoService; import com.casic.missiles.modular.robot.service.ITaskInfoService; @@ -34,6 +35,7 @@ private final IRobotStatusInfoService robotStatusInfoService; private final ITaskInfoService infoService; + public RobotTrajectoryInfoServiceImpl(@Lazy IRobotStatusInfoService robotStatusInfoService, ITaskInfoService infoService) { this.robotStatusInfoService = robotStatusInfoService; this.infoService = infoService; diff --git a/casic-server/src/main/java/com/casic/missiles/modular/constants/RobotDictConstants.java b/casic-server/src/main/java/com/casic/missiles/modular/constants/RobotDictConstants.java index 94a7379..6394b03 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/constants/RobotDictConstants.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/constants/RobotDictConstants.java @@ -31,5 +31,9 @@ * 当前栅格点位信息 */ String KEY_CUR_POINT = "KEY_CUR_POINT_"; + /** + * 当前坐标信息缓存 + */ + String KEY_CUR_XY_POINT = "KEY_CUR_XY_POINT_"; String KEY_CUR_ESTIMATE_GRID = "KEY_CUR_ESTIMATE_GRID_"; } diff --git a/casic-server/src/main/java/com/casic/missiles/modular/robot/dto/PointNextDTO.java b/casic-server/src/main/java/com/casic/missiles/modular/robot/dto/PointNextDTO.java index a29734d..f0413d3 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/robot/dto/PointNextDTO.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/robot/dto/PointNextDTO.java @@ -2,10 +2,11 @@ import lombok.Data; +import java.io.Serializable; import java.util.List; @Data -public class PointNextDTO { +public class PointNextDTO implements Serializable { private String x; private String y; private String z; diff --git a/casic-server/src/main/java/com/casic/missiles/modular/robot/model/TaskInfo.java b/casic-server/src/main/java/com/casic/missiles/modular/robot/model/TaskInfo.java index 5b66a76..7da2fa0 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/robot/model/TaskInfo.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/robot/model/TaskInfo.java @@ -9,6 +9,7 @@ import io.swagger.annotations.ApiModelProperty; import lombok.Data; +import java.math.BigDecimal; import java.util.Date; /** @@ -139,6 +140,13 @@ @ApiModelProperty(value = "热力分布图路径") @TableField("heat_img") private String heatImg; + + @ApiModelProperty(value = "栅格顶点值", dataType = "Integer") + @TableField("grid_size") + private BigDecimal gridSize; + @ApiModelProperty(value = "栅格数量", dataType = "Integer") + @TableField("grid_number") + private Integer gridNumber; @Override public String toString() { return "TaskInfo{" diff --git a/casic-server/src/main/java/com/casic/missiles/modular/robot/opt/instruct/dto/PoseMessageResponseDTO.java b/casic-server/src/main/java/com/casic/missiles/modular/robot/opt/instruct/dto/PoseMessageResponseDTO.java index ef8b479..ee40333 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/robot/opt/instruct/dto/PoseMessageResponseDTO.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/robot/opt/instruct/dto/PoseMessageResponseDTO.java @@ -1,14 +1,16 @@ package com.casic.missiles.modular.robot.opt.instruct.dto; +import com.fasterxml.jackson.core.SerializableString; import lombok.Data; +import java.io.Serializable; import java.math.BigDecimal; /** * 实时点位上报 {"msg": {"y": -20.73847741021961, "x": -1.958316040901666, "z": 0.4921659690312511, "theta": -2.494841778370823}} */ @Data -public class PoseMessageResponseDTO { +public class PoseMessageResponseDTO implements Serializable { private BigDecimal x; private BigDecimal y; private BigDecimal z; diff --git a/casic-server/src/main/java/com/casic/missiles/modular/robot/service/IRobotCacheService.java b/casic-server/src/main/java/com/casic/missiles/modular/robot/service/IRobotCacheService.java index 22bf7b8..73982ee 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/robot/service/IRobotCacheService.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/robot/service/IRobotCacheService.java @@ -1,8 +1,8 @@ package com.casic.missiles.modular.robot.service; -import com.casic.missiles.modular.robot.dto.GridPointDTO; import com.casic.missiles.modular.robot.dto.PointNextDTO; import com.casic.missiles.modular.robot.model.RobotInfo; +import com.casic.missiles.modular.robot.opt.instruct.dto.PoseMessageResponseDTO; /** * 机器人缓存服务 @@ -74,4 +74,12 @@ * @return */ PointNextDTO readEstimateGrid(Long robotId); + + /** + * 机器人当前点位信息缓存 + * + * @param robotId 机器ID + * @return + */ + PoseMessageResponseDTO readRobotPoint(Long robotId); } \ No newline at end of file diff --git a/casic-server/src/main/java/com/casic/missiles/modular/robot/service/impl/RobotCacheServiceImpl.java b/casic-server/src/main/java/com/casic/missiles/modular/robot/service/impl/RobotCacheServiceImpl.java index f011407..fe543a2 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/robot/service/impl/RobotCacheServiceImpl.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/robot/service/impl/RobotCacheServiceImpl.java @@ -3,9 +3,9 @@ import cn.hutool.core.util.RandomUtil; import com.casic.missiles.core.cache.CacheUtil; import com.casic.missiles.modular.constants.RobotDictConstants; -import com.casic.missiles.modular.robot.dto.GridPointDTO; import com.casic.missiles.modular.robot.dto.PointNextDTO; import com.casic.missiles.modular.robot.model.RobotInfo; +import com.casic.missiles.modular.robot.opt.instruct.dto.PoseMessageResponseDTO; import com.casic.missiles.modular.robot.service.IRobotCacheService; import com.casic.missiles.modular.robot.service.IRobotInfoService; import org.springframework.stereotype.Service; @@ -71,6 +71,12 @@ } @Override + public PoseMessageResponseDTO readRobotPoint(Long robotId) { + PoseMessageResponseDTO point = CacheUtil.get(RobotDictConstants.CACHE_SCHEMA, RobotDictConstants.KEY_CUR_XY_POINT + robotId); + return point; + } + + @Override public Long readTaskId(Long robotId) { Long currId = CacheUtil.get(RobotDictConstants.CACHE_SCHEMA, RobotDictConstants.KEY_CUR_TASK_ID + robotId); return currId; diff --git a/casic-server/src/main/java/com/casic/missiles/modular/robot/service/impl/RobotTrajectoryInfoServiceImpl.java b/casic-server/src/main/java/com/casic/missiles/modular/robot/service/impl/RobotTrajectoryInfoServiceImpl.java index 54c2c42..7e02ebc 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/robot/service/impl/RobotTrajectoryInfoServiceImpl.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/robot/service/impl/RobotTrajectoryInfoServiceImpl.java @@ -10,6 +10,7 @@ import com.casic.missiles.modular.robot.model.RobotTrajectoryInfo; import com.casic.missiles.modular.robot.opt.instruct.base.dto.RobotResponseDTO; import com.casic.missiles.modular.robot.opt.instruct.dto.PoseMessageResponseDTO; +import com.casic.missiles.modular.robot.service.IRobotCacheService; import com.casic.missiles.modular.robot.service.IRobotStatusInfoService; import com.casic.missiles.modular.robot.service.IRobotTrajectoryInfoService; import com.casic.missiles.modular.robot.service.ITaskInfoService; @@ -34,6 +35,7 @@ private final IRobotStatusInfoService robotStatusInfoService; private final ITaskInfoService infoService; + public RobotTrajectoryInfoServiceImpl(@Lazy IRobotStatusInfoService robotStatusInfoService, ITaskInfoService infoService) { this.robotStatusInfoService = robotStatusInfoService; this.infoService = infoService; diff --git a/casic-server/src/main/java/com/casic/missiles/modular/robot/service/impl/TaskInfoServiceImpl.java b/casic-server/src/main/java/com/casic/missiles/modular/robot/service/impl/TaskInfoServiceImpl.java index 8d9e0d2..f26904b 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/robot/service/impl/TaskInfoServiceImpl.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/robot/service/impl/TaskInfoServiceImpl.java @@ -153,7 +153,6 @@ private void openTask(StartTrackRequest request, String robotId) { QueryWrapper query = new QueryWrapper<>(); query.eq("target_id", request.getTrack_name()); - List routeInfos = routeInfoService.list(query); if (CollectionUtil.isEmpty(routeInfos)) { throw new ServiceException(500, "路线不存在,请及时更新"); @@ -164,10 +163,10 @@ if (request.getIsTask() == 1) { isTask = 1; } - + RobotInfo robotInfo = cacheService.getRobotInfo(Convert.toLong(robotId)); CacheUtil.put(RobotDictConstants.CACHE_SCHEMA, RobotDictConstants.KEY_IS_TASK + robotId, isTask); //添加任务记录 - TaskInfo taskInfo = addTaskByStartTrack(routeInfo, robotId); + TaskInfo taskInfo = addTaskByStartTrack(routeInfo, robotInfo); //No.3 更新器人执行任务信息 Long currRouteId = routeInfo.getId(); Long currTaskId = taskInfo.getId(); @@ -212,7 +211,9 @@ //判定任务是否已经完成初始化 Long longId = Convert.toLong(robotId); Long taskId = CacheUtil.get(RobotDictConstants.CACHE_SCHEMA, RobotDictConstants.KEY_CUR_TASK_ID + robotId); + //缓存当前点位信息 + CacheUtil.put(RobotDictConstants.CACHE_SCHEMA, RobotDictConstants.KEY_CUR_XY_POINT + robotId,dto); RobotInfo robotInfo = cacheService.getRobotInfo(longId); if (robotInfo.getAlarmThreshold() == null || robotInfo.getMaxThreshold() == null) { log.error("no config 中子源阈值未配置"); @@ -257,7 +258,7 @@ AlgorithmResponse response = algorithmService.pathPlanning(pathPlanDTO); //存储算法估算栅格信息 - CacheUtil.put(RobotDictConstants.CACHE_SCHEMA, RobotDictConstants.KEY_CUR_ESTIMATE_GRID+ robotId,response.getPointNextDTO()); + CacheUtil.put(RobotDictConstants.CACHE_SCHEMA, RobotDictConstants.KEY_CUR_ESTIMATE_GRID + robotId, response.getPointNextDTO()); //是否触发寻源操作 BigDecimal bigCount = new BigDecimal(pathPlanDTO.getCount()); if (bigCount.compareTo(robotInfo.getAlarmThreshold()) >= 0) { @@ -317,6 +318,10 @@ if (CollectionUtil.isNotEmpty(records)) { for (AlarmRecord record : records) { + //栅格信息转换 + GridPointDTO pointDTO = algorithmService.convertSlamToGrid(record.getX(), record.getY(), info.getGridNumber(), info.getGridSize()); + record.setX(pointDTO.getX()); + record.setY(pointDTO.getY()); record.setIndex(index); index++; } @@ -404,7 +409,7 @@ return pathInitDTO; } - private TaskInfo addTaskByStartTrack(RouteInfo routeInfo, String robotId) { + private TaskInfo addTaskByStartTrack(RouteInfo routeInfo, RobotInfo robotInfo) { //No.2 新增任务信息 TaskInfo taskInfo = new TaskInfo(); String currDate = DateUtil.format(new Date(), "yyyyMMdd"); @@ -424,7 +429,9 @@ taskInfo.setTaskStatus(0); taskInfo.setStartTime(new Date()); taskInfo.setRouteId(routeInfo.getId()); - taskInfo.setRobotId(Convert.toLong(robotId)); + taskInfo.setRobotId(robotInfo.getId()); + taskInfo.setGridNumber(robotInfo.getGridNumber()); + taskInfo.setGridSize(robotInfo.getGridSize()); save(taskInfo); return taskInfo; }