From c8179e164d1cf70ea0b24e76ed44711b27b6d96d Mon Sep 17 00:00:00 2001 From: dy <2389062315@qq.com> Date: Mon, 18 Aug 2025 20:07:47 +0800 Subject: [PATCH] =?UTF-8?q?=E5=8C=BA=E5=9F=9F=E6=91=84=E5=83=8F=E5=A4=B4?= =?UTF-8?q?=E5=90=8D=E7=A7=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../dromara/sis/api/RemoteDeviceService.java | 6 +++ .../sis/api/domain/RemoteSisDeviceManage.java | 32 +++++++++-- .../domain/vo/AttendanceAreaDeviceVo.java | 2 + .../property/domain/vo/AttendanceAreaVo.java | 2 +- .../impl/AttendanceAreaServiceImpl.java | 54 +++++++++++-------- .../impl/TbVisitorManagementServiceImpl.java | 2 + .../sis/domain/covert/CommonBeanCovert.java | 1 + .../sis/dubbo/RemoteDeviceServiceImpl.java | 10 ++++ .../sis/service/ISisDeviceChannelService.java | 2 + .../sis/service/ISisDeviceManageService.java | 5 ++ .../impl/SisDeviceManageServiceImpl.java | 8 +++ 11 files changed, 98 insertions(+), 26 deletions(-) diff --git a/ruoyi-api/sis-api/src/main/java/org/dromara/sis/api/RemoteDeviceService.java b/ruoyi-api/sis-api/src/main/java/org/dromara/sis/api/RemoteDeviceService.java index 95929d84..c8f5a62c 100644 --- a/ruoyi-api/sis-api/src/main/java/org/dromara/sis/api/RemoteDeviceService.java +++ b/ruoyi-api/sis-api/src/main/java/org/dromara/sis/api/RemoteDeviceService.java @@ -25,6 +25,12 @@ public interface RemoteDeviceService { */ Boolean updateDeviceState(RemoteSisDeviceManage item); + /** + * 根据id查询的设备信息 + * + */ + RemoteSisDeviceManage queryDeviceById(Long id); + /** * 查询设备通道信息 * diff --git a/ruoyi-api/sis-api/src/main/java/org/dromara/sis/api/domain/RemoteSisDeviceManage.java b/ruoyi-api/sis-api/src/main/java/org/dromara/sis/api/domain/RemoteSisDeviceManage.java index 8cd5247b..8aab67ac 100644 --- a/ruoyi-api/sis-api/src/main/java/org/dromara/sis/api/domain/RemoteSisDeviceManage.java +++ b/ruoyi-api/sis-api/src/main/java/org/dromara/sis/api/domain/RemoteSisDeviceManage.java @@ -2,11 +2,17 @@ package org.dromara.sis.api.domain; import lombok.Data; +import java.io.Serial; +import java.io.Serializable; + /** * 设备远程调用对象 */ @Data -public class RemoteSisDeviceManage { +public class RemoteSisDeviceManage implements Serializable { + + @Serial + private static final long serialVersionUID = 1L; /** * 主键id @@ -63,8 +69,26 @@ public class RemoteSisDeviceManage { */ private Long groupId; - /** - * 租户编号 - */ private String tenantId; + + /** + * 楼层id + */ + private Long floorId; + + /** + * 是否支持人脸比对 + */ + private Boolean isComparison; + + /** + * 设备经度 + */ + private Double lon; + + /** + * 设备维度 + */ + private Double lat; + } diff --git a/ruoyi-modules/Property/src/main/java/org/dromara/property/domain/vo/AttendanceAreaDeviceVo.java b/ruoyi-modules/Property/src/main/java/org/dromara/property/domain/vo/AttendanceAreaDeviceVo.java index 90f0dc0e..79f8c15e 100644 --- a/ruoyi-modules/Property/src/main/java/org/dromara/property/domain/vo/AttendanceAreaDeviceVo.java +++ b/ruoyi-modules/Property/src/main/java/org/dromara/property/domain/vo/AttendanceAreaDeviceVo.java @@ -7,6 +7,7 @@ import org.dromara.common.excel.annotation.ExcelDictFormat; import org.dromara.common.excel.convert.ExcelDictConvert; import io.github.linpeilie.annotations.AutoMapper; import lombok.Data; +import org.dromara.sis.api.domain.RemoteSisDeviceManage; import java.io.Serial; import java.io.Serializable; @@ -47,4 +48,5 @@ public class AttendanceAreaDeviceVo implements Serializable { private Long deviceManageId; + private RemoteSisDeviceManage remoteSisDeviceManage; } diff --git a/ruoyi-modules/Property/src/main/java/org/dromara/property/domain/vo/AttendanceAreaVo.java b/ruoyi-modules/Property/src/main/java/org/dromara/property/domain/vo/AttendanceAreaVo.java index 8536ed99..0528524d 100644 --- a/ruoyi-modules/Property/src/main/java/org/dromara/property/domain/vo/AttendanceAreaVo.java +++ b/ruoyi-modules/Property/src/main/java/org/dromara/property/domain/vo/AttendanceAreaVo.java @@ -53,7 +53,7 @@ public class AttendanceAreaVo implements Serializable { @ExcelProperty(value = "备注") private String reamark; - private List areaDevice; + private List areaDevice; } diff --git a/ruoyi-modules/Property/src/main/java/org/dromara/property/service/impl/AttendanceAreaServiceImpl.java b/ruoyi-modules/Property/src/main/java/org/dromara/property/service/impl/AttendanceAreaServiceImpl.java index ea1edd95..c368f2ab 100644 --- a/ruoyi-modules/Property/src/main/java/org/dromara/property/service/impl/AttendanceAreaServiceImpl.java +++ b/ruoyi-modules/Property/src/main/java/org/dromara/property/service/impl/AttendanceAreaServiceImpl.java @@ -1,29 +1,31 @@ package org.dromara.property.service.impl; -import cn.hutool.core.util.ObjectUtil; -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 com.baomidou.mybatisplus.extension.plugins.pagination.Page; import lombok.RequiredArgsConstructor; import lombok.extern.slf4j.Slf4j; -import org.dromara.property.domain.AttendanceAreaDevice; -import org.dromara.property.mapper.AttendanceAreaDeviceMapper; -import org.springframework.stereotype.Service; -import org.dromara.property.domain.bo.AttendanceAreaBo; -import org.dromara.property.domain.vo.AttendanceAreaVo; +import org.apache.dubbo.config.annotation.DubboReference; +import org.dromara.common.core.utils.MapstructUtils; +import org.dromara.common.core.utils.StringUtils; +import org.dromara.common.mybatis.core.page.PageQuery; +import org.dromara.common.mybatis.core.page.TableDataInfo; import org.dromara.property.domain.AttendanceArea; +import org.dromara.property.domain.AttendanceAreaDevice; +import org.dromara.property.domain.bo.AttendanceAreaBo; +import org.dromara.property.domain.vo.AttendanceAreaDeviceVo; +import org.dromara.property.domain.vo.AttendanceAreaVo; +import org.dromara.property.mapper.AttendanceAreaDeviceMapper; import org.dromara.property.mapper.AttendanceAreaMapper; import org.dromara.property.service.IAttendanceAreaService; +import org.dromara.sis.api.RemoteDeviceService; +import org.dromara.sis.api.domain.RemoteSisDeviceManage; +import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; -import java.util.ArrayList; +import java.util.Collection; import java.util.List; import java.util.Map; -import java.util.Collection; /** * 区域区域管理Service业务层处理 @@ -40,6 +42,10 @@ public class AttendanceAreaServiceImpl implements IAttendanceAreaService { private final AttendanceAreaDeviceMapper areaDeviceMapper; +// private TdDeviceTypeServiceImpl deviceTypeService; + + @DubboReference + private RemoteDeviceService remoteDeviceService; /** * 查询区域区域管理 * @@ -47,7 +53,7 @@ public class AttendanceAreaServiceImpl implements IAttendanceAreaService { * @return 区域区域管理 */ @Override - public AttendanceAreaVo queryById(Long id){ + public AttendanceAreaVo queryById(Long id) { return baseMapper.selectVoById(id); } @@ -64,11 +70,17 @@ public class AttendanceAreaServiceImpl implements IAttendanceAreaService { Page result = baseMapper.selectVoPage(pageQuery.build(), lqw); Page attendanceAreaVoPage = result.setRecords(result.getRecords().stream().map(vo -> { - //获取areaId - Long areaId = vo.getId(); - //根据areaId查询中间表数据 - List attendanceAreaDeviceList = areaDeviceMapper.selectList(Wrappers.lambdaQuery().eq(AttendanceAreaDevice::getAreaId, areaId)); - vo.setAreaDevice(attendanceAreaDeviceList); + //获取areaId + Long areaId = vo.getId(); + //根据areaId查询中间表数据 + List attendanceAreaDeviceList =areaDeviceMapper.selectVoList(Wrappers.lambdaQuery().eq(AttendanceAreaDevice::getAreaId, areaId)); +// List attendanceAreaDeviceList = areaDeviceMapper.selectList(Wrappers.lambdaQuery().eq(AttendanceAreaDevice::getAreaId, areaId)); + attendanceAreaDeviceList.forEach(item -> { + //根据deviceManageId查询设备数据 + RemoteSisDeviceManage remoteSisDeviceManage = remoteDeviceService.queryDeviceById(item.getDeviceManageId()); + item.setRemoteSisDeviceManage(remoteSisDeviceManage); + }); + vo.setAreaDevice(attendanceAreaDeviceList); return vo; } ).toList()); @@ -163,7 +175,7 @@ public class AttendanceAreaServiceImpl implements IAttendanceAreaService { /** * 保存前的数据校验 */ - private void validEntityBeforeSave(AttendanceArea entity){ + private void validEntityBeforeSave(AttendanceArea entity) { //TODO 做一些数据校验,如唯一约束 } @@ -177,7 +189,7 @@ public class AttendanceAreaServiceImpl implements IAttendanceAreaService { @Transactional(rollbackFor = Exception.class) @Override public Boolean deleteWithValidByIds(Collection ids, Boolean isValid) { - if(isValid){ + if (isValid) { //TODO 做一些业务上的校验,判断是否需要校验 } diff --git a/ruoyi-modules/Property/src/main/java/org/dromara/property/service/impl/TbVisitorManagementServiceImpl.java b/ruoyi-modules/Property/src/main/java/org/dromara/property/service/impl/TbVisitorManagementServiceImpl.java index 63dd52d0..09318f70 100644 --- a/ruoyi-modules/Property/src/main/java/org/dromara/property/service/impl/TbVisitorManagementServiceImpl.java +++ b/ruoyi-modules/Property/src/main/java/org/dromara/property/service/impl/TbVisitorManagementServiceImpl.java @@ -113,6 +113,8 @@ public class TbVisitorManagementServiceImpl implements ITbVisitorManagementServi add.setTenantId(userInfoById.getTenantId()); add.setCreateBy(userInfoById.getUserId()); add.setUpdateById(userInfoById.getUserId()); + //调用SysOssController.upload方法上传图片 + add.setUpdateBy(userInfoById.getUserId()); add.setCreateDept(userInfoById.getDeptId()); boolean flag = baseMapper.insert(add) > 0; diff --git a/ruoyi-modules/Sis/src/main/java/org/dromara/sis/domain/covert/CommonBeanCovert.java b/ruoyi-modules/Sis/src/main/java/org/dromara/sis/domain/covert/CommonBeanCovert.java index cabe53bf..c16eabb1 100644 --- a/ruoyi-modules/Sis/src/main/java/org/dromara/sis/domain/covert/CommonBeanCovert.java +++ b/ruoyi-modules/Sis/src/main/java/org/dromara/sis/domain/covert/CommonBeanCovert.java @@ -24,4 +24,5 @@ public interface CommonBeanCovert { List sdkChannelEntity2Remote(List sdkChannels); + RemoteSisDeviceManage entities2Remote(SisDeviceManage sisDeviceManage); } diff --git a/ruoyi-modules/Sis/src/main/java/org/dromara/sis/dubbo/RemoteDeviceServiceImpl.java b/ruoyi-modules/Sis/src/main/java/org/dromara/sis/dubbo/RemoteDeviceServiceImpl.java index 8b495801..eb158ced 100644 --- a/ruoyi-modules/Sis/src/main/java/org/dromara/sis/dubbo/RemoteDeviceServiceImpl.java +++ b/ruoyi-modules/Sis/src/main/java/org/dromara/sis/dubbo/RemoteDeviceServiceImpl.java @@ -3,6 +3,7 @@ package org.dromara.sis.dubbo; import cn.hutool.core.util.StrUtil; import lombok.RequiredArgsConstructor; import lombok.extern.slf4j.Slf4j; +import org.apache.dubbo.config.annotation.DubboService; import org.dromara.sis.api.RemoteDeviceService; import org.dromara.sis.api.domain.RemoteSdkChannel; import org.dromara.sis.api.domain.RemoteSisDeviceChannel; @@ -14,6 +15,7 @@ import org.dromara.sis.sdk.hik.HikSdkConstans; import org.dromara.sis.service.ISisDeviceChannelService; import org.dromara.sis.service.ISisDeviceManageService; import org.springframework.stereotype.Component; +import org.springframework.stereotype.Service; import java.util.List; @@ -25,6 +27,8 @@ import java.util.List; @Slf4j @Component @RequiredArgsConstructor +@Service +@DubboService public class RemoteDeviceServiceImpl implements RemoteDeviceService { private final ISisDeviceManageService deviceManageService; @@ -41,6 +45,12 @@ public class RemoteDeviceServiceImpl implements RemoteDeviceService { return deviceManageService.updateDeviceState(CommonBeanCovert.INSTANCE.Remote2Entity(item)); } + @Override + public RemoteSisDeviceManage queryDeviceById(Long id) { + SisDeviceManage sisDeviceManage = deviceManageService.queryDeviceById(id); + return CommonBeanCovert.INSTANCE.entities2Remote(sisDeviceManage); + } + @Override public List queryDeviceChannels(String deviceIp) { List channels = deviceChannelService.queryByDeviceIp(deviceIp); diff --git a/ruoyi-modules/Sis/src/main/java/org/dromara/sis/service/ISisDeviceChannelService.java b/ruoyi-modules/Sis/src/main/java/org/dromara/sis/service/ISisDeviceChannelService.java index 8cf5edb7..c16df746 100644 --- a/ruoyi-modules/Sis/src/main/java/org/dromara/sis/service/ISisDeviceChannelService.java +++ b/ruoyi-modules/Sis/src/main/java/org/dromara/sis/service/ISisDeviceChannelService.java @@ -4,6 +4,7 @@ import jakarta.validation.constraints.NotEmpty; import org.dromara.common.core.domain.TreeNode; import org.dromara.common.mybatis.core.page.PageQuery; import org.dromara.common.mybatis.core.page.TableDataInfo; +import org.dromara.sis.api.domain.RemoteSisDeviceChannel; import org.dromara.sis.domain.SisDeviceChannel; import org.dromara.sis.domain.bo.SisDeviceChannelBo; import org.dromara.sis.domain.bo.SisDeviceManageBo; @@ -138,4 +139,5 @@ public interface ISisDeviceChannelService { * @return 返回通道信息 */ SisDeviceChannel queryChannels(@NotEmpty String deviceIp, @NotEmpty String channelNo); + } diff --git a/ruoyi-modules/Sis/src/main/java/org/dromara/sis/service/ISisDeviceManageService.java b/ruoyi-modules/Sis/src/main/java/org/dromara/sis/service/ISisDeviceManageService.java index 06f89f2d..745faef2 100644 --- a/ruoyi-modules/Sis/src/main/java/org/dromara/sis/service/ISisDeviceManageService.java +++ b/ruoyi-modules/Sis/src/main/java/org/dromara/sis/service/ISisDeviceManageService.java @@ -3,6 +3,7 @@ package org.dromara.sis.service; import org.dromara.common.core.domain.TreeNode; import org.dromara.common.mybatis.core.page.PageQuery; import org.dromara.common.mybatis.core.page.TableDataInfo; +import org.dromara.sis.api.domain.RemoteSisDeviceManage; import org.dromara.sis.domain.SisDeviceManage; import org.dromara.sis.domain.bo.SisDeviceManageBo; import org.dromara.sis.domain.vo.SisDeviceManageVo; @@ -26,6 +27,7 @@ public interface ISisDeviceManageService { */ SisDeviceManageVo queryById(Long id); + /** * 分页查询设备管理列表 * @@ -95,6 +97,9 @@ public interface ISisDeviceManageService { */ List queryHikDevices(); + + SisDeviceManage queryDeviceById(Long id); + /** * 更新设备状态信息 * @param sisDeviceManage 设备信息 diff --git a/ruoyi-modules/Sis/src/main/java/org/dromara/sis/service/impl/SisDeviceManageServiceImpl.java b/ruoyi-modules/Sis/src/main/java/org/dromara/sis/service/impl/SisDeviceManageServiceImpl.java index 5a82f2bd..10d0ae28 100644 --- a/ruoyi-modules/Sis/src/main/java/org/dromara/sis/service/impl/SisDeviceManageServiceImpl.java +++ b/ruoyi-modules/Sis/src/main/java/org/dromara/sis/service/impl/SisDeviceManageServiceImpl.java @@ -13,6 +13,7 @@ import org.dromara.common.core.utils.SpringUtils; import org.dromara.common.core.utils.StringUtils; import org.dromara.common.mybatis.core.page.PageQuery; import org.dromara.common.mybatis.core.page.TableDataInfo; +import org.dromara.sis.api.domain.RemoteSisDeviceManage; import org.dromara.sis.api.enums.FactoryNoEnum; import org.dromara.sis.domain.SisDeviceManage; import org.dromara.sis.domain.bo.SisDeviceManageBo; @@ -57,6 +58,7 @@ public class SisDeviceManageServiceImpl implements ISisDeviceManageService { return deviceManageVo; } + /** * 分页查询设备管理列表 * @@ -222,6 +224,12 @@ public class SisDeviceManageServiceImpl implements ISisDeviceManageService { return baseMapper.selectList(lqw); } + + @Override + public SisDeviceManage queryDeviceById(Long id) { + return baseMapper.selectById(id); + } + @Override public Boolean updateDeviceState(SisDeviceManage sisDeviceManage) { LambdaUpdateWrapper lqw = Wrappers.lambdaUpdate();