From 3837c2f2eff702436d0a04bbde5265569ddfc976 Mon Sep 17 00:00:00 2001 From: 15683799673 Date: Mon, 30 Jun 2025 06:17:21 +0800 Subject: [PATCH] =?UTF-8?q?=E5=A2=9E=E5=8A=A0=E9=97=A8=E7=A6=81=E6=8E=88?= =?UTF-8?q?=E6=9D=83?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../property/api/RemoteFloorService.java | 9 +++ .../common/core/domain/TreeEntity.java | 4 +- .../property/domain/bo/TbBuildingBo.java | 2 +- .../dubbo/RemoteFloorServiceImpl.java | 75 +++++++++++++++++++ .../property/service/ITbBuildingService.java | 8 +- .../property/service/ITbCommunityService.java | 12 +-- .../property/service/ITbFloorService.java | 4 +- .../property/service/ITbRoomService.java | 3 +- .../property/service/ITbUnitService.java | 3 +- .../service/impl/TbBuildingServiceImpl.java | 7 +- .../service/impl/TbCommunityServiceImpl.java | 17 ++--- .../service/impl/TbFloorServiceImpl.java | 6 +- .../service/impl/TbRoomServiceImpl.java | 6 +- .../service/impl/TbUnitServiceImpl.java | 6 +- .../SisAccessControlController.java | 46 ++++++++---- .../controller/SisAuthRecordController.java | 46 ++++++++---- .../sis/controller/VideoAlarmController.java | 2 + .../e8/AccessControlController.java | 8 +- .../dromara/sis/domain/SisAccessControl.java | 10 +++ .../org/dromara/sis/domain/SisAuthRecord.java | 15 ++++ .../org/dromara/sis/domain/SisEEightRef.java | 2 - .../sis/domain/bo/SingleAuthRecordBo.java | 44 +++++++++++ .../sis/domain/bo/SisAccessControlBo.java | 7 +- .../sis/domain/bo/SisAuthRecordBo.java | 16 ++-- .../dromara/sis/domain/bo/SisEEightRefBo.java | 25 +++---- .../sis/domain/vo/SisAccessControlVo.java | 6 ++ .../sis/domain/vo/SisAuthRecordVo.java | 13 ++++ .../dromara/sis/domain/vo/SisEEightRefVo.java | 1 - .../sis/mapper/SisAuthRecordMapper.java | 2 + .../sis/sdk/e8/AccessControlService.java | 11 ++- .../req/AccessRecordFindReq.java | 2 +- .../accesscontrol/req/CustomerAuthAddReq.java | 3 +- .../req/CustomerAuthFindReq.java | 2 +- .../accesscontrol/req/RemoteOpenDoorReq.java | 2 +- .../res/AccessRecordFindRes.java | 2 +- .../res/CustomerAuthFindRes.java | 2 +- .../sdk/e8/impl/AccessControlServiceImpl.java | 15 ++-- .../sdk/unview/service/VideoAlarmService.java | 64 ++++++++++++++-- .../sis/service/ISisAccessControlService.java | 17 +++++ .../sis/service/ISisAuthRecordService.java | 25 ++++++- .../sis/service/ISisDeviceManageService.java | 14 +++- .../sis/service/ISisEEightRefService.java | 11 ++- .../impl/SisAccessControlServiceImpl.java | 43 +++++++++-- .../impl/SisAuthRecordServiceImpl.java | 72 ++++++++++-------- .../impl/SisDeviceManageServiceImpl.java | 7 ++ .../service/impl/SisEEightRefServiceImpl.java | 23 +++--- .../mapper/sis/SisAuthRecordMapper.xml | 14 ++++ .../mapper/sis/SisEEightRefMapper.xml | 7 ++ 48 files changed, 553 insertions(+), 188 deletions(-) create mode 100644 ruoyi-modules/Sis/src/main/java/org/dromara/sis/domain/bo/SingleAuthRecordBo.java create mode 100644 ruoyi-modules/Sis/src/main/resources/mapper/sis/SisAuthRecordMapper.xml create mode 100644 ruoyi-modules/Sis/src/main/resources/mapper/sis/SisEEightRefMapper.xml diff --git a/ruoyi-api/property-api/src/main/java/org/dromara/property/api/RemoteFloorService.java b/ruoyi-api/property-api/src/main/java/org/dromara/property/api/RemoteFloorService.java index b7eb62a..6b735d2 100644 --- a/ruoyi-api/property-api/src/main/java/org/dromara/property/api/RemoteFloorService.java +++ b/ruoyi-api/property-api/src/main/java/org/dromara/property/api/RemoteFloorService.java @@ -1,7 +1,10 @@ package org.dromara.property.api; +import org.dromara.common.core.domain.TreeNode; import org.dromara.property.api.domain.vo.RemoteFloorVo; +import java.util.List; + /** * 楼层的远程服务调用 * @@ -12,4 +15,10 @@ public interface RemoteFloorService { RemoteFloorVo queryByFloorId(Long floorId); + /** + * 获取 社区/楼栋/单元/楼栋 集合 + */ + List> queryTreeList(); + + } diff --git a/ruoyi-common/ruoyi-common-core/src/main/java/org/dromara/common/core/domain/TreeEntity.java b/ruoyi-common/ruoyi-common-core/src/main/java/org/dromara/common/core/domain/TreeEntity.java index 0ecdd17..5d2cfec 100644 --- a/ruoyi-common/ruoyi-common-core/src/main/java/org/dromara/common/core/domain/TreeEntity.java +++ b/ruoyi-common/ruoyi-common-core/src/main/java/org/dromara/common/core/domain/TreeEntity.java @@ -1,12 +1,14 @@ package org.dromara.common.core.domain; +import java.io.Serializable; import java.util.List; /** * 通用tree构建工具类 + * * @param */ -public interface TreeEntity { +public interface TreeEntity extends Serializable { T getId(); diff --git a/ruoyi-modules/Property/src/main/java/org/dromara/property/domain/bo/TbBuildingBo.java b/ruoyi-modules/Property/src/main/java/org/dromara/property/domain/bo/TbBuildingBo.java index 3fd3010..2205ff6 100644 --- a/ruoyi-modules/Property/src/main/java/org/dromara/property/domain/bo/TbBuildingBo.java +++ b/ruoyi-modules/Property/src/main/java/org/dromara/property/domain/bo/TbBuildingBo.java @@ -32,7 +32,7 @@ public class TbBuildingBo extends BaseEntity { /** * 园区编码 */ - @NotBlank(message = "园区id不能为空", groups = {AddGroup.class, EditGroup.class}) + @NotNull(message = "园区id不能为空", groups = {AddGroup.class, EditGroup.class}) private Long communityId; /** diff --git a/ruoyi-modules/Property/src/main/java/org/dromara/property/dubbo/RemoteFloorServiceImpl.java b/ruoyi-modules/Property/src/main/java/org/dromara/property/dubbo/RemoteFloorServiceImpl.java index a17f0b2..b78d6e8 100644 --- a/ruoyi-modules/Property/src/main/java/org/dromara/property/dubbo/RemoteFloorServiceImpl.java +++ b/ruoyi-modules/Property/src/main/java/org/dromara/property/dubbo/RemoteFloorServiceImpl.java @@ -3,11 +3,21 @@ package org.dromara.property.dubbo; import lombok.RequiredArgsConstructor; import lombok.extern.slf4j.Slf4j; import org.apache.dubbo.config.annotation.DubboService; +import org.dromara.common.core.domain.TreeNode; import org.dromara.common.core.utils.MapstructUtils; import org.dromara.property.api.RemoteFloorService; import org.dromara.property.api.domain.vo.RemoteFloorVo; +import org.dromara.property.domain.vo.TbBuildingVo; +import org.dromara.property.domain.vo.TbCommunityVo; import org.dromara.property.domain.vo.TbFloorVo; +import org.dromara.property.domain.vo.TbUnitVo; +import org.dromara.property.service.ITbBuildingService; +import org.dromara.property.service.ITbCommunityService; import org.dromara.property.service.ITbFloorService; +import org.dromara.property.service.ITbUnitService; + +import java.util.ArrayList; +import java.util.List; /** * 楼层服务远程调用实现 @@ -19,11 +29,76 @@ import org.dromara.property.service.ITbFloorService; @DubboService public class RemoteFloorServiceImpl implements RemoteFloorService { + private final ITbCommunityService tbCommunityService; + private final ITbBuildingService tbBuildingService; + private final ITbUnitService unitService; private final ITbFloorService floorService; + @Override public RemoteFloorVo queryByFloorId(Long floorId) { TbFloorVo tbFloorVo = floorService.queryById(floorId); return MapstructUtils.convert(tbFloorVo, RemoteFloorVo.class); } + + + @Override + public List> queryTreeList() { + + List> treeList = new ArrayList<>(); + List tbCommunityVos = tbCommunityService.queryAll(); + if (tbCommunityVos == null || tbCommunityVos.isEmpty()) { + return treeList; + } + List> l1 = tbCommunityVos.stream().map(item -> { + TreeNode node = new TreeNode<>(); + node.setLevel(1); + node.setCode(item.getId()); + node.setParentCode(0L); + node.setLabel(item.getCommunityName()); + return node; + }).toList(); + treeList.addAll(l1); + List tbBuildingVos = tbBuildingService.queryAll(); + if (tbBuildingVos == null || tbBuildingVos.isEmpty()) { + return treeList; + } + List> l2 = tbBuildingVos.stream().map(item -> { + TreeNode node = new TreeNode<>(); + node.setLevel(2); + node.setCode(item.getId()); + node.setParentCode(item.getCommunityId()); + node.setLabel(item.getBuildingName()); + return node; + }).toList(); + treeList.addAll(l2); + + List tbUnitVos = unitService.queryAll(); + if (tbUnitVos == null || tbUnitVos.isEmpty()) { + return treeList; + } + List> l3 = tbUnitVos.stream().map(item -> { + TreeNode node = new TreeNode<>(); + node.setLevel(3); + node.setCode(item.getId()); + node.setParentCode(item.getBuildingId()); + node.setLabel(item.getUnitName()); + return node; + }).toList(); + treeList.addAll(l3); + List tbFloorVos = floorService.queryAll(); + if (tbFloorVos == null || tbFloorVos.isEmpty()) { + return treeList; + } + List> l4 = tbFloorVos.stream().map(item -> { + TreeNode node = new TreeNode<>(); + node.setLevel(4); + node.setCode(item.getId()); + node.setParentCode(item.getUnitId()); + node.setLabel(item.getFloorName()); + return node; + }).toList(); + treeList.addAll(l4); + return treeList; + } } diff --git a/ruoyi-modules/Property/src/main/java/org/dromara/property/service/ITbBuildingService.java b/ruoyi-modules/Property/src/main/java/org/dromara/property/service/ITbBuildingService.java index 4703ad0..3e5f07f 100644 --- a/ruoyi-modules/Property/src/main/java/org/dromara/property/service/ITbBuildingService.java +++ b/ruoyi-modules/Property/src/main/java/org/dromara/property/service/ITbBuildingService.java @@ -66,10 +66,6 @@ public interface ITbBuildingService { */ Boolean deleteWithValidByIds(Collection ids, Boolean isValid); - /** - * 加载当前租户下的所有建筑 - * @param tenantId 租户编码 - * @return 返回建筑列表 - */ - List queryByTenantId(String tenantId); + + List queryAll(); } diff --git a/ruoyi-modules/Property/src/main/java/org/dromara/property/service/ITbCommunityService.java b/ruoyi-modules/Property/src/main/java/org/dromara/property/service/ITbCommunityService.java index 81764d1..3fa4662 100644 --- a/ruoyi-modules/Property/src/main/java/org/dromara/property/service/ITbCommunityService.java +++ b/ruoyi-modules/Property/src/main/java/org/dromara/property/service/ITbCommunityService.java @@ -25,13 +25,8 @@ public interface ITbCommunityService { */ TbCommunityVo queryById(Long id); - /** - * 查询小区列表 - * - * @param tenantId 租户编码 - * @return 小区 - */ - List queryByTenantId(String tenantId); + + List queryAll(); /** * 分页查询小区列表 @@ -77,9 +72,10 @@ public interface ITbCommunityService { /** * 加载社区树结构 + * * @param level 加载等级 * @return 树结构 */ - List> tree(Integer level,String tenantId); + List> tree(Integer level, String tenantId); } diff --git a/ruoyi-modules/Property/src/main/java/org/dromara/property/service/ITbFloorService.java b/ruoyi-modules/Property/src/main/java/org/dromara/property/service/ITbFloorService.java index 47c7d8d..6849e8b 100644 --- a/ruoyi-modules/Property/src/main/java/org/dromara/property/service/ITbFloorService.java +++ b/ruoyi-modules/Property/src/main/java/org/dromara/property/service/ITbFloorService.java @@ -67,5 +67,7 @@ public interface ITbFloorService { */ Boolean deleteWithValidByIds(Collection ids, Boolean isValid); - List queryByTenantId(String tenantId); + + List queryAll(); + } diff --git a/ruoyi-modules/Property/src/main/java/org/dromara/property/service/ITbRoomService.java b/ruoyi-modules/Property/src/main/java/org/dromara/property/service/ITbRoomService.java index d2a56ce..0fc5768 100644 --- a/ruoyi-modules/Property/src/main/java/org/dromara/property/service/ITbRoomService.java +++ b/ruoyi-modules/Property/src/main/java/org/dromara/property/service/ITbRoomService.java @@ -68,5 +68,6 @@ public interface ITbRoomService { */ Boolean deleteWithValidByIds(Collection ids, Boolean isValid); - List queryByTenantId(String tenantId); + List queryAll(); + } diff --git a/ruoyi-modules/Property/src/main/java/org/dromara/property/service/ITbUnitService.java b/ruoyi-modules/Property/src/main/java/org/dromara/property/service/ITbUnitService.java index 839e76d..6016471 100644 --- a/ruoyi-modules/Property/src/main/java/org/dromara/property/service/ITbUnitService.java +++ b/ruoyi-modules/Property/src/main/java/org/dromara/property/service/ITbUnitService.java @@ -66,6 +66,7 @@ public interface ITbUnitService { */ Boolean deleteWithValidByIds(Collection ids, Boolean isValid); - List queryByTenantId(String tenantId); + + List queryAll(); } diff --git a/ruoyi-modules/Property/src/main/java/org/dromara/property/service/impl/TbBuildingServiceImpl.java b/ruoyi-modules/Property/src/main/java/org/dromara/property/service/impl/TbBuildingServiceImpl.java index d4ed2a1..e8eafa0 100644 --- a/ruoyi-modules/Property/src/main/java/org/dromara/property/service/impl/TbBuildingServiceImpl.java +++ b/ruoyi-modules/Property/src/main/java/org/dromara/property/service/impl/TbBuildingServiceImpl.java @@ -147,10 +147,9 @@ public class TbBuildingServiceImpl implements ITbBuildingService { return baseMapper.deleteByIds(ids) > 0; } + @Override - public List queryByTenantId(String tenantId) { - LambdaQueryWrapper lqw = Wrappers.lambdaQuery(); - lqw.eq(TbBuilding::getTenantId, tenantId); - return baseMapper.selectVoList(lqw); + public List queryAll() { + return baseMapper.selectVoList(null); } } diff --git a/ruoyi-modules/Property/src/main/java/org/dromara/property/service/impl/TbCommunityServiceImpl.java b/ruoyi-modules/Property/src/main/java/org/dromara/property/service/impl/TbCommunityServiceImpl.java index 146c5ad..81aae67 100644 --- a/ruoyi-modules/Property/src/main/java/org/dromara/property/service/impl/TbCommunityServiceImpl.java +++ b/ruoyi-modules/Property/src/main/java/org/dromara/property/service/impl/TbCommunityServiceImpl.java @@ -45,7 +45,7 @@ public class TbCommunityServiceImpl implements ITbCommunityService { @Override public List> tree(Integer level, String tenantId) { // 默认加载社区树 - List tbCommunityVos = queryByTenantId(tenantId); + List tbCommunityVos = queryAll(); if (tbCommunityVos == null || tbCommunityVos.isEmpty()) { return new ArrayList<>(); } @@ -62,7 +62,7 @@ public class TbCommunityServiceImpl implements ITbCommunityService { return community; } if (level >= 2) { - List vos = buildingService.queryByTenantId(tenantId); + List vos = buildingService.queryAll(); if (vos != null && !vos.isEmpty()) { List> list = vos.stream().map(item -> { TreeNode node = new TreeNode<>(); @@ -77,7 +77,7 @@ public class TbCommunityServiceImpl implements ITbCommunityService { } } if (level >= 3) { - List vos = unitService.queryByTenantId(tenantId); + List vos = unitService.queryAll(); if (vos != null && !vos.isEmpty()) { List> list = vos.stream().map(item -> { TreeNode node = new TreeNode<>(); @@ -92,7 +92,7 @@ public class TbCommunityServiceImpl implements ITbCommunityService { } } if (level >= 4) { - List vos = floorService.queryByTenantId(tenantId); + List vos = floorService.queryAll(); if (vos != null && !vos.isEmpty()) { List> list = vos.stream().map(item -> { TreeNode node = new TreeNode<>(); @@ -108,7 +108,7 @@ public class TbCommunityServiceImpl implements ITbCommunityService { } if (level >= 5) { - List vos = roomService.queryByTenantId(tenantId); + List vos = roomService.queryAll(); if (vos != null && !vos.isEmpty()) { List> list = vos.stream().map(item -> { TreeNode node = new TreeNode<>(); @@ -125,11 +125,10 @@ public class TbCommunityServiceImpl implements ITbCommunityService { return TreeUtils.build(community, 0L); } + @Override - public List queryByTenantId(String tenantId) { - LambdaQueryWrapper queryWrapper = Wrappers.lambdaQuery(); - queryWrapper.eq(TbCommunity::getTenantId, tenantId); - return baseMapper.selectVoList(queryWrapper); + public List queryAll() { + return baseMapper.selectVoList(); } /** diff --git a/ruoyi-modules/Property/src/main/java/org/dromara/property/service/impl/TbFloorServiceImpl.java b/ruoyi-modules/Property/src/main/java/org/dromara/property/service/impl/TbFloorServiceImpl.java index 2c361e7..29e9a4a 100644 --- a/ruoyi-modules/Property/src/main/java/org/dromara/property/service/impl/TbFloorServiceImpl.java +++ b/ruoyi-modules/Property/src/main/java/org/dromara/property/service/impl/TbFloorServiceImpl.java @@ -145,9 +145,7 @@ public class TbFloorServiceImpl implements ITbFloorService { } @Override - public List queryByTenantId(String tenantId) { - LambdaQueryWrapper lqw = Wrappers.lambdaQuery(); - lqw.eq(TbFloor::getTenantId, tenantId); - return baseMapper.selectVoList(lqw); + public List queryAll() { + return baseMapper.selectVoList(); } } diff --git a/ruoyi-modules/Property/src/main/java/org/dromara/property/service/impl/TbRoomServiceImpl.java b/ruoyi-modules/Property/src/main/java/org/dromara/property/service/impl/TbRoomServiceImpl.java index fd55cb0..89555f0 100644 --- a/ruoyi-modules/Property/src/main/java/org/dromara/property/service/impl/TbRoomServiceImpl.java +++ b/ruoyi-modules/Property/src/main/java/org/dromara/property/service/impl/TbRoomServiceImpl.java @@ -146,9 +146,7 @@ public class TbRoomServiceImpl implements ITbRoomService { } @Override - public List queryByTenantId(String tenantId) { - LambdaQueryWrapper lqw = Wrappers.lambdaQuery(); - lqw.eq(TbRoom::getTenantId, tenantId); - return baseMapper.selectVoList(lqw); + public List queryAll() { + return baseMapper.selectVoList(); } } diff --git a/ruoyi-modules/Property/src/main/java/org/dromara/property/service/impl/TbUnitServiceImpl.java b/ruoyi-modules/Property/src/main/java/org/dromara/property/service/impl/TbUnitServiceImpl.java index 2b68560..cc474ac 100644 --- a/ruoyi-modules/Property/src/main/java/org/dromara/property/service/impl/TbUnitServiceImpl.java +++ b/ruoyi-modules/Property/src/main/java/org/dromara/property/service/impl/TbUnitServiceImpl.java @@ -143,9 +143,7 @@ public class TbUnitServiceImpl implements ITbUnitService { } @Override - public List queryByTenantId(String tenantId) { - LambdaQueryWrapper queryWrapper = Wrappers.lambdaQuery(); - queryWrapper.eq(TbUnit::getTenantId, tenantId); - return baseMapper.selectVoList(queryWrapper); + public List queryAll() { + return baseMapper.selectVoList(); } } diff --git a/ruoyi-modules/Sis/src/main/java/org/dromara/sis/controller/SisAccessControlController.java b/ruoyi-modules/Sis/src/main/java/org/dromara/sis/controller/SisAccessControlController.java index 62287cc..4195025 100644 --- a/ruoyi-modules/Sis/src/main/java/org/dromara/sis/controller/SisAccessControlController.java +++ b/ruoyi-modules/Sis/src/main/java/org/dromara/sis/controller/SisAccessControlController.java @@ -1,26 +1,28 @@ package org.dromara.sis.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 jakarta.servlet.http.HttpServletResponse; +import jakarta.validation.constraints.NotEmpty; +import jakarta.validation.constraints.NotNull; +import lombok.RequiredArgsConstructor; import org.dromara.common.core.domain.R; +import org.dromara.common.core.domain.TreeNode; 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.sis.domain.vo.SisAccessControlVo; -import org.dromara.sis.domain.bo.SisAccessControlBo; -import org.dromara.sis.service.ISisAccessControlService; +import org.dromara.common.idempotent.annotation.RepeatSubmit; +import org.dromara.common.log.annotation.Log; +import org.dromara.common.log.enums.BusinessType; +import org.dromara.common.mybatis.core.page.PageQuery; import org.dromara.common.mybatis.core.page.TableDataInfo; +import org.dromara.common.web.core.BaseController; +import org.dromara.sis.domain.bo.SisAccessControlBo; +import org.dromara.sis.domain.vo.SisAccessControlVo; +import org.dromara.sis.service.ISisAccessControlService; +import org.springframework.validation.annotation.Validated; +import org.springframework.web.bind.annotation.*; + +import java.util.List; /** * 门禁设备 @@ -65,7 +67,7 @@ public class SisAccessControlController extends BaseController { @SaCheckPermission("sis:accessControl:query") @GetMapping("/{id}") public R getInfo(@NotNull(message = "主键不能为空") - @PathVariable("id") Long id) { + @PathVariable("id") Long id) { return R.ok(sisAccessControlService.queryById(id)); } @@ -103,4 +105,16 @@ public class SisAccessControlController extends BaseController { @PathVariable("ids") Long[] ids) { return toAjax(sisAccessControlService.deleteWithValidByIds(List.of(ids), true)); } + + /** + * 生成 社区/建组/单元/楼栋/门禁树结构 + * + * @return 返回门禁树 + */ + @GetMapping("/tree") + public R>> queryAcTree() { + return R.ok(sisAccessControlService.queryAcTree()); + } + + } diff --git a/ruoyi-modules/Sis/src/main/java/org/dromara/sis/controller/SisAuthRecordController.java b/ruoyi-modules/Sis/src/main/java/org/dromara/sis/controller/SisAuthRecordController.java index 5f632f6..d7fca73 100644 --- a/ruoyi-modules/Sis/src/main/java/org/dromara/sis/controller/SisAuthRecordController.java +++ b/ruoyi-modules/Sis/src/main/java/org/dromara/sis/controller/SisAuthRecordController.java @@ -1,26 +1,28 @@ package org.dromara.sis.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 jakarta.servlet.http.HttpServletResponse; +import jakarta.validation.constraints.NotEmpty; +import jakarta.validation.constraints.NotNull; +import lombok.RequiredArgsConstructor; 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.sis.domain.vo.SisAuthRecordVo; -import org.dromara.sis.domain.bo.SisAuthRecordBo; -import org.dromara.sis.service.ISisAuthRecordService; +import org.dromara.common.idempotent.annotation.RepeatSubmit; +import org.dromara.common.log.annotation.Log; +import org.dromara.common.log.enums.BusinessType; +import org.dromara.common.mybatis.core.page.PageQuery; import org.dromara.common.mybatis.core.page.TableDataInfo; +import org.dromara.common.web.core.BaseController; +import org.dromara.sis.domain.bo.SingleAuthRecordBo; +import org.dromara.sis.domain.bo.SisAuthRecordBo; +import org.dromara.sis.domain.vo.SisAuthRecordVo; +import org.dromara.sis.service.ISisAuthRecordService; +import org.springframework.validation.annotation.Validated; +import org.springframework.web.bind.annotation.*; + +import java.util.List; /** * 授权记录 @@ -65,7 +67,7 @@ public class SisAuthRecordController extends BaseController { @SaCheckPermission("sis:authRecord:query") @GetMapping("/{id}") public R getInfo(@NotNull(message = "主键不能为空") - @PathVariable("id") Long id) { + @PathVariable("id") Long id) { return R.ok(sisAuthRecordService.queryById(id)); } @@ -80,6 +82,18 @@ public class SisAuthRecordController extends BaseController { return toAjax(sisAuthRecordService.insertByBo(bo)); } + /** + * 新增授权记录 + */ + @SaCheckPermission("sis:authRecord:add") + @Log(title = "单个人像授权", businessType = BusinessType.INSERT) + @RepeatSubmit() + @PostMapping("/auth/single") + public R singleAuth(@Validated(AddGroup.class) @RequestBody SingleAuthRecordBo bo) { + return toAjax(sisAuthRecordService.singleAuth(bo)); + } + + /** * 修改授权记录 */ diff --git a/ruoyi-modules/Sis/src/main/java/org/dromara/sis/controller/VideoAlarmController.java b/ruoyi-modules/Sis/src/main/java/org/dromara/sis/controller/VideoAlarmController.java index a38b9ed..73ab4dc 100644 --- a/ruoyi-modules/Sis/src/main/java/org/dromara/sis/controller/VideoAlarmController.java +++ b/ruoyi-modules/Sis/src/main/java/org/dromara/sis/controller/VideoAlarmController.java @@ -7,6 +7,7 @@ import org.dromara.sis.sdk.unview.model.UvModel; import org.dromara.sis.sdk.unview.service.VideoAlarmService; import org.springframework.web.bind.annotation.PostMapping; import org.springframework.web.bind.annotation.RequestBody; +import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController; /** @@ -17,6 +18,7 @@ import org.springframework.web.bind.annotation.RestController; */ @RestController @RequiredArgsConstructor +@RequestMapping("/uniview") public class VideoAlarmController { @Resource diff --git a/ruoyi-modules/Sis/src/main/java/org/dromara/sis/controller/e8/AccessControlController.java b/ruoyi-modules/Sis/src/main/java/org/dromara/sis/controller/e8/AccessControlController.java index 1b35a4b..9fd6c88 100644 --- a/ruoyi-modules/Sis/src/main/java/org/dromara/sis/controller/e8/AccessControlController.java +++ b/ruoyi-modules/Sis/src/main/java/org/dromara/sis/controller/e8/AccessControlController.java @@ -5,11 +5,11 @@ import lombok.extern.slf4j.Slf4j; import org.dromara.common.core.domain.R; import org.dromara.common.mybatis.core.page.TableDataInfo; import org.dromara.sis.sdk.e8.AccessControlService; -import org.dromara.sis.sdk.e8.domain.accessControl.req.CustomerAuthAddReq; -import org.dromara.sis.sdk.e8.domain.accessControl.req.RemoteOpenDoorReq; -import org.dromara.sis.sdk.e8.domain.accessControl.res.AccessRecordFindRes; import org.dromara.sis.sdk.e8.domain.QueryDto; -import org.dromara.sis.sdk.e8.domain.accessControl.res.CustomerAuthFindRes; +import org.dromara.sis.sdk.e8.domain.accesscontrol.req.CustomerAuthAddReq; +import org.dromara.sis.sdk.e8.domain.accesscontrol.req.RemoteOpenDoorReq; +import org.dromara.sis.sdk.e8.domain.accesscontrol.res.AccessRecordFindRes; +import org.dromara.sis.sdk.e8.domain.accesscontrol.res.CustomerAuthFindRes; import org.springframework.web.bind.annotation.PostMapping; import org.springframework.web.bind.annotation.RequestBody; import org.springframework.web.bind.annotation.RequestMapping; diff --git a/ruoyi-modules/Sis/src/main/java/org/dromara/sis/domain/SisAccessControl.java b/ruoyi-modules/Sis/src/main/java/org/dromara/sis/domain/SisAccessControl.java index 292b588..74491b7 100644 --- a/ruoyi-modules/Sis/src/main/java/org/dromara/sis/domain/SisAccessControl.java +++ b/ruoyi-modules/Sis/src/main/java/org/dromara/sis/domain/SisAccessControl.java @@ -93,5 +93,15 @@ public class SisAccessControl extends TenantEntity { */ private String outCode; + /** + * 绑定设备id + */ + private Long bindDeviceId; + + /** + * 绑定设备ip + */ + private String bindDeviceIp; + } diff --git a/ruoyi-modules/Sis/src/main/java/org/dromara/sis/domain/SisAuthRecord.java b/ruoyi-modules/Sis/src/main/java/org/dromara/sis/domain/SisAuthRecord.java index 8ae79a6..0479411 100644 --- a/ruoyi-modules/Sis/src/main/java/org/dromara/sis/domain/SisAuthRecord.java +++ b/ruoyi-modules/Sis/src/main/java/org/dromara/sis/domain/SisAuthRecord.java @@ -47,5 +47,20 @@ public class SisAuthRecord extends TenantEntity { */ private Long eqbId; + /** + * E8权限ID + */ + private Long remoteAuthId; + + /* + 门id + */ + private Long doorId; + + /** + * 设备id + */ + private Long deviceId; + } diff --git a/ruoyi-modules/Sis/src/main/java/org/dromara/sis/domain/SisEEightRef.java b/ruoyi-modules/Sis/src/main/java/org/dromara/sis/domain/SisEEightRef.java index 04e2188..e3c3dea 100644 --- a/ruoyi-modules/Sis/src/main/java/org/dromara/sis/domain/SisEEightRef.java +++ b/ruoyi-modules/Sis/src/main/java/org/dromara/sis/domain/SisEEightRef.java @@ -66,6 +66,4 @@ public class SisEEightRef extends TenantEntity { * E8权限ID */ private Long remoteAuthId; - - } diff --git a/ruoyi-modules/Sis/src/main/java/org/dromara/sis/domain/bo/SingleAuthRecordBo.java b/ruoyi-modules/Sis/src/main/java/org/dromara/sis/domain/bo/SingleAuthRecordBo.java new file mode 100644 index 0000000..9c71ee8 --- /dev/null +++ b/ruoyi-modules/Sis/src/main/java/org/dromara/sis/domain/bo/SingleAuthRecordBo.java @@ -0,0 +1,44 @@ +package org.dromara.sis.domain.bo; + +import io.github.linpeilie.annotations.AutoMapper; +import jakarta.validation.constraints.NotNull; +import lombok.Data; +import lombok.EqualsAndHashCode; +import org.dromara.common.core.validate.AddGroup; +import org.dromara.common.core.validate.EditGroup; +import org.dromara.common.mybatis.core.domain.BaseEntity; +import org.dromara.sis.domain.SisAuthRecord; + +import java.util.List; + +/** + * 授权记录业务对象 sis_auth_record + * + * @author lxj + * @since 2025-06-28 + */ +@Data +@EqualsAndHashCode(callSuper = true) +@AutoMapper(target = SisAuthRecord.class, reverseConvertGenerate = false) +public class SingleAuthRecordBo extends BaseEntity { + + + /** + * 图像库Id + */ + @NotNull(message = "图像库Id不能为空", groups = {AddGroup.class, EditGroup.class}) + private Long libId; + + /** + * 图像id列表 + */ + @NotNull(message = "图像id列表不能为空", groups = {AddGroup.class, EditGroup.class}) + private Long imgId; + + /** + * 门禁id列表 + */ + @NotNull(message = "门禁id列表能为空", groups = {AddGroup.class, EditGroup.class}) + private List acIds; + +} diff --git a/ruoyi-modules/Sis/src/main/java/org/dromara/sis/domain/bo/SisAccessControlBo.java b/ruoyi-modules/Sis/src/main/java/org/dromara/sis/domain/bo/SisAccessControlBo.java index b9e2d1c..4e7fe71 100644 --- a/ruoyi-modules/Sis/src/main/java/org/dromara/sis/domain/bo/SisAccessControlBo.java +++ b/ruoyi-modules/Sis/src/main/java/org/dromara/sis/domain/bo/SisAccessControlBo.java @@ -102,6 +102,11 @@ public class SisAccessControlBo extends BaseEntity { /** * 绑定设备Id */ - private Long deviceId; + private Long bindDeviceId; + + /** + * 绑定设备ip + */ + private String bindDeviceIp; } diff --git a/ruoyi-modules/Sis/src/main/java/org/dromara/sis/domain/bo/SisAuthRecordBo.java b/ruoyi-modules/Sis/src/main/java/org/dromara/sis/domain/bo/SisAuthRecordBo.java index 8e70610..053bdc0 100644 --- a/ruoyi-modules/Sis/src/main/java/org/dromara/sis/domain/bo/SisAuthRecordBo.java +++ b/ruoyi-modules/Sis/src/main/java/org/dromara/sis/domain/bo/SisAuthRecordBo.java @@ -1,13 +1,13 @@ package org.dromara.sis.domain.bo; -import org.dromara.sis.domain.SisAuthRecord; -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 jakarta.validation.constraints.NotNull; import lombok.Data; import lombok.EqualsAndHashCode; -import jakarta.validation.constraints.*; +import org.dromara.common.core.validate.AddGroup; +import org.dromara.common.core.validate.EditGroup; +import org.dromara.common.mybatis.core.domain.BaseEntity; +import org.dromara.sis.domain.SisAuthRecord; import java.util.List; @@ -22,12 +22,6 @@ import java.util.List; @AutoMapper(target = SisAuthRecord.class, reverseConvertGenerate = false) public class SisAuthRecordBo extends BaseEntity { - /** - * 主键id - */ - @NotNull(message = "主键id不能为空", groups = {EditGroup.class}) - private Long id; - /** * 图像库Id */ diff --git a/ruoyi-modules/Sis/src/main/java/org/dromara/sis/domain/bo/SisEEightRefBo.java b/ruoyi-modules/Sis/src/main/java/org/dromara/sis/domain/bo/SisEEightRefBo.java index 0e44a8c..fcf80fc 100644 --- a/ruoyi-modules/Sis/src/main/java/org/dromara/sis/domain/bo/SisEEightRefBo.java +++ b/ruoyi-modules/Sis/src/main/java/org/dromara/sis/domain/bo/SisEEightRefBo.java @@ -1,13 +1,14 @@ package org.dromara.sis.domain.bo; -import org.dromara.sis.domain.SisEEightRef; -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 jakarta.validation.constraints.NotBlank; +import jakarta.validation.constraints.NotNull; import lombok.Data; import lombok.EqualsAndHashCode; -import jakarta.validation.constraints.*; +import org.dromara.common.core.validate.AddGroup; +import org.dromara.common.core.validate.EditGroup; +import org.dromara.common.mybatis.core.domain.BaseEntity; +import org.dromara.sis.domain.SisEEightRef; import java.util.List; @@ -25,19 +26,19 @@ public class SisEEightRefBo extends BaseEntity { /** * 主键 */ - @NotNull(message = "主键不能为空", groups = { EditGroup.class }) + @NotNull(message = "主键不能为空", groups = {EditGroup.class}) private Long id; /** * 系统用户ID */ - @NotNull(message = "系统用户ID不能为空", groups = { AddGroup.class, EditGroup.class }) + @NotNull(message = "系统用户ID不能为空", groups = {AddGroup.class, EditGroup.class}) private Long userId; /** * 门禁id列表 */ - @NotBlank(message = "门禁id列表不能为空", groups = { AddGroup.class, EditGroup.class }) + @NotBlank(message = "门禁id列表不能为空", groups = {AddGroup.class, EditGroup.class}) private List acIds; /** @@ -53,7 +54,7 @@ public class SisEEightRefBo extends BaseEntity { /** * E8用户ID */ - @NotNull(message = "E8用户ID不能为空", groups = { AddGroup.class, EditGroup.class }) + @NotNull(message = "E8用户ID不能为空", groups = {AddGroup.class, EditGroup.class}) private Long remoteUserId; /** @@ -66,10 +67,4 @@ public class SisEEightRefBo extends BaseEntity { */ private Long remoteVoucherId; - /** - * E8权限ID - */ - private Long remoteAuthId; - - } diff --git a/ruoyi-modules/Sis/src/main/java/org/dromara/sis/domain/vo/SisAccessControlVo.java b/ruoyi-modules/Sis/src/main/java/org/dromara/sis/domain/vo/SisAccessControlVo.java index 9d626fc..553a6c3 100644 --- a/ruoyi-modules/Sis/src/main/java/org/dromara/sis/domain/vo/SisAccessControlVo.java +++ b/ruoyi-modules/Sis/src/main/java/org/dromara/sis/domain/vo/SisAccessControlVo.java @@ -105,5 +105,11 @@ public class SisAccessControlVo implements Serializable { @ExcelProperty(value = "外部编码") private String outCode; + private Long bindDeviceId; + + /** + * 绑定设备ip + */ + private String bindDeviceIp; } diff --git a/ruoyi-modules/Sis/src/main/java/org/dromara/sis/domain/vo/SisAuthRecordVo.java b/ruoyi-modules/Sis/src/main/java/org/dromara/sis/domain/vo/SisAuthRecordVo.java index b835cbb..07a231a 100644 --- a/ruoyi-modules/Sis/src/main/java/org/dromara/sis/domain/vo/SisAuthRecordVo.java +++ b/ruoyi-modules/Sis/src/main/java/org/dromara/sis/domain/vo/SisAuthRecordVo.java @@ -55,5 +55,18 @@ public class SisAuthRecordVo implements Serializable { @ExcelProperty(value = "设备id") private Long eqbId; + /** + * E8权限ID + */ + private Long remoteAuthId; + /* + 门id + */ + private Long doorId; + + /** + * 设备id + */ + private Long deviceId; } diff --git a/ruoyi-modules/Sis/src/main/java/org/dromara/sis/domain/vo/SisEEightRefVo.java b/ruoyi-modules/Sis/src/main/java/org/dromara/sis/domain/vo/SisEEightRefVo.java index c118c80..3f664f1 100644 --- a/ruoyi-modules/Sis/src/main/java/org/dromara/sis/domain/vo/SisEEightRefVo.java +++ b/ruoyi-modules/Sis/src/main/java/org/dromara/sis/domain/vo/SisEEightRefVo.java @@ -82,5 +82,4 @@ public class SisEEightRefVo implements Serializable { @ExcelProperty(value = "E8权限ID") private Long remoteAuthId; - } diff --git a/ruoyi-modules/Sis/src/main/java/org/dromara/sis/mapper/SisAuthRecordMapper.java b/ruoyi-modules/Sis/src/main/java/org/dromara/sis/mapper/SisAuthRecordMapper.java index f506105..abfef87 100644 --- a/ruoyi-modules/Sis/src/main/java/org/dromara/sis/mapper/SisAuthRecordMapper.java +++ b/ruoyi-modules/Sis/src/main/java/org/dromara/sis/mapper/SisAuthRecordMapper.java @@ -1,5 +1,6 @@ package org.dromara.sis.mapper; +import org.apache.ibatis.annotations.Param; import org.dromara.sis.domain.SisAuthRecord; import org.dromara.sis.domain.vo.SisAuthRecordVo; import org.dromara.common.mybatis.core.mapper.BaseMapperPlus; @@ -12,4 +13,5 @@ import org.dromara.common.mybatis.core.mapper.BaseMapperPlus; */ public interface SisAuthRecordMapper extends BaseMapperPlus { + SisAuthRecordVo checkAuth(@Param("personId") Integer personId,@Param("accessControlId") Long accessControlId); } diff --git a/ruoyi-modules/Sis/src/main/java/org/dromara/sis/sdk/e8/AccessControlService.java b/ruoyi-modules/Sis/src/main/java/org/dromara/sis/sdk/e8/AccessControlService.java index 6097937..f7c4d51 100644 --- a/ruoyi-modules/Sis/src/main/java/org/dromara/sis/sdk/e8/AccessControlService.java +++ b/ruoyi-modules/Sis/src/main/java/org/dromara/sis/sdk/e8/AccessControlService.java @@ -1,11 +1,12 @@ package org.dromara.sis.sdk.e8; import org.dromara.common.mybatis.core.page.TableDataInfo; -import org.dromara.sis.sdk.e8.domain.accessControl.req.CustomerAuthAddReq; -import org.dromara.sis.sdk.e8.domain.accessControl.req.RemoteOpenDoorReq; -import org.dromara.sis.sdk.e8.domain.accessControl.res.AccessRecordFindRes; +import org.dromara.sis.domain.vo.SisAccessControlVo; import org.dromara.sis.sdk.e8.domain.QueryDto; -import org.dromara.sis.sdk.e8.domain.accessControl.res.CustomerAuthFindRes; +import org.dromara.sis.sdk.e8.domain.accesscontrol.req.CustomerAuthAddReq; +import org.dromara.sis.sdk.e8.domain.accesscontrol.req.RemoteOpenDoorReq; +import org.dromara.sis.sdk.e8.domain.accesscontrol.res.AccessRecordFindRes; +import org.dromara.sis.sdk.e8.domain.accesscontrol.res.CustomerAuthFindRes; /** * @author lsm @@ -46,4 +47,6 @@ public interface AccessControlService { * @return TableDataInfo */ TableDataInfo getPageCustomerAuth(QueryDto dto); + + } diff --git a/ruoyi-modules/Sis/src/main/java/org/dromara/sis/sdk/e8/domain/accesscontrol/req/AccessRecordFindReq.java b/ruoyi-modules/Sis/src/main/java/org/dromara/sis/sdk/e8/domain/accesscontrol/req/AccessRecordFindReq.java index 3cabd92..dbe6323 100644 --- a/ruoyi-modules/Sis/src/main/java/org/dromara/sis/sdk/e8/domain/accesscontrol/req/AccessRecordFindReq.java +++ b/ruoyi-modules/Sis/src/main/java/org/dromara/sis/sdk/e8/domain/accesscontrol/req/AccessRecordFindReq.java @@ -1,4 +1,4 @@ -package org.dromara.sis.sdk.e8.domain.accessControl.req; +package org.dromara.sis.sdk.e8.domain.accesscontrol.req; import lombok.Data; diff --git a/ruoyi-modules/Sis/src/main/java/org/dromara/sis/sdk/e8/domain/accesscontrol/req/CustomerAuthAddReq.java b/ruoyi-modules/Sis/src/main/java/org/dromara/sis/sdk/e8/domain/accesscontrol/req/CustomerAuthAddReq.java index 9d7c66c..ffb9429 100644 --- a/ruoyi-modules/Sis/src/main/java/org/dromara/sis/sdk/e8/domain/accesscontrol/req/CustomerAuthAddReq.java +++ b/ruoyi-modules/Sis/src/main/java/org/dromara/sis/sdk/e8/domain/accesscontrol/req/CustomerAuthAddReq.java @@ -1,5 +1,4 @@ -package org.dromara.sis.sdk.e8.domain.accessControl.req; - +package org.dromara.sis.sdk.e8.domain.accesscontrol.req; import lombok.Data; import java.util.List; diff --git a/ruoyi-modules/Sis/src/main/java/org/dromara/sis/sdk/e8/domain/accesscontrol/req/CustomerAuthFindReq.java b/ruoyi-modules/Sis/src/main/java/org/dromara/sis/sdk/e8/domain/accesscontrol/req/CustomerAuthFindReq.java index 637f16a..1cc9321 100644 --- a/ruoyi-modules/Sis/src/main/java/org/dromara/sis/sdk/e8/domain/accesscontrol/req/CustomerAuthFindReq.java +++ b/ruoyi-modules/Sis/src/main/java/org/dromara/sis/sdk/e8/domain/accesscontrol/req/CustomerAuthFindReq.java @@ -1,4 +1,4 @@ -package org.dromara.sis.sdk.e8.domain.accessControl.req; +package org.dromara.sis.sdk.e8.domain.accesscontrol.req; import lombok.Data; diff --git a/ruoyi-modules/Sis/src/main/java/org/dromara/sis/sdk/e8/domain/accesscontrol/req/RemoteOpenDoorReq.java b/ruoyi-modules/Sis/src/main/java/org/dromara/sis/sdk/e8/domain/accesscontrol/req/RemoteOpenDoorReq.java index c4b9851..3322910 100644 --- a/ruoyi-modules/Sis/src/main/java/org/dromara/sis/sdk/e8/domain/accesscontrol/req/RemoteOpenDoorReq.java +++ b/ruoyi-modules/Sis/src/main/java/org/dromara/sis/sdk/e8/domain/accesscontrol/req/RemoteOpenDoorReq.java @@ -1,4 +1,4 @@ -package org.dromara.sis.sdk.e8.domain.accessControl.req; +package org.dromara.sis.sdk.e8.domain.accesscontrol.req; import lombok.Data; diff --git a/ruoyi-modules/Sis/src/main/java/org/dromara/sis/sdk/e8/domain/accesscontrol/res/AccessRecordFindRes.java b/ruoyi-modules/Sis/src/main/java/org/dromara/sis/sdk/e8/domain/accesscontrol/res/AccessRecordFindRes.java index 4d92ba1..dcd3cb5 100644 --- a/ruoyi-modules/Sis/src/main/java/org/dromara/sis/sdk/e8/domain/accesscontrol/res/AccessRecordFindRes.java +++ b/ruoyi-modules/Sis/src/main/java/org/dromara/sis/sdk/e8/domain/accesscontrol/res/AccessRecordFindRes.java @@ -1,4 +1,4 @@ -package org.dromara.sis.sdk.e8.domain.accessControl.res; +package org.dromara.sis.sdk.e8.domain.accesscontrol.res; import lombok.Data; diff --git a/ruoyi-modules/Sis/src/main/java/org/dromara/sis/sdk/e8/domain/accesscontrol/res/CustomerAuthFindRes.java b/ruoyi-modules/Sis/src/main/java/org/dromara/sis/sdk/e8/domain/accesscontrol/res/CustomerAuthFindRes.java index 0828a58..566814c 100644 --- a/ruoyi-modules/Sis/src/main/java/org/dromara/sis/sdk/e8/domain/accesscontrol/res/CustomerAuthFindRes.java +++ b/ruoyi-modules/Sis/src/main/java/org/dromara/sis/sdk/e8/domain/accesscontrol/res/CustomerAuthFindRes.java @@ -1,4 +1,4 @@ -package org.dromara.sis.sdk.e8.domain.accessControl.res; +package org.dromara.sis.sdk.e8.domain.accesscontrol.res; import lombok.Data; diff --git a/ruoyi-modules/Sis/src/main/java/org/dromara/sis/sdk/e8/impl/AccessControlServiceImpl.java b/ruoyi-modules/Sis/src/main/java/org/dromara/sis/sdk/e8/impl/AccessControlServiceImpl.java index ff58738..c63d8ca 100644 --- a/ruoyi-modules/Sis/src/main/java/org/dromara/sis/sdk/e8/impl/AccessControlServiceImpl.java +++ b/ruoyi-modules/Sis/src/main/java/org/dromara/sis/sdk/e8/impl/AccessControlServiceImpl.java @@ -3,18 +3,21 @@ package org.dromara.sis.sdk.e8.impl; import cn.hutool.core.bean.BeanUtil; import cn.hutool.core.lang.TypeReference; import cn.hutool.json.JSONUtil; +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import lombok.RequiredArgsConstructor; import lombok.extern.slf4j.Slf4j; import org.dromara.common.mybatis.core.page.TableDataInfo; +import org.dromara.sis.domain.SisAccessControl; +import org.dromara.sis.domain.vo.SisAccessControlVo; import org.dromara.sis.sdk.e8.AccessControlService; -import org.dromara.sis.sdk.e8.domain.accessControl.req.AccessRecordFindReq; -import org.dromara.sis.sdk.e8.domain.accessControl.req.CustomerAuthAddReq; -import org.dromara.sis.sdk.e8.domain.accessControl.req.CustomerAuthFindReq; -import org.dromara.sis.sdk.e8.domain.accessControl.req.RemoteOpenDoorReq; -import org.dromara.sis.sdk.e8.domain.accessControl.res.AccessRecordFindRes; import org.dromara.sis.sdk.e8.domain.ApiResp; import org.dromara.sis.sdk.e8.domain.QueryDto; -import org.dromara.sis.sdk.e8.domain.accessControl.res.CustomerAuthFindRes; +import org.dromara.sis.sdk.e8.domain.accesscontrol.req.AccessRecordFindReq; +import org.dromara.sis.sdk.e8.domain.accesscontrol.req.CustomerAuthAddReq; +import org.dromara.sis.sdk.e8.domain.accesscontrol.req.CustomerAuthFindReq; +import org.dromara.sis.sdk.e8.domain.accesscontrol.req.RemoteOpenDoorReq; +import org.dromara.sis.sdk.e8.domain.accesscontrol.res.AccessRecordFindRes; +import org.dromara.sis.sdk.e8.domain.accesscontrol.res.CustomerAuthFindRes; import org.dromara.sis.sdk.e8.utils.E8ApiUtil; import org.springframework.stereotype.Service; diff --git a/ruoyi-modules/Sis/src/main/java/org/dromara/sis/sdk/unview/service/VideoAlarmService.java b/ruoyi-modules/Sis/src/main/java/org/dromara/sis/sdk/unview/service/VideoAlarmService.java index 3a5b0f2..64a881c 100644 --- a/ruoyi-modules/Sis/src/main/java/org/dromara/sis/sdk/unview/service/VideoAlarmService.java +++ b/ruoyi-modules/Sis/src/main/java/org/dromara/sis/sdk/unview/service/VideoAlarmService.java @@ -1,11 +1,21 @@ package org.dromara.sis.sdk.unview.service; import com.alibaba.fastjson.JSONObject; +import lombok.RequiredArgsConstructor; import lombok.extern.slf4j.Slf4j; +import org.dromara.sis.domain.vo.SisAccessControlVo; +import org.dromara.sis.domain.vo.SisAuthRecordVo; +import org.dromara.sis.sdk.e8.AccessControlService; +import org.dromara.sis.sdk.e8.domain.accesscontrol.req.RemoteOpenDoorReq; import org.dromara.sis.sdk.unview.model.UvModel; import org.dromara.sis.sdk.unview.model.enums.AlarmTypeEnum; +import org.dromara.sis.service.ISisAccessControlService; +import org.dromara.sis.service.ISisAuthRecordService; +import org.dromara.sis.service.ISisDeviceManageService; import org.springframework.stereotype.Service; +import java.util.List; + /** * 宇视人体设备告警数据处理 * @@ -13,8 +23,14 @@ import org.springframework.stereotype.Service; */ @Slf4j @Service +@RequiredArgsConstructor public class VideoAlarmService { + private final ISisDeviceManageService deviceManageService; + private final ISisAuthRecordService authRecordService; + private final AccessControlService accessControlService; + private final ISisAccessControlService sisAccessControlService; + public void handleAlarmData(UvModel.AlarmReportInfo alarmReportData) { Integer type = alarmReportData.getType(); @@ -90,11 +106,49 @@ public class VideoAlarmService { * @param alarmReportData 告警数据 */ private void handleFacialCapture(UvModel.AlarmReportInfo alarmReportData) { - // 查询设备是偶绑定门径 - - // 校验人脸是偶有同行此门禁的权限 - - // 如果有通行权限,则打开门禁 + List compareResults = alarmReportData.getCompare_results(); + if (compareResults == null) { + log.info("无比对结果,不处理此条数据。"); + return; + } + UvModel.ChannelInfo channelInfo = alarmReportData.getChannel_info(); + if (channelInfo == null) { + log.info("上报设备信息不存在,不处理词条数据。"); + return; + } + compareResults.forEach(result -> { + // 查询设备是偶绑定门径 +// SisDeviceManageVo sisDeviceManageVo = deviceManageService.queryVoByDeviceIp(deviceInfo.getDevice_code()); + SisAccessControlVo controlVo = sisAccessControlService.queryByBindDeviceIp(channelInfo.getIpc_addr()); + if (controlVo == null) { + log.info("设备[{}]未和门禁绑定,不处理此条数据。", channelInfo.getIpc_addr()); + return; + } + // 人像库id +// Integer libId = result.getLib_id(); + // 宇视人员id + Integer personId = result.getPerson_id(); + // 门禁id + Long accessControlId = controlVo.getId(); + // 校验人脸是偶有同行此门禁的权限 + SisAuthRecordVo recordVo = authRecordService.checkAuth(personId, accessControlId); + // 如果有通行权限,则打开门禁 + if (recordVo == null) { + log.info("此人像[{}]没有门禁[{}]的通行权限。", personId, accessControlId); + } + // 打开门禁 + RemoteOpenDoorReq remoteOpenDoorReq = new RemoteOpenDoorReq(); + remoteOpenDoorReq.setType(0); + remoteOpenDoorReq.setReason("宇视人像识别,人像id=" + recordVo.getImgId()); + remoteOpenDoorReq.setOperatorId(0L); + RemoteOpenDoorReq.ControlData data = new RemoteOpenDoorReq.ControlData(); + data.setDoorId(recordVo.getDoorId()); + data.setDeviceId(recordVo.getDeviceId()); + remoteOpenDoorReq.setControlList(List.of(data)); + log.info("远程开门参数,params={}", JSONObject.toJSONString(remoteOpenDoorReq)); + Boolean b = accessControlService.remoteOpenDoor(remoteOpenDoorReq); + log.info("远程开门完成, result={}", b); + }); } /** diff --git a/ruoyi-modules/Sis/src/main/java/org/dromara/sis/service/ISisAccessControlService.java b/ruoyi-modules/Sis/src/main/java/org/dromara/sis/service/ISisAccessControlService.java index e93e8f6..0a077f7 100644 --- a/ruoyi-modules/Sis/src/main/java/org/dromara/sis/service/ISisAccessControlService.java +++ b/ruoyi-modules/Sis/src/main/java/org/dromara/sis/service/ISisAccessControlService.java @@ -1,5 +1,6 @@ package org.dromara.sis.service; +import org.dromara.common.core.domain.TreeNode; import org.dromara.sis.domain.SisAccessControl; import org.dromara.sis.domain.vo.SisAccessControlVo; import org.dromara.sis.domain.bo.SisAccessControlBo; @@ -74,4 +75,20 @@ public interface ISisAccessControlService { * @return 列表 */ List queryListByIds(Collection ids); + + + + /** + * 通过绑定设备ip查询门禁 + * @param deviceCode 设备ip + * @return + */ + SisAccessControlVo queryByBindDeviceIp(String deviceCode); + + /** + * 查询门禁树 + * @return + */ + List> queryAcTree(); + } diff --git a/ruoyi-modules/Sis/src/main/java/org/dromara/sis/service/ISisAuthRecordService.java b/ruoyi-modules/Sis/src/main/java/org/dromara/sis/service/ISisAuthRecordService.java index b314e48..ed1cb45 100644 --- a/ruoyi-modules/Sis/src/main/java/org/dromara/sis/service/ISisAuthRecordService.java +++ b/ruoyi-modules/Sis/src/main/java/org/dromara/sis/service/ISisAuthRecordService.java @@ -1,10 +1,10 @@ package org.dromara.sis.service; -import org.dromara.sis.domain.SisAuthRecord; -import org.dromara.sis.domain.vo.SisAuthRecordVo; -import org.dromara.sis.domain.bo.SisAuthRecordBo; -import org.dromara.common.mybatis.core.page.TableDataInfo; import org.dromara.common.mybatis.core.page.PageQuery; +import org.dromara.common.mybatis.core.page.TableDataInfo; +import org.dromara.sis.domain.bo.SingleAuthRecordBo; +import org.dromara.sis.domain.bo.SisAuthRecordBo; +import org.dromara.sis.domain.vo.SisAuthRecordVo; import java.util.Collection; import java.util.List; @@ -66,4 +66,21 @@ public interface ISisAuthRecordService { * @return 是否删除成功 */ Boolean deleteWithValidByIds(Collection ids, Boolean isValid); + + /** + * 通过宇视图片id和门禁id校验此图像是否有通行权限 + * + * @param personId 人像id + * @param accessControlId 门禁id + * @return 返回授权记录 + */ + SisAuthRecordVo checkAuth(Integer personId, Long accessControlId); + + /** + * 单个人像授权 + * + * @param bo 授权信息 + * @return 是否授权成功 + */ + Boolean singleAuth(SingleAuthRecordBo bo); } 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 acf0cc9..3d8859d 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 @@ -1,9 +1,9 @@ package org.dromara.sis.service; -import org.dromara.sis.domain.vo.SisDeviceManageVo; -import org.dromara.sis.domain.bo.SisDeviceManageBo; -import org.dromara.common.mybatis.core.page.TableDataInfo; import org.dromara.common.mybatis.core.page.PageQuery; +import org.dromara.common.mybatis.core.page.TableDataInfo; +import org.dromara.sis.domain.bo.SisDeviceManageBo; +import org.dromara.sis.domain.vo.SisDeviceManageVo; import java.util.Collection; import java.util.List; @@ -65,4 +65,12 @@ public interface ISisDeviceManageService { * @return 是否删除成功 */ Boolean deleteWithValidByIds(Collection ids, Boolean isValid); + + /** + * 通过设备ip查询设备信息 + * + * @param deviceCode 设备编码 + * @return 设备信息 + */ + SisDeviceManageVo queryVoByDeviceIp(Integer deviceCode); } diff --git a/ruoyi-modules/Sis/src/main/java/org/dromara/sis/service/ISisEEightRefService.java b/ruoyi-modules/Sis/src/main/java/org/dromara/sis/service/ISisEEightRefService.java index 3b57ee4..c892b84 100644 --- a/ruoyi-modules/Sis/src/main/java/org/dromara/sis/service/ISisEEightRefService.java +++ b/ruoyi-modules/Sis/src/main/java/org/dromara/sis/service/ISisEEightRefService.java @@ -1,10 +1,9 @@ package org.dromara.sis.service; -import org.dromara.sis.domain.SisEEightRef; -import org.dromara.sis.domain.vo.SisEEightRefVo; -import org.dromara.sis.domain.bo.SisEEightRefBo; -import org.dromara.common.mybatis.core.page.TableDataInfo; import org.dromara.common.mybatis.core.page.PageQuery; +import org.dromara.common.mybatis.core.page.TableDataInfo; +import org.dromara.sis.domain.bo.SisEEightRefBo; +import org.dromara.sis.domain.vo.SisEEightRefVo; import java.util.Collection; import java.util.List; @@ -50,6 +49,10 @@ public interface ISisEEightRefService { */ Boolean insertByBo(SisEEightRefBo bo); + + Boolean batchInsert(List bos); + + /** * 修改E8平台对应关系 * diff --git a/ruoyi-modules/Sis/src/main/java/org/dromara/sis/service/impl/SisAccessControlServiceImpl.java b/ruoyi-modules/Sis/src/main/java/org/dromara/sis/service/impl/SisAccessControlServiceImpl.java index 81be8de..304bbff 100644 --- a/ruoyi-modules/Sis/src/main/java/org/dromara/sis/service/impl/SisAccessControlServiceImpl.java +++ b/ruoyi-modules/Sis/src/main/java/org/dromara/sis/service/impl/SisAccessControlServiceImpl.java @@ -8,16 +8,18 @@ import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import lombok.RequiredArgsConstructor; import lombok.extern.slf4j.Slf4j; import org.apache.dubbo.config.annotation.DubboReference; +import org.dromara.common.core.domain.TreeNode; import org.dromara.common.core.utils.MapstructUtils; import org.dromara.common.core.utils.StringUtils; +import org.dromara.common.core.utils.TreeUtils; import org.dromara.common.mybatis.core.page.PageQuery; import org.dromara.common.mybatis.core.page.TableDataInfo; import org.dromara.property.api.RemoteFloorService; import org.dromara.property.api.domain.vo.RemoteFloorVo; import org.dromara.sis.domain.SisAccessControl; import org.dromara.sis.domain.bo.SisAccessControlBo; -import org.dromara.sis.domain.bo.SisDeviceManageBo; import org.dromara.sis.domain.vo.SisAccessControlVo; +import org.dromara.sis.domain.vo.SisDeviceManageVo; import org.dromara.sis.mapper.SisAccessControlMapper; import org.dromara.sis.sdk.e8.DoorDeviceService; import org.dromara.sis.sdk.e8.domain.door.req.DoorDeviceAddReq; @@ -121,11 +123,15 @@ public class SisAccessControlServiceImpl implements ISisAccessControlService { // 校验楼层是否存在 RemoteFloorVo remoteFloorVo = remoteFloorService.queryByFloorId(bo.getFloorId()); Assert.notNull(remoteFloorVo, "当前楼层信息不存在。"); + // 检验设备是否存在 + SisDeviceManageVo sisDeviceManageVo = sisDeviceManageService.queryById(bo.getBindDeviceId()); + Assert.notNull(sisDeviceManageVo, "绑定设备不存在。"); SisAccessControl add = MapstructUtils.convert(bo, SisAccessControl.class); add.setCommunityId(remoteFloorVo.getCommunityId()); add.setBuildingId(remoteFloorVo.getBuildingId()); add.setUnitId(remoteFloorVo.getUnitId()); add.setFloorId(remoteFloorVo.getId()); + add.setBindDeviceIp(sisDeviceManageVo.getDeviceIp()); Assert.notNull(add, "数据处理失败"); boolean flag = baseMapper.insert(add) > 0; if (flag) { @@ -162,13 +168,13 @@ public class SisAccessControlServiceImpl implements ISisAccessControlService { log.info("E8平台写入完成!"); } - // 判断是否绑定摄像头 - if (bo.getDeviceId() != null) { + // 摄像头不绑定门禁,让门禁去绑定摄像头 + /*if (bo.getBindDeviceId() != null) { SisDeviceManageBo device = new SisDeviceManageBo(); - device.setId(bo.getDeviceId()); + device.setId(bo.getBindDeviceId()); device.setAccessControlId(add.getId()); sisDeviceManageService.updateByBo(device); - } + }*/ } return flag; } @@ -215,7 +221,32 @@ public class SisAccessControlServiceImpl implements ISisAccessControlService { * @return 列表 */ @Override - public List queryListByIds(Collection ids){ + public List queryListByIds(Collection ids) { return baseMapper.selectVoByIds(ids); } + + @Override + public SisAccessControlVo queryByBindDeviceIp(String deviceCode) { + LambdaQueryWrapper wrapper = new LambdaQueryWrapper<>(); + return baseMapper.selectVoOne(wrapper); + } + + @Override + public List> queryAcTree() { + List> treeNodes = remoteFloorService.queryTreeList(); + // 查询所有的门禁 + List sisAccessControlVos = baseMapper.selectVoList(); + if (sisAccessControlVos != null && !sisAccessControlVos.isEmpty()) { + List> l1 = sisAccessControlVos.stream().map(item -> { + TreeNode node = new TreeNode<>(); + node.setLevel(4); + node.setCode(item.getId()); + node.setParentCode(item.getFloorId()); + node.setLabel(item.getAccessName()); + return node; + }).toList(); + treeNodes.addAll(l1); + } + return TreeUtils.build(treeNodes, 0L); + } } diff --git a/ruoyi-modules/Sis/src/main/java/org/dromara/sis/service/impl/SisAuthRecordServiceImpl.java b/ruoyi-modules/Sis/src/main/java/org/dromara/sis/service/impl/SisAuthRecordServiceImpl.java index 52a3a4c..dbbea24 100644 --- a/ruoyi-modules/Sis/src/main/java/org/dromara/sis/service/impl/SisAuthRecordServiceImpl.java +++ b/ruoyi-modules/Sis/src/main/java/org/dromara/sis/service/impl/SisAuthRecordServiceImpl.java @@ -1,31 +1,31 @@ package org.dromara.sis.service.impl; import cn.hutool.core.lang.Assert; -import org.dromara.common.core.utils.MapstructUtils; -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.sis.domain.bo.SisEEightRefBo; +import org.dromara.common.core.utils.MapstructUtils; +import org.dromara.common.mybatis.core.page.PageQuery; +import org.dromara.common.mybatis.core.page.TableDataInfo; +import org.dromara.sis.domain.SisAuthRecord; +import org.dromara.sis.domain.bo.SingleAuthRecordBo; +import org.dromara.sis.domain.bo.SisAuthRecordBo; import org.dromara.sis.domain.bo.SisLibDeviceImgRefBo; import org.dromara.sis.domain.bo.SisLibDeviceRefBo; import org.dromara.sis.domain.vo.*; +import org.dromara.sis.mapper.SisAuthRecordMapper; import org.dromara.sis.sdk.e8.AccessControlService; import org.dromara.sis.sdk.e8.DoorDeviceService; import org.dromara.sis.sdk.e8.VoucherControlService; -import org.dromara.sis.sdk.e8.domain.accessControl.req.CustomerAuthAddReq; +import org.dromara.sis.sdk.e8.domain.accesscontrol.req.CustomerAuthAddReq; import org.dromara.sis.sdk.e8.domain.door.res.AuthDoorDeviceFindRes; import org.dromara.sis.sdk.e8.domain.voucher.req.IssueVoucherReq; import org.dromara.sis.sdk.unview.UnViewAiBoxApi; import org.dromara.sis.sdk.unview.model.UvModel; import org.dromara.sis.service.*; import org.springframework.stereotype.Service; -import org.dromara.sis.domain.bo.SisAuthRecordBo; -import org.dromara.sis.domain.SisAuthRecord; -import org.dromara.sis.mapper.SisAuthRecordMapper; import org.springframework.transaction.annotation.Transactional; import java.nio.file.Files; @@ -116,7 +116,7 @@ public class SisAuthRecordServiceImpl implements ISisAuthRecordService { List eqpIds = refVos.stream().map(SisLibDeviceRefVo::getEqpId).toList(); - boolean flag = false; + /* boolean flag = false; log.info("开始写入授权记录,图片:{}、门禁:{}、设备:{}", bo.getImgIds(), bo.getAcIds(), eqpIds); for (Long imgId : bo.getImgIds()) { for (Long acId : bo.getAcIds()) { @@ -131,7 +131,7 @@ public class SisAuthRecordServiceImpl implements ISisAuthRecordService { } } } - log.info("授权记录写入完成"); + log.info("授权记录写入完成");*/ SisPersonLibVo libVo = sisPersonLibService.queryById(bo.getLibId()); Assert.notNull(libVo, "图像库不存在,id=" + (bo.getLibId())); @@ -228,26 +228,36 @@ public class SisAuthRecordServiceImpl implements ISisAuthRecordService { log.info("E8平台发行凭证完成!"); log.info("E8平台授权凭证"); - // E8平台授权门列表 + // 查询所有e8设备并分组 List authDoor = e8DoorDeviceService.getPageAuthDoorDeviceList(); - Map authDoorMap = authDoor.stream() - .collect(Collectors.toMap(AuthDoorDeviceFindRes::getDeviceId, authDoorRes -> authDoorRes)); + Map authDoorMap = authDoor.stream().collect(Collectors.toMap(AuthDoorDeviceFindRes::getDeviceId, authDoorRes -> authDoorRes)); - List authList = acList.stream() - .filter(acVo -> acVo.getControlType() != 1 && acVo.getAccessType() != 2) - .map(acVo -> { + // E8 授权列表 + List authList = new ArrayList<>(acList.size()); + // 授权记录 + List recordList = new ArrayList<>(acList.size()); + for (SisAccessControlVo sisAccessControlVo : acList) { + if (sisAccessControlVo.getControlType() != 1 && sisAccessControlVo.getAccessType() != 2) { + SisAuthRecord authRecord = new SisAuthRecord(); CustomerAuthAddReq.AuthGroupData door = new CustomerAuthAddReq.AuthGroupData(); door.setType(0); door.setGatewayType(1); - Long id = Long.parseLong(acVo.getOutCode()); + Long id = Long.parseLong(sisAccessControlVo.getOutCode()); door.setId(id); + + authRecord.setDoorId(id); // 如果 authDoorMap 中存在对应的 deviceId,则更新 id AuthDoorDeviceFindRes authDoorRes = authDoorMap.get(id); if (authDoorRes != null) { door.setId(authDoorRes.getId()); + authRecord.setDeviceId(authDoorRes.getDeviceId()); } - return door; - }).toList(); + authRecord.setLibId(imgVo.getLibId()); + authRecord.setImgId(imgVo.getId()); + authRecord.setAcId(sisAccessControlVo.getId()); + recordList.add(authRecord); + } + } CustomerAuthAddReq authReq = new CustomerAuthAddReq(); authReq.setAuthType(0); @@ -259,15 +269,7 @@ public class SisAuthRecordServiceImpl implements ISisAuthRecordService { Boolean auth = e8AccessControlService.addCustomerAuth(authReq); Assert.isTrue(auth, "E8平台授权失败"); log.info("E8平台授权完成!"); - - SisEEightRefBo ref = new SisEEightRefBo(); - ref.setUserId(1L); - ref.setRemoteImgUrl(url); - ref.setRemoteVoucherId(vId); - ref.setAcIds(bo.getAcIds()); - ref.setRemoteUserId(539696740646981L); - ref.setImgId(imgVo.getId()); - Boolean insert = sisEEightRefService.insertByBo(ref); + boolean insert = baseMapper.insertBatch(recordList); Assert.isTrue(insert, "写入E8关联关系表失败!"); } log.info("写入E8平台完成!"); @@ -276,7 +278,12 @@ public class SisAuthRecordServiceImpl implements ISisAuthRecordService { throw new RuntimeException(e.getMessage()); } - return flag; + return true; + } + + @Override + public Boolean singleAuth(SingleAuthRecordBo bo) { + return null; } /** @@ -313,4 +320,9 @@ public class SisAuthRecordServiceImpl implements ISisAuthRecordService { } return baseMapper.deleteByIds(ids) > 0; } + + @Override + public SisAuthRecordVo checkAuth(Integer personId, Long accessControlId) { + return baseMapper.checkAuth(personId, accessControlId); + } } 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 8cc06ff..7b01fa2 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 @@ -136,4 +136,11 @@ public class SisDeviceManageServiceImpl implements ISisDeviceManageService { } return baseMapper.deleteByIds(ids) > 0; } + + @Override + public SisDeviceManageVo queryVoByDeviceIp(Integer deviceCode) { + LambdaQueryWrapper lqw = Wrappers.lambdaQuery(); + lqw.eq(SisDeviceManage::getDeviceIp, deviceCode); + return baseMapper.selectVoById(lqw); + } } diff --git a/ruoyi-modules/Sis/src/main/java/org/dromara/sis/service/impl/SisEEightRefServiceImpl.java b/ruoyi-modules/Sis/src/main/java/org/dromara/sis/service/impl/SisEEightRefServiceImpl.java index 66c9070..7e82e9e 100644 --- a/ruoyi-modules/Sis/src/main/java/org/dromara/sis/service/impl/SisEEightRefServiceImpl.java +++ b/ruoyi-modules/Sis/src/main/java/org/dromara/sis/service/impl/SisEEightRefServiceImpl.java @@ -1,26 +1,26 @@ package org.dromara.sis.service.impl; -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.springframework.stereotype.Service; +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.sis.domain.SisEEightRef; import org.dromara.sis.domain.bo.SisEEightRefBo; import org.dromara.sis.domain.vo.SisEEightRefVo; -import org.dromara.sis.domain.SisEEightRef; import org.dromara.sis.mapper.SisEEightRefMapper; import org.dromara.sis.service.ISisEEightRefService; +import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; import java.util.Arrays; +import java.util.Collection; import java.util.List; import java.util.Map; -import java.util.Collection; /** * E8平台对应关系Service业务层处理 @@ -87,7 +87,6 @@ public class SisEEightRefServiceImpl implements ISisEEightRefService { lqw.eq(bo.getRemoteUserId() != null, SisEEightRef::getRemoteUserId, bo.getRemoteUserId()); lqw.eq(StringUtils.isNotBlank(bo.getRemoteImgUrl()), SisEEightRef::getRemoteImgUrl, bo.getRemoteImgUrl()); lqw.eq(bo.getRemoteVoucherId() != null, SisEEightRef::getRemoteVoucherId, bo.getRemoteVoucherId()); - lqw.eq(bo.getRemoteAuthId() != null, SisEEightRef::getRemoteAuthId, bo.getRemoteAuthId()); return lqw; } @@ -105,6 +104,12 @@ public class SisEEightRefServiceImpl implements ISisEEightRefService { return baseMapper.insert(add) > 0; } + @Override + public Boolean batchInsert(List bos) { + List convert = MapstructUtils.convert(bos, SisEEightRef.class); + return baseMapper.insertBatch(convert); + } + /** * 修改E8平台对应关系 * diff --git a/ruoyi-modules/Sis/src/main/resources/mapper/sis/SisAuthRecordMapper.xml b/ruoyi-modules/Sis/src/main/resources/mapper/sis/SisAuthRecordMapper.xml new file mode 100644 index 0000000..27bad1a --- /dev/null +++ b/ruoyi-modules/Sis/src/main/resources/mapper/sis/SisAuthRecordMapper.xml @@ -0,0 +1,14 @@ + + + + + + diff --git a/ruoyi-modules/Sis/src/main/resources/mapper/sis/SisEEightRefMapper.xml b/ruoyi-modules/Sis/src/main/resources/mapper/sis/SisEEightRefMapper.xml new file mode 100644 index 0000000..7708dd1 --- /dev/null +++ b/ruoyi-modules/Sis/src/main/resources/mapper/sis/SisEEightRefMapper.xml @@ -0,0 +1,7 @@ + + + + +