From f85f2a75e0ac880cc54f0f32fa65e538978fe399 Mon Sep 17 00:00:00 2001 From: 15683799673 Date: Fri, 27 Jun 2025 17:54:38 +0800 Subject: [PATCH 01/21] =?UTF-8?q?=E4=BF=AE=E6=94=B9=E6=8A=A5=E9=94=99?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../core/constant/CodePrefixConstants.java | 4 ++- .../sis/domain/bo/SisPersonLibImgBo.java | 24 ++++++++--------- .../impl/SisLibDeviceRefServiceImpl.java | 5 ++++ .../impl/SisPersonLibImgServiceImpl.java | 27 +++++++++++-------- 4 files changed, 36 insertions(+), 24 deletions(-) diff --git a/ruoyi-common/ruoyi-common-core/src/main/java/org/dromara/common/core/constant/CodePrefixConstants.java b/ruoyi-common/ruoyi-common-core/src/main/java/org/dromara/common/core/constant/CodePrefixConstants.java index 44a035a3..c619753a 100644 --- a/ruoyi-common/ruoyi-common-core/src/main/java/org/dromara/common/core/constant/CodePrefixConstants.java +++ b/ruoyi-common/ruoyi-common-core/src/main/java/org/dromara/common/core/constant/CodePrefixConstants.java @@ -6,8 +6,10 @@ public interface CodePrefixConstants { */ String PERSONLIB_CODE_PREFIX = "100"; + String PERSONLIBIMG_CODE_PREFIX = "101"; + /** * 门禁设备编码前缀 */ - String SIS_DEVICE_CODE_PREFIX = "101"; + String SIS_DEVICE_CODE_PREFIX = "110"; } diff --git a/ruoyi-modules/Sis/src/main/java/org/dromara/sis/domain/bo/SisPersonLibImgBo.java b/ruoyi-modules/Sis/src/main/java/org/dromara/sis/domain/bo/SisPersonLibImgBo.java index 3aaa337d..8c05f4b1 100644 --- a/ruoyi-modules/Sis/src/main/java/org/dromara/sis/domain/bo/SisPersonLibImgBo.java +++ b/ruoyi-modules/Sis/src/main/java/org/dromara/sis/domain/bo/SisPersonLibImgBo.java @@ -1,13 +1,14 @@ package org.dromara.sis.domain.bo; -import org.dromara.sis.domain.SisPersonLibImg; -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.SisPersonLibImg; /** * 人像信息业务对象 tb_person_lib_img @@ -23,19 +24,18 @@ public class SisPersonLibImgBo extends BaseEntity { /** * 主键id */ - @NotNull(message = "主键id不能为空", groups = { EditGroup.class }) + @NotNull(message = "主键id不能为空", groups = {EditGroup.class}) private Long id; /** * 人员库编码 */ - @NotBlank(message = "人员库编码不能为空", groups = { AddGroup.class, EditGroup.class }) + @NotNull(message = "人像库编码不能为空", groups = {AddGroup.class, EditGroup.class}) private String libCode; /** * 人像名称 */ - @NotBlank(message = "人像名称不能为空", groups = { AddGroup.class, EditGroup.class }) private String imgName; /** @@ -46,12 +46,12 @@ public class SisPersonLibImgBo extends BaseEntity { /** * 图片的存储地址 */ - @NotBlank(message = "图片的存储地址不能为空", groups = { AddGroup.class, EditGroup.class }) + @NotBlank(message = "图片的存储地址不能为空", groups = {AddGroup.class, EditGroup.class}) private String imgUrl; /** * 性别 1:男 -2:女 99:未说明 + * 2:女 99:未说明 */ private Long sex; @@ -67,8 +67,8 @@ public class SisPersonLibImgBo extends BaseEntity { /** * 证件类型 -1:身份证 2:护照 -3:行驶证 99:其它 + * 1:身份证 2:护照 + * 3:行驶证 99:其它 */ private Long certificateType; diff --git a/ruoyi-modules/Sis/src/main/java/org/dromara/sis/service/impl/SisLibDeviceRefServiceImpl.java b/ruoyi-modules/Sis/src/main/java/org/dromara/sis/service/impl/SisLibDeviceRefServiceImpl.java index 33684bf7..0c96fc4b 100644 --- a/ruoyi-modules/Sis/src/main/java/org/dromara/sis/service/impl/SisLibDeviceRefServiceImpl.java +++ b/ruoyi-modules/Sis/src/main/java/org/dromara/sis/service/impl/SisLibDeviceRefServiceImpl.java @@ -138,4 +138,9 @@ public class SisLibDeviceRefServiceImpl implements ISisLibDeviceRefService { } return baseMapper.deleteByIds(ids) > 0; } + + @Override + public List queryByIds(Collection ids) { + return List.of(); + } } diff --git a/ruoyi-modules/Sis/src/main/java/org/dromara/sis/service/impl/SisPersonLibImgServiceImpl.java b/ruoyi-modules/Sis/src/main/java/org/dromara/sis/service/impl/SisPersonLibImgServiceImpl.java index 09d0298c..a439cb30 100644 --- a/ruoyi-modules/Sis/src/main/java/org/dromara/sis/service/impl/SisPersonLibImgServiceImpl.java +++ b/ruoyi-modules/Sis/src/main/java/org/dromara/sis/service/impl/SisPersonLibImgServiceImpl.java @@ -1,24 +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 cn.hutool.core.util.IdUtil; 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.constant.CodePrefixConstants; +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.SisPersonLibImg; import org.dromara.sis.domain.bo.SisPersonLibImgBo; import org.dromara.sis.domain.vo.SisPersonLibImgVo; -import org.dromara.sis.domain.SisPersonLibImg; import org.dromara.sis.mapper.SisPersonLibImgMapper; import org.dromara.sis.service.ISisPersonLibImgService; +import org.springframework.stereotype.Service; +import java.util.Collection; import java.util.List; import java.util.Map; -import java.util.Collection; /** * 人像信息Service业务层处理 @@ -40,7 +42,7 @@ public class SisPersonLibImgServiceImpl implements ISisPersonLibImgService { * @return 人像信息 */ @Override - public SisPersonLibImgVo queryById(Long id){ + public SisPersonLibImgVo queryById(Long id) { return baseMapper.selectVoById(id); } @@ -97,6 +99,9 @@ public class SisPersonLibImgServiceImpl implements ISisPersonLibImgService { @Override public Boolean insertByBo(SisPersonLibImgBo bo) { SisPersonLibImg add = MapstructUtils.convert(bo, SisPersonLibImg.class); + // 生成图片编码 + String s = CodePrefixConstants.PERSONLIBIMG_CODE_PREFIX + IdUtil.getSnowflakeNextIdStr(); + add.setImgCode(s); validEntityBeforeSave(add); boolean flag = baseMapper.insert(add) > 0; if (flag) { @@ -121,7 +126,7 @@ public class SisPersonLibImgServiceImpl implements ISisPersonLibImgService { /** * 保存前的数据校验 */ - private void validEntityBeforeSave(SisPersonLibImg entity){ + private void validEntityBeforeSave(SisPersonLibImg entity) { //TODO 做一些数据校验,如唯一约束 } @@ -134,7 +139,7 @@ public class SisPersonLibImgServiceImpl implements ISisPersonLibImgService { */ @Override public Boolean deleteWithValidByIds(Collection ids, Boolean isValid) { - if(isValid){ + if (isValid) { //TODO 做一些业务上的校验,判断是否需要校验 } return baseMapper.deleteByIds(ids) > 0; From e55ecffb98f185b31a4dd9534a80f13d5d6087ce Mon Sep 17 00:00:00 2001 From: 15683799673 Date: Fri, 27 Jun 2025 20:28:33 +0800 Subject: [PATCH 02/21] =?UTF-8?q?java=20=E5=AE=9E=E4=BD=93=E7=B1=BB?= =?UTF-8?q?=E5=9E=8Blong=E6=94=B9int?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- pom.xml | 28 ++++++++++++++----- .../dromara/property/domain/TdFactory.java | 13 +-------- .../property/domain/bo/TdFactoryBo.java | 13 +-------- .../property/domain/vo/TdFactoryVo.java | 14 +--------- .../dromara/sis/domain/SisAccessControl.java | 21 ++++---------- .../sis/domain/SisAccessControlDevice.java | 2 +- .../dromara/sis/domain/SisDeviceManage.java | 9 +++--- .../dromara/sis/domain/SisDevicePoint.java | 8 +++--- .../dromara/sis/domain/SisLibDeviceRef.java | 2 +- .../org/dromara/sis/domain/SisPersonLib.java | 4 +-- .../dromara/sis/domain/SisPersonLibImg.java | 4 +-- .../org/dromara/sis/domain/TdFactory.java | 16 ++--------- .../java/org/dromara/sis/domain/TdMeter.java | 12 ++++---- .../org/dromara/sis/domain/TdMeterConfig.java | 10 +++---- .../org/dromara/sis/domain/TdMeterRoom.java | 5 ++-- .../sis/domain/bo/SisAccessControlBo.java | 13 +-------- .../domain/bo/SisAccessControlDeviceBo.java | 6 ++-- .../sis/domain/bo/SisDeviceManageBo.java | 7 +---- .../sis/domain/bo/SisDevicePointBo.java | 28 ++++--------------- .../sis/domain/bo/SisLibDeviceImgRefBo.java | 16 ----------- .../sis/domain/bo/SisLibDeviceRefBo.java | 18 +----------- .../dromara/sis/domain/bo/SisPersonLibBo.java | 6 ++-- .../sis/domain/bo/SisPersonLibImgBo.java | 21 ++------------ .../dromara/sis/domain/bo/TdFactoryBo.java | 8 ------ .../org/dromara/sis/domain/bo/TdMeterBo.java | 10 +++---- .../sis/domain/bo/TdMeterConfigBo.java | 10 +++---- .../domain/vo/SisAccessControlDeviceVo.java | 2 +- .../sis/domain/vo/SisAccessControlVo.java | 25 ++++------------- .../sis/domain/vo/SisDeviceManageVo.java | 10 ++----- .../sis/domain/vo/SisDevicePointVo.java | 15 +++------- .../sis/domain/vo/SisLibDeviceImgRefVo.java | 19 ------------- .../sis/domain/vo/SisLibDeviceRefVo.java | 21 +------------- .../sis/domain/vo/SisPersonLibImgVo.java | 23 ++------------- .../dromara/sis/domain/vo/SisPersonLibVo.java | 23 ++------------- .../dromara/sis/domain/vo/TdFactoryVo.java | 7 ----- .../sis/domain/vo/TdMeterConfigVo.java | 10 +++---- .../org/dromara/sis/domain/vo/TdMeterVo.java | 12 ++++---- .../e8/domain/door/req/DoorDeviceAddReq.java | 4 +-- .../sis/sdk/unview/utils/UniViewHttp.java | 5 ++-- .../impl/SisAccessControlServiceImpl.java | 1 - .../impl/SisDeviceManageServiceImpl.java | 1 - .../service/impl/SisPersonLibServiceImpl.java | 4 +-- .../service/impl/TdFactoryServiceImpl.java | 1 - 43 files changed, 124 insertions(+), 363 deletions(-) diff --git a/pom.xml b/pom.xml index 8a211f15..1f8d7af5 100644 --- a/pom.xml +++ b/pom.xml @@ -68,25 +68,39 @@ + + localhost + + + dev + 127.0.0.1:8848 + 127.0.0.1:4560 + DEFAULT_GROUP + DEFAULT_GROUP + nacos + nacos + + + + true + + dev dev - - + + 47.109.37.87:8848 47.109.37.87:4560 DEFAULT_GROUP DEFAULT_GROUP nacos nacos - + - - - true - + prod diff --git a/ruoyi-modules/Property/src/main/java/org/dromara/property/domain/TdFactory.java b/ruoyi-modules/Property/src/main/java/org/dromara/property/domain/TdFactory.java index c3f37e8c..776989fc 100644 --- a/ruoyi-modules/Property/src/main/java/org/dromara/property/domain/TdFactory.java +++ b/ruoyi-modules/Property/src/main/java/org/dromara/property/domain/TdFactory.java @@ -22,7 +22,7 @@ public class TdFactory extends TenantEntity { private static final long serialVersionUID = 1L; /** - * + * */ @TableId(value = "id") private Long id; @@ -42,15 +42,4 @@ public class TdFactory extends TenantEntity { */ private String remark; - /** - * 数据状态:1有效,0无效 - */ - private Long dataState; - - /** - * 搜索值 - */ - private String searchValue; - - } diff --git a/ruoyi-modules/Property/src/main/java/org/dromara/property/domain/bo/TdFactoryBo.java b/ruoyi-modules/Property/src/main/java/org/dromara/property/domain/bo/TdFactoryBo.java index dff83014..daf5704f 100644 --- a/ruoyi-modules/Property/src/main/java/org/dromara/property/domain/bo/TdFactoryBo.java +++ b/ruoyi-modules/Property/src/main/java/org/dromara/property/domain/bo/TdFactoryBo.java @@ -21,7 +21,7 @@ import jakarta.validation.constraints.*; public class TdFactoryBo extends BaseEntity { /** - * + * */ @NotNull(message = "不能为空", groups = { EditGroup.class }) private Long id; @@ -43,16 +43,5 @@ public class TdFactoryBo extends BaseEntity { */ private String remark; - /** - * 数据状态:1有效,0无效 - */ - @NotNull(message = "数据状态:1有效,0无效不能为空", groups = { AddGroup.class, EditGroup.class }) - private Long dataState; - - /** - * 搜索值 - */ - private String searchValue; - } diff --git a/ruoyi-modules/Property/src/main/java/org/dromara/property/domain/vo/TdFactoryVo.java b/ruoyi-modules/Property/src/main/java/org/dromara/property/domain/vo/TdFactoryVo.java index b0fc9ad6..2ad4ae35 100644 --- a/ruoyi-modules/Property/src/main/java/org/dromara/property/domain/vo/TdFactoryVo.java +++ b/ruoyi-modules/Property/src/main/java/org/dromara/property/domain/vo/TdFactoryVo.java @@ -29,7 +29,7 @@ public class TdFactoryVo implements Serializable { private static final long serialVersionUID = 1L; /** - * + * */ @ExcelProperty(value = "") private Long id; @@ -52,17 +52,5 @@ public class TdFactoryVo implements Serializable { @ExcelProperty(value = "备注") private String remark; - /** - * 数据状态:1有效,0无效 - */ - @ExcelProperty(value = "数据状态:1有效,0无效") - private Long dataState; - - /** - * 搜索值 - */ - @ExcelProperty(value = "搜索值") - private String searchValue; - } 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 0b51fa9f..3a3112f9 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 @@ -1,9 +1,10 @@ package org.dromara.sis.domain; -import org.dromara.common.tenant.core.TenantEntity; -import com.baomidou.mybatisplus.annotation.*; +import com.baomidou.mybatisplus.annotation.TableId; +import com.baomidou.mybatisplus.annotation.TableName; import lombok.Data; import lombok.EqualsAndHashCode; +import org.dromara.common.tenant.core.TenantEntity; import java.io.Serial; @@ -55,12 +56,12 @@ public class SisAccessControl extends TenantEntity { /** * */ - private Long accessPort; + private Integer accessPort; /** * 门禁设备类型 */ - private Long accessType; + private Integer accessType; /** * @@ -70,7 +71,7 @@ public class SisAccessControl extends TenantEntity { /** * 控制卡类型:1-系统,2-E8 */ - private Long controlType; + private Integer controlType; /** * 控制卡类型编码 @@ -82,15 +83,5 @@ public class SisAccessControl extends TenantEntity { */ private String outCode; - /** - * 组织编码 - */ - private String orgCode; - - /** - * 搜索值 - */ - private String searchValue; - } diff --git a/ruoyi-modules/Sis/src/main/java/org/dromara/sis/domain/SisAccessControlDevice.java b/ruoyi-modules/Sis/src/main/java/org/dromara/sis/domain/SisAccessControlDevice.java index 50b62d4a..44b5a1a7 100644 --- a/ruoyi-modules/Sis/src/main/java/org/dromara/sis/domain/SisAccessControlDevice.java +++ b/ruoyi-modules/Sis/src/main/java/org/dromara/sis/domain/SisAccessControlDevice.java @@ -60,7 +60,7 @@ public class SisAccessControlDevice extends TenantEntity { /** * 设备端口 */ - private Long eqpPort; + private Integer eqpPort; /** * 设备账号 diff --git a/ruoyi-modules/Sis/src/main/java/org/dromara/sis/domain/SisDeviceManage.java b/ruoyi-modules/Sis/src/main/java/org/dromara/sis/domain/SisDeviceManage.java index 8b5e1dac..51d347cf 100644 --- a/ruoyi-modules/Sis/src/main/java/org/dromara/sis/domain/SisDeviceManage.java +++ b/ruoyi-modules/Sis/src/main/java/org/dromara/sis/domain/SisDeviceManage.java @@ -1,9 +1,10 @@ package org.dromara.sis.domain; -import org.dromara.common.mybatis.core.domain.BaseEntity; -import com.baomidou.mybatisplus.annotation.*; +import com.baomidou.mybatisplus.annotation.TableId; +import com.baomidou.mybatisplus.annotation.TableName; import lombok.Data; import lombok.EqualsAndHashCode; +import org.dromara.common.mybatis.core.domain.BaseEntity; import java.io.Serial; @@ -55,7 +56,7 @@ public class SisDeviceManage extends BaseEntity { /** * 设备在线状态 0:离线 1:在线 2:未知 */ - private Long deviceStatus; + private Integer deviceStatus; /** * 父级设备id @@ -70,7 +71,7 @@ public class SisDeviceManage extends BaseEntity { /** * 录像机端口 */ - private Long vcrPort; + private Integer vcrPort; /** * 门禁id diff --git a/ruoyi-modules/Sis/src/main/java/org/dromara/sis/domain/SisDevicePoint.java b/ruoyi-modules/Sis/src/main/java/org/dromara/sis/domain/SisDevicePoint.java index 3d44867b..e77ff14a 100644 --- a/ruoyi-modules/Sis/src/main/java/org/dromara/sis/domain/SisDevicePoint.java +++ b/ruoyi-modules/Sis/src/main/java/org/dromara/sis/domain/SisDevicePoint.java @@ -35,12 +35,12 @@ public class SisDevicePoint extends TenantEntity { /** * 视频协议 1:onvif 2:rtsp */ - private Long video; + private Integer video; /** * 传输协议(AIBOX 需要,一体机不需要) 1: tcp 2:udp */ - private Long transportType; + private Integer transportType; /** * 点位名称 @@ -60,7 +60,7 @@ public class SisDevicePoint extends TenantEntity { /** * 端口 */ - private Long port; + private Integer port; /** * 通道相机账号 @@ -75,7 +75,7 @@ public class SisDevicePoint extends TenantEntity { /** * onvif 设备码流添加方式:1:主码流 2:自定义码流 */ - private Long videoType; + private Integer videoType; /** * 码流 id:当选择自定义码流时,该字段必填, diff --git a/ruoyi-modules/Sis/src/main/java/org/dromara/sis/domain/SisLibDeviceRef.java b/ruoyi-modules/Sis/src/main/java/org/dromara/sis/domain/SisLibDeviceRef.java index ebb9fb20..02ae561e 100644 --- a/ruoyi-modules/Sis/src/main/java/org/dromara/sis/domain/SisLibDeviceRef.java +++ b/ruoyi-modules/Sis/src/main/java/org/dromara/sis/domain/SisLibDeviceRef.java @@ -46,7 +46,7 @@ public class SisLibDeviceRef extends TenantEntity { /** * 第三方设备库添加状态 1: 成功,2:失败 */ - private Long eqpLibState; + private Integer eqpLibState; } diff --git a/ruoyi-modules/Sis/src/main/java/org/dromara/sis/domain/SisPersonLib.java b/ruoyi-modules/Sis/src/main/java/org/dromara/sis/domain/SisPersonLib.java index 36b4ea41..3f7cede9 100644 --- a/ruoyi-modules/Sis/src/main/java/org/dromara/sis/domain/SisPersonLib.java +++ b/ruoyi-modules/Sis/src/main/java/org/dromara/sis/domain/SisPersonLib.java @@ -45,12 +45,12 @@ public class SisPersonLib extends TenantEntity { /** * 库类型,1:人员库,2:工服库 */ - private Long libType; + private Integer libType; /** * 库的业务类型 1: 门禁库,2: 黑名单库 */ - private Long busiType; + private Integer busiType; } diff --git a/ruoyi-modules/Sis/src/main/java/org/dromara/sis/domain/SisPersonLibImg.java b/ruoyi-modules/Sis/src/main/java/org/dromara/sis/domain/SisPersonLibImg.java index f584aa95..f4b57486 100644 --- a/ruoyi-modules/Sis/src/main/java/org/dromara/sis/domain/SisPersonLibImg.java +++ b/ruoyi-modules/Sis/src/main/java/org/dromara/sis/domain/SisPersonLibImg.java @@ -52,7 +52,7 @@ public class SisPersonLibImg extends TenantEntity { * 性别 1:男 2:女 99:未说明 */ - private Long sex; + private Integer sex; /** * 邮箱 @@ -69,7 +69,7 @@ public class SisPersonLibImg extends TenantEntity { 1:身份证 2:护照 3:行驶证 99:其它 */ - private Long certificateType; + private Integer certificateType; /** * 证件号码 diff --git a/ruoyi-modules/Sis/src/main/java/org/dromara/sis/domain/TdFactory.java b/ruoyi-modules/Sis/src/main/java/org/dromara/sis/domain/TdFactory.java index a67d4104..e72a2927 100644 --- a/ruoyi-modules/Sis/src/main/java/org/dromara/sis/domain/TdFactory.java +++ b/ruoyi-modules/Sis/src/main/java/org/dromara/sis/domain/TdFactory.java @@ -1,10 +1,10 @@ package org.dromara.sis.domain; -import org.dromara.common.mybatis.core.domain.BaseEntity; -import com.baomidou.mybatisplus.annotation.*; +import com.baomidou.mybatisplus.annotation.TableId; +import com.baomidou.mybatisplus.annotation.TableName; import lombok.Data; import lombok.EqualsAndHashCode; -import java.util.Date; +import org.dromara.common.mybatis.core.domain.BaseEntity; import java.io.Serial; @@ -43,15 +43,5 @@ public class TdFactory extends BaseEntity { */ private String remark; - /** - * 数据状态:1有效,0无效 - */ - private Long dataState; - - /** - * 修改时间 - */ - private Date modifyTime; - } diff --git a/ruoyi-modules/Sis/src/main/java/org/dromara/sis/domain/TdMeter.java b/ruoyi-modules/Sis/src/main/java/org/dromara/sis/domain/TdMeter.java index b5378d7b..45618bfc 100644 --- a/ruoyi-modules/Sis/src/main/java/org/dromara/sis/domain/TdMeter.java +++ b/ruoyi-modules/Sis/src/main/java/org/dromara/sis/domain/TdMeter.java @@ -46,12 +46,12 @@ public class TdMeter extends BaseEntity { /** * 设备类型(1-电表,2-水表,3-气表) */ - private Long meterType; + private Integer meterType; /** * 表用途(1-分表,2-总表,3-公摊表) */ - private Long meterPurpose; + private Integer meterPurpose; /** * 分摊类型 @@ -61,12 +61,12 @@ public class TdMeter extends BaseEntity { * 4-按房源数量 * 5-按固定比例 */ - private Long shareType; + private Integer shareType; /** * 付费类型(1-先付费,2-后付费) */ - private Long payType; + private Integer payType; /** * 当前表显示读数 @@ -91,12 +91,12 @@ public class TdMeter extends BaseEntity { /** * 通信状态 */ - private Long communicationState; + private Integer communicationState; /** * 运行状态 */ - private Long runningState; + private Integer runningState; /** * 备注 diff --git a/ruoyi-modules/Sis/src/main/java/org/dromara/sis/domain/TdMeterConfig.java b/ruoyi-modules/Sis/src/main/java/org/dromara/sis/domain/TdMeterConfig.java index 4e8e275c..221f0be7 100644 --- a/ruoyi-modules/Sis/src/main/java/org/dromara/sis/domain/TdMeterConfig.java +++ b/ruoyi-modules/Sis/src/main/java/org/dromara/sis/domain/TdMeterConfig.java @@ -30,27 +30,27 @@ public class TdMeterConfig extends BaseEntity { /** * 设备类型(1-电表,2-水表,3-气表) */ - private Long meterType; + private Integer meterType; /** * 付费类型(1-先付费,2-后付费) */ - private Long payType; + private Integer payType; /** * 欠费是否断电/水/气(0-是,1-否) */ - private Long arrearsOutage; + private Integer arrearsOutage; /** * 后付费模式下是否自动断电/水/气(0-是,1-否) */ - private Long autoOutage; + private Integer autoOutage; /** * 当auto_outage=0的时候生效,逾期多少天自动断水/电/气 */ - private Long overdueDay; + private Integer overdueDay; /** * 备注 diff --git a/ruoyi-modules/Sis/src/main/java/org/dromara/sis/domain/TdMeterRoom.java b/ruoyi-modules/Sis/src/main/java/org/dromara/sis/domain/TdMeterRoom.java index f62aeb04..ff13e5e3 100644 --- a/ruoyi-modules/Sis/src/main/java/org/dromara/sis/domain/TdMeterRoom.java +++ b/ruoyi-modules/Sis/src/main/java/org/dromara/sis/domain/TdMeterRoom.java @@ -1,9 +1,10 @@ package org.dromara.sis.domain; -import org.dromara.common.mybatis.core.domain.BaseEntity; -import com.baomidou.mybatisplus.annotation.*; +import com.baomidou.mybatisplus.annotation.TableId; +import com.baomidou.mybatisplus.annotation.TableName; import lombok.Data; import lombok.EqualsAndHashCode; +import org.dromara.common.mybatis.core.domain.BaseEntity; import java.io.Serial; 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 1b357c45..ee1075e2 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 @@ -60,7 +60,7 @@ public class SisAccessControlBo extends BaseEntity { * */ @NotNull(message = "不能为空", groups = { AddGroup.class, EditGroup.class }) - private Long accessPort; + private Integer accessPort; /** * 门禁设备类型 @@ -96,17 +96,6 @@ public class SisAccessControlBo extends BaseEntity { @NotBlank(message = "组织编码不能为空", groups = { AddGroup.class, EditGroup.class }) private String orgCode; - /** - * 数据状态:1有效,0无效 - */ - @NotNull(message = "数据状态:1有效,0无效不能为空", groups = { AddGroup.class, EditGroup.class }) - private Long dataState; - - /** - * 搜索值 - */ - private String searchValue; - /** * 绑定设备Id */ diff --git a/ruoyi-modules/Sis/src/main/java/org/dromara/sis/domain/bo/SisAccessControlDeviceBo.java b/ruoyi-modules/Sis/src/main/java/org/dromara/sis/domain/bo/SisAccessControlDeviceBo.java index c8fe4a0d..a2b729d0 100644 --- a/ruoyi-modules/Sis/src/main/java/org/dromara/sis/domain/bo/SisAccessControlDeviceBo.java +++ b/ruoyi-modules/Sis/src/main/java/org/dromara/sis/domain/bo/SisAccessControlDeviceBo.java @@ -41,12 +41,12 @@ public class SisAccessControlDeviceBo extends BaseEntity { /** * 设备类型 */ - private Long eqpType; + private Integer eqpType; /** * 接入类型(1: 平台接入,2:设备接入) */ - private Long accessType; + private Integer accessType; /** * 设备ip @@ -58,7 +58,7 @@ public class SisAccessControlDeviceBo extends BaseEntity { * 设备端口 */ @NotNull(message = "设备端口不能为空", groups = {AddGroup.class, EditGroup.class}) - private Long eqpPort; + private Integer eqpPort; /** * 设备账号 diff --git a/ruoyi-modules/Sis/src/main/java/org/dromara/sis/domain/bo/SisDeviceManageBo.java b/ruoyi-modules/Sis/src/main/java/org/dromara/sis/domain/bo/SisDeviceManageBo.java index 57ddffe7..f1fd769a 100644 --- a/ruoyi-modules/Sis/src/main/java/org/dromara/sis/domain/bo/SisDeviceManageBo.java +++ b/ruoyi-modules/Sis/src/main/java/org/dromara/sis/domain/bo/SisDeviceManageBo.java @@ -48,18 +48,13 @@ public class SisDeviceManageBo extends BaseEntity { * 设备端口 */ @NotNull(message = "设备端口不能为空", groups = {AddGroup.class, EditGroup.class}) - private Long devicePort; + private Integer devicePort; /** * 设备 */ private String deviceMac; - /** - * 设备在线状态 0:离线 1:在线 2:未知 - */ - private Long deviceStatus; - /** * 父级设备id */ diff --git a/ruoyi-modules/Sis/src/main/java/org/dromara/sis/domain/bo/SisDevicePointBo.java b/ruoyi-modules/Sis/src/main/java/org/dromara/sis/domain/bo/SisDevicePointBo.java index c18cab5d..0d796e4c 100644 --- a/ruoyi-modules/Sis/src/main/java/org/dromara/sis/domain/bo/SisDevicePointBo.java +++ b/ruoyi-modules/Sis/src/main/java/org/dromara/sis/domain/bo/SisDevicePointBo.java @@ -36,14 +36,14 @@ public class SisDevicePointBo extends BaseEntity { * 视频协议 1:onvif 2: rtsp */ - private Long video; + private Integer video; /** * 传输协议(AIBOX 需要,一 -体机不需要) 1: tcp 2: +体机不需要) 1: tcp 2: udp */ - private Long transportType; + private Integer transportType; /** * 点位名称 @@ -64,7 +64,7 @@ rtsp 时,该字段必填) /** * 端口 */ - private Long port; + private Integer port; /** * 通道相机账号 @@ -81,7 +81,7 @@ rtsp 时,该字段必填) 式:1:主码流 2:自定 义码流 */ - private Long videoType; + private Integer videoType; /** * 码流 id:当选择自定义码 @@ -89,22 +89,6 @@ rtsp 时,该字段必填) 获取设备码流信息接口返 回的码流 id */ - private Long videoId; - - /** - * 创建人id - */ - private Long createById; - - /** - * 更新人id - */ - private Long updateById; - - /** - * 搜索值 - */ - private String searchValue; - + private Integer videoId; } diff --git a/ruoyi-modules/Sis/src/main/java/org/dromara/sis/domain/bo/SisLibDeviceImgRefBo.java b/ruoyi-modules/Sis/src/main/java/org/dromara/sis/domain/bo/SisLibDeviceImgRefBo.java index 4a3fd114..0d4c6489 100644 --- a/ruoyi-modules/Sis/src/main/java/org/dromara/sis/domain/bo/SisLibDeviceImgRefBo.java +++ b/ruoyi-modules/Sis/src/main/java/org/dromara/sis/domain/bo/SisLibDeviceImgRefBo.java @@ -56,20 +56,4 @@ public class SisLibDeviceImgRefBo extends BaseEntity { @NotNull(message = "设备库图片id不能为空", groups = { AddGroup.class, EditGroup.class }) private Long eqpLibImgId; - /** - * 创建人id - */ - private Long createById; - - /** - * 更新人id - */ - private Long updateById; - - /** - * 搜索值 - */ - private String searchValue; - - } diff --git a/ruoyi-modules/Sis/src/main/java/org/dromara/sis/domain/bo/SisLibDeviceRefBo.java b/ruoyi-modules/Sis/src/main/java/org/dromara/sis/domain/bo/SisLibDeviceRefBo.java index 68c9d890..cc8681ca 100644 --- a/ruoyi-modules/Sis/src/main/java/org/dromara/sis/domain/bo/SisLibDeviceRefBo.java +++ b/ruoyi-modules/Sis/src/main/java/org/dromara/sis/domain/bo/SisLibDeviceRefBo.java @@ -49,22 +49,6 @@ public class SisLibDeviceRefBo extends BaseEntity { * 第三方设备库添加状态 1: 成功,2:失败 */ @NotNull(message = "第三方设备库添加状态 1: 成功,2:失败不能为空", groups = {AddGroup.class, EditGroup.class}) - private Long eqpLibState; - - /** - * 创建人id - */ - private Long createById; - - /** - * 更新人id - */ - private Long updateById; - - /** - * 搜索值 - */ - private String searchValue; - + private Integer eqpLibState; } diff --git a/ruoyi-modules/Sis/src/main/java/org/dromara/sis/domain/bo/SisPersonLibBo.java b/ruoyi-modules/Sis/src/main/java/org/dromara/sis/domain/bo/SisPersonLibBo.java index 67681060..42557bd1 100644 --- a/ruoyi-modules/Sis/src/main/java/org/dromara/sis/domain/bo/SisPersonLibBo.java +++ b/ruoyi-modules/Sis/src/main/java/org/dromara/sis/domain/bo/SisPersonLibBo.java @@ -42,7 +42,7 @@ public class SisPersonLibBo extends BaseEntity { /** * 设备编码,需要同步创建到设备中 */ - @NotBlank(message = "人像设备不能为空", groups = {AddGroup.class, EditGroup.class}) + @NotNull(message = "人像设备不能为空", groups = {AddGroup.class, EditGroup.class}) private List eqpIds; /** @@ -53,7 +53,7 @@ public class SisPersonLibBo extends BaseEntity { /** * 库类型,1:人员库,2:工服库 */ - private Long libType; + private Integer libType; /** * 库类型名称 @@ -65,7 +65,7 @@ public class SisPersonLibBo extends BaseEntity { /** * 库的业务类型 1: 门禁库,2: 黑名单库 */ - private Long busiType = 1L; + private Integer busiType = 1; } diff --git a/ruoyi-modules/Sis/src/main/java/org/dromara/sis/domain/bo/SisPersonLibImgBo.java b/ruoyi-modules/Sis/src/main/java/org/dromara/sis/domain/bo/SisPersonLibImgBo.java index 8c05f4b1..ff9d722e 100644 --- a/ruoyi-modules/Sis/src/main/java/org/dromara/sis/domain/bo/SisPersonLibImgBo.java +++ b/ruoyi-modules/Sis/src/main/java/org/dromara/sis/domain/bo/SisPersonLibImgBo.java @@ -53,7 +53,7 @@ public class SisPersonLibImgBo extends BaseEntity { * 性别 1:男 * 2:女 99:未说明 */ - private Long sex; + private Integer sex; /** * 邮箱 @@ -70,7 +70,7 @@ public class SisPersonLibImgBo extends BaseEntity { * 1:身份证 2:护照 * 3:行驶证 99:其它 */ - private Long certificateType; + private Integer certificateType; /** * 证件号码 @@ -81,21 +81,4 @@ public class SisPersonLibImgBo extends BaseEntity { * 出生日期 */ private String birthDate; - - /** - * 创建人id - */ - private Long createById; - - /** - * 更新人id - */ - private Long updateById; - - /** - * 搜索值 - */ - private String searchValue; - - } diff --git a/ruoyi-modules/Sis/src/main/java/org/dromara/sis/domain/bo/TdFactoryBo.java b/ruoyi-modules/Sis/src/main/java/org/dromara/sis/domain/bo/TdFactoryBo.java index 2cd84c79..c26c2304 100644 --- a/ruoyi-modules/Sis/src/main/java/org/dromara/sis/domain/bo/TdFactoryBo.java +++ b/ruoyi-modules/Sis/src/main/java/org/dromara/sis/domain/bo/TdFactoryBo.java @@ -43,12 +43,4 @@ public class TdFactoryBo extends BaseEntity { * 备注 */ private String remark; - - /** - * 数据状态:1有效,0无效 - */ - @NotNull(message = "数据状态:1有效,0无效不能为空", groups = {AddGroup.class, EditGroup.class}) - private Long dataState; - - } diff --git a/ruoyi-modules/Sis/src/main/java/org/dromara/sis/domain/bo/TdMeterBo.java b/ruoyi-modules/Sis/src/main/java/org/dromara/sis/domain/bo/TdMeterBo.java index 376bf344..fba940f0 100644 --- a/ruoyi-modules/Sis/src/main/java/org/dromara/sis/domain/bo/TdMeterBo.java +++ b/ruoyi-modules/Sis/src/main/java/org/dromara/sis/domain/bo/TdMeterBo.java @@ -49,12 +49,12 @@ public class TdMeterBo extends BaseEntity { /** * 设备类型(1-电表,2-水表,3-气表) */ - private Long meterType; + private Integer meterType; /** * 表用途(1-分表,2-总表,3-公摊表) */ - private Long meterPurpose; + private Integer meterPurpose; /** * 分摊类型 @@ -64,17 +64,17 @@ public class TdMeterBo extends BaseEntity { * 4-按房源数量 * 5-按固定比例 */ - private Long shareType; + private Integer shareType; /** * 付费类型(1-先付费,2-后付费) */ - private Long payType; + private Integer payType; /** * 最大表显读数(超过归0) */ - private Long maxDisplay; + private Integer maxDisplay; /** * 计费倍率 diff --git a/ruoyi-modules/Sis/src/main/java/org/dromara/sis/domain/bo/TdMeterConfigBo.java b/ruoyi-modules/Sis/src/main/java/org/dromara/sis/domain/bo/TdMeterConfigBo.java index 13b52169..5c12b794 100644 --- a/ruoyi-modules/Sis/src/main/java/org/dromara/sis/domain/bo/TdMeterConfigBo.java +++ b/ruoyi-modules/Sis/src/main/java/org/dromara/sis/domain/bo/TdMeterConfigBo.java @@ -29,31 +29,31 @@ public class TdMeterConfigBo extends BaseEntity { /** * 设备类型(1-电表,2-水表,3-气表) */ - private Long meterType; + private Integer meterType; /** * 付费类型(1-先付费,2-后付费) */ @NotNull(message = "付费类型(1-先付费,2-后付费)不能为空", groups = { AddGroup.class, EditGroup.class }) - private Long payType; + private Integer payType; /** * 欠费是否断电/水/气(0-是,1-否) */ @NotNull(message = "欠费是否断电/水/气(0-是,1-否)不能为空", groups = { AddGroup.class, EditGroup.class }) - private Long arrearsOutage; + private Integer arrearsOutage; /** * 后付费模式下是否自动断电/水/气(0-是,1-否) */ @NotNull(message = "后付费模式下是否自动断电/水/气(0-是,1-否)不能为空", groups = { AddGroup.class, EditGroup.class }) - private Long autoOutage; + private Integer autoOutage; /** * 当auto_outage=0的时候生效,逾期多少天自动断水/电/气 */ @NotNull(message = "当auto_outage=0的时候生效,逾期多少天自动断水/电/气不能为空", groups = { AddGroup.class, EditGroup.class }) - private Long overdueDay; + private Integer overdueDay; /** * 备注 diff --git a/ruoyi-modules/Sis/src/main/java/org/dromara/sis/domain/vo/SisAccessControlDeviceVo.java b/ruoyi-modules/Sis/src/main/java/org/dromara/sis/domain/vo/SisAccessControlDeviceVo.java index fd567768..4b15d558 100644 --- a/ruoyi-modules/Sis/src/main/java/org/dromara/sis/domain/vo/SisAccessControlDeviceVo.java +++ b/ruoyi-modules/Sis/src/main/java/org/dromara/sis/domain/vo/SisAccessControlDeviceVo.java @@ -76,7 +76,7 @@ public class SisAccessControlDeviceVo implements Serializable { * 设备端口 */ @ExcelProperty(value = "设备端口") - private Long eqpPort; + private Integer eqpPort; /** * 设备账号 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 866e6b60..ed58c952 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 @@ -29,7 +29,7 @@ public class SisAccessControlVo implements Serializable { private static final long serialVersionUID = 1L; /** - * + * */ @ExcelProperty(value = "") private Long id; @@ -65,19 +65,19 @@ public class SisAccessControlVo implements Serializable { private String accessIp; /** - * + * */ @ExcelProperty(value = "") - private Long accessPort; + private Integer accessPort; /** * 门禁设备类型 */ @ExcelProperty(value = "门禁设备类型") - private Long accessType; + private Integer accessType; /** - * + * */ @ExcelProperty(value = "") private String factoryCode; @@ -86,7 +86,7 @@ public class SisAccessControlVo implements Serializable { * 控制卡类型:1-系统,2-E8 */ @ExcelProperty(value = "控制卡类型:1-系统,2-E8") - private Long controlType; + private Integer controlType; /** * 控制卡类型编码 @@ -106,17 +106,4 @@ public class SisAccessControlVo implements Serializable { @ExcelProperty(value = "组织编码") private String orgCode; - /** - * 数据状态:1有效,0无效 - */ - @ExcelProperty(value = "数据状态:1有效,0无效") - private Long dataState; - - /** - * 搜索值 - */ - @ExcelProperty(value = "搜索值") - private String searchValue; - - } diff --git a/ruoyi-modules/Sis/src/main/java/org/dromara/sis/domain/vo/SisDeviceManageVo.java b/ruoyi-modules/Sis/src/main/java/org/dromara/sis/domain/vo/SisDeviceManageVo.java index 1c8d099a..6ac3c70c 100644 --- a/ruoyi-modules/Sis/src/main/java/org/dromara/sis/domain/vo/SisDeviceManageVo.java +++ b/ruoyi-modules/Sis/src/main/java/org/dromara/sis/domain/vo/SisDeviceManageVo.java @@ -53,7 +53,7 @@ public class SisDeviceManageVo implements Serializable { * 设备端口 */ @ExcelProperty(value = "设备端口") - private Long devicePort; + private Integer devicePort; /** * 设备 @@ -61,12 +61,6 @@ public class SisDeviceManageVo implements Serializable { @ExcelProperty(value = "设备") private String deviceMac; - /** - * 设备在线状态 0:离线 1:在线 2:未知 - */ - @ExcelProperty(value = "设备在线状态 0:离线 1:在线 2:未知") - private Long deviceStatus; - /** * 父级设备id */ @@ -83,7 +77,7 @@ public class SisDeviceManageVo implements Serializable { * 录像机端口 */ @ExcelProperty(value = "录像机端口") - private Long vcrPort; + private Integer vcrPort; /** * 门禁id diff --git a/ruoyi-modules/Sis/src/main/java/org/dromara/sis/domain/vo/SisDevicePointVo.java b/ruoyi-modules/Sis/src/main/java/org/dromara/sis/domain/vo/SisDevicePointVo.java index c1b0eb52..a453e8d3 100644 --- a/ruoyi-modules/Sis/src/main/java/org/dromara/sis/domain/vo/SisDevicePointVo.java +++ b/ruoyi-modules/Sis/src/main/java/org/dromara/sis/domain/vo/SisDevicePointVo.java @@ -43,7 +43,7 @@ public class SisDevicePointVo implements Serializable { * rtsp */ @ExcelProperty(value = "视频协议") - private Long video; + private Integer video; /** * 传输协议(AIBOX 需要,一 @@ -51,7 +51,7 @@ public class SisDevicePointVo implements Serializable { * udp */ @ExcelProperty(value = "传输协议") - private Long transportType; + private Integer transportType; /** * 点位名称 @@ -77,7 +77,7 @@ public class SisDevicePointVo implements Serializable { * 端口 */ @ExcelProperty(value = "端口") - private Long port; + private Integer port; /** * 通道相机账号 @@ -97,7 +97,7 @@ public class SisDevicePointVo implements Serializable { * 义码流 */ @ExcelProperty(value = "码流") - private Long videoType; + private Integer videoType; /** * 码流 id:当选择自定义码 @@ -108,11 +108,4 @@ public class SisDevicePointVo implements Serializable { @ExcelProperty(value = "码流id") private Long videoId; - /** - * 搜索值 - */ - @ExcelProperty(value = "搜索值") - private String searchValue; - - } diff --git a/ruoyi-modules/Sis/src/main/java/org/dromara/sis/domain/vo/SisLibDeviceImgRefVo.java b/ruoyi-modules/Sis/src/main/java/org/dromara/sis/domain/vo/SisLibDeviceImgRefVo.java index 8a5344e1..e2d9d502 100644 --- a/ruoyi-modules/Sis/src/main/java/org/dromara/sis/domain/vo/SisLibDeviceImgRefVo.java +++ b/ruoyi-modules/Sis/src/main/java/org/dromara/sis/domain/vo/SisLibDeviceImgRefVo.java @@ -60,23 +60,4 @@ public class SisLibDeviceImgRefVo implements Serializable { @ExcelProperty(value = "设备库图片id") private Long eqpLibImgId; - /** - * 创建人id - */ - @ExcelProperty(value = "创建人id") - private Long createById; - - /** - * 更新人id - */ - @ExcelProperty(value = "更新人id") - private Long updateById; - - /** - * 搜索值 - */ - @ExcelProperty(value = "搜索值") - private String searchValue; - - } diff --git a/ruoyi-modules/Sis/src/main/java/org/dromara/sis/domain/vo/SisLibDeviceRefVo.java b/ruoyi-modules/Sis/src/main/java/org/dromara/sis/domain/vo/SisLibDeviceRefVo.java index 166019f0..c528df07 100644 --- a/ruoyi-modules/Sis/src/main/java/org/dromara/sis/domain/vo/SisLibDeviceRefVo.java +++ b/ruoyi-modules/Sis/src/main/java/org/dromara/sis/domain/vo/SisLibDeviceRefVo.java @@ -52,25 +52,6 @@ public class SisLibDeviceRefVo implements Serializable { * 第三方设备库添加状态 1: 成功,2:失败 */ @ExcelProperty(value = "第三方设备库添加状态 1: 成功,2:失败") - private Long eqpLibState; - - /** - * 创建人id - */ - @ExcelProperty(value = "创建人id") - private Long createById; - - /** - * 更新人id - */ - @ExcelProperty(value = "更新人id") - private Long updateById; - - /** - * 搜索值 - */ - @ExcelProperty(value = "搜索值") - private String searchValue; - + private Integer eqpLibState; } diff --git a/ruoyi-modules/Sis/src/main/java/org/dromara/sis/domain/vo/SisPersonLibImgVo.java b/ruoyi-modules/Sis/src/main/java/org/dromara/sis/domain/vo/SisPersonLibImgVo.java index 15068b33..340485e6 100644 --- a/ruoyi-modules/Sis/src/main/java/org/dromara/sis/domain/vo/SisPersonLibImgVo.java +++ b/ruoyi-modules/Sis/src/main/java/org/dromara/sis/domain/vo/SisPersonLibImgVo.java @@ -60,7 +60,7 @@ public class SisPersonLibImgVo implements Serializable { 2:女 99:未说明 */ @ExcelProperty(value = "性别 1") - private Long sex; + private Integer sex; /** * 邮箱 @@ -80,7 +80,7 @@ public class SisPersonLibImgVo implements Serializable { 3:行驶证 99:其它 */ @ExcelProperty(value = "证件类型") - private Long certificateType; + private Integer certificateType; /** * 证件号码 @@ -94,23 +94,4 @@ public class SisPersonLibImgVo implements Serializable { @ExcelProperty(value = "出生日期") private String birthDate; - /** - * 创建人id - */ - @ExcelProperty(value = "创建人id") - private Long createById; - - /** - * 更新人id - */ - @ExcelProperty(value = "更新人id") - private Long updateById; - - /** - * 搜索值 - */ - @ExcelProperty(value = "搜索值") - private String searchValue; - - } diff --git a/ruoyi-modules/Sis/src/main/java/org/dromara/sis/domain/vo/SisPersonLibVo.java b/ruoyi-modules/Sis/src/main/java/org/dromara/sis/domain/vo/SisPersonLibVo.java index c5384e01..294b1f30 100644 --- a/ruoyi-modules/Sis/src/main/java/org/dromara/sis/domain/vo/SisPersonLibVo.java +++ b/ruoyi-modules/Sis/src/main/java/org/dromara/sis/domain/vo/SisPersonLibVo.java @@ -52,31 +52,12 @@ public class SisPersonLibVo implements Serializable { * 库类型,1:人员库,2:工服库 */ @ExcelProperty(value = "库类型,1:人员库,2:工服库") - private Long libType; + private Integer libType; /** * 库的业务类型 1: 门禁库,2: 黑名单库 */ @ExcelProperty(value = "库的业务类型 1: 门禁库,2: 黑名单库") - private Long busiType; - - /** - * 创建人id - */ - @ExcelProperty(value = "创建人id") - private Long createById; - - /** - * 更新人id - */ - @ExcelProperty(value = "更新人id") - private Long updateById; - - /** - * 搜索值 - */ - @ExcelProperty(value = "搜索值") - private String searchValue; - + private Integer busiType; } diff --git a/ruoyi-modules/Sis/src/main/java/org/dromara/sis/domain/vo/TdFactoryVo.java b/ruoyi-modules/Sis/src/main/java/org/dromara/sis/domain/vo/TdFactoryVo.java index 534a75e1..1e59c43b 100644 --- a/ruoyi-modules/Sis/src/main/java/org/dromara/sis/domain/vo/TdFactoryVo.java +++ b/ruoyi-modules/Sis/src/main/java/org/dromara/sis/domain/vo/TdFactoryVo.java @@ -48,11 +48,4 @@ public class TdFactoryVo implements Serializable { @ExcelProperty(value = "备注") private String remark; - /** - * 数据状态:1有效,0无效 - */ - @ExcelProperty(value = "数据状态:1有效,0无效") - private Long dataState; - - } diff --git a/ruoyi-modules/Sis/src/main/java/org/dromara/sis/domain/vo/TdMeterConfigVo.java b/ruoyi-modules/Sis/src/main/java/org/dromara/sis/domain/vo/TdMeterConfigVo.java index ca4d7e19..4a44e605 100644 --- a/ruoyi-modules/Sis/src/main/java/org/dromara/sis/domain/vo/TdMeterConfigVo.java +++ b/ruoyi-modules/Sis/src/main/java/org/dromara/sis/domain/vo/TdMeterConfigVo.java @@ -36,32 +36,32 @@ public class TdMeterConfigVo implements Serializable { * 设备类型(1-电表,2-水表,3-气表) */ @ExcelProperty(value = "设备类型(1-电表,2-水表,3-气表)") - private Long meterType; + private Integer meterType; /** * 付费类型(1-先付费,2-后付费) */ @ExcelProperty(value = "付费类型(1-先付费,2-后付费)") - private Long payType; + private Integer payType; /** * 欠费是否断电/水/气(0-是,1-否) */ @ExcelProperty(value = "欠费是否断电/水/气(0-是,1-否)") - private Long arrearsOutage; + private Integer arrearsOutage; /** * 后付费模式下是否自动断电/水/气(0-是,1-否) */ @ExcelProperty(value = "后付费模式下是否自动断电/水/气", converter = ExcelDictConvert.class) @ExcelDictFormat(readConverterExp = "0=-是,1-否") - private Long autoOutage; + private Integer autoOutage; /** * 当auto_outage=0的时候生效,逾期多少天自动断水/电/气 */ @ExcelProperty(value = "当auto_outage=0的时候生效,逾期多少天自动断水/电/气") - private Long overdueDay; + private Integer overdueDay; /** * 备注 diff --git a/ruoyi-modules/Sis/src/main/java/org/dromara/sis/domain/vo/TdMeterVo.java b/ruoyi-modules/Sis/src/main/java/org/dromara/sis/domain/vo/TdMeterVo.java index ab703497..dcb2a9aa 100644 --- a/ruoyi-modules/Sis/src/main/java/org/dromara/sis/domain/vo/TdMeterVo.java +++ b/ruoyi-modules/Sis/src/main/java/org/dromara/sis/domain/vo/TdMeterVo.java @@ -53,13 +53,13 @@ public class TdMeterVo implements Serializable { * 设备类型(1-电表,2-水表,3-气表) */ @ExcelProperty(value = "设备类型(1-电表,2-水表,3-气表)") - private Long meterType; + private Integer meterType; /** * 表用途(1-分表,2-总表,3-公摊表) */ @ExcelProperty(value = "表用途(1-分表,2-总表,3-公摊表)") - private Long meterPurpose; + private Integer meterPurpose; /** * 分摊类型 @@ -70,13 +70,13 @@ public class TdMeterVo implements Serializable { * 5-按固定比例 */ @ExcelProperty(value = "分摊类型 1-不公摊 2-按分表用量 3-按租客面积 4-按房源数量 5-按固定比例") - private Long shareType; + private Integer shareType; /** * 付费类型(1-先付费,2-后付费) */ @ExcelProperty(value = "付费类型(1-先付费,2-后付费)") - private Long payType; + private Integer payType; /** * 当前表显示读数 @@ -94,13 +94,13 @@ public class TdMeterVo implements Serializable { * 通信状态 */ @ExcelProperty(value = "通信状态") - private Long communicationState; + private Integer communicationState; /** * 运行状态 */ @ExcelProperty(value = "运行状态") - private Long runningState; + private Integer runningState; /** * 备注 diff --git a/ruoyi-modules/Sis/src/main/java/org/dromara/sis/sdk/e8/domain/door/req/DoorDeviceAddReq.java b/ruoyi-modules/Sis/src/main/java/org/dromara/sis/sdk/e8/domain/door/req/DoorDeviceAddReq.java index b2e66904..a7496060 100644 --- a/ruoyi-modules/Sis/src/main/java/org/dromara/sis/sdk/e8/domain/door/req/DoorDeviceAddReq.java +++ b/ruoyi-modules/Sis/src/main/java/org/dromara/sis/sdk/e8/domain/door/req/DoorDeviceAddReq.java @@ -28,7 +28,7 @@ public class DoorDeviceAddReq { /** * 设备端口 */ - private Long port; + private Integer port; /** * 设备MAC @@ -56,7 +56,7 @@ public class DoorDeviceAddReq { * 2201:一体式门禁 2202:分体式门禁 2203:人脸门禁 2204:梯控 2207:人脸盒子终端 * 2208:人脸盒子面板机 2209:一体式读头 2211:梯控读头 2102:电子哨兵 */ - private Long type; + private Integer type; /** * 业务逻辑设备类 diff --git a/ruoyi-modules/Sis/src/main/java/org/dromara/sis/sdk/unview/utils/UniViewHttp.java b/ruoyi-modules/Sis/src/main/java/org/dromara/sis/sdk/unview/utils/UniViewHttp.java index 81b4ea8c..e859fa34 100644 --- a/ruoyi-modules/Sis/src/main/java/org/dromara/sis/sdk/unview/utils/UniViewHttp.java +++ b/ruoyi-modules/Sis/src/main/java/org/dromara/sis/sdk/unview/utils/UniViewHttp.java @@ -106,14 +106,13 @@ public class UniViewHttp { if (data == null) { requestEntity = new HttpEntity<>(null, headers); } - if (data instanceof JSONObject) { - JSONObject obj = (JSONObject) data; + if (data instanceof JSONObject obj) { requestEntity = new HttpEntity<>(obj.toJSONString(), headers); } else { requestEntity = new HttpEntity<>(JSONObject.toJSONString(data), headers); } ResponseEntity exchange = restTemplate.exchange(requestUrl, api.getMethod(), requestEntity, String.class); - int statusCode = exchange.getStatusCodeValue(); + int statusCode = exchange.getStatusCode().value(); String body = exchange.getBody(); if (HttpStatus.HTTP_UNAUTHORIZED == statusCode) { 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 cc6e19f1..a45615f5 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 @@ -92,7 +92,6 @@ public class SisAccessControlServiceImpl implements ISisAccessControlService { 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()); - lqw.eq(StringUtils.isNotBlank(bo.getOrgCode()), SisAccessControl::getOrgCode, bo.getOrgCode()); lqw.eq(StringUtils.isNotBlank(bo.getSearchValue()), SisAccessControl::getSearchValue, bo.getSearchValue()); return lqw; } 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 a7d4ba10..4a7fb40b 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 @@ -79,7 +79,6 @@ public class SisDeviceManageServiceImpl implements ISisDeviceManageService { lqw.eq(StringUtils.isNotBlank(bo.getDeviceIp()), SisDeviceManage::getDeviceIp, bo.getDeviceIp()); lqw.eq(bo.getDevicePort() != null, SisDeviceManage::getDevicePort, bo.getDevicePort()); lqw.eq(StringUtils.isNotBlank(bo.getDeviceMac()), SisDeviceManage::getDeviceMac, bo.getDeviceMac()); - lqw.eq(bo.getDeviceStatus() != null, SisDeviceManage::getDeviceStatus, bo.getDeviceStatus()); lqw.eq(bo.getParentId() != null, SisDeviceManage::getParentId, bo.getParentId()); lqw.eq(StringUtils.isNotBlank(bo.getVcrIp()), SisDeviceManage::getVcrIp, bo.getVcrIp()); lqw.eq(bo.getVcrPort() != null, SisDeviceManage::getVcrPort, bo.getVcrPort()); diff --git a/ruoyi-modules/Sis/src/main/java/org/dromara/sis/service/impl/SisPersonLibServiceImpl.java b/ruoyi-modules/Sis/src/main/java/org/dromara/sis/service/impl/SisPersonLibServiceImpl.java index 021f3cb7..41525317 100644 --- a/ruoyi-modules/Sis/src/main/java/org/dromara/sis/service/impl/SisPersonLibServiceImpl.java +++ b/ruoyi-modules/Sis/src/main/java/org/dromara/sis/service/impl/SisPersonLibServiceImpl.java @@ -122,7 +122,7 @@ public class SisPersonLibServiceImpl implements ISisPersonLibService { systemInfo.setAccount(sisAccessControlDeviceVo.getEqpAccount()); systemInfo.setPassword(sisAccessControlDeviceVo.getEqpPwd()); systemInfo.setIp(sisAccessControlDeviceVo.getEqpIp()); - systemInfo.setPort(systemInfo.getPort()); + systemInfo.setPort(sisAccessControlDeviceVo.getEqpPort()); // libType =1 人像库,否则工服库 Integer outLibCode = null; if (bo.getLibType() == 1) { @@ -138,7 +138,7 @@ public class SisPersonLibServiceImpl implements ISisPersonLibService { ref.setLibId(add.getId()); ref.setEqpId(sisAccessControlDeviceVo.getId()); ref.setEqpLibCode(Long.valueOf(outLibCode)); - ref.setEqpLibState(1L); + ref.setEqpLibState(1); Boolean insert = sisLibDeviceRefService.insert(ref); Assert.isTrue(insert, "写入库关联关系表失败!"); log.info("同步建库完成!"); diff --git a/ruoyi-modules/Sis/src/main/java/org/dromara/sis/service/impl/TdFactoryServiceImpl.java b/ruoyi-modules/Sis/src/main/java/org/dromara/sis/service/impl/TdFactoryServiceImpl.java index 5920ca6f..c070bf48 100644 --- a/ruoyi-modules/Sis/src/main/java/org/dromara/sis/service/impl/TdFactoryServiceImpl.java +++ b/ruoyi-modules/Sis/src/main/java/org/dromara/sis/service/impl/TdFactoryServiceImpl.java @@ -76,7 +76,6 @@ public class TdFactoryServiceImpl implements ITdFactoryService { lqw.orderByAsc(TdFactory::getId); lqw.eq(StringUtils.isNotBlank(bo.getFactoryNo()), TdFactory::getFactoryNo, bo.getFactoryNo()); lqw.like(StringUtils.isNotBlank(bo.getFactoryName()), TdFactory::getFactoryName, bo.getFactoryName()); - lqw.eq(bo.getDataState() != null, TdFactory::getDataState, bo.getDataState()); return lqw; } From 7216b0853098aba169b64ef51255ebd6c5e68aa1 Mon Sep 17 00:00:00 2001 From: 15683799673 Date: Fri, 27 Jun 2025 22:18:14 +0800 Subject: [PATCH 03/21] =?UTF-8?q?=E4=BA=BA=E5=83=8F=E5=BA=93=E9=A1=B5?= =?UTF-8?q?=E9=9D=A2=E4=BB=A5=E5=8F=8A=E5=90=8E=E7=AB=AF=E5=AE=8C=E6=88=90?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../service/impl/TdFactoryServiceImpl.java | 1 - .../dromara/sis/domain/SisLibDeviceRef.java | 7 ++- .../org/dromara/sis/domain/SisPersonLib.java | 7 ++- .../domain/bo/AccessControlLibDeviceBo.java | 21 ++++++++ .../sis/domain/bo/SisLibDeviceRefBo.java | 13 ++--- .../domain/vo/SisAccessControlDeviceVo.java | 18 ------- .../sis/domain/vo/SisAccessControlVo.java | 6 --- .../sis/domain/vo/SisLibDeviceRefVo.java | 10 ++-- .../dromara/sis/domain/vo/SisPersonLibVo.java | 8 ++- .../sis/mapper/SisLibDeviceRefMapper.java | 7 +++ .../unview/service/UnViewAiBoxApiService.java | 32 +++++++++-- .../sis/service/ISisLibDeviceRefService.java | 34 ++++++++++-- .../impl/SisLibDeviceRefServiceImpl.java | 26 +++++++-- .../service/impl/SisPersonLibServiceImpl.java | 53 +++++++++++++++---- .../mapper/sis/SisLibDeviceRefMapper.xml | 11 ++++ 15 files changed, 181 insertions(+), 73 deletions(-) create mode 100644 ruoyi-modules/Sis/src/main/java/org/dromara/sis/domain/bo/AccessControlLibDeviceBo.java diff --git a/ruoyi-modules/Property/src/main/java/org/dromara/property/service/impl/TdFactoryServiceImpl.java b/ruoyi-modules/Property/src/main/java/org/dromara/property/service/impl/TdFactoryServiceImpl.java index b848bb91..6cd40a47 100644 --- a/ruoyi-modules/Property/src/main/java/org/dromara/property/service/impl/TdFactoryServiceImpl.java +++ b/ruoyi-modules/Property/src/main/java/org/dromara/property/service/impl/TdFactoryServiceImpl.java @@ -76,7 +76,6 @@ public class TdFactoryServiceImpl implements ITdFactoryService { lqw.orderByAsc(TdFactory::getId); lqw.eq(StringUtils.isNotBlank(bo.getFactoryNo()), TdFactory::getFactoryNo, bo.getFactoryNo()); lqw.like(StringUtils.isNotBlank(bo.getFactoryName()), TdFactory::getFactoryName, bo.getFactoryName()); - lqw.eq(bo.getDataState() != null, TdFactory::getDataState, bo.getDataState()); lqw.eq(StringUtils.isNotBlank(bo.getSearchValue()), TdFactory::getSearchValue, bo.getSearchValue()); return lqw; } diff --git a/ruoyi-modules/Sis/src/main/java/org/dromara/sis/domain/SisLibDeviceRef.java b/ruoyi-modules/Sis/src/main/java/org/dromara/sis/domain/SisLibDeviceRef.java index 02ae561e..868fa785 100644 --- a/ruoyi-modules/Sis/src/main/java/org/dromara/sis/domain/SisLibDeviceRef.java +++ b/ruoyi-modules/Sis/src/main/java/org/dromara/sis/domain/SisLibDeviceRef.java @@ -41,7 +41,12 @@ public class SisLibDeviceRef extends TenantEntity { /** * 设备上的库id */ - private Long eqpLibCode; + private Long eqpLibId; + + /** + * 设备上的库类型 + */ + private Integer eqpLibType; /** * 第三方设备库添加状态 1: 成功,2:失败 diff --git a/ruoyi-modules/Sis/src/main/java/org/dromara/sis/domain/SisPersonLib.java b/ruoyi-modules/Sis/src/main/java/org/dromara/sis/domain/SisPersonLib.java index 3f7cede9..6f3241dc 100644 --- a/ruoyi-modules/Sis/src/main/java/org/dromara/sis/domain/SisPersonLib.java +++ b/ruoyi-modules/Sis/src/main/java/org/dromara/sis/domain/SisPersonLib.java @@ -1,9 +1,10 @@ package org.dromara.sis.domain; -import org.dromara.common.tenant.core.TenantEntity; -import com.baomidou.mybatisplus.annotation.*; +import com.baomidou.mybatisplus.annotation.TableId; +import com.baomidou.mybatisplus.annotation.TableName; import lombok.Data; import lombok.EqualsAndHashCode; +import org.dromara.common.tenant.core.TenantEntity; import java.io.Serial; @@ -51,6 +52,4 @@ public class SisPersonLib extends TenantEntity { * 库的业务类型 1: 门禁库,2: 黑名单库 */ private Integer busiType; - - } diff --git a/ruoyi-modules/Sis/src/main/java/org/dromara/sis/domain/bo/AccessControlLibDeviceBo.java b/ruoyi-modules/Sis/src/main/java/org/dromara/sis/domain/bo/AccessControlLibDeviceBo.java new file mode 100644 index 00000000..a39a7208 --- /dev/null +++ b/ruoyi-modules/Sis/src/main/java/org/dromara/sis/domain/bo/AccessControlLibDeviceBo.java @@ -0,0 +1,21 @@ +package org.dromara.sis.domain.bo; + +import lombok.Data; +import lombok.EqualsAndHashCode; + +/** + * 门禁控制设备和库关联的对象 + * + * @author lxj + */ +@EqualsAndHashCode(callSuper = true) +@Data +public class AccessControlLibDeviceBo extends SisAccessControlDeviceBo { + + private Integer eqpLibId; + + private Integer eqpLibType; + + private Long libId; + +} diff --git a/ruoyi-modules/Sis/src/main/java/org/dromara/sis/domain/bo/SisLibDeviceRefBo.java b/ruoyi-modules/Sis/src/main/java/org/dromara/sis/domain/bo/SisLibDeviceRefBo.java index cc8681ca..9c2967b4 100644 --- a/ruoyi-modules/Sis/src/main/java/org/dromara/sis/domain/bo/SisLibDeviceRefBo.java +++ b/ruoyi-modules/Sis/src/main/java/org/dromara/sis/domain/bo/SisLibDeviceRefBo.java @@ -1,12 +1,8 @@ package org.dromara.sis.domain.bo; import io.github.linpeilie.annotations.AutoMapper; -import jakarta.validation.constraints.NotBlank; -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.SisLibDeviceRef; @@ -24,31 +20,28 @@ public class SisLibDeviceRefBo extends BaseEntity { /** * 主键id */ - @NotNull(message = "主键id不能为空", groups = {EditGroup.class}) private Long id; /** * 人员库编码 */ - @NotBlank(message = "人员库id不能为空", groups = {AddGroup.class, EditGroup.class}) private Long libId; /** * 设备编码 */ - @NotBlank(message = "设备id不能为空", groups = {AddGroup.class, EditGroup.class}) private Long eqpId; /** * 设备上的库id */ - @NotNull(message = "设备上的库id不能为空", groups = {AddGroup.class, EditGroup.class}) - private Long eqpLibCode; + private Long eqpLibId; + + private Integer eqpLibType; /** * 第三方设备库添加状态 1: 成功,2:失败 */ - @NotNull(message = "第三方设备库添加状态 1: 成功,2:失败不能为空", groups = {AddGroup.class, EditGroup.class}) private Integer eqpLibState; } diff --git a/ruoyi-modules/Sis/src/main/java/org/dromara/sis/domain/vo/SisAccessControlDeviceVo.java b/ruoyi-modules/Sis/src/main/java/org/dromara/sis/domain/vo/SisAccessControlDeviceVo.java index 4b15d558..6913aac6 100644 --- a/ruoyi-modules/Sis/src/main/java/org/dromara/sis/domain/vo/SisAccessControlDeviceVo.java +++ b/ruoyi-modules/Sis/src/main/java/org/dromara/sis/domain/vo/SisAccessControlDeviceVo.java @@ -90,23 +90,5 @@ public class SisAccessControlDeviceVo implements Serializable { @ExcelProperty(value = "设备密码") private String eqpPwd; - /** - * 创建人id - */ - @ExcelProperty(value = "创建人id") - private Long createById; - - /** - * 更新人id - */ - @ExcelProperty(value = "更新人id") - private Long updateById; - - /** - * 搜索值 - */ - @ExcelProperty(value = "搜索值") - private String searchValue; - } 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 ed58c952..f6681c9c 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 @@ -100,10 +100,4 @@ public class SisAccessControlVo implements Serializable { @ExcelProperty(value = "外部编码") private String outCode; - /** - * 组织编码 - */ - @ExcelProperty(value = "组织编码") - private String orgCode; - } diff --git a/ruoyi-modules/Sis/src/main/java/org/dromara/sis/domain/vo/SisLibDeviceRefVo.java b/ruoyi-modules/Sis/src/main/java/org/dromara/sis/domain/vo/SisLibDeviceRefVo.java index c528df07..0b3aa21e 100644 --- a/ruoyi-modules/Sis/src/main/java/org/dromara/sis/domain/vo/SisLibDeviceRefVo.java +++ b/ruoyi-modules/Sis/src/main/java/org/dromara/sis/domain/vo/SisLibDeviceRefVo.java @@ -1,7 +1,6 @@ package org.dromara.sis.domain.vo; import cn.idev.excel.annotation.ExcelIgnoreUnannotated; -import cn.idev.excel.annotation.ExcelProperty; import io.github.linpeilie.annotations.AutoMapper; import lombok.Data; import org.dromara.sis.domain.SisLibDeviceRef; @@ -27,31 +26,28 @@ public class SisLibDeviceRefVo implements Serializable { /** * 主键id */ - @ExcelProperty(value = "主键id") private Long id; /** * 人员库id */ - @ExcelProperty(value = "人员库id") private Long libId; /** * 设备表id */ - @ExcelProperty(value = "设备表id") private Long eqpId; /** * 设备上的库id */ - @ExcelProperty(value = "设备上的库id") - private Long eqpLibCode; + private Long eqpLibId; + + private Integer eqpLibType; /** * 第三方设备库添加状态 1: 成功,2:失败 */ - @ExcelProperty(value = "第三方设备库添加状态 1: 成功,2:失败") private Integer eqpLibState; } diff --git a/ruoyi-modules/Sis/src/main/java/org/dromara/sis/domain/vo/SisPersonLibVo.java b/ruoyi-modules/Sis/src/main/java/org/dromara/sis/domain/vo/SisPersonLibVo.java index 294b1f30..bce51cfe 100644 --- a/ruoyi-modules/Sis/src/main/java/org/dromara/sis/domain/vo/SisPersonLibVo.java +++ b/ruoyi-modules/Sis/src/main/java/org/dromara/sis/domain/vo/SisPersonLibVo.java @@ -1,13 +1,14 @@ package org.dromara.sis.domain.vo; -import org.dromara.sis.domain.SisPersonLib; import cn.idev.excel.annotation.ExcelIgnoreUnannotated; import cn.idev.excel.annotation.ExcelProperty; import io.github.linpeilie.annotations.AutoMapper; import lombok.Data; +import org.dromara.sis.domain.SisPersonLib; import java.io.Serial; import java.io.Serializable; +import java.util.List; /** @@ -60,4 +61,9 @@ public class SisPersonLibVo implements Serializable { @ExcelProperty(value = "库的业务类型 1: 门禁库,2: 黑名单库") private Integer busiType; + /** + * 库关联的设备id列表 + */ + List eqpIds; + } diff --git a/ruoyi-modules/Sis/src/main/java/org/dromara/sis/mapper/SisLibDeviceRefMapper.java b/ruoyi-modules/Sis/src/main/java/org/dromara/sis/mapper/SisLibDeviceRefMapper.java index 52ed2f75..19842f43 100644 --- a/ruoyi-modules/Sis/src/main/java/org/dromara/sis/mapper/SisLibDeviceRefMapper.java +++ b/ruoyi-modules/Sis/src/main/java/org/dromara/sis/mapper/SisLibDeviceRefMapper.java @@ -1,9 +1,15 @@ package org.dromara.sis.mapper; +import org.apache.ibatis.annotations.Param; import org.dromara.sis.domain.SisLibDeviceRef; +import org.dromara.sis.domain.bo.AccessControlLibDeviceBo; +import org.dromara.sis.domain.vo.SisAccessControlDeviceVo; import org.dromara.sis.domain.vo.SisLibDeviceRefVo; import org.dromara.common.mybatis.core.mapper.BaseMapperPlus; +import java.util.Collection; +import java.util.List; + /** * 系统库与设备库的关联Mapper接口 * @@ -12,4 +18,5 @@ import org.dromara.common.mybatis.core.mapper.BaseMapperPlus; */ public interface SisLibDeviceRefMapper extends BaseMapperPlus { + List queryDeviceListByLibIds(@Param("ids") Collection ids); } diff --git a/ruoyi-modules/Sis/src/main/java/org/dromara/sis/sdk/unview/service/UnViewAiBoxApiService.java b/ruoyi-modules/Sis/src/main/java/org/dromara/sis/sdk/unview/service/UnViewAiBoxApiService.java index 4434119f..59d1be00 100644 --- a/ruoyi-modules/Sis/src/main/java/org/dromara/sis/sdk/unview/service/UnViewAiBoxApiService.java +++ b/ruoyi-modules/Sis/src/main/java/org/dromara/sis/sdk/unview/service/UnViewAiBoxApiService.java @@ -7,6 +7,7 @@ import org.dromara.sis.sdk.unview.UnViewAiBoxApi; import org.dromara.sis.sdk.unview.model.enums.UniViewApiEnum; import org.dromara.sis.sdk.unview.utils.UniViewHttp; import org.springframework.stereotype.Component; + import javax.annotation.Resource; import java.util.Arrays; import java.util.HashMap; @@ -29,11 +30,13 @@ public class UnViewAiBoxApiService implements UnViewAiBoxApi { @Resource private UniViewHttp uniViewHttp; + @Override public SearchBehaviorResult searchBehavior(UvSystemInfo uvSystemInfo, SearchBehaviorParams params) { UniViewResult request = uniViewHttp.request(uvSystemInfo, UniViewApiEnum.SEARCH_BEHAVIOR, params, SearchBehaviorResult.class); return request.getData(); } + @Override public AddLibResult addPersonLib(UvSystemInfo systemInfo, String libName) { Map params = new HashMap<>(1); params.put("lib_name", libName); @@ -41,6 +44,7 @@ public class UnViewAiBoxApiService implements UnViewAiBoxApi { return request.getData(); } + @Override public boolean deletePersonLib(UvSystemInfo systemInfo, Integer... libIds) { if (libIds.length == 0) { log.info("libIds 不能为空"); @@ -52,6 +56,7 @@ public class UnViewAiBoxApiService implements UnViewAiBoxApi { return request.success(); } + @Override public boolean updatePersonLib(UvSystemInfo systemInfo, Integer libId, String LibName) { JSONObject params = new JSONObject(); params.put("lib_id", libId); @@ -60,6 +65,7 @@ public class UnViewAiBoxApiService implements UnViewAiBoxApi { return request.success(); } + @Override public QueryLibResult findPagePersonLib(UvSystemInfo systemInfo, String libName, Integer current, Integer size) { JSONObject params = new JSONObject(); if (StrUtil.isNotBlank(libName)) { @@ -77,17 +83,19 @@ public class UnViewAiBoxApiService implements UnViewAiBoxApi { return request.getData(); } - + @Override public AddPersonResult addPerson(UvSystemInfo uvSystemInfo, AddPersonParams addPersonParams) { UniViewResult request = uniViewHttp.request(uvSystemInfo, UniViewApiEnum.PERSON_ADD, addPersonParams, AddPersonResult.class); return request.result(); } + @Override public BatchAddPersonResult batchAddPerson(UvSystemInfo uvSystemInfo, BatchAddPersonParams personParams) { UniViewResult request = uniViewHttp.request(uvSystemInfo, UniViewApiEnum.PERSON_BATCH_ADD, personParams, BatchAddPersonResult.class); return request.result(); } + @Override public Boolean batchDeletePerson(UvSystemInfo uvSystemInfo, Integer[] personIds) { JSONObject params = new JSONObject(); params.put("person_id_list", personIds); @@ -95,24 +103,26 @@ public class UnViewAiBoxApiService implements UnViewAiBoxApi { return request.success(); } + @Override public Boolean updatePerson(UvSystemInfo uvSystemInfo, UpdatePersonParams params) { UniViewResult request = uniViewHttp.request(uvSystemInfo, UniViewApiEnum.PERSON_UPDATE, params, String.class); return request.success(); } - + @Override public queryPersonPageResult findPersonPage(UvSystemInfo uvSystemInfo, queryPersonPageParams params) { UniViewResult request = uniViewHttp.request(uvSystemInfo, UniViewApiEnum.PERSON_FIND, params, queryPersonPageResult.class); return request.result(); } /*--------------------------------------------------------------------- 点位管理 -------------------------------------------------------------------------*/ - + @Override public GetPublickeyResult getPublickey(UvSystemInfo uvSystemInfo) { UniViewResult request = uniViewHttp.request(uvSystemInfo, UniViewApiEnum.POINT_RAS, null, GetPublickeyResult.class); return request.result(); } + @Override public QueryOnvifResult getOnvif(UvSystemInfo uvSystemInfo) { JSONObject params = new JSONObject(); params.put("ip", uvSystemInfo.getIp()); @@ -123,11 +133,13 @@ public class UnViewAiBoxApiService implements UnViewAiBoxApi { return request.result(); } + @Override public AddPointResult addPoint(UvSystemInfo uvSystemInfo, PointParams req) { UniViewResult request = uniViewHttp.request(uvSystemInfo, UniViewApiEnum.POINT_ADD, req, AddPointResult.class); return request.result(); } + @Override public Boolean deletePoint(UvSystemInfo uvSystemInfo, List channelIds) { JSONObject params = new JSONObject(); params.put("channel_id_list", channelIds); @@ -135,26 +147,31 @@ public class UnViewAiBoxApiService implements UnViewAiBoxApi { return request.success(); } + @Override public Boolean updatePoint(UvSystemInfo uvSystemInfo, UpdatePointParams params) { UniViewResult request = uniViewHttp.request(uvSystemInfo, UniViewApiEnum.POINT_UPDATE, params, String.class); return request.success(); } + @Override public QueryPointResult queryPoint(UvSystemInfo uvSystemInfo, QueryPointParams req) { UniViewResult request = uniViewHttp.request(uvSystemInfo, UniViewApiEnum.POINT_FIND, req, QueryPointResult.class); return request.result(); } + @Override public BatchAddPersonResult batchAddPoint(UvSystemInfo uvSystemInfo, BatchAddPointParams params) { UniViewResult request = uniViewHttp.request(uvSystemInfo, UniViewApiEnum.POINT_BATCH_ADD, params, BatchAddPersonResult.class); return request.result(); } + @Override public Boolean pointControlTimeUpdate(UvSystemInfo uvSystemInfo, ModifyControlTime params) { UniViewResult request = uniViewHttp.request(uvSystemInfo, UniViewApiEnum.POINT_CONTROL_TIME_UPDATE, params, String.class); return request.success(); } + @Override public ControlTime queryControlTime(UvSystemInfo uvSystemInfo, Integer channel_id, Integer algo_model) { JSONObject params = new JSONObject(); params.put("channel_id", channel_id); @@ -164,6 +181,7 @@ public class UnViewAiBoxApiService implements UnViewAiBoxApi { } /*---------------------------------------------------------------- 工服库 ---------------------------------------------------------------------------*/ + @Override public AddLibResult addWorkClothesLib(UvSystemInfo uvSystemInfo, String libName) { JSONObject params = new JSONObject(); params.put("lib_name", libName); @@ -171,6 +189,7 @@ public class UnViewAiBoxApiService implements UnViewAiBoxApi { return request.result(); } + @Override public Boolean updateWorkClothesLib(UvSystemInfo uvSystemInfo, Integer libId, String libName) { JSONObject params = new JSONObject(); params.put("lib_id", libId); @@ -179,6 +198,7 @@ public class UnViewAiBoxApiService implements UnViewAiBoxApi { return request.success(); } + @Override public Boolean deleteWorkClothesLib(UvSystemInfo uvSystemInfo, Integer libId) { JSONObject params = new JSONObject(); params.put("lib_id", libId); @@ -186,6 +206,7 @@ public class UnViewAiBoxApiService implements UnViewAiBoxApi { return request.success(); } + @Override public QueryLibResult findPageWorkClothesLib(UvSystemInfo uvSystemInfo, String libName, Integer page, Integer pageSize) { JSONObject params = new JSONObject(); params.put("lib_name", libName); @@ -196,7 +217,7 @@ public class UnViewAiBoxApiService implements UnViewAiBoxApi { } /*--------------------------------------------------------------------工服 ---------------------------------------------------------------------------*/ - + @Override public Integer addWorkClothes(UvSystemInfo uvSystemInfo, Integer libId, String imageBase64) { JSONObject params = new JSONObject(); params.put("lib_id", libId); @@ -205,6 +226,7 @@ public class UnViewAiBoxApiService implements UnViewAiBoxApi { return request.result(); } + @Override public BatchAddWorkClothesResult batchAddWorkClothes(UvSystemInfo uvSystemInfo, Integer libId, List imageBase64s) { JSONObject params = new JSONObject(); params.put("lib_id", libId); @@ -213,6 +235,7 @@ public class UnViewAiBoxApiService implements UnViewAiBoxApi { return request.result(); } + @Override public Boolean deleteWorkClothes(UvSystemInfo uvSystemInfo, Integer libId, List workClothesIds) { JSONObject params = new JSONObject(); params.put("lib_id", libId); @@ -221,6 +244,7 @@ public class UnViewAiBoxApiService implements UnViewAiBoxApi { return request.success(); } + @Override public FindWorkClothesResult findPageWorkClothes(UvSystemInfo uvSystemInfo, Integer libId, Integer page, Integer size, Integer status) { JSONObject params = new JSONObject(); params.put("lib_id", libId); diff --git a/ruoyi-modules/Sis/src/main/java/org/dromara/sis/service/ISisLibDeviceRefService.java b/ruoyi-modules/Sis/src/main/java/org/dromara/sis/service/ISisLibDeviceRefService.java index b077bbd9..5a224e61 100644 --- a/ruoyi-modules/Sis/src/main/java/org/dromara/sis/service/ISisLibDeviceRefService.java +++ b/ruoyi-modules/Sis/src/main/java/org/dromara/sis/service/ISisLibDeviceRefService.java @@ -1,10 +1,12 @@ package org.dromara.sis.service; -import org.dromara.sis.domain.SisLibDeviceRef; -import org.dromara.sis.domain.vo.SisLibDeviceRefVo; -import org.dromara.sis.domain.bo.SisLibDeviceRefBo; -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.SisLibDeviceRef; +import org.dromara.sis.domain.bo.AccessControlLibDeviceBo; +import org.dromara.sis.domain.bo.SisLibDeviceRefBo; +import org.dromara.sis.domain.vo.SisAccessControlDeviceVo; +import org.dromara.sis.domain.vo.SisLibDeviceRefVo; import java.util.Collection; import java.util.List; @@ -75,5 +77,27 @@ public interface ISisLibDeviceRefService { */ Boolean deleteWithValidByIds(Collection ids, Boolean isValid); - List queryByIds(Collection ids); + /** + * 通过personlIB id 查询关联关系 + * + * @param ids id列表 + * @return 返回关联记录 + */ + List queryByLibIds(Collection ids); + + /** + * 通过 personLibid 列表删除关联关系 + * + * @param ids id 列表 + * @return 返回删除数量 + */ + Integer deleteByLibIds(Collection ids); + + /** + * 通过libIds 查询控制设备列表 + * + * @param ids libIds + * @return 返回设备列表 + */ + List queryDeviceListByLibIds(Collection ids); } diff --git a/ruoyi-modules/Sis/src/main/java/org/dromara/sis/service/impl/SisLibDeviceRefServiceImpl.java b/ruoyi-modules/Sis/src/main/java/org/dromara/sis/service/impl/SisLibDeviceRefServiceImpl.java index 0c96fc4b..29efa523 100644 --- a/ruoyi-modules/Sis/src/main/java/org/dromara/sis/service/impl/SisLibDeviceRefServiceImpl.java +++ b/ruoyi-modules/Sis/src/main/java/org/dromara/sis/service/impl/SisLibDeviceRefServiceImpl.java @@ -10,7 +10,9 @@ 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.SisLibDeviceRef; +import org.dromara.sis.domain.bo.AccessControlLibDeviceBo; import org.dromara.sis.domain.bo.SisLibDeviceRefBo; +import org.dromara.sis.domain.vo.SisAccessControlDeviceVo; import org.dromara.sis.domain.vo.SisLibDeviceRefVo; import org.dromara.sis.mapper.SisLibDeviceRefMapper; import org.dromara.sis.service.ISisLibDeviceRefService; @@ -74,9 +76,9 @@ public class SisLibDeviceRefServiceImpl implements ISisLibDeviceRefService { Map params = bo.getParams(); LambdaQueryWrapper lqw = Wrappers.lambdaQuery(); lqw.orderByAsc(SisLibDeviceRef::getId); - lqw.eq(bo.getLibId() !=null, SisLibDeviceRef::getLibId, bo.getLibId()); - lqw.eq(bo.getEqpId() !=null, SisLibDeviceRef::getEqpId, bo.getEqpId()); - lqw.eq(bo.getEqpLibCode() != null, SisLibDeviceRef::getEqpLibCode, bo.getEqpLibCode()); + lqw.eq(bo.getLibId() != null, SisLibDeviceRef::getLibId, bo.getLibId()); + lqw.eq(bo.getEqpId() != null, SisLibDeviceRef::getEqpId, bo.getEqpId()); + lqw.eq(bo.getEqpLibId() != null, SisLibDeviceRef::getEqpLibId, bo.getEqpLibId()); lqw.eq(bo.getEqpLibState() != null, SisLibDeviceRef::getEqpLibState, bo.getEqpLibState()); lqw.eq(StringUtils.isNotBlank(bo.getSearchValue()), SisLibDeviceRef::getSearchValue, bo.getSearchValue()); return lqw; @@ -140,7 +142,21 @@ public class SisLibDeviceRefServiceImpl implements ISisLibDeviceRefService { } @Override - public List queryByIds(Collection ids) { - return List.of(); + public List queryByLibIds(Collection ids) { + LambdaQueryWrapper lqw = Wrappers.lambdaQuery(); + lqw.in(SisLibDeviceRef::getLibId, ids); + return baseMapper.selectVoList(lqw); + } + + @Override + public Integer deleteByLibIds(Collection ids) { + LambdaQueryWrapper lqw = Wrappers.lambdaQuery(); + lqw.in(SisLibDeviceRef::getLibId, ids); + return baseMapper.delete(lqw); + } + + @Override + public List queryDeviceListByLibIds(Collection ids) { + return baseMapper.queryDeviceListByLibIds(ids); } } diff --git a/ruoyi-modules/Sis/src/main/java/org/dromara/sis/service/impl/SisPersonLibServiceImpl.java b/ruoyi-modules/Sis/src/main/java/org/dromara/sis/service/impl/SisPersonLibServiceImpl.java index 41525317..3f76417d 100644 --- a/ruoyi-modules/Sis/src/main/java/org/dromara/sis/service/impl/SisPersonLibServiceImpl.java +++ b/ruoyi-modules/Sis/src/main/java/org/dromara/sis/service/impl/SisPersonLibServiceImpl.java @@ -1,5 +1,6 @@ package org.dromara.sis.service.impl; +import cn.hutool.core.collection.CollUtil; import cn.hutool.core.lang.Assert; import cn.hutool.core.util.IdUtil; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; @@ -14,8 +15,10 @@ import org.dromara.common.mybatis.core.page.PageQuery; import org.dromara.common.mybatis.core.page.TableDataInfo; import org.dromara.sis.domain.SisLibDeviceRef; import org.dromara.sis.domain.SisPersonLib; +import org.dromara.sis.domain.bo.AccessControlLibDeviceBo; import org.dromara.sis.domain.bo.SisPersonLibBo; import org.dromara.sis.domain.vo.SisAccessControlDeviceVo; +import org.dromara.sis.domain.vo.SisLibDeviceRefVo; import org.dromara.sis.domain.vo.SisPersonLibVo; import org.dromara.sis.mapper.SisPersonLibMapper; import org.dromara.sis.sdk.unview.UnViewAiBoxApi; @@ -27,6 +30,7 @@ import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; import java.util.Collection; +import java.util.Collections; import java.util.List; import java.util.Map; @@ -55,7 +59,13 @@ public class SisPersonLibServiceImpl implements ISisPersonLibService { */ @Override public SisPersonLibVo queryById(Long id) { - return baseMapper.selectVoById(id); + SisPersonLibVo sisPersonLibVo = baseMapper.selectVoById(id); + List sisLibDeviceRefVos = sisLibDeviceRefService.queryByLibIds(Collections.singleton(id)); + if (CollUtil.isNotEmpty(sisLibDeviceRefVos)) { + List list = sisLibDeviceRefVos.stream().map(SisLibDeviceRefVo::getEqpId).toList(); + sisPersonLibVo.setEqpIds(list); + } + return sisPersonLibVo; } /** @@ -115,14 +125,14 @@ public class SisPersonLibServiceImpl implements ISisPersonLibService { bo.setId(add.getId()); for (Long eqpId : bo.getEqpIds()) { // 查询设备信息 - SisAccessControlDeviceVo sisAccessControlDeviceVo = sisAccessControlDeviceService.queryById(eqpId); - Assert.notNull(sisAccessControlDeviceVo, "门禁控制设备不存在,id=" + eqpId); - log.info("准备写入门禁设备,code={}", sisAccessControlDeviceVo.getEqpNo()); + SisAccessControlDeviceVo vo = sisAccessControlDeviceService.queryById(eqpId); + Assert.notNull(vo, "门禁控制设备不存在,id=" + eqpId); + log.info("准备写入门禁设备,code={}", vo.getEqpNo()); UvModel.UvSystemInfo systemInfo = new UvModel.UvSystemInfo(); - systemInfo.setAccount(sisAccessControlDeviceVo.getEqpAccount()); - systemInfo.setPassword(sisAccessControlDeviceVo.getEqpPwd()); - systemInfo.setIp(sisAccessControlDeviceVo.getEqpIp()); - systemInfo.setPort(sisAccessControlDeviceVo.getEqpPort()); + systemInfo.setAccount(vo.getEqpAccount()); + systemInfo.setPassword(vo.getEqpPwd()); + systemInfo.setIp(vo.getEqpIp()); + systemInfo.setPort(vo.getEqpPort()); // libType =1 人像库,否则工服库 Integer outLibCode = null; if (bo.getLibType() == 1) { @@ -136,9 +146,10 @@ public class SisPersonLibServiceImpl implements ISisPersonLibService { Assert.notNull(outLibCode, "写入宇视盒子失败"); SisLibDeviceRef ref = new SisLibDeviceRef(); ref.setLibId(add.getId()); - ref.setEqpId(sisAccessControlDeviceVo.getId()); - ref.setEqpLibCode(Long.valueOf(outLibCode)); + ref.setEqpId(vo.getId()); + ref.setEqpLibId(Long.valueOf(outLibCode)); ref.setEqpLibState(1); + ref.setEqpLibType(bo.getLibType()); Boolean insert = sisLibDeviceRefService.insert(ref); Assert.isTrue(insert, "写入库关联关系表失败!"); log.info("同步建库完成!"); @@ -174,10 +185,30 @@ public class SisPersonLibServiceImpl implements ISisPersonLibService { * @param isValid 是否进行有效性校验 * @return 是否删除成功 */ + @Transactional(rollbackFor = Exception.class) @Override public Boolean deleteWithValidByIds(Collection ids, Boolean isValid) { + // 查询关联的设备信息,先删除设备上的库 + List ls = sisLibDeviceRefService.queryDeviceListByLibIds(ids); + // 删除关联关系 + ls.forEach(item -> { + UvModel.UvSystemInfo systemInfo = new UvModel.UvSystemInfo(); + systemInfo.setAccount(item.getEqpAccount()); + systemInfo.setPassword(item.getEqpPwd()); + systemInfo.setIp(item.getEqpIp()); + systemInfo.setPort(item.getEqpPort()); + // 实际上这里需要根据厂商不同去不同的设备删除 + if (item.getEqpLibType() == 1) { + Boolean b = unViewAiBoxApi.deletePersonLib(systemInfo, item.getEqpLibId()); + log.info("删除宇试人像库[{}]完成,result={}", item.getEqpLibId(), b); + } else { + Boolean b = unViewAiBoxApi.deleteWorkClothesLib(systemInfo, item.getEqpLibId()); + log.info("删除宇试工服库[{}]完成,result={}", item.getEqpLibId(), b); + } + }); // 查询当前库是否绑定 - sisLibDeviceRefService.queryByIds(ids); + sisLibDeviceRefService.deleteByLibIds(ids); + log.info("删除personLibRef关联关系完成!"); return baseMapper.deleteByIds(ids) > 0; } } diff --git a/ruoyi-modules/Sis/src/main/resources/mapper/sis/SisLibDeviceRefMapper.xml b/ruoyi-modules/Sis/src/main/resources/mapper/sis/SisLibDeviceRefMapper.xml index 4e939ba4..3d71bdf7 100644 --- a/ruoyi-modules/Sis/src/main/resources/mapper/sis/SisLibDeviceRefMapper.xml +++ b/ruoyi-modules/Sis/src/main/resources/mapper/sis/SisLibDeviceRefMapper.xml @@ -4,4 +4,15 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd"> + From 3deaea69bb6a03cfc1161a3e907fb7ae90c03a27 Mon Sep 17 00:00:00 2001 From: zcxlsm Date: Fri, 27 Jun 2025 23:13:34 +0800 Subject: [PATCH 04/21] =?UTF-8?q?feat(sis):=20-=20=E4=BA=BA=E5=83=8F?= =?UTF-8?q?=E5=BA=93=E6=93=8D=E4=BD=9C=E4=B8=8E=E5=AE=87=E8=A7=86=E5=B9=B3?= =?UTF-8?q?=E5=8F=B0=E5=90=8C=E6=AD=A5=E6=93=8D=E4=BD=9C=EF=BC=88=E6=96=B0?= =?UTF-8?q?=E5=A2=9E=EF=BC=8C=E5=88=A0=E9=99=A4=EF=BC=89=EF=BC=8C=E5=85=B3?= =?UTF-8?q?=E8=81=94=E8=A1=A8=E5=90=8C=E6=AD=A5=E5=86=99=E5=85=A5/?= =?UTF-8?q?=E5=88=A0=E9=99=A4=20-=20=E4=BA=BA=E5=83=8F=E5=9B=BE=E7=89=87?= =?UTF-8?q?=E4=B8=8E=E5=AE=87=E8=A7=86=E5=B9=B3=E5=8F=B0=E5=90=8C=E6=AD=A5?= =?UTF-8?q?=E6=93=8D=E4=BD=9C=EF=BC=88=E6=96=B0=E5=A2=9E=EF=BC=8C=E5=88=A0?= =?UTF-8?q?=E9=99=A4=EF=BC=89=EF=BC=8C=E5=85=B3=E8=81=94=E8=A1=A8=E5=90=8C?= =?UTF-8?q?=E6=AD=A5=E5=86=99=E5=85=A5/=E5=88=A0=E9=99=A4=EF=BC=8C?= =?UTF-8?q?=E5=8F=AF=E9=80=89=E5=90=8C=E6=AD=A5=E8=87=B3E8=E5=B9=B3?= =?UTF-8?q?=E5=8F=B0=20-=20=E5=85=B3=E8=81=94=E5=85=B3=E7=B3=BB=E6=94=B9?= =?UTF-8?q?=E4=B8=BAid=E5=85=B3=E8=81=94?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../core/constant/CodePrefixConstants.java | 7 +- .../controller/SisPersonLibController.java | 4 +- .../controller/SisPersonLibImgController.java | 8 +- .../sis/domain/SisLibDeviceImgRef.java | 17 ++- .../dromara/sis/domain/SisLibDeviceRef.java | 10 +- .../dromara/sis/domain/SisPersonLibImg.java | 9 +- .../sis/domain/bo/SisLibDeviceImgRefBo.java | 26 ++-- .../sis/domain/bo/SisLibDeviceRefBo.java | 17 +-- .../dromara/sis/domain/bo/SisPersonLibBo.java | 8 +- .../sis/domain/bo/SisPersonLibImgBo.java | 22 ++-- .../sis/domain/vo/SisLibDeviceImgRefVo.java | 24 ++-- .../sis/domain/vo/SisLibDeviceRefVo.java | 17 +-- .../sis/domain/vo/SisPersonLibImgVo.java | 4 +- .../dromara/sis/sdk/unview/model/UvModel.java | 6 +- .../service/ISisLibDeviceImgRefService.java | 10 +- .../sis/service/ISisLibDeviceRefService.java | 10 +- .../impl/SisLibDeviceImgRefServiceImpl.java | 26 ++-- .../impl/SisLibDeviceRefServiceImpl.java | 24 +++- .../impl/SisPersonLibImgServiceImpl.java | 113 +++++++++++++++++- .../service/impl/SisPersonLibServiceImpl.java | 57 ++++++++- 20 files changed, 307 insertions(+), 112 deletions(-) diff --git a/ruoyi-common/ruoyi-common-core/src/main/java/org/dromara/common/core/constant/CodePrefixConstants.java b/ruoyi-common/ruoyi-common-core/src/main/java/org/dromara/common/core/constant/CodePrefixConstants.java index 44a035a3..05bc29e7 100644 --- a/ruoyi-common/ruoyi-common-core/src/main/java/org/dromara/common/core/constant/CodePrefixConstants.java +++ b/ruoyi-common/ruoyi-common-core/src/main/java/org/dromara/common/core/constant/CodePrefixConstants.java @@ -4,10 +4,15 @@ public interface CodePrefixConstants { /** * 人像库编码前缀 */ - String PERSONLIB_CODE_PREFIX = "100"; + String PERSON_LIB_CODE_PREFIX = "100"; /** * 门禁设备编码前缀 */ String SIS_DEVICE_CODE_PREFIX = "101"; + + /** + * 门禁设备编码前缀 + */ + String PERSON_LIB_IMAGE_CODE_PREFIX = "102"; } diff --git a/ruoyi-modules/Sis/src/main/java/org/dromara/sis/controller/SisPersonLibController.java b/ruoyi-modules/Sis/src/main/java/org/dromara/sis/controller/SisPersonLibController.java index 1dcc6d37..a7adc2ba 100644 --- a/ruoyi-modules/Sis/src/main/java/org/dromara/sis/controller/SisPersonLibController.java +++ b/ruoyi-modules/Sis/src/main/java/org/dromara/sis/controller/SisPersonLibController.java @@ -75,7 +75,7 @@ public class SisPersonLibController extends BaseController { @SaCheckPermission("sis:personLib:add") @Log(title = "人像库", businessType = BusinessType.INSERT) @RepeatSubmit() - @PostMapping() + @PostMapping("add") public R add(@Validated(AddGroup.class) @RequestBody SisPersonLibBo bo) { return toAjax(tbPersonLibService.insertByBo(bo)); } @@ -98,7 +98,7 @@ public class SisPersonLibController extends BaseController { */ @SaCheckPermission("sis:personLib:remove") @Log(title = "人像库", businessType = BusinessType.DELETE) - @DeleteMapping("/{ids}") + @DeleteMapping("del/{ids}") public R remove(@NotEmpty(message = "主键不能为空") @PathVariable("ids") Long[] ids) { return toAjax(tbPersonLibService.deleteWithValidByIds(List.of(ids), true)); diff --git a/ruoyi-modules/Sis/src/main/java/org/dromara/sis/controller/SisPersonLibImgController.java b/ruoyi-modules/Sis/src/main/java/org/dromara/sis/controller/SisPersonLibImgController.java index f4c6bbb8..66905c2a 100644 --- a/ruoyi-modules/Sis/src/main/java/org/dromara/sis/controller/SisPersonLibImgController.java +++ b/ruoyi-modules/Sis/src/main/java/org/dromara/sis/controller/SisPersonLibImgController.java @@ -27,7 +27,7 @@ import org.dromara.common.mybatis.core.page.TableDataInfo; * 前端访问路由地址为:/sis/personLibImg * * @author mocheng - * @date 2025-06-24 + * @since 2025-06-24 */ @Validated @RequiredArgsConstructor @@ -65,7 +65,7 @@ public class SisPersonLibImgController extends BaseController { @SaCheckPermission("sis:personLibImg:query") @GetMapping("/{id}") public R getInfo(@NotNull(message = "主键不能为空") - @PathVariable("id") Long id) { + @PathVariable("id") Long id) { return R.ok(tbPersonLibImgService.queryById(id)); } @@ -75,7 +75,7 @@ public class SisPersonLibImgController extends BaseController { @SaCheckPermission("sis:personLibImg:add") @Log(title = "人像信息", businessType = BusinessType.INSERT) @RepeatSubmit() - @PostMapping() + @PostMapping("add") public R add(@Validated(AddGroup.class) @RequestBody SisPersonLibImgBo bo) { return toAjax(tbPersonLibImgService.insertByBo(bo)); } @@ -98,7 +98,7 @@ public class SisPersonLibImgController extends BaseController { */ @SaCheckPermission("sis:personLibImg:remove") @Log(title = "人像信息", businessType = BusinessType.DELETE) - @DeleteMapping("/{ids}") + @DeleteMapping("del/{ids}") public R remove(@NotEmpty(message = "主键不能为空") @PathVariable("ids") Long[] ids) { return toAjax(tbPersonLibImgService.deleteWithValidByIds(List.of(ids), true)); diff --git a/ruoyi-modules/Sis/src/main/java/org/dromara/sis/domain/SisLibDeviceImgRef.java b/ruoyi-modules/Sis/src/main/java/org/dromara/sis/domain/SisLibDeviceImgRef.java index 292c40bd..b276d1f0 100644 --- a/ruoyi-modules/Sis/src/main/java/org/dromara/sis/domain/SisLibDeviceImgRef.java +++ b/ruoyi-modules/Sis/src/main/java/org/dromara/sis/domain/SisLibDeviceImgRef.java @@ -28,19 +28,19 @@ public class SisLibDeviceImgRef extends TenantEntity { private Long id; /** - * 库编码 + * 库Id */ - private String libCode; + private Long libId; /** - * 图片编码 + * 图片Id */ - private String imgCode; + private Long imgId; /** - * 设备编码 + * 设备Id */ - private String eqpCode; + private Long eqpId; /** * 设备库id @@ -52,4 +52,9 @@ public class SisLibDeviceImgRef extends TenantEntity { */ private Long eqpLibImgId; + /** + * e8图片地址 + */ + private String eqpLibImgUrl; + } diff --git a/ruoyi-modules/Sis/src/main/java/org/dromara/sis/domain/SisLibDeviceRef.java b/ruoyi-modules/Sis/src/main/java/org/dromara/sis/domain/SisLibDeviceRef.java index fc8e17c2..224e5465 100644 --- a/ruoyi-modules/Sis/src/main/java/org/dromara/sis/domain/SisLibDeviceRef.java +++ b/ruoyi-modules/Sis/src/main/java/org/dromara/sis/domain/SisLibDeviceRef.java @@ -28,19 +28,19 @@ public class SisLibDeviceRef extends TenantEntity { private Long id; /** - * 人员库编码 + * 库Id */ - private String libCode; + private Long libId; /** - * 设备编码 + * 设备Id */ - private String eqpCode; + private Long eqpId; /** * 设备上的库id */ - private Long eqpLibCode; + private Long eqpLibId; /** * 第三方设备库添加状态 1: 成功,2:失败 diff --git a/ruoyi-modules/Sis/src/main/java/org/dromara/sis/domain/SisPersonLibImg.java b/ruoyi-modules/Sis/src/main/java/org/dromara/sis/domain/SisPersonLibImg.java index f584aa95..347974c3 100644 --- a/ruoyi-modules/Sis/src/main/java/org/dromara/sis/domain/SisPersonLibImg.java +++ b/ruoyi-modules/Sis/src/main/java/org/dromara/sis/domain/SisPersonLibImg.java @@ -31,7 +31,7 @@ public class SisPersonLibImg extends TenantEntity { /** * 人员库编码 */ - private String libCode; + private Long libId; /** * 人像名称 @@ -49,8 +49,7 @@ public class SisPersonLibImg extends TenantEntity { private String imgUrl; /** - * 性别 1:男 -2:女 99:未说明 + * 性别 1:男 2:女 99:未说明 */ private Long sex; @@ -65,9 +64,7 @@ public class SisPersonLibImg extends TenantEntity { private String tel; /** - * 证件类型 -1:身份证 2:护照 -3:行驶证 99:其它 + * 证件类型 1:身份证 2:护照3:行驶证 99:其它 */ private Long certificateType; diff --git a/ruoyi-modules/Sis/src/main/java/org/dromara/sis/domain/bo/SisLibDeviceImgRefBo.java b/ruoyi-modules/Sis/src/main/java/org/dromara/sis/domain/bo/SisLibDeviceImgRefBo.java index 4a3fd114..c5b1bb7d 100644 --- a/ruoyi-modules/Sis/src/main/java/org/dromara/sis/domain/bo/SisLibDeviceImgRefBo.java +++ b/ruoyi-modules/Sis/src/main/java/org/dromara/sis/domain/bo/SisLibDeviceImgRefBo.java @@ -13,7 +13,7 @@ import jakarta.validation.constraints.*; * 系统图片和设备图片的关联业务对象 tb_lib_device_img_ref * * @author mocheng - * @date 2025-06-24 + * @since 2025-06-24 */ @Data @EqualsAndHashCode(callSuper = true) @@ -29,20 +29,20 @@ public class SisLibDeviceImgRefBo extends BaseEntity { /** * 库编码 */ - @NotBlank(message = "库编码不能为空", groups = { AddGroup.class, EditGroup.class }) - private String libCode; + @NotNull(message = "库Id不能为空", groups = { AddGroup.class, EditGroup.class }) + private Long libId; /** - * 图片编码 + * 图片Id */ - @NotBlank(message = "图片编码不能为空", groups = { AddGroup.class, EditGroup.class }) - private String imgCode; + @NotNull(message = "图片Id不能为空", groups = { AddGroup.class, EditGroup.class }) + private Long imgId; /** * 设备编码 */ - @NotBlank(message = "设备编码不能为空", groups = { AddGroup.class, EditGroup.class }) - private String eqpCode; + @NotNull(message = "设备Id不能为空", groups = { AddGroup.class, EditGroup.class }) + private Long eqpId; /** * 设备库id @@ -56,6 +56,11 @@ public class SisLibDeviceImgRefBo extends BaseEntity { @NotNull(message = "设备库图片id不能为空", groups = { AddGroup.class, EditGroup.class }) private Long eqpLibImgId; + /** + * e8图片地址 + */ + private String eqpLibImgUrl; + /** * 创建人id */ @@ -66,10 +71,5 @@ public class SisLibDeviceImgRefBo extends BaseEntity { */ private Long updateById; - /** - * 搜索值 - */ - private String searchValue; - } diff --git a/ruoyi-modules/Sis/src/main/java/org/dromara/sis/domain/bo/SisLibDeviceRefBo.java b/ruoyi-modules/Sis/src/main/java/org/dromara/sis/domain/bo/SisLibDeviceRefBo.java index 03173a4b..a24d598e 100644 --- a/ruoyi-modules/Sis/src/main/java/org/dromara/sis/domain/bo/SisLibDeviceRefBo.java +++ b/ruoyi-modules/Sis/src/main/java/org/dromara/sis/domain/bo/SisLibDeviceRefBo.java @@ -29,20 +29,20 @@ public class SisLibDeviceRefBo extends BaseEntity { /** * 人员库编码 */ - @NotBlank(message = "人员库编码不能为空", groups = { AddGroup.class, EditGroup.class }) - private String libCode; + @NotNull(message = "库Id不能为空", groups = { AddGroup.class, EditGroup.class }) + private Long libId; /** * 设备编码 */ - @NotBlank(message = "设备编码不能为空", groups = { AddGroup.class, EditGroup.class }) - private String eqpCode; + @NotNull(message = "设备Id不能为空", groups = { AddGroup.class, EditGroup.class }) + private Long eqpId; /** * 设备上的库id */ @NotNull(message = "设备上的库id不能为空", groups = { AddGroup.class, EditGroup.class }) - private Long eqpLibCode; + private Long eqpLibId; /** * 第三方设备库添加状态 1: 成功,2:失败 @@ -59,11 +59,4 @@ public class SisLibDeviceRefBo extends BaseEntity { * 更新人id */ private Long updateById; - - /** - * 搜索值 - */ - private String searchValue; - - } diff --git a/ruoyi-modules/Sis/src/main/java/org/dromara/sis/domain/bo/SisPersonLibBo.java b/ruoyi-modules/Sis/src/main/java/org/dromara/sis/domain/bo/SisPersonLibBo.java index da5bb5ab..d312e8b5 100644 --- a/ruoyi-modules/Sis/src/main/java/org/dromara/sis/domain/bo/SisPersonLibBo.java +++ b/ruoyi-modules/Sis/src/main/java/org/dromara/sis/domain/bo/SisPersonLibBo.java @@ -16,7 +16,7 @@ import org.dromara.sis.domain.SisPersonLib; * 人像库业务对象 tb_person_lib * * @author mocheng - * @date 2025-06-24 + * @since 2025-06-24 */ @Data @EqualsAndHashCode(callSuper = true) @@ -53,11 +53,15 @@ public class SisPersonLibBo extends BaseEntity { @Translation(type = TransConstant.DICT_TYPE_TO_LABEL, mapper = "libType", other = "sis_lib_type") private String libTypeName; - /** * 库的业务类型 1: 门禁库,2: 黑名单库 */ private Long busiType = 1L; + /** + * 门禁设备id + */ + private Long eqbId; + } diff --git a/ruoyi-modules/Sis/src/main/java/org/dromara/sis/domain/bo/SisPersonLibImgBo.java b/ruoyi-modules/Sis/src/main/java/org/dromara/sis/domain/bo/SisPersonLibImgBo.java index 3aaa337d..568d61a4 100644 --- a/ruoyi-modules/Sis/src/main/java/org/dromara/sis/domain/bo/SisPersonLibImgBo.java +++ b/ruoyi-modules/Sis/src/main/java/org/dromara/sis/domain/bo/SisPersonLibImgBo.java @@ -23,19 +23,19 @@ public class SisPersonLibImgBo extends BaseEntity { /** * 主键id */ - @NotNull(message = "主键id不能为空", groups = { EditGroup.class }) + @NotNull(message = "主键id不能为空", groups = {EditGroup.class}) private Long id; /** * 人员库编码 */ - @NotBlank(message = "人员库编码不能为空", groups = { AddGroup.class, EditGroup.class }) - private String libCode; + @NotNull(message = "人像库Id不能为空", groups = {AddGroup.class, EditGroup.class}) + private Long libId; /** * 人像名称 */ - @NotBlank(message = "人像名称不能为空", groups = { AddGroup.class, EditGroup.class }) + @NotBlank(message = "人像名称不能为空", groups = {AddGroup.class, EditGroup.class}) private String imgName; /** @@ -46,12 +46,11 @@ public class SisPersonLibImgBo extends BaseEntity { /** * 图片的存储地址 */ - @NotBlank(message = "图片的存储地址不能为空", groups = { AddGroup.class, EditGroup.class }) + @NotBlank(message = "图片的存储地址不能为空", groups = {AddGroup.class, EditGroup.class}) private String imgUrl; /** - * 性别 1:男 -2:女 99:未说明 + * 性别 1:男2:女 99:未说明 */ private Long sex; @@ -66,9 +65,7 @@ public class SisPersonLibImgBo extends BaseEntity { private String tel; /** - * 证件类型 -1:身份证 2:护照 -3:行驶证 99:其它 + * 证件类型、1:身份证 2:护照、3:行驶证 99:其它 */ private Long certificateType; @@ -97,5 +94,10 @@ public class SisPersonLibImgBo extends BaseEntity { */ private String searchValue; + /** + * 是否同步到E8 + */ + private Boolean isSyncE8; + } diff --git a/ruoyi-modules/Sis/src/main/java/org/dromara/sis/domain/vo/SisLibDeviceImgRefVo.java b/ruoyi-modules/Sis/src/main/java/org/dromara/sis/domain/vo/SisLibDeviceImgRefVo.java index 8a5344e1..6766070b 100644 --- a/ruoyi-modules/Sis/src/main/java/org/dromara/sis/domain/vo/SisLibDeviceImgRefVo.java +++ b/ruoyi-modules/Sis/src/main/java/org/dromara/sis/domain/vo/SisLibDeviceImgRefVo.java @@ -33,20 +33,20 @@ public class SisLibDeviceImgRefVo implements Serializable { /** * 库编码 */ - @ExcelProperty(value = "库编码") - private String libCode; + @ExcelProperty(value = "库Id") + private Long libId; /** * 图片编码 */ - @ExcelProperty(value = "图片编码") - private String imgCode; + @ExcelProperty(value = "图片Id") + private Long imgId; /** * 设备编码 */ - @ExcelProperty(value = "设备编码") - private String eqpCode; + @ExcelProperty(value = "设备id") + private Long eqpId; /** * 设备库id @@ -60,6 +60,12 @@ public class SisLibDeviceImgRefVo implements Serializable { @ExcelProperty(value = "设备库图片id") private Long eqpLibImgId; + /** + * e8图片地址 + */ + @ExcelProperty(value = "e8图片地址") + private String eqpLibImgUrl; + /** * 创建人id */ @@ -72,11 +78,5 @@ public class SisLibDeviceImgRefVo implements Serializable { @ExcelProperty(value = "更新人id") private Long updateById; - /** - * 搜索值 - */ - @ExcelProperty(value = "搜索值") - private String searchValue; - } diff --git a/ruoyi-modules/Sis/src/main/java/org/dromara/sis/domain/vo/SisLibDeviceRefVo.java b/ruoyi-modules/Sis/src/main/java/org/dromara/sis/domain/vo/SisLibDeviceRefVo.java index a82dee51..f6b01a70 100644 --- a/ruoyi-modules/Sis/src/main/java/org/dromara/sis/domain/vo/SisLibDeviceRefVo.java +++ b/ruoyi-modules/Sis/src/main/java/org/dromara/sis/domain/vo/SisLibDeviceRefVo.java @@ -33,20 +33,20 @@ public class SisLibDeviceRefVo implements Serializable { /** * 人员库编码 */ - @ExcelProperty(value = "人员库编码") - private String libCode; + @ExcelProperty(value = "库Id") + private Long libId; /** * 设备编码 */ - @ExcelProperty(value = "设备编码") - private String eqpCode; + @ExcelProperty(value = "设备Id") + private Long eqpId; /** * 设备上的库id */ @ExcelProperty(value = "设备上的库id") - private Long eqpLibCode; + private Long eqpLibId; /** * 第三方设备库添加状态 1: 成功,2:失败 @@ -66,11 +66,4 @@ public class SisLibDeviceRefVo implements Serializable { @ExcelProperty(value = "更新人id") private Long updateById; - /** - * 搜索值 - */ - @ExcelProperty(value = "搜索值") - private String searchValue; - - } diff --git a/ruoyi-modules/Sis/src/main/java/org/dromara/sis/domain/vo/SisPersonLibImgVo.java b/ruoyi-modules/Sis/src/main/java/org/dromara/sis/domain/vo/SisPersonLibImgVo.java index 15068b33..e10145d2 100644 --- a/ruoyi-modules/Sis/src/main/java/org/dromara/sis/domain/vo/SisPersonLibImgVo.java +++ b/ruoyi-modules/Sis/src/main/java/org/dromara/sis/domain/vo/SisPersonLibImgVo.java @@ -34,8 +34,8 @@ public class SisPersonLibImgVo implements Serializable { /** * 人员库编码 */ - @ExcelProperty(value = "人员库编码") - private String libCode; + @ExcelProperty(value = "人员库Id") + private String libId; /** * 人像名称 diff --git a/ruoyi-modules/Sis/src/main/java/org/dromara/sis/sdk/unview/model/UvModel.java b/ruoyi-modules/Sis/src/main/java/org/dromara/sis/sdk/unview/model/UvModel.java index ee146362..c55fbb46 100644 --- a/ruoyi-modules/Sis/src/main/java/org/dromara/sis/sdk/unview/model/UvModel.java +++ b/ruoyi-modules/Sis/src/main/java/org/dromara/sis/sdk/unview/model/UvModel.java @@ -259,9 +259,9 @@ public class UvModel { */ private Integer lib_id; /** - * 性别 + * 性别 1:男2:女 99:未说明 */ - private String sex; + private Integer sex; /** * 邮件 */ @@ -275,7 +275,7 @@ public class UvModel { * 证件类型 * 1:身份证 2:护照 3:行驶证 99:其它 */ - private String certificate_type; + private Integer certificate_type; /** * 证件号码 */ diff --git a/ruoyi-modules/Sis/src/main/java/org/dromara/sis/service/ISisLibDeviceImgRefService.java b/ruoyi-modules/Sis/src/main/java/org/dromara/sis/service/ISisLibDeviceImgRefService.java index 281935ae..3666689f 100644 --- a/ruoyi-modules/Sis/src/main/java/org/dromara/sis/service/ISisLibDeviceImgRefService.java +++ b/ruoyi-modules/Sis/src/main/java/org/dromara/sis/service/ISisLibDeviceImgRefService.java @@ -12,7 +12,7 @@ import java.util.List; * 系统图片和设备图片的关联Service接口 * * @author mocheng - * @date 2025-06-24 + * @since 2025-06-24 */ public interface ISisLibDeviceImgRefService { @@ -65,4 +65,12 @@ public interface ISisLibDeviceImgRefService { * @return 是否删除成功 */ Boolean deleteWithValidByIds(Collection ids, Boolean isValid); + + /** + * 根据系统图片id列表,获取设备图片列表 + * + * @param imgIds 系统图片id列表 + * @return 设备图片列表 + */ + List queryListByImgIds(Collection imgIds); } diff --git a/ruoyi-modules/Sis/src/main/java/org/dromara/sis/service/ISisLibDeviceRefService.java b/ruoyi-modules/Sis/src/main/java/org/dromara/sis/service/ISisLibDeviceRefService.java index f9c95cf4..2c3c6ecd 100644 --- a/ruoyi-modules/Sis/src/main/java/org/dromara/sis/service/ISisLibDeviceRefService.java +++ b/ruoyi-modules/Sis/src/main/java/org/dromara/sis/service/ISisLibDeviceRefService.java @@ -12,7 +12,7 @@ import java.util.List; * 系统库与设备库的关联Service接口 * * @author mocheng - * @date 2025-06-24 + * @since 2025-06-24 */ public interface ISisLibDeviceRefService { @@ -65,4 +65,12 @@ public interface ISisLibDeviceRefService { * @return 是否删除成功 */ Boolean deleteWithValidByIds(Collection ids, Boolean isValid); + + /** + * 根据系统库id列表,获取设备库列表 + * + * @param LibIds 系统图片id列表 + * @return 设备库列表 + */ + List queryListByLibId(Collection LibIds); } diff --git a/ruoyi-modules/Sis/src/main/java/org/dromara/sis/service/impl/SisLibDeviceImgRefServiceImpl.java b/ruoyi-modules/Sis/src/main/java/org/dromara/sis/service/impl/SisLibDeviceImgRefServiceImpl.java index ab563b6e..4f52040a 100644 --- a/ruoyi-modules/Sis/src/main/java/org/dromara/sis/service/impl/SisLibDeviceImgRefServiceImpl.java +++ b/ruoyi-modules/Sis/src/main/java/org/dromara/sis/service/impl/SisLibDeviceImgRefServiceImpl.java @@ -40,7 +40,7 @@ public class SisLibDeviceImgRefServiceImpl implements ISisLibDeviceImgRefService * @return 系统图片和设备图片的关联 */ @Override - public SisLibDeviceImgRefVo queryById(Long id){ + public SisLibDeviceImgRefVo queryById(Long id) { return baseMapper.selectVoById(id); } @@ -74,12 +74,11 @@ public class SisLibDeviceImgRefServiceImpl implements ISisLibDeviceImgRefService Map params = bo.getParams(); LambdaQueryWrapper lqw = Wrappers.lambdaQuery(); lqw.orderByAsc(SisLibDeviceImgRef::getId); - lqw.eq(StringUtils.isNotBlank(bo.getLibCode()), SisLibDeviceImgRef::getLibCode, bo.getLibCode()); - lqw.eq(StringUtils.isNotBlank(bo.getImgCode()), SisLibDeviceImgRef::getImgCode, bo.getImgCode()); - lqw.eq(StringUtils.isNotBlank(bo.getEqpCode()), SisLibDeviceImgRef::getEqpCode, bo.getEqpCode()); + lqw.eq(bo.getLibId() != null, SisLibDeviceImgRef::getLibId, bo.getLibId()); + lqw.eq(bo.getImgId() != null, SisLibDeviceImgRef::getImgId, bo.getImgId()); + lqw.eq(bo.getEqpId() != null, SisLibDeviceImgRef::getEqpId, bo.getEqpId()); lqw.eq(bo.getEqpLibId() != null, SisLibDeviceImgRef::getEqpLibId, bo.getEqpLibId()); lqw.eq(bo.getEqpLibImgId() != null, SisLibDeviceImgRef::getEqpLibImgId, bo.getEqpLibImgId()); - lqw.eq(StringUtils.isNotBlank(bo.getSearchValue()), SisLibDeviceImgRef::getSearchValue, bo.getSearchValue()); return lqw; } @@ -116,7 +115,7 @@ public class SisLibDeviceImgRefServiceImpl implements ISisLibDeviceImgRefService /** * 保存前的数据校验 */ - private void validEntityBeforeSave(SisLibDeviceImgRef entity){ + private void validEntityBeforeSave(SisLibDeviceImgRef entity) { //TODO 做一些数据校验,如唯一约束 } @@ -129,9 +128,22 @@ public class SisLibDeviceImgRefServiceImpl implements ISisLibDeviceImgRefService */ @Override public Boolean deleteWithValidByIds(Collection ids, Boolean isValid) { - if(isValid){ + if (isValid) { //TODO 做一些业务上的校验,判断是否需要校验 } return baseMapper.deleteByIds(ids) > 0; } + + /** + * 根据系统图片id列表,获取设备图片列表 + * + * @param imgIds 系统图片id列表 + * @return 设备图片列表 + */ + @Override + public List queryListByImgIds(Collection imgIds){ + LambdaQueryWrapper lqw = Wrappers.lambdaQuery(); + lqw.in(SisLibDeviceImgRef::getImgId, imgIds); + return baseMapper.selectVoList(lqw); + } } diff --git a/ruoyi-modules/Sis/src/main/java/org/dromara/sis/service/impl/SisLibDeviceRefServiceImpl.java b/ruoyi-modules/Sis/src/main/java/org/dromara/sis/service/impl/SisLibDeviceRefServiceImpl.java index 3dff6b55..982c7c8d 100644 --- a/ruoyi-modules/Sis/src/main/java/org/dromara/sis/service/impl/SisLibDeviceRefServiceImpl.java +++ b/ruoyi-modules/Sis/src/main/java/org/dromara/sis/service/impl/SisLibDeviceRefServiceImpl.java @@ -40,7 +40,7 @@ public class SisLibDeviceRefServiceImpl implements ISisLibDeviceRefService { * @return 系统库与设备库的关联 */ @Override - public SisLibDeviceRefVo queryById(Long id){ + public SisLibDeviceRefVo queryById(Long id) { return baseMapper.selectVoById(id); } @@ -74,9 +74,9 @@ public class SisLibDeviceRefServiceImpl implements ISisLibDeviceRefService { Map params = bo.getParams(); LambdaQueryWrapper lqw = Wrappers.lambdaQuery(); lqw.orderByAsc(SisLibDeviceRef::getId); - lqw.eq(StringUtils.isNotBlank(bo.getLibCode()), SisLibDeviceRef::getLibCode, bo.getLibCode()); - lqw.eq(StringUtils.isNotBlank(bo.getEqpCode()), SisLibDeviceRef::getEqpCode, bo.getEqpCode()); - lqw.eq(bo.getEqpLibCode() != null, SisLibDeviceRef::getEqpLibCode, bo.getEqpLibCode()); + lqw.eq(bo.getLibId() != null, SisLibDeviceRef::getLibId, bo.getLibId()); + lqw.eq(bo.getEqpId() != null, SisLibDeviceRef::getEqpId, bo.getEqpId()); + lqw.eq(bo.getEqpLibId() != null, SisLibDeviceRef::getEqpLibId, bo.getEqpLibId()); lqw.eq(bo.getEqpLibState() != null, SisLibDeviceRef::getEqpLibState, bo.getEqpLibState()); lqw.eq(StringUtils.isNotBlank(bo.getSearchValue()), SisLibDeviceRef::getSearchValue, bo.getSearchValue()); return lqw; @@ -115,7 +115,7 @@ public class SisLibDeviceRefServiceImpl implements ISisLibDeviceRefService { /** * 保存前的数据校验 */ - private void validEntityBeforeSave(SisLibDeviceRef entity){ + private void validEntityBeforeSave(SisLibDeviceRef entity) { //TODO 做一些数据校验,如唯一约束 } @@ -128,9 +128,21 @@ public class SisLibDeviceRefServiceImpl implements ISisLibDeviceRefService { */ @Override public Boolean deleteWithValidByIds(Collection ids, Boolean isValid) { - if(isValid){ + if (isValid) { //TODO 做一些业务上的校验,判断是否需要校验 } return baseMapper.deleteByIds(ids) > 0; } + + /** + * 根据系统库id列表,获取设备库列表 + * + * @param LibIds 系统图片id列表 + * @return 设备库列表 + */ + public List queryListByLibId(Collection LibIds){ + LambdaQueryWrapper lqw = Wrappers.lambdaQuery(); + lqw.in(SisLibDeviceRef::getLibId, LibIds); + return baseMapper.selectVoList(lqw); + } } diff --git a/ruoyi-modules/Sis/src/main/java/org/dromara/sis/service/impl/SisPersonLibImgServiceImpl.java b/ruoyi-modules/Sis/src/main/java/org/dromara/sis/service/impl/SisPersonLibImgServiceImpl.java index 09d0298c..88a1dc99 100644 --- a/ruoyi-modules/Sis/src/main/java/org/dromara/sis/service/impl/SisPersonLibImgServiceImpl.java +++ b/ruoyi-modules/Sis/src/main/java/org/dromara/sis/service/impl/SisPersonLibImgServiceImpl.java @@ -1,5 +1,7 @@ package org.dromara.sis.service.impl; +import cn.hutool.core.util.IdUtil; +import org.dromara.common.core.constant.CodePrefixConstants; import org.dromara.common.core.utils.MapstructUtils; import org.dromara.common.core.utils.StringUtils; import org.dromara.common.mybatis.core.page.TableDataInfo; @@ -9,6 +11,15 @@ import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.toolkit.Wrappers; import lombok.RequiredArgsConstructor; import lombok.extern.slf4j.Slf4j; +import org.dromara.sis.domain.bo.SisLibDeviceImgRefBo; +import org.dromara.sis.domain.bo.SisLibDeviceRefBo; +import org.dromara.sis.domain.vo.SisLibDeviceImgRefVo; +import org.dromara.sis.domain.vo.SisLibDeviceRefVo; +import org.dromara.sis.sdk.e8.VoucherControlService; +import org.dromara.sis.sdk.unview.model.UvModel; +import org.dromara.sis.sdk.unview.service.UnViewAiBoxApiService; +import org.dromara.sis.service.ISisLibDeviceImgRefService; +import org.dromara.sis.service.ISisLibDeviceRefService; import org.springframework.stereotype.Service; import org.dromara.sis.domain.bo.SisPersonLibImgBo; import org.dromara.sis.domain.vo.SisPersonLibImgVo; @@ -16,6 +27,9 @@ import org.dromara.sis.domain.SisPersonLibImg; import org.dromara.sis.mapper.SisPersonLibImgMapper; import org.dromara.sis.service.ISisPersonLibImgService; +import java.nio.file.Files; +import java.nio.file.Paths; +import java.util.Base64; import java.util.List; import java.util.Map; import java.util.Collection; @@ -32,6 +46,10 @@ import java.util.Collection; public class SisPersonLibImgServiceImpl implements ISisPersonLibImgService { private final SisPersonLibImgMapper baseMapper; + private final VoucherControlService vouchService; + private final UnViewAiBoxApiService unViewAiBoxApiService; + private final ISisLibDeviceRefService libDeviceRefService; + private final ISisLibDeviceImgRefService libDeviceImgRefService; /** * 查询人像信息 @@ -40,7 +58,7 @@ public class SisPersonLibImgServiceImpl implements ISisPersonLibImgService { * @return 人像信息 */ @Override - public SisPersonLibImgVo queryById(Long id){ + public SisPersonLibImgVo queryById(Long id) { return baseMapper.selectVoById(id); } @@ -74,7 +92,7 @@ public class SisPersonLibImgServiceImpl implements ISisPersonLibImgService { Map params = bo.getParams(); LambdaQueryWrapper lqw = Wrappers.lambdaQuery(); lqw.orderByAsc(SisPersonLibImg::getId); - lqw.eq(StringUtils.isNotBlank(bo.getLibCode()), SisPersonLibImg::getLibCode, bo.getLibCode()); + lqw.eq(bo.getLibId() != null, SisPersonLibImg::getLibId, bo.getLibId()); lqw.like(StringUtils.isNotBlank(bo.getImgName()), SisPersonLibImg::getImgName, bo.getImgName()); lqw.eq(StringUtils.isNotBlank(bo.getImgCode()), SisPersonLibImg::getImgCode, bo.getImgCode()); lqw.eq(StringUtils.isNotBlank(bo.getImgUrl()), SisPersonLibImg::getImgUrl, bo.getImgUrl()); @@ -97,10 +115,80 @@ public class SisPersonLibImgServiceImpl implements ISisPersonLibImgService { @Override public Boolean insertByBo(SisPersonLibImgBo bo) { SisPersonLibImg add = MapstructUtils.convert(bo, SisPersonLibImg.class); + // 生成编码 + add.setImgCode(CodePrefixConstants.PERSON_LIB_IMAGE_CODE_PREFIX + IdUtil.getSnowflakeNextIdStr()); validEntityBeforeSave(add); + + + long eqp_id; + long eqp_lib_id; + Integer eqp_lib_img_id; + String eqp_lib_img_url = ""; + try { + // 根据图片路径读取图片 + byte[] imageByte = Files.readAllBytes(Paths.get(bo.getImgUrl())); + + // TODO 新增E8人像 + if (bo.getIsSyncE8()) { + // 调用e8人像上传接口 + String url = vouchService.uploadFace(imageByte); + if (url == null) return false; + eqp_lib_img_url = url; + } + + // TODO 同步到宇视人像照片 + // 查询系统库与设备库的关联表 获取设备库Id + SisLibDeviceRefBo libDeviceRefBo = new SisLibDeviceRefBo(); + libDeviceRefBo.setLibId(bo.getLibId()); + List libDeviceRefVos = libDeviceRefService.queryList(libDeviceRefBo); + + if (libDeviceRefVos.isEmpty()) return false; + eqp_id = libDeviceRefVos.get(0).getEqpId(); + eqp_lib_id = libDeviceRefVos.get(0).getEqpLibId(); + + // 宇视鉴权信息 + UvModel.UvSystemInfo systemInfo = new UvModel.UvSystemInfo(); + systemInfo.setAccount("admin"); + systemInfo.setPassword("nc123456."); + systemInfo.setIp("47.109.37.87"); + systemInfo.setPort(4001); + + // 宇视添加人像 + UvModel.AddPersonParams addPersonParams = new UvModel.AddPersonParams(); + addPersonParams.setPerson_name(bo.getImgName()); + addPersonParams.setImage_base64(Base64.getEncoder().encodeToString(imageByte)); + addPersonParams.setLib_id(Math.toIntExact(eqp_lib_id)); + addPersonParams.setSex(Math.toIntExact(bo.getSex())); + addPersonParams.setEmail(bo.getEmail()); + addPersonParams.setTel(bo.getTel()); + addPersonParams.setCertificate_type(Math.toIntExact(bo.getCertificateType())); + addPersonParams.setCertificate_no(bo.getCertificateNo()); + addPersonParams.setBirth_date(bo.getBirthDate()); + + // 发起请求获取响应 + UvModel.AddPersonResult addPersonResult = unViewAiBoxApiService.addPerson(systemInfo, addPersonParams); + if (addPersonResult == null) return false; + eqp_lib_img_id = addPersonResult.getPerson_id(); + } catch (Exception e) { + return false; + } + + boolean flag = baseMapper.insert(add) > 0; if (flag) { bo.setId(add.getId()); + //TODO 写入关联表 + SisLibDeviceImgRefBo ref = new SisLibDeviceImgRefBo(); + ref.setLibId(bo.getLibId()); + ref.setImgId(add.getId()); + ref.setEqpId(eqp_id); + ref.setEqpLibId(eqp_lib_id); + ref.setEqpLibImgId(eqp_lib_img_id.longValue()); + // E8 + if(bo.getIsSyncE8()){ + ref.setEqpLibImgUrl(eqp_lib_img_url); + } + libDeviceImgRefService.insertByBo(ref); } return flag; } @@ -121,7 +209,7 @@ public class SisPersonLibImgServiceImpl implements ISisPersonLibImgService { /** * 保存前的数据校验 */ - private void validEntityBeforeSave(SisPersonLibImg entity){ + private void validEntityBeforeSave(SisPersonLibImg entity) { //TODO 做一些数据校验,如唯一约束 } @@ -134,8 +222,25 @@ public class SisPersonLibImgServiceImpl implements ISisPersonLibImgService { */ @Override public Boolean deleteWithValidByIds(Collection ids, Boolean isValid) { - if(isValid){ + if (isValid) { //TODO 做一些业务上的校验,判断是否需要校验 + List list = libDeviceImgRefService.queryListByImgIds(ids); + if(list.isEmpty()) return false; + Collection refIds = list.stream().map(SisLibDeviceImgRefVo::getId).toList(); + Integer[] refImgIds = list.stream().map(SisLibDeviceImgRefVo::getEqpLibImgId).map(Long::intValue).toArray(Integer[]::new); + + // 宇视鉴权信息 + UvModel.UvSystemInfo systemInfo = new UvModel.UvSystemInfo(); + systemInfo.setAccount("admin"); + systemInfo.setPassword("nc123456."); + systemInfo.setIp("47.109.37.87"); + systemInfo.setPort(4001); + + Boolean unViewFlag = unViewAiBoxApiService.batchDeletePerson(systemInfo, refImgIds); + if (!unViewFlag) return false; + + Boolean refFlag = libDeviceImgRefService.deleteWithValidByIds(refIds, true); + if (!refFlag) return false; } return baseMapper.deleteByIds(ids) > 0; } diff --git a/ruoyi-modules/Sis/src/main/java/org/dromara/sis/service/impl/SisPersonLibServiceImpl.java b/ruoyi-modules/Sis/src/main/java/org/dromara/sis/service/impl/SisPersonLibServiceImpl.java index bae0bd75..77b1c30b 100644 --- a/ruoyi-modules/Sis/src/main/java/org/dromara/sis/service/impl/SisPersonLibServiceImpl.java +++ b/ruoyi-modules/Sis/src/main/java/org/dromara/sis/service/impl/SisPersonLibServiceImpl.java @@ -12,9 +12,14 @@ 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.SisPersonLib; +import org.dromara.sis.domain.bo.SisLibDeviceRefBo; import org.dromara.sis.domain.bo.SisPersonLibBo; +import org.dromara.sis.domain.vo.SisAccessControlDeviceVo; +import org.dromara.sis.domain.vo.SisLibDeviceRefVo; import org.dromara.sis.domain.vo.SisPersonLibVo; import org.dromara.sis.mapper.SisPersonLibMapper; +import org.dromara.sis.sdk.unview.model.UvModel; +import org.dromara.sis.sdk.unview.service.UnViewAiBoxApiService; import org.dromara.sis.service.ISisPersonLibService; import org.springframework.stereotype.Service; @@ -26,7 +31,7 @@ import java.util.Map; * 人像库Service业务层处理 * * @author mocheng - * @date 2025-06-24 + * @since 2025-06-24 */ @Slf4j @Service @@ -34,6 +39,9 @@ import java.util.Map; public class SisPersonLibServiceImpl implements ISisPersonLibService { private final SisPersonLibMapper baseMapper; + private final UnViewAiBoxApiService unViewAiBoxApiService; + private final SisLibDeviceRefServiceImpl libDeviceRefService; + private final SisAccessControlDeviceServiceImpl accessControlDeviceService; /** * 查询人像库 @@ -95,13 +103,38 @@ public class SisPersonLibServiceImpl implements ISisPersonLibService { public Boolean insertByBo(SisPersonLibBo bo) { SisPersonLib add = MapstructUtils.convert(bo, SisPersonLib.class); // 生成库编码 - add.setLibCode(CodePrefixConstants.PERSONLIB_CODE_PREFIX + IdUtil.getSnowflakeNextIdStr()); + add.setLibCode(CodePrefixConstants.PERSON_LIB_CODE_PREFIX + IdUtil.getSnowflakeNextIdStr()); validEntityBeforeSave(add); + + + long eqp_lib_id = 0L; + // TODO 同步到宇视人像库 + if (bo.getEqbId() != null) { + SisAccessControlDeviceVo accessControlDevice = accessControlDeviceService.queryById(bo.getEqbId()); + + if (accessControlDevice == null) return false; + + // 同步到宇视盒子 + UvModel.UvSystemInfo systemInfo = new UvModel.UvSystemInfo(); + systemInfo.setAccount(accessControlDevice.getEqpAccount()); + systemInfo.setPassword(accessControlDevice.getEqpPwd()); + systemInfo.setIp(accessControlDevice.getEqpIp()); + systemInfo.setPort(Math.toIntExact(accessControlDevice.getEqpPort())); + UvModel.AddLibResult resp = unViewAiBoxApiService.addPersonLib(systemInfo, add.getLibName()); + if (resp == null) return false; + eqp_lib_id = resp.getLib_id().longValue(); + } + boolean flag = baseMapper.insert(add) > 0; if (flag) { bo.setId(add.getId()); //TODO 写入设备关联库 - + SisLibDeviceRefBo libDeviceRefBo = new SisLibDeviceRefBo(); + libDeviceRefBo.setLibId(add.getId()); + libDeviceRefBo.setEqpId(bo.getEqbId()); + libDeviceRefBo.setEqpLibId(eqp_lib_id); + libDeviceRefBo.setEqpLibState(1L); + libDeviceRefService.insertByBo(libDeviceRefBo); } return flag; @@ -138,6 +171,24 @@ public class SisPersonLibServiceImpl implements ISisPersonLibService { public Boolean deleteWithValidByIds(Collection ids, Boolean isValid) { if (isValid) { //TODO 做一些业务上的校验,判断是否需要校验 + List list = libDeviceRefService.queryListByLibId(ids); + if(list.isEmpty()) return false; + + Collection refIds = list.stream().map(SisLibDeviceRefVo::getId).toList(); + Integer[] refLibIds = list.stream().map(SisLibDeviceRefVo::getEqpLibId).map(Long::intValue).toArray(Integer[]::new); + + // 宇视鉴权信息 + UvModel.UvSystemInfo systemInfo = new UvModel.UvSystemInfo(); + systemInfo.setAccount("admin"); + systemInfo.setPassword("nc123456."); + systemInfo.setIp("47.109.37.87"); + systemInfo.setPort(4001); + + boolean unViewFlag = unViewAiBoxApiService.deletePersonLib(systemInfo, refLibIds); + if (!unViewFlag) return false; + + Boolean refFlag = libDeviceRefService.deleteWithValidByIds(refIds, true); + if (!refFlag) return false; } return baseMapper.deleteByIds(ids) > 0; } From 9b2904ad06d665a41f244d98d8283196f95197c0 Mon Sep 17 00:00:00 2001 From: zcxlsm Date: Fri, 27 Jun 2025 23:53:22 +0800 Subject: [PATCH 05/21] =?UTF-8?q?feat(sis):=20-=20=E4=BA=BA=E5=83=8F?= =?UTF-8?q?=E5=BA=93=E6=93=8D=E4=BD=9C=E4=B8=8E=E5=AE=87=E8=A7=86=E5=B9=B3?= =?UTF-8?q?=E5=8F=B0=E5=90=8C=E6=AD=A5=E6=93=8D=E4=BD=9C=EF=BC=88=E6=96=B0?= =?UTF-8?q?=E5=A2=9E=EF=BC=8C=E5=88=A0=E9=99=A4=EF=BC=89=EF=BC=8C=E5=85=B3?= =?UTF-8?q?=E8=81=94=E8=A1=A8=E5=90=8C=E6=AD=A5=E5=86=99=E5=85=A5/?= =?UTF-8?q?=E5=88=A0=E9=99=A4=20-=20=E4=BA=BA=E5=83=8F=E5=9B=BE=E7=89=87?= =?UTF-8?q?=E4=B8=8E=E5=AE=87=E8=A7=86=E5=B9=B3=E5=8F=B0=E5=90=8C=E6=AD=A5?= =?UTF-8?q?=E6=93=8D=E4=BD=9C=EF=BC=88=E6=96=B0=E5=A2=9E=EF=BC=8C=E5=88=A0?= =?UTF-8?q?=E9=99=A4=EF=BC=89=EF=BC=8C=E5=85=B3=E8=81=94=E8=A1=A8=E5=90=8C?= =?UTF-8?q?=E6=AD=A5=E5=86=99=E5=85=A5/=E5=88=A0=E9=99=A4=EF=BC=8C?= =?UTF-8?q?=E5=8F=AF=E9=80=89=E5=90=8C=E6=AD=A5=E8=87=B3E8=E5=B9=B3?= =?UTF-8?q?=E5=8F=B0=20-=20=E5=85=B3=E8=81=94=E5=85=B3=E7=B3=BB=E6=94=B9?= =?UTF-8?q?=E4=B8=BAid=E5=85=B3=E8=81=94?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../dromara/common/core/constant/CodePrefixConstants.java | 2 +- .../java/org/dromara/sis/domain/bo/SisPersonLibImgBo.java | 5 +++++ .../java/org/dromara/sis/mapper/SisLibDeviceRefMapper.java | 1 - .../org/dromara/sis/service/ISisLibDeviceRefService.java | 5 ++--- .../sis/service/impl/SisPersonLibImgServiceImpl.java | 3 +++ .../dromara/sis/service/impl/SisPersonLibServiceImpl.java | 6 ++++-- 6 files changed, 15 insertions(+), 7 deletions(-) diff --git a/ruoyi-common/ruoyi-common-core/src/main/java/org/dromara/common/core/constant/CodePrefixConstants.java b/ruoyi-common/ruoyi-common-core/src/main/java/org/dromara/common/core/constant/CodePrefixConstants.java index 05bc29e7..5588b193 100644 --- a/ruoyi-common/ruoyi-common-core/src/main/java/org/dromara/common/core/constant/CodePrefixConstants.java +++ b/ruoyi-common/ruoyi-common-core/src/main/java/org/dromara/common/core/constant/CodePrefixConstants.java @@ -12,7 +12,7 @@ public interface CodePrefixConstants { String SIS_DEVICE_CODE_PREFIX = "101"; /** - * 门禁设备编码前缀 + * 人像编码前缀 */ String PERSON_LIB_IMAGE_CODE_PREFIX = "102"; } diff --git a/ruoyi-modules/Sis/src/main/java/org/dromara/sis/domain/bo/SisPersonLibImgBo.java b/ruoyi-modules/Sis/src/main/java/org/dromara/sis/domain/bo/SisPersonLibImgBo.java index 15fe30d5..abfccb22 100644 --- a/ruoyi-modules/Sis/src/main/java/org/dromara/sis/domain/bo/SisPersonLibImgBo.java +++ b/ruoyi-modules/Sis/src/main/java/org/dromara/sis/domain/bo/SisPersonLibImgBo.java @@ -79,4 +79,9 @@ public class SisPersonLibImgBo extends BaseEntity { */ private String birthDate; + /** + * 同步E8 + */ + private Boolean isSyncE8; + } diff --git a/ruoyi-modules/Sis/src/main/java/org/dromara/sis/mapper/SisLibDeviceRefMapper.java b/ruoyi-modules/Sis/src/main/java/org/dromara/sis/mapper/SisLibDeviceRefMapper.java index 19842f43..96e0ce70 100644 --- a/ruoyi-modules/Sis/src/main/java/org/dromara/sis/mapper/SisLibDeviceRefMapper.java +++ b/ruoyi-modules/Sis/src/main/java/org/dromara/sis/mapper/SisLibDeviceRefMapper.java @@ -3,7 +3,6 @@ package org.dromara.sis.mapper; import org.apache.ibatis.annotations.Param; import org.dromara.sis.domain.SisLibDeviceRef; import org.dromara.sis.domain.bo.AccessControlLibDeviceBo; -import org.dromara.sis.domain.vo.SisAccessControlDeviceVo; import org.dromara.sis.domain.vo.SisLibDeviceRefVo; import org.dromara.common.mybatis.core.mapper.BaseMapperPlus; diff --git a/ruoyi-modules/Sis/src/main/java/org/dromara/sis/service/ISisLibDeviceRefService.java b/ruoyi-modules/Sis/src/main/java/org/dromara/sis/service/ISisLibDeviceRefService.java index 9a685f02..4986b8ac 100644 --- a/ruoyi-modules/Sis/src/main/java/org/dromara/sis/service/ISisLibDeviceRefService.java +++ b/ruoyi-modules/Sis/src/main/java/org/dromara/sis/service/ISisLibDeviceRefService.java @@ -3,9 +3,8 @@ package org.dromara.sis.service; import org.dromara.common.mybatis.core.page.PageQuery; import org.dromara.common.mybatis.core.page.TableDataInfo; import org.dromara.sis.domain.SisLibDeviceRef; -import org.dromara.sis.domain.bo.SisAccessControlDeviceBo; +import org.dromara.sis.domain.bo.AccessControlLibDeviceBo; import org.dromara.sis.domain.bo.SisLibDeviceRefBo; -import org.dromara.sis.domain.vo.SisAccessControlDeviceVo; import org.dromara.sis.domain.vo.SisLibDeviceRefVo; import java.util.Collection; @@ -107,5 +106,5 @@ public interface ISisLibDeviceRefService { * @param ids libIds * @return 返回设备列表 */ - List queryDeviceListByLibIds(Collection ids); + List queryDeviceListByLibIds(Collection ids); } diff --git a/ruoyi-modules/Sis/src/main/java/org/dromara/sis/service/impl/SisPersonLibImgServiceImpl.java b/ruoyi-modules/Sis/src/main/java/org/dromara/sis/service/impl/SisPersonLibImgServiceImpl.java index 92331326..135982d3 100644 --- a/ruoyi-modules/Sis/src/main/java/org/dromara/sis/service/impl/SisPersonLibImgServiceImpl.java +++ b/ruoyi-modules/Sis/src/main/java/org/dromara/sis/service/impl/SisPersonLibImgServiceImpl.java @@ -1,5 +1,7 @@ package org.dromara.sis.service.impl; +import cn.hutool.core.util.IdUtil; +import org.dromara.common.core.constant.CodePrefixConstants; import org.dromara.common.core.utils.MapstructUtils; import org.dromara.common.core.utils.StringUtils; import org.dromara.common.mybatis.core.page.TableDataInfo; @@ -26,6 +28,7 @@ import org.dromara.sis.mapper.SisPersonLibImgMapper; import org.dromara.sis.service.ISisPersonLibImgService; import java.nio.file.Files; +import java.nio.file.Paths; import java.util.Base64; import java.util.List; import java.util.Map; diff --git a/ruoyi-modules/Sis/src/main/java/org/dromara/sis/service/impl/SisPersonLibServiceImpl.java b/ruoyi-modules/Sis/src/main/java/org/dromara/sis/service/impl/SisPersonLibServiceImpl.java index e38bba0f..28fdf1a5 100644 --- a/ruoyi-modules/Sis/src/main/java/org/dromara/sis/service/impl/SisPersonLibServiceImpl.java +++ b/ruoyi-modules/Sis/src/main/java/org/dromara/sis/service/impl/SisPersonLibServiceImpl.java @@ -15,6 +15,7 @@ import org.dromara.common.mybatis.core.page.PageQuery; import org.dromara.common.mybatis.core.page.TableDataInfo; import org.dromara.sis.domain.SisLibDeviceRef; import org.dromara.sis.domain.SisPersonLib; +import org.dromara.sis.domain.bo.AccessControlLibDeviceBo; import org.dromara.sis.domain.bo.SisPersonLibBo; import org.dromara.sis.domain.vo.SisAccessControlDeviceVo; import org.dromara.sis.domain.vo.SisLibDeviceRefVo; @@ -22,13 +23,14 @@ import org.dromara.sis.domain.vo.SisPersonLibVo; import org.dromara.sis.mapper.SisPersonLibMapper; import org.dromara.sis.sdk.unview.UnViewAiBoxApi; import org.dromara.sis.sdk.unview.model.UvModel; -import org.dromara.sis.sdk.unview.service.UnViewAiBoxApiService; import org.dromara.sis.service.ISisAccessControlDeviceService; import org.dromara.sis.service.ISisLibDeviceRefService; import org.dromara.sis.service.ISisPersonLibService; import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; import java.util.Collection; +import java.util.Collections; import java.util.List; import java.util.Map; @@ -115,7 +117,7 @@ public class SisPersonLibServiceImpl implements ISisPersonLibService { public Boolean insertByBo(SisPersonLibBo bo) { SisPersonLib add = MapstructUtils.convert(bo, SisPersonLib.class); Assert.notNull(add, "数据处理失败"); - add.setLibCode(CodePrefixConstants.PERSONLIB_CODE_PREFIX + IdUtil.getSnowflakeNextIdStr()); + add.setLibCode(CodePrefixConstants.PERSON_LIB_CODE_PREFIX + IdUtil.getSnowflakeNextIdStr()); boolean flag = baseMapper.insert(add) > 0; log.info("库[{}]开始写入系统,result={}", add.getLibCode(), flag); if (flag) { From e13230dc4e8944638a2d0e37369f38007ec40b46 Mon Sep 17 00:00:00 2001 From: zcxlsm Date: Sat, 28 Jun 2025 00:50:50 +0800 Subject: [PATCH 06/21] =?UTF-8?q?feat(sis):=20=20-=20=E4=BA=BA=E5=83=8F?= =?UTF-8?q?=E5=9B=BE=E7=89=87=E4=B8=8E=E5=AE=87=E8=A7=86=E5=B9=B3=E5=8F=B0?= =?UTF-8?q?=E5=90=8C=E6=AD=A5=E6=93=8D=E4=BD=9C=EF=BC=88=E6=96=B0=E5=A2=9E?= =?UTF-8?q?=EF=BC=8C=E5=88=A0=E9=99=A4=EF=BC=89=EF=BC=8C=E5=85=B3=E8=81=94?= =?UTF-8?q?=E8=A1=A8=E5=90=8C=E6=AD=A5=E5=86=99=E5=85=A5/=E5=88=A0?= =?UTF-8?q?=E9=99=A4=EF=BC=8C=E5=8F=AF=E9=80=89=E5=90=8C=E6=AD=A5=E8=87=B3?= =?UTF-8?q?E8=E5=B9=B3=E5=8F=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../sis/service/ISisLibDeviceRefService.java | 8 - .../impl/SisLibDeviceRefServiceImpl.java | 12 -- .../impl/SisPersonLibImgServiceImpl.java | 190 +++++++++--------- 3 files changed, 100 insertions(+), 110 deletions(-) diff --git a/ruoyi-modules/Sis/src/main/java/org/dromara/sis/service/ISisLibDeviceRefService.java b/ruoyi-modules/Sis/src/main/java/org/dromara/sis/service/ISisLibDeviceRefService.java index 4986b8ac..f04edb1b 100644 --- a/ruoyi-modules/Sis/src/main/java/org/dromara/sis/service/ISisLibDeviceRefService.java +++ b/ruoyi-modules/Sis/src/main/java/org/dromara/sis/service/ISisLibDeviceRefService.java @@ -76,14 +76,6 @@ public interface ISisLibDeviceRefService { */ Boolean deleteWithValidByIds(Collection ids, Boolean isValid); - /** - * 根据系统库id列表,获取设备库列表 - * - * @param LibIds 系统图片id列表 - * @return 设备库列表 - */ - List queryListByLibId(Collection LibIds); - /** * 通过personlIB id 查询关联关系 * diff --git a/ruoyi-modules/Sis/src/main/java/org/dromara/sis/service/impl/SisLibDeviceRefServiceImpl.java b/ruoyi-modules/Sis/src/main/java/org/dromara/sis/service/impl/SisLibDeviceRefServiceImpl.java index 04cf8319..6f69e22e 100644 --- a/ruoyi-modules/Sis/src/main/java/org/dromara/sis/service/impl/SisLibDeviceRefServiceImpl.java +++ b/ruoyi-modules/Sis/src/main/java/org/dromara/sis/service/impl/SisLibDeviceRefServiceImpl.java @@ -141,18 +141,6 @@ public class SisLibDeviceRefServiceImpl implements ISisLibDeviceRefService { return baseMapper.deleteByIds(ids) > 0; } - /** - * 根据系统库id列表,获取设备库列表 - * - * @param LibIds 系统图片id列表 - * @return 设备库列表 - */ - public List queryListByLibId(Collection LibIds){ - LambdaQueryWrapper lqw = Wrappers.lambdaQuery(); - lqw.in(SisLibDeviceRef::getLibId, LibIds); - return baseMapper.selectVoList(lqw); - } - @Override public List queryByLibIds(Collection ids) { LambdaQueryWrapper lqw = Wrappers.lambdaQuery(); diff --git a/ruoyi-modules/Sis/src/main/java/org/dromara/sis/service/impl/SisPersonLibImgServiceImpl.java b/ruoyi-modules/Sis/src/main/java/org/dromara/sis/service/impl/SisPersonLibImgServiceImpl.java index 135982d3..ed32ce76 100644 --- a/ruoyi-modules/Sis/src/main/java/org/dromara/sis/service/impl/SisPersonLibImgServiceImpl.java +++ b/ruoyi-modules/Sis/src/main/java/org/dromara/sis/service/impl/SisPersonLibImgServiceImpl.java @@ -1,5 +1,6 @@ package org.dromara.sis.service.impl; +import cn.hutool.core.lang.Assert; import cn.hutool.core.util.IdUtil; import org.dromara.common.core.constant.CodePrefixConstants; import org.dromara.common.core.utils.MapstructUtils; @@ -11,28 +12,22 @@ import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.toolkit.Wrappers; import lombok.RequiredArgsConstructor; import lombok.extern.slf4j.Slf4j; +import org.dromara.sis.domain.bo.AccessControlLibDeviceBo; import org.dromara.sis.domain.bo.SisLibDeviceImgRefBo; import org.dromara.sis.domain.bo.SisLibDeviceRefBo; -import org.dromara.sis.domain.vo.SisLibDeviceImgRefVo; -import org.dromara.sis.domain.vo.SisLibDeviceRefVo; +import org.dromara.sis.domain.vo.*; import org.dromara.sis.sdk.e8.VoucherControlService; +import org.dromara.sis.sdk.unview.UnViewAiBoxApi; import org.dromara.sis.sdk.unview.model.UvModel; -import org.dromara.sis.sdk.unview.service.UnViewAiBoxApiService; -import org.dromara.sis.service.ISisLibDeviceImgRefService; -import org.dromara.sis.service.ISisLibDeviceRefService; +import org.dromara.sis.service.*; import org.springframework.stereotype.Service; import org.dromara.sis.domain.bo.SisPersonLibImgBo; -import org.dromara.sis.domain.vo.SisPersonLibImgVo; import org.dromara.sis.domain.SisPersonLibImg; import org.dromara.sis.mapper.SisPersonLibImgMapper; -import org.dromara.sis.service.ISisPersonLibImgService; import java.nio.file.Files; import java.nio.file.Paths; -import java.util.Base64; -import java.util.List; -import java.util.Map; -import java.util.Collection; +import java.util.*; /** * 人像信息Service业务层处理 @@ -47,9 +42,11 @@ public class SisPersonLibImgServiceImpl implements ISisPersonLibImgService { private final SisPersonLibImgMapper baseMapper; private final VoucherControlService vouchService; - private final UnViewAiBoxApiService unViewAiBoxApiService; + private final UnViewAiBoxApi unViewAiBoxApi; + private final ISisPersonLibService sisPersonLibService; private final ISisLibDeviceRefService libDeviceRefService; private final ISisLibDeviceImgRefService libDeviceImgRefService; + private final ISisAccessControlDeviceService sisAccessControlDeviceService; /** * 查询人像信息 @@ -115,80 +112,84 @@ public class SisPersonLibImgServiceImpl implements ISisPersonLibImgService { @Override public Boolean insertByBo(SisPersonLibImgBo bo) { SisPersonLibImg add = MapstructUtils.convert(bo, SisPersonLibImg.class); + Assert.notNull(add, "数据处理失败"); // 生成编码 add.setImgCode(CodePrefixConstants.PERSON_LIB_IMAGE_CODE_PREFIX + IdUtil.getSnowflakeNextIdStr()); - validEntityBeforeSave(add); - - - long eqp_id; - long eqp_lib_id; - Integer eqp_lib_img_id; - String eqp_lib_img_url = ""; - try { - // 根据图片路径读取图片 - byte[] imageByte = Files.readAllBytes(Paths.get(bo.getImgUrl())); - - // TODO 新增E8人像 - if (bo.getIsSyncE8()) { - // 调用e8人像上传接口 - String url = vouchService.uploadFace(imageByte); - if (url == null) return false; - eqp_lib_img_url = url; - } - - // TODO 同步到宇视人像照片 - // 查询系统库与设备库的关联表 获取设备库Id - SisLibDeviceRefBo libDeviceRefBo = new SisLibDeviceRefBo(); - libDeviceRefBo.setLibId(bo.getLibId()); - List libDeviceRefVos = libDeviceRefService.queryList(libDeviceRefBo); - - if (libDeviceRefVos.isEmpty()) return false; - eqp_id = libDeviceRefVos.get(0).getEqpId(); - eqp_lib_id = libDeviceRefVos.get(0).getEqpLibId(); - - // 宇视鉴权信息 - UvModel.UvSystemInfo systemInfo = new UvModel.UvSystemInfo(); - systemInfo.setAccount("admin"); - systemInfo.setPassword("nc123456."); - systemInfo.setIp("47.109.37.87"); - systemInfo.setPort(4001); - - // 宇视添加人像 - UvModel.AddPersonParams addPersonParams = new UvModel.AddPersonParams(); - addPersonParams.setPerson_name(bo.getImgName()); - addPersonParams.setImage_base64(Base64.getEncoder().encodeToString(imageByte)); - addPersonParams.setLib_id(Math.toIntExact(eqp_lib_id)); - addPersonParams.setSex(Math.toIntExact(bo.getSex())); - addPersonParams.setEmail(bo.getEmail()); - addPersonParams.setTel(bo.getTel()); - addPersonParams.setCertificate_type(Math.toIntExact(bo.getCertificateType())); - addPersonParams.setCertificate_no(bo.getCertificateNo()); - addPersonParams.setBirth_date(bo.getBirthDate()); - - // 发起请求获取响应 - UvModel.AddPersonResult addPersonResult = unViewAiBoxApiService.addPerson(systemInfo, addPersonParams); - if (addPersonResult == null) return false; - eqp_lib_img_id = addPersonResult.getPerson_id(); - } catch (Exception e) { - return false; - } - - boolean flag = baseMapper.insert(add) > 0; + log.info("图片[{}]开始写入系统,result={}", add.getImgName(), flag); if (flag) { - bo.setId(add.getId()); - //TODO 写入关联表 - SisLibDeviceImgRefBo ref = new SisLibDeviceImgRefBo(); - ref.setLibId(bo.getLibId()); - ref.setImgId(add.getId()); - ref.setEqpId(eqp_id); - ref.setEqpLibId(eqp_lib_id); - ref.setEqpLibImgId(eqp_lib_img_id.longValue()); - // E8 - if(bo.getIsSyncE8()){ - ref.setEqpLibImgUrl(eqp_lib_img_url); + // 获取人像库关联设备Id + SisPersonLibVo libVo = sisPersonLibService.queryById(bo.getLibId()); + Assert.notNull(libVo, "人像库不存在,id=" + bo.getLibId()); + try { + + long eqp_id; + long eqp_lib_id; + Integer eqp_lib_img_id; + String eqp_lib_img_url = null; + // 根据图片路径读取图片 + byte[] imageByte = Files.readAllBytes(Paths.get(bo.getImgUrl())); + for (Long eqpId : libVo.getEqpIds()) { + // 查询设备信息 + SisAccessControlDeviceVo vo = sisAccessControlDeviceService.queryById(eqpId); + Assert.notNull(vo, "门禁控制设备不存在,id=" + eqpId); + log.info("准备写入{}门禁设备人像库", vo.getEqpNo()); + + UvModel.UvSystemInfo systemInfo = new UvModel.UvSystemInfo(); + systemInfo.setAccount(vo.getEqpAccount()); + systemInfo.setPassword(vo.getEqpPwd()); + systemInfo.setIp(vo.getEqpIp()); + systemInfo.setPort(vo.getEqpPort()); + + // 获取宇视线上库ID + SisLibDeviceRefBo refBo = new SisLibDeviceRefBo(); + refBo.setEqpId(eqpId); + refBo.setLibId(bo.getLibId()); + List refVo = libDeviceRefService.queryList(refBo); + Assert.notNull(refVo, "系统库与设备库关联关系不存在!libId:{},eqpId:{}", bo.getLibId(), eqpId); + eqp_lib_id = refVo.get(0).getEqpLibId(); + // 宇视添加人像 + UvModel.AddPersonParams addPersonParams = new UvModel.AddPersonParams(); + addPersonParams.setPerson_name(bo.getImgName()); + addPersonParams.setImage_base64(Base64.getEncoder().encodeToString(imageByte)); + addPersonParams.setLib_id(Math.toIntExact(eqp_lib_id)); + addPersonParams.setSex(bo.getSex()); + addPersonParams.setEmail(bo.getEmail()); + addPersonParams.setTel(bo.getTel()); + addPersonParams.setCertificate_type(bo.getCertificateType()); + addPersonParams.setCertificate_no(bo.getCertificateNo()); + addPersonParams.setBirth_date(bo.getBirthDate()); + + // 发起请求获取响应 + UvModel.AddPersonResult addPersonResult = unViewAiBoxApi.addPerson(systemInfo, addPersonParams); + Assert.notNull(addPersonResult, "图片上传宇视盒子失败"); + eqp_lib_img_id = addPersonResult.getPerson_id(); + + // TODO 新增E8人像 + if (bo.getIsSyncE8()) { + // 调用e8人像上传接口 + String url = vouchService.uploadFace(imageByte); + Assert.notNull(url, "图片上传E8平台失败"); + eqp_lib_img_url = url; + } + + SisLibDeviceImgRefBo ref = new SisLibDeviceImgRefBo(); + ref.setLibId(bo.getLibId()); + ref.setImgId(add.getId()); + ref.setEqpId(eqpId); + ref.setEqpLibId(eqp_lib_id); + ref.setEqpLibImgId(eqp_lib_img_id.longValue()); + // E8 + if (bo.getIsSyncE8()) { + ref.setEqpLibImgUrl(eqp_lib_img_url); + } + Boolean insert = libDeviceImgRefService.insertByBo(ref); + Assert.isTrue(insert, "写入图片关联关系表失败!"); + log.info("同步上传照片完成!"); + } + } catch (Exception e) { + return false; } - libDeviceImgRefService.insertByBo(ref); } return flag; } @@ -225,19 +226,28 @@ public class SisPersonLibImgServiceImpl implements ISisPersonLibImgService { if (isValid) { //TODO 做一些业务上的校验,判断是否需要校验 List list = libDeviceImgRefService.queryListByImgIds(ids); - if(list.isEmpty()) return false; + if (list.isEmpty()) return false; Collection refIds = list.stream().map(SisLibDeviceImgRefVo::getId).toList(); + Collection refLibIds = list.stream().map(SisLibDeviceImgRefVo::getEqpLibId).toList(); Integer[] refImgIds = list.stream().map(SisLibDeviceImgRefVo::getEqpLibImgId).map(Long::intValue).toArray(Integer[]::new); - // 宇视鉴权信息 - UvModel.UvSystemInfo systemInfo = new UvModel.UvSystemInfo(); - systemInfo.setAccount("admin"); - systemInfo.setPassword("nc123456."); - systemInfo.setIp("47.109.37.87"); - systemInfo.setPort(4001); + List ls = libDeviceRefService.queryDeviceListByLibIds(refLibIds); - Boolean unViewFlag = unViewAiBoxApiService.batchDeletePerson(systemInfo, refImgIds); - if (!unViewFlag) return false; + ls.forEach(item -> { + UvModel.UvSystemInfo systemInfo = new UvModel.UvSystemInfo(); + systemInfo.setAccount(item.getEqpAccount()); + systemInfo.setPassword(item.getEqpPwd()); + systemInfo.setIp(item.getEqpIp()); + systemInfo.setPort(item.getEqpPort()); + + if (item.getEqpLibType() == 1){ + Boolean b = unViewAiBoxApi.batchDeletePerson(systemInfo, refImgIds); + log.info("删除宇视图片[{}]完成,result={}", refImgIds, b); + }else { + Boolean b = unViewAiBoxApi.deleteWorkClothes(systemInfo, item.getEqpLibId(), Arrays.stream(refImgIds).toList()); + log.info("删除宇视服装[{}]完成,result={}", refImgIds, b); + } + }); Boolean refFlag = libDeviceImgRefService.deleteWithValidByIds(refIds, true); if (!refFlag) return false; From 18f37be0d51b9b2dbed56194f07d02cc7819f684 Mon Sep 17 00:00:00 2001 From: 15683799673 Date: Sat, 28 Jun 2025 01:27:04 +0800 Subject: [PATCH 07/21] =?UTF-8?q?=E4=BA=BA=E5=83=8F=E5=BA=93=E5=9B=BE?= =?UTF-8?q?=E7=89=87=E5=AE=8C=E6=88=90?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- pom.xml | 2 +- .../main/java/org/dromara/sis/domain/SisPersonLib.java | 5 ----- .../java/org/dromara/sis/domain/SisPersonLibImg.java | 7 +------ .../java/org/dromara/sis/domain/bo/SisPersonLibBo.java | 3 --- .../org/dromara/sis/domain/bo/SisPersonLibImgBo.java | 9 ++------- .../org/dromara/sis/domain/vo/SisPersonLibImgVo.java | 8 +------- .../java/org/dromara/sis/domain/vo/SisPersonLibVo.java | 6 ------ .../sis/service/impl/SisPersonLibImgServiceImpl.java | 5 ----- 8 files changed, 5 insertions(+), 40 deletions(-) diff --git a/pom.xml b/pom.xml index 1f8d7af5..1bc0e9c1 100644 --- a/pom.xml +++ b/pom.xml @@ -69,7 +69,7 @@ - localhost + local dev diff --git a/ruoyi-modules/Sis/src/main/java/org/dromara/sis/domain/SisPersonLib.java b/ruoyi-modules/Sis/src/main/java/org/dromara/sis/domain/SisPersonLib.java index 6f3241dc..566e8a81 100644 --- a/ruoyi-modules/Sis/src/main/java/org/dromara/sis/domain/SisPersonLib.java +++ b/ruoyi-modules/Sis/src/main/java/org/dromara/sis/domain/SisPersonLib.java @@ -28,11 +28,6 @@ public class SisPersonLib extends TenantEntity { @TableId(value = "id") private Long id; - /** - * 人员库编码 - */ - private String libCode; - /** * 人员库名称 */ diff --git a/ruoyi-modules/Sis/src/main/java/org/dromara/sis/domain/SisPersonLibImg.java b/ruoyi-modules/Sis/src/main/java/org/dromara/sis/domain/SisPersonLibImg.java index f4b57486..7d14a276 100644 --- a/ruoyi-modules/Sis/src/main/java/org/dromara/sis/domain/SisPersonLibImg.java +++ b/ruoyi-modules/Sis/src/main/java/org/dromara/sis/domain/SisPersonLibImg.java @@ -31,18 +31,13 @@ public class SisPersonLibImg extends TenantEntity { /** * 人员库编码 */ - private String libCode; + private Long libId; /** * 人像名称 */ private String imgName; - /** - * 图片编码 - */ - private String imgCode; - /** * 图片的存储地址 */ diff --git a/ruoyi-modules/Sis/src/main/java/org/dromara/sis/domain/bo/SisPersonLibBo.java b/ruoyi-modules/Sis/src/main/java/org/dromara/sis/domain/bo/SisPersonLibBo.java index 42557bd1..2aa0d9f3 100644 --- a/ruoyi-modules/Sis/src/main/java/org/dromara/sis/domain/bo/SisPersonLibBo.java +++ b/ruoyi-modules/Sis/src/main/java/org/dromara/sis/domain/bo/SisPersonLibBo.java @@ -30,9 +30,6 @@ public class SisPersonLibBo extends BaseEntity { */ @NotNull(message = "主键id不能为空", groups = {EditGroup.class}) private Long id; - - private String libCode; - /** * 人员库名称 */ diff --git a/ruoyi-modules/Sis/src/main/java/org/dromara/sis/domain/bo/SisPersonLibImgBo.java b/ruoyi-modules/Sis/src/main/java/org/dromara/sis/domain/bo/SisPersonLibImgBo.java index ff9d722e..8cc70980 100644 --- a/ruoyi-modules/Sis/src/main/java/org/dromara/sis/domain/bo/SisPersonLibImgBo.java +++ b/ruoyi-modules/Sis/src/main/java/org/dromara/sis/domain/bo/SisPersonLibImgBo.java @@ -30,19 +30,14 @@ public class SisPersonLibImgBo extends BaseEntity { /** * 人员库编码 */ - @NotNull(message = "人像库编码不能为空", groups = {AddGroup.class, EditGroup.class}) - private String libCode; + @NotNull(message = "人像库id不能为空", groups = {AddGroup.class, EditGroup.class}) + private Long libId; /** * 人像名称 */ private String imgName; - /** - * 图片编码 - */ - private String imgCode; - /** * 图片的存储地址 */ diff --git a/ruoyi-modules/Sis/src/main/java/org/dromara/sis/domain/vo/SisPersonLibImgVo.java b/ruoyi-modules/Sis/src/main/java/org/dromara/sis/domain/vo/SisPersonLibImgVo.java index 340485e6..6193164d 100644 --- a/ruoyi-modules/Sis/src/main/java/org/dromara/sis/domain/vo/SisPersonLibImgVo.java +++ b/ruoyi-modules/Sis/src/main/java/org/dromara/sis/domain/vo/SisPersonLibImgVo.java @@ -35,7 +35,7 @@ public class SisPersonLibImgVo implements Serializable { * 人员库编码 */ @ExcelProperty(value = "人员库编码") - private String libCode; + private Long libId; /** * 人像名称 @@ -43,12 +43,6 @@ public class SisPersonLibImgVo implements Serializable { @ExcelProperty(value = "人像名称") private String imgName; - /** - * 图片编码 - */ - @ExcelProperty(value = "图片编码") - private String imgCode; - /** * 图片的存储地址 */ diff --git a/ruoyi-modules/Sis/src/main/java/org/dromara/sis/domain/vo/SisPersonLibVo.java b/ruoyi-modules/Sis/src/main/java/org/dromara/sis/domain/vo/SisPersonLibVo.java index bce51cfe..569928c0 100644 --- a/ruoyi-modules/Sis/src/main/java/org/dromara/sis/domain/vo/SisPersonLibVo.java +++ b/ruoyi-modules/Sis/src/main/java/org/dromara/sis/domain/vo/SisPersonLibVo.java @@ -31,12 +31,6 @@ public class SisPersonLibVo implements Serializable { @ExcelProperty(value = "主键id") private Long id; - /** - * 人员库编码 - */ - @ExcelProperty(value = "人员库编码") - private String libCode; - /** * 人员库名称 */ diff --git a/ruoyi-modules/Sis/src/main/java/org/dromara/sis/service/impl/SisPersonLibImgServiceImpl.java b/ruoyi-modules/Sis/src/main/java/org/dromara/sis/service/impl/SisPersonLibImgServiceImpl.java index a439cb30..d94c765b 100644 --- a/ruoyi-modules/Sis/src/main/java/org/dromara/sis/service/impl/SisPersonLibImgServiceImpl.java +++ b/ruoyi-modules/Sis/src/main/java/org/dromara/sis/service/impl/SisPersonLibImgServiceImpl.java @@ -76,9 +76,7 @@ public class SisPersonLibImgServiceImpl implements ISisPersonLibImgService { Map params = bo.getParams(); LambdaQueryWrapper lqw = Wrappers.lambdaQuery(); lqw.orderByAsc(SisPersonLibImg::getId); - lqw.eq(StringUtils.isNotBlank(bo.getLibCode()), SisPersonLibImg::getLibCode, bo.getLibCode()); lqw.like(StringUtils.isNotBlank(bo.getImgName()), SisPersonLibImg::getImgName, bo.getImgName()); - lqw.eq(StringUtils.isNotBlank(bo.getImgCode()), SisPersonLibImg::getImgCode, bo.getImgCode()); lqw.eq(StringUtils.isNotBlank(bo.getImgUrl()), SisPersonLibImg::getImgUrl, bo.getImgUrl()); lqw.eq(bo.getSex() != null, SisPersonLibImg::getSex, bo.getSex()); lqw.eq(StringUtils.isNotBlank(bo.getEmail()), SisPersonLibImg::getEmail, bo.getEmail()); @@ -99,9 +97,6 @@ public class SisPersonLibImgServiceImpl implements ISisPersonLibImgService { @Override public Boolean insertByBo(SisPersonLibImgBo bo) { SisPersonLibImg add = MapstructUtils.convert(bo, SisPersonLibImg.class); - // 生成图片编码 - String s = CodePrefixConstants.PERSONLIBIMG_CODE_PREFIX + IdUtil.getSnowflakeNextIdStr(); - add.setImgCode(s); validEntityBeforeSave(add); boolean flag = baseMapper.insert(add) > 0; if (flag) { From a259305f904689d27adba10dd353f660ac8569ff Mon Sep 17 00:00:00 2001 From: 15683799673 Date: Sat, 28 Jun 2025 01:28:31 +0800 Subject: [PATCH 08/21] =?UTF-8?q?=E4=BA=BA=E5=83=8F=E5=BA=93=E5=9B=BE?= =?UTF-8?q?=E7=89=87=E5=AE=8C=E6=88=90?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../org/dromara/sis/service/impl/SisPersonLibServiceImpl.java | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/ruoyi-modules/Sis/src/main/java/org/dromara/sis/service/impl/SisPersonLibServiceImpl.java b/ruoyi-modules/Sis/src/main/java/org/dromara/sis/service/impl/SisPersonLibServiceImpl.java index 3f76417d..44cb3d47 100644 --- a/ruoyi-modules/Sis/src/main/java/org/dromara/sis/service/impl/SisPersonLibServiceImpl.java +++ b/ruoyi-modules/Sis/src/main/java/org/dromara/sis/service/impl/SisPersonLibServiceImpl.java @@ -98,7 +98,6 @@ public class SisPersonLibServiceImpl implements ISisPersonLibService { Map params = bo.getParams(); LambdaQueryWrapper lqw = Wrappers.lambdaQuery(); lqw.orderByAsc(SisPersonLib::getId); - lqw.eq(StringUtils.isNotBlank(bo.getLibCode()), SisPersonLib::getLibCode, bo.getLibCode()); lqw.like(StringUtils.isNotBlank(bo.getLibName()), SisPersonLib::getLibName, bo.getLibName()); lqw.eq(StringUtils.isNotBlank(bo.getLibDesc()), SisPersonLib::getLibDesc, bo.getLibDesc()); lqw.eq(bo.getLibType() != null, SisPersonLib::getLibType, bo.getLibType()); @@ -118,9 +117,8 @@ public class SisPersonLibServiceImpl implements ISisPersonLibService { public Boolean insertByBo(SisPersonLibBo bo) { SisPersonLib add = MapstructUtils.convert(bo, SisPersonLib.class); Assert.notNull(add, "数据处理失败"); - add.setLibCode(CodePrefixConstants.PERSONLIB_CODE_PREFIX + IdUtil.getSnowflakeNextIdStr()); boolean flag = baseMapper.insert(add) > 0; - log.info("库[{}]开始写入系统,result={}", add.getLibCode(), flag); + log.info("库[{}]开始写入系统,result={}", add.getLibName(), flag); if (flag) { bo.setId(add.getId()); for (Long eqpId : bo.getEqpIds()) { From 0d8a4608ce197cf0a4a92ee4538c10aed6b9baf8 Mon Sep 17 00:00:00 2001 From: 15683799673 Date: Sat, 28 Jun 2025 01:35:17 +0800 Subject: [PATCH 09/21] =?UTF-8?q?=E4=BA=BA=E5=83=8F=E5=BA=93=E5=9B=BE?= =?UTF-8?q?=E7=89=87=E5=AE=8C=E6=88=90?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../impl/SisPersonLibImgServiceImpl.java | 23 ++++++++----------- 1 file changed, 10 insertions(+), 13 deletions(-) diff --git a/ruoyi-modules/Sis/src/main/java/org/dromara/sis/service/impl/SisPersonLibImgServiceImpl.java b/ruoyi-modules/Sis/src/main/java/org/dromara/sis/service/impl/SisPersonLibImgServiceImpl.java index ea39085a..7b2f2d1a 100644 --- a/ruoyi-modules/Sis/src/main/java/org/dromara/sis/service/impl/SisPersonLibImgServiceImpl.java +++ b/ruoyi-modules/Sis/src/main/java/org/dromara/sis/service/impl/SisPersonLibImgServiceImpl.java @@ -1,29 +1,27 @@ package org.dromara.sis.service.impl; import cn.hutool.core.lang.Assert; -import cn.hutool.core.util.IdUtil; -import org.dromara.common.core.constant.CodePrefixConstants; -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.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.SisPersonLibImg; import org.dromara.sis.domain.bo.AccessControlLibDeviceBo; import org.dromara.sis.domain.bo.SisLibDeviceImgRefBo; import org.dromara.sis.domain.bo.SisLibDeviceRefBo; +import org.dromara.sis.domain.bo.SisPersonLibImgBo; import org.dromara.sis.domain.vo.*; +import org.dromara.sis.mapper.SisPersonLibImgMapper; import org.dromara.sis.sdk.e8.VoucherControlService; 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.SisPersonLibImgBo; -import org.dromara.sis.domain.SisPersonLibImg; -import org.dromara.sis.mapper.SisPersonLibImgMapper; import java.nio.file.Files; import java.nio.file.Paths; @@ -113,7 +111,6 @@ public class SisPersonLibImgServiceImpl implements ISisPersonLibImgService { SisPersonLibImg add = MapstructUtils.convert(bo, SisPersonLibImg.class); Assert.notNull(add, "数据处理失败"); // 生成编码 - add.setImgCode(CodePrefixConstants.PERSON_LIB_IMAGE_CODE_PREFIX + IdUtil.getSnowflakeNextIdStr()); boolean flag = baseMapper.insert(add) > 0; log.info("图片[{}]开始写入系统,result={}", add.getImgName(), flag); if (flag) { @@ -239,10 +236,10 @@ public class SisPersonLibImgServiceImpl implements ISisPersonLibImgService { systemInfo.setIp(item.getEqpIp()); systemInfo.setPort(item.getEqpPort()); - if (item.getEqpLibType() == 1){ + if (item.getEqpLibType() == 1) { Boolean b = unViewAiBoxApi.batchDeletePerson(systemInfo, refImgIds); log.info("删除宇视图片[{}]完成,result={}", refImgIds, b); - }else { + } else { Boolean b = unViewAiBoxApi.deleteWorkClothes(systemInfo, item.getEqpLibId(), Arrays.stream(refImgIds).toList()); log.info("删除宇视服装[{}]完成,result={}", refImgIds, b); } From 62b1e1b803470b31082e89a2f552584ed456480c Mon Sep 17 00:00:00 2001 From: 15683799673 Date: Sat, 28 Jun 2025 02:41:55 +0800 Subject: [PATCH 10/21] 1 --- .../controller/TbCommunityController.java | 2 +- .../dromara/property/domain/TbBuilding.java | 89 ++------------ .../dromara/property/domain/TbCommunity.java | 15 +-- .../org/dromara/property/domain/TbFloor.java | 17 +-- .../org/dromara/property/domain/TbRoom.java | 23 ++-- .../org/dromara/property/domain/TbUnit.java | 15 +-- .../property/domain/bo/TbBuildingBo.java | 116 ++++-------------- .../property/domain/bo/TbCommunityBo.java | 14 +-- .../dromara/property/domain/bo/TbFloorBo.java | 18 +-- .../dromara/property/domain/bo/TbRoomBo.java | 21 ++-- .../dromara/property/domain/bo/TbUnitBo.java | 16 +-- .../property/domain/vo/TbBuildingVo.java | 90 ++------------ .../property/domain/vo/TbCommunityVo.java | 8 +- .../dromara/property/domain/vo/TbFloorVo.java | 16 +-- .../dromara/property/domain/vo/TbRoomVo.java | 20 ++- .../dromara/property/domain/vo/TbUnitVo.java | 16 +-- .../service/impl/TbBuildingServiceImpl.java | 15 +-- .../service/impl/TbCommunityServiceImpl.java | 45 ++++--- .../service/impl/TbFloorServiceImpl.java | 3 +- .../service/impl/TbRoomServiceImpl.java | 3 +- .../service/impl/TbUnitServiceImpl.java | 3 +- 21 files changed, 136 insertions(+), 429 deletions(-) diff --git a/ruoyi-modules/Property/src/main/java/org/dromara/property/controller/TbCommunityController.java b/ruoyi-modules/Property/src/main/java/org/dromara/property/controller/TbCommunityController.java index 0b0ba788..e734757c 100644 --- a/ruoyi-modules/Property/src/main/java/org/dromara/property/controller/TbCommunityController.java +++ b/ruoyi-modules/Property/src/main/java/org/dromara/property/controller/TbCommunityController.java @@ -62,7 +62,7 @@ public class TbCommunityController extends BaseController { * @return 树结构数据 */ @GetMapping("/tree/{level}") - public List> tree(@PathVariable("level") Integer level) { + public List> tree(@PathVariable("level") Integer level) { LoginUser loginUser = LoginHelper.getLoginUser(); Assert.notNull(loginUser, "获取账户信息失败!"); Assert.notEmpty(loginUser.getTenantId(), "获取租户信息失败"); diff --git a/ruoyi-modules/Property/src/main/java/org/dromara/property/domain/TbBuilding.java b/ruoyi-modules/Property/src/main/java/org/dromara/property/domain/TbBuilding.java index 307dea67..fb29237f 100644 --- a/ruoyi-modules/Property/src/main/java/org/dromara/property/domain/TbBuilding.java +++ b/ruoyi-modules/Property/src/main/java/org/dromara/property/domain/TbBuilding.java @@ -1,19 +1,19 @@ package org.dromara.property.domain; -import org.dromara.common.tenant.core.TenantEntity; -import com.baomidou.mybatisplus.annotation.*; +import com.baomidou.mybatisplus.annotation.TableId; +import com.baomidou.mybatisplus.annotation.TableName; import lombok.Data; import lombok.EqualsAndHashCode; -import java.util.Date; -import com.fasterxml.jackson.annotation.JsonFormat; +import org.dromara.common.tenant.core.TenantEntity; import java.io.Serial; +import java.util.Date; /** * 建筑对象 tb_building * * @author mocheng - * @date 2025-06-26 + * @date 2025-06-28 */ @Data @EqualsAndHashCode(callSuper = true) @@ -24,7 +24,7 @@ public class TbBuilding extends TenantEntity { private static final long serialVersionUID = 1L; /** - * + * */ @TableId(value = "id") private Long id; @@ -32,12 +32,7 @@ public class TbBuilding extends TenantEntity { /** * 园区编码 */ - private String communityCode; - - /** - * 建筑编码 - */ - private String buildingCode; + private String communityId; /** * 建筑名称 @@ -62,22 +57,22 @@ public class TbBuilding extends TenantEntity { /** * 总层数 */ - private Long floorCount; + private Integer floorCount; /** * 单元数 */ - private Long unitCount; + private Integer unitCount; /** * 建筑类型('1:住宅','2:商业','3:混合') */ - private Long buildType; + private Integer buildType; /** * 电梯数量 */ - private Long elevatorCount; + private Integer elevatorCount; /** * 竣工日期 @@ -99,70 +94,10 @@ public class TbBuilding extends TenantEntity { */ private String lat; - /** - * 产权性质(1:自持,2:承租,3:自持+承租,4:政府免费使用) - */ - private Long cqxz; - - /** - * 不动产编号 - */ - private String bdcbh; - - /** - * 产权编号 - */ - private String cqbh; - - /** - * 图地编号 - */ - private String tdbh; - - /** - * 建筑面积 - */ - private Long jzmj; - - /** - * 产权面积 - */ - private Long cqmj; - - /** - * 可租面积 - */ - private Long kzmj; - - /** - * 自用面积 - */ - private Long zymj; - - /** - * 配套面积 - */ - private Long ptmj; - - /** - * 车位面积 - */ - private Long cwmj; - - /** - * 标准层高 - */ - private Long bzcg; - /** * 排序字段 */ - private Long sort; - - /** - * 修改时间 - */ - private Date modifyTime; + private Integer sort; } diff --git a/ruoyi-modules/Property/src/main/java/org/dromara/property/domain/TbCommunity.java b/ruoyi-modules/Property/src/main/java/org/dromara/property/domain/TbCommunity.java index a4c072b8..d1a78927 100644 --- a/ruoyi-modules/Property/src/main/java/org/dromara/property/domain/TbCommunity.java +++ b/ruoyi-modules/Property/src/main/java/org/dromara/property/domain/TbCommunity.java @@ -13,7 +13,7 @@ import java.io.Serial; * 小区对象 tb_community * * @author mocheng - * @date 2025-06-26 + * @date 2025-06-28 */ @Data @EqualsAndHashCode(callSuper = true) @@ -24,7 +24,7 @@ public class TbCommunity extends TenantEntity { private static final long serialVersionUID = 1L; /** - * + * */ @TableId(value = "id") private Long id; @@ -34,15 +34,10 @@ public class TbCommunity extends TenantEntity { */ private String communityName; - /** - * 社区编码 - */ - private String communityCode; - /** * 社区类型 1:园区,2:小区 */ - private Long communityType; + private Integer communityType; /** * 省 @@ -77,10 +72,10 @@ public class TbCommunity extends TenantEntity { /** * 占地面积(平方米) */ - private Long area; + private Float area; /** - * + * */ private Date builtYear; diff --git a/ruoyi-modules/Property/src/main/java/org/dromara/property/domain/TbFloor.java b/ruoyi-modules/Property/src/main/java/org/dromara/property/domain/TbFloor.java index e351aad8..5b939433 100644 --- a/ruoyi-modules/Property/src/main/java/org/dromara/property/domain/TbFloor.java +++ b/ruoyi-modules/Property/src/main/java/org/dromara/property/domain/TbFloor.java @@ -11,7 +11,7 @@ import java.io.Serial; * 楼层对象 tb_floor * * @author mocheng - * @date 2025-06-26 + * @date 2025-06-28 */ @Data @EqualsAndHashCode(callSuper = true) @@ -30,12 +30,7 @@ public class TbFloor extends TenantEntity { /** * 单元编码 */ - private String unitCode; - - /** - * 楼层编码 - */ - private String floorCode; + private Long unitId; /** * 楼层数名称 @@ -45,22 +40,22 @@ public class TbFloor extends TenantEntity { /** * 楼层号 */ - private Long floorNumber; + private Integer floorNumber; /** * 楼层类型 */ - private Long floorType; + private Integer floorType; /** * 房间数量 */ - private Long roomCount; + private Integer roomCount; /** * 层高 */ - private Long floorHeight; + private Integer floorHeight; } diff --git a/ruoyi-modules/Property/src/main/java/org/dromara/property/domain/TbRoom.java b/ruoyi-modules/Property/src/main/java/org/dromara/property/domain/TbRoom.java index e3e04f5d..7ddffee8 100644 --- a/ruoyi-modules/Property/src/main/java/org/dromara/property/domain/TbRoom.java +++ b/ruoyi-modules/Property/src/main/java/org/dromara/property/domain/TbRoom.java @@ -11,7 +11,7 @@ import java.io.Serial; * 房间信息对象 tb_room * * @author mocheng - * @date 2025-06-26 + * @date 2025-06-28 */ @Data @EqualsAndHashCode(callSuper = true) @@ -22,7 +22,7 @@ public class TbRoom extends TenantEntity { private static final long serialVersionUID = 1L; /** - * + * */ @TableId(value = "id") private Long id; @@ -30,12 +30,7 @@ public class TbRoom extends TenantEntity { /** * 所属楼层ID */ - private String floorCode; - - /** - * 房间编码 - */ - private String roomCode; + private Long floorId; /** * 房间号(如101,202) @@ -45,32 +40,32 @@ public class TbRoom extends TenantEntity { /** * 房间类型('住宅','商铺','办公室','设备间','公共区域') */ - private Long roomType; + private Integer roomType; /** * 面积(平方米) */ - private Long area; + private Float area; /** * 户型(如2室1厅1卫) */ - private String layout; + private Integer layout; /** * 朝向('东','南','西','北','东南','东北','西南','西北') */ - private Long orientation; + private Integer orientation; /** * 是否可售 */ - private Long isForSale; + private Integer isForSale; /** * 状态('空置','已售','已租','自用') */ - private Long status; + private Integer status; } diff --git a/ruoyi-modules/Property/src/main/java/org/dromara/property/domain/TbUnit.java b/ruoyi-modules/Property/src/main/java/org/dromara/property/domain/TbUnit.java index 5a7efb46..c24eda27 100644 --- a/ruoyi-modules/Property/src/main/java/org/dromara/property/domain/TbUnit.java +++ b/ruoyi-modules/Property/src/main/java/org/dromara/property/domain/TbUnit.java @@ -11,7 +11,7 @@ import java.io.Serial; * 单元对象 tb_unit * * @author mocheng - * @date 2025-06-26 + * @date 2025-06-28 */ @Data @EqualsAndHashCode(callSuper = true) @@ -30,12 +30,7 @@ public class TbUnit extends TenantEntity { /** * 建筑名称 */ - private String buildingCode; - - /** - * 单元编码 - */ - private String unitCode; + private Long buildingId; /** * 单元名称 @@ -45,17 +40,17 @@ public class TbUnit extends TenantEntity { /** * 单元层数 */ - private Long floorCount; + private Integer floorCount; /** * 单元户数 */ - private Long householdCount; + private Integer householdCount; /** * 楼梯数量 */ - private Long stairCount; + private Integer stairCount; } 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 cbe3e642..607d7eb9 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 @@ -1,21 +1,22 @@ package org.dromara.property.domain.bo; -import org.dromara.property.domain.TbBuilding; -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.property.domain.TbBuilding; + import java.util.Date; -import com.fasterxml.jackson.annotation.JsonFormat; /** * 建筑业务对象 tb_building * * @author mocheng - * @date 2025-06-26 + * @date 2025-06-28 */ @Data @EqualsAndHashCode(callSuper = true) @@ -23,66 +24,60 @@ import com.fasterxml.jackson.annotation.JsonFormat; public class TbBuildingBo extends BaseEntity { /** - * + * */ - @NotNull(message = "不能为空", groups = { EditGroup.class }) + @NotNull(message = "不能为空", groups = {EditGroup.class}) private Long id; /** * 园区编码 */ - @NotBlank(message = "园区编码不能为空", groups = { AddGroup.class, EditGroup.class }) - private String communityCode; - - /** - * 建筑编码 - */ - @NotBlank(message = "建筑编码不能为空", groups = { AddGroup.class, EditGroup.class }) - private String buildingCode; + @NotBlank(message = "园区编码不能为空", groups = {AddGroup.class, EditGroup.class}) + private String communityId; /** * 建筑名称 */ - @NotBlank(message = "建筑名称不能为空", groups = { AddGroup.class, EditGroup.class }) + @NotBlank(message = "建筑名称不能为空", groups = {AddGroup.class, EditGroup.class}) private String buildingName; /** * 省 */ - @NotBlank(message = "省不能为空", groups = { AddGroup.class, EditGroup.class }) + @NotBlank(message = "省不能为空", groups = {AddGroup.class, EditGroup.class}) private String province; /** * 市 */ - @NotBlank(message = "市不能为空", groups = { AddGroup.class, EditGroup.class }) + @NotBlank(message = "市不能为空", groups = {AddGroup.class, EditGroup.class}) private String city; /** * 区 */ - @NotBlank(message = "区不能为空", groups = { AddGroup.class, EditGroup.class }) + @NotBlank(message = "区不能为空", groups = {AddGroup.class, EditGroup.class}) private String district; /** * 总层数 */ - private Long floorCount; + private Integer floorCount; /** * 单元数 */ - private Long unitCount; + private Integer unitCount; /** * 建筑类型('1:住宅','2:商业','3:混合') */ - private Long buildType; + private Integer buildType; /** * 电梯数量 */ - private Long elevatorCount; + private Integer elevatorCount; /** * 竣工日期 @@ -92,87 +87,24 @@ public class TbBuildingBo extends BaseEntity { /** * 地址 */ - @NotBlank(message = "地址不能为空", groups = { AddGroup.class, EditGroup.class }) + @NotBlank(message = "地址不能为空", groups = {AddGroup.class, EditGroup.class}) private String addr; /** * 经度 */ - @NotBlank(message = "经度不能为空", groups = { AddGroup.class, EditGroup.class }) + @NotBlank(message = "经度不能为空", groups = {AddGroup.class, EditGroup.class}) private String lon; /** * 维度 */ - @NotBlank(message = "维度不能为空", groups = { AddGroup.class, EditGroup.class }) + @NotBlank(message = "维度不能为空", groups = {AddGroup.class, EditGroup.class}) private String lat; - /** - * 产权性质(1:自持,2:承租,3:自持+承租,4:政府免费使用) - */ - private Long cqxz; - - /** - * 不动产编号 - */ - private String bdcbh; - - /** - * 产权编号 - */ - private String cqbh; - - /** - * 图地编号 - */ - private String tdbh; - - /** - * 建筑面积 - */ - @NotNull(message = "建筑面积不能为空", groups = { AddGroup.class, EditGroup.class }) - private Long jzmj; - - /** - * 产权面积 - */ - @NotNull(message = "产权面积不能为空", groups = { AddGroup.class, EditGroup.class }) - private Long cqmj; - - /** - * 可租面积 - */ - private Long kzmj; - - /** - * 自用面积 - */ - private Long zymj; - - /** - * 配套面积 - */ - private Long ptmj; - - /** - * 车位面积 - */ - private Long cwmj; - - /** - * 标准层高 - */ - private Long bzcg; - /** * 排序字段 */ - private Long sort; - - /** - * 修改时间 - */ - private Date modifyTime; - + private Integer sort; } diff --git a/ruoyi-modules/Property/src/main/java/org/dromara/property/domain/bo/TbCommunityBo.java b/ruoyi-modules/Property/src/main/java/org/dromara/property/domain/bo/TbCommunityBo.java index be9c0f03..ffe15102 100644 --- a/ruoyi-modules/Property/src/main/java/org/dromara/property/domain/bo/TbCommunityBo.java +++ b/ruoyi-modules/Property/src/main/java/org/dromara/property/domain/bo/TbCommunityBo.java @@ -15,7 +15,7 @@ import com.fasterxml.jackson.annotation.JsonFormat; * 小区业务对象 tb_community * * @author mocheng - * @date 2025-06-26 + * @date 2025-06-28 */ @Data @EqualsAndHashCode(callSuper = true) @@ -23,7 +23,7 @@ import com.fasterxml.jackson.annotation.JsonFormat; public class TbCommunityBo extends BaseEntity { /** - * + * */ @NotNull(message = "不能为空", groups = { EditGroup.class }) private Long id; @@ -34,17 +34,11 @@ public class TbCommunityBo extends BaseEntity { @NotBlank(message = "社区名称不能为空", groups = { AddGroup.class, EditGroup.class }) private String communityName; - /** - * 社区编码 - */ - @NotBlank(message = "社区编码不能为空", groups = { AddGroup.class, EditGroup.class }) - private String communityCode; - /** * 社区类型 1:园区,2:小区 */ @NotNull(message = "社区类型 1:园区,2:小区不能为空", groups = { AddGroup.class, EditGroup.class }) - private Long communityType; + private Integer communityType; /** * 省 @@ -88,7 +82,7 @@ public class TbCommunityBo extends BaseEntity { private Long area; /** - * + * */ private Date builtYear; diff --git a/ruoyi-modules/Property/src/main/java/org/dromara/property/domain/bo/TbFloorBo.java b/ruoyi-modules/Property/src/main/java/org/dromara/property/domain/bo/TbFloorBo.java index 41330c30..27f717ed 100644 --- a/ruoyi-modules/Property/src/main/java/org/dromara/property/domain/bo/TbFloorBo.java +++ b/ruoyi-modules/Property/src/main/java/org/dromara/property/domain/bo/TbFloorBo.java @@ -13,7 +13,7 @@ import jakarta.validation.constraints.*; * 楼层业务对象 tb_floor * * @author mocheng - * @date 2025-06-26 + * @date 2025-06-28 */ @Data @EqualsAndHashCode(callSuper = true) @@ -30,13 +30,7 @@ public class TbFloorBo extends BaseEntity { * 单元编码 */ @NotBlank(message = "单元编码不能为空", groups = { AddGroup.class, EditGroup.class }) - private String unitCode; - - /** - * 楼层编码 - */ - @NotNull(message = "楼层编码不能为空", groups = { AddGroup.class, EditGroup.class }) - private String floorCode; + private Long unitId; /** * 楼层数名称 @@ -48,22 +42,22 @@ public class TbFloorBo extends BaseEntity { * 楼层号 */ @NotNull(message = "楼层号不能为空", groups = { AddGroup.class, EditGroup.class }) - private Long floorNumber; + private Integer floorNumber; /** * 楼层类型 */ - private Long floorType; + private Integer floorType; /** * 房间数量 */ - private Long roomCount; + private Integer roomCount; /** * 层高 */ - private Long floorHeight; + private Integer floorHeight; } diff --git a/ruoyi-modules/Property/src/main/java/org/dromara/property/domain/bo/TbRoomBo.java b/ruoyi-modules/Property/src/main/java/org/dromara/property/domain/bo/TbRoomBo.java index db7e5997..dd885b05 100644 --- a/ruoyi-modules/Property/src/main/java/org/dromara/property/domain/bo/TbRoomBo.java +++ b/ruoyi-modules/Property/src/main/java/org/dromara/property/domain/bo/TbRoomBo.java @@ -13,7 +13,7 @@ import jakarta.validation.constraints.*; * 房间信息业务对象 tb_room * * @author mocheng - * @date 2025-06-26 + * @date 2025-06-28 */ @Data @EqualsAndHashCode(callSuper = true) @@ -21,7 +21,7 @@ import jakarta.validation.constraints.*; public class TbRoomBo extends BaseEntity { /** - * + * */ @NotNull(message = "不能为空", groups = { EditGroup.class }) private Long id; @@ -30,12 +30,7 @@ public class TbRoomBo extends BaseEntity { * 所属楼层ID */ @NotBlank(message = "所属楼层ID不能为空", groups = { AddGroup.class, EditGroup.class }) - private String floorCode; - - /** - * 房间编码 - */ - private String roomCode; + private Long floorId; /** * 房间号(如101,202) @@ -46,12 +41,12 @@ public class TbRoomBo extends BaseEntity { /** * 房间类型('住宅','商铺','办公室','设备间','公共区域') */ - private Long roomType; + private Integer roomType; /** * 面积(平方米) */ - private Long area; + private Float area; /** * 户型(如2室1厅1卫) @@ -61,17 +56,17 @@ public class TbRoomBo extends BaseEntity { /** * 朝向('东','南','西','北','东南','东北','西南','西北') */ - private Long orientation; + private Integer orientation; /** * 是否可售 */ - private Long isForSale; + private Integer isForSale; /** * 状态('空置','已售','已租','自用') */ - private Long status; + private Integer status; } diff --git a/ruoyi-modules/Property/src/main/java/org/dromara/property/domain/bo/TbUnitBo.java b/ruoyi-modules/Property/src/main/java/org/dromara/property/domain/bo/TbUnitBo.java index effc1627..469f985d 100644 --- a/ruoyi-modules/Property/src/main/java/org/dromara/property/domain/bo/TbUnitBo.java +++ b/ruoyi-modules/Property/src/main/java/org/dromara/property/domain/bo/TbUnitBo.java @@ -13,7 +13,7 @@ import jakarta.validation.constraints.*; * 单元业务对象 tb_unit * * @author mocheng - * @date 2025-06-26 + * @date 2025-06-28 */ @Data @EqualsAndHashCode(callSuper = true) @@ -30,13 +30,7 @@ public class TbUnitBo extends BaseEntity { * 建筑名称 */ @NotBlank(message = "建筑名称不能为空", groups = { AddGroup.class, EditGroup.class }) - private String buildingCode; - - /** - * 单元编码 - */ - @NotBlank(message = "单元编码不能为空", groups = { AddGroup.class, EditGroup.class }) - private String unitCode; + private Long buildingId; /** * 单元名称 @@ -47,17 +41,17 @@ public class TbUnitBo extends BaseEntity { /** * 单元层数 */ - private Long floorCount; + private Integer floorCount; /** * 单元户数 */ - private Long householdCount; + private Integer householdCount; /** * 楼梯数量 */ - private Long stairCount; + private Integer stairCount; } diff --git a/ruoyi-modules/Property/src/main/java/org/dromara/property/domain/vo/TbBuildingVo.java b/ruoyi-modules/Property/src/main/java/org/dromara/property/domain/vo/TbBuildingVo.java index 9abd2edd..7579d03f 100644 --- a/ruoyi-modules/Property/src/main/java/org/dromara/property/domain/vo/TbBuildingVo.java +++ b/ruoyi-modules/Property/src/main/java/org/dromara/property/domain/vo/TbBuildingVo.java @@ -20,7 +20,7 @@ import java.util.Date; * 建筑视图对象 tb_building * * @author mocheng - * @date 2025-06-26 + * @date 2025-06-28 */ @Data @ExcelIgnoreUnannotated @@ -30,23 +30,14 @@ public class TbBuildingVo implements Serializable { @Serial private static final long serialVersionUID = 1L; - /** - * - */ - @ExcelProperty(value = "") + @ExcelProperty(value = "主键id") private Long id; /** * 园区编码 */ @ExcelProperty(value = "园区编码") - private String communityCode; - - /** - * 建筑编码 - */ - @ExcelProperty(value = "建筑编码") - private String buildingCode; + private Long communityId; /** * 建筑名称 @@ -82,19 +73,19 @@ public class TbBuildingVo implements Serializable { * 单元数 */ @ExcelProperty(value = "单元数") - private Long unitCount; + private Integer unitCount; /** * 建筑类型('1:住宅','2:商业','3:混合') */ @ExcelProperty(value = "建筑类型('1:住宅','2:商业','3:混合')") - private Long buildType; + private Integer buildType; /** * 电梯数量 */ @ExcelProperty(value = "电梯数量") - private Long elevatorCount; + private Integer elevatorCount; /** * 竣工日期 @@ -124,67 +115,7 @@ public class TbBuildingVo implements Serializable { * 产权性质(1:自持,2:承租,3:自持+承租,4:政府免费使用) */ @ExcelProperty(value = "产权性质(1:自持,2:承租,3:自持+承租,4:政府免费使用)") - private Long cqxz; - - /** - * 不动产编号 - */ - @ExcelProperty(value = "不动产编号") - private String bdcbh; - - /** - * 产权编号 - */ - @ExcelProperty(value = "产权编号") - private String cqbh; - - /** - * 图地编号 - */ - @ExcelProperty(value = "图地编号") - private String tdbh; - - /** - * 建筑面积 - */ - @ExcelProperty(value = "建筑面积") - private Long jzmj; - - /** - * 产权面积 - */ - @ExcelProperty(value = "产权面积") - private Long cqmj; - - /** - * 可租面积 - */ - @ExcelProperty(value = "可租面积") - private Long kzmj; - - /** - * 自用面积 - */ - @ExcelProperty(value = "自用面积") - private Long zymj; - - /** - * 配套面积 - */ - @ExcelProperty(value = "配套面积") - private Long ptmj; - - /** - * 车位面积 - */ - @ExcelProperty(value = "车位面积") - private Long cwmj; - - /** - * 标准层高 - */ - @ExcelProperty(value = "标准层高") - private Long bzcg; + private Integer cqxz; /** * 排序字段 @@ -192,11 +123,4 @@ public class TbBuildingVo implements Serializable { @ExcelProperty(value = "排序字段") private Long sort; - /** - * 修改时间 - */ - @ExcelProperty(value = "修改时间") - private Date modifyTime; - - } diff --git a/ruoyi-modules/Property/src/main/java/org/dromara/property/domain/vo/TbCommunityVo.java b/ruoyi-modules/Property/src/main/java/org/dromara/property/domain/vo/TbCommunityVo.java index a53cfa54..f8f9acc4 100644 --- a/ruoyi-modules/Property/src/main/java/org/dromara/property/domain/vo/TbCommunityVo.java +++ b/ruoyi-modules/Property/src/main/java/org/dromara/property/domain/vo/TbCommunityVo.java @@ -20,7 +20,7 @@ import java.util.Date; * 小区视图对象 tb_community * * @author mocheng - * @date 2025-06-26 + * @date 2025-06-28 */ @Data @ExcelIgnoreUnannotated @@ -42,12 +42,6 @@ public class TbCommunityVo implements Serializable { @ExcelProperty(value = "社区名称") private String communityName; - /** - * 社区编码 - */ - @ExcelProperty(value = "社区编码") - private String communityCode; - /** * 社区类型 1:园区,2:小区 */ diff --git a/ruoyi-modules/Property/src/main/java/org/dromara/property/domain/vo/TbFloorVo.java b/ruoyi-modules/Property/src/main/java/org/dromara/property/domain/vo/TbFloorVo.java index c91a155d..247115d4 100644 --- a/ruoyi-modules/Property/src/main/java/org/dromara/property/domain/vo/TbFloorVo.java +++ b/ruoyi-modules/Property/src/main/java/org/dromara/property/domain/vo/TbFloorVo.java @@ -18,7 +18,7 @@ import java.util.Date; * 楼层视图对象 tb_floor * * @author mocheng - * @date 2025-06-26 + * @date 2025-06-28 */ @Data @ExcelIgnoreUnannotated @@ -38,13 +38,7 @@ public class TbFloorVo implements Serializable { * 单元编码 */ @ExcelProperty(value = "单元编码") - private String unitCode; - - /** - * 楼层编码 - */ - @ExcelProperty(value = "楼层编码") - private String floorCode; + private Long unitId; /** * 楼层数名称 @@ -62,19 +56,19 @@ public class TbFloorVo implements Serializable { * 楼层类型 */ @ExcelProperty(value = "楼层类型") - private Long floorType; + private Integer floorType; /** * 房间数量 */ @ExcelProperty(value = "房间数量") - private Long roomCount; + private Integer roomCount; /** * 层高 */ @ExcelProperty(value = "层高") - private Long floorHeight; + private Integer floorHeight; } diff --git a/ruoyi-modules/Property/src/main/java/org/dromara/property/domain/vo/TbRoomVo.java b/ruoyi-modules/Property/src/main/java/org/dromara/property/domain/vo/TbRoomVo.java index 4e15fe32..b7ca0693 100644 --- a/ruoyi-modules/Property/src/main/java/org/dromara/property/domain/vo/TbRoomVo.java +++ b/ruoyi-modules/Property/src/main/java/org/dromara/property/domain/vo/TbRoomVo.java @@ -18,7 +18,7 @@ import java.util.Date; * 房间信息视图对象 tb_room * * @author mocheng - * @date 2025-06-26 + * @date 2025-06-28 */ @Data @ExcelIgnoreUnannotated @@ -29,7 +29,7 @@ public class TbRoomVo implements Serializable { private static final long serialVersionUID = 1L; /** - * + * */ @ExcelProperty(value = "") private Long id; @@ -38,13 +38,7 @@ public class TbRoomVo implements Serializable { * 所属楼层ID */ @ExcelProperty(value = "所属楼层ID") - private String floorCode; - - /** - * 房间编码 - */ - @ExcelProperty(value = "房间编码") - private String roomCode; + private Long floorId; /** * 房间号(如101,202) @@ -56,7 +50,7 @@ public class TbRoomVo implements Serializable { * 房间类型('住宅','商铺','办公室','设备间','公共区域') */ @ExcelProperty(value = "房间类型('住宅','商铺','办公室','设备间','公共区域')") - private Long roomType; + private Integer roomType; /** * 面积(平方米) @@ -74,20 +68,20 @@ public class TbRoomVo implements Serializable { * 朝向('东','南','西','北','东南','东北','西南','西北') */ @ExcelProperty(value = "朝向('东','南','西','北','东南','东北','西南','西北')") - private Long orientation; + private Integer orientation; /** * 是否可售 */ @ExcelProperty(value = "是否可售") - private Long isForSale; + private Integer isForSale; /** * 状态('空置','已售','已租','自用') */ @ExcelProperty(value = "状态", converter = ExcelDictConvert.class) @ExcelDictFormat(readConverterExp = "'=空置','已售','已租','自用'") - private Long status; + private Integer status; } diff --git a/ruoyi-modules/Property/src/main/java/org/dromara/property/domain/vo/TbUnitVo.java b/ruoyi-modules/Property/src/main/java/org/dromara/property/domain/vo/TbUnitVo.java index 246c37b7..22a12701 100644 --- a/ruoyi-modules/Property/src/main/java/org/dromara/property/domain/vo/TbUnitVo.java +++ b/ruoyi-modules/Property/src/main/java/org/dromara/property/domain/vo/TbUnitVo.java @@ -18,7 +18,7 @@ import java.util.Date; * 单元视图对象 tb_unit * * @author mocheng - * @date 2025-06-26 + * @date 2025-06-28 */ @Data @ExcelIgnoreUnannotated @@ -38,13 +38,7 @@ public class TbUnitVo implements Serializable { * 建筑名称 */ @ExcelProperty(value = "建筑名称") - private String buildingCode; - - /** - * 单元编码 - */ - @ExcelProperty(value = "单元编码") - private String unitCode; + private Long buildingId; /** * 单元名称 @@ -56,19 +50,19 @@ public class TbUnitVo implements Serializable { * 单元层数 */ @ExcelProperty(value = "单元层数") - private Long floorCount; + private Integer floorCount; /** * 单元户数 */ @ExcelProperty(value = "单元户数") - private Long householdCount; + private Integer householdCount; /** * 楼梯数量 */ @ExcelProperty(value = "楼梯数量") - private Long stairCount; + private Integer stairCount; } 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 7dd1bbb4..119fe5d4 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 @@ -74,8 +74,7 @@ public class TbBuildingServiceImpl implements ITbBuildingService { Map params = bo.getParams(); LambdaQueryWrapper lqw = Wrappers.lambdaQuery(); lqw.orderByAsc(TbBuilding::getId); - lqw.eq(StringUtils.isNotBlank(bo.getCommunityCode()), TbBuilding::getCommunityCode, bo.getCommunityCode()); - lqw.eq(StringUtils.isNotBlank(bo.getBuildingCode()), TbBuilding::getBuildingCode, bo.getBuildingCode()); + lqw.eq(bo.getCommunityId() != null, TbBuilding::getCommunityId, bo.getCommunityId()); lqw.like(StringUtils.isNotBlank(bo.getBuildingName()), TbBuilding::getBuildingName, bo.getBuildingName()); lqw.eq(StringUtils.isNotBlank(bo.getProvince()), TbBuilding::getProvince, bo.getProvince()); lqw.eq(StringUtils.isNotBlank(bo.getCity()), TbBuilding::getCity, bo.getCity()); @@ -88,19 +87,7 @@ public class TbBuildingServiceImpl implements ITbBuildingService { lqw.eq(StringUtils.isNotBlank(bo.getAddr()), TbBuilding::getAddr, bo.getAddr()); lqw.eq(StringUtils.isNotBlank(bo.getLon()), TbBuilding::getLon, bo.getLon()); lqw.eq(StringUtils.isNotBlank(bo.getLat()), TbBuilding::getLat, bo.getLat()); - lqw.eq(bo.getCqxz() != null, TbBuilding::getCqxz, bo.getCqxz()); - lqw.eq(StringUtils.isNotBlank(bo.getBdcbh()), TbBuilding::getBdcbh, bo.getBdcbh()); - lqw.eq(StringUtils.isNotBlank(bo.getCqbh()), TbBuilding::getCqbh, bo.getCqbh()); - lqw.eq(StringUtils.isNotBlank(bo.getTdbh()), TbBuilding::getTdbh, bo.getTdbh()); - lqw.eq(bo.getJzmj() != null, TbBuilding::getJzmj, bo.getJzmj()); - lqw.eq(bo.getCqmj() != null, TbBuilding::getCqmj, bo.getCqmj()); - lqw.eq(bo.getKzmj() != null, TbBuilding::getKzmj, bo.getKzmj()); - lqw.eq(bo.getZymj() != null, TbBuilding::getZymj, bo.getZymj()); - lqw.eq(bo.getPtmj() != null, TbBuilding::getPtmj, bo.getPtmj()); - lqw.eq(bo.getCwmj() != null, TbBuilding::getCwmj, bo.getCwmj()); - lqw.eq(bo.getBzcg() != null, TbBuilding::getBzcg, bo.getBzcg()); lqw.eq(bo.getSort() != null, TbBuilding::getSort, bo.getSort()); - lqw.eq(bo.getModifyTime() != null, TbBuilding::getModifyTime, bo.getModifyTime()); return lqw; } 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 a555fc9a..cdbfe1bf 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 @@ -41,18 +41,18 @@ public class TbCommunityServiceImpl implements ITbCommunityService { private final ITbRoomService roomService; @Override - public List> tree(Integer level, String tenantId) { + public List> tree(Integer level, String tenantId) { // 默认加载社区树 List tbCommunityVos = queryByTenantId(tenantId); if (tbCommunityVos == null || tbCommunityVos.isEmpty()) { return new ArrayList<>(); } - List> community = new ArrayList<>(tbCommunityVos.stream().map(item -> { - TreeNode node = new TreeNode<>(); + List> community = new ArrayList<>(tbCommunityVos.stream().map(item -> { + TreeNode node = new TreeNode<>(); node.setChildren(new ArrayList<>()); - node.setCode(item.getCommunityCode()); + node.setCode(item.getId()); node.setLabel(item.getCommunityName()); - node.setParentCode(""); + node.setParentCode(0L); node.setLevel(1); return node; }).toList()); @@ -62,12 +62,12 @@ public class TbCommunityServiceImpl implements ITbCommunityService { if (level >= 2) { List vos = buildingService.queryByTenantId(tenantId); if (vos != null && !vos.isEmpty()) { - List> list = vos.stream().map(item -> { - TreeNode node = new TreeNode<>(); + List> list = vos.stream().map(item -> { + TreeNode node = new TreeNode<>(); node.setChildren(new ArrayList<>()); - node.setCode(item.getBuildingCode()); + node.setCode(item.getId()); node.setLabel(item.getBuildingName()); - node.setParentCode(item.getCommunityCode()); + node.setParentCode(item.getCommunityId()); node.setLevel(2); return node; }).toList(); @@ -77,12 +77,12 @@ public class TbCommunityServiceImpl implements ITbCommunityService { if (level >= 3) { List vos = unitService.queryByTenantId(tenantId); if (vos != null && !vos.isEmpty()) { - List> list = vos.stream().map(item -> { - TreeNode node = new TreeNode<>(); + List> list = vos.stream().map(item -> { + TreeNode node = new TreeNode<>(); node.setChildren(new ArrayList<>()); - node.setCode(item.getUnitCode()); + node.setCode(item.getId()); node.setLabel(item.getUnitName()); - node.setParentCode(item.getBuildingCode()); + node.setParentCode(item.getBuildingId()); node.setLevel(3); return node; }).toList(); @@ -92,12 +92,12 @@ public class TbCommunityServiceImpl implements ITbCommunityService { if (level >= 4) { List vos = floorService.queryByTenantId(tenantId); if (vos != null && !vos.isEmpty()) { - List> list = vos.stream().map(item -> { - TreeNode node = new TreeNode<>(); + List> list = vos.stream().map(item -> { + TreeNode node = new TreeNode<>(); node.setChildren(new ArrayList<>()); - node.setCode(item.getFloorCode()); + node.setCode(item.getId()); node.setLabel(item.getFloorName()); - node.setParentCode(item.getUnitCode()); + node.setParentCode(item.getUnitId()); node.setLevel(4); return node; }).toList(); @@ -108,19 +108,19 @@ public class TbCommunityServiceImpl implements ITbCommunityService { if (level >= 5) { List vos = roomService.queryByTenantId(tenantId); if (vos != null && !vos.isEmpty()) { - List> list = vos.stream().map(item -> { - TreeNode node = new TreeNode<>(); + List> list = vos.stream().map(item -> { + TreeNode node = new TreeNode<>(); node.setChildren(new ArrayList<>()); - node.setCode(item.getRoomCode()); + node.setCode(item.getId()); node.setLabel(item.getRoomNumber()); - node.setParentCode(item.getFloorCode()); + node.setParentCode(item.getFloorId()); node.setLevel(5); return node; }).toList(); community.addAll(list); } } - return TreeUtils.build(community, ""); + return TreeUtils.build(community, 0L); } @Override @@ -172,7 +172,6 @@ public class TbCommunityServiceImpl implements ITbCommunityService { LambdaQueryWrapper lqw = Wrappers.lambdaQuery(); lqw.orderByAsc(TbCommunity::getId); lqw.like(StringUtils.isNotBlank(bo.getCommunityName()), TbCommunity::getCommunityName, bo.getCommunityName()); - lqw.eq(StringUtils.isNotBlank(bo.getCommunityCode()), TbCommunity::getCommunityCode, bo.getCommunityCode()); lqw.eq(bo.getCommunityType() != null, TbCommunity::getCommunityType, bo.getCommunityType()); lqw.eq(StringUtils.isNotBlank(bo.getProvince()), TbCommunity::getProvince, bo.getProvince()); lqw.eq(StringUtils.isNotBlank(bo.getCity()), TbCommunity::getCity, bo.getCity()); 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 8e527889..f86daa99 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 @@ -74,10 +74,9 @@ public class TbFloorServiceImpl implements ITbFloorService { Map params = bo.getParams(); LambdaQueryWrapper lqw = Wrappers.lambdaQuery(); lqw.orderByAsc(TbFloor::getId); - lqw.eq(StringUtils.isNotBlank(bo.getUnitCode()), TbFloor::getUnitCode, bo.getUnitCode()); - lqw.eq(bo.getFloorCode() != null, TbFloor::getFloorCode, bo.getFloorCode()); lqw.like(StringUtils.isNotBlank(bo.getFloorName()), TbFloor::getFloorName, bo.getFloorName()); lqw.eq(bo.getFloorNumber() != null, TbFloor::getFloorNumber, bo.getFloorNumber()); + lqw.eq(bo.getUnitId() != null, TbFloor::getUnitId, bo.getUnitId()); lqw.eq(bo.getFloorType() != null, TbFloor::getFloorType, bo.getFloorType()); lqw.eq(bo.getRoomCount() != null, TbFloor::getRoomCount, bo.getRoomCount()); lqw.eq(bo.getFloorHeight() != null, TbFloor::getFloorHeight, bo.getFloorHeight()); 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 932024a4..0f010082 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 @@ -74,10 +74,9 @@ public class TbRoomServiceImpl implements ITbRoomService { Map params = bo.getParams(); LambdaQueryWrapper lqw = Wrappers.lambdaQuery(); lqw.orderByAsc(TbRoom::getId); - lqw.eq(StringUtils.isNotBlank(bo.getFloorCode()), TbRoom::getFloorCode, bo.getFloorCode()); - lqw.eq(StringUtils.isNotBlank(bo.getRoomCode()), TbRoom::getRoomCode, bo.getRoomCode()); lqw.eq(StringUtils.isNotBlank(bo.getRoomNumber()), TbRoom::getRoomNumber, bo.getRoomNumber()); lqw.eq(bo.getRoomType() != null, TbRoom::getRoomType, bo.getRoomType()); + lqw.eq(bo.getFloorId() != null, TbRoom::getFloorId, bo.getFloorId()); lqw.eq(bo.getArea() != null, TbRoom::getArea, bo.getArea()); lqw.eq(StringUtils.isNotBlank(bo.getLayout()), TbRoom::getLayout, bo.getLayout()); lqw.eq(bo.getOrientation() != null, TbRoom::getOrientation, bo.getOrientation()); 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 37d759ef..1f5d1596 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 @@ -74,10 +74,9 @@ public class TbUnitServiceImpl implements ITbUnitService { Map params = bo.getParams(); LambdaQueryWrapper lqw = Wrappers.lambdaQuery(); lqw.orderByAsc(TbUnit::getId); - lqw.eq(StringUtils.isNotBlank(bo.getBuildingCode()), TbUnit::getBuildingCode, bo.getBuildingCode()); - lqw.eq(StringUtils.isNotBlank(bo.getUnitCode()), TbUnit::getUnitCode, bo.getUnitCode()); lqw.like(StringUtils.isNotBlank(bo.getUnitName()), TbUnit::getUnitName, bo.getUnitName()); lqw.eq(bo.getFloorCount() != null, TbUnit::getFloorCount, bo.getFloorCount()); + lqw.eq(bo.getBuildingId() != null, TbUnit::getBuildingId, bo.getBuildingId()); lqw.eq(bo.getHouseholdCount() != null, TbUnit::getHouseholdCount, bo.getHouseholdCount()); lqw.eq(bo.getStairCount() != null, TbUnit::getStairCount, bo.getStairCount()); return lqw; From 3560c80c4165ed43d5e7634ac6313d14b7b263f0 Mon Sep 17 00:00:00 2001 From: zcxlsm Date: Sat, 28 Jun 2025 10:23:42 +0800 Subject: [PATCH 11/21] =?UTF-8?q?feat(sis):=20=20-=20=E4=BF=AE=E6=94=B9?= =?UTF-8?q?=E4=BA=BA=E5=83=8F=E5=9B=BE=E7=89=87?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../sis/sdk/unview/UnViewAiBoxApi.java | 2 +- .../unview/service/UnViewAiBoxApiService.java | 4 +- .../impl/SisAccessControlServiceImpl.java | 76 ++++++------ .../impl/SisPersonLibImgServiceImpl.java | 114 +++++++++++------- 4 files changed, 112 insertions(+), 84 deletions(-) diff --git a/ruoyi-modules/Sis/src/main/java/org/dromara/sis/sdk/unview/UnViewAiBoxApi.java b/ruoyi-modules/Sis/src/main/java/org/dromara/sis/sdk/unview/UnViewAiBoxApi.java index 5b2f3384..5b39585e 100644 --- a/ruoyi-modules/Sis/src/main/java/org/dromara/sis/sdk/unview/UnViewAiBoxApi.java +++ b/ruoyi-modules/Sis/src/main/java/org/dromara/sis/sdk/unview/UnViewAiBoxApi.java @@ -220,7 +220,7 @@ public interface UnViewAiBoxApi { * @param imageBase64 工服图片base64 * @return 返回工服的人员id */ - Integer addWorkClothes(UvSystemInfo systemInfo, Integer libId, String imageBase64); + WorkClothesInfo addWorkClothes(UvSystemInfo systemInfo, Integer libId, String imageBase64); /** diff --git a/ruoyi-modules/Sis/src/main/java/org/dromara/sis/sdk/unview/service/UnViewAiBoxApiService.java b/ruoyi-modules/Sis/src/main/java/org/dromara/sis/sdk/unview/service/UnViewAiBoxApiService.java index 59d1be00..186fc6ed 100644 --- a/ruoyi-modules/Sis/src/main/java/org/dromara/sis/sdk/unview/service/UnViewAiBoxApiService.java +++ b/ruoyi-modules/Sis/src/main/java/org/dromara/sis/sdk/unview/service/UnViewAiBoxApiService.java @@ -218,11 +218,11 @@ public class UnViewAiBoxApiService implements UnViewAiBoxApi { /*--------------------------------------------------------------------工服 ---------------------------------------------------------------------------*/ @Override - public Integer addWorkClothes(UvSystemInfo uvSystemInfo, Integer libId, String imageBase64) { + public WorkClothesInfo addWorkClothes(UvSystemInfo uvSystemInfo, Integer libId, String imageBase64) { JSONObject params = new JSONObject(); params.put("lib_id", libId); params.put("image_base64", imageBase64); - UniViewResult request = uniViewHttp.request(uvSystemInfo, UniViewApiEnum.WORK_CLOTHES_ADD, params, Integer.class); + UniViewResult request = uniViewHttp.request(uvSystemInfo, UniViewApiEnum.WORK_CLOTHES_ADD, params, WorkClothesInfo.class); return request.result(); } 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 a45615f5..c50a8184 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 @@ -1,5 +1,6 @@ package org.dromara.sis.service.impl; +import cn.hutool.core.lang.Assert; import org.dromara.common.core.utils.MapstructUtils; import org.dromara.common.core.utils.StringUtils; import org.dromara.common.mybatis.core.page.TableDataInfo; @@ -10,16 +11,19 @@ import com.baomidou.mybatisplus.core.toolkit.Wrappers; import lombok.RequiredArgsConstructor; import lombok.extern.slf4j.Slf4j; import org.dromara.sis.domain.SisDeviceManage; +import org.dromara.sis.domain.bo.SisDeviceManageBo; import org.dromara.sis.mapper.SisDeviceManageMapper; 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.ISisDeviceManageService; import org.springframework.stereotype.Service; import org.dromara.sis.domain.bo.SisAccessControlBo; import org.dromara.sis.domain.vo.SisAccessControlVo; import org.dromara.sis.domain.SisAccessControl; import org.dromara.sis.mapper.SisAccessControlMapper; import org.dromara.sis.service.ISisAccessControlService; +import org.springframework.transaction.annotation.Transactional; import java.util.List; import java.util.Map; @@ -38,7 +42,7 @@ public class SisAccessControlServiceImpl implements ISisAccessControlService { private final SisAccessControlMapper baseMapper; private final DoorDeviceService doorDeviceService; - private final SisDeviceManageMapper sisDeviceManageMapper; + private final ISisDeviceManageService sisDeviceManageService; /** * 查询门禁设备 @@ -103,49 +107,51 @@ public class SisAccessControlServiceImpl implements ISisAccessControlService { * @return 是否新增成功 */ @Override + @Transactional(rollbackFor = Exception.class) public Boolean insertByBo(SisAccessControlBo bo) { SisAccessControl add = MapstructUtils.convert(bo, SisAccessControl.class); - validEntityBeforeSave(add); - - // 添加E8门禁设备 - if (add.getControlType() == 2L){ - DoorDeviceAddReq e8DoorReq = new DoorDeviceAddReq(); - // 设备类型 - e8DoorReq.setType(add.getAccessType()); - // 设备名称 - e8DoorReq.setName(add.getAccessName()); - // 通讯类型 - e8DoorReq.setCommType(0); - // cpuid - e8DoorReq.setCpuID(add.getFactoryCode()); - // ip - e8DoorReq.setIp(add.getAccessIp()); - // 端口 - e8DoorReq.setPort(add.getAccessPort()); - // 网关ip - e8DoorReq.setGatewayIP(""); - // 子网掩码 - e8DoorReq.setNetMask("255.255.255.0"); - - DoorDeviceAddRes e8DoorRes = doorDeviceService.addDoorDevice(e8DoorReq); - - if (e8DoorRes != null) { - add.setOutCode(e8DoorRes.getId().toString()); - } else { - return false; - } - } - + Assert.notNull(add, "数据处理失败"); boolean flag = baseMapper.insert(add) > 0; if (flag) { - bo.setId(add.getId()); + // 添加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(add.getFactoryCode()); + // 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平台写入完成!"); + } // 判断是否绑定摄像头 if (bo.getDeviceId() != null){ - SisDeviceManage device = new SisDeviceManage(); + SisDeviceManageBo device = new SisDeviceManageBo(); device.setId(bo.getDeviceId()); device.setAccessControlId(add.getId()); - sisDeviceManageMapper.updateById(device); + sisDeviceManageService.updateByBo(device); } } return flag; diff --git a/ruoyi-modules/Sis/src/main/java/org/dromara/sis/service/impl/SisPersonLibImgServiceImpl.java b/ruoyi-modules/Sis/src/main/java/org/dromara/sis/service/impl/SisPersonLibImgServiceImpl.java index 7b2f2d1a..db298125 100644 --- a/ruoyi-modules/Sis/src/main/java/org/dromara/sis/service/impl/SisPersonLibImgServiceImpl.java +++ b/ruoyi-modules/Sis/src/main/java/org/dromara/sis/service/impl/SisPersonLibImgServiceImpl.java @@ -22,6 +22,7 @@ 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.springframework.transaction.annotation.Transactional; import java.nio.file.Files; import java.nio.file.Paths; @@ -107,6 +108,7 @@ public class SisPersonLibImgServiceImpl implements ISisPersonLibImgService { * @return 是否新增成功 */ @Override + @Transactional(rollbackFor = Exception.class) public Boolean insertByBo(SisPersonLibImgBo bo) { SisPersonLibImg add = MapstructUtils.convert(bo, SisPersonLibImg.class); Assert.notNull(add, "数据处理失败"); @@ -116,10 +118,13 @@ public class SisPersonLibImgServiceImpl implements ISisPersonLibImgService { if (flag) { // 获取人像库关联设备Id SisPersonLibVo libVo = sisPersonLibService.queryById(bo.getLibId()); - Assert.notNull(libVo, "人像库不存在,id=" + bo.getLibId()); - try { + if (libVo.getLibType() == 1L) { + Assert.notNull(libVo, "人像库不存在,id=" + bo.getLibId()); + } else { + Assert.notNull(libVo, "工服库不存在,id=" + bo.getLibId()); + } - long eqp_id; + try { long eqp_lib_id; Integer eqp_lib_img_id; String eqp_lib_img_url = null; @@ -129,7 +134,11 @@ public class SisPersonLibImgServiceImpl implements ISisPersonLibImgService { // 查询设备信息 SisAccessControlDeviceVo vo = sisAccessControlDeviceService.queryById(eqpId); Assert.notNull(vo, "门禁控制设备不存在,id=" + eqpId); - log.info("准备写入{}门禁设备人像库", vo.getEqpNo()); + if (libVo.getLibType() == 1) { + log.info("准备写入{}门禁设备人像库", vo.getEqpNo()); + } else { + log.info("准备写入{}门禁设备工服库", vo.getEqpNo()); + } UvModel.UvSystemInfo systemInfo = new UvModel.UvSystemInfo(); systemInfo.setAccount(vo.getEqpAccount()); @@ -144,23 +153,29 @@ public class SisPersonLibImgServiceImpl implements ISisPersonLibImgService { List refVo = libDeviceRefService.queryList(refBo); Assert.notNull(refVo, "系统库与设备库关联关系不存在!libId:{},eqpId:{}", bo.getLibId(), eqpId); eqp_lib_id = refVo.get(0).getEqpLibId(); - // 宇视添加人像 - UvModel.AddPersonParams addPersonParams = new UvModel.AddPersonParams(); - addPersonParams.setPerson_name(bo.getImgName()); - addPersonParams.setImage_base64(Base64.getEncoder().encodeToString(imageByte)); - addPersonParams.setLib_id(Math.toIntExact(eqp_lib_id)); - addPersonParams.setSex(bo.getSex()); - addPersonParams.setEmail(bo.getEmail()); - addPersonParams.setTel(bo.getTel()); - addPersonParams.setCertificate_type(bo.getCertificateType()); - addPersonParams.setCertificate_no(bo.getCertificateNo()); - addPersonParams.setBirth_date(bo.getBirthDate()); - // 发起请求获取响应 - UvModel.AddPersonResult addPersonResult = unViewAiBoxApi.addPerson(systemInfo, addPersonParams); - Assert.notNull(addPersonResult, "图片上传宇视盒子失败"); - eqp_lib_img_id = addPersonResult.getPerson_id(); + if (libVo.getLibType() == 1) { + // 宇视添加人像 + UvModel.AddPersonParams addPersonParams = new UvModel.AddPersonParams(); + addPersonParams.setPerson_name(bo.getImgName()); + addPersonParams.setImage_base64(Base64.getEncoder().encodeToString(imageByte)); + addPersonParams.setLib_id(Math.toIntExact(eqp_lib_id)); + addPersonParams.setSex(bo.getSex()); + addPersonParams.setEmail(bo.getEmail()); + addPersonParams.setTel(bo.getTel()); + addPersonParams.setCertificate_type(bo.getCertificateType()); + addPersonParams.setCertificate_no(bo.getCertificateNo()); + addPersonParams.setBirth_date(bo.getBirthDate()); + // 发起请求获取响应 + UvModel.AddPersonResult addResult = unViewAiBoxApi.addPerson(systemInfo, addPersonParams); + eqp_lib_img_id = addResult.getPerson_id(); + } else { + UvModel.WorkClothesInfo addResult = unViewAiBoxApi.addWorkClothes(systemInfo, Math.toIntExact(eqp_lib_id), Base64.getEncoder().encodeToString(imageByte)); + eqp_lib_img_id = addResult.getWorkclothes_id(); + } + Assert.notNull(eqp_lib_img_id, "图片上传宇视盒子失败"); + log.info("图片上传宇视盒子完成,eqp_lib_img_id = {}", eqp_lib_img_id); // TODO 新增E8人像 if (bo.getIsSyncE8()) { // 调用e8人像上传接口 @@ -184,7 +199,8 @@ public class SisPersonLibImgServiceImpl implements ISisPersonLibImgService { log.info("同步上传照片完成!"); } } catch (Exception e) { - return false; + // 处理异常并重新抛出 + throw new RuntimeException(e.getMessage()); } } return flag; @@ -218,36 +234,42 @@ public class SisPersonLibImgServiceImpl implements ISisPersonLibImgService { * @return 是否删除成功 */ @Override + @Transactional(rollbackFor = Exception.class) public Boolean deleteWithValidByIds(Collection ids, Boolean isValid) { - if (isValid) { - //TODO 做一些业务上的校验,判断是否需要校验 - List list = libDeviceImgRefService.queryListByImgIds(ids); - if (list.isEmpty()) return false; - Collection refIds = list.stream().map(SisLibDeviceImgRefVo::getId).toList(); - Collection refLibIds = list.stream().map(SisLibDeviceImgRefVo::getEqpLibId).toList(); - Integer[] refImgIds = list.stream().map(SisLibDeviceImgRefVo::getEqpLibImgId).map(Long::intValue).toArray(Integer[]::new); + boolean del = baseMapper.deleteByIds(ids) > 0; + Assert.isTrue(del, "删除失败"); - List ls = libDeviceRefService.queryDeviceListByLibIds(refLibIds); + List list = libDeviceImgRefService.queryListByImgIds(ids); + Assert.notEmpty(list, "图片关联关系不存在"); + Collection refIds = list.stream().map(SisLibDeviceImgRefVo::getId).toList(); + Collection refLibIds = list.stream().map(SisLibDeviceImgRefVo::getLibId).toList(); + Integer[] refImgIds = list.stream().map(SisLibDeviceImgRefVo::getEqpLibImgId).map(Long::intValue).toArray(Integer[]::new); - ls.forEach(item -> { - UvModel.UvSystemInfo systemInfo = new UvModel.UvSystemInfo(); - systemInfo.setAccount(item.getEqpAccount()); - systemInfo.setPassword(item.getEqpPwd()); - systemInfo.setIp(item.getEqpIp()); - systemInfo.setPort(item.getEqpPort()); + List ls = libDeviceRefService.queryDeviceListByLibIds(refLibIds); + Assert.notEmpty(ls, "库与设备关联关系不存在"); - if (item.getEqpLibType() == 1) { - Boolean b = unViewAiBoxApi.batchDeletePerson(systemInfo, refImgIds); - log.info("删除宇视图片[{}]完成,result={}", refImgIds, b); - } else { - Boolean b = unViewAiBoxApi.deleteWorkClothes(systemInfo, item.getEqpLibId(), Arrays.stream(refImgIds).toList()); - log.info("删除宇视服装[{}]完成,result={}", refImgIds, b); - } - }); + ls.forEach(item -> { + UvModel.UvSystemInfo systemInfo = new UvModel.UvSystemInfo(); + systemInfo.setAccount(item.getEqpAccount()); + systemInfo.setPassword(item.getEqpPwd()); + systemInfo.setIp(item.getEqpIp()); + systemInfo.setPort(item.getEqpPort()); - Boolean refFlag = libDeviceImgRefService.deleteWithValidByIds(refIds, true); - if (!refFlag) return false; - } - return baseMapper.deleteByIds(ids) > 0; + Boolean b; + if (item.getEqpLibType() == 1) { + b = unViewAiBoxApi.batchDeletePerson(systemInfo, refImgIds); + log.info("删除宇视图片[{}]完成,result={}", refImgIds, b); + } else { + b = unViewAiBoxApi.deleteWorkClothes(systemInfo, item.getEqpLibId(), Arrays.stream(refImgIds).toList()); + log.info("删除宇视服装[{}]完成,result={}", refImgIds, b); + } + + Assert.isTrue(b, "删除图片失败"); + }); + + Boolean refFlag = libDeviceImgRefService.deleteWithValidByIds(refIds, true); + Assert.isTrue(refFlag, "删除图片关联关系失败"); + + return true; } } From 873cf303c2e8cdead697eb326baad73846d39d34 Mon Sep 17 00:00:00 2001 From: zcxlsm Date: Sat, 28 Jun 2025 13:42:09 +0800 Subject: [PATCH 12/21] =?UTF-8?q?feat(sis):=20=20-=20=E4=BA=BA=E5=83=8F?= =?UTF-8?q?=E6=8E=88=E6=9D=83=20=20-=20=E4=B8=8A=E4=BC=A0=E5=9B=BE?= =?UTF-8?q?=E7=89=87=E7=AE=80=E5=8C=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../SisAccessControlController.java | 2 +- .../controller/SisAuthRecordController.java | 106 +++++++ .../dromara/sis/domain/SisAccessControl.java | 5 + .../org/dromara/sis/domain/SisAuthRecord.java | 46 +++ .../sis/domain/bo/SisAuthRecordBo.java | 50 ++++ .../sis/domain/vo/SisAccessControlVo.java | 11 +- .../sis/domain/vo/SisAuthRecordVo.java | 53 ++++ .../sis/domain/vo/SisPersonLibImgVo.java | 2 +- .../sis/mapper/SisAuthRecordMapper.java | 15 + .../sis/service/ISisAuthRecordService.java | 69 +++++ .../impl/SisAuthRecordServiceImpl.java | 272 ++++++++++++++++++ .../impl/SisPersonLibImgServiceImpl.java | 101 +------ 12 files changed, 626 insertions(+), 106 deletions(-) create mode 100644 ruoyi-modules/Sis/src/main/java/org/dromara/sis/controller/SisAuthRecordController.java create mode 100644 ruoyi-modules/Sis/src/main/java/org/dromara/sis/domain/SisAuthRecord.java create mode 100644 ruoyi-modules/Sis/src/main/java/org/dromara/sis/domain/bo/SisAuthRecordBo.java create mode 100644 ruoyi-modules/Sis/src/main/java/org/dromara/sis/domain/vo/SisAuthRecordVo.java create mode 100644 ruoyi-modules/Sis/src/main/java/org/dromara/sis/mapper/SisAuthRecordMapper.java create mode 100644 ruoyi-modules/Sis/src/main/java/org/dromara/sis/service/ISisAuthRecordService.java create mode 100644 ruoyi-modules/Sis/src/main/java/org/dromara/sis/service/impl/SisAuthRecordServiceImpl.java 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 b818c26d..62287cc3 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 @@ -75,7 +75,7 @@ public class SisAccessControlController extends BaseController { @SaCheckPermission("sis:accessControl:add") @Log(title = "门禁设备", businessType = BusinessType.INSERT) @RepeatSubmit() - @PostMapping() + @PostMapping("add") public R add(@Validated(AddGroup.class) @RequestBody SisAccessControlBo bo) { return toAjax(sisAccessControlService.insertByBo(bo)); } 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 new file mode 100644 index 00000000..1537f749 --- /dev/null +++ b/ruoyi-modules/Sis/src/main/java/org/dromara/sis/controller/SisAuthRecordController.java @@ -0,0 +1,106 @@ +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 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.mybatis.core.page.TableDataInfo; + +/** + * 授权记录 + * 前端访问路由地址为:/sis/authRecord + * + * @author lsm + * @date 2025-06-28 + */ +@Validated +@RequiredArgsConstructor +@RestController +@RequestMapping("/authRecord") +public class SisAuthRecordController extends BaseController { + + private final ISisAuthRecordService sisAuthRecordService; + + /** + * 查询授权记录列表 + */ + @SaCheckPermission("sis:authRecord:list") + @GetMapping("/list") + public TableDataInfo list(SisAuthRecordBo bo, PageQuery pageQuery) { + return sisAuthRecordService.queryPageList(bo, pageQuery); + } + + /** + * 导出授权记录列表 + */ + @SaCheckPermission("sis:authRecord:export") + @Log(title = "授权记录", businessType = BusinessType.EXPORT) + @PostMapping("/export") + public void export(SisAuthRecordBo bo, HttpServletResponse response) { + List list = sisAuthRecordService.queryList(bo); + ExcelUtil.exportExcel(list, "授权记录", SisAuthRecordVo.class, response); + } + + /** + * 获取授权记录详细信息 + * + * @param id 主键 + */ + @SaCheckPermission("sis:authRecord:query") + @GetMapping("/{id}") + public R getInfo(@NotNull(message = "主键不能为空") + @PathVariable("id") Long id) { + return R.ok(sisAuthRecordService.queryById(id)); + } + + /** + * 新增授权记录 + */ + @SaCheckPermission("sis:authRecord:add") + @Log(title = "授权记录", businessType = BusinessType.INSERT) + @RepeatSubmit() + @PostMapping() + public R add(@Validated(AddGroup.class) @RequestBody SisAuthRecordBo bo) { + return toAjax(sisAuthRecordService.insertByBo(bo)); + } + + /** + * 修改授权记录 + */ + @SaCheckPermission("sis:authRecord:edit") + @Log(title = "授权记录", businessType = BusinessType.UPDATE) + @RepeatSubmit() + @PutMapping() + public R edit(@Validated(EditGroup.class) @RequestBody SisAuthRecordBo bo) { + return toAjax(sisAuthRecordService.updateByBo(bo)); + } + + /** + * 删除授权记录 + * + * @param ids 主键串 + */ + @SaCheckPermission("sis:authRecord:remove") + @Log(title = "授权记录", businessType = BusinessType.DELETE) + @DeleteMapping("/{ids}") + public R remove(@NotEmpty(message = "主键不能为空") + @PathVariable("ids") Long[] ids) { + return toAjax(sisAuthRecordService.deleteWithValidByIds(List.of(ids), true)); + } +} 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 3a3112f9..911f416a 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 @@ -83,5 +83,10 @@ public class SisAccessControl extends TenantEntity { */ private String outCode; + /** + * 组织编码 + */ + private String orgCode; + } 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 new file mode 100644 index 00000000..edeeb047 --- /dev/null +++ b/ruoyi-modules/Sis/src/main/java/org/dromara/sis/domain/SisAuthRecord.java @@ -0,0 +1,46 @@ +package org.dromara.sis.domain; + +import org.dromara.common.tenant.core.TenantEntity; +import com.baomidou.mybatisplus.annotation.*; +import lombok.Data; +import lombok.EqualsAndHashCode; + +import java.io.Serial; + +/** + * 授权记录对象 sis_auth_record + * + * @author lsm + * @since 2025-06-28 + */ +@Data +@EqualsAndHashCode(callSuper = true) +@TableName("sis_auth_record") +public class SisAuthRecord extends TenantEntity { + + @Serial + private static final long serialVersionUID = 1L; + + /** + * 主键id + */ + @TableId(value = "id") + private Long id; + + /** + * 人像id + */ + private Long imgId; + + /** + * 门禁id + */ + private String acId; + + /** + * 设备id + */ + private String eqbId; + + +} 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 new file mode 100644 index 00000000..83435d77 --- /dev/null +++ b/ruoyi-modules/Sis/src/main/java/org/dromara/sis/domain/bo/SisAuthRecordBo.java @@ -0,0 +1,50 @@ +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 lombok.Data; +import lombok.EqualsAndHashCode; +import jakarta.validation.constraints.*; + +import java.util.List; + +/** + * 授权记录业务对象 sis_auth_record + * + * @author lsm + * @since 2025-06-28 + */ +@Data +@EqualsAndHashCode(callSuper = true) +@AutoMapper(target = SisAuthRecord.class, reverseConvertGenerate = false) +public class SisAuthRecordBo extends BaseEntity { + + /** + * 主键id + */ + @NotNull(message = "主键id不能为空", groups = {EditGroup.class}) + private Long id; + + /** + * 人像id + */ + @NotNull(message = "图像id不能为空", groups = {AddGroup.class, EditGroup.class}) + private Long imgId; + + /** + * 门禁id列表 + */ + @NotNull(message = "门禁id列表能为空", groups = {AddGroup.class, EditGroup.class}) + private List acIds; + + /** + * 设备id列表 + */ + @NotNull(message = "设备id列表不能为空", groups = {AddGroup.class, EditGroup.class}) + private List eqbIds; + + +} 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 f6681c9c..8a4d5793 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 @@ -3,14 +3,11 @@ package org.dromara.sis.domain.vo; import org.dromara.sis.domain.SisAccessControl; import cn.idev.excel.annotation.ExcelIgnoreUnannotated; import cn.idev.excel.annotation.ExcelProperty; -import org.dromara.common.excel.annotation.ExcelDictFormat; -import org.dromara.common.excel.convert.ExcelDictConvert; import io.github.linpeilie.annotations.AutoMapper; import lombok.Data; import java.io.Serial; import java.io.Serializable; -import java.util.Date; @@ -18,7 +15,7 @@ import java.util.Date; * 门禁设备视图对象 sis_access_control * * @author lxj - * @date 2025-06-25 + * @since 2025-06-25 */ @Data @ExcelIgnoreUnannotated @@ -100,4 +97,10 @@ public class SisAccessControlVo implements Serializable { @ExcelProperty(value = "外部编码") private String outCode; + /** + * 组织编码 + */ + @ExcelProperty(value = "外部编码") + private String orgCode; + } 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 new file mode 100644 index 00000000..a05d17a7 --- /dev/null +++ b/ruoyi-modules/Sis/src/main/java/org/dromara/sis/domain/vo/SisAuthRecordVo.java @@ -0,0 +1,53 @@ +package org.dromara.sis.domain.vo; + +import org.dromara.sis.domain.SisAuthRecord; +import cn.idev.excel.annotation.ExcelIgnoreUnannotated; +import cn.idev.excel.annotation.ExcelProperty; +import io.github.linpeilie.annotations.AutoMapper; +import lombok.Data; + +import java.io.Serial; +import java.io.Serializable; +import java.util.List; + + +/** + * 授权记录视图对象 sis_auth_record + * + * @author lsm + * @since 2025-06-28 + */ +@Data +@ExcelIgnoreUnannotated +@AutoMapper(target = SisAuthRecord.class) +public class SisAuthRecordVo implements Serializable { + + @Serial + private static final long serialVersionUID = 1L; + + /** + * 主键id + */ + @ExcelProperty(value = "主键id") + private Long id; + + /** + * 人像id + */ + @ExcelProperty(value = "人像id") + private Long imgId; + + /** + * 门禁id列表 + */ + @ExcelProperty(value = "门禁id列表") + private List acIds; + + /** + * 设备id列表 + */ + @ExcelProperty(value = "设备id列表") + private List eqbIds; + + +} diff --git a/ruoyi-modules/Sis/src/main/java/org/dromara/sis/domain/vo/SisPersonLibImgVo.java b/ruoyi-modules/Sis/src/main/java/org/dromara/sis/domain/vo/SisPersonLibImgVo.java index bbd686fb..3e110128 100644 --- a/ruoyi-modules/Sis/src/main/java/org/dromara/sis/domain/vo/SisPersonLibImgVo.java +++ b/ruoyi-modules/Sis/src/main/java/org/dromara/sis/domain/vo/SisPersonLibImgVo.java @@ -35,7 +35,7 @@ public class SisPersonLibImgVo implements Serializable { * 人员库编码 */ @ExcelProperty(value = "人员库Id") - private String libId; + private Long libId; /** * 人像名称 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 new file mode 100644 index 00000000..f5061055 --- /dev/null +++ b/ruoyi-modules/Sis/src/main/java/org/dromara/sis/mapper/SisAuthRecordMapper.java @@ -0,0 +1,15 @@ +package org.dromara.sis.mapper; + +import org.dromara.sis.domain.SisAuthRecord; +import org.dromara.sis.domain.vo.SisAuthRecordVo; +import org.dromara.common.mybatis.core.mapper.BaseMapperPlus; + +/** + * 授权记录Mapper接口 + * + * @author lsm + * @date 2025-06-28 + */ +public interface SisAuthRecordMapper extends BaseMapperPlus { + +} 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 new file mode 100644 index 00000000..b314e488 --- /dev/null +++ b/ruoyi-modules/Sis/src/main/java/org/dromara/sis/service/ISisAuthRecordService.java @@ -0,0 +1,69 @@ +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 java.util.Collection; +import java.util.List; + +/** + * 授权记录Service接口 + * + * @author lsm + * @date 2025-06-28 + */ +public interface ISisAuthRecordService { + + /** + * 查询授权记录 + * + * @param id 主键 + * @return 授权记录 + */ + SisAuthRecordVo queryById(Long id); + + /** + * 分页查询授权记录列表 + * + * @param bo 查询条件 + * @param pageQuery 分页参数 + * @return 授权记录分页列表 + */ + TableDataInfo queryPageList(SisAuthRecordBo bo, PageQuery pageQuery); + + /** + * 查询符合条件的授权记录列表 + * + * @param bo 查询条件 + * @return 授权记录列表 + */ + List queryList(SisAuthRecordBo bo); + + /** + * 新增授权记录 + * + * @param bo 授权记录 + * @return 是否新增成功 + */ + Boolean insertByBo(SisAuthRecordBo bo); + + /** + * 修改授权记录 + * + * @param bo 授权记录 + * @return 是否修改成功 + */ + Boolean updateByBo(SisAuthRecordBo bo); + + /** + * 校验并批量删除授权记录信息 + * + * @param ids 待删除的主键集合 + * @param isValid 是否进行有效性校验 + * @return 是否删除成功 + */ + Boolean deleteWithValidByIds(Collection ids, Boolean isValid); +} 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 new file mode 100644 index 00000000..c10f24b4 --- /dev/null +++ b/ruoyi-modules/Sis/src/main/java/org/dromara/sis/service/impl/SisAuthRecordServiceImpl.java @@ -0,0 +1,272 @@ +package org.dromara.sis.service.impl; + +import cn.hutool.core.lang.Assert; +import org.dromara.common.core.utils.MapstructUtils; +import org.dromara.common.core.utils.StringUtils; +import org.dromara.common.mybatis.core.page.TableDataInfo; +import org.dromara.common.mybatis.core.page.PageQuery; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +import com.baomidou.mybatisplus.core.toolkit.Wrappers; +import lombok.RequiredArgsConstructor; +import lombok.extern.slf4j.Slf4j; +import org.dromara.sis.domain.bo.SisLibDeviceImgRefBo; +import org.dromara.sis.domain.bo.SisLibDeviceRefBo; +import org.dromara.sis.domain.vo.*; +import org.dromara.sis.sdk.e8.AccessControlService; +import org.dromara.sis.sdk.e8.VoucherControlService; +import org.dromara.sis.sdk.e8.domain.accessControl.req.CustomerAuthAddReq; +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; +import java.nio.file.Paths; +import java.util.*; + +/** + * 授权记录Service业务层处理 + * + * @author lsm + * @since 2025-06-28 + */ +@Slf4j +@RequiredArgsConstructor +@Service +public class SisAuthRecordServiceImpl implements ISisAuthRecordService { + + private final UnViewAiBoxApi unViewAiBoxApi; + private final SisAuthRecordMapper baseMapper; + private final VoucherControlService vouchService; + private final ISisPersonLibService sisPersonLibService; + private final AccessControlService accessControlService; + private final ISisPersonLibImgService sisPersonLibImgService; + private final ISisLibDeviceRefService sisLibDeviceRefService; + private final ISisAccessControlService sisAccessControlService; + private final ISisLibDeviceImgRefService sisLibDeviceImgRefService; + private final ISisAccessControlDeviceService sisAccessControlDeviceService; + + /** + * 查询授权记录 + * + * @param id 主键 + * @return 授权记录 + */ + @Override + public SisAuthRecordVo queryById(Long id) { + SisAuthRecord sisAuthRecord = baseMapper.selectById(id); + if (sisAuthRecord == null) return null; + List acIds = Arrays.stream(sisAuthRecord.getAcId().split(",")).map(Long::parseLong).toList(); + List eqbIds = Arrays.stream(sisAuthRecord.getEqbId().split(",")).map(Long::parseLong).toList(); + SisAuthRecordVo vo = MapstructUtils.convert(sisAuthRecord, SisAuthRecordVo.class); + vo.setAcIds(acIds); + vo.setEqbIds(eqbIds); + return vo; + } + + /** + * 分页查询授权记录列表 + * + * @param bo 查询条件 + * @param pageQuery 分页参数 + * @return 授权记录分页列表 + */ + @Override + public TableDataInfo queryPageList(SisAuthRecordBo bo, PageQuery pageQuery) { + LambdaQueryWrapper lqw = buildQueryWrapper(bo); + Page result = baseMapper.selectVoPage(pageQuery.build(), lqw); + return TableDataInfo.build(result); + } + + /** + * 查询符合条件的授权记录列表 + * + * @param bo 查询条件 + * @return 授权记录列表 + */ + @Override + public List queryList(SisAuthRecordBo bo) { + LambdaQueryWrapper lqw = buildQueryWrapper(bo); + return baseMapper.selectVoList(lqw); + } + + private LambdaQueryWrapper buildQueryWrapper(SisAuthRecordBo bo) { + Map params = bo.getParams(); + LambdaQueryWrapper lqw = Wrappers.lambdaQuery(); + lqw.orderByAsc(SisAuthRecord::getId); + lqw.eq(bo.getImgId() != null, SisAuthRecord::getImgId, bo.getImgId()); + return lqw; + } + + /** + * 新增授权记录 + * + * @param bo 授权记录 + * @return 是否新增成功 + */ + @Override + @Transactional(rollbackFor = Exception.class) + public Boolean insertByBo(SisAuthRecordBo bo) { + SisAuthRecord add = MapstructUtils.convert(bo, SisAuthRecord.class); + Assert.notNull(add, "数据处理失败"); + add.setAcId(StringUtils.join(bo.getAcIds(), ",")); + add.setEqbId(StringUtils.join(bo.getEqbIds(), ",")); + boolean flag = baseMapper.insert(add) > 0; + log.info("图片{},开始对{}门禁授权,下发{}设备照片", add.getImgId(), bo.getAcIds(), bo.getEqbIds()); + if (flag) { + SisPersonLibImgVo imgVo = sisPersonLibImgService.queryById(bo.getImgId()); + Assert.notNull(imgVo, "图片不存在,id=" + bo.getImgId()); + + SisPersonLibVo libVo = sisPersonLibService.queryById(imgVo.getLibId()); + Assert.notNull(libVo, "图像库不存在,id=" + imgVo.getLibId()); + + + try { + long eqp_lib_id; + Integer eqp_lib_img_id; + String eqp_lib_img_url; + byte[] imageByte = Files.readAllBytes(Paths.get(imgVo.getImgUrl())); + + // TODO 图片开始下发到宇视盒子 + log.info("图片开始下发到宇视盒子"); + for (Long eqpId : bo.getEqbIds()) { + SisAccessControlDeviceVo vo = sisAccessControlDeviceService.queryById(eqpId); + Assert.notNull(vo, "门禁控制设备不存在,id=" + eqpId); + log.info(libVo.getLibType() == 1 ? "准备写入门禁设备,code={}" : "准备写入工服设备,code={}", vo.getEqpNo()); + + UvModel.UvSystemInfo systemInfo = new UvModel.UvSystemInfo(); + systemInfo.setAccount(vo.getEqpAccount()); + systemInfo.setPassword(vo.getEqpPwd()); + systemInfo.setIp(vo.getEqpIp()); + systemInfo.setPort(vo.getEqpPort()); + + // 获取宇视线上库ID + SisLibDeviceRefBo refBo = new SisLibDeviceRefBo(); + refBo.setEqpId(eqpId); + refBo.setLibId(libVo.getId()); + List refVo = sisLibDeviceRefService.queryList(refBo); + Assert.notNull(refVo, "系统库与设备库关联关系不存在!libId:{},eqpId:{}", libVo.getId(), eqpId); + eqp_lib_id = refVo.get(0).getEqpLibId(); + + if (libVo.getLibType() == 1) { + // 宇视添加人像 + UvModel.AddPersonParams addPersonParams = new UvModel.AddPersonParams(); + addPersonParams.setPerson_name(imgVo.getImgName()); + addPersonParams.setImage_base64(Base64.getEncoder().encodeToString(imageByte)); + addPersonParams.setLib_id(Math.toIntExact(eqp_lib_id)); + addPersonParams.setSex(imgVo.getSex()); + addPersonParams.setEmail(imgVo.getEmail()); + addPersonParams.setTel(imgVo.getTel()); + addPersonParams.setCertificate_type(imgVo.getCertificateType()); + addPersonParams.setCertificate_no(imgVo.getCertificateNo()); + addPersonParams.setBirth_date(imgVo.getBirthDate()); + // 发起请求获取响应 + UvModel.AddPersonResult addResult = unViewAiBoxApi.addPerson(systemInfo, addPersonParams); + eqp_lib_img_id = addResult.getPerson_id(); + + } else { + UvModel.WorkClothesInfo addResult = unViewAiBoxApi.addWorkClothes(systemInfo, Math.toIntExact(eqp_lib_id), Base64.getEncoder().encodeToString(imageByte)); + eqp_lib_img_id = addResult.getWorkclothes_id(); + } + Assert.notNull(eqp_lib_img_id, "图片上传宇视盒子失败"); + log.info("图片上传宇视盒子完成,eqp_lib_img_id = {}", eqp_lib_img_id); + + SisLibDeviceImgRefBo ref = new SisLibDeviceImgRefBo(); + ref.setLibId(libVo.getId()); + ref.setImgId(add.getId()); + ref.setEqpId(eqpId); + ref.setEqpLibId(eqp_lib_id); + ref.setEqpLibImgId(eqp_lib_img_id.longValue()); + Boolean insert = sisLibDeviceImgRefService.insertByBo(ref); + Assert.isTrue(insert, "写入图片关联关系表失败!"); + } + log.info("图片开始下发完成!"); + + // TODO 对门禁设备授权 + log.info("图片开始对门禁设备授权"); + for (Long acId : bo.getAcIds()) { + SisAccessControlVo acVo = sisAccessControlService.queryById(acId); + Assert.notNull(acVo, "门禁设备不存在"); + + // TODO 阶段调试E8人脸设备,非E8人脸设备不处理 + if (acVo.getControlType() == 1 || acVo.getAccessType() == 2) continue; + + log.info("照片上传E8平台,id=" + bo.getImgId()); + String url = vouchService.uploadFace(imageByte); + Assert.notNull(url, "图片上传E8平台失败"); + eqp_lib_img_url = url; + + log.info("E8平台发行凭证"); + IssueVoucherReq req = new IssueVoucherReq(); + req.setCardType(34); + req.setVoucherType(70); + // TODO 临时默认人员 + req.setPersonID(539696740646981L); + req.setTxtData(eqp_lib_img_url); + Boolean issue = vouchService.issueVoucher(req); + Assert.isTrue(issue, "E8平台发行凭证失败"); + + log.info("E8平台授权"); + CustomerAuthAddReq authReq = new CustomerAuthAddReq(); + authReq.setAuthType(0); + authReq.setScheduleId(1L); + authReq.setPersonIds(Collections.singletonList(539696740646981L)); + authReq.setStartTime("2025-06-25 11: 23: 39"); + authReq.setEndTime("2025-07-25 11: 23: 39"); + + CustomerAuthAddReq.AuthGroupData authGroupData = new CustomerAuthAddReq.AuthGroupData(); + authGroupData.setId(Long.parseLong(acVo.getOutCode())); + authGroupData.setType(1); + authReq.setAuthData(List.of(authGroupData)); + Boolean auth = accessControlService.addCustomerAuth(authReq); + Assert.isTrue(auth, "E8平台授权失败"); + } + log.info("门禁设备授权完成"); + } catch (Exception e) { + throw new RuntimeException(e.getMessage()); + } + } + return flag; + } + + /** + * 修改授权记录 + * + * @param bo 授权记录 + * @return 是否修改成功 + */ + @Override + public Boolean updateByBo(SisAuthRecordBo bo) { + SisAuthRecord update = MapstructUtils.convert(bo, SisAuthRecord.class); + validEntityBeforeSave(update); + return baseMapper.updateById(update) > 0; + } + + /** + * 保存前的数据校验 + */ + private void validEntityBeforeSave(SisAuthRecord entity) { + //TODO 做一些数据校验,如唯一约束 + } + + /** + * 校验并批量删除授权记录信息 + * + * @param ids 待删除的主键集合 + * @param isValid 是否进行有效性校验 + * @return 是否删除成功 + */ + @Override + public Boolean deleteWithValidByIds(Collection ids, Boolean isValid) { + if (isValid) { + //TODO 做一些业务上的校验,判断是否需要校验 + } + return baseMapper.deleteByIds(ids) > 0; + } +} diff --git a/ruoyi-modules/Sis/src/main/java/org/dromara/sis/service/impl/SisPersonLibImgServiceImpl.java b/ruoyi-modules/Sis/src/main/java/org/dromara/sis/service/impl/SisPersonLibImgServiceImpl.java index db298125..8d8c2a89 100644 --- a/ruoyi-modules/Sis/src/main/java/org/dromara/sis/service/impl/SisPersonLibImgServiceImpl.java +++ b/ruoyi-modules/Sis/src/main/java/org/dromara/sis/service/impl/SisPersonLibImgServiceImpl.java @@ -12,20 +12,15 @@ import org.dromara.common.mybatis.core.page.PageQuery; import org.dromara.common.mybatis.core.page.TableDataInfo; import org.dromara.sis.domain.SisPersonLibImg; import org.dromara.sis.domain.bo.AccessControlLibDeviceBo; -import org.dromara.sis.domain.bo.SisLibDeviceImgRefBo; -import org.dromara.sis.domain.bo.SisLibDeviceRefBo; import org.dromara.sis.domain.bo.SisPersonLibImgBo; import org.dromara.sis.domain.vo.*; import org.dromara.sis.mapper.SisPersonLibImgMapper; -import org.dromara.sis.sdk.e8.VoucherControlService; 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.springframework.transaction.annotation.Transactional; -import java.nio.file.Files; -import java.nio.file.Paths; import java.util.*; /** @@ -40,12 +35,9 @@ import java.util.*; public class SisPersonLibImgServiceImpl implements ISisPersonLibImgService { private final SisPersonLibImgMapper baseMapper; - private final VoucherControlService vouchService; private final UnViewAiBoxApi unViewAiBoxApi; - private final ISisPersonLibService sisPersonLibService; private final ISisLibDeviceRefService libDeviceRefService; private final ISisLibDeviceImgRefService libDeviceImgRefService; - private final ISisAccessControlDeviceService sisAccessControlDeviceService; /** * 查询人像信息 @@ -112,98 +104,7 @@ public class SisPersonLibImgServiceImpl implements ISisPersonLibImgService { public Boolean insertByBo(SisPersonLibImgBo bo) { SisPersonLibImg add = MapstructUtils.convert(bo, SisPersonLibImg.class); Assert.notNull(add, "数据处理失败"); - // 生成编码 - boolean flag = baseMapper.insert(add) > 0; - log.info("图片[{}]开始写入系统,result={}", add.getImgName(), flag); - if (flag) { - // 获取人像库关联设备Id - SisPersonLibVo libVo = sisPersonLibService.queryById(bo.getLibId()); - if (libVo.getLibType() == 1L) { - Assert.notNull(libVo, "人像库不存在,id=" + bo.getLibId()); - } else { - Assert.notNull(libVo, "工服库不存在,id=" + bo.getLibId()); - } - - try { - long eqp_lib_id; - Integer eqp_lib_img_id; - String eqp_lib_img_url = null; - // 根据图片路径读取图片 - byte[] imageByte = Files.readAllBytes(Paths.get(bo.getImgUrl())); - for (Long eqpId : libVo.getEqpIds()) { - // 查询设备信息 - SisAccessControlDeviceVo vo = sisAccessControlDeviceService.queryById(eqpId); - Assert.notNull(vo, "门禁控制设备不存在,id=" + eqpId); - if (libVo.getLibType() == 1) { - log.info("准备写入{}门禁设备人像库", vo.getEqpNo()); - } else { - log.info("准备写入{}门禁设备工服库", vo.getEqpNo()); - } - - UvModel.UvSystemInfo systemInfo = new UvModel.UvSystemInfo(); - systemInfo.setAccount(vo.getEqpAccount()); - systemInfo.setPassword(vo.getEqpPwd()); - systemInfo.setIp(vo.getEqpIp()); - systemInfo.setPort(vo.getEqpPort()); - - // 获取宇视线上库ID - SisLibDeviceRefBo refBo = new SisLibDeviceRefBo(); - refBo.setEqpId(eqpId); - refBo.setLibId(bo.getLibId()); - List refVo = libDeviceRefService.queryList(refBo); - Assert.notNull(refVo, "系统库与设备库关联关系不存在!libId:{},eqpId:{}", bo.getLibId(), eqpId); - eqp_lib_id = refVo.get(0).getEqpLibId(); - - if (libVo.getLibType() == 1) { - // 宇视添加人像 - UvModel.AddPersonParams addPersonParams = new UvModel.AddPersonParams(); - addPersonParams.setPerson_name(bo.getImgName()); - addPersonParams.setImage_base64(Base64.getEncoder().encodeToString(imageByte)); - addPersonParams.setLib_id(Math.toIntExact(eqp_lib_id)); - addPersonParams.setSex(bo.getSex()); - addPersonParams.setEmail(bo.getEmail()); - addPersonParams.setTel(bo.getTel()); - addPersonParams.setCertificate_type(bo.getCertificateType()); - addPersonParams.setCertificate_no(bo.getCertificateNo()); - addPersonParams.setBirth_date(bo.getBirthDate()); - // 发起请求获取响应 - UvModel.AddPersonResult addResult = unViewAiBoxApi.addPerson(systemInfo, addPersonParams); - eqp_lib_img_id = addResult.getPerson_id(); - - } else { - UvModel.WorkClothesInfo addResult = unViewAiBoxApi.addWorkClothes(systemInfo, Math.toIntExact(eqp_lib_id), Base64.getEncoder().encodeToString(imageByte)); - eqp_lib_img_id = addResult.getWorkclothes_id(); - } - Assert.notNull(eqp_lib_img_id, "图片上传宇视盒子失败"); - log.info("图片上传宇视盒子完成,eqp_lib_img_id = {}", eqp_lib_img_id); - // TODO 新增E8人像 - if (bo.getIsSyncE8()) { - // 调用e8人像上传接口 - String url = vouchService.uploadFace(imageByte); - Assert.notNull(url, "图片上传E8平台失败"); - eqp_lib_img_url = url; - } - - SisLibDeviceImgRefBo ref = new SisLibDeviceImgRefBo(); - ref.setLibId(bo.getLibId()); - ref.setImgId(add.getId()); - ref.setEqpId(eqpId); - ref.setEqpLibId(eqp_lib_id); - ref.setEqpLibImgId(eqp_lib_img_id.longValue()); - // E8 - if (bo.getIsSyncE8()) { - ref.setEqpLibImgUrl(eqp_lib_img_url); - } - Boolean insert = libDeviceImgRefService.insertByBo(ref); - Assert.isTrue(insert, "写入图片关联关系表失败!"); - log.info("同步上传照片完成!"); - } - } catch (Exception e) { - // 处理异常并重新抛出 - throw new RuntimeException(e.getMessage()); - } - } - return flag; + return baseMapper.insert(add) > 0; } /** From 6b1e9253afe6ed84c361cdb49374841a8dfe5110 Mon Sep 17 00:00:00 2001 From: 15683799673 Date: Sat, 28 Jun 2025 22:48:11 +0800 Subject: [PATCH 13/21] =?UTF-8?q?=E7=BB=BC=E5=90=88=E7=AE=A1=E7=90=86?= =?UTF-8?q?=E6=A8=A1=E5=9D=97=E5=AE=8C=E6=88=90?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../core/impl/DictTypeTranslationImpl.java | 4 +-- .../controller/TbCommunityController.java | 4 +-- .../dromara/property/domain/SysCityArea.java | 5 --- .../dromara/property/domain/TbBuilding.java | 17 +-------- .../dromara/property/domain/TbCommunity.java | 12 ++++--- .../org/dromara/property/domain/TbFloor.java | 10 ++++++ .../org/dromara/property/domain/TbRoom.java | 26 ++++++++++---- .../org/dromara/property/domain/TbUnit.java | 7 +++- .../property/domain/bo/SysCityAreaBo.java | 6 ---- .../property/domain/bo/TbBuildingBo.java | 22 ++---------- .../property/domain/bo/TbCommunityBo.java | 33 +++++++++-------- .../dromara/property/domain/bo/TbFloorBo.java | 2 +- .../dromara/property/domain/bo/TbRoomBo.java | 2 +- .../dromara/property/domain/bo/TbUnitBo.java | 2 +- .../domain/convert/SysCityAreaCovert.java | 3 ++ .../property/domain/vo/CityAreaTreeVo.java | 3 ++ .../property/domain/vo/SysCityAreaVo.java | 7 ---- .../property/domain/vo/TbBuildingVo.java | 36 ++++--------------- .../property/domain/vo/TbCommunityVo.java | 15 ++++---- .../dromara/property/domain/vo/TbFloorVo.java | 11 ++++++ .../dromara/property/domain/vo/TbRoomVo.java | 36 ++++++++++++++++--- .../dromara/property/domain/vo/TbUnitVo.java | 2 ++ .../property/mapper/SysCityAreaMapper.java | 13 +++++-- .../property/service/ITbCommunityService.java | 2 +- .../service/impl/SysCityAreaServiceImpl.java | 8 +---- .../service/impl/TbBuildingServiceImpl.java | 10 ++++-- .../service/impl/TbCommunityServiceImpl.java | 13 +++++++ .../service/impl/TbFloorServiceImpl.java | 9 +++++ .../service/impl/TbRoomServiceImpl.java | 10 +++++- .../service/impl/TbUnitServiceImpl.java | 8 +++++ 30 files changed, 193 insertions(+), 145 deletions(-) diff --git a/ruoyi-common/ruoyi-common-translation/src/main/java/org/dromara/common/translation/core/impl/DictTypeTranslationImpl.java b/ruoyi-common/ruoyi-common-translation/src/main/java/org/dromara/common/translation/core/impl/DictTypeTranslationImpl.java index 538d932e..65525255 100644 --- a/ruoyi-common/ruoyi-common-translation/src/main/java/org/dromara/common/translation/core/impl/DictTypeTranslationImpl.java +++ b/ruoyi-common/ruoyi-common-translation/src/main/java/org/dromara/common/translation/core/impl/DictTypeTranslationImpl.java @@ -1,11 +1,11 @@ package org.dromara.common.translation.core.impl; +import lombok.AllArgsConstructor; import org.dromara.common.core.service.DictService; import org.dromara.common.core.utils.StringUtils; import org.dromara.common.translation.annotation.TranslationType; import org.dromara.common.translation.constant.TransConstant; import org.dromara.common.translation.core.TranslationInterface; -import lombok.AllArgsConstructor; /** * 字典翻译实现 @@ -20,7 +20,7 @@ public class DictTypeTranslationImpl implements TranslationInterface { @Override public String translation(Object key, String other) { - if (key instanceof String && StringUtils.isNotBlank(other)) { + if (key != null && StringUtils.isNotBlank(other)) { return dictService.getDictLabel(other, key.toString()); } return null; diff --git a/ruoyi-modules/Property/src/main/java/org/dromara/property/controller/TbCommunityController.java b/ruoyi-modules/Property/src/main/java/org/dromara/property/controller/TbCommunityController.java index e734757c..3bcd85df 100644 --- a/ruoyi-modules/Property/src/main/java/org/dromara/property/controller/TbCommunityController.java +++ b/ruoyi-modules/Property/src/main/java/org/dromara/property/controller/TbCommunityController.java @@ -62,11 +62,11 @@ public class TbCommunityController extends BaseController { * @return 树结构数据 */ @GetMapping("/tree/{level}") - public List> tree(@PathVariable("level") Integer level) { + public R>> tree(@PathVariable("level") Integer level) { LoginUser loginUser = LoginHelper.getLoginUser(); Assert.notNull(loginUser, "获取账户信息失败!"); Assert.notEmpty(loginUser.getTenantId(), "获取租户信息失败"); - return tbCommunityService.tree(level, loginUser.getTenantId()); + return R.ok(tbCommunityService.tree(level, loginUser.getTenantId())); } diff --git a/ruoyi-modules/Property/src/main/java/org/dromara/property/domain/SysCityArea.java b/ruoyi-modules/Property/src/main/java/org/dromara/property/domain/SysCityArea.java index 48d8a6e2..6bfd5bcd 100644 --- a/ruoyi-modules/Property/src/main/java/org/dromara/property/domain/SysCityArea.java +++ b/ruoyi-modules/Property/src/main/java/org/dromara/property/domain/SysCityArea.java @@ -62,9 +62,4 @@ public class SysCityArea implements Serializable { */ private String lat; - /** - * 数据状态:1有效,0无效 - */ - private Long dataState; - } diff --git a/ruoyi-modules/Property/src/main/java/org/dromara/property/domain/TbBuilding.java b/ruoyi-modules/Property/src/main/java/org/dromara/property/domain/TbBuilding.java index fb29237f..6c64de2a 100644 --- a/ruoyi-modules/Property/src/main/java/org/dromara/property/domain/TbBuilding.java +++ b/ruoyi-modules/Property/src/main/java/org/dromara/property/domain/TbBuilding.java @@ -32,28 +32,13 @@ public class TbBuilding extends TenantEntity { /** * 园区编码 */ - private String communityId; + private Long communityId; /** * 建筑名称 */ private String buildingName; - /** - * 省 - */ - private String province; - - /** - * 市 - */ - private String city; - - /** - * 区 - */ - private String district; - /** * 总层数 */ diff --git a/ruoyi-modules/Property/src/main/java/org/dromara/property/domain/TbCommunity.java b/ruoyi-modules/Property/src/main/java/org/dromara/property/domain/TbCommunity.java index d1a78927..084fc4c6 100644 --- a/ruoyi-modules/Property/src/main/java/org/dromara/property/domain/TbCommunity.java +++ b/ruoyi-modules/Property/src/main/java/org/dromara/property/domain/TbCommunity.java @@ -1,13 +1,13 @@ package org.dromara.property.domain; -import org.dromara.common.tenant.core.TenantEntity; -import com.baomidou.mybatisplus.annotation.*; +import com.baomidou.mybatisplus.annotation.TableId; +import com.baomidou.mybatisplus.annotation.TableName; import lombok.Data; import lombok.EqualsAndHashCode; -import java.util.Date; -import com.fasterxml.jackson.annotation.JsonFormat; +import org.dromara.common.tenant.core.TenantEntity; import java.io.Serial; +import java.util.Date; /** * 小区对象 tb_community @@ -39,6 +39,10 @@ public class TbCommunity extends TenantEntity { */ private Integer communityType; + private String cityFullCode; + + private String cityFullName; + /** * 省 */ diff --git a/ruoyi-modules/Property/src/main/java/org/dromara/property/domain/TbFloor.java b/ruoyi-modules/Property/src/main/java/org/dromara/property/domain/TbFloor.java index 5b939433..7f6accc1 100644 --- a/ruoyi-modules/Property/src/main/java/org/dromara/property/domain/TbFloor.java +++ b/ruoyi-modules/Property/src/main/java/org/dromara/property/domain/TbFloor.java @@ -27,6 +27,16 @@ public class TbFloor extends TenantEntity { @TableId(value = "id") private Long id; + /** + * 园区id + */ + private Long communityId; + + /** + * 建筑id + */ + private Long buildingId; + /** * 单元编码 */ diff --git a/ruoyi-modules/Property/src/main/java/org/dromara/property/domain/TbRoom.java b/ruoyi-modules/Property/src/main/java/org/dromara/property/domain/TbRoom.java index 7ddffee8..72c3820c 100644 --- a/ruoyi-modules/Property/src/main/java/org/dromara/property/domain/TbRoom.java +++ b/ruoyi-modules/Property/src/main/java/org/dromara/property/domain/TbRoom.java @@ -1,9 +1,10 @@ package org.dromara.property.domain; -import org.dromara.common.tenant.core.TenantEntity; -import com.baomidou.mybatisplus.annotation.*; +import com.baomidou.mybatisplus.annotation.TableId; +import com.baomidou.mybatisplus.annotation.TableName; import lombok.Data; import lombok.EqualsAndHashCode; +import org.dromara.common.tenant.core.TenantEntity; import java.io.Serial; @@ -21,12 +22,25 @@ public class TbRoom extends TenantEntity { @Serial private static final long serialVersionUID = 1L; - /** - * - */ + @TableId(value = "id") private Long id; + /** + * 园区id + */ + private Long communityId; + + /** + * 建筑id + */ + private Long buildingId; + + /** + * 单元编码 + */ + private Long unitId; + /** * 所属楼层ID */ @@ -50,7 +64,7 @@ public class TbRoom extends TenantEntity { /** * 户型(如2室1厅1卫) */ - private Integer layout; + private String layout; /** * 朝向('东','南','西','北','东南','东北','西南','西北') diff --git a/ruoyi-modules/Property/src/main/java/org/dromara/property/domain/TbUnit.java b/ruoyi-modules/Property/src/main/java/org/dromara/property/domain/TbUnit.java index c24eda27..9b1ebf97 100644 --- a/ruoyi-modules/Property/src/main/java/org/dromara/property/domain/TbUnit.java +++ b/ruoyi-modules/Property/src/main/java/org/dromara/property/domain/TbUnit.java @@ -28,7 +28,12 @@ public class TbUnit extends TenantEntity { private Long id; /** - * 建筑名称 + * 园区id + */ + private Long communityId; + + /** + * 建筑id */ private Long buildingId; diff --git a/ruoyi-modules/Property/src/main/java/org/dromara/property/domain/bo/SysCityAreaBo.java b/ruoyi-modules/Property/src/main/java/org/dromara/property/domain/bo/SysCityAreaBo.java index 97a11f32..530ad9c3 100644 --- a/ruoyi-modules/Property/src/main/java/org/dromara/property/domain/bo/SysCityAreaBo.java +++ b/ruoyi-modules/Property/src/main/java/org/dromara/property/domain/bo/SysCityAreaBo.java @@ -70,11 +70,5 @@ public class SysCityAreaBo extends BaseEntity { @NotBlank(message = "维度不能为空", groups = { AddGroup.class, EditGroup.class }) private String lat; - /** - * 数据状态:1有效,0无效 - */ - @NotNull(message = "数据状态:1有效,0无效不能为空", groups = { AddGroup.class, EditGroup.class }) - private Long dataState; - } 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 607d7eb9..3fd30106 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,8 +32,8 @@ public class TbBuildingBo extends BaseEntity { /** * 园区编码 */ - @NotBlank(message = "园区编码不能为空", groups = {AddGroup.class, EditGroup.class}) - private String communityId; + @NotBlank(message = "园区id不能为空", groups = {AddGroup.class, EditGroup.class}) + private Long communityId; /** * 建筑名称 @@ -41,24 +41,6 @@ public class TbBuildingBo extends BaseEntity { @NotBlank(message = "建筑名称不能为空", groups = {AddGroup.class, EditGroup.class}) private String buildingName; - /** - * 省 - */ - @NotBlank(message = "省不能为空", groups = {AddGroup.class, EditGroup.class}) - private String province; - - /** - * 市 - */ - @NotBlank(message = "市不能为空", groups = {AddGroup.class, EditGroup.class}) - private String city; - - /** - * 区 - */ - @NotBlank(message = "区不能为空", groups = {AddGroup.class, EditGroup.class}) - private String district; - /** * 总层数 */ diff --git a/ruoyi-modules/Property/src/main/java/org/dromara/property/domain/bo/TbCommunityBo.java b/ruoyi-modules/Property/src/main/java/org/dromara/property/domain/bo/TbCommunityBo.java index ffe15102..8cb9e33e 100644 --- a/ruoyi-modules/Property/src/main/java/org/dromara/property/domain/bo/TbCommunityBo.java +++ b/ruoyi-modules/Property/src/main/java/org/dromara/property/domain/bo/TbCommunityBo.java @@ -1,15 +1,16 @@ package org.dromara.property.domain.bo; -import org.dromara.property.domain.TbCommunity; -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.property.domain.TbCommunity; + import java.util.Date; -import com.fasterxml.jackson.annotation.JsonFormat; /** * 小区业务对象 tb_community @@ -25,55 +26,57 @@ public class TbCommunityBo extends BaseEntity { /** * */ - @NotNull(message = "不能为空", groups = { EditGroup.class }) + @NotNull(message = "不能为空", groups = {EditGroup.class}) private Long id; /** * 社区名称 */ - @NotBlank(message = "社区名称不能为空", groups = { AddGroup.class, EditGroup.class }) + @NotBlank(message = "社区名称不能为空", groups = {AddGroup.class, EditGroup.class}) private String communityName; /** * 社区类型 1:园区,2:小区 */ - @NotNull(message = "社区类型 1:园区,2:小区不能为空", groups = { AddGroup.class, EditGroup.class }) + @NotNull(message = "社区类型 1:园区,2:小区不能为空", groups = {AddGroup.class, EditGroup.class}) private Integer communityType; + @NotBlank(message = "城市不能为null", groups = {AddGroup.class, EditGroup.class}) + private String cityFullCode; + + private String cityFullName; + /** * 省 */ - @NotBlank(message = "省不能为空", groups = { AddGroup.class, EditGroup.class }) private String province; /** * 市 */ - @NotBlank(message = "市不能为空", groups = { AddGroup.class, EditGroup.class }) private String city; /** * 区 */ - @NotBlank(message = "区不能为空", groups = { AddGroup.class, EditGroup.class }) private String district; /** * 地址 */ - @NotBlank(message = "地址不能为空", groups = { AddGroup.class, EditGroup.class }) + @NotBlank(message = "地址不能为空", groups = {AddGroup.class, EditGroup.class}) private String addr; /** * 经度 */ - @NotBlank(message = "经度不能为空", groups = { AddGroup.class, EditGroup.class }) + @NotBlank(message = "经度不能为空", groups = {AddGroup.class, EditGroup.class}) private String lon; /** * 维度 */ - @NotBlank(message = "维度不能为空", groups = { AddGroup.class, EditGroup.class }) + @NotBlank(message = "维度不能为空", groups = {AddGroup.class, EditGroup.class}) private String lat; /** diff --git a/ruoyi-modules/Property/src/main/java/org/dromara/property/domain/bo/TbFloorBo.java b/ruoyi-modules/Property/src/main/java/org/dromara/property/domain/bo/TbFloorBo.java index 27f717ed..65e65bc4 100644 --- a/ruoyi-modules/Property/src/main/java/org/dromara/property/domain/bo/TbFloorBo.java +++ b/ruoyi-modules/Property/src/main/java/org/dromara/property/domain/bo/TbFloorBo.java @@ -29,7 +29,7 @@ public class TbFloorBo extends BaseEntity { /** * 单元编码 */ - @NotBlank(message = "单元编码不能为空", groups = { AddGroup.class, EditGroup.class }) + @NotNull(message = "单元编码不能为空", groups = { AddGroup.class, EditGroup.class }) private Long unitId; /** diff --git a/ruoyi-modules/Property/src/main/java/org/dromara/property/domain/bo/TbRoomBo.java b/ruoyi-modules/Property/src/main/java/org/dromara/property/domain/bo/TbRoomBo.java index dd885b05..13163106 100644 --- a/ruoyi-modules/Property/src/main/java/org/dromara/property/domain/bo/TbRoomBo.java +++ b/ruoyi-modules/Property/src/main/java/org/dromara/property/domain/bo/TbRoomBo.java @@ -29,7 +29,7 @@ public class TbRoomBo extends BaseEntity { /** * 所属楼层ID */ - @NotBlank(message = "所属楼层ID不能为空", groups = { AddGroup.class, EditGroup.class }) + @NotNull(message = "所属楼层ID不能为空", groups = { AddGroup.class, EditGroup.class }) private Long floorId; /** diff --git a/ruoyi-modules/Property/src/main/java/org/dromara/property/domain/bo/TbUnitBo.java b/ruoyi-modules/Property/src/main/java/org/dromara/property/domain/bo/TbUnitBo.java index 469f985d..557eec3b 100644 --- a/ruoyi-modules/Property/src/main/java/org/dromara/property/domain/bo/TbUnitBo.java +++ b/ruoyi-modules/Property/src/main/java/org/dromara/property/domain/bo/TbUnitBo.java @@ -29,7 +29,7 @@ public class TbUnitBo extends BaseEntity { /** * 建筑名称 */ - @NotBlank(message = "建筑名称不能为空", groups = { AddGroup.class, EditGroup.class }) + @NotNull(message = "建筑名称不能为空", groups = { AddGroup.class, EditGroup.class }) private Long buildingId; /** diff --git a/ruoyi-modules/Property/src/main/java/org/dromara/property/domain/convert/SysCityAreaCovert.java b/ruoyi-modules/Property/src/main/java/org/dromara/property/domain/convert/SysCityAreaCovert.java index 704bf2d8..a905f734 100644 --- a/ruoyi-modules/Property/src/main/java/org/dromara/property/domain/convert/SysCityAreaCovert.java +++ b/ruoyi-modules/Property/src/main/java/org/dromara/property/domain/convert/SysCityAreaCovert.java @@ -2,6 +2,7 @@ package org.dromara.property.domain.convert; import org.dromara.property.domain.SysCityArea; import org.dromara.property.domain.vo.CityAreaTreeVo; +import org.dromara.property.domain.vo.SysCityAreaVo; import org.mapstruct.Mapper; import org.mapstruct.MappingConstants; import org.mapstruct.ReportingPolicy; @@ -21,4 +22,6 @@ public interface SysCityAreaCovert { List entity2Vo(List cityAreas); + List vo2TreeVo(List cityAreas); + } diff --git a/ruoyi-modules/Property/src/main/java/org/dromara/property/domain/vo/CityAreaTreeVo.java b/ruoyi-modules/Property/src/main/java/org/dromara/property/domain/vo/CityAreaTreeVo.java index 7800fedd..7fff38a7 100644 --- a/ruoyi-modules/Property/src/main/java/org/dromara/property/domain/vo/CityAreaTreeVo.java +++ b/ruoyi-modules/Property/src/main/java/org/dromara/property/domain/vo/CityAreaTreeVo.java @@ -1,11 +1,14 @@ package org.dromara.property.domain.vo; +import io.github.linpeilie.annotations.AutoMapper; import lombok.Data; import org.dromara.common.core.domain.TreeEntity; +import org.dromara.property.domain.SysCityArea; import java.util.List; @Data +@AutoMapper(target = SysCityArea.class) public class CityAreaTreeVo implements TreeEntity { /** diff --git a/ruoyi-modules/Property/src/main/java/org/dromara/property/domain/vo/SysCityAreaVo.java b/ruoyi-modules/Property/src/main/java/org/dromara/property/domain/vo/SysCityAreaVo.java index b71cc605..3109990a 100644 --- a/ruoyi-modules/Property/src/main/java/org/dromara/property/domain/vo/SysCityAreaVo.java +++ b/ruoyi-modules/Property/src/main/java/org/dromara/property/domain/vo/SysCityAreaVo.java @@ -77,11 +77,4 @@ public class SysCityAreaVo implements Serializable { @ExcelProperty(value = "维度") private String lat; - /** - * 数据状态:1有效,0无效 - */ - @ExcelProperty(value = "数据状态:1有效,0无效") - private Long dataState; - - } diff --git a/ruoyi-modules/Property/src/main/java/org/dromara/property/domain/vo/TbBuildingVo.java b/ruoyi-modules/Property/src/main/java/org/dromara/property/domain/vo/TbBuildingVo.java index 7579d03f..3f892373 100644 --- a/ruoyi-modules/Property/src/main/java/org/dromara/property/domain/vo/TbBuildingVo.java +++ b/ruoyi-modules/Property/src/main/java/org/dromara/property/domain/vo/TbBuildingVo.java @@ -1,21 +1,18 @@ package org.dromara.property.domain.vo; -import java.util.Date; -import com.fasterxml.jackson.annotation.JsonFormat; -import org.dromara.property.domain.TbBuilding; import cn.idev.excel.annotation.ExcelIgnoreUnannotated; import cn.idev.excel.annotation.ExcelProperty; -import org.dromara.common.excel.annotation.ExcelDictFormat; -import org.dromara.common.excel.convert.ExcelDictConvert; import io.github.linpeilie.annotations.AutoMapper; import lombok.Data; +import org.dromara.common.translation.annotation.Translation; +import org.dromara.common.translation.constant.TransConstant; +import org.dromara.property.domain.TbBuilding; import java.io.Serial; import java.io.Serializable; import java.util.Date; - /** * 建筑视图对象 tb_building * @@ -45,24 +42,6 @@ public class TbBuildingVo implements Serializable { @ExcelProperty(value = "建筑名称") private String buildingName; - /** - * 省 - */ - @ExcelProperty(value = "省") - private String province; - - /** - * 市 - */ - @ExcelProperty(value = "市") - private String city; - - /** - * 区 - */ - @ExcelProperty(value = "区") - private String district; - /** * 总层数 */ @@ -81,6 +60,9 @@ public class TbBuildingVo implements Serializable { @ExcelProperty(value = "建筑类型('1:住宅','2:商业','3:混合')") private Integer buildType; + @Translation(type = TransConstant.DICT_TYPE_TO_LABEL, mapper = "buildType", other = "sis_build_use_type") + private String buildTypeName; + /** * 电梯数量 */ @@ -111,12 +93,6 @@ public class TbBuildingVo implements Serializable { @ExcelProperty(value = "维度") private String lat; - /** - * 产权性质(1:自持,2:承租,3:自持+承租,4:政府免费使用) - */ - @ExcelProperty(value = "产权性质(1:自持,2:承租,3:自持+承租,4:政府免费使用)") - private Integer cqxz; - /** * 排序字段 */ diff --git a/ruoyi-modules/Property/src/main/java/org/dromara/property/domain/vo/TbCommunityVo.java b/ruoyi-modules/Property/src/main/java/org/dromara/property/domain/vo/TbCommunityVo.java index f8f9acc4..9e4853f9 100644 --- a/ruoyi-modules/Property/src/main/java/org/dromara/property/domain/vo/TbCommunityVo.java +++ b/ruoyi-modules/Property/src/main/java/org/dromara/property/domain/vo/TbCommunityVo.java @@ -1,21 +1,16 @@ package org.dromara.property.domain.vo; -import java.util.Date; -import com.fasterxml.jackson.annotation.JsonFormat; -import org.dromara.property.domain.TbCommunity; import cn.idev.excel.annotation.ExcelIgnoreUnannotated; import cn.idev.excel.annotation.ExcelProperty; -import org.dromara.common.excel.annotation.ExcelDictFormat; -import org.dromara.common.excel.convert.ExcelDictConvert; import io.github.linpeilie.annotations.AutoMapper; import lombok.Data; +import org.dromara.property.domain.TbCommunity; import java.io.Serial; import java.io.Serializable; import java.util.Date; - /** * 小区视图对象 tb_community * @@ -31,7 +26,7 @@ public class TbCommunityVo implements Serializable { private static final long serialVersionUID = 1L; /** - * + * */ @ExcelProperty(value = "") private Long id; @@ -48,6 +43,10 @@ public class TbCommunityVo implements Serializable { @ExcelProperty(value = "社区类型 1:园区,2:小区") private Long communityType; + private String cityFullCode; + + private String cityFullName; + /** * 省 */ @@ -91,7 +90,7 @@ public class TbCommunityVo implements Serializable { private Long area; /** - * + * */ @ExcelProperty(value = "") private Date builtYear; diff --git a/ruoyi-modules/Property/src/main/java/org/dromara/property/domain/vo/TbFloorVo.java b/ruoyi-modules/Property/src/main/java/org/dromara/property/domain/vo/TbFloorVo.java index 247115d4..69802b65 100644 --- a/ruoyi-modules/Property/src/main/java/org/dromara/property/domain/vo/TbFloorVo.java +++ b/ruoyi-modules/Property/src/main/java/org/dromara/property/domain/vo/TbFloorVo.java @@ -34,6 +34,17 @@ public class TbFloorVo implements Serializable { @ExcelProperty(value = "") private Long id; + /** + * 社区id + */ + private Long communityId; + + /** + * 建筑名称 + */ + @ExcelProperty(value = "建筑名称") + private Long buildingId; + /** * 单元编码 */ diff --git a/ruoyi-modules/Property/src/main/java/org/dromara/property/domain/vo/TbRoomVo.java b/ruoyi-modules/Property/src/main/java/org/dromara/property/domain/vo/TbRoomVo.java index b7ca0693..90b87bf2 100644 --- a/ruoyi-modules/Property/src/main/java/org/dromara/property/domain/vo/TbRoomVo.java +++ b/ruoyi-modules/Property/src/main/java/org/dromara/property/domain/vo/TbRoomVo.java @@ -1,17 +1,17 @@ package org.dromara.property.domain.vo; -import org.dromara.property.domain.TbRoom; import cn.idev.excel.annotation.ExcelIgnoreUnannotated; import cn.idev.excel.annotation.ExcelProperty; -import org.dromara.common.excel.annotation.ExcelDictFormat; -import org.dromara.common.excel.convert.ExcelDictConvert; import io.github.linpeilie.annotations.AutoMapper; import lombok.Data; +import org.dromara.common.excel.annotation.ExcelDictFormat; +import org.dromara.common.excel.convert.ExcelDictConvert; +import org.dromara.common.translation.annotation.Translation; +import org.dromara.common.translation.constant.TransConstant; +import org.dromara.property.domain.TbRoom; import java.io.Serial; import java.io.Serializable; -import java.util.Date; - /** @@ -34,6 +34,23 @@ public class TbRoomVo implements Serializable { @ExcelProperty(value = "") private Long id; + /** + * 社区id + */ + private Long communityId; + + /** + * 建筑名称 + */ + @ExcelProperty(value = "建筑名称") + private Long buildingId; + + /** + * 单元编码 + */ + @ExcelProperty(value = "单元编码") + private Long unitId; + /** * 所属楼层ID */ @@ -52,6 +69,9 @@ public class TbRoomVo implements Serializable { @ExcelProperty(value = "房间类型('住宅','商铺','办公室','设备间','公共区域')") private Integer roomType; + @Translation(type = TransConstant.DICT_TYPE_TO_LABEL, mapper = "roomType", other = "room_type") + private String roomTypeName; + /** * 面积(平方米) */ @@ -67,9 +87,13 @@ public class TbRoomVo implements Serializable { /** * 朝向('东','南','西','北','东南','东北','西南','西北') */ + @ExcelProperty(value = "朝向('东','南','西','北','东南','东北','西南','西北')") private Integer orientation; + @Translation(type = TransConstant.DICT_TYPE_TO_LABEL, mapper = "orientation", other = "direction_towards") + private Integer orientationName; + /** * 是否可售 */ @@ -83,5 +107,7 @@ public class TbRoomVo implements Serializable { @ExcelDictFormat(readConverterExp = "'=空置','已售','已租','自用'") private Integer status; + @Translation(type = TransConstant.DICT_TYPE_TO_LABEL, mapper = "status", other = "wy_fjzt") + private String statusName; } diff --git a/ruoyi-modules/Property/src/main/java/org/dromara/property/domain/vo/TbUnitVo.java b/ruoyi-modules/Property/src/main/java/org/dromara/property/domain/vo/TbUnitVo.java index 22a12701..0afc4b55 100644 --- a/ruoyi-modules/Property/src/main/java/org/dromara/property/domain/vo/TbUnitVo.java +++ b/ruoyi-modules/Property/src/main/java/org/dromara/property/domain/vo/TbUnitVo.java @@ -34,6 +34,8 @@ public class TbUnitVo implements Serializable { @ExcelProperty(value = "主键id") private Long id; + private Long communityId; + /** * 建筑名称 */ diff --git a/ruoyi-modules/Property/src/main/java/org/dromara/property/mapper/SysCityAreaMapper.java b/ruoyi-modules/Property/src/main/java/org/dromara/property/mapper/SysCityAreaMapper.java index 385368da..786b1815 100644 --- a/ruoyi-modules/Property/src/main/java/org/dromara/property/mapper/SysCityAreaMapper.java +++ b/ruoyi-modules/Property/src/main/java/org/dromara/property/mapper/SysCityAreaMapper.java @@ -1,16 +1,23 @@ package org.dromara.property.mapper; -import org.dromara.property.domain.SysCityArea; -import org.dromara.property.domain.vo.SysCityAreaVo; +import org.apache.ibatis.annotations.Select; import org.dromara.common.mybatis.core.mapper.BaseMapperPlus; +import org.dromara.property.domain.SysCityArea; +import org.dromara.property.domain.vo.CityAreaTreeVo; +import org.dromara.property.domain.vo.SysCityAreaVo; + +import java.util.List; /** * 行政区划 -Mapper接口 + * Mapper接口 * * @author mocheng * @date 2025-06-18 */ public interface SysCityAreaMapper extends BaseMapperPlus { + @Select("select * from sys_city_area") + List seleAll(); + } 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 a5f9b86b..81764d1d 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 @@ -80,6 +80,6 @@ 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/impl/SysCityAreaServiceImpl.java b/ruoyi-modules/Property/src/main/java/org/dromara/property/service/impl/SysCityAreaServiceImpl.java index 037cb0b8..90648fa8 100644 --- a/ruoyi-modules/Property/src/main/java/org/dromara/property/service/impl/SysCityAreaServiceImpl.java +++ b/ruoyi-modules/Property/src/main/java/org/dromara/property/service/impl/SysCityAreaServiceImpl.java @@ -91,7 +91,6 @@ public class SysCityAreaServiceImpl implements ISysCityAreaService { lqw.like(StringUtils.isNotBlank(bo.getParentAreaName()), SysCityArea::getParentAreaName, bo.getParentAreaName()); lqw.eq(StringUtils.isNotBlank(bo.getLon()), SysCityArea::getLon, bo.getLon()); lqw.eq(StringUtils.isNotBlank(bo.getLat()), SysCityArea::getLat, bo.getLat()); - lqw.eq(bo.getDataState() != null, SysCityArea::getDataState, bo.getDataState()); return lqw; } @@ -150,12 +149,7 @@ public class SysCityAreaServiceImpl implements ISysCityAreaService { @Override public List queryTreeList() { - // 查询所有的行政区划数据 - List cityAreas = baseMapper.selectList(null); - if (CollectionUtil.isEmpty(cityAreas)) { - return new ArrayList<>(); - } - List vo = SysCityAreaCovert.INSTANCE.entity2Vo(cityAreas); + List vo = baseMapper.seleAll(); return TreeUtils.build(vo, "0"); } } 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 119fe5d4..d4ed2a13 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 @@ -1,5 +1,6 @@ package org.dromara.property.service.impl; +import cn.hutool.core.lang.Assert; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.toolkit.Wrappers; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; @@ -12,7 +13,9 @@ import org.dromara.common.mybatis.core.page.TableDataInfo; import org.dromara.property.domain.TbBuilding; import org.dromara.property.domain.bo.TbBuildingBo; import org.dromara.property.domain.vo.TbBuildingVo; +import org.dromara.property.domain.vo.TbCommunityVo; import org.dromara.property.mapper.TbBuildingMapper; +import org.dromara.property.mapper.TbCommunityMapper; import org.dromara.property.service.ITbBuildingService; import org.springframework.stereotype.Service; @@ -32,6 +35,7 @@ import java.util.Map; public class TbBuildingServiceImpl implements ITbBuildingService { private final TbBuildingMapper baseMapper; + private final TbCommunityMapper communityMapper; /** * 查询建筑 @@ -76,9 +80,6 @@ public class TbBuildingServiceImpl implements ITbBuildingService { lqw.orderByAsc(TbBuilding::getId); lqw.eq(bo.getCommunityId() != null, TbBuilding::getCommunityId, bo.getCommunityId()); lqw.like(StringUtils.isNotBlank(bo.getBuildingName()), TbBuilding::getBuildingName, bo.getBuildingName()); - lqw.eq(StringUtils.isNotBlank(bo.getProvince()), TbBuilding::getProvince, bo.getProvince()); - lqw.eq(StringUtils.isNotBlank(bo.getCity()), TbBuilding::getCity, bo.getCity()); - lqw.eq(StringUtils.isNotBlank(bo.getDistrict()), TbBuilding::getDistrict, bo.getDistrict()); lqw.eq(bo.getFloorCount() != null, TbBuilding::getFloorCount, bo.getFloorCount()); lqw.eq(bo.getUnitCount() != null, TbBuilding::getUnitCount, bo.getUnitCount()); lqw.eq(bo.getBuildType() != null, TbBuilding::getBuildType, bo.getBuildType()); @@ -99,6 +100,9 @@ public class TbBuildingServiceImpl implements ITbBuildingService { */ @Override public Boolean insertByBo(TbBuildingBo bo) { + // 检验社区是否存在 + TbCommunityVo tbCommunityVo = communityMapper.selectVoById(bo.getCommunityId()); + Assert.notNull(tbCommunityVo, "社区:{},不存在。", bo.getCommunityId()); TbBuilding add = MapstructUtils.convert(bo, TbBuilding.class); validEntityBeforeSave(add); boolean flag = baseMapper.insert(add) > 0; 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 cdbfe1bf..146c5ad4 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 @@ -1,5 +1,7 @@ package org.dromara.property.service.impl; +import cn.hutool.core.collection.CollUtil; +import cn.hutool.core.lang.Assert; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.toolkit.Wrappers; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; @@ -196,6 +198,12 @@ public class TbCommunityServiceImpl implements ITbCommunityService { */ @Override public Boolean insertByBo(TbCommunityBo bo) { + // 处理cityFullCode + String[] split = bo.getCityFullCode().split("/"); + Assert.isTrue(split.length == 3, "获取城市信息失败"); + bo.setProvince(split[0]); + bo.setCity(split[1]); + bo.setDistrict(split[2]); TbCommunity add = MapstructUtils.convert(bo, TbCommunity.class); validEntityBeforeSave(add); boolean flag = baseMapper.insert(add) > 0; @@ -213,6 +221,11 @@ public class TbCommunityServiceImpl implements ITbCommunityService { */ @Override public Boolean updateByBo(TbCommunityBo bo) { + String[] split = bo.getCityFullCode().split("/"); + Assert.isTrue(split.length == 3, "获取城市信息失败"); + bo.setProvince(split[0]); + bo.setCity(split[1]); + bo.setDistrict(split[2]); TbCommunity update = MapstructUtils.convert(bo, TbCommunity.class); validEntityBeforeSave(update); return baseMapper.updateById(update) > 0; 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 f86daa99..2c361e78 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 @@ -1,5 +1,6 @@ package org.dromara.property.service.impl; +import cn.hutool.core.lang.Assert; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.toolkit.Wrappers; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; @@ -12,8 +13,10 @@ import org.dromara.common.mybatis.core.page.TableDataInfo; import org.dromara.property.domain.TbFloor; import org.dromara.property.domain.bo.TbFloorBo; import org.dromara.property.domain.vo.TbFloorVo; +import org.dromara.property.domain.vo.TbUnitVo; import org.dromara.property.mapper.TbFloorMapper; import org.dromara.property.service.ITbFloorService; +import org.dromara.property.service.ITbUnitService; import org.springframework.stereotype.Service; import java.util.Collection; @@ -32,6 +35,7 @@ import java.util.Map; public class TbFloorServiceImpl implements ITbFloorService { private final TbFloorMapper baseMapper; + private final ITbUnitService tbUnitService; /** * 查询楼层 @@ -91,7 +95,12 @@ public class TbFloorServiceImpl implements ITbFloorService { */ @Override public Boolean insertByBo(TbFloorBo bo) { + // 验证单元是否存在 + TbUnitVo tbUnitVo = tbUnitService.queryById(bo.getUnitId()); + Assert.notNull(tbUnitVo, "单元:{},不存在。", bo.getUnitId()); TbFloor add = MapstructUtils.convert(bo, TbFloor.class); + add.setCommunityId(tbUnitVo.getCommunityId()); + add.setBuildingId(tbUnitVo.getBuildingId()); validEntityBeforeSave(add); boolean flag = baseMapper.insert(add) > 0; if (flag) { 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 0f010082..fd55cb0b 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 @@ -1,5 +1,6 @@ package org.dromara.property.service.impl; +import cn.hutool.core.lang.Assert; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.toolkit.Wrappers; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; @@ -11,8 +12,10 @@ import org.dromara.common.mybatis.core.page.PageQuery; import org.dromara.common.mybatis.core.page.TableDataInfo; import org.dromara.property.domain.TbRoom; import org.dromara.property.domain.bo.TbRoomBo; +import org.dromara.property.domain.vo.TbFloorVo; import org.dromara.property.domain.vo.TbRoomVo; import org.dromara.property.mapper.TbRoomMapper; +import org.dromara.property.service.ITbFloorService; import org.dromara.property.service.ITbRoomService; import org.springframework.stereotype.Service; @@ -32,6 +35,7 @@ import java.util.Map; public class TbRoomServiceImpl implements ITbRoomService { private final TbRoomMapper baseMapper; + private final ITbFloorService tbFloorService; /** * 查询房间信息 @@ -93,8 +97,12 @@ public class TbRoomServiceImpl implements ITbRoomService { */ @Override public Boolean insertByBo(TbRoomBo bo) { + TbFloorVo tbFloorVo = tbFloorService.queryById(bo.getFloorId()); + Assert.notNull(tbFloorVo, "楼层:{},不存在。", bo.getFloorId()); TbRoom add = MapstructUtils.convert(bo, TbRoom.class); - validEntityBeforeSave(add); + add.setCommunityId(tbFloorVo.getCommunityId()); + add.setBuildingId(tbFloorVo.getBuildingId()); + add.setUnitId(tbFloorVo.getUnitId()); boolean flag = baseMapper.insert(add) > 0; if (flag) { bo.setId(add.getId()); 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 1f5d1596..2b685609 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 @@ -1,5 +1,6 @@ package org.dromara.property.service.impl; +import cn.hutool.core.lang.Assert; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.toolkit.Wrappers; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; @@ -11,8 +12,10 @@ import org.dromara.common.mybatis.core.page.PageQuery; import org.dromara.common.mybatis.core.page.TableDataInfo; import org.dromara.property.domain.TbUnit; import org.dromara.property.domain.bo.TbUnitBo; +import org.dromara.property.domain.vo.TbBuildingVo; import org.dromara.property.domain.vo.TbUnitVo; import org.dromara.property.mapper.TbUnitMapper; +import org.dromara.property.service.ITbBuildingService; import org.dromara.property.service.ITbUnitService; import org.springframework.stereotype.Service; @@ -32,6 +35,7 @@ import java.util.Map; public class TbUnitServiceImpl implements ITbUnitService { private final TbUnitMapper baseMapper; + private final ITbBuildingService buildingService; /** * 查询单元 @@ -90,7 +94,11 @@ public class TbUnitServiceImpl implements ITbUnitService { */ @Override public Boolean insertByBo(TbUnitBo bo) { + // 检验建筑是否存在 + TbBuildingVo tbBuildingVo = buildingService.queryById(bo.getBuildingId()); + Assert.notNull(tbBuildingVo, "建筑:{},不存在。", bo.getBuildingId()); TbUnit add = MapstructUtils.convert(bo, TbUnit.class); + add.setCommunityId(tbBuildingVo.getCommunityId()); validEntityBeforeSave(add); boolean flag = baseMapper.insert(add) > 0; if (flag) { From 8b065703cdf880a2d6113d164ec24553a97f01c0 Mon Sep 17 00:00:00 2001 From: 15683799673 Date: Sun, 29 Jun 2025 02:59:43 +0800 Subject: [PATCH 14/21] =?UTF-8?q?=E5=A2=9E=E5=8A=A0=E9=97=A8=E7=A6=81?= =?UTF-8?q?=E8=AE=BE=E5=A4=87?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ruoyi-api/property-api/pom.xml | 29 +++++++++ .../property/api/domain/vo/RemoteFloorVo.java | 57 +++++++++++++++++ ruoyi-api/ruoyi-api-bom/pom.xml | 7 +++ ruoyi-modules/Property/pom.xml | 5 ++ .../dubbo/RemoteFloorServiceImpl.java | 29 +++++++++ ruoyi-modules/Sis/pom.xml | 4 ++ .../controller/SisDeviceManageController.java | 12 ++-- .../dromara/sis/domain/SisAccessControl.java | 19 +++--- .../dromara/sis/domain/SisDeviceManage.java | 30 +++++++-- .../sis/domain/bo/SisAccessControlBo.java | 51 ++++++++------- .../sis/domain/bo/SisDeviceManageBo.java | 46 ++++++++++---- .../sis/domain/vo/SisAccessControlVo.java | 21 ++++--- .../sis/domain/vo/SisDeviceManageVo.java | 30 +++++++-- .../sdk/unview/service/VideoAlarmService.java | 6 +- .../impl/SisAccessControlServiceImpl.java | 62 ++++++++++++------- .../impl/SisDeviceManageServiceImpl.java | 1 - 16 files changed, 315 insertions(+), 94 deletions(-) create mode 100644 ruoyi-api/property-api/pom.xml create mode 100644 ruoyi-api/property-api/src/main/java/org/dromara/property/api/domain/vo/RemoteFloorVo.java create mode 100644 ruoyi-modules/Property/src/main/java/org/dromara/property/dubbo/RemoteFloorServiceImpl.java diff --git a/ruoyi-api/property-api/pom.xml b/ruoyi-api/property-api/pom.xml new file mode 100644 index 00000000..6b8bb865 --- /dev/null +++ b/ruoyi-api/property-api/pom.xml @@ -0,0 +1,29 @@ + + + + org.dromara + ruoyi-api + ${revision} + + 4.0.0 + + property-api + + + 物业api模块 + + + + + + + org.dromara + ruoyi-common-core + + + + + + diff --git a/ruoyi-api/property-api/src/main/java/org/dromara/property/api/domain/vo/RemoteFloorVo.java b/ruoyi-api/property-api/src/main/java/org/dromara/property/api/domain/vo/RemoteFloorVo.java new file mode 100644 index 00000000..62adc36a --- /dev/null +++ b/ruoyi-api/property-api/src/main/java/org/dromara/property/api/domain/vo/RemoteFloorVo.java @@ -0,0 +1,57 @@ +package org.dromara.property.api.domain.vo; + +import lombok.Data; + +import java.io.Serial; +import java.io.Serializable; + +@Data +public class RemoteFloorVo implements Serializable { + + @Serial + private static final long serialVersionUID = 1L; + + private Long id; + + /** + * 社区id + */ + private Long communityId; + + /** + * 建筑名称 + */ + private Long buildingId; + + /** + * 单元编码 + */ + private Long unitId; + + /** + * 楼层数名称 + */ + private String floorName; + + /** + * 楼层号 + */ + private Long floorNumber; + + /** + * 楼层类型 + */ + private Integer floorType; + + /** + * 房间数量 + */ + private Integer roomCount; + + /** + * 层高 + */ + private Integer floorHeight; + + +} diff --git a/ruoyi-api/ruoyi-api-bom/pom.xml b/ruoyi-api/ruoyi-api-bom/pom.xml index dc105a7e..06936e32 100644 --- a/ruoyi-api/ruoyi-api-bom/pom.xml +++ b/ruoyi-api/ruoyi-api-bom/pom.xml @@ -41,6 +41,13 @@ ${revision} + + + org.dromara + property-api + ${revision} + + diff --git a/ruoyi-modules/Property/pom.xml b/ruoyi-modules/Property/pom.xml index ae6ad895..40ad288a 100644 --- a/ruoyi-modules/Property/pom.xml +++ b/ruoyi-modules/Property/pom.xml @@ -110,6 +110,11 @@ ruoyi-api-workflow + + org.dromara + property-api + + 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 new file mode 100644 index 00000000..a17f0b2b --- /dev/null +++ b/ruoyi-modules/Property/src/main/java/org/dromara/property/dubbo/RemoteFloorServiceImpl.java @@ -0,0 +1,29 @@ +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.utils.MapstructUtils; +import org.dromara.property.api.RemoteFloorService; +import org.dromara.property.api.domain.vo.RemoteFloorVo; +import org.dromara.property.domain.vo.TbFloorVo; +import org.dromara.property.service.ITbFloorService; + +/** + * 楼层服务远程调用实现 + * + * @author lxj + */ +@Slf4j +@RequiredArgsConstructor +@DubboService +public class RemoteFloorServiceImpl implements RemoteFloorService { + + private final ITbFloorService floorService; + + @Override + public RemoteFloorVo queryByFloorId(Long floorId) { + TbFloorVo tbFloorVo = floorService.queryById(floorId); + return MapstructUtils.convert(tbFloorVo, RemoteFloorVo.class); + } +} diff --git a/ruoyi-modules/Sis/pom.xml b/ruoyi-modules/Sis/pom.xml index f8f3f877..1a005cda 100644 --- a/ruoyi-modules/Sis/pom.xml +++ b/ruoyi-modules/Sis/pom.xml @@ -106,6 +106,10 @@ org.dromara ruoyi-api-workflow + + org.dromara + property-api + diff --git a/ruoyi-modules/Sis/src/main/java/org/dromara/sis/controller/SisDeviceManageController.java b/ruoyi-modules/Sis/src/main/java/org/dromara/sis/controller/SisDeviceManageController.java index 1b438c16..2320f961 100644 --- a/ruoyi-modules/Sis/src/main/java/org/dromara/sis/controller/SisDeviceManageController.java +++ b/ruoyi-modules/Sis/src/main/java/org/dromara/sis/controller/SisDeviceManageController.java @@ -40,7 +40,7 @@ public class SisDeviceManageController extends BaseController { /** * 查询设备管理列表 */ - @SaCheckPermission("system:deviceManage:list") + @SaCheckPermission("sis:deviceManage:list") @GetMapping("/list") public TableDataInfo list(SisDeviceManageBo bo, PageQuery pageQuery) { return sisDeviceManageService.queryPageList(bo, pageQuery); @@ -49,7 +49,7 @@ public class SisDeviceManageController extends BaseController { /** * 导出设备管理列表 */ - @SaCheckPermission("system:deviceManage:export") + @SaCheckPermission("sis:deviceManage:export") @Log(title = "设备管理", businessType = BusinessType.EXPORT) @PostMapping("/export") public void export(SisDeviceManageBo bo, HttpServletResponse response) { @@ -62,7 +62,7 @@ public class SisDeviceManageController extends BaseController { * * @param id 主键 */ - @SaCheckPermission("system:deviceManage:query") + @SaCheckPermission("sis:deviceManage:query") @GetMapping("/{id}") public R getInfo(@NotNull(message = "主键不能为空") @PathVariable("id") Long id) { @@ -72,7 +72,7 @@ public class SisDeviceManageController extends BaseController { /** * 新增设备管理 */ - @SaCheckPermission("system:deviceManage:add") + @SaCheckPermission("sis:deviceManage:add") @Log(title = "设备管理", businessType = BusinessType.INSERT) @RepeatSubmit() @PostMapping() @@ -83,7 +83,7 @@ public class SisDeviceManageController extends BaseController { /** * 修改设备管理 */ - @SaCheckPermission("system:deviceManage:edit") + @SaCheckPermission("sis:deviceManage:edit") @Log(title = "设备管理", businessType = BusinessType.UPDATE) @RepeatSubmit() @PutMapping() @@ -96,7 +96,7 @@ public class SisDeviceManageController extends BaseController { * * @param ids 主键串 */ - @SaCheckPermission("system:deviceManage:remove") + @SaCheckPermission("sis:deviceManage:remove") @Log(title = "设备管理", businessType = BusinessType.DELETE) @DeleteMapping("/{ids}") public R remove(@NotEmpty(message = "主键不能为空") 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 911f416a..292b5880 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 @@ -41,12 +41,22 @@ public class SisAccessControl extends TenantEntity { /** * 园区编码 */ - private String communityCode; + private Long communityId; /** * 建筑编码 */ - private String buildingCode; + private Long buildingId; + + /** + * 园区编码 + */ + private Long unitId; + + /** + * 建筑编码 + */ + private Long floorId; /** * 门禁设备ip @@ -83,10 +93,5 @@ public class SisAccessControl extends TenantEntity { */ private String outCode; - /** - * 组织编码 - */ - private String orgCode; - } diff --git a/ruoyi-modules/Sis/src/main/java/org/dromara/sis/domain/SisDeviceManage.java b/ruoyi-modules/Sis/src/main/java/org/dromara/sis/domain/SisDeviceManage.java index 51d347cf..09015a2a 100644 --- a/ruoyi-modules/Sis/src/main/java/org/dromara/sis/domain/SisDeviceManage.java +++ b/ruoyi-modules/Sis/src/main/java/org/dromara/sis/domain/SisDeviceManage.java @@ -28,11 +28,6 @@ public class SisDeviceManage extends BaseEntity { @TableId(value = "id") private Long id; - /** - * 设备编码 - */ - private String deviceNo; - /** * 设备名称 */ @@ -78,5 +73,30 @@ public class SisDeviceManage extends BaseEntity { */ private Long accessControlId; + /** + * 设备账号 + */ + private String deviceAccount; + + /** + * 设备密码 + */ + private String devicePwd; + + /** + * 录像机账号 + */ + private String vcrAccount; + + /** + * 录像机密码 + */ + private String vcrPwd; + + /** + * 设备在录像机的通道编码 + */ + private String channelNo; + } 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 ee1075e2..b9e2d1c4 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 @@ -1,19 +1,20 @@ package org.dromara.sis.domain.bo; -import org.dromara.sis.domain.SisAccessControl; -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.SisAccessControl; /** * 门禁设备业务对象 sis_access_control * * @author lxj - * @since 2025-06-25 + * @since 2025-06-25 */ @Data @EqualsAndHashCode(callSuper = true) @@ -23,61 +24,69 @@ public class SisAccessControlBo extends BaseEntity { /** * */ - @NotNull(message = "不能为空", groups = { EditGroup.class }) + @NotNull(message = "不能为空", groups = {EditGroup.class}) private Long id; /** * 门禁设备编码 */ - @NotBlank(message = "门禁设备编码不能为空", groups = { AddGroup.class, EditGroup.class }) + @NotBlank(message = "门禁设备编码不能为空", groups = {AddGroup.class, EditGroup.class}) private String accessCode; /** * 门禁名称 */ - @NotBlank(message = "门禁名称不能为空", groups = { AddGroup.class, EditGroup.class }) + @NotBlank(message = "门禁名称不能为空", groups = {AddGroup.class, EditGroup.class}) private String accessName; /** * 园区编码 */ - @NotBlank(message = "园区编码不能为空", groups = { AddGroup.class, EditGroup.class }) - private String communityCode; + private Long communityId; /** * 建筑编码 */ - @NotBlank(message = "建筑编码不能为空", groups = { AddGroup.class, EditGroup.class }) - private String buildingCode; + private Long buildingId; + + /** + * 园区编码 + */ + private Long unitId; + + /** + * 建筑编码 + */ + private Long floorId; /** * 门禁设备ip */ - @NotBlank(message = "门禁设备ip不能为空", groups = { AddGroup.class, EditGroup.class }) + @NotBlank(message = "门禁设备ip不能为空", groups = {AddGroup.class, EditGroup.class}) private String accessIp; /** * */ - @NotNull(message = "不能为空", groups = { AddGroup.class, EditGroup.class }) + @NotNull(message = "不能为空", groups = {AddGroup.class, EditGroup.class}) private Integer accessPort; /** * 门禁设备类型 */ - @NotNull(message = "门禁设备类型不能为空", groups = { AddGroup.class, EditGroup.class }) + @NotNull(message = "门禁设备类型不能为空", groups = {AddGroup.class, EditGroup.class}) private Long accessType; /** * */ - @NotBlank(message = "不能为空", groups = { AddGroup.class, EditGroup.class }) + @NotBlank(message = "不能为空", groups = {AddGroup.class, EditGroup.class}) private String factoryCode; /** * 控制卡类型:1-系统,2-E8 */ - @NotNull(message = "控制卡类型:1-系统,2-E8不能为空", groups = { AddGroup.class, EditGroup.class }) + @NotNull(message = "控制卡类型:1-系统,2-E8不能为空", groups = {AddGroup.class, EditGroup.class}) private Long controlType; /** @@ -90,12 +99,6 @@ public class SisAccessControlBo extends BaseEntity { */ private String outCode; - /** - * 组织编码 - */ - @NotBlank(message = "组织编码不能为空", groups = { AddGroup.class, EditGroup.class }) - private String orgCode; - /** * 绑定设备Id */ diff --git a/ruoyi-modules/Sis/src/main/java/org/dromara/sis/domain/bo/SisDeviceManageBo.java b/ruoyi-modules/Sis/src/main/java/org/dromara/sis/domain/bo/SisDeviceManageBo.java index f1fd769a..7ae514ec 100644 --- a/ruoyi-modules/Sis/src/main/java/org/dromara/sis/domain/bo/SisDeviceManageBo.java +++ b/ruoyi-modules/Sis/src/main/java/org/dromara/sis/domain/bo/SisDeviceManageBo.java @@ -1,13 +1,14 @@ package org.dromara.sis.domain.bo; -import org.dromara.sis.domain.SisDeviceManage; -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.SisDeviceManage; /** * 设备管理业务对象 sis_device_manage @@ -26,12 +27,6 @@ public class SisDeviceManageBo extends BaseEntity { @NotNull(message = "主键id不能为空", groups = {EditGroup.class}) private Long id; - /** - * 设备编码 - */ - @NotBlank(message = "设备编码不能为空", groups = {AddGroup.class, EditGroup.class}) - private String deviceNo; - /** * 设备名称 */ @@ -58,7 +53,7 @@ public class SisDeviceManageBo extends BaseEntity { /** * 父级设备id */ - @NotNull(message = "父级设备id不能为空", groups = {AddGroup.class, EditGroup.class}) +// @NotNull(message = "父级设备id不能为空", groups = {AddGroup.class, EditGroup.class}) private Long parentId; /** @@ -76,5 +71,32 @@ public class SisDeviceManageBo extends BaseEntity { */ private Long accessControlId; + /** + * 设备账号 + */ + @NotBlank(message = "设备账号不能为空", groups = {AddGroup.class, EditGroup.class}) + private String deviceAccount; + + /** + * 设备密码 + */ + @NotBlank(message = "设备密码不能为空", groups = {AddGroup.class, EditGroup.class}) + private String devicePwd; + + /** + * 录像机账号 + */ + private String vcrAccount; + + /** + * 录像机密码 + */ + private String vcrPwd; + + /** + * 设备在录像机的通道编码 + */ + private String channelNo; + } 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 8a4d5793..9d626fce 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 @@ -46,14 +46,22 @@ public class SisAccessControlVo implements Serializable { /** * 园区编码 */ - @ExcelProperty(value = "园区编码") - private String communityCode; + private Long communityId; /** * 建筑编码 */ - @ExcelProperty(value = "建筑编码") - private String buildingCode; + private Long buildingId; + + /** + * 园区编码 + */ + private Long unitId; + + /** + * 建筑编码 + */ + private Long floorId; /** * 门禁设备ip @@ -97,10 +105,5 @@ public class SisAccessControlVo implements Serializable { @ExcelProperty(value = "外部编码") private String outCode; - /** - * 组织编码 - */ - @ExcelProperty(value = "外部编码") - private String orgCode; } diff --git a/ruoyi-modules/Sis/src/main/java/org/dromara/sis/domain/vo/SisDeviceManageVo.java b/ruoyi-modules/Sis/src/main/java/org/dromara/sis/domain/vo/SisDeviceManageVo.java index 6ac3c70c..7b4c4ea5 100644 --- a/ruoyi-modules/Sis/src/main/java/org/dromara/sis/domain/vo/SisDeviceManageVo.java +++ b/ruoyi-modules/Sis/src/main/java/org/dromara/sis/domain/vo/SisDeviceManageVo.java @@ -31,12 +31,6 @@ public class SisDeviceManageVo implements Serializable { @ExcelProperty(value = "主键id") private Long id; - /** - * 设备编码 - */ - @ExcelProperty(value = "设备编码") - private String deviceNo; - /** * 设备名称 */ @@ -85,5 +79,29 @@ public class SisDeviceManageVo implements Serializable { @ExcelProperty(value = "门禁id") private Long accessControlId; + /** + * 设备账号 + */ + private String deviceAccount; + + /** + * 设备密码 + */ + private String devicePwd; + + /** + * 录像机账号 + */ + private String vcrAccount; + + /** + * 录像机密码 + */ + private String vcrPwd; + + /** + * 设备在录像机的通道编码 + */ + private String channelNo; } 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 5e0dd56c..3a5b0f2c 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 @@ -90,7 +90,11 @@ public class VideoAlarmService { * @param alarmReportData 告警数据 */ private void handleFacialCapture(UvModel.AlarmReportInfo alarmReportData) { - //TODO + // 查询设备是偶绑定门径 + + // 校验人脸是偶有同行此门禁的权限 + + // 如果有通行权限,则打开门禁 } /** 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 c50a8184..bcc9f1ad 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 @@ -1,33 +1,35 @@ package org.dromara.sis.service.impl; import cn.hutool.core.lang.Assert; -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 cn.hutool.core.util.StrUtil; 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.SisDeviceManage; +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.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.mapper.SisDeviceManageMapper; +import org.dromara.sis.domain.vo.SisAccessControlVo; +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.ISisDeviceManageService; import org.springframework.stereotype.Service; -import org.dromara.sis.domain.bo.SisAccessControlBo; -import org.dromara.sis.domain.vo.SisAccessControlVo; -import org.dromara.sis.domain.SisAccessControl; -import org.dromara.sis.mapper.SisAccessControlMapper; -import org.dromara.sis.service.ISisAccessControlService; import org.springframework.transaction.annotation.Transactional; +import java.util.Collection; import java.util.List; import java.util.Map; -import java.util.Collection; /** * 门禁设备Service业务层处理 @@ -42,7 +44,11 @@ public class SisAccessControlServiceImpl implements ISisAccessControlService { private final SisAccessControlMapper baseMapper; private final DoorDeviceService doorDeviceService; - private final ISisDeviceManageService sisDeviceManageService; + private final ISisDeviceManageService sisDeviceManageService; + + @DubboReference + private RemoteFloorService remoteFloorService; + /** * 查询门禁设备 @@ -51,7 +57,7 @@ public class SisAccessControlServiceImpl implements ISisAccessControlService { * @return 门禁设备 */ @Override - public SisAccessControlVo queryById(Long id){ + public SisAccessControlVo queryById(Long id) { return baseMapper.selectVoById(id); } @@ -87,8 +93,6 @@ public class SisAccessControlServiceImpl implements ISisAccessControlService { 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.getCommunityCode()), SisAccessControl::getCommunityCode, bo.getCommunityCode()); - lqw.eq(StringUtils.isNotBlank(bo.getBuildingCode()), SisAccessControl::getBuildingCode, bo.getBuildingCode()); 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()); @@ -96,7 +100,12 @@ public class SisAccessControlServiceImpl implements ISisAccessControlService { 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()); - lqw.eq(StringUtils.isNotBlank(bo.getSearchValue()), SisAccessControl::getSearchValue, bo.getSearchValue()); + if (StrUtil.isNotEmpty(bo.getSearchValue())) { + lqw.or().eq(SisAccessControl::getCommunityId, bo.getSearchValue()); + lqw.or().eq(SisAccessControl::getBuildingId, bo.getSearchValue()); + lqw.or().eq(SisAccessControl::getUnitId, bo.getSearchValue()); + lqw.or().eq(SisAccessControl::getFloorId, bo.getSearchValue()); + } return lqw; } @@ -109,12 +118,19 @@ public class SisAccessControlServiceImpl implements ISisAccessControlService { @Override @Transactional(rollbackFor = Exception.class) public Boolean insertByBo(SisAccessControlBo bo) { + // 校验楼层是否存在 + RemoteFloorVo remoteFloorVo = remoteFloorService.queryByFloorId(bo.getFloorId()); + Assert.notNull(remoteFloorVo, "当前楼层信息不存在。"); 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) { // 添加E8门禁设备 - if (add.getControlType() == 2L){ + if (add.getControlType() == 2L) { log.info("开始同步写入E8门禁"); DoorDeviceAddReq e8DoorReq = new DoorDeviceAddReq(); // 设备类型 @@ -137,7 +153,7 @@ public class SisAccessControlServiceImpl implements ISisAccessControlService { DoorDeviceAddRes e8DoorRes = doorDeviceService.addDoorDevice(e8DoorReq); Assert.notNull(e8DoorRes, "写入E8平台失败"); - log.info("E8平台写入成功,将返回值:{},回写到{}门禁中!",e8DoorRes.getId(),add.getAccessName()); + log.info("E8平台写入成功,将返回值:{},回写到{}门禁中!", e8DoorRes.getId(), add.getAccessName()); SisAccessControlBo wbBo = new SisAccessControlBo(); wbBo.setId(add.getId()); wbBo.setOutCode(e8DoorRes.getId().toString()); @@ -147,7 +163,7 @@ public class SisAccessControlServiceImpl implements ISisAccessControlService { } // 判断是否绑定摄像头 - if (bo.getDeviceId() != null){ + if (bo.getDeviceId() != null) { SisDeviceManageBo device = new SisDeviceManageBo(); device.setId(bo.getDeviceId()); device.setAccessControlId(add.getId()); @@ -173,7 +189,7 @@ public class SisAccessControlServiceImpl implements ISisAccessControlService { /** * 保存前的数据校验 */ - private void validEntityBeforeSave(SisAccessControl entity){ + private void validEntityBeforeSave(SisAccessControl entity) { //TODO 做一些数据校验,如唯一约束 } @@ -186,7 +202,7 @@ public class SisAccessControlServiceImpl implements ISisAccessControlService { */ @Override public Boolean deleteWithValidByIds(Collection ids, Boolean isValid) { - if(isValid){ + if (isValid) { //TODO 做一些业务上的校验,判断是否需要校验 } return baseMapper.deleteByIds(ids) > 0; 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 4a7fb40b..8cc06fff 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 @@ -74,7 +74,6 @@ public class SisDeviceManageServiceImpl implements ISisDeviceManageService { Map params = bo.getParams(); LambdaQueryWrapper lqw = Wrappers.lambdaQuery(); lqw.orderByAsc(SisDeviceManage::getId); - lqw.eq(StringUtils.isNotBlank(bo.getDeviceNo()), SisDeviceManage::getDeviceNo, bo.getDeviceNo()); lqw.like(StringUtils.isNotBlank(bo.getDeviceName()), SisDeviceManage::getDeviceName, bo.getDeviceName()); lqw.eq(StringUtils.isNotBlank(bo.getDeviceIp()), SisDeviceManage::getDeviceIp, bo.getDeviceIp()); lqw.eq(bo.getDevicePort() != null, SisDeviceManage::getDevicePort, bo.getDevicePort()); From 39f35fe58b3b9bc2b5cdd1823ef4bd2b10582c9d Mon Sep 17 00:00:00 2001 From: zcxlsm Date: Sun, 29 Jun 2025 11:49:31 +0800 Subject: [PATCH 15/21] =?UTF-8?q?feat(sis):=20=E6=B7=BB=E5=8A=A0=20E8?= =?UTF-8?q?=E5=B9=B3=E5=8F=B0=E5=AF=B9=E5=BA=94=E5=85=B3=E7=B3=BB=E6=A8=A1?= =?UTF-8?q?=E5=9D=97?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../org/dromara/sis/domain/SisEEightRef.java | 71 +++++++++ .../dromara/sis/domain/bo/SisEEightRefBo.java | 75 +++++++++ .../dromara/sis/domain/vo/SisEEightRefVo.java | 86 +++++++++++ .../sis/mapper/SisEEightRefMapper.java | 15 ++ .../sis/service/ISisEEightRefService.java | 69 +++++++++ .../service/impl/SisEEightRefServiceImpl.java | 144 ++++++++++++++++++ 6 files changed, 460 insertions(+) create mode 100644 ruoyi-modules/Sis/src/main/java/org/dromara/sis/domain/SisEEightRef.java create mode 100644 ruoyi-modules/Sis/src/main/java/org/dromara/sis/domain/bo/SisEEightRefBo.java create mode 100644 ruoyi-modules/Sis/src/main/java/org/dromara/sis/domain/vo/SisEEightRefVo.java create mode 100644 ruoyi-modules/Sis/src/main/java/org/dromara/sis/mapper/SisEEightRefMapper.java create mode 100644 ruoyi-modules/Sis/src/main/java/org/dromara/sis/service/ISisEEightRefService.java create mode 100644 ruoyi-modules/Sis/src/main/java/org/dromara/sis/service/impl/SisEEightRefServiceImpl.java 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 new file mode 100644 index 00000000..04e2188c --- /dev/null +++ b/ruoyi-modules/Sis/src/main/java/org/dromara/sis/domain/SisEEightRef.java @@ -0,0 +1,71 @@ +package org.dromara.sis.domain; + +import org.dromara.common.tenant.core.TenantEntity; +import com.baomidou.mybatisplus.annotation.*; +import lombok.Data; +import lombok.EqualsAndHashCode; + +import java.io.Serial; + +/** + * E8平台对应关系对象 sis_e_eight_ref + * + * @author lsm + * @date 2025-06-29 + */ +@Data +@EqualsAndHashCode(callSuper = true) +@TableName("sis_e_eight_ref") +public class SisEEightRef extends TenantEntity { + + @Serial + private static final long serialVersionUID = 1L; + + /** + * 主键 + */ + @TableId(value = "id") + private Long id; + + /** + * 系统用户ID + */ + private Long userId; + + /** + * 门禁id,逗号分隔 + */ + private String acId; + + /** + * 图片id + */ + private Long imgId; + + /** + * 物理卡no + */ + private String cardNo; + + /** + * E8用户ID + */ + private Long remoteUserId; + + /** + * E8图片URL + */ + private String remoteImgUrl; + + /** + * E8凭证ID + */ + private Long remoteVoucherId; + + /** + * E8权限ID + */ + private Long remoteAuthId; + + +} 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 new file mode 100644 index 00000000..0e44a8ce --- /dev/null +++ b/ruoyi-modules/Sis/src/main/java/org/dromara/sis/domain/bo/SisEEightRefBo.java @@ -0,0 +1,75 @@ +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 lombok.Data; +import lombok.EqualsAndHashCode; +import jakarta.validation.constraints.*; + +import java.util.List; + +/** + * E8平台对应关系业务对象 sis_e_eight_ref + * + * @author lsm + * @date 2025-06-29 + */ +@Data +@EqualsAndHashCode(callSuper = true) +@AutoMapper(target = SisEEightRef.class, reverseConvertGenerate = false) +public class SisEEightRefBo extends BaseEntity { + + /** + * 主键 + */ + @NotNull(message = "主键不能为空", groups = { EditGroup.class }) + private Long id; + + /** + * 系统用户ID + */ + @NotNull(message = "系统用户ID不能为空", groups = { AddGroup.class, EditGroup.class }) + private Long userId; + + /** + * 门禁id列表 + */ + @NotBlank(message = "门禁id列表不能为空", groups = { AddGroup.class, EditGroup.class }) + private List acIds; + + /** + * 图片id + */ + private Long imgId; + + /** + * 物理卡no + */ + private String cardNo; + + /** + * E8用户ID + */ + @NotNull(message = "E8用户ID不能为空", groups = { AddGroup.class, EditGroup.class }) + private Long remoteUserId; + + /** + * E8图片URL + */ + private String remoteImgUrl; + + /** + * E8凭证ID + */ + private Long remoteVoucherId; + + /** + * E8权限ID + */ + private Long remoteAuthId; + + +} 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 new file mode 100644 index 00000000..c118c80a --- /dev/null +++ b/ruoyi-modules/Sis/src/main/java/org/dromara/sis/domain/vo/SisEEightRefVo.java @@ -0,0 +1,86 @@ +package org.dromara.sis.domain.vo; + +import org.dromara.sis.domain.SisEEightRef; +import cn.idev.excel.annotation.ExcelIgnoreUnannotated; +import cn.idev.excel.annotation.ExcelProperty; +import org.dromara.common.excel.annotation.ExcelDictFormat; +import org.dromara.common.excel.convert.ExcelDictConvert; +import io.github.linpeilie.annotations.AutoMapper; +import lombok.Data; + +import java.io.Serial; +import java.io.Serializable; +import java.util.Date; +import java.util.List; + + +/** + * E8平台对应关系视图对象 sis_e_eight_ref + * + * @author lsm + * @date 2025-06-29 + */ +@Data +@ExcelIgnoreUnannotated +@AutoMapper(target = SisEEightRef.class) +public class SisEEightRefVo implements Serializable { + + @Serial + private static final long serialVersionUID = 1L; + + /** + * 主键 + */ + @ExcelProperty(value = "主键") + private Long id; + + /** + * 系统用户ID + */ + @ExcelProperty(value = "系统用户ID") + private Long userId; + + /** + * 门禁id列表 + */ + @ExcelProperty(value = "门禁id列表") + private List acIds; + + /** + * 图片id + */ + @ExcelProperty(value = "图片id") + private Long imgId; + + /** + * 物理卡no + */ + @ExcelProperty(value = "物理卡no") + private String cardNo; + + /** + * E8用户ID + */ + @ExcelProperty(value = "E8用户ID") + private Long remoteUserId; + + /** + * E8图片URL + */ + @ExcelProperty(value = "E8图片URL") + private String remoteImgUrl; + + /** + * E8凭证ID + */ + @ExcelProperty(value = "E8凭证ID") + private Long remoteVoucherId; + + /** + * E8权限ID + */ + @ExcelProperty(value = "E8权限ID") + private Long remoteAuthId; + + +} diff --git a/ruoyi-modules/Sis/src/main/java/org/dromara/sis/mapper/SisEEightRefMapper.java b/ruoyi-modules/Sis/src/main/java/org/dromara/sis/mapper/SisEEightRefMapper.java new file mode 100644 index 00000000..090a6be1 --- /dev/null +++ b/ruoyi-modules/Sis/src/main/java/org/dromara/sis/mapper/SisEEightRefMapper.java @@ -0,0 +1,15 @@ +package org.dromara.sis.mapper; + +import org.dromara.sis.domain.SisEEightRef; +import org.dromara.sis.domain.vo.SisEEightRefVo; +import org.dromara.common.mybatis.core.mapper.BaseMapperPlus; + +/** + * E8平台对应关系Mapper接口 + * + * @author lsm + * @date 2025-06-29 + */ +public interface SisEEightRefMapper extends BaseMapperPlus { + +} 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 new file mode 100644 index 00000000..3b57ee4e --- /dev/null +++ b/ruoyi-modules/Sis/src/main/java/org/dromara/sis/service/ISisEEightRefService.java @@ -0,0 +1,69 @@ +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 java.util.Collection; +import java.util.List; + +/** + * E8平台对应关系Service接口 + * + * @author lsm + * @date 2025-06-29 + */ +public interface ISisEEightRefService { + + /** + * 查询E8平台对应关系 + * + * @param id 主键 + * @return E8平台对应关系 + */ + SisEEightRefVo queryById(Long id); + + /** + * 分页查询E8平台对应关系列表 + * + * @param bo 查询条件 + * @param pageQuery 分页参数 + * @return E8平台对应关系分页列表 + */ + TableDataInfo queryPageList(SisEEightRefBo bo, PageQuery pageQuery); + + /** + * 查询符合条件的E8平台对应关系列表 + * + * @param bo 查询条件 + * @return E8平台对应关系列表 + */ + List queryList(SisEEightRefBo bo); + + /** + * 新增E8平台对应关系 + * + * @param bo E8平台对应关系 + * @return 是否新增成功 + */ + Boolean insertByBo(SisEEightRefBo bo); + + /** + * 修改E8平台对应关系 + * + * @param bo E8平台对应关系 + * @return 是否修改成功 + */ + Boolean updateByBo(SisEEightRefBo bo); + + /** + * 校验并批量删除E8平台对应关系信息 + * + * @param ids 待删除的主键集合 + * @param isValid 是否进行有效性校验 + * @return 是否删除成功 + */ + Boolean deleteWithValidByIds(Collection ids, Boolean isValid); +} 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 new file mode 100644 index 00000000..e32df4c6 --- /dev/null +++ b/ruoyi-modules/Sis/src/main/java/org/dromara/sis/service/impl/SisEEightRefServiceImpl.java @@ -0,0 +1,144 @@ +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 lombok.RequiredArgsConstructor; +import lombok.extern.slf4j.Slf4j; +import org.springframework.stereotype.Service; +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 java.util.Arrays; +import java.util.List; +import java.util.Map; +import java.util.Collection; + +/** + * E8平台对应关系Service业务层处理 + * + * @author lsm + * @date 2025-06-29 + */ +@Slf4j +@RequiredArgsConstructor +@Service +public class SisEEightRefServiceImpl implements ISisEEightRefService { + + private final SisEEightRefMapper baseMapper; + + /** + * 查询E8平台对应关系 + * + * @param id 主键 + * @return E8平台对应关系 + */ + @Override + public SisEEightRefVo queryById(Long id) { + SisEEightRef sisEEightRef = baseMapper.selectById(id); + List acIds = Arrays.stream(sisEEightRef.getAcId().split(",")).map(Long::parseLong).toList(); + + SisEEightRefVo vo = MapstructUtils.convert(sisEEightRef, SisEEightRefVo.class); + vo.setAcIds(acIds); + return vo; + } + + /** + * 分页查询E8平台对应关系列表 + * + * @param bo 查询条件 + * @param pageQuery 分页参数 + * @return E8平台对应关系分页列表 + */ + @Override + public TableDataInfo queryPageList(SisEEightRefBo bo, PageQuery pageQuery) { + LambdaQueryWrapper lqw = buildQueryWrapper(bo); + Page result = baseMapper.selectVoPage(pageQuery.build(), lqw); + return TableDataInfo.build(result); + } + + /** + * 查询符合条件的E8平台对应关系列表 + * + * @param bo 查询条件 + * @return E8平台对应关系列表 + */ + @Override + public List queryList(SisEEightRefBo bo) { + LambdaQueryWrapper lqw = buildQueryWrapper(bo); + return baseMapper.selectVoList(lqw); + } + + private LambdaQueryWrapper buildQueryWrapper(SisEEightRefBo bo) { + Map params = bo.getParams(); + LambdaQueryWrapper lqw = Wrappers.lambdaQuery(); + lqw.orderByAsc(SisEEightRef::getId); + lqw.eq(bo.getUserId() != null, SisEEightRef::getUserId, bo.getUserId()); + lqw.eq(bo.getImgId() != null, SisEEightRef::getImgId, bo.getImgId()); + lqw.eq(StringUtils.isNotBlank(bo.getCardNo()), SisEEightRef::getCardNo, bo.getCardNo()); + 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; + } + + /** + * 新增E8平台对应关系 + * + * @param bo E8平台对应关系 + * @return 是否新增成功 + */ + @Override + public Boolean insertByBo(SisEEightRefBo bo) { + SisEEightRef add = MapstructUtils.convert(bo, SisEEightRef.class); + validEntityBeforeSave(add); + boolean flag = baseMapper.insert(add) > 0; + if (flag) { + bo.setId(add.getId()); + } + return flag; + } + + /** + * 修改E8平台对应关系 + * + * @param bo E8平台对应关系 + * @return 是否修改成功 + */ + @Override + public Boolean updateByBo(SisEEightRefBo bo) { + SisEEightRef update = MapstructUtils.convert(bo, SisEEightRef.class); + validEntityBeforeSave(update); + return baseMapper.updateById(update) > 0; + } + + /** + * 保存前的数据校验 + */ + private void validEntityBeforeSave(SisEEightRef entity) { + //TODO 做一些数据校验,如唯一约束 + } + + /** + * 校验并批量删除E8平台对应关系信息 + * + * @param ids 待删除的主键集合 + * @param isValid 是否进行有效性校验 + * @return 是否删除成功 + */ + @Override + public Boolean deleteWithValidByIds(Collection ids, Boolean isValid) { + if (isValid) { + //TODO 做一些业务上的校验,判断是否需要校验 + } + return baseMapper.deleteByIds(ids) > 0; + } +} From abeac0c7c7218e70cc2ed12485e644b413bac82b Mon Sep 17 00:00:00 2001 From: zcxlsm Date: Sun, 29 Jun 2025 16:19:26 +0800 Subject: [PATCH 16/21] =?UTF-8?q?refactor(sis):=20=E4=BC=98=E5=8C=96?= =?UTF-8?q?=E6=8E=88=E6=9D=83?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../controller/SisAuthRecordController.java | 4 +- .../e8/VoucherControlController.java | 4 +- .../org/dromara/sis/domain/SisAuthRecord.java | 11 +- .../sis/domain/SisLibDeviceImgRef.java | 5 - .../sis/domain/bo/SisAuthRecordBo.java | 20 +- .../sis/domain/bo/SisLibDeviceImgRefBo.java | 5 - .../sis/domain/vo/SisAuthRecordVo.java | 18 +- .../sis/domain/vo/SisLibDeviceImgRefVo.java | 6 - .../sis/sdk/e8/VoucherControlService.java | 2 +- .../domain/voucher/res/IssueVoucherRes.java | 14 ++ .../e8/impl/VoucherControlServiceImpl.java | 13 +- .../sis/service/ISisAccessControlService.java | 10 +- .../sis/service/ISisPersonLibImgService.java | 10 +- .../impl/SisAccessControlServiceImpl.java | 13 +- .../impl/SisAuthRecordServiceImpl.java | 190 ++++++++++-------- .../service/impl/SisEEightRefServiceImpl.java | 12 +- .../impl/SisPersonLibImgServiceImpl.java | 11 + 17 files changed, 215 insertions(+), 133 deletions(-) create mode 100644 ruoyi-modules/Sis/src/main/java/org/dromara/sis/sdk/e8/domain/voucher/res/IssueVoucherRes.java 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 1537f749..5f632f69 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 @@ -27,7 +27,7 @@ import org.dromara.common.mybatis.core.page.TableDataInfo; * 前端访问路由地址为:/sis/authRecord * * @author lsm - * @date 2025-06-28 + * @since 2025-06-28 */ @Validated @RequiredArgsConstructor @@ -75,7 +75,7 @@ public class SisAuthRecordController extends BaseController { @SaCheckPermission("sis:authRecord:add") @Log(title = "授权记录", businessType = BusinessType.INSERT) @RepeatSubmit() - @PostMapping() + @PostMapping("/add") public R add(@Validated(AddGroup.class) @RequestBody SisAuthRecordBo bo) { return toAjax(sisAuthRecordService.insertByBo(bo)); } diff --git a/ruoyi-modules/Sis/src/main/java/org/dromara/sis/controller/e8/VoucherControlController.java b/ruoyi-modules/Sis/src/main/java/org/dromara/sis/controller/e8/VoucherControlController.java index 5b1ad5ad..dc12c600 100644 --- a/ruoyi-modules/Sis/src/main/java/org/dromara/sis/controller/e8/VoucherControlController.java +++ b/ruoyi-modules/Sis/src/main/java/org/dromara/sis/controller/e8/VoucherControlController.java @@ -35,9 +35,9 @@ public class VoucherControlController { public R issueVoucher(@RequestBody IssueVoucherReq req) { log.info("E8发行凭证入参:{}", req); - Boolean flag = voucherControlService.issueVoucher(req); + Long flag = voucherControlService.issueVoucher(req); - if (flag) { + if (flag != null) { return R.ok(); } else { return R.fail("E8发行凭证,调用失败!"); 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 edeeb047..8ae79a69 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 @@ -28,19 +28,24 @@ public class SisAuthRecord extends TenantEntity { private Long id; /** - * 人像id + * 图像库id + */ + private Long libId; + + /** + * 图片id */ private Long imgId; /** * 门禁id */ - private String acId; + private Long acId; /** * 设备id */ - private String eqbId; + private Long eqbId; } diff --git a/ruoyi-modules/Sis/src/main/java/org/dromara/sis/domain/SisLibDeviceImgRef.java b/ruoyi-modules/Sis/src/main/java/org/dromara/sis/domain/SisLibDeviceImgRef.java index b276d1f0..da57319d 100644 --- a/ruoyi-modules/Sis/src/main/java/org/dromara/sis/domain/SisLibDeviceImgRef.java +++ b/ruoyi-modules/Sis/src/main/java/org/dromara/sis/domain/SisLibDeviceImgRef.java @@ -52,9 +52,4 @@ public class SisLibDeviceImgRef extends TenantEntity { */ private Long eqpLibImgId; - /** - * e8图片地址 - */ - private String eqpLibImgUrl; - } 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 83435d77..8e706104 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 @@ -29,22 +29,20 @@ public class SisAuthRecordBo extends BaseEntity { private Long id; /** - * 人像id + * 图像库Id */ - @NotNull(message = "图像id不能为空", groups = {AddGroup.class, EditGroup.class}) - private Long imgId; + @NotNull(message = "图像库Id不能为空", groups = {AddGroup.class, EditGroup.class}) + private Long libId; + + /** + * 图像id列表 + */ + @NotNull(message = "图像id列表不能为空", groups = {AddGroup.class, EditGroup.class}) + private List imgIds; /** * 门禁id列表 */ @NotNull(message = "门禁id列表能为空", groups = {AddGroup.class, EditGroup.class}) private List acIds; - - /** - * 设备id列表 - */ - @NotNull(message = "设备id列表不能为空", groups = {AddGroup.class, EditGroup.class}) - private List eqbIds; - - } diff --git a/ruoyi-modules/Sis/src/main/java/org/dromara/sis/domain/bo/SisLibDeviceImgRefBo.java b/ruoyi-modules/Sis/src/main/java/org/dromara/sis/domain/bo/SisLibDeviceImgRefBo.java index 2c4acc10..1d05bf2a 100644 --- a/ruoyi-modules/Sis/src/main/java/org/dromara/sis/domain/bo/SisLibDeviceImgRefBo.java +++ b/ruoyi-modules/Sis/src/main/java/org/dromara/sis/domain/bo/SisLibDeviceImgRefBo.java @@ -56,9 +56,4 @@ public class SisLibDeviceImgRefBo extends BaseEntity { @NotNull(message = "设备库图片id不能为空", groups = { AddGroup.class, EditGroup.class }) private Long eqpLibImgId; - /** - * e8图片地址 - */ - private String eqpLibImgUrl; - } 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 a05d17a7..b835cbb0 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 @@ -31,6 +31,12 @@ public class SisAuthRecordVo implements Serializable { @ExcelProperty(value = "主键id") private Long id; + /** + * 图像库Id + */ + @ExcelProperty(value = "图像库Id") + private Long libId; + /** * 人像id */ @@ -38,16 +44,16 @@ public class SisAuthRecordVo implements Serializable { private Long imgId; /** - * 门禁id列表 + * 门禁id */ - @ExcelProperty(value = "门禁id列表") - private List acIds; + @ExcelProperty(value = "门禁id") + private Long acId; /** - * 设备id列表 + * 设备id */ - @ExcelProperty(value = "设备id列表") - private List eqbIds; + @ExcelProperty(value = "设备id") + private Long eqbId; } diff --git a/ruoyi-modules/Sis/src/main/java/org/dromara/sis/domain/vo/SisLibDeviceImgRefVo.java b/ruoyi-modules/Sis/src/main/java/org/dromara/sis/domain/vo/SisLibDeviceImgRefVo.java index 247a3a85..74e2945b 100644 --- a/ruoyi-modules/Sis/src/main/java/org/dromara/sis/domain/vo/SisLibDeviceImgRefVo.java +++ b/ruoyi-modules/Sis/src/main/java/org/dromara/sis/domain/vo/SisLibDeviceImgRefVo.java @@ -60,10 +60,4 @@ public class SisLibDeviceImgRefVo implements Serializable { @ExcelProperty(value = "设备库图片id") private Long eqpLibImgId; - /** - * e8图片地址 - */ - @ExcelProperty(value = "e8图片地址") - private String eqpLibImgUrl; - } diff --git a/ruoyi-modules/Sis/src/main/java/org/dromara/sis/sdk/e8/VoucherControlService.java b/ruoyi-modules/Sis/src/main/java/org/dromara/sis/sdk/e8/VoucherControlService.java index 73fc0b49..c1e59723 100644 --- a/ruoyi-modules/Sis/src/main/java/org/dromara/sis/sdk/e8/VoucherControlService.java +++ b/ruoyi-modules/Sis/src/main/java/org/dromara/sis/sdk/e8/VoucherControlService.java @@ -17,7 +17,7 @@ public interface VoucherControlService { * @param req 凭证数据 * @return Boolean */ - Boolean issueVoucher(IssueVoucherReq req); + Long issueVoucher(IssueVoucherReq req); /** * 操作凭证 diff --git a/ruoyi-modules/Sis/src/main/java/org/dromara/sis/sdk/e8/domain/voucher/res/IssueVoucherRes.java b/ruoyi-modules/Sis/src/main/java/org/dromara/sis/sdk/e8/domain/voucher/res/IssueVoucherRes.java new file mode 100644 index 00000000..010a89ab --- /dev/null +++ b/ruoyi-modules/Sis/src/main/java/org/dromara/sis/sdk/e8/domain/voucher/res/IssueVoucherRes.java @@ -0,0 +1,14 @@ +package org.dromara.sis.sdk.e8.domain.voucher.res; + +import lombok.Data; + +/** + * @author lsm + * @apiNote IssueVoucherRes + * @since 2025/6/29 + */ +@Data +public class IssueVoucherRes { + + private Long id; +} diff --git a/ruoyi-modules/Sis/src/main/java/org/dromara/sis/sdk/e8/impl/VoucherControlServiceImpl.java b/ruoyi-modules/Sis/src/main/java/org/dromara/sis/sdk/e8/impl/VoucherControlServiceImpl.java index df36201f..a87494cd 100644 --- a/ruoyi-modules/Sis/src/main/java/org/dromara/sis/sdk/e8/impl/VoucherControlServiceImpl.java +++ b/ruoyi-modules/Sis/src/main/java/org/dromara/sis/sdk/e8/impl/VoucherControlServiceImpl.java @@ -1,6 +1,7 @@ package org.dromara.sis.sdk.e8.impl; import cn.hutool.core.bean.BeanUtil; +import cn.hutool.json.JSONUtil; import lombok.RequiredArgsConstructor; import lombok.extern.slf4j.Slf4j; import org.dromara.sis.sdk.e8.VoucherControlService; @@ -8,6 +9,7 @@ import org.dromara.sis.sdk.e8.domain.ApiResp; import org.dromara.sis.sdk.e8.domain.voucher.req.ChangeCardReq; import org.dromara.sis.sdk.e8.domain.voucher.req.IssueVoucherReq; import org.dromara.sis.sdk.e8.domain.voucher.req.OperateVoucherReq; +import org.dromara.sis.sdk.e8.domain.voucher.res.IssueVoucherRes; import org.dromara.sis.sdk.e8.utils.E8ApiUtil; import org.springframework.stereotype.Service; @@ -37,16 +39,21 @@ public class VoucherControlServiceImpl implements VoucherControlService { * @return 是否成功 */ @Override - public Boolean issueVoucher(IssueVoucherReq req) { + public Long issueVoucher(IssueVoucherReq req) { // 封装入参 Map params = BeanUtil.beanToMap(req); // 调用API ApiResp apiResp = e8ApiUtil.doPost(params, ISSUANCE_VOUCHER); - if (!apiResp.getSuccess()) log.error("E8发行凭证失败,errorMsg:{}", apiResp); + if (!apiResp.getSuccess()) { + log.error("E8发行凭证失败,errorMsg:{}", apiResp); + return null; + } - return apiResp.getSuccess(); + IssueVoucherRes res = JSONUtil.toBean(JSONUtil.toJsonStr(apiResp.getResult()), IssueVoucherRes.class); + + return res.getId(); } /** 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 3bff785d..e93e8f6d 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 @@ -13,7 +13,7 @@ import java.util.List; * 门禁设备Service接口 * * @author lxj - * @date 2025-06-25 + * @since 2025-06-25 */ public interface ISisAccessControlService { @@ -66,4 +66,12 @@ public interface ISisAccessControlService { * @return 是否删除成功 */ Boolean deleteWithValidByIds(Collection ids, Boolean isValid); + + /** + * 根据查询列表 + * + * @param ids 门禁id + * @return 列表 + */ + List queryListByIds(Collection ids); } diff --git a/ruoyi-modules/Sis/src/main/java/org/dromara/sis/service/ISisPersonLibImgService.java b/ruoyi-modules/Sis/src/main/java/org/dromara/sis/service/ISisPersonLibImgService.java index 429f9e4c..8926a3e1 100644 --- a/ruoyi-modules/Sis/src/main/java/org/dromara/sis/service/ISisPersonLibImgService.java +++ b/ruoyi-modules/Sis/src/main/java/org/dromara/sis/service/ISisPersonLibImgService.java @@ -12,7 +12,7 @@ import java.util.List; * 人像信息Service接口 * * @author mocheng - * @date 2025-06-24 + * @since 2025-06-24 */ public interface ISisPersonLibImgService { @@ -65,4 +65,12 @@ public interface ISisPersonLibImgService { * @return 是否删除成功 */ Boolean deleteWithValidByIds(Collection ids, Boolean isValid); + + /** + * 根据查询列表 + * + * @param ids 图片id + * @return 列表 + */ + List queryListByIds(Collection ids); } 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 bcc9f1ad..81be8dee 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 @@ -140,7 +140,7 @@ public class SisAccessControlServiceImpl implements ISisAccessControlService { // 通讯类型 e8DoorReq.setCommType(0); // cpuid - e8DoorReq.setCpuID(add.getFactoryCode()); + e8DoorReq.setCpuID(""); // ip e8DoorReq.setIp(add.getAccessIp()); // 端口 @@ -207,4 +207,15 @@ public class SisAccessControlServiceImpl implements ISisAccessControlService { } return baseMapper.deleteByIds(ids) > 0; } + + /** + * 根据查询列表 + * + * @param ids 门禁id + * @return 列表 + */ + @Override + public List queryListByIds(Collection ids){ + return baseMapper.selectVoByIds(ids); + } } 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 c10f24b4..1f0cd0cd 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 @@ -2,7 +2,6 @@ package org.dromara.sis.service.impl; import cn.hutool.core.lang.Assert; 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; @@ -10,6 +9,7 @@ import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.toolkit.Wrappers; import lombok.RequiredArgsConstructor; import lombok.extern.slf4j.Slf4j; +import org.dromara.sis.domain.bo.SisEEightRefBo; import org.dromara.sis.domain.bo.SisLibDeviceImgRefBo; import org.dromara.sis.domain.bo.SisLibDeviceRefBo; import org.dromara.sis.domain.vo.*; @@ -29,6 +29,7 @@ import org.springframework.transaction.annotation.Transactional; import java.nio.file.Files; import java.nio.file.Paths; import java.util.*; +import java.util.stream.Collectors; /** * 授权记录Service业务层处理 @@ -43,9 +44,10 @@ public class SisAuthRecordServiceImpl implements ISisAuthRecordService { private final UnViewAiBoxApi unViewAiBoxApi; private final SisAuthRecordMapper baseMapper; - private final VoucherControlService vouchService; + private final VoucherControlService e8VouchService; private final ISisPersonLibService sisPersonLibService; - private final AccessControlService accessControlService; + private final ISisEEightRefService sisEEightRefService; + private final AccessControlService e8AccessControlService; private final ISisPersonLibImgService sisPersonLibImgService; private final ISisLibDeviceRefService sisLibDeviceRefService; private final ISisAccessControlService sisAccessControlService; @@ -60,14 +62,7 @@ public class SisAuthRecordServiceImpl implements ISisAuthRecordService { */ @Override public SisAuthRecordVo queryById(Long id) { - SisAuthRecord sisAuthRecord = baseMapper.selectById(id); - if (sisAuthRecord == null) return null; - List acIds = Arrays.stream(sisAuthRecord.getAcId().split(",")).map(Long::parseLong).toList(); - List eqbIds = Arrays.stream(sisAuthRecord.getEqbId().split(",")).map(Long::parseLong).toList(); - SisAuthRecordVo vo = MapstructUtils.convert(sisAuthRecord, SisAuthRecordVo.class); - vo.setAcIds(acIds); - vo.setEqbIds(eqbIds); - return vo; + return baseMapper.selectVoById(id); } /** @@ -79,7 +74,7 @@ public class SisAuthRecordServiceImpl implements ISisAuthRecordService { */ @Override public TableDataInfo queryPageList(SisAuthRecordBo bo, PageQuery pageQuery) { - LambdaQueryWrapper lqw = buildQueryWrapper(bo); + LambdaQueryWrapper lqw = Wrappers.lambdaQuery(); Page result = baseMapper.selectVoPage(pageQuery.build(), lqw); return TableDataInfo.build(result); } @@ -100,7 +95,7 @@ public class SisAuthRecordServiceImpl implements ISisAuthRecordService { Map params = bo.getParams(); LambdaQueryWrapper lqw = Wrappers.lambdaQuery(); lqw.orderByAsc(SisAuthRecord::getId); - lqw.eq(bo.getImgId() != null, SisAuthRecord::getImgId, bo.getImgId()); + lqw.eq(bo.getLibId() != null, SisAuthRecord::getLibId, bo.getLibId()); return lqw; } @@ -113,32 +108,49 @@ public class SisAuthRecordServiceImpl implements ISisAuthRecordService { @Override @Transactional(rollbackFor = Exception.class) public Boolean insertByBo(SisAuthRecordBo bo) { - SisAuthRecord add = MapstructUtils.convert(bo, SisAuthRecord.class); - Assert.notNull(add, "数据处理失败"); - add.setAcId(StringUtils.join(bo.getAcIds(), ",")); - add.setEqbId(StringUtils.join(bo.getEqbIds(), ",")); - boolean flag = baseMapper.insert(add) > 0; - log.info("图片{},开始对{}门禁授权,下发{}设备照片", add.getImgId(), bo.getAcIds(), bo.getEqbIds()); - if (flag) { - SisPersonLibImgVo imgVo = sisPersonLibImgService.queryById(bo.getImgId()); - Assert.notNull(imgVo, "图片不存在,id=" + bo.getImgId()); - - SisPersonLibVo libVo = sisPersonLibService.queryById(imgVo.getLibId()); - Assert.notNull(libVo, "图像库不存在,id=" + imgVo.getLibId()); + List refVos = sisLibDeviceRefService.queryByLibIds(Collections.singleton(bo.getLibId())); + Assert.notEmpty(refVos, "图像库与设备关联关系不存在"); + List eqpIds = refVos.stream().map(SisLibDeviceRefVo::getEqpId).toList(); - try { - long eqp_lib_id; - Integer eqp_lib_img_id; - String eqp_lib_img_url; - byte[] imageByte = Files.readAllBytes(Paths.get(imgVo.getImgUrl())); + boolean flag = false; + log.info("开始写入授权记录,图片:{}、门禁:{}、设备:{}", bo.getImgIds(), bo.getAcIds(), eqpIds); + for (Long imgId : bo.getImgIds()) { + for (Long acId : bo.getAcIds()) { + for (Long eqpId : eqpIds) { + SisAuthRecord add = MapstructUtils.convert(bo, SisAuthRecord.class); + Assert.notNull(add, "数据处理失败"); + add.setAcId(acId); + add.setImgId(imgId); + add.setEqbId(eqpId); + flag = baseMapper.insert(add) > 0; + Assert.isTrue(flag, "授权记录写入失败"); + } + } + } + log.info("授权记录写入完成"); + + SisPersonLibVo libVo = sisPersonLibService.queryById(bo.getLibId()); + Assert.notNull(libVo, "图像库不存在,id=" + (bo.getLibId())); + + List imgList = sisPersonLibImgService.queryListByIds(bo.getImgIds()); + Assert.notEmpty(imgList, "图片不存在"); + + List acList = sisAccessControlService.queryListByIds(bo.getAcIds()); + Assert.notEmpty(acList, "门禁设备不存在!"); + + try { + log.info("开始对宇视盒子下发照片,图片:{}、设备:{}", bo.getImgIds(), eqpIds); + + for (SisPersonLibImgVo imgVo : imgList) { + for (Long eqpId : eqpIds) { + long eqp_lib_id; + Integer eqp_lib_img_id; + byte[] imageByte = Files.readAllBytes(Paths.get(imgVo.getImgUrl())); - // TODO 图片开始下发到宇视盒子 - log.info("图片开始下发到宇视盒子"); - for (Long eqpId : bo.getEqbIds()) { SisAccessControlDeviceVo vo = sisAccessControlDeviceService.queryById(eqpId); Assert.notNull(vo, "门禁控制设备不存在,id=" + eqpId); - log.info(libVo.getLibType() == 1 ? "准备写入门禁设备,code={}" : "准备写入工服设备,code={}", vo.getEqpNo()); + log.info(libVo.getLibType() == 1 ? "准备写入人像设备,code={}" : "准备写入工服设备,code={}", vo.getEqpNo()); UvModel.UvSystemInfo systemInfo = new UvModel.UvSystemInfo(); systemInfo.setAccount(vo.getEqpAccount()); @@ -179,59 +191,79 @@ public class SisAuthRecordServiceImpl implements ISisAuthRecordService { SisLibDeviceImgRefBo ref = new SisLibDeviceImgRefBo(); ref.setLibId(libVo.getId()); - ref.setImgId(add.getId()); + ref.setImgId(imgVo.getId()); ref.setEqpId(eqpId); ref.setEqpLibId(eqp_lib_id); ref.setEqpLibImgId(eqp_lib_img_id.longValue()); Boolean insert = sisLibDeviceImgRefService.insertByBo(ref); Assert.isTrue(insert, "写入图片关联关系表失败!"); + } - log.info("图片开始下发完成!"); - - // TODO 对门禁设备授权 - log.info("图片开始对门禁设备授权"); - for (Long acId : bo.getAcIds()) { - SisAccessControlVo acVo = sisAccessControlService.queryById(acId); - Assert.notNull(acVo, "门禁设备不存在"); - - // TODO 阶段调试E8人脸设备,非E8人脸设备不处理 - if (acVo.getControlType() == 1 || acVo.getAccessType() == 2) continue; - - log.info("照片上传E8平台,id=" + bo.getImgId()); - String url = vouchService.uploadFace(imageByte); - Assert.notNull(url, "图片上传E8平台失败"); - eqp_lib_img_url = url; - - log.info("E8平台发行凭证"); - IssueVoucherReq req = new IssueVoucherReq(); - req.setCardType(34); - req.setVoucherType(70); - // TODO 临时默认人员 - req.setPersonID(539696740646981L); - req.setTxtData(eqp_lib_img_url); - Boolean issue = vouchService.issueVoucher(req); - Assert.isTrue(issue, "E8平台发行凭证失败"); - - log.info("E8平台授权"); - CustomerAuthAddReq authReq = new CustomerAuthAddReq(); - authReq.setAuthType(0); - authReq.setScheduleId(1L); - authReq.setPersonIds(Collections.singletonList(539696740646981L)); - authReq.setStartTime("2025-06-25 11: 23: 39"); - authReq.setEndTime("2025-07-25 11: 23: 39"); - - CustomerAuthAddReq.AuthGroupData authGroupData = new CustomerAuthAddReq.AuthGroupData(); - authGroupData.setId(Long.parseLong(acVo.getOutCode())); - authGroupData.setType(1); - authReq.setAuthData(List.of(authGroupData)); - Boolean auth = accessControlService.addCustomerAuth(authReq); - Assert.isTrue(auth, "E8平台授权失败"); - } - log.info("门禁设备授权完成"); - } catch (Exception e) { - throw new RuntimeException(e.getMessage()); } + log.info("图片开始下发完成!"); + + log.info("开始写入E8平台,图片:{}、门禁:{}", bo.getImgIds(), bo.getAcIds()); + for (SisPersonLibImgVo imgVo : imgList) { + byte[] imageByte = Files.readAllBytes(Paths.get(imgVo.getImgUrl())); + + log.info("E8平台上传图片,{}", imgVo.getId()); + String url = e8VouchService.uploadFace(imageByte); + Assert.notNull(url, "E8平台上传图片失败"); + log.info("E8平台上传图片完成!"); + + log.info("E8平台发行凭证"); + IssueVoucherReq req = new IssueVoucherReq(); + // 34:普通用户卡 + req.setCardType(34); + // 70:人脸凭证 + req.setVoucherType(70); + // TODO 临时默认人员 + req.setPersonID(539696740646981L); + req.setTxtData(url); + Long vId = e8VouchService.issueVoucher(req); + Assert.notNull(vId, "E8平台发行凭证失败"); + log.info("E8平台发行凭证完成!"); + + + log.info("E8平台授权凭证"); + List authList = acList.stream() + // TODO 阶段调试E8人脸设备,非E8且非人脸设备不处理 + .filter(acVo -> acVo.getControlType() != 1 && acVo.getAccessType() != 2) + .map(acVo -> { + CustomerAuthAddReq.AuthGroupData auth = new CustomerAuthAddReq.AuthGroupData(); + auth.setType(0); + auth.setGatewayType(1); + auth.setId(Long.parseLong(acVo.getAccessCode())); + return auth; + }).toList(); + + CustomerAuthAddReq authReq = new CustomerAuthAddReq(); + authReq.setAuthType(0); + authReq.setScheduleId(1L); + authReq.setPersonIds(Collections.singletonList(539696740646981L)); + authReq.setStartTime("2025-06-25 11: 23: 39"); + authReq.setEndTime("2025-07-25 11: 23: 39"); + authReq.setAuthData(authList); + 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); + Assert.isTrue(insert, "写入E8关联关系表失败!"); + } + log.info("写入E8平台完成!"); + + } catch (Exception e) { + throw new RuntimeException(e.getMessage()); } + return flag; } 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 e32df4c6..66c9070f 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 @@ -15,6 +15,7 @@ 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.transaction.annotation.Transactional; import java.util.Arrays; import java.util.List; @@ -25,7 +26,7 @@ import java.util.Collection; * E8平台对应关系Service业务层处理 * * @author lsm - * @date 2025-06-29 + * @since 2025-06-29 */ @Slf4j @RequiredArgsConstructor @@ -97,14 +98,11 @@ public class SisEEightRefServiceImpl implements ISisEEightRefService { * @return 是否新增成功 */ @Override + @Transactional(rollbackFor = Exception.class) public Boolean insertByBo(SisEEightRefBo bo) { SisEEightRef add = MapstructUtils.convert(bo, SisEEightRef.class); - validEntityBeforeSave(add); - boolean flag = baseMapper.insert(add) > 0; - if (flag) { - bo.setId(add.getId()); - } - return flag; + add.setAcId(StringUtils.join(bo.getAcIds(), ",")); + return baseMapper.insert(add) > 0; } /** diff --git a/ruoyi-modules/Sis/src/main/java/org/dromara/sis/service/impl/SisPersonLibImgServiceImpl.java b/ruoyi-modules/Sis/src/main/java/org/dromara/sis/service/impl/SisPersonLibImgServiceImpl.java index 8d8c2a89..9d4ca824 100644 --- a/ruoyi-modules/Sis/src/main/java/org/dromara/sis/service/impl/SisPersonLibImgServiceImpl.java +++ b/ruoyi-modules/Sis/src/main/java/org/dromara/sis/service/impl/SisPersonLibImgServiceImpl.java @@ -173,4 +173,15 @@ public class SisPersonLibImgServiceImpl implements ISisPersonLibImgService { return true; } + + /** + * 查询列表 + * + * @param Ids 图片id + * @return 列表 + */ + @Override + public List queryListByIds(Collection Ids) { + return baseMapper.selectVoByIds(Ids); + } } From 116abb4113b92fdec69ab75065f78768aae67144 Mon Sep 17 00:00:00 2001 From: zcxlsm Date: Sun, 29 Jun 2025 17:17:02 +0800 Subject: [PATCH 17/21] =?UTF-8?q?refactor(sis):=20E8=E6=8E=88=E6=9D=83?= =?UTF-8?q?=E9=80=BB=E8=BE=91=E6=9B=B4=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../dromara/sis/sdk/e8/DoorDeviceService.java | 10 ++++++ .../door/res/AuthDoorDeviceFindRes.java | 22 +++++++++++++ .../sdk/e8/impl/DoorDeviceServiceImpl.java | 33 +++++++++++++++++++ .../impl/SisAuthRecordServiceImpl.java | 26 +++++++++++---- 4 files changed, 84 insertions(+), 7 deletions(-) create mode 100644 ruoyi-modules/Sis/src/main/java/org/dromara/sis/sdk/e8/domain/door/res/AuthDoorDeviceFindRes.java diff --git a/ruoyi-modules/Sis/src/main/java/org/dromara/sis/sdk/e8/DoorDeviceService.java b/ruoyi-modules/Sis/src/main/java/org/dromara/sis/sdk/e8/DoorDeviceService.java index aa70d856..6a6e7177 100644 --- a/ruoyi-modules/Sis/src/main/java/org/dromara/sis/sdk/e8/DoorDeviceService.java +++ b/ruoyi-modules/Sis/src/main/java/org/dromara/sis/sdk/e8/DoorDeviceService.java @@ -3,10 +3,13 @@ package org.dromara.sis.sdk.e8; import org.dromara.common.mybatis.core.page.TableDataInfo; 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 java.util.List; + /** * @author lsm * @apiNote DoorDeviceService @@ -53,4 +56,11 @@ public interface DoorDeviceService { * @return Boolean */ Boolean deleteDoorDevice(Integer id); + + /** + * 分页获取授权门信息 + * + * @return TableDataInfo + */ + List getPageAuthDoorDeviceList(); } 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 new file mode 100644 index 00000000..f2cf2d63 --- /dev/null +++ b/ruoyi-modules/Sis/src/main/java/org/dromara/sis/sdk/e8/domain/door/res/AuthDoorDeviceFindRes.java @@ -0,0 +1,22 @@ +package org.dromara.sis.sdk.e8.domain.door.res; + +import lombok.Data; + +/** + * @author lsm + * @apiNote AuthDoorDeviceFindRes + * @since 2025/6/29 + */ +@Data +public class AuthDoorDeviceFindRes { + + /** + * id + */ + private Long id; + + /** + * deviceId + */ + private Long deviceId; +} 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 060151cb..b299a095 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 @@ -11,6 +11,7 @@ import org.dromara.sis.sdk.e8.domain.ApiResp; import org.dromara.sis.sdk.e8.domain.door.req.DoorDeviceAddReq; import org.dromara.sis.sdk.e8.domain.door.req.DoorDeviceFindReq; 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; @@ -18,6 +19,7 @@ import org.dromara.sis.sdk.e8.utils.E8ApiUtil; import org.springframework.stereotype.Service; import java.util.HashMap; +import java.util.List; import java.util.Map; /** @@ -35,6 +37,7 @@ public class DoorDeviceServiceImpl implements DoorDeviceService { private final static String DOOR_DEVICE_CREATE = "/api/E8Door/man-device-info"; private final static String DOOR_DEVICE_UPDATE = "/api/E8Door/man-device-info/{id}/update"; private final static String DOOR_DEVICE_DELETE = "/api/E8Door/man-device-info/{id}"; + private final static String AUTH_DOOR_DEVICE_GET_LIST = "/api/E8Door/man-auth-info/get-page-list-auth-data"; private final E8ApiUtil e8ApiUtil; @@ -170,4 +173,34 @@ public class DoorDeviceServiceImpl implements DoorDeviceService { return apiResp.getSuccess(); } + /** + * 分页获取授权门信息 + * + * @return TableDataInfo + */ + public List getPageAuthDoorDeviceList() { + Map queryDto = new HashMap<>(); + queryDto.put("type", -1); + queryDto.put("matchString", ""); + + // 创建一个参数映射,用于存储API请求所需的参数 + Map params = new HashMap<>(); + params.put("PageIndex", 1); + params.put("MaxResultCount", 100000); + params.put("QueryDto", queryDto); + + ApiResp apiResp = e8ApiUtil.doPost(params, AUTH_DOOR_DEVICE_GET_LIST); + + // 如果API调用不成功,则返回null + if (!apiResp.getSuccess()) { + log.error("分页获取授权门信息失败 errorMsg:{}", apiResp); + // 如果响应不成功,则返回null + return null; + } + // 将API响应结果转换为Map对象,以便后续处理 + Map result = JSONUtil.toBean(JSONUtil.toJsonStr(apiResp.getResult()), new TypeReference<>() { + }, false); + // 返回list + return JSONUtil.toList(JSONUtil.toJsonStr(result.get("item")), AuthDoorDeviceFindRes.class); + } } 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 1f0cd0cd..52a3a4cd 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 @@ -14,8 +14,10 @@ import org.dromara.sis.domain.bo.SisLibDeviceImgRefBo; import org.dromara.sis.domain.bo.SisLibDeviceRefBo; import org.dromara.sis.domain.vo.*; 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.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; @@ -45,6 +47,7 @@ public class SisAuthRecordServiceImpl implements ISisAuthRecordService { private final UnViewAiBoxApi unViewAiBoxApi; private final SisAuthRecordMapper baseMapper; private final VoucherControlService e8VouchService; + private final DoorDeviceService e8DoorDeviceService; private final ISisPersonLibService sisPersonLibService; private final ISisEEightRefService sisEEightRefService; private final AccessControlService e8AccessControlService; @@ -224,17 +227,26 @@ public class SisAuthRecordServiceImpl implements ISisAuthRecordService { Assert.notNull(vId, "E8平台发行凭证失败"); log.info("E8平台发行凭证完成!"); - log.info("E8平台授权凭证"); + // E8平台授权门列表 + List authDoor = e8DoorDeviceService.getPageAuthDoorDeviceList(); + Map authDoorMap = authDoor.stream() + .collect(Collectors.toMap(AuthDoorDeviceFindRes::getDeviceId, authDoorRes -> authDoorRes)); + List authList = acList.stream() - // TODO 阶段调试E8人脸设备,非E8且非人脸设备不处理 .filter(acVo -> acVo.getControlType() != 1 && acVo.getAccessType() != 2) .map(acVo -> { - CustomerAuthAddReq.AuthGroupData auth = new CustomerAuthAddReq.AuthGroupData(); - auth.setType(0); - auth.setGatewayType(1); - auth.setId(Long.parseLong(acVo.getAccessCode())); - return auth; + CustomerAuthAddReq.AuthGroupData door = new CustomerAuthAddReq.AuthGroupData(); + door.setType(0); + door.setGatewayType(1); + Long id = Long.parseLong(acVo.getOutCode()); + door.setId(id); + // 如果 authDoorMap 中存在对应的 deviceId,则更新 id + AuthDoorDeviceFindRes authDoorRes = authDoorMap.get(id); + if (authDoorRes != null) { + door.setId(authDoorRes.getId()); + } + return door; }).toList(); CustomerAuthAddReq authReq = new CustomerAuthAddReq(); From 968200b4c0322b84b4cf64f0702114c640c7ec93 Mon Sep 17 00:00:00 2001 From: 15683799673 Date: Sun, 29 Jun 2025 18:29:59 +0800 Subject: [PATCH 18/21] 1 --- .../dromara/property/api/RemoteFloorService.java | 15 +++++++++++++++ 1 file changed, 15 insertions(+) create mode 100644 ruoyi-api/property-api/src/main/java/org/dromara/property/api/RemoteFloorService.java 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 new file mode 100644 index 00000000..b7eb62a0 --- /dev/null +++ b/ruoyi-api/property-api/src/main/java/org/dromara/property/api/RemoteFloorService.java @@ -0,0 +1,15 @@ +package org.dromara.property.api; + +import org.dromara.property.api.domain.vo.RemoteFloorVo; + +/** + * 楼层的远程服务调用 + * + * @author lxj + */ +public interface RemoteFloorService { + + + RemoteFloorVo queryByFloorId(Long floorId); + +} From 3837c2f2eff702436d0a04bbde5265569ddfc976 Mon Sep 17 00:00:00 2001 From: 15683799673 Date: Mon, 30 Jun 2025 06:17:21 +0800 Subject: [PATCH 19/21] =?UTF-8?q?=E5=A2=9E=E5=8A=A0=E9=97=A8=E7=A6=81?= =?UTF-8?q?=E6=8E=88=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 b7eb62a0..6b735d26 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 0ecdd17e..5d2cfeca 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 3fd30106..2205ff6b 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 a17f0b2b..b78d6e81 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 4703ad03..3e5f07f2 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 81764d1d..3fa46629 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 47c7d8d4..6849e8bd 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 d2a56ce8..0fc5768c 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 839e76de..6016471e 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 d4ed2a13..e8eafa08 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 146c5ad4..81aae67e 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 2c361e78..29e9a4af 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 fd55cb0b..89555f05 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 2b685609..cc474ac4 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 62287cc3..41950254 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 5f632f69..d7fca73f 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 a38b9ed9..73ab4dce 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 1b35a4b7..9fd6c884 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 292b5880..74491b7d 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 8ae79a69..04794110 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 04e2188c..e3c3dead 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 00000000..9c71ee8b --- /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 b9e2d1c4..4e7fe717 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 8e706104..053bdc05 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 0e44a8ce..fcf80fc9 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 9d626fce..553a6c32 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 b835cbb0..07a231a9 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 c118c80a..3f664f1f 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 f5061055..abfef87a 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 60979379..f7c4d511 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 3cabd92c..dbe63238 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 9d7c66cb..ffb9429e 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 637f16a5..1cc93210 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 c4b98512..3322910d 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 4d92ba1f..dcd3cb5e 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 0828a586..566814cc 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 ff58738e..c63d8ca4 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 3a5b0f2c..64a881c6 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 e93e8f6d..0a077f74 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 b314e488..ed1cb45a 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 acf0cc91..3d8859d9 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 3b57ee4e..c892b84e 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 81be8dee..304bbff9 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 52a3a4cd..dbbea247 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 8cc06fff..7b01fa22 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 66c9070f..7e82e9eb 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 00000000..27bad1ae --- /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 00000000..7708dd14 --- /dev/null +++ b/ruoyi-modules/Sis/src/main/resources/mapper/sis/SisEEightRefMapper.xml @@ -0,0 +1,7 @@ + + + + + From 75cc08fa99dbd259aaa12c9afe6e90d5944d6762 Mon Sep 17 00:00:00 2001 From: zcxlsm Date: Mon, 30 Jun 2025 10:13:07 +0800 Subject: [PATCH 20/21] =?UTF-8?q?=E9=A9=BC=E5=B3=B0=E5=8F=98=E5=8A=A8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../controller/e8/AccessControlController.java | 8 ++++---- .../dromara/sis/sdk/e8/AccessControlService.java | 9 ++++----- .../req/AccessRecordFindReq.java | 2 +- .../req/CustomerAuthAddReq.java | 2 +- .../req/CustomerAuthFindReq.java | 2 +- .../req/RemoteOpenDoorReq.java | 2 +- .../res/AccessRecordFindRes.java | 2 +- .../res/CustomerAuthFindRes.java | 2 +- .../sis/sdk/e8/impl/AccessControlServiceImpl.java | 15 ++++++--------- .../sis/sdk/unview/service/VideoAlarmService.java | 4 ++-- .../service/impl/SisAuthRecordServiceImpl.java | 2 +- 11 files changed, 23 insertions(+), 27 deletions(-) rename ruoyi-modules/Sis/src/main/java/org/dromara/sis/sdk/e8/domain/{accesscontrol => accessControl}/req/AccessRecordFindReq.java (95%) rename ruoyi-modules/Sis/src/main/java/org/dromara/sis/sdk/e8/domain/{accesscontrol => accessControl}/req/CustomerAuthAddReq.java (96%) rename ruoyi-modules/Sis/src/main/java/org/dromara/sis/sdk/e8/domain/{accesscontrol => accessControl}/req/CustomerAuthFindReq.java (93%) rename ruoyi-modules/Sis/src/main/java/org/dromara/sis/sdk/e8/domain/{accesscontrol => accessControl}/req/RemoteOpenDoorReq.java (92%) rename ruoyi-modules/Sis/src/main/java/org/dromara/sis/sdk/e8/domain/{accesscontrol => accessControl}/res/AccessRecordFindRes.java (98%) rename ruoyi-modules/Sis/src/main/java/org/dromara/sis/sdk/e8/domain/{accesscontrol => accessControl}/res/CustomerAuthFindRes.java (98%) 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 9fd6c884..de96e188 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 @@ -6,10 +6,10 @@ 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.QueryDto; -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.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/sdk/e8/AccessControlService.java b/ruoyi-modules/Sis/src/main/java/org/dromara/sis/sdk/e8/AccessControlService.java index f7c4d511..c991ffdb 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,12 +1,11 @@ package org.dromara.sis.sdk.e8; import org.dromara.common.mybatis.core.page.TableDataInfo; -import org.dromara.sis.domain.vo.SisAccessControlVo; import org.dromara.sis.sdk.e8.domain.QueryDto; -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.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 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 similarity index 95% rename from ruoyi-modules/Sis/src/main/java/org/dromara/sis/sdk/e8/domain/accesscontrol/req/AccessRecordFindReq.java rename to ruoyi-modules/Sis/src/main/java/org/dromara/sis/sdk/e8/domain/accessControl/req/AccessRecordFindReq.java index dbe63238..3cabd92c 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 similarity index 96% rename from ruoyi-modules/Sis/src/main/java/org/dromara/sis/sdk/e8/domain/accesscontrol/req/CustomerAuthAddReq.java rename to ruoyi-modules/Sis/src/main/java/org/dromara/sis/sdk/e8/domain/accessControl/req/CustomerAuthAddReq.java index ffb9429e..7c1d6ab0 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,4 +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 similarity index 93% rename from ruoyi-modules/Sis/src/main/java/org/dromara/sis/sdk/e8/domain/accesscontrol/req/CustomerAuthFindReq.java rename to ruoyi-modules/Sis/src/main/java/org/dromara/sis/sdk/e8/domain/accessControl/req/CustomerAuthFindReq.java index 1cc93210..637f16a5 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 similarity index 92% rename from ruoyi-modules/Sis/src/main/java/org/dromara/sis/sdk/e8/domain/accesscontrol/req/RemoteOpenDoorReq.java rename to ruoyi-modules/Sis/src/main/java/org/dromara/sis/sdk/e8/domain/accessControl/req/RemoteOpenDoorReq.java index 3322910d..c4b98512 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 similarity index 98% rename from ruoyi-modules/Sis/src/main/java/org/dromara/sis/sdk/e8/domain/accesscontrol/res/AccessRecordFindRes.java rename to ruoyi-modules/Sis/src/main/java/org/dromara/sis/sdk/e8/domain/accessControl/res/AccessRecordFindRes.java index dcd3cb5e..4d92ba1f 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 similarity index 98% rename from ruoyi-modules/Sis/src/main/java/org/dromara/sis/sdk/e8/domain/accesscontrol/res/CustomerAuthFindRes.java rename to ruoyi-modules/Sis/src/main/java/org/dromara/sis/sdk/e8/domain/accessControl/res/CustomerAuthFindRes.java index 566814cc..0828a586 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 c63d8ca4..c5f84ac4 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,21 +3,18 @@ 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.ApiResp; import org.dromara.sis.sdk.e8.domain.QueryDto; -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.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 64a881c6..10b07caa 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 @@ -6,7 +6,7 @@ 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.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; @@ -111,7 +111,7 @@ public class VideoAlarmService { log.info("无比对结果,不处理此条数据。"); return; } - UvModel.ChannelInfo channelInfo = alarmReportData.getChannel_info(); + UvModel.ChannelInfo channelInfo = alarmReportData.getChannel_info(); if (channelInfo == null) { log.info("上报设备信息不存在,不处理词条数据。"); return; 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 dbbea247..6f4f07db 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 @@ -19,7 +19,7 @@ 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; From 86503753bbf2bfd7aeee50635b5a81c1038bbe38 Mon Sep 17 00:00:00 2001 From: dev_ljl <2590379346@qq.com> Date: Mon, 30 Jun 2025 17:21:30 +0800 Subject: [PATCH 21/21] =?UTF-8?q?1=E3=80=81=E7=BB=BF=E6=A4=8D=E7=A7=9F?= =?UTF-8?q?=E8=B5=81=E8=AE=A2=E5=8D=95=202=E3=80=81=E7=BB=BF=E6=A4=8D?= =?UTF-8?q?=E7=A7=9F=E8=B5=81=E6=94=B6=E8=B4=B9=203=E3=80=81=E7=BB=BF?= =?UTF-8?q?=E6=A4=8D=E7=A7=9F=E8=B5=81=E8=AE=A2=E5=8D=95=E5=85=BB=E6=8A=A4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../PlantsOrderChargeController.java | 106 +++++++++++++ .../PlantsOrderMaintainController.java | 106 +++++++++++++ .../PlantsRentalOrderController.java | 106 +++++++++++++ .../property/domain/PlantsOrderCharge.java | 93 +++++++++++ .../property/domain/PlantsOrderMaintain.java | 108 +++++++++++++ .../property/domain/PlantsRentalOrder.java | 108 +++++++++++++ .../domain/bo/PlantsOrderChargeBo.java | 103 ++++++++++++ .../domain/bo/PlantsOrderMaintainBo.java | 116 ++++++++++++++ .../domain/bo/PlantsRentalOrderBo.java | 115 ++++++++++++++ .../domain/vo/PlantsOrderChargeVo.java | 116 ++++++++++++++ .../domain/vo/PlantsOrderMaintainVo.java | 131 ++++++++++++++++ .../domain/vo/PlantsRentalOrderVo.java | 132 ++++++++++++++++ .../domain/vo/TbVisitorManagementVo.java | 16 ++ .../mapper/PlantsOrderChargeMapper.java | 15 ++ .../mapper/PlantsOrderMaintainMapper.java | 15 ++ .../mapper/PlantsRentalOrderMapper.java | 15 ++ .../service/IPlantsOrderChargeService.java | 69 +++++++++ .../service/IPlantsOrderMaintainService.java | 69 +++++++++ .../service/IPlantsRentalOrderService.java | 69 +++++++++ .../impl/PlantsOrderChargeServiceImpl.java | 143 +++++++++++++++++ .../impl/PlantsOrderMaintainServiceImpl.java | 146 ++++++++++++++++++ .../impl/PlantsRentalOrderServiceImpl.java | 146 ++++++++++++++++++ .../Property/PlantsOrderChargeMapper.xml | 7 + .../Property/PlantsOrderMaintainMapper.xml | 7 + .../Property/PlantsRentalOrderMapper.xml | 7 + 25 files changed, 2064 insertions(+) create mode 100644 ruoyi-modules/Property/src/main/java/org/dromara/property/controller/PlantsOrderChargeController.java create mode 100644 ruoyi-modules/Property/src/main/java/org/dromara/property/controller/PlantsOrderMaintainController.java create mode 100644 ruoyi-modules/Property/src/main/java/org/dromara/property/controller/PlantsRentalOrderController.java create mode 100644 ruoyi-modules/Property/src/main/java/org/dromara/property/domain/PlantsOrderCharge.java create mode 100644 ruoyi-modules/Property/src/main/java/org/dromara/property/domain/PlantsOrderMaintain.java create mode 100644 ruoyi-modules/Property/src/main/java/org/dromara/property/domain/PlantsRentalOrder.java create mode 100644 ruoyi-modules/Property/src/main/java/org/dromara/property/domain/bo/PlantsOrderChargeBo.java create mode 100644 ruoyi-modules/Property/src/main/java/org/dromara/property/domain/bo/PlantsOrderMaintainBo.java create mode 100644 ruoyi-modules/Property/src/main/java/org/dromara/property/domain/bo/PlantsRentalOrderBo.java create mode 100644 ruoyi-modules/Property/src/main/java/org/dromara/property/domain/vo/PlantsOrderChargeVo.java create mode 100644 ruoyi-modules/Property/src/main/java/org/dromara/property/domain/vo/PlantsOrderMaintainVo.java create mode 100644 ruoyi-modules/Property/src/main/java/org/dromara/property/domain/vo/PlantsRentalOrderVo.java create mode 100644 ruoyi-modules/Property/src/main/java/org/dromara/property/mapper/PlantsOrderChargeMapper.java create mode 100644 ruoyi-modules/Property/src/main/java/org/dromara/property/mapper/PlantsOrderMaintainMapper.java create mode 100644 ruoyi-modules/Property/src/main/java/org/dromara/property/mapper/PlantsRentalOrderMapper.java create mode 100644 ruoyi-modules/Property/src/main/java/org/dromara/property/service/IPlantsOrderChargeService.java create mode 100644 ruoyi-modules/Property/src/main/java/org/dromara/property/service/IPlantsOrderMaintainService.java create mode 100644 ruoyi-modules/Property/src/main/java/org/dromara/property/service/IPlantsRentalOrderService.java create mode 100644 ruoyi-modules/Property/src/main/java/org/dromara/property/service/impl/PlantsOrderChargeServiceImpl.java create mode 100644 ruoyi-modules/Property/src/main/java/org/dromara/property/service/impl/PlantsOrderMaintainServiceImpl.java create mode 100644 ruoyi-modules/Property/src/main/java/org/dromara/property/service/impl/PlantsRentalOrderServiceImpl.java create mode 100644 ruoyi-modules/Property/src/main/resources/mapper/Property/PlantsOrderChargeMapper.xml create mode 100644 ruoyi-modules/Property/src/main/resources/mapper/Property/PlantsOrderMaintainMapper.xml create mode 100644 ruoyi-modules/Property/src/main/resources/mapper/Property/PlantsRentalOrderMapper.xml diff --git a/ruoyi-modules/Property/src/main/java/org/dromara/property/controller/PlantsOrderChargeController.java b/ruoyi-modules/Property/src/main/java/org/dromara/property/controller/PlantsOrderChargeController.java new file mode 100644 index 00000000..7745a328 --- /dev/null +++ b/ruoyi-modules/Property/src/main/java/org/dromara/property/controller/PlantsOrderChargeController.java @@ -0,0 +1,106 @@ +package org.dromara.property.controller; + +import java.util.List; + +import lombok.RequiredArgsConstructor; +import jakarta.servlet.http.HttpServletResponse; +import jakarta.validation.constraints.*; +import cn.dev33.satoken.annotation.SaCheckPermission; +import org.springframework.web.bind.annotation.*; +import org.springframework.validation.annotation.Validated; +import org.dromara.common.idempotent.annotation.RepeatSubmit; +import org.dromara.common.log.annotation.Log; +import org.dromara.common.web.core.BaseController; +import org.dromara.common.mybatis.core.page.PageQuery; +import org.dromara.common.core.domain.R; +import org.dromara.common.core.validate.AddGroup; +import org.dromara.common.core.validate.EditGroup; +import org.dromara.common.log.enums.BusinessType; +import org.dromara.common.excel.utils.ExcelUtil; +import org.dromara.property.domain.vo.PlantsOrderChargeVo; +import org.dromara.property.domain.bo.PlantsOrderChargeBo; +import org.dromara.property.service.IPlantsOrderChargeService; +import org.dromara.common.mybatis.core.page.TableDataInfo; + +/** + * 绿植租赁-订单收费 + * 前端访问路由地址为:/property/orderCharge + * + * @author mocheng + * @date 2025-06-30 + */ +@Validated +@RequiredArgsConstructor +@RestController +@RequestMapping("/orderCharge") +public class PlantsOrderChargeController extends BaseController { + + private final IPlantsOrderChargeService plantsOrderChargeService; + + /** + * 查询绿植租赁-订单收费列表 + */ + @SaCheckPermission("property:orderCharge:list") + @GetMapping("/list") + public TableDataInfo list(PlantsOrderChargeBo bo, PageQuery pageQuery) { + return plantsOrderChargeService.queryPageList(bo, pageQuery); + } + + /** + * 导出绿植租赁-订单收费列表 + */ + @SaCheckPermission("property:orderCharge:export") + @Log(title = "绿植租赁-订单收费", businessType = BusinessType.EXPORT) + @PostMapping("/export") + public void export(PlantsOrderChargeBo bo, HttpServletResponse response) { + List list = plantsOrderChargeService.queryList(bo); + ExcelUtil.exportExcel(list, "绿植租赁-订单收费", PlantsOrderChargeVo.class, response); + } + + /** + * 获取绿植租赁-订单收费详细信息 + * + * @param id 主键 + */ + @SaCheckPermission("property:orderCharge:query") + @GetMapping("/{id}") + public R getInfo(@NotNull(message = "主键不能为空") + @PathVariable("id") Long id) { + return R.ok(plantsOrderChargeService.queryById(id)); + } + + /** + * 新增绿植租赁-订单收费 + */ + @SaCheckPermission("property:orderCharge:add") + @Log(title = "绿植租赁-订单收费", businessType = BusinessType.INSERT) + @RepeatSubmit() + @PostMapping() + public R add(@Validated(AddGroup.class) @RequestBody PlantsOrderChargeBo bo) { + return toAjax(plantsOrderChargeService.insertByBo(bo)); + } + + /** + * 修改绿植租赁-订单收费 + */ + @SaCheckPermission("property:orderCharge:edit") + @Log(title = "绿植租赁-订单收费", businessType = BusinessType.UPDATE) + @RepeatSubmit() + @PutMapping() + public R edit(@Validated(EditGroup.class) @RequestBody PlantsOrderChargeBo bo) { + return toAjax(plantsOrderChargeService.updateByBo(bo)); + } + + /** + * 删除绿植租赁-订单收费 + * + * @param ids 主键串 + */ + @SaCheckPermission("property:orderCharge:remove") + @Log(title = "绿植租赁-订单收费", businessType = BusinessType.DELETE) + @DeleteMapping("/{ids}") + public R remove(@NotEmpty(message = "主键不能为空") + @PathVariable("ids") Long[] ids) { + return toAjax(plantsOrderChargeService.deleteWithValidByIds(List.of(ids), true)); + } +} diff --git a/ruoyi-modules/Property/src/main/java/org/dromara/property/controller/PlantsOrderMaintainController.java b/ruoyi-modules/Property/src/main/java/org/dromara/property/controller/PlantsOrderMaintainController.java new file mode 100644 index 00000000..0f0239a3 --- /dev/null +++ b/ruoyi-modules/Property/src/main/java/org/dromara/property/controller/PlantsOrderMaintainController.java @@ -0,0 +1,106 @@ +package org.dromara.property.controller; + +import java.util.List; + +import lombok.RequiredArgsConstructor; +import jakarta.servlet.http.HttpServletResponse; +import jakarta.validation.constraints.*; +import cn.dev33.satoken.annotation.SaCheckPermission; +import org.springframework.web.bind.annotation.*; +import org.springframework.validation.annotation.Validated; +import org.dromara.common.idempotent.annotation.RepeatSubmit; +import org.dromara.common.log.annotation.Log; +import org.dromara.common.web.core.BaseController; +import org.dromara.common.mybatis.core.page.PageQuery; +import org.dromara.common.core.domain.R; +import org.dromara.common.core.validate.AddGroup; +import org.dromara.common.core.validate.EditGroup; +import org.dromara.common.log.enums.BusinessType; +import org.dromara.common.excel.utils.ExcelUtil; +import org.dromara.property.domain.vo.PlantsOrderMaintainVo; +import org.dromara.property.domain.bo.PlantsOrderMaintainBo; +import org.dromara.property.service.IPlantsOrderMaintainService; +import org.dromara.common.mybatis.core.page.TableDataInfo; + +/** + * 绿植租赁-订单养护管理 + * 前端访问路由地址为:/property/orderMaintain + * + * @author mocheng + * @date 2025-06-30 + */ +@Validated +@RequiredArgsConstructor +@RestController +@RequestMapping("/orderMaintain") +public class PlantsOrderMaintainController extends BaseController { + + private final IPlantsOrderMaintainService plantsOrderMaintainService; + + /** + * 查询绿植租赁-订单养护管理列表 + */ + @SaCheckPermission("property:orderMaintain:list") + @GetMapping("/list") + public TableDataInfo list(PlantsOrderMaintainBo bo, PageQuery pageQuery) { + return plantsOrderMaintainService.queryPageList(bo, pageQuery); + } + + /** + * 导出绿植租赁-订单养护管理列表 + */ + @SaCheckPermission("property:orderMaintain:export") + @Log(title = "绿植租赁-订单养护管理", businessType = BusinessType.EXPORT) + @PostMapping("/export") + public void export(PlantsOrderMaintainBo bo, HttpServletResponse response) { + List list = plantsOrderMaintainService.queryList(bo); + ExcelUtil.exportExcel(list, "绿植租赁-订单养护管理", PlantsOrderMaintainVo.class, response); + } + + /** + * 获取绿植租赁-订单养护管理详细信息 + * + * @param id 主键 + */ + @SaCheckPermission("property:orderMaintain:query") + @GetMapping("/{id}") + public R getInfo(@NotNull(message = "主键不能为空") + @PathVariable("id") Long id) { + return R.ok(plantsOrderMaintainService.queryById(id)); + } + + /** + * 新增绿植租赁-订单养护管理 + */ + @SaCheckPermission("property:orderMaintain:add") + @Log(title = "绿植租赁-订单养护管理", businessType = BusinessType.INSERT) + @RepeatSubmit() + @PostMapping() + public R add(@Validated(AddGroup.class) @RequestBody PlantsOrderMaintainBo bo) { + return toAjax(plantsOrderMaintainService.insertByBo(bo)); + } + + /** + * 修改绿植租赁-订单养护管理 + */ + @SaCheckPermission("property:orderMaintain:edit") + @Log(title = "绿植租赁-订单养护管理", businessType = BusinessType.UPDATE) + @RepeatSubmit() + @PutMapping() + public R edit(@Validated(EditGroup.class) @RequestBody PlantsOrderMaintainBo bo) { + return toAjax(plantsOrderMaintainService.updateByBo(bo)); + } + + /** + * 删除绿植租赁-订单养护管理 + * + * @param ids 主键串 + */ + @SaCheckPermission("property:orderMaintain:remove") + @Log(title = "绿植租赁-订单养护管理", businessType = BusinessType.DELETE) + @DeleteMapping("/{ids}") + public R remove(@NotEmpty(message = "主键不能为空") + @PathVariable("ids") Long[] ids) { + return toAjax(plantsOrderMaintainService.deleteWithValidByIds(List.of(ids), true)); + } +} diff --git a/ruoyi-modules/Property/src/main/java/org/dromara/property/controller/PlantsRentalOrderController.java b/ruoyi-modules/Property/src/main/java/org/dromara/property/controller/PlantsRentalOrderController.java new file mode 100644 index 00000000..dbf57f53 --- /dev/null +++ b/ruoyi-modules/Property/src/main/java/org/dromara/property/controller/PlantsRentalOrderController.java @@ -0,0 +1,106 @@ +package org.dromara.property.controller; + +import java.util.List; + +import lombok.RequiredArgsConstructor; +import jakarta.servlet.http.HttpServletResponse; +import jakarta.validation.constraints.*; +import cn.dev33.satoken.annotation.SaCheckPermission; +import org.springframework.web.bind.annotation.*; +import org.springframework.validation.annotation.Validated; +import org.dromara.common.idempotent.annotation.RepeatSubmit; +import org.dromara.common.log.annotation.Log; +import org.dromara.common.web.core.BaseController; +import org.dromara.common.mybatis.core.page.PageQuery; +import org.dromara.common.core.domain.R; +import org.dromara.common.core.validate.AddGroup; +import org.dromara.common.core.validate.EditGroup; +import org.dromara.common.log.enums.BusinessType; +import org.dromara.common.excel.utils.ExcelUtil; +import org.dromara.property.domain.vo.PlantsRentalOrderVo; +import org.dromara.property.domain.bo.PlantsRentalOrderBo; +import org.dromara.property.service.IPlantsRentalOrderService; +import org.dromara.common.mybatis.core.page.TableDataInfo; + +/** + * 绿植租赁-订单管理 + * 前端访问路由地址为:/property/rentalOrder + * + * @author mocheng + * @date 2025-06-30 + */ +@Validated +@RequiredArgsConstructor +@RestController +@RequestMapping("/rentalOrder") +public class PlantsRentalOrderController extends BaseController { + + private final IPlantsRentalOrderService plantsRentalOrderService; + + /** + * 查询绿植租赁-订单管理列表 + */ + @SaCheckPermission("property:rentalOrder:list") + @GetMapping("/list") + public TableDataInfo list(PlantsRentalOrderBo bo, PageQuery pageQuery) { + return plantsRentalOrderService.queryPageList(bo, pageQuery); + } + + /** + * 导出绿植租赁-订单管理列表 + */ + @SaCheckPermission("property:rentalOrder:export") + @Log(title = "绿植租赁-订单管理", businessType = BusinessType.EXPORT) + @PostMapping("/export") + public void export(PlantsRentalOrderBo bo, HttpServletResponse response) { + List list = plantsRentalOrderService.queryList(bo); + ExcelUtil.exportExcel(list, "绿植租赁-订单管理", PlantsRentalOrderVo.class, response); + } + + /** + * 获取绿植租赁-订单管理详细信息 + * + * @param id 主键 + */ + @SaCheckPermission("property:rentalOrder:query") + @GetMapping("/{id}") + public R getInfo(@NotNull(message = "主键不能为空") + @PathVariable("id") Long id) { + return R.ok(plantsRentalOrderService.queryById(id)); + } + + /** + * 新增绿植租赁-订单管理 + */ + @SaCheckPermission("property:rentalOrder:add") + @Log(title = "绿植租赁-订单管理", businessType = BusinessType.INSERT) + @RepeatSubmit() + @PostMapping() + public R add(@Validated(AddGroup.class) @RequestBody PlantsRentalOrderBo bo) { + return toAjax(plantsRentalOrderService.insertByBo(bo)); + } + + /** + * 修改绿植租赁-订单管理 + */ + @SaCheckPermission("property:rentalOrder:edit") + @Log(title = "绿植租赁-订单管理", businessType = BusinessType.UPDATE) + @RepeatSubmit() + @PutMapping() + public R edit(@Validated(EditGroup.class) @RequestBody PlantsRentalOrderBo bo) { + return toAjax(plantsRentalOrderService.updateByBo(bo)); + } + + /** + * 删除绿植租赁-订单管理 + * + * @param ids 主键串 + */ + @SaCheckPermission("property:rentalOrder:remove") + @Log(title = "绿植租赁-订单管理", businessType = BusinessType.DELETE) + @DeleteMapping("/{ids}") + public R remove(@NotEmpty(message = "主键不能为空") + @PathVariable("ids") Long[] ids) { + return toAjax(plantsRentalOrderService.deleteWithValidByIds(List.of(ids), true)); + } +} diff --git a/ruoyi-modules/Property/src/main/java/org/dromara/property/domain/PlantsOrderCharge.java b/ruoyi-modules/Property/src/main/java/org/dromara/property/domain/PlantsOrderCharge.java new file mode 100644 index 00000000..1da70d92 --- /dev/null +++ b/ruoyi-modules/Property/src/main/java/org/dromara/property/domain/PlantsOrderCharge.java @@ -0,0 +1,93 @@ +package org.dromara.property.domain; + +import org.dromara.common.mybatis.core.domain.BaseEntity; +import com.baomidou.mybatisplus.annotation.*; +import lombok.Data; +import lombok.EqualsAndHashCode; +import java.util.Date; +import com.fasterxml.jackson.annotation.JsonFormat; + +import java.io.Serial; + +/** + * 绿植租赁-订单收费对象 plants_order_charge + * + * @author mocheng + * @date 2025-06-30 + */ +@Data +@EqualsAndHashCode(callSuper = true) +@TableName("plants_order_charge") +public class PlantsOrderCharge extends BaseEntity { + + @Serial + private static final long serialVersionUID = 1L; + + /** + * 主键 + */ + @TableId(value = "id") + private Long id; + + /** + * 订单id + */ + private Long orderId; + + /** + * 租赁人id(系统用户) + */ + private Long userId; + + /** + * 租赁人名称 + */ + private String userName; + + /** + * 租金 + */ + private Long rent; + + /** + * 押金 + */ + private Long deposit; + + /** + * 违约金 + */ + private Long penalty; + + /** + * 总金额 + */ + private Long totalAmount; + + /** + * 收费日期 + */ + private Date chargeDate; + + /** + * 支付方式 + */ + private Long paymentMethod; + + /** + * 开票状态 + */ + private Long invoiceStatus; + + /** + * 发票类型 + */ + private Long invoiceType; + + /** + * 收费状态 + */ + private Long chargeStatus; + + +} diff --git a/ruoyi-modules/Property/src/main/java/org/dromara/property/domain/PlantsOrderMaintain.java b/ruoyi-modules/Property/src/main/java/org/dromara/property/domain/PlantsOrderMaintain.java new file mode 100644 index 00000000..15d61301 --- /dev/null +++ b/ruoyi-modules/Property/src/main/java/org/dromara/property/domain/PlantsOrderMaintain.java @@ -0,0 +1,108 @@ +package org.dromara.property.domain; + +import org.dromara.common.mybatis.core.domain.BaseEntity; +import com.baomidou.mybatisplus.annotation.*; +import lombok.Data; +import lombok.EqualsAndHashCode; +import java.util.Date; +import com.fasterxml.jackson.annotation.JsonFormat; + +import java.io.Serial; + +/** + * 绿植租赁-订单养护管理对象 plants_order_maintain + * + * @author mocheng + * @date 2025-06-30 + */ +@Data +@EqualsAndHashCode(callSuper = true) +@TableName("plants_order_maintain") +public class PlantsOrderMaintain extends BaseEntity { + + @Serial + private static final long serialVersionUID = 1L; + + /** + * 主键 + */ + @TableId(value = "id") + private Long id; + + /** + * 养护名称 + */ + private String maintainName; + + /** + * 小区id + */ + private Long communityId; + + /** + * 建筑id + */ + private Long buildingId; + + /** + * 楼层id + */ + private Long floorId; + + /** + * 服务类型 + */ + private Long serveType; + + /** + * 养护周期类型 + */ + private Long periodType; + + /** + * 养护周期频次 + */ + private Long periodFrequency; + + /** + * 订单id + */ + private Long orderId; + + /** + * 计划执行时间 + */ + private Date startTime; + + /** + * 计划完成时间 + */ + private Date endTime; + + /** + * 巡检结果 + */ + private Long inspectResult; + + /** + * 处理措施 + */ + private String measure; + + /** + * 客户评分 + */ + private Long customerScore; + + /** + * 客户反馈 + */ + private String customerAdvice; + + /** + * 处理状态 + */ + private Long state; + + +} diff --git a/ruoyi-modules/Property/src/main/java/org/dromara/property/domain/PlantsRentalOrder.java b/ruoyi-modules/Property/src/main/java/org/dromara/property/domain/PlantsRentalOrder.java new file mode 100644 index 00000000..a40eddbd --- /dev/null +++ b/ruoyi-modules/Property/src/main/java/org/dromara/property/domain/PlantsRentalOrder.java @@ -0,0 +1,108 @@ +package org.dromara.property.domain; + +import org.dromara.common.mybatis.core.domain.BaseEntity; +import com.baomidou.mybatisplus.annotation.*; +import lombok.Data; +import lombok.EqualsAndHashCode; +import java.util.Date; +import com.fasterxml.jackson.annotation.JsonFormat; + +import java.io.Serial; + +/** + * 绿植租赁-订单管理对象 plants_rental_order + * + * @author mocheng + * @date 2025-06-30 + */ +@Data +@EqualsAndHashCode(callSuper = true) +@TableName("plants_rental_order") +public class PlantsRentalOrder extends BaseEntity { + + @Serial + private static final long serialVersionUID = 1L; + + /** + * 主键 + */ + @TableId(value = "id") + private Long id; + + /** + * 订单号 + */ + private String orderNo; + + /** + * 客户名称 + */ + private String customerName; + + /** + * 客户类型 + */ + private Long customerType; + + /** + * 租赁周期 + */ + private Long rentalPeriod; + + /** + * 租赁开始时间 + */ + private Date startTime; + + /** + * 租赁结束时间 + */ + private Date endTime; + + /** + * 应付总额 + */ + private Long totalAmount; + + /** + * 租赁方式 + */ + private Long rentalType; + + /** + * 租赁方案id + */ + private Long planId; + + /** + * 绿植产品id + */ + private Long productId; + + /** + * 租赁产品数量 + */ + private Long productNum; + + /** + * 支付状态 + */ + private Long paymentStatus; + + /** + * 是否续租 + */ + private Long isRelet; + + /** + * 合同状态 + */ + private Long contractStatus; + + /** + * 签署时间 + */ + private Date signTime; + + +} diff --git a/ruoyi-modules/Property/src/main/java/org/dromara/property/domain/bo/PlantsOrderChargeBo.java b/ruoyi-modules/Property/src/main/java/org/dromara/property/domain/bo/PlantsOrderChargeBo.java new file mode 100644 index 00000000..4bcf0a0b --- /dev/null +++ b/ruoyi-modules/Property/src/main/java/org/dromara/property/domain/bo/PlantsOrderChargeBo.java @@ -0,0 +1,103 @@ +package org.dromara.property.domain.bo; + +import org.dromara.property.domain.PlantsOrderCharge; +import org.dromara.common.mybatis.core.domain.BaseEntity; +import org.dromara.common.core.validate.AddGroup; +import org.dromara.common.core.validate.EditGroup; +import io.github.linpeilie.annotations.AutoMapper; +import lombok.Data; +import lombok.EqualsAndHashCode; +import jakarta.validation.constraints.*; +import java.util.Date; +import com.fasterxml.jackson.annotation.JsonFormat; + +/** + * 绿植租赁-订单收费业务对象 plants_order_charge + * + * @author mocheng + * @date 2025-06-30 + */ +@Data +@EqualsAndHashCode(callSuper = true) +@AutoMapper(target = PlantsOrderCharge.class, reverseConvertGenerate = false) +public class PlantsOrderChargeBo extends BaseEntity { + + /** + * 主键 + */ + private Long id; + + /** + * 订单id + */ + @NotNull(message = "订单id不能为空", groups = { AddGroup.class, EditGroup.class }) + private Long orderId; + + /** + * 租赁人id(系统用户) + */ + @NotNull(message = "租赁人id(系统用户)不能为空", groups = { AddGroup.class, EditGroup.class }) + private Long userId; + + /** + * 租赁人名称 + */ + @NotBlank(message = "租赁人名称不能为空", groups = { AddGroup.class, EditGroup.class }) + private String userName; + + /** + * 租金 + */ + @NotNull(message = "租金不能为空", groups = { AddGroup.class, EditGroup.class }) + private Long rent; + + /** + * 押金 + */ + @NotNull(message = "押金不能为空", groups = { AddGroup.class, EditGroup.class }) + private Long deposit; + + /** + * 违约金 + */ + @NotNull(message = "违约金不能为空", groups = { AddGroup.class, EditGroup.class }) + private Long penalty; + + /** + * 总金额 + */ + @NotNull(message = "总金额不能为空", groups = { AddGroup.class, EditGroup.class }) + private Long totalAmount; + + /** + * 收费日期 + */ + @NotNull(message = "收费日期不能为空", groups = { AddGroup.class, EditGroup.class }) + private Date chargeDate; + + /** + * 支付方式 + */ + @NotNull(message = "支付方式不能为空", groups = { AddGroup.class, EditGroup.class }) + private Long paymentMethod; + + /** + * 开票状态 + */ + @NotNull(message = "开票状态不能为空", groups = { AddGroup.class, EditGroup.class }) + private Long invoiceStatus; + + /** + * 发票类型 + */ + @NotNull(message = "发票类型不能为空", groups = { AddGroup.class, EditGroup.class }) + private Long invoiceType; + + /** + * 收费状态 + */ + @NotNull(message = "收费状态不能为空", groups = { AddGroup.class, EditGroup.class }) + private Long chargeStatus; + + +} diff --git a/ruoyi-modules/Property/src/main/java/org/dromara/property/domain/bo/PlantsOrderMaintainBo.java b/ruoyi-modules/Property/src/main/java/org/dromara/property/domain/bo/PlantsOrderMaintainBo.java new file mode 100644 index 00000000..a1877554 --- /dev/null +++ b/ruoyi-modules/Property/src/main/java/org/dromara/property/domain/bo/PlantsOrderMaintainBo.java @@ -0,0 +1,116 @@ +package org.dromara.property.domain.bo; + +import org.dromara.property.domain.PlantsOrderMaintain; +import org.dromara.common.mybatis.core.domain.BaseEntity; +import org.dromara.common.core.validate.AddGroup; +import org.dromara.common.core.validate.EditGroup; +import io.github.linpeilie.annotations.AutoMapper; +import lombok.Data; +import lombok.EqualsAndHashCode; +import jakarta.validation.constraints.*; +import java.util.Date; +import com.fasterxml.jackson.annotation.JsonFormat; + +/** + * 绿植租赁-订单养护管理业务对象 plants_order_maintain + * + * @author mocheng + * @date 2025-06-30 + */ +@Data +@EqualsAndHashCode(callSuper = true) +@AutoMapper(target = PlantsOrderMaintain.class, reverseConvertGenerate = false) +public class PlantsOrderMaintainBo extends BaseEntity { + + /** + * 主键 + */ + private Long id; + + /** + * 养护名称 + */ + @NotBlank(message = "养护名称不能为空", groups = { AddGroup.class, EditGroup.class }) + private String maintainName; + + /** + * 小区id + */ + @NotNull(message = "小区id不能为空", groups = { AddGroup.class, EditGroup.class }) + private Long communityId; + + /** + * 建筑id + */ + @NotNull(message = "建筑id不能为空", groups = { AddGroup.class, EditGroup.class }) + private Long buildingId; + + /** + * 楼层id + */ + @NotNull(message = "楼层id不能为空", groups = { AddGroup.class, EditGroup.class }) + private Long floorId; + + /** + * 服务类型 + */ + @NotNull(message = "服务类型不能为空", groups = { AddGroup.class, EditGroup.class }) + private Long serveType; + + /** + * 养护周期类型 + */ + @NotNull(message = "养护周期类型不能为空", groups = { AddGroup.class, EditGroup.class }) + private Long periodType; + + /** + * 养护周期频次 + */ + @NotNull(message = "养护周期频次不能为空", groups = { AddGroup.class, EditGroup.class }) + private Long periodFrequency; + + /** + * 订单id + */ + @NotNull(message = "订单id不能为空", groups = { AddGroup.class, EditGroup.class }) + private Long orderId; + + /** + * 计划执行时间 + */ + @NotNull(message = "计划执行时间不能为空", groups = { AddGroup.class, EditGroup.class }) + private Date startTime; + + /** + * 计划完成时间 + */ + @NotNull(message = "计划完成时间不能为空", groups = { AddGroup.class, EditGroup.class }) + private Date endTime; + + /** + * 巡检结果 + */ + private Long inspectResult; + + /** + * 处理措施 + */ + private String measure; + + /** + * 客户评分 + */ + private Long customerScore; + + /** + * 客户反馈 + */ + private String customerAdvice; + + /** + * 处理状态 + */ + private Long state; + + +} diff --git a/ruoyi-modules/Property/src/main/java/org/dromara/property/domain/bo/PlantsRentalOrderBo.java b/ruoyi-modules/Property/src/main/java/org/dromara/property/domain/bo/PlantsRentalOrderBo.java new file mode 100644 index 00000000..03bc4897 --- /dev/null +++ b/ruoyi-modules/Property/src/main/java/org/dromara/property/domain/bo/PlantsRentalOrderBo.java @@ -0,0 +1,115 @@ +package org.dromara.property.domain.bo; + +import org.dromara.property.domain.PlantsRentalOrder; +import org.dromara.common.mybatis.core.domain.BaseEntity; +import org.dromara.common.core.validate.AddGroup; +import org.dromara.common.core.validate.EditGroup; +import io.github.linpeilie.annotations.AutoMapper; +import lombok.Data; +import lombok.EqualsAndHashCode; +import jakarta.validation.constraints.*; +import java.util.Date; +import com.fasterxml.jackson.annotation.JsonFormat; + +/** + * 绿植租赁-订单管理业务对象 plants_rental_order + * + * @author mocheng + * @date 2025-06-30 + */ +@Data +@EqualsAndHashCode(callSuper = true) +@AutoMapper(target = PlantsRentalOrder.class, reverseConvertGenerate = false) +public class PlantsRentalOrderBo extends BaseEntity { + + /** + * 主键 + */ + private Long id; + + /** + * 订单号 + */ + @NotBlank(message = "订单号不能为空", groups = { AddGroup.class, EditGroup.class }) + private String orderNo; + + /** + * 客户名称 + */ + @NotBlank(message = "客户名称不能为空", groups = { AddGroup.class, EditGroup.class }) + private String customerName; + + /** + * 客户类型 + */ + @NotNull(message = "客户类型不能为空", groups = { AddGroup.class, EditGroup.class }) + private Long customerType; + + /** + * 租赁周期 + */ + @NotNull(message = "租赁周期不能为空", groups = { AddGroup.class, EditGroup.class }) + private Long rentalPeriod; + + /** + * 租赁开始时间 + */ + @NotNull(message = "租赁开始时间不能为空", groups = { AddGroup.class, EditGroup.class }) + private Date startTime; + + /** + * 租赁结束时间 + */ + @NotNull(message = "租赁结束时间不能为空", groups = { AddGroup.class, EditGroup.class }) + private Date endTime; + + /** + * 应付总额 + */ + @NotNull(message = "应付总额不能为空", groups = { AddGroup.class, EditGroup.class }) + private Long totalAmount; + + /** + * 租赁方式 + */ + @NotNull(message = "租赁方式不能为空", groups = { AddGroup.class, EditGroup.class }) + private Long rentalType; + + /** + * 租赁方案id + */ + private Long planId; + + /** + * 绿植产品id + */ + private Long productId; + + /** + * 租赁产品数量 + */ + private Long productNum; + + /** + * 支付状态 + */ + @NotNull(message = "支付状态不能为空", groups = { AddGroup.class, EditGroup.class }) + private Long paymentStatus; + + /** + * 是否续租 + */ + private Long isRelet; + + /** + * 合同状态 + */ + private Long contractStatus; + + /** + * 签署时间 + */ + private Date signTime; + + +} diff --git a/ruoyi-modules/Property/src/main/java/org/dromara/property/domain/vo/PlantsOrderChargeVo.java b/ruoyi-modules/Property/src/main/java/org/dromara/property/domain/vo/PlantsOrderChargeVo.java new file mode 100644 index 00000000..61e18d89 --- /dev/null +++ b/ruoyi-modules/Property/src/main/java/org/dromara/property/domain/vo/PlantsOrderChargeVo.java @@ -0,0 +1,116 @@ +package org.dromara.property.domain.vo; + +import java.util.Date; +import com.fasterxml.jackson.annotation.JsonFormat; +import org.dromara.property.domain.PlantsOrderCharge; +import cn.idev.excel.annotation.ExcelIgnoreUnannotated; +import cn.idev.excel.annotation.ExcelProperty; +import org.dromara.common.excel.annotation.ExcelDictFormat; +import org.dromara.common.excel.convert.ExcelDictConvert; +import io.github.linpeilie.annotations.AutoMapper; +import lombok.Data; + +import java.io.Serial; +import java.io.Serializable; +import java.util.Date; + + + +/** + * 绿植租赁-订单收费视图对象 plants_order_charge + * + * @author mocheng + * @date 2025-06-30 + */ +@Data +@ExcelIgnoreUnannotated +@AutoMapper(target = PlantsOrderCharge.class) +public class PlantsOrderChargeVo implements Serializable { + + @Serial + private static final long serialVersionUID = 1L; + + /** + * 主键 + */ + @ExcelProperty(value = "主键") + private Long id; + + /** + * 订单id + */ + @ExcelProperty(value = "订单id") + private Long orderId; + + /** + * 租赁人id(系统用户) + */ + @ExcelProperty(value = "租赁人id", converter = ExcelDictConvert.class) + @ExcelDictFormat(readConverterExp = "系=统用户") + private Long userId; + + /** + * 租赁人名称 + */ + @ExcelProperty(value = "租赁人名称") + private String userName; + + /** + * 租金 + */ + @ExcelProperty(value = "租金") + private Long rent; + + /** + * 押金 + */ + @ExcelProperty(value = "押金") + private Long deposit; + + /** + * 违约金 + */ + @ExcelProperty(value = "违约金") + private Long penalty; + + /** + * 总金额 + */ + @ExcelProperty(value = "总金额") + private Long totalAmount; + + /** + * 收费日期 + */ + @ExcelProperty(value = "收费日期") + private Date chargeDate; + + /** + * 支付方式 + */ + @ExcelProperty(value = "支付方式", converter = ExcelDictConvert.class) + @ExcelDictFormat(dictType = "pro_payment_method") + private Long paymentMethod; + + /** + * 开票状态 + */ + @ExcelProperty(value = "开票状态", converter = ExcelDictConvert.class) + @ExcelDictFormat(dictType = "pro_invoice_status") + private Long invoiceStatus; + + /** + * 发票类型 + */ + @ExcelProperty(value = "发票类型") + private Long invoiceType; + + /** + * 收费状态 + */ + @ExcelProperty(value = "收费状态", converter = ExcelDictConvert.class) + @ExcelDictFormat(dictType = "pro_charging_status") + private Long chargeStatus; + + +} diff --git a/ruoyi-modules/Property/src/main/java/org/dromara/property/domain/vo/PlantsOrderMaintainVo.java b/ruoyi-modules/Property/src/main/java/org/dromara/property/domain/vo/PlantsOrderMaintainVo.java new file mode 100644 index 00000000..f98bdb0d --- /dev/null +++ b/ruoyi-modules/Property/src/main/java/org/dromara/property/domain/vo/PlantsOrderMaintainVo.java @@ -0,0 +1,131 @@ +package org.dromara.property.domain.vo; + +import java.util.Date; +import com.fasterxml.jackson.annotation.JsonFormat; +import org.dromara.property.domain.PlantsOrderMaintain; +import cn.idev.excel.annotation.ExcelIgnoreUnannotated; +import cn.idev.excel.annotation.ExcelProperty; +import org.dromara.common.excel.annotation.ExcelDictFormat; +import org.dromara.common.excel.convert.ExcelDictConvert; +import io.github.linpeilie.annotations.AutoMapper; +import lombok.Data; + +import java.io.Serial; +import java.io.Serializable; +import java.util.Date; + + + +/** + * 绿植租赁-订单养护管理视图对象 plants_order_maintain + * + * @author mocheng + * @date 2025-06-30 + */ +@Data +@ExcelIgnoreUnannotated +@AutoMapper(target = PlantsOrderMaintain.class) +public class PlantsOrderMaintainVo implements Serializable { + + @Serial + private static final long serialVersionUID = 1L; + + /** + * 主键 + */ + @ExcelProperty(value = "主键") + private Long id; + + /** + * 养护名称 + */ + @ExcelProperty(value = "养护名称") + private String maintainName; + + /** + * 小区id + */ + @ExcelProperty(value = "小区id") + private Long communityId; + + /** + * 建筑id + */ + @ExcelProperty(value = "建筑id") + private Long buildingId; + + /** + * 楼层id + */ + @ExcelProperty(value = "楼层id") + private Long floorId; + + /** + * 服务类型 + */ + @ExcelProperty(value = "服务类型") + private Long serveType; + + /** + * 养护周期类型 + */ + @ExcelProperty(value = "养护周期类型", converter = ExcelDictConvert.class) + @ExcelDictFormat(dictType = "wy_time_unit") + private Long periodType; + + /** + * 养护周期频次 + */ + @ExcelProperty(value = "养护周期频次") + private Long periodFrequency; + + /** + * 订单id + */ + @ExcelProperty(value = "订单id") + private Long orderId; + + /** + * 计划执行时间 + */ + @ExcelProperty(value = "计划执行时间") + private Date startTime; + + /** + * 计划完成时间 + */ + @ExcelProperty(value = "计划完成时间") + private Date endTime; + + /** + * 巡检结果 + */ + @ExcelProperty(value = "巡检结果") + private Long inspectResult; + + /** + * 处理措施 + */ + @ExcelProperty(value = "处理措施") + private String measure; + + /** + * 客户评分 + */ + @ExcelProperty(value = "客户评分") + private Long customerScore; + + /** + * 客户反馈 + */ + @ExcelProperty(value = "客户反馈") + private String customerAdvice; + + /** + * 处理状态 + */ + @ExcelProperty(value = "处理状态") + private Long state; + + +} diff --git a/ruoyi-modules/Property/src/main/java/org/dromara/property/domain/vo/PlantsRentalOrderVo.java b/ruoyi-modules/Property/src/main/java/org/dromara/property/domain/vo/PlantsRentalOrderVo.java new file mode 100644 index 00000000..73c6cf31 --- /dev/null +++ b/ruoyi-modules/Property/src/main/java/org/dromara/property/domain/vo/PlantsRentalOrderVo.java @@ -0,0 +1,132 @@ +package org.dromara.property.domain.vo; + +import java.util.Date; +import com.fasterxml.jackson.annotation.JsonFormat; +import org.dromara.property.domain.PlantsRentalOrder; +import cn.idev.excel.annotation.ExcelIgnoreUnannotated; +import cn.idev.excel.annotation.ExcelProperty; +import org.dromara.common.excel.annotation.ExcelDictFormat; +import org.dromara.common.excel.convert.ExcelDictConvert; +import io.github.linpeilie.annotations.AutoMapper; +import lombok.Data; + +import java.io.Serial; +import java.io.Serializable; +import java.util.Date; + + + +/** + * 绿植租赁-订单管理视图对象 plants_rental_order + * + * @author mocheng + * @date 2025-06-30 + */ +@Data +@ExcelIgnoreUnannotated +@AutoMapper(target = PlantsRentalOrder.class) +public class PlantsRentalOrderVo implements Serializable { + + @Serial + private static final long serialVersionUID = 1L; + + /** + * 主键 + */ + @ExcelProperty(value = "主键") + private Long id; + + /** + * 订单号 + */ + @ExcelProperty(value = "订单号") + private String orderNo; + + /** + * 客户名称 + */ + @ExcelProperty(value = "客户名称") + private String customerName; + + /** + * 客户类型 + */ + @ExcelProperty(value = "客户类型", converter = ExcelDictConvert.class) + @ExcelDictFormat(dictType = "wy_khlx") + private Long customerType; + + /** + * 租赁周期 + */ + @ExcelProperty(value = "租赁周期", converter = ExcelDictConvert.class) + @ExcelDictFormat(dictType = "wy_time_unit") + private Long rentalPeriod; + + /** + * 租赁开始时间 + */ + @ExcelProperty(value = "租赁开始时间") + private Date startTime; + + /** + * 租赁结束时间 + */ + @ExcelProperty(value = "租赁结束时间") + private Date endTime; + + /** + * 应付总额 + */ + @ExcelProperty(value = "应付总额") + private Long totalAmount; + + /** + * 租赁方式 + */ + @ExcelProperty(value = "租赁方式") + private Long rentalType; + + /** + * 租赁方案id + */ + @ExcelProperty(value = "租赁方案id") + private Long planId; + + /** + * 绿植产品id + */ + @ExcelProperty(value = "绿植产品id") + private Long productId; + + /** + * 租赁产品数量 + */ + @ExcelProperty(value = "租赁产品数量") + private Long productNum; + + /** + * 支付状态 + */ + @ExcelProperty(value = "支付状态") + private Long paymentStatus; + + /** + * 是否续租 + */ + @ExcelProperty(value = "是否续租") + private Long isRelet; + + /** + * 合同状态 + */ + @ExcelProperty(value = "合同状态") + private Long contractStatus; + + /** + * 签署时间 + */ + @ExcelProperty(value = "签署时间") + private Date signTime; + + +} diff --git a/ruoyi-modules/Property/src/main/java/org/dromara/property/domain/vo/TbVisitorManagementVo.java b/ruoyi-modules/Property/src/main/java/org/dromara/property/domain/vo/TbVisitorManagementVo.java index 9afc469f..9f4fb19b 100644 --- a/ruoyi-modules/Property/src/main/java/org/dromara/property/domain/vo/TbVisitorManagementVo.java +++ b/ruoyi-modules/Property/src/main/java/org/dromara/property/domain/vo/TbVisitorManagementVo.java @@ -1,6 +1,9 @@ package org.dromara.property.domain.vo; import java.util.Date; + +import com.baomidou.mybatisplus.annotation.FieldFill; +import com.baomidou.mybatisplus.annotation.TableField; import com.fasterxml.jackson.annotation.JsonFormat; import org.dromara.property.domain.TbVisitorManagement; import cn.idev.excel.annotation.ExcelIgnoreUnannotated; @@ -116,5 +119,18 @@ public class TbVisitorManagementVo implements Serializable { @ExcelDictFormat(dictType = "wy_appointment_tatus") private Long serveStatus; + /** + * 创建时间 + */ + @ExcelProperty(value = "创建时间") + private Date createTime; + + /** + * 更新时间 + */ + @ExcelProperty(value = "更新时间") + private Date updateTime; + + } diff --git a/ruoyi-modules/Property/src/main/java/org/dromara/property/mapper/PlantsOrderChargeMapper.java b/ruoyi-modules/Property/src/main/java/org/dromara/property/mapper/PlantsOrderChargeMapper.java new file mode 100644 index 00000000..ea6c22ee --- /dev/null +++ b/ruoyi-modules/Property/src/main/java/org/dromara/property/mapper/PlantsOrderChargeMapper.java @@ -0,0 +1,15 @@ +package org.dromara.property.mapper; + +import org.dromara.property.domain.PlantsOrderCharge; +import org.dromara.property.domain.vo.PlantsOrderChargeVo; +import org.dromara.common.mybatis.core.mapper.BaseMapperPlus; + +/** + * 绿植租赁-订单收费Mapper接口 + * + * @author mocheng + * @date 2025-06-30 + */ +public interface PlantsOrderChargeMapper extends BaseMapperPlus { + +} diff --git a/ruoyi-modules/Property/src/main/java/org/dromara/property/mapper/PlantsOrderMaintainMapper.java b/ruoyi-modules/Property/src/main/java/org/dromara/property/mapper/PlantsOrderMaintainMapper.java new file mode 100644 index 00000000..4ab6ad0a --- /dev/null +++ b/ruoyi-modules/Property/src/main/java/org/dromara/property/mapper/PlantsOrderMaintainMapper.java @@ -0,0 +1,15 @@ +package org.dromara.property.mapper; + +import org.dromara.property.domain.PlantsOrderMaintain; +import org.dromara.property.domain.vo.PlantsOrderMaintainVo; +import org.dromara.common.mybatis.core.mapper.BaseMapperPlus; + +/** + * 绿植租赁-订单养护管理Mapper接口 + * + * @author mocheng + * @date 2025-06-30 + */ +public interface PlantsOrderMaintainMapper extends BaseMapperPlus { + +} diff --git a/ruoyi-modules/Property/src/main/java/org/dromara/property/mapper/PlantsRentalOrderMapper.java b/ruoyi-modules/Property/src/main/java/org/dromara/property/mapper/PlantsRentalOrderMapper.java new file mode 100644 index 00000000..e804b256 --- /dev/null +++ b/ruoyi-modules/Property/src/main/java/org/dromara/property/mapper/PlantsRentalOrderMapper.java @@ -0,0 +1,15 @@ +package org.dromara.property.mapper; + +import org.dromara.property.domain.PlantsRentalOrder; +import org.dromara.property.domain.vo.PlantsRentalOrderVo; +import org.dromara.common.mybatis.core.mapper.BaseMapperPlus; + +/** + * 绿植租赁-订单管理Mapper接口 + * + * @author mocheng + * @date 2025-06-30 + */ +public interface PlantsRentalOrderMapper extends BaseMapperPlus { + +} diff --git a/ruoyi-modules/Property/src/main/java/org/dromara/property/service/IPlantsOrderChargeService.java b/ruoyi-modules/Property/src/main/java/org/dromara/property/service/IPlantsOrderChargeService.java new file mode 100644 index 00000000..4ad298a2 --- /dev/null +++ b/ruoyi-modules/Property/src/main/java/org/dromara/property/service/IPlantsOrderChargeService.java @@ -0,0 +1,69 @@ +package org.dromara.property.service; + +import org.dromara.property.domain.PlantsOrderCharge; +import org.dromara.property.domain.vo.PlantsOrderChargeVo; +import org.dromara.property.domain.bo.PlantsOrderChargeBo; +import org.dromara.common.mybatis.core.page.TableDataInfo; +import org.dromara.common.mybatis.core.page.PageQuery; + +import java.util.Collection; +import java.util.List; + +/** + * 绿植租赁-订单收费Service接口 + * + * @author mocheng + * @date 2025-06-30 + */ +public interface IPlantsOrderChargeService { + + /** + * 查询绿植租赁-订单收费 + * + * @param id 主键 + * @return 绿植租赁-订单收费 + */ + PlantsOrderChargeVo queryById(Long id); + + /** + * 分页查询绿植租赁-订单收费列表 + * + * @param bo 查询条件 + * @param pageQuery 分页参数 + * @return 绿植租赁-订单收费分页列表 + */ + TableDataInfo queryPageList(PlantsOrderChargeBo bo, PageQuery pageQuery); + + /** + * 查询符合条件的绿植租赁-订单收费列表 + * + * @param bo 查询条件 + * @return 绿植租赁-订单收费列表 + */ + List queryList(PlantsOrderChargeBo bo); + + /** + * 新增绿植租赁-订单收费 + * + * @param bo 绿植租赁-订单收费 + * @return 是否新增成功 + */ + Boolean insertByBo(PlantsOrderChargeBo bo); + + /** + * 修改绿植租赁-订单收费 + * + * @param bo 绿植租赁-订单收费 + * @return 是否修改成功 + */ + Boolean updateByBo(PlantsOrderChargeBo bo); + + /** + * 校验并批量删除绿植租赁-订单收费信息 + * + * @param ids 待删除的主键集合 + * @param isValid 是否进行有效性校验 + * @return 是否删除成功 + */ + Boolean deleteWithValidByIds(Collection ids, Boolean isValid); +} diff --git a/ruoyi-modules/Property/src/main/java/org/dromara/property/service/IPlantsOrderMaintainService.java b/ruoyi-modules/Property/src/main/java/org/dromara/property/service/IPlantsOrderMaintainService.java new file mode 100644 index 00000000..18ac94d6 --- /dev/null +++ b/ruoyi-modules/Property/src/main/java/org/dromara/property/service/IPlantsOrderMaintainService.java @@ -0,0 +1,69 @@ +package org.dromara.property.service; + +import org.dromara.property.domain.PlantsOrderMaintain; +import org.dromara.property.domain.vo.PlantsOrderMaintainVo; +import org.dromara.property.domain.bo.PlantsOrderMaintainBo; +import org.dromara.common.mybatis.core.page.TableDataInfo; +import org.dromara.common.mybatis.core.page.PageQuery; + +import java.util.Collection; +import java.util.List; + +/** + * 绿植租赁-订单养护管理Service接口 + * + * @author mocheng + * @date 2025-06-30 + */ +public interface IPlantsOrderMaintainService { + + /** + * 查询绿植租赁-订单养护管理 + * + * @param id 主键 + * @return 绿植租赁-订单养护管理 + */ + PlantsOrderMaintainVo queryById(Long id); + + /** + * 分页查询绿植租赁-订单养护管理列表 + * + * @param bo 查询条件 + * @param pageQuery 分页参数 + * @return 绿植租赁-订单养护管理分页列表 + */ + TableDataInfo queryPageList(PlantsOrderMaintainBo bo, PageQuery pageQuery); + + /** + * 查询符合条件的绿植租赁-订单养护管理列表 + * + * @param bo 查询条件 + * @return 绿植租赁-订单养护管理列表 + */ + List queryList(PlantsOrderMaintainBo bo); + + /** + * 新增绿植租赁-订单养护管理 + * + * @param bo 绿植租赁-订单养护管理 + * @return 是否新增成功 + */ + Boolean insertByBo(PlantsOrderMaintainBo bo); + + /** + * 修改绿植租赁-订单养护管理 + * + * @param bo 绿植租赁-订单养护管理 + * @return 是否修改成功 + */ + Boolean updateByBo(PlantsOrderMaintainBo bo); + + /** + * 校验并批量删除绿植租赁-订单养护管理信息 + * + * @param ids 待删除的主键集合 + * @param isValid 是否进行有效性校验 + * @return 是否删除成功 + */ + Boolean deleteWithValidByIds(Collection ids, Boolean isValid); +} diff --git a/ruoyi-modules/Property/src/main/java/org/dromara/property/service/IPlantsRentalOrderService.java b/ruoyi-modules/Property/src/main/java/org/dromara/property/service/IPlantsRentalOrderService.java new file mode 100644 index 00000000..d724b2e2 --- /dev/null +++ b/ruoyi-modules/Property/src/main/java/org/dromara/property/service/IPlantsRentalOrderService.java @@ -0,0 +1,69 @@ +package org.dromara.property.service; + +import org.dromara.property.domain.PlantsRentalOrder; +import org.dromara.property.domain.vo.PlantsRentalOrderVo; +import org.dromara.property.domain.bo.PlantsRentalOrderBo; +import org.dromara.common.mybatis.core.page.TableDataInfo; +import org.dromara.common.mybatis.core.page.PageQuery; + +import java.util.Collection; +import java.util.List; + +/** + * 绿植租赁-订单管理Service接口 + * + * @author mocheng + * @date 2025-06-30 + */ +public interface IPlantsRentalOrderService { + + /** + * 查询绿植租赁-订单管理 + * + * @param id 主键 + * @return 绿植租赁-订单管理 + */ + PlantsRentalOrderVo queryById(Long id); + + /** + * 分页查询绿植租赁-订单管理列表 + * + * @param bo 查询条件 + * @param pageQuery 分页参数 + * @return 绿植租赁-订单管理分页列表 + */ + TableDataInfo queryPageList(PlantsRentalOrderBo bo, PageQuery pageQuery); + + /** + * 查询符合条件的绿植租赁-订单管理列表 + * + * @param bo 查询条件 + * @return 绿植租赁-订单管理列表 + */ + List queryList(PlantsRentalOrderBo bo); + + /** + * 新增绿植租赁-订单管理 + * + * @param bo 绿植租赁-订单管理 + * @return 是否新增成功 + */ + Boolean insertByBo(PlantsRentalOrderBo bo); + + /** + * 修改绿植租赁-订单管理 + * + * @param bo 绿植租赁-订单管理 + * @return 是否修改成功 + */ + Boolean updateByBo(PlantsRentalOrderBo bo); + + /** + * 校验并批量删除绿植租赁-订单管理信息 + * + * @param ids 待删除的主键集合 + * @param isValid 是否进行有效性校验 + * @return 是否删除成功 + */ + Boolean deleteWithValidByIds(Collection ids, Boolean isValid); +} diff --git a/ruoyi-modules/Property/src/main/java/org/dromara/property/service/impl/PlantsOrderChargeServiceImpl.java b/ruoyi-modules/Property/src/main/java/org/dromara/property/service/impl/PlantsOrderChargeServiceImpl.java new file mode 100644 index 00000000..7105a3bf --- /dev/null +++ b/ruoyi-modules/Property/src/main/java/org/dromara/property/service/impl/PlantsOrderChargeServiceImpl.java @@ -0,0 +1,143 @@ +package org.dromara.property.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 lombok.RequiredArgsConstructor; +import lombok.extern.slf4j.Slf4j; +import org.springframework.stereotype.Service; +import org.dromara.property.domain.bo.PlantsOrderChargeBo; +import org.dromara.property.domain.vo.PlantsOrderChargeVo; +import org.dromara.property.domain.PlantsOrderCharge; +import org.dromara.property.mapper.PlantsOrderChargeMapper; +import org.dromara.property.service.IPlantsOrderChargeService; + +import java.util.List; +import java.util.Map; +import java.util.Collection; + +/** + * 绿植租赁-订单收费Service业务层处理 + * + * @author mocheng + * @date 2025-06-30 + */ +@Slf4j +@RequiredArgsConstructor +@Service +public class PlantsOrderChargeServiceImpl implements IPlantsOrderChargeService { + + private final PlantsOrderChargeMapper baseMapper; + + /** + * 查询绿植租赁-订单收费 + * + * @param id 主键 + * @return 绿植租赁-订单收费 + */ + @Override + public PlantsOrderChargeVo queryById(Long id){ + return baseMapper.selectVoById(id); + } + + /** + * 分页查询绿植租赁-订单收费列表 + * + * @param bo 查询条件 + * @param pageQuery 分页参数 + * @return 绿植租赁-订单收费分页列表 + */ + @Override + public TableDataInfo queryPageList(PlantsOrderChargeBo bo, PageQuery pageQuery) { + LambdaQueryWrapper lqw = buildQueryWrapper(bo); + Page result = baseMapper.selectVoPage(pageQuery.build(), lqw); + return TableDataInfo.build(result); + } + + /** + * 查询符合条件的绿植租赁-订单收费列表 + * + * @param bo 查询条件 + * @return 绿植租赁-订单收费列表 + */ + @Override + public List queryList(PlantsOrderChargeBo bo) { + LambdaQueryWrapper lqw = buildQueryWrapper(bo); + return baseMapper.selectVoList(lqw); + } + + private LambdaQueryWrapper buildQueryWrapper(PlantsOrderChargeBo bo) { + Map params = bo.getParams(); + LambdaQueryWrapper lqw = Wrappers.lambdaQuery(); + lqw.orderByAsc(PlantsOrderCharge::getId); + lqw.eq(bo.getOrderId() != null, PlantsOrderCharge::getOrderId, bo.getOrderId()); + lqw.eq(bo.getUserId() != null, PlantsOrderCharge::getUserId, bo.getUserId()); + lqw.like(StringUtils.isNotBlank(bo.getUserName()), PlantsOrderCharge::getUserName, bo.getUserName()); + lqw.eq(bo.getRent() != null, PlantsOrderCharge::getRent, bo.getRent()); + lqw.eq(bo.getDeposit() != null, PlantsOrderCharge::getDeposit, bo.getDeposit()); + lqw.eq(bo.getPenalty() != null, PlantsOrderCharge::getPenalty, bo.getPenalty()); + lqw.eq(bo.getTotalAmount() != null, PlantsOrderCharge::getTotalAmount, bo.getTotalAmount()); + lqw.eq(bo.getChargeDate() != null, PlantsOrderCharge::getChargeDate, bo.getChargeDate()); + lqw.eq(bo.getPaymentMethod() != null, PlantsOrderCharge::getPaymentMethod, bo.getPaymentMethod()); + lqw.eq(bo.getInvoiceStatus() != null, PlantsOrderCharge::getInvoiceStatus, bo.getInvoiceStatus()); + lqw.eq(bo.getInvoiceType() != null, PlantsOrderCharge::getInvoiceType, bo.getInvoiceType()); + lqw.eq(bo.getChargeStatus() != null, PlantsOrderCharge::getChargeStatus, bo.getChargeStatus()); + return lqw; + } + + /** + * 新增绿植租赁-订单收费 + * + * @param bo 绿植租赁-订单收费 + * @return 是否新增成功 + */ + @Override + public Boolean insertByBo(PlantsOrderChargeBo bo) { + PlantsOrderCharge add = MapstructUtils.convert(bo, PlantsOrderCharge.class); + validEntityBeforeSave(add); + boolean flag = baseMapper.insert(add) > 0; + if (flag) { + bo.setId(add.getId()); + } + return flag; + } + + /** + * 修改绿植租赁-订单收费 + * + * @param bo 绿植租赁-订单收费 + * @return 是否修改成功 + */ + @Override + public Boolean updateByBo(PlantsOrderChargeBo bo) { + PlantsOrderCharge update = MapstructUtils.convert(bo, PlantsOrderCharge.class); + validEntityBeforeSave(update); + return baseMapper.updateById(update) > 0; + } + + /** + * 保存前的数据校验 + */ + private void validEntityBeforeSave(PlantsOrderCharge entity){ + //TODO 做一些数据校验,如唯一约束 + } + + /** + * 校验并批量删除绿植租赁-订单收费信息 + * + * @param ids 待删除的主键集合 + * @param isValid 是否进行有效性校验 + * @return 是否删除成功 + */ + @Override + public Boolean deleteWithValidByIds(Collection ids, Boolean isValid) { + if(isValid){ + //TODO 做一些业务上的校验,判断是否需要校验 + } + return baseMapper.deleteByIds(ids) > 0; + } +} diff --git a/ruoyi-modules/Property/src/main/java/org/dromara/property/service/impl/PlantsOrderMaintainServiceImpl.java b/ruoyi-modules/Property/src/main/java/org/dromara/property/service/impl/PlantsOrderMaintainServiceImpl.java new file mode 100644 index 00000000..fc462187 --- /dev/null +++ b/ruoyi-modules/Property/src/main/java/org/dromara/property/service/impl/PlantsOrderMaintainServiceImpl.java @@ -0,0 +1,146 @@ +package org.dromara.property.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 lombok.RequiredArgsConstructor; +import lombok.extern.slf4j.Slf4j; +import org.springframework.stereotype.Service; +import org.dromara.property.domain.bo.PlantsOrderMaintainBo; +import org.dromara.property.domain.vo.PlantsOrderMaintainVo; +import org.dromara.property.domain.PlantsOrderMaintain; +import org.dromara.property.mapper.PlantsOrderMaintainMapper; +import org.dromara.property.service.IPlantsOrderMaintainService; + +import java.util.List; +import java.util.Map; +import java.util.Collection; + +/** + * 绿植租赁-订单养护管理Service业务层处理 + * + * @author mocheng + * @date 2025-06-30 + */ +@Slf4j +@RequiredArgsConstructor +@Service +public class PlantsOrderMaintainServiceImpl implements IPlantsOrderMaintainService { + + private final PlantsOrderMaintainMapper baseMapper; + + /** + * 查询绿植租赁-订单养护管理 + * + * @param id 主键 + * @return 绿植租赁-订单养护管理 + */ + @Override + public PlantsOrderMaintainVo queryById(Long id){ + return baseMapper.selectVoById(id); + } + + /** + * 分页查询绿植租赁-订单养护管理列表 + * + * @param bo 查询条件 + * @param pageQuery 分页参数 + * @return 绿植租赁-订单养护管理分页列表 + */ + @Override + public TableDataInfo queryPageList(PlantsOrderMaintainBo bo, PageQuery pageQuery) { + LambdaQueryWrapper lqw = buildQueryWrapper(bo); + Page result = baseMapper.selectVoPage(pageQuery.build(), lqw); + return TableDataInfo.build(result); + } + + /** + * 查询符合条件的绿植租赁-订单养护管理列表 + * + * @param bo 查询条件 + * @return 绿植租赁-订单养护管理列表 + */ + @Override + public List queryList(PlantsOrderMaintainBo bo) { + LambdaQueryWrapper lqw = buildQueryWrapper(bo); + return baseMapper.selectVoList(lqw); + } + + private LambdaQueryWrapper buildQueryWrapper(PlantsOrderMaintainBo bo) { + Map params = bo.getParams(); + LambdaQueryWrapper lqw = Wrappers.lambdaQuery(); + lqw.orderByAsc(PlantsOrderMaintain::getId); + lqw.like(StringUtils.isNotBlank(bo.getMaintainName()), PlantsOrderMaintain::getMaintainName, bo.getMaintainName()); + lqw.eq(bo.getCommunityId() != null, PlantsOrderMaintain::getCommunityId, bo.getCommunityId()); + lqw.eq(bo.getBuildingId() != null, PlantsOrderMaintain::getBuildingId, bo.getBuildingId()); + lqw.eq(bo.getFloorId() != null, PlantsOrderMaintain::getFloorId, bo.getFloorId()); + lqw.eq(bo.getServeType() != null, PlantsOrderMaintain::getServeType, bo.getServeType()); + lqw.eq(bo.getPeriodType() != null, PlantsOrderMaintain::getPeriodType, bo.getPeriodType()); + lqw.eq(bo.getPeriodFrequency() != null, PlantsOrderMaintain::getPeriodFrequency, bo.getPeriodFrequency()); + lqw.eq(bo.getOrderId() != null, PlantsOrderMaintain::getOrderId, bo.getOrderId()); + lqw.eq(bo.getStartTime() != null, PlantsOrderMaintain::getStartTime, bo.getStartTime()); + lqw.eq(bo.getEndTime() != null, PlantsOrderMaintain::getEndTime, bo.getEndTime()); + lqw.eq(bo.getInspectResult() != null, PlantsOrderMaintain::getInspectResult, bo.getInspectResult()); + lqw.eq(StringUtils.isNotBlank(bo.getMeasure()), PlantsOrderMaintain::getMeasure, bo.getMeasure()); + lqw.eq(bo.getCustomerScore() != null, PlantsOrderMaintain::getCustomerScore, bo.getCustomerScore()); + lqw.eq(StringUtils.isNotBlank(bo.getCustomerAdvice()), PlantsOrderMaintain::getCustomerAdvice, bo.getCustomerAdvice()); + lqw.eq(bo.getState() != null, PlantsOrderMaintain::getState, bo.getState()); + return lqw; + } + + /** + * 新增绿植租赁-订单养护管理 + * + * @param bo 绿植租赁-订单养护管理 + * @return 是否新增成功 + */ + @Override + public Boolean insertByBo(PlantsOrderMaintainBo bo) { + PlantsOrderMaintain add = MapstructUtils.convert(bo, PlantsOrderMaintain.class); + validEntityBeforeSave(add); + boolean flag = baseMapper.insert(add) > 0; + if (flag) { + bo.setId(add.getId()); + } + return flag; + } + + /** + * 修改绿植租赁-订单养护管理 + * + * @param bo 绿植租赁-订单养护管理 + * @return 是否修改成功 + */ + @Override + public Boolean updateByBo(PlantsOrderMaintainBo bo) { + PlantsOrderMaintain update = MapstructUtils.convert(bo, PlantsOrderMaintain.class); + validEntityBeforeSave(update); + return baseMapper.updateById(update) > 0; + } + + /** + * 保存前的数据校验 + */ + private void validEntityBeforeSave(PlantsOrderMaintain entity){ + //TODO 做一些数据校验,如唯一约束 + } + + /** + * 校验并批量删除绿植租赁-订单养护管理信息 + * + * @param ids 待删除的主键集合 + * @param isValid 是否进行有效性校验 + * @return 是否删除成功 + */ + @Override + public Boolean deleteWithValidByIds(Collection ids, Boolean isValid) { + if(isValid){ + //TODO 做一些业务上的校验,判断是否需要校验 + } + return baseMapper.deleteByIds(ids) > 0; + } +} diff --git a/ruoyi-modules/Property/src/main/java/org/dromara/property/service/impl/PlantsRentalOrderServiceImpl.java b/ruoyi-modules/Property/src/main/java/org/dromara/property/service/impl/PlantsRentalOrderServiceImpl.java new file mode 100644 index 00000000..2f44be2d --- /dev/null +++ b/ruoyi-modules/Property/src/main/java/org/dromara/property/service/impl/PlantsRentalOrderServiceImpl.java @@ -0,0 +1,146 @@ +package org.dromara.property.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 lombok.RequiredArgsConstructor; +import lombok.extern.slf4j.Slf4j; +import org.springframework.stereotype.Service; +import org.dromara.property.domain.bo.PlantsRentalOrderBo; +import org.dromara.property.domain.vo.PlantsRentalOrderVo; +import org.dromara.property.domain.PlantsRentalOrder; +import org.dromara.property.mapper.PlantsRentalOrderMapper; +import org.dromara.property.service.IPlantsRentalOrderService; + +import java.util.List; +import java.util.Map; +import java.util.Collection; + +/** + * 绿植租赁-订单管理Service业务层处理 + * + * @author mocheng + * @date 2025-06-30 + */ +@Slf4j +@RequiredArgsConstructor +@Service +public class PlantsRentalOrderServiceImpl implements IPlantsRentalOrderService { + + private final PlantsRentalOrderMapper baseMapper; + + /** + * 查询绿植租赁-订单管理 + * + * @param id 主键 + * @return 绿植租赁-订单管理 + */ + @Override + public PlantsRentalOrderVo queryById(Long id){ + return baseMapper.selectVoById(id); + } + + /** + * 分页查询绿植租赁-订单管理列表 + * + * @param bo 查询条件 + * @param pageQuery 分页参数 + * @return 绿植租赁-订单管理分页列表 + */ + @Override + public TableDataInfo queryPageList(PlantsRentalOrderBo bo, PageQuery pageQuery) { + LambdaQueryWrapper lqw = buildQueryWrapper(bo); + Page result = baseMapper.selectVoPage(pageQuery.build(), lqw); + return TableDataInfo.build(result); + } + + /** + * 查询符合条件的绿植租赁-订单管理列表 + * + * @param bo 查询条件 + * @return 绿植租赁-订单管理列表 + */ + @Override + public List queryList(PlantsRentalOrderBo bo) { + LambdaQueryWrapper lqw = buildQueryWrapper(bo); + return baseMapper.selectVoList(lqw); + } + + private LambdaQueryWrapper buildQueryWrapper(PlantsRentalOrderBo bo) { + Map params = bo.getParams(); + LambdaQueryWrapper lqw = Wrappers.lambdaQuery(); + lqw.orderByAsc(PlantsRentalOrder::getId); + lqw.eq(StringUtils.isNotBlank(bo.getOrderNo()), PlantsRentalOrder::getOrderNo, bo.getOrderNo()); + lqw.like(StringUtils.isNotBlank(bo.getCustomerName()), PlantsRentalOrder::getCustomerName, bo.getCustomerName()); + lqw.eq(bo.getCustomerType() != null, PlantsRentalOrder::getCustomerType, bo.getCustomerType()); + lqw.eq(bo.getRentalPeriod() != null, PlantsRentalOrder::getRentalPeriod, bo.getRentalPeriod()); + lqw.eq(bo.getStartTime() != null, PlantsRentalOrder::getStartTime, bo.getStartTime()); + lqw.eq(bo.getEndTime() != null, PlantsRentalOrder::getEndTime, bo.getEndTime()); + lqw.eq(bo.getTotalAmount() != null, PlantsRentalOrder::getTotalAmount, bo.getTotalAmount()); + lqw.eq(bo.getRentalType() != null, PlantsRentalOrder::getRentalType, bo.getRentalType()); + lqw.eq(bo.getPlanId() != null, PlantsRentalOrder::getPlanId, bo.getPlanId()); + lqw.eq(bo.getProductId() != null, PlantsRentalOrder::getProductId, bo.getProductId()); + lqw.eq(bo.getProductNum() != null, PlantsRentalOrder::getProductNum, bo.getProductNum()); + lqw.eq(bo.getPaymentStatus() != null, PlantsRentalOrder::getPaymentStatus, bo.getPaymentStatus()); + lqw.eq(bo.getIsRelet() != null, PlantsRentalOrder::getIsRelet, bo.getIsRelet()); + lqw.eq(bo.getContractStatus() != null, PlantsRentalOrder::getContractStatus, bo.getContractStatus()); + lqw.eq(bo.getSignTime() != null, PlantsRentalOrder::getSignTime, bo.getSignTime()); + return lqw; + } + + /** + * 新增绿植租赁-订单管理 + * + * @param bo 绿植租赁-订单管理 + * @return 是否新增成功 + */ + @Override + public Boolean insertByBo(PlantsRentalOrderBo bo) { + PlantsRentalOrder add = MapstructUtils.convert(bo, PlantsRentalOrder.class); + validEntityBeforeSave(add); + boolean flag = baseMapper.insert(add) > 0; + if (flag) { + bo.setId(add.getId()); + } + return flag; + } + + /** + * 修改绿植租赁-订单管理 + * + * @param bo 绿植租赁-订单管理 + * @return 是否修改成功 + */ + @Override + public Boolean updateByBo(PlantsRentalOrderBo bo) { + PlantsRentalOrder update = MapstructUtils.convert(bo, PlantsRentalOrder.class); + validEntityBeforeSave(update); + return baseMapper.updateById(update) > 0; + } + + /** + * 保存前的数据校验 + */ + private void validEntityBeforeSave(PlantsRentalOrder entity){ + //TODO 做一些数据校验,如唯一约束 + } + + /** + * 校验并批量删除绿植租赁-订单管理信息 + * + * @param ids 待删除的主键集合 + * @param isValid 是否进行有效性校验 + * @return 是否删除成功 + */ + @Override + public Boolean deleteWithValidByIds(Collection ids, Boolean isValid) { + if(isValid){ + //TODO 做一些业务上的校验,判断是否需要校验 + } + return baseMapper.deleteByIds(ids) > 0; + } +} diff --git a/ruoyi-modules/Property/src/main/resources/mapper/Property/PlantsOrderChargeMapper.xml b/ruoyi-modules/Property/src/main/resources/mapper/Property/PlantsOrderChargeMapper.xml new file mode 100644 index 00000000..493c49a2 --- /dev/null +++ b/ruoyi-modules/Property/src/main/resources/mapper/Property/PlantsOrderChargeMapper.xml @@ -0,0 +1,7 @@ + + + + + diff --git a/ruoyi-modules/Property/src/main/resources/mapper/Property/PlantsOrderMaintainMapper.xml b/ruoyi-modules/Property/src/main/resources/mapper/Property/PlantsOrderMaintainMapper.xml new file mode 100644 index 00000000..b9ad899e --- /dev/null +++ b/ruoyi-modules/Property/src/main/resources/mapper/Property/PlantsOrderMaintainMapper.xml @@ -0,0 +1,7 @@ + + + + + diff --git a/ruoyi-modules/Property/src/main/resources/mapper/Property/PlantsRentalOrderMapper.xml b/ruoyi-modules/Property/src/main/resources/mapper/Property/PlantsRentalOrderMapper.xml new file mode 100644 index 00000000..71f103e8 --- /dev/null +++ b/ruoyi-modules/Property/src/main/resources/mapper/Property/PlantsRentalOrderMapper.xml @@ -0,0 +1,7 @@ + + + + +