diff --git a/casic-server-support/src/main/java/com/casic/missiles/modular/system/model/ShelterPosition.java b/casic-server-support/src/main/java/com/casic/missiles/modular/system/model/ShelterPosition.java new file mode 100644 index 0000000..3e43bce --- /dev/null +++ b/casic-server-support/src/main/java/com/casic/missiles/modular/system/model/ShelterPosition.java @@ -0,0 +1,40 @@ +package com.casic.missiles.modular.system.model; + +import com.baomidou.mybatisplus.annotation.IdType; +import com.baomidou.mybatisplus.annotation.TableField; +import com.baomidou.mybatisplus.annotation.TableId; +import com.baomidou.mybatisplus.annotation.TableName; +import com.baomidou.mybatisplus.extension.activerecord.Model; +import lombok.Data; + +/** + * @author a203 + */ +@Data +@TableName("shelter_position") +public class ShelterPosition extends Model { + private static final long serialVersionUID = 1L; + + /** + * 数据库主键 + */ + @TableId(value = "ID", type = IdType.ASSIGN_ID) + private Long id; + + /** + * 经度 + */ + @TableField("LNG") + private Double lng; + /** + * 纬度 + */ + @TableField("LAT") + private Double lat; + + /** + * 时间 + */ + @TableField("CREATE_TIME") + private String createTime; +} diff --git a/casic-server-support/src/main/java/com/casic/missiles/modular/system/model/ShelterPosition.java b/casic-server-support/src/main/java/com/casic/missiles/modular/system/model/ShelterPosition.java new file mode 100644 index 0000000..3e43bce --- /dev/null +++ b/casic-server-support/src/main/java/com/casic/missiles/modular/system/model/ShelterPosition.java @@ -0,0 +1,40 @@ +package com.casic.missiles.modular.system.model; + +import com.baomidou.mybatisplus.annotation.IdType; +import com.baomidou.mybatisplus.annotation.TableField; +import com.baomidou.mybatisplus.annotation.TableId; +import com.baomidou.mybatisplus.annotation.TableName; +import com.baomidou.mybatisplus.extension.activerecord.Model; +import lombok.Data; + +/** + * @author a203 + */ +@Data +@TableName("shelter_position") +public class ShelterPosition extends Model { + private static final long serialVersionUID = 1L; + + /** + * 数据库主键 + */ + @TableId(value = "ID", type = IdType.ASSIGN_ID) + private Long id; + + /** + * 经度 + */ + @TableField("LNG") + private Double lng; + /** + * 纬度 + */ + @TableField("LAT") + private Double lat; + + /** + * 时间 + */ + @TableField("CREATE_TIME") + private String createTime; +} diff --git a/casic-shelter/src/main/java/com/casic/missiles/modular/system/controller/ShelterController.java b/casic-shelter/src/main/java/com/casic/missiles/modular/system/controller/ShelterController.java index 1e8f765..7de57c0 100644 --- a/casic-shelter/src/main/java/com/casic/missiles/modular/system/controller/ShelterController.java +++ b/casic-shelter/src/main/java/com/casic/missiles/modular/system/controller/ShelterController.java @@ -3,7 +3,9 @@ import com.casic.missiles.core.base.controller.BaseController; import com.casic.missiles.model.response.ResponseData; import com.casic.missiles.modular.system.dto.RobotInfoDTO; +import com.casic.missiles.modular.system.dto.ShelterPositionDTO; import com.casic.missiles.modular.system.service.IRobotService; +import com.casic.missiles.modular.system.service.IShelterPositionService; import org.springframework.stereotype.Controller; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.PathVariable; @@ -23,9 +25,12 @@ public class ShelterController extends BaseController { private final IRobotService robotService; + private final IShelterPositionService positionService; - public ShelterController(IRobotService robotService) { + public ShelterController(IRobotService robotService, + IShelterPositionService positionService) { this.robotService = robotService; + this.positionService = positionService; } /** @@ -47,4 +52,14 @@ RobotInfoDTO detailDTO = robotService.robotDetail(robotId); return ResponseData.success(detailDTO); } + + /** + * 方舱位置 + */ + @GetMapping(value = "/position") + @ResponseBody + public Object position() { + ShelterPositionDTO positionDTO = positionService.selectShelterPosition(); + return ResponseData.success(positionDTO); + } } diff --git a/casic-server-support/src/main/java/com/casic/missiles/modular/system/model/ShelterPosition.java b/casic-server-support/src/main/java/com/casic/missiles/modular/system/model/ShelterPosition.java new file mode 100644 index 0000000..3e43bce --- /dev/null +++ b/casic-server-support/src/main/java/com/casic/missiles/modular/system/model/ShelterPosition.java @@ -0,0 +1,40 @@ +package com.casic.missiles.modular.system.model; + +import com.baomidou.mybatisplus.annotation.IdType; +import com.baomidou.mybatisplus.annotation.TableField; +import com.baomidou.mybatisplus.annotation.TableId; +import com.baomidou.mybatisplus.annotation.TableName; +import com.baomidou.mybatisplus.extension.activerecord.Model; +import lombok.Data; + +/** + * @author a203 + */ +@Data +@TableName("shelter_position") +public class ShelterPosition extends Model { + private static final long serialVersionUID = 1L; + + /** + * 数据库主键 + */ + @TableId(value = "ID", type = IdType.ASSIGN_ID) + private Long id; + + /** + * 经度 + */ + @TableField("LNG") + private Double lng; + /** + * 纬度 + */ + @TableField("LAT") + private Double lat; + + /** + * 时间 + */ + @TableField("CREATE_TIME") + private String createTime; +} diff --git a/casic-shelter/src/main/java/com/casic/missiles/modular/system/controller/ShelterController.java b/casic-shelter/src/main/java/com/casic/missiles/modular/system/controller/ShelterController.java index 1e8f765..7de57c0 100644 --- a/casic-shelter/src/main/java/com/casic/missiles/modular/system/controller/ShelterController.java +++ b/casic-shelter/src/main/java/com/casic/missiles/modular/system/controller/ShelterController.java @@ -3,7 +3,9 @@ import com.casic.missiles.core.base.controller.BaseController; import com.casic.missiles.model.response.ResponseData; import com.casic.missiles.modular.system.dto.RobotInfoDTO; +import com.casic.missiles.modular.system.dto.ShelterPositionDTO; import com.casic.missiles.modular.system.service.IRobotService; +import com.casic.missiles.modular.system.service.IShelterPositionService; import org.springframework.stereotype.Controller; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.PathVariable; @@ -23,9 +25,12 @@ public class ShelterController extends BaseController { private final IRobotService robotService; + private final IShelterPositionService positionService; - public ShelterController(IRobotService robotService) { + public ShelterController(IRobotService robotService, + IShelterPositionService positionService) { this.robotService = robotService; + this.positionService = positionService; } /** @@ -47,4 +52,14 @@ RobotInfoDTO detailDTO = robotService.robotDetail(robotId); return ResponseData.success(detailDTO); } + + /** + * 方舱位置 + */ + @GetMapping(value = "/position") + @ResponseBody + public Object position() { + ShelterPositionDTO positionDTO = positionService.selectShelterPosition(); + return ResponseData.success(positionDTO); + } } diff --git a/casic-shelter/src/main/java/com/casic/missiles/modular/system/dao/ShelterPositionMapper.java b/casic-shelter/src/main/java/com/casic/missiles/modular/system/dao/ShelterPositionMapper.java new file mode 100644 index 0000000..213d233 --- /dev/null +++ b/casic-shelter/src/main/java/com/casic/missiles/modular/system/dao/ShelterPositionMapper.java @@ -0,0 +1,18 @@ +package com.casic.missiles.modular.system.dao; + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.casic.missiles.modular.system.model.ShelterPosition; + +import java.util.List; + +/** + * @author a203 + */ +public interface ShelterPositionMapper extends BaseMapper { + /** + * 获取报警记录-分页 + * + * @return {@link List} + */ + ShelterPosition selectLastOne(); +} diff --git a/casic-server-support/src/main/java/com/casic/missiles/modular/system/model/ShelterPosition.java b/casic-server-support/src/main/java/com/casic/missiles/modular/system/model/ShelterPosition.java new file mode 100644 index 0000000..3e43bce --- /dev/null +++ b/casic-server-support/src/main/java/com/casic/missiles/modular/system/model/ShelterPosition.java @@ -0,0 +1,40 @@ +package com.casic.missiles.modular.system.model; + +import com.baomidou.mybatisplus.annotation.IdType; +import com.baomidou.mybatisplus.annotation.TableField; +import com.baomidou.mybatisplus.annotation.TableId; +import com.baomidou.mybatisplus.annotation.TableName; +import com.baomidou.mybatisplus.extension.activerecord.Model; +import lombok.Data; + +/** + * @author a203 + */ +@Data +@TableName("shelter_position") +public class ShelterPosition extends Model { + private static final long serialVersionUID = 1L; + + /** + * 数据库主键 + */ + @TableId(value = "ID", type = IdType.ASSIGN_ID) + private Long id; + + /** + * 经度 + */ + @TableField("LNG") + private Double lng; + /** + * 纬度 + */ + @TableField("LAT") + private Double lat; + + /** + * 时间 + */ + @TableField("CREATE_TIME") + private String createTime; +} diff --git a/casic-shelter/src/main/java/com/casic/missiles/modular/system/controller/ShelterController.java b/casic-shelter/src/main/java/com/casic/missiles/modular/system/controller/ShelterController.java index 1e8f765..7de57c0 100644 --- a/casic-shelter/src/main/java/com/casic/missiles/modular/system/controller/ShelterController.java +++ b/casic-shelter/src/main/java/com/casic/missiles/modular/system/controller/ShelterController.java @@ -3,7 +3,9 @@ import com.casic.missiles.core.base.controller.BaseController; import com.casic.missiles.model.response.ResponseData; import com.casic.missiles.modular.system.dto.RobotInfoDTO; +import com.casic.missiles.modular.system.dto.ShelterPositionDTO; import com.casic.missiles.modular.system.service.IRobotService; +import com.casic.missiles.modular.system.service.IShelterPositionService; import org.springframework.stereotype.Controller; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.PathVariable; @@ -23,9 +25,12 @@ public class ShelterController extends BaseController { private final IRobotService robotService; + private final IShelterPositionService positionService; - public ShelterController(IRobotService robotService) { + public ShelterController(IRobotService robotService, + IShelterPositionService positionService) { this.robotService = robotService; + this.positionService = positionService; } /** @@ -47,4 +52,14 @@ RobotInfoDTO detailDTO = robotService.robotDetail(robotId); return ResponseData.success(detailDTO); } + + /** + * 方舱位置 + */ + @GetMapping(value = "/position") + @ResponseBody + public Object position() { + ShelterPositionDTO positionDTO = positionService.selectShelterPosition(); + return ResponseData.success(positionDTO); + } } diff --git a/casic-shelter/src/main/java/com/casic/missiles/modular/system/dao/ShelterPositionMapper.java b/casic-shelter/src/main/java/com/casic/missiles/modular/system/dao/ShelterPositionMapper.java new file mode 100644 index 0000000..213d233 --- /dev/null +++ b/casic-shelter/src/main/java/com/casic/missiles/modular/system/dao/ShelterPositionMapper.java @@ -0,0 +1,18 @@ +package com.casic.missiles.modular.system.dao; + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.casic.missiles.modular.system.model.ShelterPosition; + +import java.util.List; + +/** + * @author a203 + */ +public interface ShelterPositionMapper extends BaseMapper { + /** + * 获取报警记录-分页 + * + * @return {@link List} + */ + ShelterPosition selectLastOne(); +} diff --git a/casic-shelter/src/main/java/com/casic/missiles/modular/system/dao/mapping/ShelterPositionMapper.xml b/casic-shelter/src/main/java/com/casic/missiles/modular/system/dao/mapping/ShelterPositionMapper.xml new file mode 100644 index 0000000..57f5001 --- /dev/null +++ b/casic-shelter/src/main/java/com/casic/missiles/modular/system/dao/mapping/ShelterPositionMapper.xml @@ -0,0 +1,20 @@ + + + + + + + ID AS id, + LNG AS lng, + LAT AS lat, + CREATE_TIME AS createTime + + + + \ No newline at end of file diff --git a/casic-server-support/src/main/java/com/casic/missiles/modular/system/model/ShelterPosition.java b/casic-server-support/src/main/java/com/casic/missiles/modular/system/model/ShelterPosition.java new file mode 100644 index 0000000..3e43bce --- /dev/null +++ b/casic-server-support/src/main/java/com/casic/missiles/modular/system/model/ShelterPosition.java @@ -0,0 +1,40 @@ +package com.casic.missiles.modular.system.model; + +import com.baomidou.mybatisplus.annotation.IdType; +import com.baomidou.mybatisplus.annotation.TableField; +import com.baomidou.mybatisplus.annotation.TableId; +import com.baomidou.mybatisplus.annotation.TableName; +import com.baomidou.mybatisplus.extension.activerecord.Model; +import lombok.Data; + +/** + * @author a203 + */ +@Data +@TableName("shelter_position") +public class ShelterPosition extends Model { + private static final long serialVersionUID = 1L; + + /** + * 数据库主键 + */ + @TableId(value = "ID", type = IdType.ASSIGN_ID) + private Long id; + + /** + * 经度 + */ + @TableField("LNG") + private Double lng; + /** + * 纬度 + */ + @TableField("LAT") + private Double lat; + + /** + * 时间 + */ + @TableField("CREATE_TIME") + private String createTime; +} diff --git a/casic-shelter/src/main/java/com/casic/missiles/modular/system/controller/ShelterController.java b/casic-shelter/src/main/java/com/casic/missiles/modular/system/controller/ShelterController.java index 1e8f765..7de57c0 100644 --- a/casic-shelter/src/main/java/com/casic/missiles/modular/system/controller/ShelterController.java +++ b/casic-shelter/src/main/java/com/casic/missiles/modular/system/controller/ShelterController.java @@ -3,7 +3,9 @@ import com.casic.missiles.core.base.controller.BaseController; import com.casic.missiles.model.response.ResponseData; import com.casic.missiles.modular.system.dto.RobotInfoDTO; +import com.casic.missiles.modular.system.dto.ShelterPositionDTO; import com.casic.missiles.modular.system.service.IRobotService; +import com.casic.missiles.modular.system.service.IShelterPositionService; import org.springframework.stereotype.Controller; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.PathVariable; @@ -23,9 +25,12 @@ public class ShelterController extends BaseController { private final IRobotService robotService; + private final IShelterPositionService positionService; - public ShelterController(IRobotService robotService) { + public ShelterController(IRobotService robotService, + IShelterPositionService positionService) { this.robotService = robotService; + this.positionService = positionService; } /** @@ -47,4 +52,14 @@ RobotInfoDTO detailDTO = robotService.robotDetail(robotId); return ResponseData.success(detailDTO); } + + /** + * 方舱位置 + */ + @GetMapping(value = "/position") + @ResponseBody + public Object position() { + ShelterPositionDTO positionDTO = positionService.selectShelterPosition(); + return ResponseData.success(positionDTO); + } } diff --git a/casic-shelter/src/main/java/com/casic/missiles/modular/system/dao/ShelterPositionMapper.java b/casic-shelter/src/main/java/com/casic/missiles/modular/system/dao/ShelterPositionMapper.java new file mode 100644 index 0000000..213d233 --- /dev/null +++ b/casic-shelter/src/main/java/com/casic/missiles/modular/system/dao/ShelterPositionMapper.java @@ -0,0 +1,18 @@ +package com.casic.missiles.modular.system.dao; + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.casic.missiles.modular.system.model.ShelterPosition; + +import java.util.List; + +/** + * @author a203 + */ +public interface ShelterPositionMapper extends BaseMapper { + /** + * 获取报警记录-分页 + * + * @return {@link List} + */ + ShelterPosition selectLastOne(); +} diff --git a/casic-shelter/src/main/java/com/casic/missiles/modular/system/dao/mapping/ShelterPositionMapper.xml b/casic-shelter/src/main/java/com/casic/missiles/modular/system/dao/mapping/ShelterPositionMapper.xml new file mode 100644 index 0000000..57f5001 --- /dev/null +++ b/casic-shelter/src/main/java/com/casic/missiles/modular/system/dao/mapping/ShelterPositionMapper.xml @@ -0,0 +1,20 @@ + + + + + + + ID AS id, + LNG AS lng, + LAT AS lat, + CREATE_TIME AS createTime + + + + \ No newline at end of file diff --git a/casic-shelter/src/main/java/com/casic/missiles/modular/system/dto/ShelterPositionDTO.java b/casic-shelter/src/main/java/com/casic/missiles/modular/system/dto/ShelterPositionDTO.java new file mode 100644 index 0000000..8b47db1 --- /dev/null +++ b/casic-shelter/src/main/java/com/casic/missiles/modular/system/dto/ShelterPositionDTO.java @@ -0,0 +1,30 @@ +package com.casic.missiles.modular.system.dto; + +import com.casic.missiles.modular.system.model.ShelterPosition; +import lombok.Data; + +/** + * @author a203 + */ +@Data +public class ShelterPositionDTO { + /** + * 经度 + */ + private Double lng; + /** + * 纬度 + */ + private Double lat; + + /** + * 时间 + */ + private String createTime; + + public ShelterPositionDTO(ShelterPosition shelterPosition) { + this.lng = shelterPosition.getLng(); + this.lat = shelterPosition.getLat(); + this.createTime = shelterPosition.getCreateTime(); + } +} diff --git a/casic-server-support/src/main/java/com/casic/missiles/modular/system/model/ShelterPosition.java b/casic-server-support/src/main/java/com/casic/missiles/modular/system/model/ShelterPosition.java new file mode 100644 index 0000000..3e43bce --- /dev/null +++ b/casic-server-support/src/main/java/com/casic/missiles/modular/system/model/ShelterPosition.java @@ -0,0 +1,40 @@ +package com.casic.missiles.modular.system.model; + +import com.baomidou.mybatisplus.annotation.IdType; +import com.baomidou.mybatisplus.annotation.TableField; +import com.baomidou.mybatisplus.annotation.TableId; +import com.baomidou.mybatisplus.annotation.TableName; +import com.baomidou.mybatisplus.extension.activerecord.Model; +import lombok.Data; + +/** + * @author a203 + */ +@Data +@TableName("shelter_position") +public class ShelterPosition extends Model { + private static final long serialVersionUID = 1L; + + /** + * 数据库主键 + */ + @TableId(value = "ID", type = IdType.ASSIGN_ID) + private Long id; + + /** + * 经度 + */ + @TableField("LNG") + private Double lng; + /** + * 纬度 + */ + @TableField("LAT") + private Double lat; + + /** + * 时间 + */ + @TableField("CREATE_TIME") + private String createTime; +} diff --git a/casic-shelter/src/main/java/com/casic/missiles/modular/system/controller/ShelterController.java b/casic-shelter/src/main/java/com/casic/missiles/modular/system/controller/ShelterController.java index 1e8f765..7de57c0 100644 --- a/casic-shelter/src/main/java/com/casic/missiles/modular/system/controller/ShelterController.java +++ b/casic-shelter/src/main/java/com/casic/missiles/modular/system/controller/ShelterController.java @@ -3,7 +3,9 @@ import com.casic.missiles.core.base.controller.BaseController; import com.casic.missiles.model.response.ResponseData; import com.casic.missiles.modular.system.dto.RobotInfoDTO; +import com.casic.missiles.modular.system.dto.ShelterPositionDTO; import com.casic.missiles.modular.system.service.IRobotService; +import com.casic.missiles.modular.system.service.IShelterPositionService; import org.springframework.stereotype.Controller; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.PathVariable; @@ -23,9 +25,12 @@ public class ShelterController extends BaseController { private final IRobotService robotService; + private final IShelterPositionService positionService; - public ShelterController(IRobotService robotService) { + public ShelterController(IRobotService robotService, + IShelterPositionService positionService) { this.robotService = robotService; + this.positionService = positionService; } /** @@ -47,4 +52,14 @@ RobotInfoDTO detailDTO = robotService.robotDetail(robotId); return ResponseData.success(detailDTO); } + + /** + * 方舱位置 + */ + @GetMapping(value = "/position") + @ResponseBody + public Object position() { + ShelterPositionDTO positionDTO = positionService.selectShelterPosition(); + return ResponseData.success(positionDTO); + } } diff --git a/casic-shelter/src/main/java/com/casic/missiles/modular/system/dao/ShelterPositionMapper.java b/casic-shelter/src/main/java/com/casic/missiles/modular/system/dao/ShelterPositionMapper.java new file mode 100644 index 0000000..213d233 --- /dev/null +++ b/casic-shelter/src/main/java/com/casic/missiles/modular/system/dao/ShelterPositionMapper.java @@ -0,0 +1,18 @@ +package com.casic.missiles.modular.system.dao; + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.casic.missiles.modular.system.model.ShelterPosition; + +import java.util.List; + +/** + * @author a203 + */ +public interface ShelterPositionMapper extends BaseMapper { + /** + * 获取报警记录-分页 + * + * @return {@link List} + */ + ShelterPosition selectLastOne(); +} diff --git a/casic-shelter/src/main/java/com/casic/missiles/modular/system/dao/mapping/ShelterPositionMapper.xml b/casic-shelter/src/main/java/com/casic/missiles/modular/system/dao/mapping/ShelterPositionMapper.xml new file mode 100644 index 0000000..57f5001 --- /dev/null +++ b/casic-shelter/src/main/java/com/casic/missiles/modular/system/dao/mapping/ShelterPositionMapper.xml @@ -0,0 +1,20 @@ + + + + + + + ID AS id, + LNG AS lng, + LAT AS lat, + CREATE_TIME AS createTime + + + + \ No newline at end of file diff --git a/casic-shelter/src/main/java/com/casic/missiles/modular/system/dto/ShelterPositionDTO.java b/casic-shelter/src/main/java/com/casic/missiles/modular/system/dto/ShelterPositionDTO.java new file mode 100644 index 0000000..8b47db1 --- /dev/null +++ b/casic-shelter/src/main/java/com/casic/missiles/modular/system/dto/ShelterPositionDTO.java @@ -0,0 +1,30 @@ +package com.casic.missiles.modular.system.dto; + +import com.casic.missiles.modular.system.model.ShelterPosition; +import lombok.Data; + +/** + * @author a203 + */ +@Data +public class ShelterPositionDTO { + /** + * 经度 + */ + private Double lng; + /** + * 纬度 + */ + private Double lat; + + /** + * 时间 + */ + private String createTime; + + public ShelterPositionDTO(ShelterPosition shelterPosition) { + this.lng = shelterPosition.getLng(); + this.lat = shelterPosition.getLat(); + this.createTime = shelterPosition.getCreateTime(); + } +} diff --git a/casic-shelter/src/main/java/com/casic/missiles/modular/system/service/IShelterPositionService.java b/casic-shelter/src/main/java/com/casic/missiles/modular/system/service/IShelterPositionService.java new file mode 100644 index 0000000..dc659f6 --- /dev/null +++ b/casic-shelter/src/main/java/com/casic/missiles/modular/system/service/IShelterPositionService.java @@ -0,0 +1,17 @@ +package com.casic.missiles.modular.system.service; + +import com.baomidou.mybatisplus.extension.service.IService; +import com.casic.missiles.modular.system.dto.ShelterPositionDTO; +import com.casic.missiles.modular.system.model.ShelterPosition; + +/** + * @author a203 + */ +public interface IShelterPositionService extends IService { + /** + * 查询方舱最新位置信息 + * + * @return {@link ShelterPositionDTO} + */ + ShelterPositionDTO selectShelterPosition(); +} diff --git a/casic-server-support/src/main/java/com/casic/missiles/modular/system/model/ShelterPosition.java b/casic-server-support/src/main/java/com/casic/missiles/modular/system/model/ShelterPosition.java new file mode 100644 index 0000000..3e43bce --- /dev/null +++ b/casic-server-support/src/main/java/com/casic/missiles/modular/system/model/ShelterPosition.java @@ -0,0 +1,40 @@ +package com.casic.missiles.modular.system.model; + +import com.baomidou.mybatisplus.annotation.IdType; +import com.baomidou.mybatisplus.annotation.TableField; +import com.baomidou.mybatisplus.annotation.TableId; +import com.baomidou.mybatisplus.annotation.TableName; +import com.baomidou.mybatisplus.extension.activerecord.Model; +import lombok.Data; + +/** + * @author a203 + */ +@Data +@TableName("shelter_position") +public class ShelterPosition extends Model { + private static final long serialVersionUID = 1L; + + /** + * 数据库主键 + */ + @TableId(value = "ID", type = IdType.ASSIGN_ID) + private Long id; + + /** + * 经度 + */ + @TableField("LNG") + private Double lng; + /** + * 纬度 + */ + @TableField("LAT") + private Double lat; + + /** + * 时间 + */ + @TableField("CREATE_TIME") + private String createTime; +} diff --git a/casic-shelter/src/main/java/com/casic/missiles/modular/system/controller/ShelterController.java b/casic-shelter/src/main/java/com/casic/missiles/modular/system/controller/ShelterController.java index 1e8f765..7de57c0 100644 --- a/casic-shelter/src/main/java/com/casic/missiles/modular/system/controller/ShelterController.java +++ b/casic-shelter/src/main/java/com/casic/missiles/modular/system/controller/ShelterController.java @@ -3,7 +3,9 @@ import com.casic.missiles.core.base.controller.BaseController; import com.casic.missiles.model.response.ResponseData; import com.casic.missiles.modular.system.dto.RobotInfoDTO; +import com.casic.missiles.modular.system.dto.ShelterPositionDTO; import com.casic.missiles.modular.system.service.IRobotService; +import com.casic.missiles.modular.system.service.IShelterPositionService; import org.springframework.stereotype.Controller; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.PathVariable; @@ -23,9 +25,12 @@ public class ShelterController extends BaseController { private final IRobotService robotService; + private final IShelterPositionService positionService; - public ShelterController(IRobotService robotService) { + public ShelterController(IRobotService robotService, + IShelterPositionService positionService) { this.robotService = robotService; + this.positionService = positionService; } /** @@ -47,4 +52,14 @@ RobotInfoDTO detailDTO = robotService.robotDetail(robotId); return ResponseData.success(detailDTO); } + + /** + * 方舱位置 + */ + @GetMapping(value = "/position") + @ResponseBody + public Object position() { + ShelterPositionDTO positionDTO = positionService.selectShelterPosition(); + return ResponseData.success(positionDTO); + } } diff --git a/casic-shelter/src/main/java/com/casic/missiles/modular/system/dao/ShelterPositionMapper.java b/casic-shelter/src/main/java/com/casic/missiles/modular/system/dao/ShelterPositionMapper.java new file mode 100644 index 0000000..213d233 --- /dev/null +++ b/casic-shelter/src/main/java/com/casic/missiles/modular/system/dao/ShelterPositionMapper.java @@ -0,0 +1,18 @@ +package com.casic.missiles.modular.system.dao; + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.casic.missiles.modular.system.model.ShelterPosition; + +import java.util.List; + +/** + * @author a203 + */ +public interface ShelterPositionMapper extends BaseMapper { + /** + * 获取报警记录-分页 + * + * @return {@link List} + */ + ShelterPosition selectLastOne(); +} diff --git a/casic-shelter/src/main/java/com/casic/missiles/modular/system/dao/mapping/ShelterPositionMapper.xml b/casic-shelter/src/main/java/com/casic/missiles/modular/system/dao/mapping/ShelterPositionMapper.xml new file mode 100644 index 0000000..57f5001 --- /dev/null +++ b/casic-shelter/src/main/java/com/casic/missiles/modular/system/dao/mapping/ShelterPositionMapper.xml @@ -0,0 +1,20 @@ + + + + + + + ID AS id, + LNG AS lng, + LAT AS lat, + CREATE_TIME AS createTime + + + + \ No newline at end of file diff --git a/casic-shelter/src/main/java/com/casic/missiles/modular/system/dto/ShelterPositionDTO.java b/casic-shelter/src/main/java/com/casic/missiles/modular/system/dto/ShelterPositionDTO.java new file mode 100644 index 0000000..8b47db1 --- /dev/null +++ b/casic-shelter/src/main/java/com/casic/missiles/modular/system/dto/ShelterPositionDTO.java @@ -0,0 +1,30 @@ +package com.casic.missiles.modular.system.dto; + +import com.casic.missiles.modular.system.model.ShelterPosition; +import lombok.Data; + +/** + * @author a203 + */ +@Data +public class ShelterPositionDTO { + /** + * 经度 + */ + private Double lng; + /** + * 纬度 + */ + private Double lat; + + /** + * 时间 + */ + private String createTime; + + public ShelterPositionDTO(ShelterPosition shelterPosition) { + this.lng = shelterPosition.getLng(); + this.lat = shelterPosition.getLat(); + this.createTime = shelterPosition.getCreateTime(); + } +} diff --git a/casic-shelter/src/main/java/com/casic/missiles/modular/system/service/IShelterPositionService.java b/casic-shelter/src/main/java/com/casic/missiles/modular/system/service/IShelterPositionService.java new file mode 100644 index 0000000..dc659f6 --- /dev/null +++ b/casic-shelter/src/main/java/com/casic/missiles/modular/system/service/IShelterPositionService.java @@ -0,0 +1,17 @@ +package com.casic.missiles.modular.system.service; + +import com.baomidou.mybatisplus.extension.service.IService; +import com.casic.missiles.modular.system.dto.ShelterPositionDTO; +import com.casic.missiles.modular.system.model.ShelterPosition; + +/** + * @author a203 + */ +public interface IShelterPositionService extends IService { + /** + * 查询方舱最新位置信息 + * + * @return {@link ShelterPositionDTO} + */ + ShelterPositionDTO selectShelterPosition(); +} diff --git a/casic-shelter/src/main/java/com/casic/missiles/modular/system/service/impl/RobotServiceImpl.java b/casic-shelter/src/main/java/com/casic/missiles/modular/system/service/impl/RobotServiceImpl.java index 6ed1337..67f4ae5 100644 --- a/casic-shelter/src/main/java/com/casic/missiles/modular/system/service/impl/RobotServiceImpl.java +++ b/casic-shelter/src/main/java/com/casic/missiles/modular/system/service/impl/RobotServiceImpl.java @@ -13,7 +13,7 @@ import java.util.Map; /** - * 台风数据信息 服务实现类 + * 机器人数据信息 服务实现类 * * @author a203 */ diff --git a/casic-server-support/src/main/java/com/casic/missiles/modular/system/model/ShelterPosition.java b/casic-server-support/src/main/java/com/casic/missiles/modular/system/model/ShelterPosition.java new file mode 100644 index 0000000..3e43bce --- /dev/null +++ b/casic-server-support/src/main/java/com/casic/missiles/modular/system/model/ShelterPosition.java @@ -0,0 +1,40 @@ +package com.casic.missiles.modular.system.model; + +import com.baomidou.mybatisplus.annotation.IdType; +import com.baomidou.mybatisplus.annotation.TableField; +import com.baomidou.mybatisplus.annotation.TableId; +import com.baomidou.mybatisplus.annotation.TableName; +import com.baomidou.mybatisplus.extension.activerecord.Model; +import lombok.Data; + +/** + * @author a203 + */ +@Data +@TableName("shelter_position") +public class ShelterPosition extends Model { + private static final long serialVersionUID = 1L; + + /** + * 数据库主键 + */ + @TableId(value = "ID", type = IdType.ASSIGN_ID) + private Long id; + + /** + * 经度 + */ + @TableField("LNG") + private Double lng; + /** + * 纬度 + */ + @TableField("LAT") + private Double lat; + + /** + * 时间 + */ + @TableField("CREATE_TIME") + private String createTime; +} diff --git a/casic-shelter/src/main/java/com/casic/missiles/modular/system/controller/ShelterController.java b/casic-shelter/src/main/java/com/casic/missiles/modular/system/controller/ShelterController.java index 1e8f765..7de57c0 100644 --- a/casic-shelter/src/main/java/com/casic/missiles/modular/system/controller/ShelterController.java +++ b/casic-shelter/src/main/java/com/casic/missiles/modular/system/controller/ShelterController.java @@ -3,7 +3,9 @@ import com.casic.missiles.core.base.controller.BaseController; import com.casic.missiles.model.response.ResponseData; import com.casic.missiles.modular.system.dto.RobotInfoDTO; +import com.casic.missiles.modular.system.dto.ShelterPositionDTO; import com.casic.missiles.modular.system.service.IRobotService; +import com.casic.missiles.modular.system.service.IShelterPositionService; import org.springframework.stereotype.Controller; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.PathVariable; @@ -23,9 +25,12 @@ public class ShelterController extends BaseController { private final IRobotService robotService; + private final IShelterPositionService positionService; - public ShelterController(IRobotService robotService) { + public ShelterController(IRobotService robotService, + IShelterPositionService positionService) { this.robotService = robotService; + this.positionService = positionService; } /** @@ -47,4 +52,14 @@ RobotInfoDTO detailDTO = robotService.robotDetail(robotId); return ResponseData.success(detailDTO); } + + /** + * 方舱位置 + */ + @GetMapping(value = "/position") + @ResponseBody + public Object position() { + ShelterPositionDTO positionDTO = positionService.selectShelterPosition(); + return ResponseData.success(positionDTO); + } } diff --git a/casic-shelter/src/main/java/com/casic/missiles/modular/system/dao/ShelterPositionMapper.java b/casic-shelter/src/main/java/com/casic/missiles/modular/system/dao/ShelterPositionMapper.java new file mode 100644 index 0000000..213d233 --- /dev/null +++ b/casic-shelter/src/main/java/com/casic/missiles/modular/system/dao/ShelterPositionMapper.java @@ -0,0 +1,18 @@ +package com.casic.missiles.modular.system.dao; + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.casic.missiles.modular.system.model.ShelterPosition; + +import java.util.List; + +/** + * @author a203 + */ +public interface ShelterPositionMapper extends BaseMapper { + /** + * 获取报警记录-分页 + * + * @return {@link List} + */ + ShelterPosition selectLastOne(); +} diff --git a/casic-shelter/src/main/java/com/casic/missiles/modular/system/dao/mapping/ShelterPositionMapper.xml b/casic-shelter/src/main/java/com/casic/missiles/modular/system/dao/mapping/ShelterPositionMapper.xml new file mode 100644 index 0000000..57f5001 --- /dev/null +++ b/casic-shelter/src/main/java/com/casic/missiles/modular/system/dao/mapping/ShelterPositionMapper.xml @@ -0,0 +1,20 @@ + + + + + + + ID AS id, + LNG AS lng, + LAT AS lat, + CREATE_TIME AS createTime + + + + \ No newline at end of file diff --git a/casic-shelter/src/main/java/com/casic/missiles/modular/system/dto/ShelterPositionDTO.java b/casic-shelter/src/main/java/com/casic/missiles/modular/system/dto/ShelterPositionDTO.java new file mode 100644 index 0000000..8b47db1 --- /dev/null +++ b/casic-shelter/src/main/java/com/casic/missiles/modular/system/dto/ShelterPositionDTO.java @@ -0,0 +1,30 @@ +package com.casic.missiles.modular.system.dto; + +import com.casic.missiles.modular.system.model.ShelterPosition; +import lombok.Data; + +/** + * @author a203 + */ +@Data +public class ShelterPositionDTO { + /** + * 经度 + */ + private Double lng; + /** + * 纬度 + */ + private Double lat; + + /** + * 时间 + */ + private String createTime; + + public ShelterPositionDTO(ShelterPosition shelterPosition) { + this.lng = shelterPosition.getLng(); + this.lat = shelterPosition.getLat(); + this.createTime = shelterPosition.getCreateTime(); + } +} diff --git a/casic-shelter/src/main/java/com/casic/missiles/modular/system/service/IShelterPositionService.java b/casic-shelter/src/main/java/com/casic/missiles/modular/system/service/IShelterPositionService.java new file mode 100644 index 0000000..dc659f6 --- /dev/null +++ b/casic-shelter/src/main/java/com/casic/missiles/modular/system/service/IShelterPositionService.java @@ -0,0 +1,17 @@ +package com.casic.missiles.modular.system.service; + +import com.baomidou.mybatisplus.extension.service.IService; +import com.casic.missiles.modular.system.dto.ShelterPositionDTO; +import com.casic.missiles.modular.system.model.ShelterPosition; + +/** + * @author a203 + */ +public interface IShelterPositionService extends IService { + /** + * 查询方舱最新位置信息 + * + * @return {@link ShelterPositionDTO} + */ + ShelterPositionDTO selectShelterPosition(); +} diff --git a/casic-shelter/src/main/java/com/casic/missiles/modular/system/service/impl/RobotServiceImpl.java b/casic-shelter/src/main/java/com/casic/missiles/modular/system/service/impl/RobotServiceImpl.java index 6ed1337..67f4ae5 100644 --- a/casic-shelter/src/main/java/com/casic/missiles/modular/system/service/impl/RobotServiceImpl.java +++ b/casic-shelter/src/main/java/com/casic/missiles/modular/system/service/impl/RobotServiceImpl.java @@ -13,7 +13,7 @@ import java.util.Map; /** - * 台风数据信息 服务实现类 + * 机器人数据信息 服务实现类 * * @author a203 */ diff --git a/casic-shelter/src/main/java/com/casic/missiles/modular/system/service/impl/ShelterPositionServiceImpl.java b/casic-shelter/src/main/java/com/casic/missiles/modular/system/service/impl/ShelterPositionServiceImpl.java new file mode 100644 index 0000000..4a04467 --- /dev/null +++ b/casic-shelter/src/main/java/com/casic/missiles/modular/system/service/impl/ShelterPositionServiceImpl.java @@ -0,0 +1,31 @@ +package com.casic.missiles.modular.system.service.impl; + +import com.alibaba.fastjson.JSON; +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.casic.missiles.modular.system.dao.ShelterPositionMapper; +import com.casic.missiles.modular.system.dto.ShelterPositionDTO; +import com.casic.missiles.modular.system.model.ShelterPosition; +import com.casic.missiles.modular.system.service.IShelterPositionService; +import lombok.extern.slf4j.Slf4j; +import org.springframework.stereotype.Service; + +/** + * 方舱位置数据信息 服务实现类 + * + * @author a203 + */ +@Slf4j +@Service +public class ShelterPositionServiceImpl extends ServiceImpl implements IShelterPositionService { + + public ShelterPositionServiceImpl() { + + } + + @Override + public ShelterPositionDTO selectShelterPosition() { + ShelterPosition shelterPosition = this.baseMapper.selectLastOne(); + log.info(JSON.toJSONString(shelterPosition)); + return new ShelterPositionDTO(shelterPosition); + } +} diff --git a/casic-server-support/src/main/java/com/casic/missiles/modular/system/model/ShelterPosition.java b/casic-server-support/src/main/java/com/casic/missiles/modular/system/model/ShelterPosition.java new file mode 100644 index 0000000..3e43bce --- /dev/null +++ b/casic-server-support/src/main/java/com/casic/missiles/modular/system/model/ShelterPosition.java @@ -0,0 +1,40 @@ +package com.casic.missiles.modular.system.model; + +import com.baomidou.mybatisplus.annotation.IdType; +import com.baomidou.mybatisplus.annotation.TableField; +import com.baomidou.mybatisplus.annotation.TableId; +import com.baomidou.mybatisplus.annotation.TableName; +import com.baomidou.mybatisplus.extension.activerecord.Model; +import lombok.Data; + +/** + * @author a203 + */ +@Data +@TableName("shelter_position") +public class ShelterPosition extends Model { + private static final long serialVersionUID = 1L; + + /** + * 数据库主键 + */ + @TableId(value = "ID", type = IdType.ASSIGN_ID) + private Long id; + + /** + * 经度 + */ + @TableField("LNG") + private Double lng; + /** + * 纬度 + */ + @TableField("LAT") + private Double lat; + + /** + * 时间 + */ + @TableField("CREATE_TIME") + private String createTime; +} diff --git a/casic-shelter/src/main/java/com/casic/missiles/modular/system/controller/ShelterController.java b/casic-shelter/src/main/java/com/casic/missiles/modular/system/controller/ShelterController.java index 1e8f765..7de57c0 100644 --- a/casic-shelter/src/main/java/com/casic/missiles/modular/system/controller/ShelterController.java +++ b/casic-shelter/src/main/java/com/casic/missiles/modular/system/controller/ShelterController.java @@ -3,7 +3,9 @@ import com.casic.missiles.core.base.controller.BaseController; import com.casic.missiles.model.response.ResponseData; import com.casic.missiles.modular.system.dto.RobotInfoDTO; +import com.casic.missiles.modular.system.dto.ShelterPositionDTO; import com.casic.missiles.modular.system.service.IRobotService; +import com.casic.missiles.modular.system.service.IShelterPositionService; import org.springframework.stereotype.Controller; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.PathVariable; @@ -23,9 +25,12 @@ public class ShelterController extends BaseController { private final IRobotService robotService; + private final IShelterPositionService positionService; - public ShelterController(IRobotService robotService) { + public ShelterController(IRobotService robotService, + IShelterPositionService positionService) { this.robotService = robotService; + this.positionService = positionService; } /** @@ -47,4 +52,14 @@ RobotInfoDTO detailDTO = robotService.robotDetail(robotId); return ResponseData.success(detailDTO); } + + /** + * 方舱位置 + */ + @GetMapping(value = "/position") + @ResponseBody + public Object position() { + ShelterPositionDTO positionDTO = positionService.selectShelterPosition(); + return ResponseData.success(positionDTO); + } } diff --git a/casic-shelter/src/main/java/com/casic/missiles/modular/system/dao/ShelterPositionMapper.java b/casic-shelter/src/main/java/com/casic/missiles/modular/system/dao/ShelterPositionMapper.java new file mode 100644 index 0000000..213d233 --- /dev/null +++ b/casic-shelter/src/main/java/com/casic/missiles/modular/system/dao/ShelterPositionMapper.java @@ -0,0 +1,18 @@ +package com.casic.missiles.modular.system.dao; + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.casic.missiles.modular.system.model.ShelterPosition; + +import java.util.List; + +/** + * @author a203 + */ +public interface ShelterPositionMapper extends BaseMapper { + /** + * 获取报警记录-分页 + * + * @return {@link List} + */ + ShelterPosition selectLastOne(); +} diff --git a/casic-shelter/src/main/java/com/casic/missiles/modular/system/dao/mapping/ShelterPositionMapper.xml b/casic-shelter/src/main/java/com/casic/missiles/modular/system/dao/mapping/ShelterPositionMapper.xml new file mode 100644 index 0000000..57f5001 --- /dev/null +++ b/casic-shelter/src/main/java/com/casic/missiles/modular/system/dao/mapping/ShelterPositionMapper.xml @@ -0,0 +1,20 @@ + + + + + + + ID AS id, + LNG AS lng, + LAT AS lat, + CREATE_TIME AS createTime + + + + \ No newline at end of file diff --git a/casic-shelter/src/main/java/com/casic/missiles/modular/system/dto/ShelterPositionDTO.java b/casic-shelter/src/main/java/com/casic/missiles/modular/system/dto/ShelterPositionDTO.java new file mode 100644 index 0000000..8b47db1 --- /dev/null +++ b/casic-shelter/src/main/java/com/casic/missiles/modular/system/dto/ShelterPositionDTO.java @@ -0,0 +1,30 @@ +package com.casic.missiles.modular.system.dto; + +import com.casic.missiles.modular.system.model.ShelterPosition; +import lombok.Data; + +/** + * @author a203 + */ +@Data +public class ShelterPositionDTO { + /** + * 经度 + */ + private Double lng; + /** + * 纬度 + */ + private Double lat; + + /** + * 时间 + */ + private String createTime; + + public ShelterPositionDTO(ShelterPosition shelterPosition) { + this.lng = shelterPosition.getLng(); + this.lat = shelterPosition.getLat(); + this.createTime = shelterPosition.getCreateTime(); + } +} diff --git a/casic-shelter/src/main/java/com/casic/missiles/modular/system/service/IShelterPositionService.java b/casic-shelter/src/main/java/com/casic/missiles/modular/system/service/IShelterPositionService.java new file mode 100644 index 0000000..dc659f6 --- /dev/null +++ b/casic-shelter/src/main/java/com/casic/missiles/modular/system/service/IShelterPositionService.java @@ -0,0 +1,17 @@ +package com.casic.missiles.modular.system.service; + +import com.baomidou.mybatisplus.extension.service.IService; +import com.casic.missiles.modular.system.dto.ShelterPositionDTO; +import com.casic.missiles.modular.system.model.ShelterPosition; + +/** + * @author a203 + */ +public interface IShelterPositionService extends IService { + /** + * 查询方舱最新位置信息 + * + * @return {@link ShelterPositionDTO} + */ + ShelterPositionDTO selectShelterPosition(); +} diff --git a/casic-shelter/src/main/java/com/casic/missiles/modular/system/service/impl/RobotServiceImpl.java b/casic-shelter/src/main/java/com/casic/missiles/modular/system/service/impl/RobotServiceImpl.java index 6ed1337..67f4ae5 100644 --- a/casic-shelter/src/main/java/com/casic/missiles/modular/system/service/impl/RobotServiceImpl.java +++ b/casic-shelter/src/main/java/com/casic/missiles/modular/system/service/impl/RobotServiceImpl.java @@ -13,7 +13,7 @@ import java.util.Map; /** - * 台风数据信息 服务实现类 + * 机器人数据信息 服务实现类 * * @author a203 */ diff --git a/casic-shelter/src/main/java/com/casic/missiles/modular/system/service/impl/ShelterPositionServiceImpl.java b/casic-shelter/src/main/java/com/casic/missiles/modular/system/service/impl/ShelterPositionServiceImpl.java new file mode 100644 index 0000000..4a04467 --- /dev/null +++ b/casic-shelter/src/main/java/com/casic/missiles/modular/system/service/impl/ShelterPositionServiceImpl.java @@ -0,0 +1,31 @@ +package com.casic.missiles.modular.system.service.impl; + +import com.alibaba.fastjson.JSON; +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.casic.missiles.modular.system.dao.ShelterPositionMapper; +import com.casic.missiles.modular.system.dto.ShelterPositionDTO; +import com.casic.missiles.modular.system.model.ShelterPosition; +import com.casic.missiles.modular.system.service.IShelterPositionService; +import lombok.extern.slf4j.Slf4j; +import org.springframework.stereotype.Service; + +/** + * 方舱位置数据信息 服务实现类 + * + * @author a203 + */ +@Slf4j +@Service +public class ShelterPositionServiceImpl extends ServiceImpl implements IShelterPositionService { + + public ShelterPositionServiceImpl() { + + } + + @Override + public ShelterPositionDTO selectShelterPosition() { + ShelterPosition shelterPosition = this.baseMapper.selectLastOne(); + log.info(JSON.toJSONString(shelterPosition)); + return new ShelterPositionDTO(shelterPosition); + } +} diff --git a/casic-shelter/src/main/java/com/casic/missiles/modular/system/utils/DecodeData.java b/casic-shelter/src/main/java/com/casic/missiles/modular/system/utils/DecodeData.java index 9cb0e99..b18e3ad 100644 --- a/casic-shelter/src/main/java/com/casic/missiles/modular/system/utils/DecodeData.java +++ b/casic-shelter/src/main/java/com/casic/missiles/modular/system/utils/DecodeData.java @@ -2,11 +2,10 @@ import com.alibaba.fastjson.JSON; import com.casic.missiles.modular.system.model.RobotInfo; +import com.casic.missiles.modular.system.model.ShelterPosition; -import java.util.ArrayList; -import java.util.HashMap; -import java.util.List; -import java.util.Map; +import java.text.SimpleDateFormat; +import java.util.*; /** * 西工大数据解析 @@ -286,16 +285,20 @@ * 编码encode * 解码decode */ - public static String decodeShelterPosition(int[] bytes) { - Map taskMap = new HashMap<>(2); + public static ShelterPosition decodeShelterPosition(int[] bytes) { + ShelterPosition shelter = new ShelterPosition(); int[] lngBytes = new int[4]; - System.arraycopy(bytes, 4, lngBytes, 0, 4); - taskMap.put("lng", String.valueOf(covertLngLat(lngBytes))); + System.arraycopy(bytes, 5, lngBytes, 0, 4); + shelter.setLng(covertLngLat(lngBytes)); int[] latBytes = new int[4]; - System.arraycopy(bytes, 8, latBytes, 0, 4); - taskMap.put("lat", String.valueOf(covertLngLat(latBytes))); - return JSON.toJSONString(taskMap); + System.arraycopy(bytes, 9, latBytes, 0, 4); + shelter.setLat(covertLngLat(latBytes)); + + Date date = new Date(); + SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss", Locale.CHINA); + shelter.setCreateTime(dateFormat.format(date)); + return shelter; } public static String formatLanLat(int[] targetBytes) { diff --git a/casic-server-support/src/main/java/com/casic/missiles/modular/system/model/ShelterPosition.java b/casic-server-support/src/main/java/com/casic/missiles/modular/system/model/ShelterPosition.java new file mode 100644 index 0000000..3e43bce --- /dev/null +++ b/casic-server-support/src/main/java/com/casic/missiles/modular/system/model/ShelterPosition.java @@ -0,0 +1,40 @@ +package com.casic.missiles.modular.system.model; + +import com.baomidou.mybatisplus.annotation.IdType; +import com.baomidou.mybatisplus.annotation.TableField; +import com.baomidou.mybatisplus.annotation.TableId; +import com.baomidou.mybatisplus.annotation.TableName; +import com.baomidou.mybatisplus.extension.activerecord.Model; +import lombok.Data; + +/** + * @author a203 + */ +@Data +@TableName("shelter_position") +public class ShelterPosition extends Model { + private static final long serialVersionUID = 1L; + + /** + * 数据库主键 + */ + @TableId(value = "ID", type = IdType.ASSIGN_ID) + private Long id; + + /** + * 经度 + */ + @TableField("LNG") + private Double lng; + /** + * 纬度 + */ + @TableField("LAT") + private Double lat; + + /** + * 时间 + */ + @TableField("CREATE_TIME") + private String createTime; +} diff --git a/casic-shelter/src/main/java/com/casic/missiles/modular/system/controller/ShelterController.java b/casic-shelter/src/main/java/com/casic/missiles/modular/system/controller/ShelterController.java index 1e8f765..7de57c0 100644 --- a/casic-shelter/src/main/java/com/casic/missiles/modular/system/controller/ShelterController.java +++ b/casic-shelter/src/main/java/com/casic/missiles/modular/system/controller/ShelterController.java @@ -3,7 +3,9 @@ import com.casic.missiles.core.base.controller.BaseController; import com.casic.missiles.model.response.ResponseData; import com.casic.missiles.modular.system.dto.RobotInfoDTO; +import com.casic.missiles.modular.system.dto.ShelterPositionDTO; import com.casic.missiles.modular.system.service.IRobotService; +import com.casic.missiles.modular.system.service.IShelterPositionService; import org.springframework.stereotype.Controller; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.PathVariable; @@ -23,9 +25,12 @@ public class ShelterController extends BaseController { private final IRobotService robotService; + private final IShelterPositionService positionService; - public ShelterController(IRobotService robotService) { + public ShelterController(IRobotService robotService, + IShelterPositionService positionService) { this.robotService = robotService; + this.positionService = positionService; } /** @@ -47,4 +52,14 @@ RobotInfoDTO detailDTO = robotService.robotDetail(robotId); return ResponseData.success(detailDTO); } + + /** + * 方舱位置 + */ + @GetMapping(value = "/position") + @ResponseBody + public Object position() { + ShelterPositionDTO positionDTO = positionService.selectShelterPosition(); + return ResponseData.success(positionDTO); + } } diff --git a/casic-shelter/src/main/java/com/casic/missiles/modular/system/dao/ShelterPositionMapper.java b/casic-shelter/src/main/java/com/casic/missiles/modular/system/dao/ShelterPositionMapper.java new file mode 100644 index 0000000..213d233 --- /dev/null +++ b/casic-shelter/src/main/java/com/casic/missiles/modular/system/dao/ShelterPositionMapper.java @@ -0,0 +1,18 @@ +package com.casic.missiles.modular.system.dao; + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.casic.missiles.modular.system.model.ShelterPosition; + +import java.util.List; + +/** + * @author a203 + */ +public interface ShelterPositionMapper extends BaseMapper { + /** + * 获取报警记录-分页 + * + * @return {@link List} + */ + ShelterPosition selectLastOne(); +} diff --git a/casic-shelter/src/main/java/com/casic/missiles/modular/system/dao/mapping/ShelterPositionMapper.xml b/casic-shelter/src/main/java/com/casic/missiles/modular/system/dao/mapping/ShelterPositionMapper.xml new file mode 100644 index 0000000..57f5001 --- /dev/null +++ b/casic-shelter/src/main/java/com/casic/missiles/modular/system/dao/mapping/ShelterPositionMapper.xml @@ -0,0 +1,20 @@ + + + + + + + ID AS id, + LNG AS lng, + LAT AS lat, + CREATE_TIME AS createTime + + + + \ No newline at end of file diff --git a/casic-shelter/src/main/java/com/casic/missiles/modular/system/dto/ShelterPositionDTO.java b/casic-shelter/src/main/java/com/casic/missiles/modular/system/dto/ShelterPositionDTO.java new file mode 100644 index 0000000..8b47db1 --- /dev/null +++ b/casic-shelter/src/main/java/com/casic/missiles/modular/system/dto/ShelterPositionDTO.java @@ -0,0 +1,30 @@ +package com.casic.missiles.modular.system.dto; + +import com.casic.missiles.modular.system.model.ShelterPosition; +import lombok.Data; + +/** + * @author a203 + */ +@Data +public class ShelterPositionDTO { + /** + * 经度 + */ + private Double lng; + /** + * 纬度 + */ + private Double lat; + + /** + * 时间 + */ + private String createTime; + + public ShelterPositionDTO(ShelterPosition shelterPosition) { + this.lng = shelterPosition.getLng(); + this.lat = shelterPosition.getLat(); + this.createTime = shelterPosition.getCreateTime(); + } +} diff --git a/casic-shelter/src/main/java/com/casic/missiles/modular/system/service/IShelterPositionService.java b/casic-shelter/src/main/java/com/casic/missiles/modular/system/service/IShelterPositionService.java new file mode 100644 index 0000000..dc659f6 --- /dev/null +++ b/casic-shelter/src/main/java/com/casic/missiles/modular/system/service/IShelterPositionService.java @@ -0,0 +1,17 @@ +package com.casic.missiles.modular.system.service; + +import com.baomidou.mybatisplus.extension.service.IService; +import com.casic.missiles.modular.system.dto.ShelterPositionDTO; +import com.casic.missiles.modular.system.model.ShelterPosition; + +/** + * @author a203 + */ +public interface IShelterPositionService extends IService { + /** + * 查询方舱最新位置信息 + * + * @return {@link ShelterPositionDTO} + */ + ShelterPositionDTO selectShelterPosition(); +} diff --git a/casic-shelter/src/main/java/com/casic/missiles/modular/system/service/impl/RobotServiceImpl.java b/casic-shelter/src/main/java/com/casic/missiles/modular/system/service/impl/RobotServiceImpl.java index 6ed1337..67f4ae5 100644 --- a/casic-shelter/src/main/java/com/casic/missiles/modular/system/service/impl/RobotServiceImpl.java +++ b/casic-shelter/src/main/java/com/casic/missiles/modular/system/service/impl/RobotServiceImpl.java @@ -13,7 +13,7 @@ import java.util.Map; /** - * 台风数据信息 服务实现类 + * 机器人数据信息 服务实现类 * * @author a203 */ diff --git a/casic-shelter/src/main/java/com/casic/missiles/modular/system/service/impl/ShelterPositionServiceImpl.java b/casic-shelter/src/main/java/com/casic/missiles/modular/system/service/impl/ShelterPositionServiceImpl.java new file mode 100644 index 0000000..4a04467 --- /dev/null +++ b/casic-shelter/src/main/java/com/casic/missiles/modular/system/service/impl/ShelterPositionServiceImpl.java @@ -0,0 +1,31 @@ +package com.casic.missiles.modular.system.service.impl; + +import com.alibaba.fastjson.JSON; +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.casic.missiles.modular.system.dao.ShelterPositionMapper; +import com.casic.missiles.modular.system.dto.ShelterPositionDTO; +import com.casic.missiles.modular.system.model.ShelterPosition; +import com.casic.missiles.modular.system.service.IShelterPositionService; +import lombok.extern.slf4j.Slf4j; +import org.springframework.stereotype.Service; + +/** + * 方舱位置数据信息 服务实现类 + * + * @author a203 + */ +@Slf4j +@Service +public class ShelterPositionServiceImpl extends ServiceImpl implements IShelterPositionService { + + public ShelterPositionServiceImpl() { + + } + + @Override + public ShelterPositionDTO selectShelterPosition() { + ShelterPosition shelterPosition = this.baseMapper.selectLastOne(); + log.info(JSON.toJSONString(shelterPosition)); + return new ShelterPositionDTO(shelterPosition); + } +} diff --git a/casic-shelter/src/main/java/com/casic/missiles/modular/system/utils/DecodeData.java b/casic-shelter/src/main/java/com/casic/missiles/modular/system/utils/DecodeData.java index 9cb0e99..b18e3ad 100644 --- a/casic-shelter/src/main/java/com/casic/missiles/modular/system/utils/DecodeData.java +++ b/casic-shelter/src/main/java/com/casic/missiles/modular/system/utils/DecodeData.java @@ -2,11 +2,10 @@ import com.alibaba.fastjson.JSON; import com.casic.missiles.modular.system.model.RobotInfo; +import com.casic.missiles.modular.system.model.ShelterPosition; -import java.util.ArrayList; -import java.util.HashMap; -import java.util.List; -import java.util.Map; +import java.text.SimpleDateFormat; +import java.util.*; /** * 西工大数据解析 @@ -286,16 +285,20 @@ * 编码encode * 解码decode */ - public static String decodeShelterPosition(int[] bytes) { - Map taskMap = new HashMap<>(2); + public static ShelterPosition decodeShelterPosition(int[] bytes) { + ShelterPosition shelter = new ShelterPosition(); int[] lngBytes = new int[4]; - System.arraycopy(bytes, 4, lngBytes, 0, 4); - taskMap.put("lng", String.valueOf(covertLngLat(lngBytes))); + System.arraycopy(bytes, 5, lngBytes, 0, 4); + shelter.setLng(covertLngLat(lngBytes)); int[] latBytes = new int[4]; - System.arraycopy(bytes, 8, latBytes, 0, 4); - taskMap.put("lat", String.valueOf(covertLngLat(latBytes))); - return JSON.toJSONString(taskMap); + System.arraycopy(bytes, 9, latBytes, 0, 4); + shelter.setLat(covertLngLat(latBytes)); + + Date date = new Date(); + SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss", Locale.CHINA); + shelter.setCreateTime(dateFormat.format(date)); + return shelter; } public static String formatLanLat(int[] targetBytes) { diff --git a/casic-shelter/src/main/java/com/casic/missiles/socket/service/impl/SocketServiceImpl.java b/casic-shelter/src/main/java/com/casic/missiles/socket/service/impl/SocketServiceImpl.java index 85c2bc5..5680b05 100644 --- a/casic-shelter/src/main/java/com/casic/missiles/socket/service/impl/SocketServiceImpl.java +++ b/casic-shelter/src/main/java/com/casic/missiles/socket/service/impl/SocketServiceImpl.java @@ -3,6 +3,8 @@ import com.alibaba.fastjson.JSON; import com.casic.missiles.modular.system.dto.ShipDTO; import com.casic.missiles.modular.system.dto.TyphoonDTO; +import com.casic.missiles.modular.system.model.ShelterPosition; +import com.casic.missiles.modular.system.service.IShelterPositionService; import com.casic.missiles.modular.system.service.IShipService; import com.casic.missiles.modular.system.service.ITyphoonService; import com.casic.missiles.modular.system.utils.Constant; @@ -23,13 +25,16 @@ @Service public class SocketServiceImpl implements ISocketService { - private final ITyphoonService typhoonService; private final IShipService shipService; + private final IShelterPositionService shelterPositionService; - public SocketServiceImpl(ITyphoonService typhoonService, IShipService shipService) { + public SocketServiceImpl(ITyphoonService typhoonService, + IShipService shipService, + IShelterPositionService shelterPositionService) { this.typhoonService = typhoonService; this.shipService = shipService; + this.shelterPositionService = shelterPositionService; } private boolean isCorrectData(int[] bytes) { @@ -125,7 +130,13 @@ break; case 0x07: //方舱位置 - DecodeData.decodeShelterPosition(data); + ShelterPosition shelterPosition = DecodeData.decodeShelterPosition( + new int[]{0x2A, 0x23, 0x07, 0x00, 0x00, + 0x4D, 0xBD, 0x80, 0xCF, + 0x0C, 0x5E, 0x28, 0xC2, + 0xC7, 0x16, 0x0A} + ); + shelterPositionService.save(shelterPosition); break; default: break; diff --git a/casic-server-support/src/main/java/com/casic/missiles/modular/system/model/ShelterPosition.java b/casic-server-support/src/main/java/com/casic/missiles/modular/system/model/ShelterPosition.java new file mode 100644 index 0000000..3e43bce --- /dev/null +++ b/casic-server-support/src/main/java/com/casic/missiles/modular/system/model/ShelterPosition.java @@ -0,0 +1,40 @@ +package com.casic.missiles.modular.system.model; + +import com.baomidou.mybatisplus.annotation.IdType; +import com.baomidou.mybatisplus.annotation.TableField; +import com.baomidou.mybatisplus.annotation.TableId; +import com.baomidou.mybatisplus.annotation.TableName; +import com.baomidou.mybatisplus.extension.activerecord.Model; +import lombok.Data; + +/** + * @author a203 + */ +@Data +@TableName("shelter_position") +public class ShelterPosition extends Model { + private static final long serialVersionUID = 1L; + + /** + * 数据库主键 + */ + @TableId(value = "ID", type = IdType.ASSIGN_ID) + private Long id; + + /** + * 经度 + */ + @TableField("LNG") + private Double lng; + /** + * 纬度 + */ + @TableField("LAT") + private Double lat; + + /** + * 时间 + */ + @TableField("CREATE_TIME") + private String createTime; +} diff --git a/casic-shelter/src/main/java/com/casic/missiles/modular/system/controller/ShelterController.java b/casic-shelter/src/main/java/com/casic/missiles/modular/system/controller/ShelterController.java index 1e8f765..7de57c0 100644 --- a/casic-shelter/src/main/java/com/casic/missiles/modular/system/controller/ShelterController.java +++ b/casic-shelter/src/main/java/com/casic/missiles/modular/system/controller/ShelterController.java @@ -3,7 +3,9 @@ import com.casic.missiles.core.base.controller.BaseController; import com.casic.missiles.model.response.ResponseData; import com.casic.missiles.modular.system.dto.RobotInfoDTO; +import com.casic.missiles.modular.system.dto.ShelterPositionDTO; import com.casic.missiles.modular.system.service.IRobotService; +import com.casic.missiles.modular.system.service.IShelterPositionService; import org.springframework.stereotype.Controller; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.PathVariable; @@ -23,9 +25,12 @@ public class ShelterController extends BaseController { private final IRobotService robotService; + private final IShelterPositionService positionService; - public ShelterController(IRobotService robotService) { + public ShelterController(IRobotService robotService, + IShelterPositionService positionService) { this.robotService = robotService; + this.positionService = positionService; } /** @@ -47,4 +52,14 @@ RobotInfoDTO detailDTO = robotService.robotDetail(robotId); return ResponseData.success(detailDTO); } + + /** + * 方舱位置 + */ + @GetMapping(value = "/position") + @ResponseBody + public Object position() { + ShelterPositionDTO positionDTO = positionService.selectShelterPosition(); + return ResponseData.success(positionDTO); + } } diff --git a/casic-shelter/src/main/java/com/casic/missiles/modular/system/dao/ShelterPositionMapper.java b/casic-shelter/src/main/java/com/casic/missiles/modular/system/dao/ShelterPositionMapper.java new file mode 100644 index 0000000..213d233 --- /dev/null +++ b/casic-shelter/src/main/java/com/casic/missiles/modular/system/dao/ShelterPositionMapper.java @@ -0,0 +1,18 @@ +package com.casic.missiles.modular.system.dao; + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.casic.missiles.modular.system.model.ShelterPosition; + +import java.util.List; + +/** + * @author a203 + */ +public interface ShelterPositionMapper extends BaseMapper { + /** + * 获取报警记录-分页 + * + * @return {@link List} + */ + ShelterPosition selectLastOne(); +} diff --git a/casic-shelter/src/main/java/com/casic/missiles/modular/system/dao/mapping/ShelterPositionMapper.xml b/casic-shelter/src/main/java/com/casic/missiles/modular/system/dao/mapping/ShelterPositionMapper.xml new file mode 100644 index 0000000..57f5001 --- /dev/null +++ b/casic-shelter/src/main/java/com/casic/missiles/modular/system/dao/mapping/ShelterPositionMapper.xml @@ -0,0 +1,20 @@ + + + + + + + ID AS id, + LNG AS lng, + LAT AS lat, + CREATE_TIME AS createTime + + + + \ No newline at end of file diff --git a/casic-shelter/src/main/java/com/casic/missiles/modular/system/dto/ShelterPositionDTO.java b/casic-shelter/src/main/java/com/casic/missiles/modular/system/dto/ShelterPositionDTO.java new file mode 100644 index 0000000..8b47db1 --- /dev/null +++ b/casic-shelter/src/main/java/com/casic/missiles/modular/system/dto/ShelterPositionDTO.java @@ -0,0 +1,30 @@ +package com.casic.missiles.modular.system.dto; + +import com.casic.missiles.modular.system.model.ShelterPosition; +import lombok.Data; + +/** + * @author a203 + */ +@Data +public class ShelterPositionDTO { + /** + * 经度 + */ + private Double lng; + /** + * 纬度 + */ + private Double lat; + + /** + * 时间 + */ + private String createTime; + + public ShelterPositionDTO(ShelterPosition shelterPosition) { + this.lng = shelterPosition.getLng(); + this.lat = shelterPosition.getLat(); + this.createTime = shelterPosition.getCreateTime(); + } +} diff --git a/casic-shelter/src/main/java/com/casic/missiles/modular/system/service/IShelterPositionService.java b/casic-shelter/src/main/java/com/casic/missiles/modular/system/service/IShelterPositionService.java new file mode 100644 index 0000000..dc659f6 --- /dev/null +++ b/casic-shelter/src/main/java/com/casic/missiles/modular/system/service/IShelterPositionService.java @@ -0,0 +1,17 @@ +package com.casic.missiles.modular.system.service; + +import com.baomidou.mybatisplus.extension.service.IService; +import com.casic.missiles.modular.system.dto.ShelterPositionDTO; +import com.casic.missiles.modular.system.model.ShelterPosition; + +/** + * @author a203 + */ +public interface IShelterPositionService extends IService { + /** + * 查询方舱最新位置信息 + * + * @return {@link ShelterPositionDTO} + */ + ShelterPositionDTO selectShelterPosition(); +} diff --git a/casic-shelter/src/main/java/com/casic/missiles/modular/system/service/impl/RobotServiceImpl.java b/casic-shelter/src/main/java/com/casic/missiles/modular/system/service/impl/RobotServiceImpl.java index 6ed1337..67f4ae5 100644 --- a/casic-shelter/src/main/java/com/casic/missiles/modular/system/service/impl/RobotServiceImpl.java +++ b/casic-shelter/src/main/java/com/casic/missiles/modular/system/service/impl/RobotServiceImpl.java @@ -13,7 +13,7 @@ import java.util.Map; /** - * 台风数据信息 服务实现类 + * 机器人数据信息 服务实现类 * * @author a203 */ diff --git a/casic-shelter/src/main/java/com/casic/missiles/modular/system/service/impl/ShelterPositionServiceImpl.java b/casic-shelter/src/main/java/com/casic/missiles/modular/system/service/impl/ShelterPositionServiceImpl.java new file mode 100644 index 0000000..4a04467 --- /dev/null +++ b/casic-shelter/src/main/java/com/casic/missiles/modular/system/service/impl/ShelterPositionServiceImpl.java @@ -0,0 +1,31 @@ +package com.casic.missiles.modular.system.service.impl; + +import com.alibaba.fastjson.JSON; +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.casic.missiles.modular.system.dao.ShelterPositionMapper; +import com.casic.missiles.modular.system.dto.ShelterPositionDTO; +import com.casic.missiles.modular.system.model.ShelterPosition; +import com.casic.missiles.modular.system.service.IShelterPositionService; +import lombok.extern.slf4j.Slf4j; +import org.springframework.stereotype.Service; + +/** + * 方舱位置数据信息 服务实现类 + * + * @author a203 + */ +@Slf4j +@Service +public class ShelterPositionServiceImpl extends ServiceImpl implements IShelterPositionService { + + public ShelterPositionServiceImpl() { + + } + + @Override + public ShelterPositionDTO selectShelterPosition() { + ShelterPosition shelterPosition = this.baseMapper.selectLastOne(); + log.info(JSON.toJSONString(shelterPosition)); + return new ShelterPositionDTO(shelterPosition); + } +} diff --git a/casic-shelter/src/main/java/com/casic/missiles/modular/system/utils/DecodeData.java b/casic-shelter/src/main/java/com/casic/missiles/modular/system/utils/DecodeData.java index 9cb0e99..b18e3ad 100644 --- a/casic-shelter/src/main/java/com/casic/missiles/modular/system/utils/DecodeData.java +++ b/casic-shelter/src/main/java/com/casic/missiles/modular/system/utils/DecodeData.java @@ -2,11 +2,10 @@ import com.alibaba.fastjson.JSON; import com.casic.missiles.modular.system.model.RobotInfo; +import com.casic.missiles.modular.system.model.ShelterPosition; -import java.util.ArrayList; -import java.util.HashMap; -import java.util.List; -import java.util.Map; +import java.text.SimpleDateFormat; +import java.util.*; /** * 西工大数据解析 @@ -286,16 +285,20 @@ * 编码encode * 解码decode */ - public static String decodeShelterPosition(int[] bytes) { - Map taskMap = new HashMap<>(2); + public static ShelterPosition decodeShelterPosition(int[] bytes) { + ShelterPosition shelter = new ShelterPosition(); int[] lngBytes = new int[4]; - System.arraycopy(bytes, 4, lngBytes, 0, 4); - taskMap.put("lng", String.valueOf(covertLngLat(lngBytes))); + System.arraycopy(bytes, 5, lngBytes, 0, 4); + shelter.setLng(covertLngLat(lngBytes)); int[] latBytes = new int[4]; - System.arraycopy(bytes, 8, latBytes, 0, 4); - taskMap.put("lat", String.valueOf(covertLngLat(latBytes))); - return JSON.toJSONString(taskMap); + System.arraycopy(bytes, 9, latBytes, 0, 4); + shelter.setLat(covertLngLat(latBytes)); + + Date date = new Date(); + SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss", Locale.CHINA); + shelter.setCreateTime(dateFormat.format(date)); + return shelter; } public static String formatLanLat(int[] targetBytes) { diff --git a/casic-shelter/src/main/java/com/casic/missiles/socket/service/impl/SocketServiceImpl.java b/casic-shelter/src/main/java/com/casic/missiles/socket/service/impl/SocketServiceImpl.java index 85c2bc5..5680b05 100644 --- a/casic-shelter/src/main/java/com/casic/missiles/socket/service/impl/SocketServiceImpl.java +++ b/casic-shelter/src/main/java/com/casic/missiles/socket/service/impl/SocketServiceImpl.java @@ -3,6 +3,8 @@ import com.alibaba.fastjson.JSON; import com.casic.missiles.modular.system.dto.ShipDTO; import com.casic.missiles.modular.system.dto.TyphoonDTO; +import com.casic.missiles.modular.system.model.ShelterPosition; +import com.casic.missiles.modular.system.service.IShelterPositionService; import com.casic.missiles.modular.system.service.IShipService; import com.casic.missiles.modular.system.service.ITyphoonService; import com.casic.missiles.modular.system.utils.Constant; @@ -23,13 +25,16 @@ @Service public class SocketServiceImpl implements ISocketService { - private final ITyphoonService typhoonService; private final IShipService shipService; + private final IShelterPositionService shelterPositionService; - public SocketServiceImpl(ITyphoonService typhoonService, IShipService shipService) { + public SocketServiceImpl(ITyphoonService typhoonService, + IShipService shipService, + IShelterPositionService shelterPositionService) { this.typhoonService = typhoonService; this.shipService = shipService; + this.shelterPositionService = shelterPositionService; } private boolean isCorrectData(int[] bytes) { @@ -125,7 +130,13 @@ break; case 0x07: //方舱位置 - DecodeData.decodeShelterPosition(data); + ShelterPosition shelterPosition = DecodeData.decodeShelterPosition( + new int[]{0x2A, 0x23, 0x07, 0x00, 0x00, + 0x4D, 0xBD, 0x80, 0xCF, + 0x0C, 0x5E, 0x28, 0xC2, + 0xC7, 0x16, 0x0A} + ); + shelterPositionService.save(shelterPosition); break; default: break; diff --git a/casic-web/src/main/java/com/casic/missiles/CasicApplication.java b/casic-web/src/main/java/com/casic/missiles/CasicApplication.java index 061802a..d42de7a 100644 --- a/casic-web/src/main/java/com/casic/missiles/CasicApplication.java +++ b/casic-web/src/main/java/com/casic/missiles/CasicApplication.java @@ -27,11 +27,11 @@ @EnableTransactionManagement(proxyTargetClass = true) @EnableAsync @Slf4j -@PropertySource("classpath:/config/socket.properties") +@PropertySource("classpath:/config/socket.yml") @EnableScheduling public class CasicApplication implements CommandLineRunner { - @Value("${socket.port}") + @Value("${port}") private Integer port; @Resource diff --git a/casic-server-support/src/main/java/com/casic/missiles/modular/system/model/ShelterPosition.java b/casic-server-support/src/main/java/com/casic/missiles/modular/system/model/ShelterPosition.java new file mode 100644 index 0000000..3e43bce --- /dev/null +++ b/casic-server-support/src/main/java/com/casic/missiles/modular/system/model/ShelterPosition.java @@ -0,0 +1,40 @@ +package com.casic.missiles.modular.system.model; + +import com.baomidou.mybatisplus.annotation.IdType; +import com.baomidou.mybatisplus.annotation.TableField; +import com.baomidou.mybatisplus.annotation.TableId; +import com.baomidou.mybatisplus.annotation.TableName; +import com.baomidou.mybatisplus.extension.activerecord.Model; +import lombok.Data; + +/** + * @author a203 + */ +@Data +@TableName("shelter_position") +public class ShelterPosition extends Model { + private static final long serialVersionUID = 1L; + + /** + * 数据库主键 + */ + @TableId(value = "ID", type = IdType.ASSIGN_ID) + private Long id; + + /** + * 经度 + */ + @TableField("LNG") + private Double lng; + /** + * 纬度 + */ + @TableField("LAT") + private Double lat; + + /** + * 时间 + */ + @TableField("CREATE_TIME") + private String createTime; +} diff --git a/casic-shelter/src/main/java/com/casic/missiles/modular/system/controller/ShelterController.java b/casic-shelter/src/main/java/com/casic/missiles/modular/system/controller/ShelterController.java index 1e8f765..7de57c0 100644 --- a/casic-shelter/src/main/java/com/casic/missiles/modular/system/controller/ShelterController.java +++ b/casic-shelter/src/main/java/com/casic/missiles/modular/system/controller/ShelterController.java @@ -3,7 +3,9 @@ import com.casic.missiles.core.base.controller.BaseController; import com.casic.missiles.model.response.ResponseData; import com.casic.missiles.modular.system.dto.RobotInfoDTO; +import com.casic.missiles.modular.system.dto.ShelterPositionDTO; import com.casic.missiles.modular.system.service.IRobotService; +import com.casic.missiles.modular.system.service.IShelterPositionService; import org.springframework.stereotype.Controller; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.PathVariable; @@ -23,9 +25,12 @@ public class ShelterController extends BaseController { private final IRobotService robotService; + private final IShelterPositionService positionService; - public ShelterController(IRobotService robotService) { + public ShelterController(IRobotService robotService, + IShelterPositionService positionService) { this.robotService = robotService; + this.positionService = positionService; } /** @@ -47,4 +52,14 @@ RobotInfoDTO detailDTO = robotService.robotDetail(robotId); return ResponseData.success(detailDTO); } + + /** + * 方舱位置 + */ + @GetMapping(value = "/position") + @ResponseBody + public Object position() { + ShelterPositionDTO positionDTO = positionService.selectShelterPosition(); + return ResponseData.success(positionDTO); + } } diff --git a/casic-shelter/src/main/java/com/casic/missiles/modular/system/dao/ShelterPositionMapper.java b/casic-shelter/src/main/java/com/casic/missiles/modular/system/dao/ShelterPositionMapper.java new file mode 100644 index 0000000..213d233 --- /dev/null +++ b/casic-shelter/src/main/java/com/casic/missiles/modular/system/dao/ShelterPositionMapper.java @@ -0,0 +1,18 @@ +package com.casic.missiles.modular.system.dao; + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.casic.missiles.modular.system.model.ShelterPosition; + +import java.util.List; + +/** + * @author a203 + */ +public interface ShelterPositionMapper extends BaseMapper { + /** + * 获取报警记录-分页 + * + * @return {@link List} + */ + ShelterPosition selectLastOne(); +} diff --git a/casic-shelter/src/main/java/com/casic/missiles/modular/system/dao/mapping/ShelterPositionMapper.xml b/casic-shelter/src/main/java/com/casic/missiles/modular/system/dao/mapping/ShelterPositionMapper.xml new file mode 100644 index 0000000..57f5001 --- /dev/null +++ b/casic-shelter/src/main/java/com/casic/missiles/modular/system/dao/mapping/ShelterPositionMapper.xml @@ -0,0 +1,20 @@ + + + + + + + ID AS id, + LNG AS lng, + LAT AS lat, + CREATE_TIME AS createTime + + + + \ No newline at end of file diff --git a/casic-shelter/src/main/java/com/casic/missiles/modular/system/dto/ShelterPositionDTO.java b/casic-shelter/src/main/java/com/casic/missiles/modular/system/dto/ShelterPositionDTO.java new file mode 100644 index 0000000..8b47db1 --- /dev/null +++ b/casic-shelter/src/main/java/com/casic/missiles/modular/system/dto/ShelterPositionDTO.java @@ -0,0 +1,30 @@ +package com.casic.missiles.modular.system.dto; + +import com.casic.missiles.modular.system.model.ShelterPosition; +import lombok.Data; + +/** + * @author a203 + */ +@Data +public class ShelterPositionDTO { + /** + * 经度 + */ + private Double lng; + /** + * 纬度 + */ + private Double lat; + + /** + * 时间 + */ + private String createTime; + + public ShelterPositionDTO(ShelterPosition shelterPosition) { + this.lng = shelterPosition.getLng(); + this.lat = shelterPosition.getLat(); + this.createTime = shelterPosition.getCreateTime(); + } +} diff --git a/casic-shelter/src/main/java/com/casic/missiles/modular/system/service/IShelterPositionService.java b/casic-shelter/src/main/java/com/casic/missiles/modular/system/service/IShelterPositionService.java new file mode 100644 index 0000000..dc659f6 --- /dev/null +++ b/casic-shelter/src/main/java/com/casic/missiles/modular/system/service/IShelterPositionService.java @@ -0,0 +1,17 @@ +package com.casic.missiles.modular.system.service; + +import com.baomidou.mybatisplus.extension.service.IService; +import com.casic.missiles.modular.system.dto.ShelterPositionDTO; +import com.casic.missiles.modular.system.model.ShelterPosition; + +/** + * @author a203 + */ +public interface IShelterPositionService extends IService { + /** + * 查询方舱最新位置信息 + * + * @return {@link ShelterPositionDTO} + */ + ShelterPositionDTO selectShelterPosition(); +} diff --git a/casic-shelter/src/main/java/com/casic/missiles/modular/system/service/impl/RobotServiceImpl.java b/casic-shelter/src/main/java/com/casic/missiles/modular/system/service/impl/RobotServiceImpl.java index 6ed1337..67f4ae5 100644 --- a/casic-shelter/src/main/java/com/casic/missiles/modular/system/service/impl/RobotServiceImpl.java +++ b/casic-shelter/src/main/java/com/casic/missiles/modular/system/service/impl/RobotServiceImpl.java @@ -13,7 +13,7 @@ import java.util.Map; /** - * 台风数据信息 服务实现类 + * 机器人数据信息 服务实现类 * * @author a203 */ diff --git a/casic-shelter/src/main/java/com/casic/missiles/modular/system/service/impl/ShelterPositionServiceImpl.java b/casic-shelter/src/main/java/com/casic/missiles/modular/system/service/impl/ShelterPositionServiceImpl.java new file mode 100644 index 0000000..4a04467 --- /dev/null +++ b/casic-shelter/src/main/java/com/casic/missiles/modular/system/service/impl/ShelterPositionServiceImpl.java @@ -0,0 +1,31 @@ +package com.casic.missiles.modular.system.service.impl; + +import com.alibaba.fastjson.JSON; +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.casic.missiles.modular.system.dao.ShelterPositionMapper; +import com.casic.missiles.modular.system.dto.ShelterPositionDTO; +import com.casic.missiles.modular.system.model.ShelterPosition; +import com.casic.missiles.modular.system.service.IShelterPositionService; +import lombok.extern.slf4j.Slf4j; +import org.springframework.stereotype.Service; + +/** + * 方舱位置数据信息 服务实现类 + * + * @author a203 + */ +@Slf4j +@Service +public class ShelterPositionServiceImpl extends ServiceImpl implements IShelterPositionService { + + public ShelterPositionServiceImpl() { + + } + + @Override + public ShelterPositionDTO selectShelterPosition() { + ShelterPosition shelterPosition = this.baseMapper.selectLastOne(); + log.info(JSON.toJSONString(shelterPosition)); + return new ShelterPositionDTO(shelterPosition); + } +} diff --git a/casic-shelter/src/main/java/com/casic/missiles/modular/system/utils/DecodeData.java b/casic-shelter/src/main/java/com/casic/missiles/modular/system/utils/DecodeData.java index 9cb0e99..b18e3ad 100644 --- a/casic-shelter/src/main/java/com/casic/missiles/modular/system/utils/DecodeData.java +++ b/casic-shelter/src/main/java/com/casic/missiles/modular/system/utils/DecodeData.java @@ -2,11 +2,10 @@ import com.alibaba.fastjson.JSON; import com.casic.missiles.modular.system.model.RobotInfo; +import com.casic.missiles.modular.system.model.ShelterPosition; -import java.util.ArrayList; -import java.util.HashMap; -import java.util.List; -import java.util.Map; +import java.text.SimpleDateFormat; +import java.util.*; /** * 西工大数据解析 @@ -286,16 +285,20 @@ * 编码encode * 解码decode */ - public static String decodeShelterPosition(int[] bytes) { - Map taskMap = new HashMap<>(2); + public static ShelterPosition decodeShelterPosition(int[] bytes) { + ShelterPosition shelter = new ShelterPosition(); int[] lngBytes = new int[4]; - System.arraycopy(bytes, 4, lngBytes, 0, 4); - taskMap.put("lng", String.valueOf(covertLngLat(lngBytes))); + System.arraycopy(bytes, 5, lngBytes, 0, 4); + shelter.setLng(covertLngLat(lngBytes)); int[] latBytes = new int[4]; - System.arraycopy(bytes, 8, latBytes, 0, 4); - taskMap.put("lat", String.valueOf(covertLngLat(latBytes))); - return JSON.toJSONString(taskMap); + System.arraycopy(bytes, 9, latBytes, 0, 4); + shelter.setLat(covertLngLat(latBytes)); + + Date date = new Date(); + SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss", Locale.CHINA); + shelter.setCreateTime(dateFormat.format(date)); + return shelter; } public static String formatLanLat(int[] targetBytes) { diff --git a/casic-shelter/src/main/java/com/casic/missiles/socket/service/impl/SocketServiceImpl.java b/casic-shelter/src/main/java/com/casic/missiles/socket/service/impl/SocketServiceImpl.java index 85c2bc5..5680b05 100644 --- a/casic-shelter/src/main/java/com/casic/missiles/socket/service/impl/SocketServiceImpl.java +++ b/casic-shelter/src/main/java/com/casic/missiles/socket/service/impl/SocketServiceImpl.java @@ -3,6 +3,8 @@ import com.alibaba.fastjson.JSON; import com.casic.missiles.modular.system.dto.ShipDTO; import com.casic.missiles.modular.system.dto.TyphoonDTO; +import com.casic.missiles.modular.system.model.ShelterPosition; +import com.casic.missiles.modular.system.service.IShelterPositionService; import com.casic.missiles.modular.system.service.IShipService; import com.casic.missiles.modular.system.service.ITyphoonService; import com.casic.missiles.modular.system.utils.Constant; @@ -23,13 +25,16 @@ @Service public class SocketServiceImpl implements ISocketService { - private final ITyphoonService typhoonService; private final IShipService shipService; + private final IShelterPositionService shelterPositionService; - public SocketServiceImpl(ITyphoonService typhoonService, IShipService shipService) { + public SocketServiceImpl(ITyphoonService typhoonService, + IShipService shipService, + IShelterPositionService shelterPositionService) { this.typhoonService = typhoonService; this.shipService = shipService; + this.shelterPositionService = shelterPositionService; } private boolean isCorrectData(int[] bytes) { @@ -125,7 +130,13 @@ break; case 0x07: //方舱位置 - DecodeData.decodeShelterPosition(data); + ShelterPosition shelterPosition = DecodeData.decodeShelterPosition( + new int[]{0x2A, 0x23, 0x07, 0x00, 0x00, + 0x4D, 0xBD, 0x80, 0xCF, + 0x0C, 0x5E, 0x28, 0xC2, + 0xC7, 0x16, 0x0A} + ); + shelterPositionService.save(shelterPosition); break; default: break; diff --git a/casic-web/src/main/java/com/casic/missiles/CasicApplication.java b/casic-web/src/main/java/com/casic/missiles/CasicApplication.java index 061802a..d42de7a 100644 --- a/casic-web/src/main/java/com/casic/missiles/CasicApplication.java +++ b/casic-web/src/main/java/com/casic/missiles/CasicApplication.java @@ -27,11 +27,11 @@ @EnableTransactionManagement(proxyTargetClass = true) @EnableAsync @Slf4j -@PropertySource("classpath:/config/socket.properties") +@PropertySource("classpath:/config/socket.yml") @EnableScheduling public class CasicApplication implements CommandLineRunner { - @Value("${socket.port}") + @Value("${port}") private Integer port; @Resource diff --git a/casic-web/src/main/resources/config/socket.properties b/casic-web/src/main/resources/config/socket.properties deleted file mode 100644 index 20d5b14..0000000 --- a/casic-web/src/main/resources/config/socket.properties +++ /dev/null @@ -1 +0,0 @@ -socket.port=9091 \ No newline at end of file diff --git a/casic-server-support/src/main/java/com/casic/missiles/modular/system/model/ShelterPosition.java b/casic-server-support/src/main/java/com/casic/missiles/modular/system/model/ShelterPosition.java new file mode 100644 index 0000000..3e43bce --- /dev/null +++ b/casic-server-support/src/main/java/com/casic/missiles/modular/system/model/ShelterPosition.java @@ -0,0 +1,40 @@ +package com.casic.missiles.modular.system.model; + +import com.baomidou.mybatisplus.annotation.IdType; +import com.baomidou.mybatisplus.annotation.TableField; +import com.baomidou.mybatisplus.annotation.TableId; +import com.baomidou.mybatisplus.annotation.TableName; +import com.baomidou.mybatisplus.extension.activerecord.Model; +import lombok.Data; + +/** + * @author a203 + */ +@Data +@TableName("shelter_position") +public class ShelterPosition extends Model { + private static final long serialVersionUID = 1L; + + /** + * 数据库主键 + */ + @TableId(value = "ID", type = IdType.ASSIGN_ID) + private Long id; + + /** + * 经度 + */ + @TableField("LNG") + private Double lng; + /** + * 纬度 + */ + @TableField("LAT") + private Double lat; + + /** + * 时间 + */ + @TableField("CREATE_TIME") + private String createTime; +} diff --git a/casic-shelter/src/main/java/com/casic/missiles/modular/system/controller/ShelterController.java b/casic-shelter/src/main/java/com/casic/missiles/modular/system/controller/ShelterController.java index 1e8f765..7de57c0 100644 --- a/casic-shelter/src/main/java/com/casic/missiles/modular/system/controller/ShelterController.java +++ b/casic-shelter/src/main/java/com/casic/missiles/modular/system/controller/ShelterController.java @@ -3,7 +3,9 @@ import com.casic.missiles.core.base.controller.BaseController; import com.casic.missiles.model.response.ResponseData; import com.casic.missiles.modular.system.dto.RobotInfoDTO; +import com.casic.missiles.modular.system.dto.ShelterPositionDTO; import com.casic.missiles.modular.system.service.IRobotService; +import com.casic.missiles.modular.system.service.IShelterPositionService; import org.springframework.stereotype.Controller; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.PathVariable; @@ -23,9 +25,12 @@ public class ShelterController extends BaseController { private final IRobotService robotService; + private final IShelterPositionService positionService; - public ShelterController(IRobotService robotService) { + public ShelterController(IRobotService robotService, + IShelterPositionService positionService) { this.robotService = robotService; + this.positionService = positionService; } /** @@ -47,4 +52,14 @@ RobotInfoDTO detailDTO = robotService.robotDetail(robotId); return ResponseData.success(detailDTO); } + + /** + * 方舱位置 + */ + @GetMapping(value = "/position") + @ResponseBody + public Object position() { + ShelterPositionDTO positionDTO = positionService.selectShelterPosition(); + return ResponseData.success(positionDTO); + } } diff --git a/casic-shelter/src/main/java/com/casic/missiles/modular/system/dao/ShelterPositionMapper.java b/casic-shelter/src/main/java/com/casic/missiles/modular/system/dao/ShelterPositionMapper.java new file mode 100644 index 0000000..213d233 --- /dev/null +++ b/casic-shelter/src/main/java/com/casic/missiles/modular/system/dao/ShelterPositionMapper.java @@ -0,0 +1,18 @@ +package com.casic.missiles.modular.system.dao; + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.casic.missiles.modular.system.model.ShelterPosition; + +import java.util.List; + +/** + * @author a203 + */ +public interface ShelterPositionMapper extends BaseMapper { + /** + * 获取报警记录-分页 + * + * @return {@link List} + */ + ShelterPosition selectLastOne(); +} diff --git a/casic-shelter/src/main/java/com/casic/missiles/modular/system/dao/mapping/ShelterPositionMapper.xml b/casic-shelter/src/main/java/com/casic/missiles/modular/system/dao/mapping/ShelterPositionMapper.xml new file mode 100644 index 0000000..57f5001 --- /dev/null +++ b/casic-shelter/src/main/java/com/casic/missiles/modular/system/dao/mapping/ShelterPositionMapper.xml @@ -0,0 +1,20 @@ + + + + + + + ID AS id, + LNG AS lng, + LAT AS lat, + CREATE_TIME AS createTime + + + + \ No newline at end of file diff --git a/casic-shelter/src/main/java/com/casic/missiles/modular/system/dto/ShelterPositionDTO.java b/casic-shelter/src/main/java/com/casic/missiles/modular/system/dto/ShelterPositionDTO.java new file mode 100644 index 0000000..8b47db1 --- /dev/null +++ b/casic-shelter/src/main/java/com/casic/missiles/modular/system/dto/ShelterPositionDTO.java @@ -0,0 +1,30 @@ +package com.casic.missiles.modular.system.dto; + +import com.casic.missiles.modular.system.model.ShelterPosition; +import lombok.Data; + +/** + * @author a203 + */ +@Data +public class ShelterPositionDTO { + /** + * 经度 + */ + private Double lng; + /** + * 纬度 + */ + private Double lat; + + /** + * 时间 + */ + private String createTime; + + public ShelterPositionDTO(ShelterPosition shelterPosition) { + this.lng = shelterPosition.getLng(); + this.lat = shelterPosition.getLat(); + this.createTime = shelterPosition.getCreateTime(); + } +} diff --git a/casic-shelter/src/main/java/com/casic/missiles/modular/system/service/IShelterPositionService.java b/casic-shelter/src/main/java/com/casic/missiles/modular/system/service/IShelterPositionService.java new file mode 100644 index 0000000..dc659f6 --- /dev/null +++ b/casic-shelter/src/main/java/com/casic/missiles/modular/system/service/IShelterPositionService.java @@ -0,0 +1,17 @@ +package com.casic.missiles.modular.system.service; + +import com.baomidou.mybatisplus.extension.service.IService; +import com.casic.missiles.modular.system.dto.ShelterPositionDTO; +import com.casic.missiles.modular.system.model.ShelterPosition; + +/** + * @author a203 + */ +public interface IShelterPositionService extends IService { + /** + * 查询方舱最新位置信息 + * + * @return {@link ShelterPositionDTO} + */ + ShelterPositionDTO selectShelterPosition(); +} diff --git a/casic-shelter/src/main/java/com/casic/missiles/modular/system/service/impl/RobotServiceImpl.java b/casic-shelter/src/main/java/com/casic/missiles/modular/system/service/impl/RobotServiceImpl.java index 6ed1337..67f4ae5 100644 --- a/casic-shelter/src/main/java/com/casic/missiles/modular/system/service/impl/RobotServiceImpl.java +++ b/casic-shelter/src/main/java/com/casic/missiles/modular/system/service/impl/RobotServiceImpl.java @@ -13,7 +13,7 @@ import java.util.Map; /** - * 台风数据信息 服务实现类 + * 机器人数据信息 服务实现类 * * @author a203 */ diff --git a/casic-shelter/src/main/java/com/casic/missiles/modular/system/service/impl/ShelterPositionServiceImpl.java b/casic-shelter/src/main/java/com/casic/missiles/modular/system/service/impl/ShelterPositionServiceImpl.java new file mode 100644 index 0000000..4a04467 --- /dev/null +++ b/casic-shelter/src/main/java/com/casic/missiles/modular/system/service/impl/ShelterPositionServiceImpl.java @@ -0,0 +1,31 @@ +package com.casic.missiles.modular.system.service.impl; + +import com.alibaba.fastjson.JSON; +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.casic.missiles.modular.system.dao.ShelterPositionMapper; +import com.casic.missiles.modular.system.dto.ShelterPositionDTO; +import com.casic.missiles.modular.system.model.ShelterPosition; +import com.casic.missiles.modular.system.service.IShelterPositionService; +import lombok.extern.slf4j.Slf4j; +import org.springframework.stereotype.Service; + +/** + * 方舱位置数据信息 服务实现类 + * + * @author a203 + */ +@Slf4j +@Service +public class ShelterPositionServiceImpl extends ServiceImpl implements IShelterPositionService { + + public ShelterPositionServiceImpl() { + + } + + @Override + public ShelterPositionDTO selectShelterPosition() { + ShelterPosition shelterPosition = this.baseMapper.selectLastOne(); + log.info(JSON.toJSONString(shelterPosition)); + return new ShelterPositionDTO(shelterPosition); + } +} diff --git a/casic-shelter/src/main/java/com/casic/missiles/modular/system/utils/DecodeData.java b/casic-shelter/src/main/java/com/casic/missiles/modular/system/utils/DecodeData.java index 9cb0e99..b18e3ad 100644 --- a/casic-shelter/src/main/java/com/casic/missiles/modular/system/utils/DecodeData.java +++ b/casic-shelter/src/main/java/com/casic/missiles/modular/system/utils/DecodeData.java @@ -2,11 +2,10 @@ import com.alibaba.fastjson.JSON; import com.casic.missiles.modular.system.model.RobotInfo; +import com.casic.missiles.modular.system.model.ShelterPosition; -import java.util.ArrayList; -import java.util.HashMap; -import java.util.List; -import java.util.Map; +import java.text.SimpleDateFormat; +import java.util.*; /** * 西工大数据解析 @@ -286,16 +285,20 @@ * 编码encode * 解码decode */ - public static String decodeShelterPosition(int[] bytes) { - Map taskMap = new HashMap<>(2); + public static ShelterPosition decodeShelterPosition(int[] bytes) { + ShelterPosition shelter = new ShelterPosition(); int[] lngBytes = new int[4]; - System.arraycopy(bytes, 4, lngBytes, 0, 4); - taskMap.put("lng", String.valueOf(covertLngLat(lngBytes))); + System.arraycopy(bytes, 5, lngBytes, 0, 4); + shelter.setLng(covertLngLat(lngBytes)); int[] latBytes = new int[4]; - System.arraycopy(bytes, 8, latBytes, 0, 4); - taskMap.put("lat", String.valueOf(covertLngLat(latBytes))); - return JSON.toJSONString(taskMap); + System.arraycopy(bytes, 9, latBytes, 0, 4); + shelter.setLat(covertLngLat(latBytes)); + + Date date = new Date(); + SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss", Locale.CHINA); + shelter.setCreateTime(dateFormat.format(date)); + return shelter; } public static String formatLanLat(int[] targetBytes) { diff --git a/casic-shelter/src/main/java/com/casic/missiles/socket/service/impl/SocketServiceImpl.java b/casic-shelter/src/main/java/com/casic/missiles/socket/service/impl/SocketServiceImpl.java index 85c2bc5..5680b05 100644 --- a/casic-shelter/src/main/java/com/casic/missiles/socket/service/impl/SocketServiceImpl.java +++ b/casic-shelter/src/main/java/com/casic/missiles/socket/service/impl/SocketServiceImpl.java @@ -3,6 +3,8 @@ import com.alibaba.fastjson.JSON; import com.casic.missiles.modular.system.dto.ShipDTO; import com.casic.missiles.modular.system.dto.TyphoonDTO; +import com.casic.missiles.modular.system.model.ShelterPosition; +import com.casic.missiles.modular.system.service.IShelterPositionService; import com.casic.missiles.modular.system.service.IShipService; import com.casic.missiles.modular.system.service.ITyphoonService; import com.casic.missiles.modular.system.utils.Constant; @@ -23,13 +25,16 @@ @Service public class SocketServiceImpl implements ISocketService { - private final ITyphoonService typhoonService; private final IShipService shipService; + private final IShelterPositionService shelterPositionService; - public SocketServiceImpl(ITyphoonService typhoonService, IShipService shipService) { + public SocketServiceImpl(ITyphoonService typhoonService, + IShipService shipService, + IShelterPositionService shelterPositionService) { this.typhoonService = typhoonService; this.shipService = shipService; + this.shelterPositionService = shelterPositionService; } private boolean isCorrectData(int[] bytes) { @@ -125,7 +130,13 @@ break; case 0x07: //方舱位置 - DecodeData.decodeShelterPosition(data); + ShelterPosition shelterPosition = DecodeData.decodeShelterPosition( + new int[]{0x2A, 0x23, 0x07, 0x00, 0x00, + 0x4D, 0xBD, 0x80, 0xCF, + 0x0C, 0x5E, 0x28, 0xC2, + 0xC7, 0x16, 0x0A} + ); + shelterPositionService.save(shelterPosition); break; default: break; diff --git a/casic-web/src/main/java/com/casic/missiles/CasicApplication.java b/casic-web/src/main/java/com/casic/missiles/CasicApplication.java index 061802a..d42de7a 100644 --- a/casic-web/src/main/java/com/casic/missiles/CasicApplication.java +++ b/casic-web/src/main/java/com/casic/missiles/CasicApplication.java @@ -27,11 +27,11 @@ @EnableTransactionManagement(proxyTargetClass = true) @EnableAsync @Slf4j -@PropertySource("classpath:/config/socket.properties") +@PropertySource("classpath:/config/socket.yml") @EnableScheduling public class CasicApplication implements CommandLineRunner { - @Value("${socket.port}") + @Value("${port}") private Integer port; @Resource diff --git a/casic-web/src/main/resources/config/socket.properties b/casic-web/src/main/resources/config/socket.properties deleted file mode 100644 index 20d5b14..0000000 --- a/casic-web/src/main/resources/config/socket.properties +++ /dev/null @@ -1 +0,0 @@ -socket.port=9091 \ No newline at end of file diff --git a/casic-web/src/main/resources/config/socket.yml b/casic-web/src/main/resources/config/socket.yml new file mode 100644 index 0000000..7a9010d --- /dev/null +++ b/casic-web/src/main/resources/config/socket.yml @@ -0,0 +1,2 @@ +socket: + port:12208 \ No newline at end of file