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 4195025..c0c3445 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 @@ -116,5 +116,14 @@ public class SisAccessControlController extends BaseController { return R.ok(sisAccessControlService.queryAcTree()); } + /** + * 同步门禁设备 + * + * @return boolean + */ + @GetMapping("/sync") + public R sync() { + return R.ok(sisAccessControlService.syncE8()); + } } diff --git a/ruoyi-modules/Sis/src/main/java/org/dromara/sis/controller/e8/DoorDeviceController.java b/ruoyi-modules/Sis/src/main/java/org/dromara/sis/controller/e8/DoorDeviceController.java index 6e351d5..eddec6e 100644 --- a/ruoyi-modules/Sis/src/main/java/org/dromara/sis/controller/e8/DoorDeviceController.java +++ b/ruoyi-modules/Sis/src/main/java/org/dromara/sis/controller/e8/DoorDeviceController.java @@ -7,12 +7,15 @@ import org.dromara.common.mybatis.core.page.TableDataInfo; import org.dromara.sis.sdk.e8.DoorDeviceService; import org.dromara.sis.sdk.e8.domain.door.req.DoorDeviceAddReq; import org.dromara.sis.sdk.e8.domain.door.req.DoorDeviceUpdateReq; +import org.dromara.sis.sdk.e8.domain.door.res.AuthDoorDeviceFindRes; import org.dromara.sis.sdk.e8.domain.door.res.DoorDeviceAddRes; import org.dromara.sis.sdk.e8.domain.door.res.DoorDeviceFindRes; import org.dromara.sis.sdk.e8.domain.QueryDto; import org.springframework.util.ObjectUtils; import org.springframework.web.bind.annotation.*; +import java.util.List; + /** * @author lsm * @apiNote DoorDeviceController @@ -112,4 +115,21 @@ public class DoorDeviceController { return R.ok(doorDeviceList); } } + + /** + * 分页获取授权门信息 + * + * @return List + */ + @PostMapping("/findAuthDoor") + public R> getPageAuthDoorDeviceList() { + log.info("E8接口查询授权门信息"); + List authDoor = doorDeviceService.getPageAuthDoorDeviceList(); + if (ObjectUtils.isEmpty(authDoor)) { + return R.fail("E8接口查询授权门信息,调用失败!"); + } else { + return R.ok(authDoor); + } + } + } diff --git a/ruoyi-modules/Sis/src/main/java/org/dromara/sis/sdk/e8/domain/door/res/AuthDoorDeviceFindRes.java b/ruoyi-modules/Sis/src/main/java/org/dromara/sis/sdk/e8/domain/door/res/AuthDoorDeviceFindRes.java index 7952031..0f58f52 100644 --- a/ruoyi-modules/Sis/src/main/java/org/dromara/sis/sdk/e8/domain/door/res/AuthDoorDeviceFindRes.java +++ b/ruoyi-modules/Sis/src/main/java/org/dromara/sis/sdk/e8/domain/door/res/AuthDoorDeviceFindRes.java @@ -15,6 +15,16 @@ public class AuthDoorDeviceFindRes { */ private Long id; + /** + * 门名称 + */ + private String name; + + /** + * 设备code + */ + private String deviceNo; + /** * 门禁Id */ diff --git a/ruoyi-modules/Sis/src/main/java/org/dromara/sis/sdk/e8/impl/DoorDeviceServiceImpl.java b/ruoyi-modules/Sis/src/main/java/org/dromara/sis/sdk/e8/impl/DoorDeviceServiceImpl.java index aabf65d..e44a011 100644 --- a/ruoyi-modules/Sis/src/main/java/org/dromara/sis/sdk/e8/impl/DoorDeviceServiceImpl.java +++ b/ruoyi-modules/Sis/src/main/java/org/dromara/sis/sdk/e8/impl/DoorDeviceServiceImpl.java @@ -176,7 +176,7 @@ public class DoorDeviceServiceImpl implements DoorDeviceService { /** * 分页获取授权门信息 * - * @return TableDataInfo + * @return List */ public List getPageAuthDoorDeviceList() { Map queryDto = new HashMap<>(); 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 fa6b77c..d9bdb48 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 @@ -82,4 +82,11 @@ public interface ISisAccessControlService { */ List> queryAcTree(); + /** + * 同步门禁设备 + * + * @return Boolean + */ + Boolean syncE8(); + } 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 fa606f2..302158e 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 @@ -15,7 +15,6 @@ 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.SisDeviceBindRef; import org.dromara.sis.domain.bo.SisAccessControlBo; @@ -24,8 +23,6 @@ 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; -import org.dromara.sis.sdk.e8.domain.door.res.DoorDeviceAddRes; import org.dromara.sis.service.ISisAccessControlService; import org.dromara.sis.service.ISisDeviceBindRefService; import org.dromara.sis.service.ISisDeviceManageService; @@ -96,12 +93,10 @@ public class SisAccessControlServiceImpl implements ISisAccessControlService { Map params = bo.getParams(); LambdaQueryWrapper lqw = Wrappers.lambdaQuery(); lqw.orderByAsc(SisAccessControl::getId); -// lqw.eq(StringUtils.isNotBlank(bo.getAccessCode()), SisAccessControl::getAccessCode, bo.getAccessCode()); lqw.like(StringUtils.isNotBlank(bo.getAccessName()), SisAccessControl::getAccessName, bo.getAccessName()); lqw.eq(StringUtils.isNotBlank(bo.getAccessIp()), SisAccessControl::getAccessIp, bo.getAccessIp()); lqw.eq(bo.getAccessPort() != null, SisAccessControl::getAccessPort, bo.getAccessPort()); lqw.eq(bo.getAccessType() != null, SisAccessControl::getAccessType, bo.getAccessType()); -// lqw.eq(StringUtils.isNotBlank(bo.getFactoryCode()), SisAccessControl::getFactoryCode, bo.getFactoryCode()); lqw.eq(bo.getControlType() != null, SisAccessControl::getControlType, bo.getControlType()); lqw.eq(StringUtils.isNotBlank(bo.getControlCode()), SisAccessControl::getControlCode, bo.getControlCode()); lqw.eq(StringUtils.isNotBlank(bo.getOutCode()), SisAccessControl::getOutCode, bo.getOutCode()); @@ -123,63 +118,7 @@ public class SisAccessControlServiceImpl implements ISisAccessControlService { @Override @Transactional(rollbackFor = Exception.class) public Boolean insertByBo(SisAccessControlBo bo) { - // 校验楼层是否存在 - 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()); - Assert.notNull(add, "数据处理失败"); - boolean flag = baseMapper.insert(add) > 0; - if (flag) { - // 写入关联关系表中 - SisDeviceBindRef sisDeviceBindRef = new SisDeviceBindRef(); - sisDeviceBindRef.setDeviceId(sisDeviceManageVo.getId()); - sisDeviceBindRef.setDeviceIp(sisDeviceManageVo.getDeviceIp()); - sisDeviceBindRef.setBindId(add.getId()); - sisDeviceBindRef.setControlType(ControlTypeEnum.ACCESS_CONTROL.getCode()); - Boolean insert = sisDeviceBindRefService.insert(sisDeviceBindRef); - Assert.isTrue(insert, "写入设备关联表失败!"); - - // 添加E8门禁设备 - if (add.getControlType() == 2L) { - log.info("开始同步写入E8门禁"); - DoorDeviceAddReq e8DoorReq = new DoorDeviceAddReq(); - // 设备类型 - e8DoorReq.setType(add.getAccessType()); - // 设备名称 - e8DoorReq.setName(add.getAccessName()); - // 通讯类型 - e8DoorReq.setCommType(0); - // cpuid - e8DoorReq.setCpuID(""); - // ip - e8DoorReq.setIp(add.getAccessIp()); - // 端口 - e8DoorReq.setPort(add.getAccessPort()); - // 网关ip - e8DoorReq.setGatewayIP(""); - // 子网掩码 - e8DoorReq.setNetMask("255.255.255.0"); - - DoorDeviceAddRes e8DoorRes = doorDeviceService.addDoorDevice(e8DoorReq); - Assert.notNull(e8DoorRes, "写入E8平台失败"); - - log.info("E8平台写入成功,将返回值:{},回写到{}门禁中!", e8DoorRes.getId(), add.getAccessName()); - SisAccessControlBo wbBo = new SisAccessControlBo(); - wbBo.setId(add.getId()); - wbBo.setOutCode(e8DoorRes.getId().toString()); - Boolean update = this.updateByBo(wbBo); - Assert.isTrue(update, "外部编码回写失败"); - log.info("E8平台写入完成!"); - } - } - return flag; + return true; } /** @@ -225,10 +164,7 @@ public class SisAccessControlServiceImpl implements ISisAccessControlService { */ @Override public Boolean deleteWithValidByIds(Collection ids, Boolean isValid) { - if (isValid) { - //TODO 做一些业务上的校验,判断是否需要校验 - } - return baseMapper.deleteByIds(ids) > 0; + return true; } /** @@ -260,4 +196,14 @@ public class SisAccessControlServiceImpl implements ISisAccessControlService { } return TreeUtils.build(treeNodes, 0L); } + + /** + * 同步门禁设备 + * + * @return Boolean + */ + @Override + public Boolean syncE8() { + return true; + } }