diff --git a/fys-admin/src/main/java/com/fuyuanshen/web/controller/device/fence/DeviceFenceAccessRecordController.java b/fys-admin/src/main/java/com/fuyuanshen/web/controller/device/fence/DeviceFenceAccessRecordController.java index fc2e2c66b..644d55852 100644 --- a/fys-admin/src/main/java/com/fuyuanshen/web/controller/device/fence/DeviceFenceAccessRecordController.java +++ b/fys-admin/src/main/java/com/fuyuanshen/web/controller/device/fence/DeviceFenceAccessRecordController.java @@ -47,6 +47,7 @@ public class DeviceFenceAccessRecordController extends BaseController { return deviceFenceAccessRecordService.queryPageList(bo, pageQuery); } + /** * 导出围栏进出记录列表 */ diff --git a/fys-admin/src/main/java/com/fuyuanshen/web/controller/device/fence/DeviceGeoFenceController.java b/fys-admin/src/main/java/com/fuyuanshen/web/controller/device/fence/DeviceGeoFenceController.java index 1e70c64cf..1092b2033 100644 --- a/fys-admin/src/main/java/com/fuyuanshen/web/controller/device/fence/DeviceGeoFenceController.java +++ b/fys-admin/src/main/java/com/fuyuanshen/web/controller/device/fence/DeviceGeoFenceController.java @@ -50,6 +50,7 @@ public class DeviceGeoFenceController extends BaseController { return deviceGeoFenceService.queryPageList(bo, pageQuery); } + /** * 导出电子围栏列表 */ diff --git a/fys-admin/src/main/resources/application-dev.yml b/fys-admin/src/main/resources/application-dev.yml index 646503839..680aa3704 100644 --- a/fys-admin/src/main/resources/application-dev.yml +++ b/fys-admin/src/main/resources/application-dev.yml @@ -301,7 +301,7 @@ file: mqtt: username: admin password: #YtvpSfCNG - url: tcp://47.120.79.150:2883 + url: tcp://47.120.79.150:3883 subClientId: fys_subClient subTopic: worker/location/# pubTopic: B/# diff --git a/fys-modules/fys-equipment/src/main/java/com/fuyuanshen/equipment/domain/DeviceFenceAccessRecord.java b/fys-modules/fys-equipment/src/main/java/com/fuyuanshen/equipment/domain/DeviceFenceAccessRecord.java index 9652c3021..58ab238f8 100644 --- a/fys-modules/fys-equipment/src/main/java/com/fuyuanshen/equipment/domain/DeviceFenceAccessRecord.java +++ b/fys-modules/fys-equipment/src/main/java/com/fuyuanshen/equipment/domain/DeviceFenceAccessRecord.java @@ -52,12 +52,12 @@ public class DeviceFenceAccessRecord extends BaseEntity { /** * 纬度 */ - private Long latitude; + private Double latitude; /** * 经度 */ - private Long longitude; + private Double longitude; /** * 定位精度 diff --git a/fys-modules/fys-equipment/src/main/java/com/fuyuanshen/equipment/domain/bo/DeviceFenceAccessRecordBo.java b/fys-modules/fys-equipment/src/main/java/com/fuyuanshen/equipment/domain/bo/DeviceFenceAccessRecordBo.java index 295eac011..2300d8395 100644 --- a/fys-modules/fys-equipment/src/main/java/com/fuyuanshen/equipment/domain/bo/DeviceFenceAccessRecordBo.java +++ b/fys-modules/fys-equipment/src/main/java/com/fuyuanshen/equipment/domain/bo/DeviceFenceAccessRecordBo.java @@ -74,6 +74,16 @@ public class DeviceFenceAccessRecordBo extends BaseEntity { @NotNull(message = "事件时间不能为空", groups = { AddGroup.class, EditGroup.class }) private Date eventTime; + /** + * 开始时间 + */ + private String beginTime; + + /** + * 结束时间 + */ + private String endTime; + /** * 记录创建时间 */ diff --git a/fys-modules/fys-equipment/src/main/java/com/fuyuanshen/equipment/service/impl/DeviceFenceAccessRecordServiceImpl.java b/fys-modules/fys-equipment/src/main/java/com/fuyuanshen/equipment/service/impl/DeviceFenceAccessRecordServiceImpl.java index 2c273fa92..880023770 100644 --- a/fys-modules/fys-equipment/src/main/java/com/fuyuanshen/equipment/service/impl/DeviceFenceAccessRecordServiceImpl.java +++ b/fys-modules/fys-equipment/src/main/java/com/fuyuanshen/equipment/service/impl/DeviceFenceAccessRecordServiceImpl.java @@ -58,6 +58,7 @@ public class DeviceFenceAccessRecordServiceImpl implements IDeviceFenceAccessRec return TableDataInfo.build(result); } + /** * 查询符合条件的围栏进出记录列表 * @@ -70,6 +71,7 @@ public class DeviceFenceAccessRecordServiceImpl implements IDeviceFenceAccessRec return baseMapper.selectVoPageWithFenceAndDeviceName(lqw); } + private LambdaQueryWrapper buildQueryWrapper(DeviceFenceAccessRecordBo bo) { Map params = bo.getParams(); LambdaQueryWrapper lqw = Wrappers.lambdaQuery(); @@ -86,6 +88,7 @@ public class DeviceFenceAccessRecordServiceImpl implements IDeviceFenceAccessRec return lqw; } + /** * 新增围栏进出记录 * diff --git a/fys-modules/fys-equipment/src/main/java/com/fuyuanshen/equipment/service/impl/DeviceGeoFenceServiceImpl.java b/fys-modules/fys-equipment/src/main/java/com/fuyuanshen/equipment/service/impl/DeviceGeoFenceServiceImpl.java index 3957a90d5..2595b0adb 100644 --- a/fys-modules/fys-equipment/src/main/java/com/fuyuanshen/equipment/service/impl/DeviceGeoFenceServiceImpl.java +++ b/fys-modules/fys-equipment/src/main/java/com/fuyuanshen/equipment/service/impl/DeviceGeoFenceServiceImpl.java @@ -9,6 +9,7 @@ import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.toolkit.Wrappers; import com.fuyuanshen.equipment.domain.DeviceGeoFence; +import com.fuyuanshen.equipment.domain.bo.DeviceFenceAccessRecordBo; import com.fuyuanshen.equipment.domain.bo.DeviceFenceStatusBo; import com.fuyuanshen.equipment.domain.bo.DeviceGeoFenceBo; import com.fuyuanshen.equipment.domain.dto.FenceCheckResponse; @@ -16,6 +17,7 @@ import com.fuyuanshen.equipment.domain.query.FenceCheckRequest; import com.fuyuanshen.equipment.domain.vo.DeviceFenceStatusVo; import com.fuyuanshen.equipment.domain.vo.DeviceGeoFenceVo; import com.fuyuanshen.equipment.mapper.DeviceGeoFenceMapper; +import com.fuyuanshen.equipment.service.IDeviceFenceAccessRecordService; import com.fuyuanshen.equipment.service.IDeviceFenceStatusService; import com.fuyuanshen.equipment.service.IDeviceGeoFenceService; import com.fuyuanshen.equipment.utils.map.GeoFenceChecker; @@ -40,6 +42,8 @@ public class DeviceGeoFenceServiceImpl implements IDeviceGeoFenceService { private final DeviceGeoFenceMapper baseMapper; private final IDeviceFenceStatusService fenceStatusService; // 添加此行 + + private final IDeviceFenceAccessRecordService fenceAccessRecordService; // 添加此行 @@ -96,6 +100,7 @@ public class DeviceGeoFenceServiceImpl implements IDeviceGeoFenceService { return lqw; } + /** * 新增电子围栏 * @@ -213,9 +218,9 @@ public class DeviceGeoFenceServiceImpl implements IDeviceGeoFenceService { DeviceFenceStatusVo latestStatus = fenceStatusService.getLatestStatusByDeviceAndFence( request.getDeviceId(), fence.getId()); - // 判断设备与围栏的关系变化 - Long previousStatus = latestStatus != null ? latestStatus.getStatus() : 0L; // 默认在围栏外 - Long currentStatus = pointInFence ? 1L : 0L; // 当前状态:1-在围栏内,0-在围栏外 + // 判断设备与围栏的关系变化 1=进入围栏,2=离开围栏 + Long previousStatus = latestStatus != null ? latestStatus.getStatus() : 2L; // 默认在围栏外 + Long currentStatus = pointInFence ? 1L : 2L; // 当前状态:1-在围栏内,2-在围栏外 // 如果状态发生变化,则记录 if (!previousStatus.equals(currentStatus)) { @@ -229,6 +234,17 @@ public class DeviceGeoFenceServiceImpl implements IDeviceGeoFenceService { // 保存状态记录 fenceStatusService.insertByBo(newStatus); + // 添加围栏进出记录 + DeviceFenceAccessRecordBo recordBo = new DeviceFenceAccessRecordBo(); + recordBo.setDeviceId(request.getDeviceId()); + recordBo.setFenceId(fence.getId()); + recordBo.setLatitude(request.getLatitude()); + recordBo.setLongitude(request.getLongitude()); + recordBo.setEventTime(new Date()); + // 1表示进入围栏,2表示离开围栏 + recordBo.setEventType(currentStatus); + fenceAccessRecordService.insertByBo(recordBo); + // 根据状态变化更新响应 if (currentStatus == 1L) { // 设备进入围栏 @@ -247,4 +263,4 @@ public class DeviceGeoFenceServiceImpl implements IDeviceGeoFenceService { } -} +} \ No newline at end of file diff --git a/fys-modules/fys-equipment/src/main/resources/mapper/equipment/DeviceFenceAccessRecordMapper.xml b/fys-modules/fys-equipment/src/main/resources/mapper/equipment/DeviceFenceAccessRecordMapper.xml index 065b2e419..b0541143e 100644 --- a/fys-modules/fys-equipment/src/main/resources/mapper/equipment/DeviceFenceAccessRecordMapper.xml +++ b/fys-modules/fys-equipment/src/main/resources/mapper/equipment/DeviceFenceAccessRecordMapper.xml @@ -4,29 +4,26 @@ "http://mybatis.org/dtd/mybatis-3-mapper.dtd"> - + - + \ No newline at end of file