设计权限
This commit is contained in:
@ -125,6 +125,7 @@ security:
|
|||||||
# todo 仅测试
|
# todo 仅测试
|
||||||
- /facility/matrix/**
|
- /facility/matrix/**
|
||||||
- /**/changxie/callback/**
|
- /**/changxie/callback/**
|
||||||
|
- /gps/equipment/dataAcceptance
|
||||||
|
|
||||||
# 多租户配置
|
# 多租户配置
|
||||||
tenant:
|
tenant:
|
||||||
@ -194,6 +195,7 @@ api-decrypt:
|
|||||||
- /actuator/** # 放行监控接口
|
- /actuator/** # 放行监控接口
|
||||||
- /other/ys7Device/webhook # 放行萤石云设备回调接口
|
- /other/ys7Device/webhook # 放行萤石云设备回调接口
|
||||||
- /auth/register # 放行注册接口
|
- /auth/register # 放行注册接口
|
||||||
|
- /gps/equipment/dataAcceptance # GPS数据接收接口
|
||||||
|
|
||||||
springdoc:
|
springdoc:
|
||||||
api-docs:
|
api-docs:
|
||||||
@ -269,6 +271,8 @@ springdoc:
|
|||||||
packages-to-scan: org.dromara.bigscreen
|
packages-to-scan: org.dromara.bigscreen
|
||||||
- group: 22.投标管理模块
|
- group: 22.投标管理模块
|
||||||
packages-to-scan: org.dromara.bidding
|
packages-to-scan: org.dromara.bidding
|
||||||
|
- group: 23.GPS定位模块
|
||||||
|
packages-to-scan: org.dromara.gps
|
||||||
|
|
||||||
# - group: 20.合同模块
|
# - group: 20.合同模块
|
||||||
# packages-to-scan: org.dromara.ctr
|
# packages-to-scan: org.dromara.ctr
|
||||||
|
@ -107,6 +107,7 @@ public class DesCollectController extends BaseController {
|
|||||||
/**
|
/**
|
||||||
* 批量新增或修改
|
* 批量新增或修改
|
||||||
*/
|
*/
|
||||||
|
@SaCheckPermission("design:collect:batch")
|
||||||
@RepeatSubmit()
|
@RepeatSubmit()
|
||||||
@PostMapping("/batch")
|
@PostMapping("/batch")
|
||||||
public R<Void> batchAddOrUpdate(@RequestBody DesCollectBatchDto dto) {
|
public R<Void> batchAddOrUpdate(@RequestBody DesCollectBatchDto dto) {
|
||||||
@ -118,7 +119,7 @@ public class DesCollectController extends BaseController {
|
|||||||
*
|
*
|
||||||
* @param projectId 项目ID
|
* @param projectId 项目ID
|
||||||
*/
|
*/
|
||||||
@SaCheckPermission("design:collect:query")
|
@SaCheckPermission("design:collect:byProjectId")
|
||||||
@GetMapping("/byProjectId/{projectId}")
|
@GetMapping("/byProjectId/{projectId}")
|
||||||
public R<DesCollectVo> getInfoByProjectId(@NotNull(message = "项目ID不能为空")
|
public R<DesCollectVo> getInfoByProjectId(@NotNull(message = "项目ID不能为空")
|
||||||
@PathVariable Long projectId) {
|
@PathVariable Long projectId) {
|
||||||
@ -128,7 +129,7 @@ public class DesCollectController extends BaseController {
|
|||||||
/**
|
/**
|
||||||
* 清单导出
|
* 清单导出
|
||||||
*/
|
*/
|
||||||
@SaCheckPermission("design:collect:export")
|
@SaCheckPermission("design:collect:exportWord")
|
||||||
@Log(title = "收资清单", businessType = BusinessType.EXPORT)
|
@Log(title = "收资清单", businessType = BusinessType.EXPORT)
|
||||||
@PostMapping("/exportWord")
|
@PostMapping("/exportWord")
|
||||||
public void exportWordById(Long id, HttpServletResponse response){
|
public void exportWordById(Long id, HttpServletResponse response){
|
||||||
|
@ -0,0 +1,120 @@
|
|||||||
|
package org.dromara.gps.controller;
|
||||||
|
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
|
import lombok.RequiredArgsConstructor;
|
||||||
|
import jakarta.servlet.http.HttpServletResponse;
|
||||||
|
import jakarta.validation.constraints.*;
|
||||||
|
import cn.dev33.satoken.annotation.SaCheckPermission;
|
||||||
|
import lombok.extern.slf4j.Slf4j;
|
||||||
|
import org.springframework.web.bind.annotation.*;
|
||||||
|
import org.springframework.validation.annotation.Validated;
|
||||||
|
import org.dromara.common.idempotent.annotation.RepeatSubmit;
|
||||||
|
import org.dromara.common.log.annotation.Log;
|
||||||
|
import org.dromara.common.web.core.BaseController;
|
||||||
|
import org.dromara.common.mybatis.core.page.PageQuery;
|
||||||
|
import org.dromara.common.core.domain.R;
|
||||||
|
import org.dromara.common.core.validate.AddGroup;
|
||||||
|
import org.dromara.common.core.validate.EditGroup;
|
||||||
|
import org.dromara.common.log.enums.BusinessType;
|
||||||
|
import org.dromara.common.excel.utils.ExcelUtil;
|
||||||
|
import org.dromara.gps.domain.vo.GpsEquipmentVo;
|
||||||
|
import org.dromara.gps.domain.bo.GpsEquipmentBo;
|
||||||
|
import org.dromara.gps.service.IGpsEquipmentService;
|
||||||
|
import org.dromara.common.mybatis.core.page.TableDataInfo;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* GPS设备详细
|
||||||
|
*
|
||||||
|
* @author Lion Li
|
||||||
|
* @date 2025-08-28
|
||||||
|
*/
|
||||||
|
@Validated
|
||||||
|
@RequiredArgsConstructor
|
||||||
|
@RestController
|
||||||
|
@RequestMapping("/gps/equipment")
|
||||||
|
@Slf4j
|
||||||
|
public class GpsEquipmentController extends BaseController {
|
||||||
|
|
||||||
|
private final IGpsEquipmentService gpsEquipmentService;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 接收设备数据
|
||||||
|
* @param jsonData
|
||||||
|
* @return
|
||||||
|
*/
|
||||||
|
@PostMapping("/dataAcceptance")
|
||||||
|
public R<Void> dataAcceptance(@RequestBody String jsonData) {
|
||||||
|
log.info("接收设备数据:{}", jsonData);
|
||||||
|
gpsEquipmentService.dataAcceptance(jsonData);
|
||||||
|
return toAjax(true);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 查询GPS设备详细列表
|
||||||
|
*/
|
||||||
|
@SaCheckPermission("gps:equipment:list")
|
||||||
|
@GetMapping("/list")
|
||||||
|
public TableDataInfo<GpsEquipmentVo> list(GpsEquipmentBo bo, PageQuery pageQuery) {
|
||||||
|
return gpsEquipmentService.queryPageList(bo, pageQuery);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 导出GPS设备详细列表
|
||||||
|
*/
|
||||||
|
@SaCheckPermission("gps:equipment:export")
|
||||||
|
@Log(title = "GPS设备详细", businessType = BusinessType.EXPORT)
|
||||||
|
@PostMapping("/export")
|
||||||
|
public void export(GpsEquipmentBo bo, HttpServletResponse response) {
|
||||||
|
List<GpsEquipmentVo> list = gpsEquipmentService.queryList(bo);
|
||||||
|
ExcelUtil.exportExcel(list, "GPS设备详细", GpsEquipmentVo.class, response);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 获取GPS设备详细详细信息
|
||||||
|
*
|
||||||
|
* @param id 主键
|
||||||
|
*/
|
||||||
|
@SaCheckPermission("gps:equipment:query")
|
||||||
|
@GetMapping("/{id}")
|
||||||
|
public R<GpsEquipmentVo> getInfo(@NotNull(message = "主键不能为空")
|
||||||
|
@PathVariable Long id) {
|
||||||
|
return R.ok(gpsEquipmentService.queryById(id));
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 新增GPS设备详细
|
||||||
|
*/
|
||||||
|
@SaCheckPermission("gps:equipment:add")
|
||||||
|
@Log(title = "GPS设备详细", businessType = BusinessType.INSERT)
|
||||||
|
@RepeatSubmit()
|
||||||
|
@PostMapping()
|
||||||
|
public R<Void> add(@Validated(AddGroup.class) @RequestBody GpsEquipmentBo bo) {
|
||||||
|
return toAjax(gpsEquipmentService.insertByBo(bo));
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 修改GPS设备详细
|
||||||
|
*/
|
||||||
|
@SaCheckPermission("gps:equipment:edit")
|
||||||
|
@Log(title = "GPS设备详细", businessType = BusinessType.UPDATE)
|
||||||
|
@RepeatSubmit()
|
||||||
|
@PutMapping()
|
||||||
|
public R<Void> edit(@Validated(EditGroup.class) @RequestBody GpsEquipmentBo bo) {
|
||||||
|
return toAjax(gpsEquipmentService.updateByBo(bo));
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 删除GPS设备详细
|
||||||
|
*
|
||||||
|
* @param ids 主键串
|
||||||
|
*/
|
||||||
|
@SaCheckPermission("gps:equipment:remove")
|
||||||
|
@Log(title = "GPS设备详细", businessType = BusinessType.DELETE)
|
||||||
|
@DeleteMapping("/{ids}")
|
||||||
|
public R<Void> remove(@NotEmpty(message = "主键不能为空")
|
||||||
|
@PathVariable Long[] ids) {
|
||||||
|
return toAjax(gpsEquipmentService.deleteWithValidByIds(List.of(ids), true));
|
||||||
|
}
|
||||||
|
}
|
@ -0,0 +1,105 @@
|
|||||||
|
package org.dromara.gps.controller;
|
||||||
|
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
|
import lombok.RequiredArgsConstructor;
|
||||||
|
import jakarta.servlet.http.HttpServletResponse;
|
||||||
|
import jakarta.validation.constraints.*;
|
||||||
|
import cn.dev33.satoken.annotation.SaCheckPermission;
|
||||||
|
import org.springframework.web.bind.annotation.*;
|
||||||
|
import org.springframework.validation.annotation.Validated;
|
||||||
|
import org.dromara.common.idempotent.annotation.RepeatSubmit;
|
||||||
|
import org.dromara.common.log.annotation.Log;
|
||||||
|
import org.dromara.common.web.core.BaseController;
|
||||||
|
import org.dromara.common.mybatis.core.page.PageQuery;
|
||||||
|
import org.dromara.common.core.domain.R;
|
||||||
|
import org.dromara.common.core.validate.AddGroup;
|
||||||
|
import org.dromara.common.core.validate.EditGroup;
|
||||||
|
import org.dromara.common.log.enums.BusinessType;
|
||||||
|
import org.dromara.common.excel.utils.ExcelUtil;
|
||||||
|
import org.dromara.gps.domain.vo.GpsEquipmentSonVo;
|
||||||
|
import org.dromara.gps.domain.bo.GpsEquipmentSonBo;
|
||||||
|
import org.dromara.gps.service.IGpsEquipmentSonService;
|
||||||
|
import org.dromara.common.mybatis.core.page.TableDataInfo;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* GPS设备定位信息
|
||||||
|
*
|
||||||
|
* @author Lion Li
|
||||||
|
* @date 2025-08-28
|
||||||
|
*/
|
||||||
|
@Validated
|
||||||
|
@RequiredArgsConstructor
|
||||||
|
@RestController
|
||||||
|
@RequestMapping("/gps/equipmentSon")
|
||||||
|
public class GpsEquipmentSonController extends BaseController {
|
||||||
|
|
||||||
|
private final IGpsEquipmentSonService gpsEquipmentSonService;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 查询GPS设备定位信息列表
|
||||||
|
*/
|
||||||
|
@SaCheckPermission("gps:equipmentSon:list")
|
||||||
|
@GetMapping("/list")
|
||||||
|
public TableDataInfo<GpsEquipmentSonVo> list(GpsEquipmentSonBo bo, PageQuery pageQuery) {
|
||||||
|
return gpsEquipmentSonService.queryPageList(bo, pageQuery);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 导出GPS设备定位信息列表
|
||||||
|
*/
|
||||||
|
@SaCheckPermission("gps:equipmentSon:export")
|
||||||
|
@Log(title = "GPS设备定位信息", businessType = BusinessType.EXPORT)
|
||||||
|
@PostMapping("/export")
|
||||||
|
public void export(GpsEquipmentSonBo bo, HttpServletResponse response) {
|
||||||
|
List<GpsEquipmentSonVo> list = gpsEquipmentSonService.queryList(bo);
|
||||||
|
ExcelUtil.exportExcel(list, "GPS设备定位信息", GpsEquipmentSonVo.class, response);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 获取GPS设备定位信息详细信息
|
||||||
|
*
|
||||||
|
* @param id 主键
|
||||||
|
*/
|
||||||
|
@SaCheckPermission("gps:equipmentSon:query")
|
||||||
|
@GetMapping("/{id}")
|
||||||
|
public R<GpsEquipmentSonVo> getInfo(@NotNull(message = "主键不能为空")
|
||||||
|
@PathVariable Long id) {
|
||||||
|
return R.ok(gpsEquipmentSonService.queryById(id));
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 新增GPS设备定位信息
|
||||||
|
*/
|
||||||
|
@SaCheckPermission("gps:equipmentSon:add")
|
||||||
|
@Log(title = "GPS设备定位信息", businessType = BusinessType.INSERT)
|
||||||
|
@RepeatSubmit()
|
||||||
|
@PostMapping()
|
||||||
|
public R<Void> add(@Validated(AddGroup.class) @RequestBody GpsEquipmentSonBo bo) {
|
||||||
|
return toAjax(gpsEquipmentSonService.insertByBo(bo));
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 修改GPS设备定位信息
|
||||||
|
*/
|
||||||
|
@SaCheckPermission("gps:equipmentSon:edit")
|
||||||
|
@Log(title = "GPS设备定位信息", businessType = BusinessType.UPDATE)
|
||||||
|
@RepeatSubmit()
|
||||||
|
@PutMapping()
|
||||||
|
public R<Void> edit(@Validated(EditGroup.class) @RequestBody GpsEquipmentSonBo bo) {
|
||||||
|
return toAjax(gpsEquipmentSonService.updateByBo(bo));
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 删除GPS设备定位信息
|
||||||
|
*
|
||||||
|
* @param ids 主键串
|
||||||
|
*/
|
||||||
|
@SaCheckPermission("gps:equipmentSon:remove")
|
||||||
|
@Log(title = "GPS设备定位信息", businessType = BusinessType.DELETE)
|
||||||
|
@DeleteMapping("/{ids}")
|
||||||
|
public R<Void> remove(@NotEmpty(message = "主键不能为空")
|
||||||
|
@PathVariable Long[] ids) {
|
||||||
|
return toAjax(gpsEquipmentSonService.deleteWithValidByIds(List.of(ids), true));
|
||||||
|
}
|
||||||
|
}
|
@ -0,0 +1,105 @@
|
|||||||
|
package org.dromara.gps.controller;
|
||||||
|
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
|
import lombok.RequiredArgsConstructor;
|
||||||
|
import jakarta.servlet.http.HttpServletResponse;
|
||||||
|
import jakarta.validation.constraints.*;
|
||||||
|
import cn.dev33.satoken.annotation.SaCheckPermission;
|
||||||
|
import org.springframework.web.bind.annotation.*;
|
||||||
|
import org.springframework.validation.annotation.Validated;
|
||||||
|
import org.dromara.common.idempotent.annotation.RepeatSubmit;
|
||||||
|
import org.dromara.common.log.annotation.Log;
|
||||||
|
import org.dromara.common.web.core.BaseController;
|
||||||
|
import org.dromara.common.mybatis.core.page.PageQuery;
|
||||||
|
import org.dromara.common.core.domain.R;
|
||||||
|
import org.dromara.common.core.validate.AddGroup;
|
||||||
|
import org.dromara.common.core.validate.EditGroup;
|
||||||
|
import org.dromara.common.log.enums.BusinessType;
|
||||||
|
import org.dromara.common.excel.utils.ExcelUtil;
|
||||||
|
import org.dromara.gps.domain.vo.GpsManmachineVo;
|
||||||
|
import org.dromara.gps.domain.bo.GpsManmachineBo;
|
||||||
|
import org.dromara.gps.service.IGpsManmachineService;
|
||||||
|
import org.dromara.common.mybatis.core.page.TableDataInfo;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* GPS人机关联
|
||||||
|
*
|
||||||
|
* @author Lion Li
|
||||||
|
* @date 2025-08-28
|
||||||
|
*/
|
||||||
|
@Validated
|
||||||
|
@RequiredArgsConstructor
|
||||||
|
@RestController
|
||||||
|
@RequestMapping("/gps/manmachine")
|
||||||
|
public class GpsManmachineController extends BaseController {
|
||||||
|
|
||||||
|
private final IGpsManmachineService gpsManmachineService;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 查询GPS人机关联列表
|
||||||
|
*/
|
||||||
|
@SaCheckPermission("gps:manmachine:list")
|
||||||
|
@GetMapping("/list")
|
||||||
|
public TableDataInfo<GpsManmachineVo> list(GpsManmachineBo bo, PageQuery pageQuery) {
|
||||||
|
return gpsManmachineService.queryPageList(bo, pageQuery);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 导出GPS人机关联列表
|
||||||
|
*/
|
||||||
|
@SaCheckPermission("gps:manmachine:export")
|
||||||
|
@Log(title = "GPS人机关联", businessType = BusinessType.EXPORT)
|
||||||
|
@PostMapping("/export")
|
||||||
|
public void export(GpsManmachineBo bo, HttpServletResponse response) {
|
||||||
|
List<GpsManmachineVo> list = gpsManmachineService.queryList(bo);
|
||||||
|
ExcelUtil.exportExcel(list, "GPS人机关联", GpsManmachineVo.class, response);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 获取GPS人机关联详细信息
|
||||||
|
*
|
||||||
|
* @param clientId 主键
|
||||||
|
*/
|
||||||
|
@SaCheckPermission("gps:manmachine:query")
|
||||||
|
@GetMapping("/{clientId}")
|
||||||
|
public R<GpsManmachineVo> getInfo(@NotNull(message = "主键不能为空")
|
||||||
|
@PathVariable String clientId) {
|
||||||
|
return R.ok(gpsManmachineService.queryById(clientId));
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 新增GPS人机关联
|
||||||
|
*/
|
||||||
|
@SaCheckPermission("gps:manmachine:add")
|
||||||
|
@Log(title = "GPS人机关联", businessType = BusinessType.INSERT)
|
||||||
|
@RepeatSubmit()
|
||||||
|
@PostMapping()
|
||||||
|
public R<Void> add(@Validated(AddGroup.class) @RequestBody GpsManmachineBo bo) {
|
||||||
|
return toAjax(gpsManmachineService.insertByBo(bo));
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 修改GPS人机关联
|
||||||
|
*/
|
||||||
|
@SaCheckPermission("gps:manmachine:edit")
|
||||||
|
@Log(title = "GPS人机关联", businessType = BusinessType.UPDATE)
|
||||||
|
@RepeatSubmit()
|
||||||
|
@PutMapping()
|
||||||
|
public R<Void> edit(@Validated(EditGroup.class) @RequestBody GpsManmachineBo bo) {
|
||||||
|
return toAjax(gpsManmachineService.updateByBo(bo));
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 删除GPS人机关联
|
||||||
|
*
|
||||||
|
* @param clientIds 主键串
|
||||||
|
*/
|
||||||
|
@SaCheckPermission("gps:manmachine:remove")
|
||||||
|
@Log(title = "GPS人机关联", businessType = BusinessType.DELETE)
|
||||||
|
@DeleteMapping("/{clientIds}")
|
||||||
|
public R<Void> remove(@NotEmpty(message = "主键不能为空")
|
||||||
|
@PathVariable String[] clientIds) {
|
||||||
|
return toAjax(gpsManmachineService.deleteWithValidByIds(List.of(clientIds), true));
|
||||||
|
}
|
||||||
|
}
|
@ -0,0 +1,81 @@
|
|||||||
|
package org.dromara.gps.domain;
|
||||||
|
|
||||||
|
import org.dromara.common.mybatis.core.domain.BaseEntity;
|
||||||
|
import com.baomidou.mybatisplus.annotation.*;
|
||||||
|
import lombok.Data;
|
||||||
|
import lombok.EqualsAndHashCode;
|
||||||
|
|
||||||
|
import java.io.Serial;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* GPS设备详细对象 gps_equipment
|
||||||
|
*
|
||||||
|
* @author Lion Li
|
||||||
|
* @date 2025-08-28
|
||||||
|
*/
|
||||||
|
@Data
|
||||||
|
@EqualsAndHashCode(callSuper = true)
|
||||||
|
@TableName("gps_equipment")
|
||||||
|
public class GpsEquipment extends BaseEntity {
|
||||||
|
|
||||||
|
@Serial
|
||||||
|
private static final long serialVersionUID = 1L;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 主键ID
|
||||||
|
*/
|
||||||
|
@TableId(value = "id")
|
||||||
|
private Long id;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 项目ID
|
||||||
|
*/
|
||||||
|
private Long projectId;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 用户id
|
||||||
|
*/
|
||||||
|
private Long userId;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 设备标识
|
||||||
|
*/
|
||||||
|
private String clientId;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 设备名称
|
||||||
|
*/
|
||||||
|
private String deviceName;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 是否使用UDP协议:0=否,1=是
|
||||||
|
*/
|
||||||
|
private Long udp;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 远程连接地址(IP:端口)
|
||||||
|
*/
|
||||||
|
private String remoteAddressStr;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 连接创建时间
|
||||||
|
*/
|
||||||
|
private Long creationTime;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 最后活动时间
|
||||||
|
*/
|
||||||
|
private Long lastAccessedTime;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 是否已注册:0=未注册,1=已注册
|
||||||
|
*/
|
||||||
|
private Long registered;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 备注
|
||||||
|
*/
|
||||||
|
private String remark;
|
||||||
|
|
||||||
|
|
||||||
|
}
|
@ -0,0 +1,116 @@
|
|||||||
|
package org.dromara.gps.domain;
|
||||||
|
|
||||||
|
import org.dromara.common.mybatis.core.domain.BaseEntity;
|
||||||
|
import com.baomidou.mybatisplus.annotation.*;
|
||||||
|
import lombok.Data;
|
||||||
|
import lombok.EqualsAndHashCode;
|
||||||
|
|
||||||
|
import java.io.Serial;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* GPS设备定位信息对象 gps_equipment_son
|
||||||
|
*
|
||||||
|
* @author Lion Li
|
||||||
|
* @date 2025-08-28
|
||||||
|
*/
|
||||||
|
@Data
|
||||||
|
@EqualsAndHashCode(callSuper = true)
|
||||||
|
@TableName("gps_equipment_son")
|
||||||
|
public class GpsEquipmentSon extends BaseEntity {
|
||||||
|
|
||||||
|
@Serial
|
||||||
|
private static final long serialVersionUID = 1L;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 主键ID
|
||||||
|
*/
|
||||||
|
@TableId(value = "id")
|
||||||
|
private Long id;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 用户ID
|
||||||
|
*/
|
||||||
|
private Long userId;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 设备标识
|
||||||
|
*/
|
||||||
|
private String clientId;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 设备名称
|
||||||
|
*/
|
||||||
|
private String deviceName;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 设备硬件ID
|
||||||
|
*/
|
||||||
|
private String deviceId;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 设备关联手机号(可为空,无手机号设备用)
|
||||||
|
*/
|
||||||
|
private String mobileNo;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 车牌号码(车辆类设备用,可为空)
|
||||||
|
*/
|
||||||
|
private String plateNo;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 通信协议版本号
|
||||||
|
*/
|
||||||
|
private Long protocolVersion;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 定位告警标识位:0=无告警
|
||||||
|
*/
|
||||||
|
private Long locWarnBit;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 定位状态标识位(协议编码值)
|
||||||
|
*/
|
||||||
|
private Long locStatusBit;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 纬度(精确到6位小数)
|
||||||
|
*/
|
||||||
|
private Long locLatitude;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 经度(精确到6位小数)
|
||||||
|
*/
|
||||||
|
private Long locLongitude;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 海拔高度(单位未明确,默认0)
|
||||||
|
*/
|
||||||
|
private Long locAltitude;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 原始速度(单位未明确)
|
||||||
|
*/
|
||||||
|
private Long locSpeed;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 速度(千米/小时,Kph)
|
||||||
|
*/
|
||||||
|
private Long locSpeedKph;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 行进方向(0-360度)
|
||||||
|
*/
|
||||||
|
private Long locDirection;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 设备定位数据采集时间(支持毫秒级,ISO 8601格式转换后)
|
||||||
|
*/
|
||||||
|
private Long locDeviceTime;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 备注
|
||||||
|
*/
|
||||||
|
private String remark;
|
||||||
|
|
||||||
|
|
||||||
|
}
|
@ -0,0 +1,36 @@
|
|||||||
|
package org.dromara.gps.domain;
|
||||||
|
|
||||||
|
import org.dromara.common.mybatis.core.domain.BaseEntity;
|
||||||
|
import com.baomidou.mybatisplus.annotation.*;
|
||||||
|
import lombok.Data;
|
||||||
|
import lombok.EqualsAndHashCode;
|
||||||
|
|
||||||
|
import java.io.Serial;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* GPS人机关联对象 gps_manmachine
|
||||||
|
*
|
||||||
|
* @author Lion Li
|
||||||
|
* @date 2025-08-28
|
||||||
|
*/
|
||||||
|
@Data
|
||||||
|
@EqualsAndHashCode(callSuper = true)
|
||||||
|
@TableName("gps_manmachine")
|
||||||
|
public class GpsManmachine extends BaseEntity {
|
||||||
|
|
||||||
|
@Serial
|
||||||
|
private static final long serialVersionUID = 1L;
|
||||||
|
|
||||||
|
/**
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
@TableId(value = "client_id")
|
||||||
|
private String clientId;
|
||||||
|
|
||||||
|
/**
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
private Long userId;
|
||||||
|
|
||||||
|
|
||||||
|
}
|
@ -0,0 +1,80 @@
|
|||||||
|
package org.dromara.gps.domain.bo;
|
||||||
|
|
||||||
|
import org.dromara.gps.domain.GpsEquipment;
|
||||||
|
import org.dromara.common.mybatis.core.domain.BaseEntity;
|
||||||
|
import org.dromara.common.core.validate.AddGroup;
|
||||||
|
import org.dromara.common.core.validate.EditGroup;
|
||||||
|
import io.github.linpeilie.annotations.AutoMapper;
|
||||||
|
import lombok.Data;
|
||||||
|
import lombok.EqualsAndHashCode;
|
||||||
|
import jakarta.validation.constraints.*;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* GPS设备详细业务对象 gps_equipment
|
||||||
|
*
|
||||||
|
* @author Lion Li
|
||||||
|
* @date 2025-08-28
|
||||||
|
*/
|
||||||
|
@Data
|
||||||
|
@EqualsAndHashCode(callSuper = true)
|
||||||
|
@AutoMapper(target = GpsEquipment.class, reverseConvertGenerate = false)
|
||||||
|
public class GpsEquipmentBo extends BaseEntity {
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 主键ID
|
||||||
|
*/
|
||||||
|
@NotNull(message = "主键ID不能为空", groups = { EditGroup.class })
|
||||||
|
private Long id;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 项目ID
|
||||||
|
*/
|
||||||
|
private Long projectId;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 用户id
|
||||||
|
*/
|
||||||
|
private Long userId;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 设备标识
|
||||||
|
*/
|
||||||
|
private String clientId;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 设备名称
|
||||||
|
*/
|
||||||
|
private String deviceName;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 是否使用UDP协议:0=否,1=是
|
||||||
|
*/
|
||||||
|
private Long udp;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 远程连接地址(IP:端口)
|
||||||
|
*/
|
||||||
|
private String remoteAddressStr;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 连接创建时间
|
||||||
|
*/
|
||||||
|
private Long creationTime;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 最后活动时间
|
||||||
|
*/
|
||||||
|
private Long lastAccessedTime;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 是否已注册:0=未注册,1=已注册
|
||||||
|
*/
|
||||||
|
private Long registered;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 备注
|
||||||
|
*/
|
||||||
|
private String remark;
|
||||||
|
|
||||||
|
|
||||||
|
}
|
@ -0,0 +1,115 @@
|
|||||||
|
package org.dromara.gps.domain.bo;
|
||||||
|
|
||||||
|
import org.dromara.gps.domain.GpsEquipmentSon;
|
||||||
|
import org.dromara.common.mybatis.core.domain.BaseEntity;
|
||||||
|
import org.dromara.common.core.validate.AddGroup;
|
||||||
|
import org.dromara.common.core.validate.EditGroup;
|
||||||
|
import io.github.linpeilie.annotations.AutoMapper;
|
||||||
|
import lombok.Data;
|
||||||
|
import lombok.EqualsAndHashCode;
|
||||||
|
import jakarta.validation.constraints.*;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* GPS设备定位信息业务对象 gps_equipment_son
|
||||||
|
*
|
||||||
|
* @author Lion Li
|
||||||
|
* @date 2025-08-28
|
||||||
|
*/
|
||||||
|
@Data
|
||||||
|
@EqualsAndHashCode(callSuper = true)
|
||||||
|
@AutoMapper(target = GpsEquipmentSon.class, reverseConvertGenerate = false)
|
||||||
|
public class GpsEquipmentSonBo extends BaseEntity {
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 主键ID
|
||||||
|
*/
|
||||||
|
@NotNull(message = "主键ID不能为空", groups = { EditGroup.class })
|
||||||
|
private Long id;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 用户ID
|
||||||
|
*/
|
||||||
|
private Long userId;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 设备标识
|
||||||
|
*/
|
||||||
|
private String clientId;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 设备名称
|
||||||
|
*/
|
||||||
|
private String deviceName;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 设备硬件ID
|
||||||
|
*/
|
||||||
|
private String deviceId;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 设备关联手机号(可为空,无手机号设备用)
|
||||||
|
*/
|
||||||
|
private String mobileNo;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 车牌号码(车辆类设备用,可为空)
|
||||||
|
*/
|
||||||
|
private String plateNo;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 通信协议版本号
|
||||||
|
*/
|
||||||
|
private Long protocolVersion;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 定位告警标识位:0=无告警
|
||||||
|
*/
|
||||||
|
private Long locWarnBit;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 定位状态标识位(协议编码值)
|
||||||
|
*/
|
||||||
|
private Long locStatusBit;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 纬度(精确到6位小数)
|
||||||
|
*/
|
||||||
|
private Long locLatitude;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 经度(精确到6位小数)
|
||||||
|
*/
|
||||||
|
private Long locLongitude;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 海拔高度(单位未明确,默认0)
|
||||||
|
*/
|
||||||
|
private Long locAltitude;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 原始速度(单位未明确)
|
||||||
|
*/
|
||||||
|
private Long locSpeed;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 速度(千米/小时,Kph)
|
||||||
|
*/
|
||||||
|
private Long locSpeedKph;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 行进方向(0-360度)
|
||||||
|
*/
|
||||||
|
private Long locDirection;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 设备定位数据采集时间(支持毫秒级,ISO 8601格式转换后)
|
||||||
|
*/
|
||||||
|
private Long locDeviceTime;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 备注
|
||||||
|
*/
|
||||||
|
private String remark;
|
||||||
|
|
||||||
|
|
||||||
|
}
|
@ -0,0 +1,35 @@
|
|||||||
|
package org.dromara.gps.domain.bo;
|
||||||
|
|
||||||
|
import org.dromara.gps.domain.GpsManmachine;
|
||||||
|
import org.dromara.common.mybatis.core.domain.BaseEntity;
|
||||||
|
import org.dromara.common.core.validate.AddGroup;
|
||||||
|
import org.dromara.common.core.validate.EditGroup;
|
||||||
|
import io.github.linpeilie.annotations.AutoMapper;
|
||||||
|
import lombok.Data;
|
||||||
|
import lombok.EqualsAndHashCode;
|
||||||
|
import jakarta.validation.constraints.*;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* GPS人机关联业务对象 gps_manmachine
|
||||||
|
*
|
||||||
|
* @author Lion Li
|
||||||
|
* @date 2025-08-28
|
||||||
|
*/
|
||||||
|
@Data
|
||||||
|
@EqualsAndHashCode(callSuper = true)
|
||||||
|
@AutoMapper(target = GpsManmachine.class, reverseConvertGenerate = false)
|
||||||
|
public class GpsManmachineBo extends BaseEntity {
|
||||||
|
|
||||||
|
/**
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
@NotBlank(message = "不能为空", groups = { EditGroup.class })
|
||||||
|
private String clientId;
|
||||||
|
|
||||||
|
/**
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
private Long userId;
|
||||||
|
|
||||||
|
|
||||||
|
}
|
@ -0,0 +1,150 @@
|
|||||||
|
package org.dromara.gps.domain.vo;
|
||||||
|
|
||||||
|
import org.dromara.gps.domain.GpsEquipmentSon;
|
||||||
|
import com.alibaba.excel.annotation.ExcelIgnoreUnannotated;
|
||||||
|
import com.alibaba.excel.annotation.ExcelProperty;
|
||||||
|
import org.dromara.common.excel.annotation.ExcelDictFormat;
|
||||||
|
import org.dromara.common.excel.convert.ExcelDictConvert;
|
||||||
|
import io.github.linpeilie.annotations.AutoMapper;
|
||||||
|
import lombok.Data;
|
||||||
|
|
||||||
|
import java.io.Serial;
|
||||||
|
import java.io.Serializable;
|
||||||
|
import java.util.Date;
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* GPS设备定位信息视图对象 gps_equipment_son
|
||||||
|
*
|
||||||
|
* @author Lion Li
|
||||||
|
* @date 2025-08-28
|
||||||
|
*/
|
||||||
|
@Data
|
||||||
|
@ExcelIgnoreUnannotated
|
||||||
|
@AutoMapper(target = GpsEquipmentSon.class)
|
||||||
|
public class GpsEquipmentSonVo implements Serializable {
|
||||||
|
|
||||||
|
@Serial
|
||||||
|
private static final long serialVersionUID = 1L;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 主键ID
|
||||||
|
*/
|
||||||
|
@ExcelProperty(value = "主键ID")
|
||||||
|
private Long id;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 用户ID
|
||||||
|
*/
|
||||||
|
@ExcelProperty(value = "用户ID")
|
||||||
|
private Long userId;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 设备标识
|
||||||
|
*/
|
||||||
|
@ExcelProperty(value = "设备标识")
|
||||||
|
private String clientId;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 设备名称
|
||||||
|
*/
|
||||||
|
@ExcelProperty(value = "设备名称")
|
||||||
|
private String deviceName;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 设备硬件ID
|
||||||
|
*/
|
||||||
|
@ExcelProperty(value = "设备硬件ID")
|
||||||
|
private String deviceId;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 设备关联手机号(可为空,无手机号设备用)
|
||||||
|
*/
|
||||||
|
@ExcelProperty(value = "设备关联手机号", converter = ExcelDictConvert.class)
|
||||||
|
@ExcelDictFormat(readConverterExp = "可=为空,无手机号设备用")
|
||||||
|
private String mobileNo;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 车牌号码(车辆类设备用,可为空)
|
||||||
|
*/
|
||||||
|
@ExcelProperty(value = "车牌号码", converter = ExcelDictConvert.class)
|
||||||
|
@ExcelDictFormat(readConverterExp = "车=辆类设备用,可为空")
|
||||||
|
private String plateNo;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 通信协议版本号
|
||||||
|
*/
|
||||||
|
@ExcelProperty(value = "通信协议版本号")
|
||||||
|
private Long protocolVersion;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 定位告警标识位:0=无告警
|
||||||
|
*/
|
||||||
|
@ExcelProperty(value = "定位告警标识位:0=无告警")
|
||||||
|
private Long locWarnBit;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 定位状态标识位(协议编码值)
|
||||||
|
*/
|
||||||
|
@ExcelProperty(value = "定位状态标识位", converter = ExcelDictConvert.class)
|
||||||
|
@ExcelDictFormat(readConverterExp = "协=议编码值")
|
||||||
|
private Long locStatusBit;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 纬度(精确到6位小数)
|
||||||
|
*/
|
||||||
|
@ExcelProperty(value = "纬度", converter = ExcelDictConvert.class)
|
||||||
|
@ExcelDictFormat(readConverterExp = "精=确到6位小数")
|
||||||
|
private Long locLatitude;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 经度(精确到6位小数)
|
||||||
|
*/
|
||||||
|
@ExcelProperty(value = "经度", converter = ExcelDictConvert.class)
|
||||||
|
@ExcelDictFormat(readConverterExp = "精=确到6位小数")
|
||||||
|
private Long locLongitude;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 海拔高度(单位未明确,默认0)
|
||||||
|
*/
|
||||||
|
@ExcelProperty(value = "海拔高度", converter = ExcelDictConvert.class)
|
||||||
|
@ExcelDictFormat(readConverterExp = "单=位未明确,默认0")
|
||||||
|
private Long locAltitude;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 原始速度(单位未明确)
|
||||||
|
*/
|
||||||
|
@ExcelProperty(value = "原始速度", converter = ExcelDictConvert.class)
|
||||||
|
@ExcelDictFormat(readConverterExp = "单=位未明确")
|
||||||
|
private Long locSpeed;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 速度(千米/小时,Kph)
|
||||||
|
*/
|
||||||
|
@ExcelProperty(value = "速度", converter = ExcelDictConvert.class)
|
||||||
|
@ExcelDictFormat(readConverterExp = "千=米/小时,Kph")
|
||||||
|
private Long locSpeedKph;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 行进方向(0-360度)
|
||||||
|
*/
|
||||||
|
@ExcelProperty(value = "行进方向", converter = ExcelDictConvert.class)
|
||||||
|
@ExcelDictFormat(readConverterExp = "0=-360度")
|
||||||
|
private Long locDirection;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 设备定位数据采集时间(支持毫秒级,ISO 8601格式转换后)
|
||||||
|
*/
|
||||||
|
@ExcelProperty(value = "设备定位数据采集时间", converter = ExcelDictConvert.class)
|
||||||
|
@ExcelDictFormat(readConverterExp = "支=持毫秒级,ISO,8=601格式转换后")
|
||||||
|
private Long locDeviceTime;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 备注
|
||||||
|
*/
|
||||||
|
@ExcelProperty(value = "备注")
|
||||||
|
private String remark;
|
||||||
|
|
||||||
|
|
||||||
|
}
|
@ -0,0 +1,99 @@
|
|||||||
|
package org.dromara.gps.domain.vo;
|
||||||
|
|
||||||
|
import org.dromara.gps.domain.GpsEquipment;
|
||||||
|
import com.alibaba.excel.annotation.ExcelIgnoreUnannotated;
|
||||||
|
import com.alibaba.excel.annotation.ExcelProperty;
|
||||||
|
import org.dromara.common.excel.annotation.ExcelDictFormat;
|
||||||
|
import org.dromara.common.excel.convert.ExcelDictConvert;
|
||||||
|
import io.github.linpeilie.annotations.AutoMapper;
|
||||||
|
import lombok.Data;
|
||||||
|
|
||||||
|
import java.io.Serial;
|
||||||
|
import java.io.Serializable;
|
||||||
|
import java.util.Date;
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* GPS设备详细视图对象 gps_equipment
|
||||||
|
*
|
||||||
|
* @author Lion Li
|
||||||
|
* @date 2025-08-28
|
||||||
|
*/
|
||||||
|
@Data
|
||||||
|
@ExcelIgnoreUnannotated
|
||||||
|
@AutoMapper(target = GpsEquipment.class)
|
||||||
|
public class GpsEquipmentVo implements Serializable {
|
||||||
|
|
||||||
|
@Serial
|
||||||
|
private static final long serialVersionUID = 1L;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 主键ID
|
||||||
|
*/
|
||||||
|
@ExcelProperty(value = "主键ID")
|
||||||
|
private Long id;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 项目ID
|
||||||
|
*/
|
||||||
|
@ExcelProperty(value = "项目ID")
|
||||||
|
private Long projectId;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 用户id
|
||||||
|
*/
|
||||||
|
@ExcelProperty(value = "用户id")
|
||||||
|
private Long userId;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 设备标识
|
||||||
|
*/
|
||||||
|
@ExcelProperty(value = "设备标识")
|
||||||
|
private String clientId;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 设备名称
|
||||||
|
*/
|
||||||
|
@ExcelProperty(value = "设备名称")
|
||||||
|
private String deviceName;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 是否使用UDP协议:0=否,1=是
|
||||||
|
*/
|
||||||
|
@ExcelProperty(value = "是否使用UDP协议:0=否,1=是")
|
||||||
|
private Long udp;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 远程连接地址(IP:端口)
|
||||||
|
*/
|
||||||
|
@ExcelProperty(value = "远程连接地址", converter = ExcelDictConvert.class)
|
||||||
|
@ExcelDictFormat(readConverterExp = "I=P:端口")
|
||||||
|
private String remoteAddressStr;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 连接创建时间
|
||||||
|
*/
|
||||||
|
@ExcelProperty(value = "连接创建时间")
|
||||||
|
private Long creationTime;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 最后活动时间
|
||||||
|
*/
|
||||||
|
@ExcelProperty(value = "最后活动时间")
|
||||||
|
private Long lastAccessedTime;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 是否已注册:0=未注册,1=已注册
|
||||||
|
*/
|
||||||
|
@ExcelProperty(value = "是否已注册:0=未注册,1=已注册")
|
||||||
|
private Long registered;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 备注
|
||||||
|
*/
|
||||||
|
@ExcelProperty(value = "备注")
|
||||||
|
private String remark;
|
||||||
|
|
||||||
|
|
||||||
|
}
|
@ -0,0 +1,44 @@
|
|||||||
|
package org.dromara.gps.domain.vo;
|
||||||
|
|
||||||
|
import org.dromara.gps.domain.GpsManmachine;
|
||||||
|
import com.alibaba.excel.annotation.ExcelIgnoreUnannotated;
|
||||||
|
import com.alibaba.excel.annotation.ExcelProperty;
|
||||||
|
import org.dromara.common.excel.annotation.ExcelDictFormat;
|
||||||
|
import org.dromara.common.excel.convert.ExcelDictConvert;
|
||||||
|
import io.github.linpeilie.annotations.AutoMapper;
|
||||||
|
import lombok.Data;
|
||||||
|
|
||||||
|
import java.io.Serial;
|
||||||
|
import java.io.Serializable;
|
||||||
|
import java.util.Date;
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* GPS人机关联视图对象 gps_manmachine
|
||||||
|
*
|
||||||
|
* @author Lion Li
|
||||||
|
* @date 2025-08-28
|
||||||
|
*/
|
||||||
|
@Data
|
||||||
|
@ExcelIgnoreUnannotated
|
||||||
|
@AutoMapper(target = GpsManmachine.class)
|
||||||
|
public class GpsManmachineVo implements Serializable {
|
||||||
|
|
||||||
|
@Serial
|
||||||
|
private static final long serialVersionUID = 1L;
|
||||||
|
|
||||||
|
/**
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
@ExcelProperty(value = "")
|
||||||
|
private String clientId;
|
||||||
|
|
||||||
|
/**
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
@ExcelProperty(value = "")
|
||||||
|
private Long userId;
|
||||||
|
|
||||||
|
|
||||||
|
}
|
@ -0,0 +1,15 @@
|
|||||||
|
package org.dromara.gps.mapper;
|
||||||
|
|
||||||
|
import org.dromara.gps.domain.GpsEquipment;
|
||||||
|
import org.dromara.gps.domain.vo.GpsEquipmentVo;
|
||||||
|
import org.dromara.common.mybatis.core.mapper.BaseMapperPlus;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* GPS设备详细Mapper接口
|
||||||
|
*
|
||||||
|
* @author Lion Li
|
||||||
|
* @date 2025-08-28
|
||||||
|
*/
|
||||||
|
public interface GpsEquipmentMapper extends BaseMapperPlus<GpsEquipment, GpsEquipmentVo> {
|
||||||
|
|
||||||
|
}
|
@ -0,0 +1,15 @@
|
|||||||
|
package org.dromara.gps.mapper;
|
||||||
|
|
||||||
|
import org.dromara.gps.domain.GpsEquipmentSon;
|
||||||
|
import org.dromara.gps.domain.vo.GpsEquipmentSonVo;
|
||||||
|
import org.dromara.common.mybatis.core.mapper.BaseMapperPlus;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* GPS设备定位信息Mapper接口
|
||||||
|
*
|
||||||
|
* @author Lion Li
|
||||||
|
* @date 2025-08-28
|
||||||
|
*/
|
||||||
|
public interface GpsEquipmentSonMapper extends BaseMapperPlus<GpsEquipmentSon, GpsEquipmentSonVo> {
|
||||||
|
|
||||||
|
}
|
@ -0,0 +1,15 @@
|
|||||||
|
package org.dromara.gps.mapper;
|
||||||
|
|
||||||
|
import org.dromara.gps.domain.GpsManmachine;
|
||||||
|
import org.dromara.gps.domain.vo.GpsManmachineVo;
|
||||||
|
import org.dromara.common.mybatis.core.mapper.BaseMapperPlus;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* GPS人机关联Mapper接口
|
||||||
|
*
|
||||||
|
* @author Lion Li
|
||||||
|
* @date 2025-08-28
|
||||||
|
*/
|
||||||
|
public interface GpsManmachineMapper extends BaseMapperPlus<GpsManmachine, GpsManmachineVo> {
|
||||||
|
|
||||||
|
}
|
@ -0,0 +1,76 @@
|
|||||||
|
package org.dromara.gps.service;
|
||||||
|
|
||||||
|
import org.dromara.gps.domain.vo.GpsEquipmentVo;
|
||||||
|
import org.dromara.gps.domain.bo.GpsEquipmentBo;
|
||||||
|
import org.dromara.gps.domain.GpsEquipment;
|
||||||
|
import org.dromara.common.mybatis.core.page.TableDataInfo;
|
||||||
|
import org.dromara.common.mybatis.core.page.PageQuery;
|
||||||
|
|
||||||
|
import com.baomidou.mybatisplus.extension.service.IService;
|
||||||
|
import java.util.Collection;
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* GPS设备详细Service接口
|
||||||
|
*
|
||||||
|
* @author Lion Li
|
||||||
|
* @date 2025-08-28
|
||||||
|
*/
|
||||||
|
public interface IGpsEquipmentService extends IService<GpsEquipment>{
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 查询GPS设备详细
|
||||||
|
*
|
||||||
|
* @param id 主键
|
||||||
|
* @return GPS设备详细
|
||||||
|
*/
|
||||||
|
GpsEquipmentVo queryById(Long id);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 分页查询GPS设备详细列表
|
||||||
|
*
|
||||||
|
* @param bo 查询条件
|
||||||
|
* @param pageQuery 分页参数
|
||||||
|
* @return GPS设备详细分页列表
|
||||||
|
*/
|
||||||
|
TableDataInfo<GpsEquipmentVo> queryPageList(GpsEquipmentBo bo, PageQuery pageQuery);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 查询符合条件的GPS设备详细列表
|
||||||
|
*
|
||||||
|
* @param bo 查询条件
|
||||||
|
* @return GPS设备详细列表
|
||||||
|
*/
|
||||||
|
List<GpsEquipmentVo> queryList(GpsEquipmentBo bo);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 新增GPS设备详细
|
||||||
|
*
|
||||||
|
* @param bo GPS设备详细
|
||||||
|
* @return 是否新增成功
|
||||||
|
*/
|
||||||
|
Boolean insertByBo(GpsEquipmentBo bo);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 修改GPS设备详细
|
||||||
|
*
|
||||||
|
* @param bo GPS设备详细
|
||||||
|
* @return 是否修改成功
|
||||||
|
*/
|
||||||
|
Boolean updateByBo(GpsEquipmentBo bo);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 校验并批量删除GPS设备详细信息
|
||||||
|
*
|
||||||
|
* @param ids 待删除的主键集合
|
||||||
|
* @param isValid 是否进行有效性校验
|
||||||
|
* @return 是否删除成功
|
||||||
|
*/
|
||||||
|
Boolean deleteWithValidByIds(Collection<Long> ids, Boolean isValid);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 接收设备数据
|
||||||
|
* @param jsonData
|
||||||
|
*/
|
||||||
|
void dataAcceptance(String jsonData);
|
||||||
|
}
|
@ -0,0 +1,70 @@
|
|||||||
|
package org.dromara.gps.service;
|
||||||
|
|
||||||
|
import org.dromara.gps.domain.vo.GpsEquipmentSonVo;
|
||||||
|
import org.dromara.gps.domain.bo.GpsEquipmentSonBo;
|
||||||
|
import org.dromara.gps.domain.GpsEquipmentSon;
|
||||||
|
import org.dromara.common.mybatis.core.page.TableDataInfo;
|
||||||
|
import org.dromara.common.mybatis.core.page.PageQuery;
|
||||||
|
|
||||||
|
import com.baomidou.mybatisplus.extension.service.IService;
|
||||||
|
import java.util.Collection;
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* GPS设备定位信息Service接口
|
||||||
|
*
|
||||||
|
* @author Lion Li
|
||||||
|
* @date 2025-08-28
|
||||||
|
*/
|
||||||
|
public interface IGpsEquipmentSonService extends IService<GpsEquipmentSon>{
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 查询GPS设备定位信息
|
||||||
|
*
|
||||||
|
* @param id 主键
|
||||||
|
* @return GPS设备定位信息
|
||||||
|
*/
|
||||||
|
GpsEquipmentSonVo queryById(Long id);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 分页查询GPS设备定位信息列表
|
||||||
|
*
|
||||||
|
* @param bo 查询条件
|
||||||
|
* @param pageQuery 分页参数
|
||||||
|
* @return GPS设备定位信息分页列表
|
||||||
|
*/
|
||||||
|
TableDataInfo<GpsEquipmentSonVo> queryPageList(GpsEquipmentSonBo bo, PageQuery pageQuery);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 查询符合条件的GPS设备定位信息列表
|
||||||
|
*
|
||||||
|
* @param bo 查询条件
|
||||||
|
* @return GPS设备定位信息列表
|
||||||
|
*/
|
||||||
|
List<GpsEquipmentSonVo> queryList(GpsEquipmentSonBo bo);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 新增GPS设备定位信息
|
||||||
|
*
|
||||||
|
* @param bo GPS设备定位信息
|
||||||
|
* @return 是否新增成功
|
||||||
|
*/
|
||||||
|
Boolean insertByBo(GpsEquipmentSonBo bo);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 修改GPS设备定位信息
|
||||||
|
*
|
||||||
|
* @param bo GPS设备定位信息
|
||||||
|
* @return 是否修改成功
|
||||||
|
*/
|
||||||
|
Boolean updateByBo(GpsEquipmentSonBo bo);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 校验并批量删除GPS设备定位信息信息
|
||||||
|
*
|
||||||
|
* @param ids 待删除的主键集合
|
||||||
|
* @param isValid 是否进行有效性校验
|
||||||
|
* @return 是否删除成功
|
||||||
|
*/
|
||||||
|
Boolean deleteWithValidByIds(Collection<Long> ids, Boolean isValid);
|
||||||
|
}
|
@ -0,0 +1,70 @@
|
|||||||
|
package org.dromara.gps.service;
|
||||||
|
|
||||||
|
import org.dromara.gps.domain.vo.GpsManmachineVo;
|
||||||
|
import org.dromara.gps.domain.bo.GpsManmachineBo;
|
||||||
|
import org.dromara.gps.domain.GpsManmachine;
|
||||||
|
import org.dromara.common.mybatis.core.page.TableDataInfo;
|
||||||
|
import org.dromara.common.mybatis.core.page.PageQuery;
|
||||||
|
|
||||||
|
import com.baomidou.mybatisplus.extension.service.IService;
|
||||||
|
import java.util.Collection;
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* GPS人机关联Service接口
|
||||||
|
*
|
||||||
|
* @author Lion Li
|
||||||
|
* @date 2025-08-28
|
||||||
|
*/
|
||||||
|
public interface IGpsManmachineService extends IService<GpsManmachine>{
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 查询GPS人机关联
|
||||||
|
*
|
||||||
|
* @param clientId 主键
|
||||||
|
* @return GPS人机关联
|
||||||
|
*/
|
||||||
|
GpsManmachineVo queryById(String clientId);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 分页查询GPS人机关联列表
|
||||||
|
*
|
||||||
|
* @param bo 查询条件
|
||||||
|
* @param pageQuery 分页参数
|
||||||
|
* @return GPS人机关联分页列表
|
||||||
|
*/
|
||||||
|
TableDataInfo<GpsManmachineVo> queryPageList(GpsManmachineBo bo, PageQuery pageQuery);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 查询符合条件的GPS人机关联列表
|
||||||
|
*
|
||||||
|
* @param bo 查询条件
|
||||||
|
* @return GPS人机关联列表
|
||||||
|
*/
|
||||||
|
List<GpsManmachineVo> queryList(GpsManmachineBo bo);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 新增GPS人机关联
|
||||||
|
*
|
||||||
|
* @param bo GPS人机关联
|
||||||
|
* @return 是否新增成功
|
||||||
|
*/
|
||||||
|
Boolean insertByBo(GpsManmachineBo bo);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 修改GPS人机关联
|
||||||
|
*
|
||||||
|
* @param bo GPS人机关联
|
||||||
|
* @return 是否修改成功
|
||||||
|
*/
|
||||||
|
Boolean updateByBo(GpsManmachineBo bo);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 校验并批量删除GPS人机关联信息
|
||||||
|
*
|
||||||
|
* @param ids 待删除的主键集合
|
||||||
|
* @param isValid 是否进行有效性校验
|
||||||
|
* @return 是否删除成功
|
||||||
|
*/
|
||||||
|
Boolean deleteWithValidByIds(Collection<String> ids, Boolean isValid);
|
||||||
|
}
|
@ -0,0 +1,181 @@
|
|||||||
|
package org.dromara.gps.service.impl;
|
||||||
|
|
||||||
|
import cn.hutool.json.JSONObject;
|
||||||
|
import cn.hutool.json.JSONUtil;
|
||||||
|
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
||||||
|
import org.dromara.common.core.utils.MapstructUtils;
|
||||||
|
import org.dromara.common.core.utils.StringUtils;
|
||||||
|
import org.dromara.common.mybatis.core.page.TableDataInfo;
|
||||||
|
import org.dromara.common.mybatis.core.page.PageQuery;
|
||||||
|
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
||||||
|
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
||||||
|
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
|
||||||
|
import lombok.RequiredArgsConstructor;
|
||||||
|
import org.dromara.gps.domain.GpsEquipmentSon;
|
||||||
|
import org.dromara.gps.domain.GpsManmachine;
|
||||||
|
import org.dromara.gps.domain.bo.GpsEquipmentSonBo;
|
||||||
|
import org.dromara.gps.mapper.GpsManmachineMapper;
|
||||||
|
import org.dromara.gps.service.IGpsEquipmentSonService;
|
||||||
|
import org.dromara.gps.service.IGpsManmachineService;
|
||||||
|
import org.plutext.jaxb.svg11.G;
|
||||||
|
import org.springframework.beans.factory.annotation.Autowired;
|
||||||
|
import org.springframework.stereotype.Service;
|
||||||
|
import org.dromara.gps.domain.bo.GpsEquipmentBo;
|
||||||
|
import org.dromara.gps.domain.vo.GpsEquipmentVo;
|
||||||
|
import org.dromara.gps.domain.GpsEquipment;
|
||||||
|
import org.dromara.gps.mapper.GpsEquipmentMapper;
|
||||||
|
import org.dromara.gps.service.IGpsEquipmentService;
|
||||||
|
|
||||||
|
import java.util.List;
|
||||||
|
import java.util.Map;
|
||||||
|
import java.util.Collection;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* GPS设备详细Service业务层处理
|
||||||
|
*
|
||||||
|
* @author Lion Li
|
||||||
|
* @date 2025-08-28
|
||||||
|
*/
|
||||||
|
@RequiredArgsConstructor
|
||||||
|
@Service
|
||||||
|
public class GpsEquipmentServiceImpl extends ServiceImpl<GpsEquipmentMapper, GpsEquipment> implements IGpsEquipmentService {
|
||||||
|
|
||||||
|
private final GpsEquipmentMapper baseMapper;
|
||||||
|
|
||||||
|
@Autowired
|
||||||
|
private IGpsEquipmentSonService gpsEquipmentSonService;
|
||||||
|
@Autowired
|
||||||
|
private GpsManmachineMapper gpsManmachineMapper;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 查询GPS设备详细
|
||||||
|
*
|
||||||
|
* @param id 主键
|
||||||
|
* @return GPS设备详细
|
||||||
|
*/
|
||||||
|
@Override
|
||||||
|
public GpsEquipmentVo queryById(Long id){
|
||||||
|
return baseMapper.selectVoById(id);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 分页查询GPS设备详细列表
|
||||||
|
*
|
||||||
|
* @param bo 查询条件
|
||||||
|
* @param pageQuery 分页参数
|
||||||
|
* @return GPS设备详细分页列表
|
||||||
|
*/
|
||||||
|
@Override
|
||||||
|
public TableDataInfo<GpsEquipmentVo> queryPageList(GpsEquipmentBo bo, PageQuery pageQuery) {
|
||||||
|
LambdaQueryWrapper<GpsEquipment> lqw = buildQueryWrapper(bo);
|
||||||
|
Page<GpsEquipmentVo> result = baseMapper.selectVoPage(pageQuery.build(), lqw);
|
||||||
|
return TableDataInfo.build(result);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 查询符合条件的GPS设备详细列表
|
||||||
|
*
|
||||||
|
* @param bo 查询条件
|
||||||
|
* @return GPS设备详细列表
|
||||||
|
*/
|
||||||
|
@Override
|
||||||
|
public List<GpsEquipmentVo> queryList(GpsEquipmentBo bo) {
|
||||||
|
LambdaQueryWrapper<GpsEquipment> lqw = buildQueryWrapper(bo);
|
||||||
|
return baseMapper.selectVoList(lqw);
|
||||||
|
}
|
||||||
|
|
||||||
|
private LambdaQueryWrapper<GpsEquipment> buildQueryWrapper(GpsEquipmentBo bo) {
|
||||||
|
Map<String, Object> params = bo.getParams();
|
||||||
|
LambdaQueryWrapper<GpsEquipment> lqw = Wrappers.lambdaQuery();
|
||||||
|
lqw.orderByDesc(GpsEquipment::getId);
|
||||||
|
lqw.eq(bo.getProjectId() != null, GpsEquipment::getProjectId, bo.getProjectId());
|
||||||
|
lqw.eq(bo.getUserId() != null, GpsEquipment::getUserId, bo.getUserId());
|
||||||
|
lqw.eq(StringUtils.isNotBlank(bo.getClientId()), GpsEquipment::getClientId, bo.getClientId());
|
||||||
|
return lqw;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 新增GPS设备详细
|
||||||
|
*
|
||||||
|
* @param bo GPS设备详细
|
||||||
|
* @return 是否新增成功
|
||||||
|
*/
|
||||||
|
@Override
|
||||||
|
public Boolean insertByBo(GpsEquipmentBo bo) {
|
||||||
|
GpsEquipment add = MapstructUtils.convert(bo, GpsEquipment.class);
|
||||||
|
validEntityBeforeSave(add);
|
||||||
|
boolean flag = baseMapper.insert(add) > 0;
|
||||||
|
if (flag) {
|
||||||
|
bo.setId(add.getId());
|
||||||
|
}
|
||||||
|
return flag;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 修改GPS设备详细
|
||||||
|
*
|
||||||
|
* @param bo GPS设备详细
|
||||||
|
* @return 是否修改成功
|
||||||
|
*/
|
||||||
|
@Override
|
||||||
|
public Boolean updateByBo(GpsEquipmentBo bo) {
|
||||||
|
GpsEquipment update = MapstructUtils.convert(bo, GpsEquipment.class);
|
||||||
|
validEntityBeforeSave(update);
|
||||||
|
return baseMapper.updateById(update) > 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 保存前的数据校验
|
||||||
|
*/
|
||||||
|
private void validEntityBeforeSave(GpsEquipment entity){
|
||||||
|
//TODO 做一些数据校验,如唯一约束
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 校验并批量删除GPS设备详细信息
|
||||||
|
*
|
||||||
|
* @param ids 待删除的主键集合
|
||||||
|
* @param isValid 是否进行有效性校验
|
||||||
|
* @return 是否删除成功
|
||||||
|
*/
|
||||||
|
@Override
|
||||||
|
public Boolean deleteWithValidByIds(Collection<Long> ids, Boolean isValid) {
|
||||||
|
if(isValid){
|
||||||
|
//TODO 做一些业务上的校验,判断是否需要校验
|
||||||
|
}
|
||||||
|
return baseMapper.deleteByIds(ids) > 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void dataAcceptance(String jsonData) {
|
||||||
|
JSONObject jsonObject = JSONUtil.parseObj(jsonData);
|
||||||
|
GpsEquipment gpsEquipment = JSONUtil.toBean(jsonObject, GpsEquipment.class);
|
||||||
|
GpsEquipment equipment = baseMapper.selectOne(new LambdaQueryWrapper<GpsEquipment>()
|
||||||
|
.eq(GpsEquipment::getClientId, gpsEquipment.getClientId()));
|
||||||
|
if(equipment == null){
|
||||||
|
baseMapper.insert(gpsEquipment);
|
||||||
|
}
|
||||||
|
JSONObject attributes = jsonObject.getJSONObject("attributes");
|
||||||
|
JSONObject device = attributes.getJSONObject("Device");
|
||||||
|
GpsEquipmentSonBo gpsEquipmentSon = JSONUtil.toBean(device, GpsEquipmentSonBo.class);
|
||||||
|
|
||||||
|
JSONObject location = device.getJSONObject("location");
|
||||||
|
gpsEquipmentSon.setLocAltitude(location.getLong("altitude"));
|
||||||
|
gpsEquipmentSon.setLocLatitude(location.getLong("latitude"));
|
||||||
|
gpsEquipmentSon.setLocLongitude(location.getLong("longitude"));
|
||||||
|
gpsEquipmentSon.setLocSpeed(location.getLong("speed"));
|
||||||
|
gpsEquipmentSon.setLocDirection(location.getLong("direction"));
|
||||||
|
gpsEquipmentSon.setLocSpeedKph(location.getLong("speedKph"));
|
||||||
|
gpsEquipmentSon.setLocStatusBit(location.getLong("statusBit"));
|
||||||
|
gpsEquipmentSon.setLocWarnBit(location.getLong("warnBit"));
|
||||||
|
gpsEquipmentSon.setLocDeviceTime(location.getLong("deviceTime"));
|
||||||
|
|
||||||
|
gpsEquipmentSon.setClientId(gpsEquipment.getClientId());
|
||||||
|
if (equipment != null && equipment.getUserId() != null) {
|
||||||
|
gpsEquipmentSon.setUserId(equipment.getUserId());
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
gpsEquipmentSonService.insertByBo(gpsEquipmentSon);
|
||||||
|
}
|
||||||
|
}
|
@ -0,0 +1,146 @@
|
|||||||
|
package org.dromara.gps.service.impl;
|
||||||
|
|
||||||
|
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
||||||
|
import org.dromara.common.core.utils.MapstructUtils;
|
||||||
|
import org.dromara.common.core.utils.StringUtils;
|
||||||
|
import org.dromara.common.mybatis.core.page.TableDataInfo;
|
||||||
|
import org.dromara.common.mybatis.core.page.PageQuery;
|
||||||
|
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
||||||
|
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
||||||
|
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
|
||||||
|
import lombok.RequiredArgsConstructor;
|
||||||
|
import org.springframework.stereotype.Service;
|
||||||
|
import org.dromara.gps.domain.bo.GpsEquipmentSonBo;
|
||||||
|
import org.dromara.gps.domain.vo.GpsEquipmentSonVo;
|
||||||
|
import org.dromara.gps.domain.GpsEquipmentSon;
|
||||||
|
import org.dromara.gps.mapper.GpsEquipmentSonMapper;
|
||||||
|
import org.dromara.gps.service.IGpsEquipmentSonService;
|
||||||
|
|
||||||
|
import java.util.List;
|
||||||
|
import java.util.Map;
|
||||||
|
import java.util.Collection;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* GPS设备定位信息Service业务层处理
|
||||||
|
*
|
||||||
|
* @author Lion Li
|
||||||
|
* @date 2025-08-28
|
||||||
|
*/
|
||||||
|
@RequiredArgsConstructor
|
||||||
|
@Service
|
||||||
|
public class GpsEquipmentSonServiceImpl extends ServiceImpl<GpsEquipmentSonMapper, GpsEquipmentSon> implements IGpsEquipmentSonService {
|
||||||
|
|
||||||
|
private final GpsEquipmentSonMapper baseMapper;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 查询GPS设备定位信息
|
||||||
|
*
|
||||||
|
* @param id 主键
|
||||||
|
* @return GPS设备定位信息
|
||||||
|
*/
|
||||||
|
@Override
|
||||||
|
public GpsEquipmentSonVo queryById(Long id){
|
||||||
|
return baseMapper.selectVoById(id);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 分页查询GPS设备定位信息列表
|
||||||
|
*
|
||||||
|
* @param bo 查询条件
|
||||||
|
* @param pageQuery 分页参数
|
||||||
|
* @return GPS设备定位信息分页列表
|
||||||
|
*/
|
||||||
|
@Override
|
||||||
|
public TableDataInfo<GpsEquipmentSonVo> queryPageList(GpsEquipmentSonBo bo, PageQuery pageQuery) {
|
||||||
|
LambdaQueryWrapper<GpsEquipmentSon> lqw = buildQueryWrapper(bo);
|
||||||
|
Page<GpsEquipmentSonVo> result = baseMapper.selectVoPage(pageQuery.build(), lqw);
|
||||||
|
return TableDataInfo.build(result);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 查询符合条件的GPS设备定位信息列表
|
||||||
|
*
|
||||||
|
* @param bo 查询条件
|
||||||
|
* @return GPS设备定位信息列表
|
||||||
|
*/
|
||||||
|
@Override
|
||||||
|
public List<GpsEquipmentSonVo> queryList(GpsEquipmentSonBo bo) {
|
||||||
|
LambdaQueryWrapper<GpsEquipmentSon> lqw = buildQueryWrapper(bo);
|
||||||
|
return baseMapper.selectVoList(lqw);
|
||||||
|
}
|
||||||
|
|
||||||
|
private LambdaQueryWrapper<GpsEquipmentSon> buildQueryWrapper(GpsEquipmentSonBo bo) {
|
||||||
|
Map<String, Object> params = bo.getParams();
|
||||||
|
LambdaQueryWrapper<GpsEquipmentSon> lqw = Wrappers.lambdaQuery();
|
||||||
|
lqw.orderByDesc(GpsEquipmentSon::getId);
|
||||||
|
lqw.eq(bo.getUserId() != null, GpsEquipmentSon::getUserId, bo.getUserId());
|
||||||
|
lqw.eq(StringUtils.isNotBlank(bo.getClientId()), GpsEquipmentSon::getClientId, bo.getClientId());
|
||||||
|
lqw.like(StringUtils.isNotBlank(bo.getDeviceName()), GpsEquipmentSon::getDeviceName, bo.getDeviceName());
|
||||||
|
lqw.eq(StringUtils.isNotBlank(bo.getDeviceId()), GpsEquipmentSon::getDeviceId, bo.getDeviceId());
|
||||||
|
lqw.eq(StringUtils.isNotBlank(bo.getMobileNo()), GpsEquipmentSon::getMobileNo, bo.getMobileNo());
|
||||||
|
lqw.eq(StringUtils.isNotBlank(bo.getPlateNo()), GpsEquipmentSon::getPlateNo, bo.getPlateNo());
|
||||||
|
lqw.eq(bo.getProtocolVersion() != null, GpsEquipmentSon::getProtocolVersion, bo.getProtocolVersion());
|
||||||
|
lqw.eq(bo.getLocWarnBit() != null, GpsEquipmentSon::getLocWarnBit, bo.getLocWarnBit());
|
||||||
|
lqw.eq(bo.getLocStatusBit() != null, GpsEquipmentSon::getLocStatusBit, bo.getLocStatusBit());
|
||||||
|
lqw.eq(bo.getLocLatitude() != null, GpsEquipmentSon::getLocLatitude, bo.getLocLatitude());
|
||||||
|
lqw.eq(bo.getLocLongitude() != null, GpsEquipmentSon::getLocLongitude, bo.getLocLongitude());
|
||||||
|
lqw.eq(bo.getLocAltitude() != null, GpsEquipmentSon::getLocAltitude, bo.getLocAltitude());
|
||||||
|
lqw.eq(bo.getLocSpeed() != null, GpsEquipmentSon::getLocSpeed, bo.getLocSpeed());
|
||||||
|
lqw.eq(bo.getLocSpeedKph() != null, GpsEquipmentSon::getLocSpeedKph, bo.getLocSpeedKph());
|
||||||
|
lqw.eq(bo.getLocDirection() != null, GpsEquipmentSon::getLocDirection, bo.getLocDirection());
|
||||||
|
lqw.eq(bo.getLocDeviceTime() != null, GpsEquipmentSon::getLocDeviceTime, bo.getLocDeviceTime());
|
||||||
|
return lqw;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 新增GPS设备定位信息
|
||||||
|
*
|
||||||
|
* @param bo GPS设备定位信息
|
||||||
|
* @return 是否新增成功
|
||||||
|
*/
|
||||||
|
@Override
|
||||||
|
public Boolean insertByBo(GpsEquipmentSonBo bo) {
|
||||||
|
GpsEquipmentSon add = MapstructUtils.convert(bo, GpsEquipmentSon.class);
|
||||||
|
validEntityBeforeSave(add);
|
||||||
|
boolean flag = baseMapper.insert(add) > 0;
|
||||||
|
if (flag) {
|
||||||
|
bo.setId(add.getId());
|
||||||
|
}
|
||||||
|
return flag;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 修改GPS设备定位信息
|
||||||
|
*
|
||||||
|
* @param bo GPS设备定位信息
|
||||||
|
* @return 是否修改成功
|
||||||
|
*/
|
||||||
|
@Override
|
||||||
|
public Boolean updateByBo(GpsEquipmentSonBo bo) {
|
||||||
|
GpsEquipmentSon update = MapstructUtils.convert(bo, GpsEquipmentSon.class);
|
||||||
|
validEntityBeforeSave(update);
|
||||||
|
return baseMapper.updateById(update) > 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 保存前的数据校验
|
||||||
|
*/
|
||||||
|
private void validEntityBeforeSave(GpsEquipmentSon entity){
|
||||||
|
//TODO 做一些数据校验,如唯一约束
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 校验并批量删除GPS设备定位信息信息
|
||||||
|
*
|
||||||
|
* @param ids 待删除的主键集合
|
||||||
|
* @param isValid 是否进行有效性校验
|
||||||
|
* @return 是否删除成功
|
||||||
|
*/
|
||||||
|
@Override
|
||||||
|
public Boolean deleteWithValidByIds(Collection<Long> ids, Boolean isValid) {
|
||||||
|
if(isValid){
|
||||||
|
//TODO 做一些业务上的校验,判断是否需要校验
|
||||||
|
}
|
||||||
|
return baseMapper.deleteByIds(ids) > 0;
|
||||||
|
}
|
||||||
|
}
|
@ -0,0 +1,131 @@
|
|||||||
|
package org.dromara.gps.service.impl;
|
||||||
|
|
||||||
|
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
||||||
|
import org.dromara.common.core.utils.MapstructUtils;
|
||||||
|
import org.dromara.common.core.utils.StringUtils;
|
||||||
|
import org.dromara.common.mybatis.core.page.TableDataInfo;
|
||||||
|
import org.dromara.common.mybatis.core.page.PageQuery;
|
||||||
|
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
||||||
|
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
||||||
|
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
|
||||||
|
import lombok.RequiredArgsConstructor;
|
||||||
|
import org.springframework.stereotype.Service;
|
||||||
|
import org.dromara.gps.domain.bo.GpsManmachineBo;
|
||||||
|
import org.dromara.gps.domain.vo.GpsManmachineVo;
|
||||||
|
import org.dromara.gps.domain.GpsManmachine;
|
||||||
|
import org.dromara.gps.mapper.GpsManmachineMapper;
|
||||||
|
import org.dromara.gps.service.IGpsManmachineService;
|
||||||
|
|
||||||
|
import java.util.List;
|
||||||
|
import java.util.Map;
|
||||||
|
import java.util.Collection;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* GPS人机关联Service业务层处理
|
||||||
|
*
|
||||||
|
* @author Lion Li
|
||||||
|
* @date 2025-08-28
|
||||||
|
*/
|
||||||
|
@RequiredArgsConstructor
|
||||||
|
@Service
|
||||||
|
public class GpsManmachineServiceImpl extends ServiceImpl<GpsManmachineMapper, GpsManmachine> implements IGpsManmachineService {
|
||||||
|
|
||||||
|
private final GpsManmachineMapper baseMapper;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 查询GPS人机关联
|
||||||
|
*
|
||||||
|
* @param clientId 主键
|
||||||
|
* @return GPS人机关联
|
||||||
|
*/
|
||||||
|
@Override
|
||||||
|
public GpsManmachineVo queryById(String clientId){
|
||||||
|
return baseMapper.selectVoById(clientId);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 分页查询GPS人机关联列表
|
||||||
|
*
|
||||||
|
* @param bo 查询条件
|
||||||
|
* @param pageQuery 分页参数
|
||||||
|
* @return GPS人机关联分页列表
|
||||||
|
*/
|
||||||
|
@Override
|
||||||
|
public TableDataInfo<GpsManmachineVo> queryPageList(GpsManmachineBo bo, PageQuery pageQuery) {
|
||||||
|
LambdaQueryWrapper<GpsManmachine> lqw = buildQueryWrapper(bo);
|
||||||
|
Page<GpsManmachineVo> result = baseMapper.selectVoPage(pageQuery.build(), lqw);
|
||||||
|
return TableDataInfo.build(result);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 查询符合条件的GPS人机关联列表
|
||||||
|
*
|
||||||
|
* @param bo 查询条件
|
||||||
|
* @return GPS人机关联列表
|
||||||
|
*/
|
||||||
|
@Override
|
||||||
|
public List<GpsManmachineVo> queryList(GpsManmachineBo bo) {
|
||||||
|
LambdaQueryWrapper<GpsManmachine> lqw = buildQueryWrapper(bo);
|
||||||
|
return baseMapper.selectVoList(lqw);
|
||||||
|
}
|
||||||
|
|
||||||
|
private LambdaQueryWrapper<GpsManmachine> buildQueryWrapper(GpsManmachineBo bo) {
|
||||||
|
Map<String, Object> params = bo.getParams();
|
||||||
|
LambdaQueryWrapper<GpsManmachine> lqw = Wrappers.lambdaQuery();
|
||||||
|
lqw.orderByDesc(GpsManmachine::getClientId);
|
||||||
|
lqw.eq(bo.getUserId() != null, GpsManmachine::getUserId, bo.getUserId());
|
||||||
|
return lqw;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 新增GPS人机关联
|
||||||
|
*
|
||||||
|
* @param bo GPS人机关联
|
||||||
|
* @return 是否新增成功
|
||||||
|
*/
|
||||||
|
@Override
|
||||||
|
public Boolean insertByBo(GpsManmachineBo bo) {
|
||||||
|
GpsManmachine add = MapstructUtils.convert(bo, GpsManmachine.class);
|
||||||
|
validEntityBeforeSave(add);
|
||||||
|
boolean flag = baseMapper.insert(add) > 0;
|
||||||
|
if (flag) {
|
||||||
|
bo.setClientId(add.getClientId());
|
||||||
|
}
|
||||||
|
return flag;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 修改GPS人机关联
|
||||||
|
*
|
||||||
|
* @param bo GPS人机关联
|
||||||
|
* @return 是否修改成功
|
||||||
|
*/
|
||||||
|
@Override
|
||||||
|
public Boolean updateByBo(GpsManmachineBo bo) {
|
||||||
|
GpsManmachine update = MapstructUtils.convert(bo, GpsManmachine.class);
|
||||||
|
validEntityBeforeSave(update);
|
||||||
|
return baseMapper.updateById(update) > 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 保存前的数据校验
|
||||||
|
*/
|
||||||
|
private void validEntityBeforeSave(GpsManmachine entity){
|
||||||
|
//TODO 做一些数据校验,如唯一约束
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 校验并批量删除GPS人机关联信息
|
||||||
|
*
|
||||||
|
* @param ids 待删除的主键集合
|
||||||
|
* @param isValid 是否进行有效性校验
|
||||||
|
* @return 是否删除成功
|
||||||
|
*/
|
||||||
|
@Override
|
||||||
|
public Boolean deleteWithValidByIds(Collection<String> ids, Boolean isValid) {
|
||||||
|
if(isValid){
|
||||||
|
//TODO 做一些业务上的校验,判断是否需要校验
|
||||||
|
}
|
||||||
|
return baseMapper.deleteByIds(ids) > 0;
|
||||||
|
}
|
||||||
|
}
|
Reference in New Issue
Block a user