From c85ec85b2d9d4f409d02d10d69e5c1ed7d020118 Mon Sep 17 00:00:00 2001 From: zcxlsm Date: Tue, 24 Jun 2025 21:18:42 +0800 Subject: [PATCH] =?UTF-8?q?feat(E8Service):=20=E6=96=B0=E5=A2=9E=E9=97=A8?= =?UTF-8?q?=E7=A6=81=E6=8E=A7=E5=88=B6=E5=92=8C=E4=BA=BA=E5=91=98=E4=BF=A1?= =?UTF-8?q?=E6=81=AF=E7=AE=A1=E7=90=86=E5=8A=9F=E8=83=BD-=20=E6=B7=BB?= =?UTF-8?q?=E5=8A=A0=20AccessControlController=E3=80=81AccessControlServic?= =?UTF-8?q?e=20=E5=92=8C=20AccessControlServiceImpl=20=E7=B1=BB=E5=AE=9E?= =?UTF-8?q?=E7=8E=B0=E9=97=A8=E7=A6=81=E6=8E=A7=E5=88=B6=E5=8A=9F=E8=83=BD?= =?UTF-8?q?=20-=20=E6=96=B0=E5=A2=9E=20CustomerService=20=E5=92=8C=20Custo?= =?UTF-8?q?merServiceImpl=20=E7=B1=BB=E6=8F=90=E4=BE=9B=E4=BA=BA=E5=91=98?= =?UTF-8?q?=E4=BF=A1=E6=81=AF=E7=AE=A1=E7=90=86=E6=9C=8D=E5=8A=A1=20-=20?= =?UTF-8?q?=E5=88=9B=E5=BB=BA=E7=9B=B8=E5=85=B3=E8=AF=B7=E6=B1=82=E5=92=8C?= =?UTF-8?q?=E5=93=8D=E5=BA=94=E5=AF=B9=E8=B1=A1=E7=B1=BB=EF=BC=8C=E5=A6=82?= =?UTF-8?q?=20RemoteOpenDoorReq=E3=80=81AccessRecordFindRes=E7=AD=89=20-?= =?UTF-8?q?=20=E6=B7=BB=E5=8A=A0=20E8ApiUtil=20=E5=B7=A5=E5=85=B7=E7=B1=BB?= =?UTF-8?q?=E5=A4=84=E7=90=86=E4=B8=8E=E7=AC=AC=E4=B8=89=E6=96=B9=20API=20?= =?UTF-8?q?=E7=9A=84=E4=BA=A4=E4=BA=92=20-=20=E6=96=B0=E5=A2=9E=20AreaType?= =?UTF-8?q?Enum=20=E6=9E=9A=E4=B8=BE=E7=B1=BB=E8=A1=A8=E7=A4=BA=E5=8C=BA?= =?UTF-8?q?=E5=9F=9F=E7=B1=BB=E5=9E=8B?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ruoyi-modules/E8Service/Dockerfile | 27 + ruoyi-modules/E8Service/pom.xml | 133 +++++ .../E8Service/E8ServiceApplication.java | 22 + .../Service/base/CustomerService.java | 57 ++ .../E8Service/Service/base/LiftService.java | 56 ++ .../base/impl/CustomerServiceImpl.java | 171 ++++++ .../Service/base/impl/LiftServiceImpl.java | 163 ++++++ .../business/AccessControlService.java | 47 ++ .../business/VoucherControlService.java | 16 + .../impl/AccessControlServiceImpl.java | 110 ++++ .../controller/AccessControlController.java | 66 +++ .../controller/DoorDeviceController.java | 120 +++++ .../req/AccessRecordFindReq.java | 60 +++ .../AccessControl/req/RemoteOpenDoorReq.java | 48 ++ .../res/AccessRecordFindRes.java | 245 +++++++++ .../DoorDevice/res/DoorDeviceUpdateRes.java | 198 +++++++ .../domain/custom/req/CustomAddReq.java | 309 +++++++++++ .../domain/custom/req/CustomFindReq.java | 75 +++ .../domain/custom/req/CustomUpdateReq.java | 329 ++++++++++++ .../domain/custom/res/CustomAddRes.java | 72 +++ .../domain/custom/res/CustomFindRes.java | 490 ++++++++++++++++++ .../E8Service/domain/enums/AreaTypeEnum.java | 45 ++ .../E8Service/domain/enums/UserTypeEnum.java | 50 ++ .../E8Service/domain/lift/req/LiftAddReq.java | 27 + .../domain/lift/req/LiftFindReq.java | 41 ++ .../domain/lift/req/LiftUpdateReq.java | 33 ++ .../E8Service/domain/lift/res/LiftAddRes.java | 9 + .../domain/lift/res/LiftFindRes.java | 177 +++++++ .../src/main/resources/application.yml | 34 ++ .../E8Service/src/main/resources/banner.txt | 10 + .../src/main/resources/logback-plus.xml | 28 + ruoyi-modules/pom.xml | 1 + 32 files changed, 3269 insertions(+) create mode 100644 ruoyi-modules/E8Service/Dockerfile create mode 100644 ruoyi-modules/E8Service/pom.xml create mode 100644 ruoyi-modules/E8Service/src/main/java/org/dromara/E8Service/E8ServiceApplication.java create mode 100644 ruoyi-modules/E8Service/src/main/java/org/dromara/E8Service/Service/base/CustomerService.java create mode 100644 ruoyi-modules/E8Service/src/main/java/org/dromara/E8Service/Service/base/LiftService.java create mode 100644 ruoyi-modules/E8Service/src/main/java/org/dromara/E8Service/Service/base/impl/CustomerServiceImpl.java create mode 100644 ruoyi-modules/E8Service/src/main/java/org/dromara/E8Service/Service/base/impl/LiftServiceImpl.java create mode 100644 ruoyi-modules/E8Service/src/main/java/org/dromara/E8Service/Service/business/AccessControlService.java create mode 100644 ruoyi-modules/E8Service/src/main/java/org/dromara/E8Service/Service/business/VoucherControlService.java create mode 100644 ruoyi-modules/E8Service/src/main/java/org/dromara/E8Service/Service/business/impl/AccessControlServiceImpl.java create mode 100644 ruoyi-modules/E8Service/src/main/java/org/dromara/E8Service/controller/AccessControlController.java create mode 100644 ruoyi-modules/E8Service/src/main/java/org/dromara/E8Service/controller/DoorDeviceController.java create mode 100644 ruoyi-modules/E8Service/src/main/java/org/dromara/E8Service/domain/AccessControl/req/AccessRecordFindReq.java create mode 100644 ruoyi-modules/E8Service/src/main/java/org/dromara/E8Service/domain/AccessControl/req/RemoteOpenDoorReq.java create mode 100644 ruoyi-modules/E8Service/src/main/java/org/dromara/E8Service/domain/AccessControl/res/AccessRecordFindRes.java create mode 100644 ruoyi-modules/E8Service/src/main/java/org/dromara/E8Service/domain/DoorDevice/res/DoorDeviceUpdateRes.java create mode 100644 ruoyi-modules/E8Service/src/main/java/org/dromara/E8Service/domain/custom/req/CustomAddReq.java create mode 100644 ruoyi-modules/E8Service/src/main/java/org/dromara/E8Service/domain/custom/req/CustomFindReq.java create mode 100644 ruoyi-modules/E8Service/src/main/java/org/dromara/E8Service/domain/custom/req/CustomUpdateReq.java create mode 100644 ruoyi-modules/E8Service/src/main/java/org/dromara/E8Service/domain/custom/res/CustomAddRes.java create mode 100644 ruoyi-modules/E8Service/src/main/java/org/dromara/E8Service/domain/custom/res/CustomFindRes.java create mode 100644 ruoyi-modules/E8Service/src/main/java/org/dromara/E8Service/domain/enums/AreaTypeEnum.java create mode 100644 ruoyi-modules/E8Service/src/main/java/org/dromara/E8Service/domain/enums/UserTypeEnum.java create mode 100644 ruoyi-modules/E8Service/src/main/java/org/dromara/E8Service/domain/lift/req/LiftAddReq.java create mode 100644 ruoyi-modules/E8Service/src/main/java/org/dromara/E8Service/domain/lift/req/LiftFindReq.java create mode 100644 ruoyi-modules/E8Service/src/main/java/org/dromara/E8Service/domain/lift/req/LiftUpdateReq.java create mode 100644 ruoyi-modules/E8Service/src/main/java/org/dromara/E8Service/domain/lift/res/LiftAddRes.java create mode 100644 ruoyi-modules/E8Service/src/main/java/org/dromara/E8Service/domain/lift/res/LiftFindRes.java create mode 100644 ruoyi-modules/E8Service/src/main/resources/application.yml create mode 100644 ruoyi-modules/E8Service/src/main/resources/banner.txt create mode 100644 ruoyi-modules/E8Service/src/main/resources/logback-plus.xml diff --git a/ruoyi-modules/E8Service/Dockerfile b/ruoyi-modules/E8Service/Dockerfile new file mode 100644 index 00000000..0b8e5e09 --- /dev/null +++ b/ruoyi-modules/E8Service/Dockerfile @@ -0,0 +1,27 @@ +# 贝尔实验室 Spring 官方推荐镜像 JDK下载地址 https://bell-sw.com/pages/downloads/ +FROM bellsoft/liberica-openjdk-debian:17.0.11-cds +#FROM bellsoft/liberica-openjdk-debian:21.0.5-cds +#FROM findepi/graalvm:java17-native + +LABEL maintainer="Lion Li" + +RUN mkdir -p /smartparks/E8Service/logs \ + /smartparks/E8Service/temp \ + /smartparks/E8Service/agent + +WORKDIR /ruoyi/system + +ENV SERVER_PORT=9201 LANG=C.UTF-8 LC_ALL=C.UTF-8 JAVA_OPTS="" + +EXPOSE ${SERVER_PORT} + +ADD ./target/E8Service.jar ./E8Service.jar + +SHELL ["/bin/bash", "-c"] + +ENTRYPOINT java -Djava.security.egd=file:/dev/./urandom -Dserver.port=${SERVER_PORT} \ + #-Dskywalking.agent.service_name=ruoyi-system \ + #-javaagent:/ruoyi/skywalking/agent/skywalking-agent.jar \ + -XX:+HeapDumpOnOutOfMemoryError -XX:+UseZGC ${JAVA_OPTS} \ + -jar E8Service.jar + diff --git a/ruoyi-modules/E8Service/pom.xml b/ruoyi-modules/E8Service/pom.xml new file mode 100644 index 00000000..8d17813e --- /dev/null +++ b/ruoyi-modules/E8Service/pom.xml @@ -0,0 +1,133 @@ + + + + org.dromara + ruoyi-modules + ${revision} + + 4.0.0 + + E8Service + + + E8Service-e8服务接口 + + + + + + org.dromara + ruoyi-common-nacos + + + + org.dromara + ruoyi-common-sentinel + + + + + org.dromara + ruoyi-common-log + + + + org.dromara + ruoyi-common-service-impl + + + + org.dromara + ruoyi-common-doc + + + + org.dromara + ruoyi-common-web + + + + org.dromara + ruoyi-common-mybatis + + + + org.dromara + ruoyi-common-dubbo + + + + org.dromara + ruoyi-common-seata + + + + org.dromara + ruoyi-common-idempotent + + + + org.dromara + ruoyi-common-tenant + + + + org.dromara + ruoyi-common-security + + + + org.dromara + ruoyi-common-translation + + + + org.dromara + ruoyi-common-sensitive + + + + org.dromara + ruoyi-common-encrypt + + + + + org.dromara + ruoyi-api-system + + + + org.dromara + ruoyi-api-resource + + + + + org.dromara + ruoyi-api-workflow + + + + + + ${project.artifactId} + + + org.springframework.boot + spring-boot-maven-plugin + ${spring-boot.version} + + + + repackage + + + + + + + + diff --git a/ruoyi-modules/E8Service/src/main/java/org/dromara/E8Service/E8ServiceApplication.java b/ruoyi-modules/E8Service/src/main/java/org/dromara/E8Service/E8ServiceApplication.java new file mode 100644 index 00000000..be8e55b6 --- /dev/null +++ b/ruoyi-modules/E8Service/src/main/java/org/dromara/E8Service/E8ServiceApplication.java @@ -0,0 +1,22 @@ +package org.dromara.E8Service; + +import org.apache.dubbo.config.spring.context.annotation.EnableDubbo; +import org.springframework.boot.SpringApplication; +import org.springframework.boot.autoconfigure.SpringBootApplication; +import org.springframework.boot.context.metrics.buffering.BufferingApplicationStartup; + +/** + * 系统模块 + * + * @author ruoyi + */ +@EnableDubbo +@SpringBootApplication +public class E8ServiceApplication { + public static void main(String[] args) { + SpringApplication application = new SpringApplication(E8ServiceApplication.class); + application.setApplicationStartup(new BufferingApplicationStartup(2048)); + application.run(args); + System.out.println("(♥◠‿◠)ノ゙ 系统模块启动成功 ლ(´ڡ`ლ)゙ "); + } +} diff --git a/ruoyi-modules/E8Service/src/main/java/org/dromara/E8Service/Service/base/CustomerService.java b/ruoyi-modules/E8Service/src/main/java/org/dromara/E8Service/Service/base/CustomerService.java new file mode 100644 index 00000000..eb4c8914 --- /dev/null +++ b/ruoyi-modules/E8Service/src/main/java/org/dromara/E8Service/Service/base/CustomerService.java @@ -0,0 +1,57 @@ +package org.dromara.E8Service.Service.base; + +import com.baomidou.mybatisplus.core.metadata.IPage; +import org.dromara.E8Service.domain.QueryDto; +import org.dromara.E8Service.domain.custom.req.CustomAddReq; +import org.dromara.E8Service.domain.custom.req.CustomFindReq; +import org.dromara.E8Service.domain.custom.req.CustomUpdateReq; +import org.dromara.E8Service.domain.custom.res.CustomAddRes; +import org.dromara.E8Service.domain.custom.res.CustomFindRes; + +/** + * @author lsm + * @apiNote CustomerService + * @since 2025/6/23 + */ +public interface CustomerService { + + /** + * 查询单个人员信息 + * + * @param findReq 传参 + * @return CustomFindRes + */ + CustomFindRes findCustomer(CustomFindReq findReq); + + /** + * 人员信息分页查询 + * + * @param dto 传参 + * @return IPage + */ + IPage findCustomerList(QueryDto dto); + + /** + * 新增人员信息 + * + * @param addReq 传参 + * @return CustomAddRes + */ + CustomAddRes addCustomer(CustomAddReq addReq); + + /** + * 人员信息修改 + * + * @param updateReq 传参 + * @return Boolean + */ + Boolean updateCustomer(CustomUpdateReq updateReq); + + /** + * 删除人员信息 + * + * @param id 传参 + * @return Boolean + */ + Boolean deleteCustomer(Long id); +} diff --git a/ruoyi-modules/E8Service/src/main/java/org/dromara/E8Service/Service/base/LiftService.java b/ruoyi-modules/E8Service/src/main/java/org/dromara/E8Service/Service/base/LiftService.java new file mode 100644 index 00000000..cd64ff10 --- /dev/null +++ b/ruoyi-modules/E8Service/src/main/java/org/dromara/E8Service/Service/base/LiftService.java @@ -0,0 +1,56 @@ +package org.dromara.E8Service.Service.base; + + +import com.baomidou.mybatisplus.core.metadata.IPage; +import org.dromara.E8Service.domain.QueryDto; +import org.dromara.E8Service.domain.lift.req.LiftAddReq; +import org.dromara.E8Service.domain.lift.req.LiftUpdateReq; +import org.dromara.E8Service.domain.lift.res.LiftFindRes; + +/** + * @author zcxlsm + * @apiNote LiftService + * @since 2025/5/9 18:04 + */ +public interface LiftService { + + /** + * 电梯信息分页查询 + * + * @param dto 传参 + * @return IPage + */ + IPage getPageList(QueryDto dto); + + /** + * 查询电梯楼层 + * + * @param id 传参 + * @return LiftFindRes + */ + LiftFindRes getLiftFloor(Long id); + + /** + * 添加电梯 + * + * @param addReq 传参 + * @return Boolean + */ + Boolean addLift(LiftAddReq addReq); + + /** + * 修改电梯信息 + * + * @param updateReq 传参 + * @return Boolean + */ + Boolean updateLift(LiftUpdateReq updateReq); + + /** + * 删除电梯信息 + * + * @param id 传参 + * @return Boolean + */ + Boolean deleteLift(Integer id); +} diff --git a/ruoyi-modules/E8Service/src/main/java/org/dromara/E8Service/Service/base/impl/CustomerServiceImpl.java b/ruoyi-modules/E8Service/src/main/java/org/dromara/E8Service/Service/base/impl/CustomerServiceImpl.java new file mode 100644 index 00000000..d3394838 --- /dev/null +++ b/ruoyi-modules/E8Service/src/main/java/org/dromara/E8Service/Service/base/impl/CustomerServiceImpl.java @@ -0,0 +1,171 @@ +package org.dromara.E8Service.Service.base.impl; + +import cn.hutool.core.bean.BeanUtil; +import cn.hutool.core.lang.TypeReference; +import cn.hutool.json.JSONUtil; +import com.baomidou.mybatisplus.core.metadata.IPage; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import lombok.extern.slf4j.Slf4j; +import org.apache.dubbo.config.annotation.DubboService; +import org.dromara.E8Service.Service.base.CustomerService; +import org.dromara.E8Service.domain.ApiResp; +import org.dromara.E8Service.domain.QueryDto; +import org.dromara.E8Service.domain.custom.req.CustomAddReq; +import org.dromara.E8Service.domain.custom.req.CustomFindReq; +import org.dromara.E8Service.domain.custom.req.CustomUpdateReq; +import org.dromara.E8Service.domain.custom.res.CustomAddRes; +import org.dromara.E8Service.domain.custom.res.CustomFindRes; +import org.dromara.E8Service.utils.E8ApiUtil; +import org.springframework.stereotype.Service; + +import javax.annotation.Resource; +import java.util.HashMap; +import java.util.Map; + +/** + * @author lsm + * @apiNote CustomerServiceImpl + * @since 2025/6/23 + */ +@Slf4j +@Service +@DubboService +public class CustomerServiceImpl implements CustomerService { + private final static String CUSTOMER_GET_PAGE_LIST = "/api/E8/customer/get-page-list"; + private final static String CUSTOMER_GET_FIRST_OR_DEFAULT = "/api/E8/customer/get-first-or-default"; + private final static String CUSTOMER_CREATE = "/api/E8/customer"; + private final static String CUSTOMER_UPDATE = "/api/E8/customer/{id}/update"; + private final static String CUSTOMER_DELETE = "/api/E8/customer/{id}"; + + @Resource + private E8ApiUtil e8ApiUtil; + + /** + * 查询单个人员信息 + * + * @param findReq 传参 + * @return CustomerInfo + */ + @Override + public CustomFindRes findCustomer(CustomFindReq findReq) { + // 将查询请求对象转换为参数映射 + Map params = BeanUtil.beanToMap(findReq); + + // 调用API接口获取客户信息 + ApiResp apiResp = e8ApiUtil.doPost(params, CUSTOMER_GET_FIRST_OR_DEFAULT); + + // 检查API调用是否成功 + if (!apiResp.getSuccess()) { + log.info("E8查询人员信息失败 errorMsg:{}", apiResp); + // 如果API调用失败,返回null + return null; + } + + // 将API响应结果转换为CustomFindRes对象并返回 + return JSONUtil.toBean(JSONUtil.toJsonStr(apiResp.getResult()), CustomFindRes.class); + } + + /** + * 人员信息分页查询 + * + * @param dto 传参 + * @return IPage + */ + @Override + public IPage findCustomerList(QueryDto dto) { + // 创建参数映射,用于存储HTTP请求的参数 + Map params = new HashMap<>(); + // 添加分页参数:当前页码和最大结果数量 + params.put("pageIndex", dto.getPageIndex()); + params.put("maxResultCount", dto.getMaxResultCount()); + // 将查询条件对象转换为JSON字符串,并再次转换为Map对象,然后添加到参数映射中 + params.put("queryDto", JSONUtil.toBean(JSONUtil.toJsonStr(dto.getQueryDto()), CustomFindReq.class)); + + // 调用API工具类的POST方法,发送请求到第三方API,并获取响应结果 + ApiResp apiResp = e8ApiUtil.doPost(params, CUSTOMER_GET_PAGE_LIST); + + + if (!apiResp.getSuccess()) { + log.info("E8人员信息分页查询 errorMsg:{}", apiResp); + // 如果API响应不成功,返回null + return null; + } + + // 将API响应结果转换为Map对象,以便于后续处理 + Map result = JSONUtil.toBean(JSONUtil.toJsonStr(apiResp.getResult()), new TypeReference<>() { + }, false); + // 创建一个分页对象,用于存储客户信息列表和分页数据 + IPage pageInfo = new Page<>(dto.getPageIndex(), dto.getMaxResultCount()); + // 设置总记录数 + pageInfo.setTotal(Long.parseLong(result.get("total").toString())); + // 将API响应结果中的客户信息列表转换为CustomFindRes对象列表,并设置到分页对象中 + pageInfo.setRecords(JSONUtil.toList(JSONUtil.toJsonStr(result.get("item")), CustomFindRes.class)); + + // 返回分页对象 + return pageInfo; + } + + /** + * 新增人员信息 + * + * @param addReq 传参 + * @return Boolean + */ + @Override + public CustomAddRes addCustomer(CustomAddReq addReq) { + // 将添加请求对象转换为Map对象,以便后续API调用 + Map params = BeanUtil.beanToMap(addReq); + + // 执行客户创建API调用,并获取API响应对象 + ApiResp apiResp = e8ApiUtil.doPost(params, CUSTOMER_CREATE); + + // 检查API调用是否成功 + if (!apiResp.getSuccess()) { + log.info("E8新增人员信息失败 errorMsg:{}", apiResp); + // 如果API调用失败,返回null + return null; + } + + // 返回API调用是否成功的标志 + return JSONUtil.toBean(JSONUtil.toJsonStr(apiResp.getResult()), CustomAddRes.class); + } + + /** + * 人员信息修改 + * + * @param updateReq 传参 + * @return Boolean + */ + @Override + public Boolean updateCustomer(CustomUpdateReq updateReq) { + // 根据更新请求构建API URL + String api = CUSTOMER_UPDATE.replace("{id}", updateReq.getId().toString()); + + // 将更新请求对象转换为Map,以便后续API调用 + Map params = BeanUtil.beanToMap(updateReq); + + // 调用API工具类发送POST请求,并获取API响应对象 + ApiResp apiResp = e8ApiUtil.doPost(params, api); + + // 返回API调用是否成功的标志 + return apiResp.getSuccess(); + } + + /** + * 删除人员信息 + * + * @param id 传参 + * @return Boolean + */ + @Override + public Boolean deleteCustomer(Long id) { + // 构造删除客户的API请求URL + String api = CUSTOMER_DELETE.replace("{id}", id.toString()); + + // 调用API工具类的 doGetOrDel 方法发送GET或DELETE请求,并获取响应结果 + ApiResp apiResp = e8ApiUtil.doGetOrDel(api, null, true); + + // 返回API请求是否成功的标志 + return apiResp.getSuccess(); + } +} diff --git a/ruoyi-modules/E8Service/src/main/java/org/dromara/E8Service/Service/base/impl/LiftServiceImpl.java b/ruoyi-modules/E8Service/src/main/java/org/dromara/E8Service/Service/base/impl/LiftServiceImpl.java new file mode 100644 index 00000000..0aaa26ec --- /dev/null +++ b/ruoyi-modules/E8Service/src/main/java/org/dromara/E8Service/Service/base/impl/LiftServiceImpl.java @@ -0,0 +1,163 @@ +package org.dromara.E8Service.Service.base.impl; + + +import cn.hutool.core.bean.BeanUtil; +import cn.hutool.core.lang.TypeReference; +import cn.hutool.json.JSONUtil; +import com.baomidou.mybatisplus.core.metadata.IPage; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; + +import javax.annotation.Resource; + +import org.apache.dubbo.config.annotation.DubboService; +import org.dromara.E8Service.Service.base.LiftService; +import org.dromara.E8Service.domain.ApiResp; +import org.dromara.E8Service.domain.QueryDto; +import org.dromara.E8Service.domain.lift.req.LiftAddReq; +import org.dromara.E8Service.domain.lift.req.LiftFindReq; +import org.dromara.E8Service.domain.lift.req.LiftUpdateReq; +import org.dromara.E8Service.domain.lift.res.LiftFindRes; +import org.dromara.E8Service.utils.E8ApiUtil; +import org.springframework.stereotype.Service; + +import java.util.HashMap; +import java.util.Map; + +/** + * @author lsm + * @apiNote LiftServiceImpl + * @since 2025/5/9 11:52 + */ +@Service +@DubboService +public class LiftServiceImpl implements LiftService { + + private static final String GET_PAGE_LIST = "/api/E8Door/man-elevator-management/get-page-list"; + private static final String GET_LIFT_FLOOR = "/api/E8Door/man-elevator-management/{id}/get-man-elevator-floors"; + private static final String LIFT_ADD = "/api/E8Door/man-elevator-management"; + private static final String LIFT_UPDATE = "/api/E8Door/man-elevator-management/{id}/update"; + private static final String LIFT_DELETE = "/api/E8Door/man-elevator-management/{id}"; + + @Resource + private E8ApiUtil e8ApiUtil; + + /** + * 电梯信息分页查询 + * + * @param dto 传参 + * @return IPage + */ + @Override + public IPage getPageList(QueryDto dto) { + // 创建一个参数映射,用于存储API请求所需的参数 + Map params = new HashMap<>(); + // 将分页索引和最大结果数放入参数映射中 + params.put("pageIndex", dto.getPageIndex()); + params.put("maxResultCount", dto.getMaxResultCount()); + // 将查询DTO转换为LiftInfo对象,并将其添加到参数映射中 + params.put("queryDto", JSONUtil.toBean(JSONUtil.toJsonStr(dto.getQueryDto()), LiftFindReq.class)); + + // 调用E8 API工具类的POST方法,传入参数和API路径,获取API响应 + ApiResp apiResp = e8ApiUtil.doPost(params, GET_PAGE_LIST); + // 如果API响应不成功,则返回null + if (!apiResp.getSuccess()) { + return null; + } + + // 将API响应的结果转换为一个Map对象 + Map result = JSONUtil.toBean(JSONUtil.toJsonStr(apiResp.getResult()), new TypeReference<>() { + }, false); + // 创建一个分页对象,传入分页索引和最大结果数 + IPage page = new Page<>(dto.getPageIndex(), dto.getMaxResultCount()); + // 设置分页对象的总记录数 + page.setTotal(Long.parseLong(result.get("total").toString())); + // 将结果中的项转换为LiftFindRes列表,并设置为分页对象的记录 + page.setRecords(JSONUtil.toList(JSONUtil.toJsonStr(result.get("item")), LiftFindRes.class)); + + // 返回填充了数据的分页对象 + return page; + } + + /** + * 查询电梯楼层 + * + * @param id 传参 + * @return LiftFindRes + */ + @Override + public LiftFindRes getLiftFloor(Long id) { + + // 构造请求URL,其中{id}将被liftInfo的ID替换 + String url = GET_LIFT_FLOOR.replace("{id}", id.toString()); + + // 调用API接口,获取电梯信息 + ApiResp apiResp = e8ApiUtil.doPost(null, url); + // 如果API调用不成功,则返回null + if (!apiResp.getSuccess()) { + return null; + } + + // 将API响应结果转换为LiftFindRes对象,并返回 + return JSONUtil.toBean(JSONUtil.toJsonStr(apiResp.getResult()), LiftFindRes.class); + } + + /** + * 添加电梯 + * + * @param addReq 传参 + * @return Boolean + */ + @Override + public Boolean addLift(LiftAddReq addReq) { + // 将添加请求对象转换为Map对象,便于后续操作 + Map params = BeanUtil.beanToMap(addReq); + + // 调用第三方API进行电梯添加操作,并获取API响应结果 + ApiResp apiResp = e8ApiUtil.doPost(params, LIFT_ADD); + + // 返回API操作是否成功的标志 + return apiResp.getSuccess(); + } + + /** + * 修改电梯信息 + * + * @param updateReq 传参 + * @return Boolean + */ + @Override + public Boolean updateLift(LiftUpdateReq updateReq) { + + // 根据LiftUpdateReq对象中的ID生成请求URL + String url = LIFT_UPDATE.replace("{id}", updateReq.getId().toString()); + + // 将LiftUpdateReq对象转换为Map类型,以便于API请求参数的处理 + Map params = BeanUtil.beanToMap(updateReq); + + // 调用E8 API进行POST请求,并返回API响应对象 + ApiResp apiResp = e8ApiUtil.doPost(params, url); + + // 返回API调用是否成功的标志 + return apiResp.getSuccess(); + } + + /** + * 删除电梯信息 + * + * @param id 传参 + * @return Boolean + */ + @Override + public Boolean deleteLift(Integer id) { + + // 构造删除电梯的API请求URL,使用id替换模板中的{id}占位符 + String url = LIFT_DELETE.replace("{id}", id.toString()); + + // 调用e8ApiUtils工具类执行DELETE请求,并获取API响应结果 + ApiResp apiResp = e8ApiUtil.doGetOrDel(url, null, true); + + // 返回API响应中的成功标志,表示删除操作是否成功 + return apiResp.getSuccess(); + } + +} diff --git a/ruoyi-modules/E8Service/src/main/java/org/dromara/E8Service/Service/business/AccessControlService.java b/ruoyi-modules/E8Service/src/main/java/org/dromara/E8Service/Service/business/AccessControlService.java new file mode 100644 index 00000000..6217a056 --- /dev/null +++ b/ruoyi-modules/E8Service/src/main/java/org/dromara/E8Service/Service/business/AccessControlService.java @@ -0,0 +1,47 @@ +package org.dromara.E8Service.Service.business; + +import com.baomidou.mybatisplus.core.metadata.IPage; +import org.dromara.E8Service.domain.AccessControl.req.RemoteOpenDoorReq; +import org.dromara.E8Service.domain.AccessControl.res.AccessRecordFindRes; +import org.dromara.E8Service.domain.QueryDto; + +/** + * @author lsm + * @apiNote AccessControlService + * @since 2025/6/24 + */ +public interface AccessControlService { + + /** + * 远程开门 + * + * @param req 传参 + * @return Boolean + */ + Boolean remoteOpenDoor(RemoteOpenDoorReq req); + + + /** + * 获取通行记录分页列表 + * + * @param dto 传参 + * @return IPage + */ + IPage getPageAccessRecordList(QueryDto dto); + +// /** +// * 人员授权 +// * +// * @param imageFile 传参 +// * @return Boolean +// */ +// Boolean addCustomerAuth(Byte[] imageFile); + +// /** +// * 获取人员权限分页列表 +// * +// * @param dto 传参 +// * @return +// */ +// IPage getPageAccessControl(QueryDto dto); +} diff --git a/ruoyi-modules/E8Service/src/main/java/org/dromara/E8Service/Service/business/VoucherControlService.java b/ruoyi-modules/E8Service/src/main/java/org/dromara/E8Service/Service/business/VoucherControlService.java new file mode 100644 index 00000000..12662511 --- /dev/null +++ b/ruoyi-modules/E8Service/src/main/java/org/dromara/E8Service/Service/business/VoucherControlService.java @@ -0,0 +1,16 @@ +package org.dromara.E8Service.Service.business; + +/** + * @author lsm + * @apiNote VoucherControlService + * @since 2025/6/24 + */ +public class VoucherControlService { + + /** + * 上传人脸 + * + * @param queryDto 查询参数 + * @return 凭证控制列表 + */ +} diff --git a/ruoyi-modules/E8Service/src/main/java/org/dromara/E8Service/Service/business/impl/AccessControlServiceImpl.java b/ruoyi-modules/E8Service/src/main/java/org/dromara/E8Service/Service/business/impl/AccessControlServiceImpl.java new file mode 100644 index 00000000..2cec0ee1 --- /dev/null +++ b/ruoyi-modules/E8Service/src/main/java/org/dromara/E8Service/Service/business/impl/AccessControlServiceImpl.java @@ -0,0 +1,110 @@ +package org.dromara.E8Service.Service.business.impl; + +import cn.hutool.core.bean.BeanUtil; +import cn.hutool.core.lang.TypeReference; +import cn.hutool.json.JSONUtil; +import com.baomidou.mybatisplus.core.metadata.IPage; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import lombok.extern.slf4j.Slf4j; +import org.apache.dubbo.config.annotation.DubboService; +import org.dromara.E8Service.Service.business.AccessControlService; +import org.dromara.E8Service.domain.AccessControl.req.AccessRecordFindReq; +import org.dromara.E8Service.domain.AccessControl.req.RemoteOpenDoorReq; +import org.dromara.E8Service.domain.AccessControl.res.AccessRecordFindRes; +import org.dromara.E8Service.domain.ApiResp; +import org.dromara.E8Service.domain.QueryDto; +import org.dromara.E8Service.utils.E8ApiUtil; +import org.springframework.stereotype.Service; + +import javax.annotation.Resource; +import java.util.HashMap; +import java.util.Map; + +/** + * @author lsm + * @apiNote AccessControlServiceImpl + * @since 2025/6/24 + */ +@Slf4j +@Service +@DubboService +public class AccessControlServiceImpl implements AccessControlService { + + // 远程开门 + private static final String REMOTE_OPEN_DOOR = "/api/E8Door/man-device-info/device-control"; + + // 获取通行记录分页列表 + private static final String GET_PAGE_ACCESS_RECORD_PAGE_LIST = "/api/E8Door/man-pass-record/get-page-list"; + + // 人员授权 + private static final String PERSON_AUTHORIZATION = "/api/E8Door/man-auth-info/auth-info-by-type"; + + // 获取人员权限分页列表 + private static final String GET_PAGE_PERSON_AUTHORIZATION_PAGE_LIST = "/api/E8Door/man-person-device-finally/get-page-list"; + + @Resource + private E8ApiUtil e8ApiUtil; + + /** + * 远程开门 + * + * @param req 入参 + * @return Boolean + */ + @Override + public Boolean remoteOpenDoor(RemoteOpenDoorReq req) { + // 将RemoteOpenDoorReq转为Map对象,以便作为API请求的参数 + Map params = BeanUtil.beanToMap(req); + + // 调用第三方API进行开门操作,传入处理后的参数和指定的API端点 + ApiResp apiResp = e8ApiUtil.doPost(params, REMOTE_OPEN_DOOR); + + // 返回API调用是否成功的结果 + return apiResp.getSuccess(); + } + + /** + * 获取通行记录分页列表 + * + * @param dto 传参 + * @return IPage + */ + @Override + public IPage getPageAccessRecordList(QueryDto dto) { + // 创建一个参数映射,用于存储API请求的参数 + Map params = new HashMap<>(); + // 将分页索引和最大结果数放入参数映射中 + params.put("pageIndex", dto.getPageIndex()); + params.put("maxResultCount", dto.getMaxResultCount()); + // 将查询DTO转换为JSON字符串,再转换为Map对象,然后放入参数映射中 + params.put("queryDto", JSONUtil.toBean(JSONUtil.toJsonStr(dto.getQueryDto()), AccessRecordFindReq.class)); + + // 调用API工具类的POST方法,传入参数和API路径,获取API响应对象 + ApiResp apiResp = e8ApiUtil.doPost(params, GET_PAGE_ACCESS_RECORD_PAGE_LIST); + // 如果API响应不成功,则返回null + if (!apiResp.getSuccess()) { + return null; + } + + // 将API响应的结果转换为JSON字符串,再转换为Map对象 + Map result = JSONUtil.toBean(JSONUtil.toJsonStr(apiResp.getResult()), new TypeReference<>() { + }, false); + // 创建一个分页对象,传入分页索引和最大结果数 + IPage page = new Page<>(dto.getPageIndex(), dto.getMaxResultCount()); + // 从结果映射中获取总记录数,转换为长整型后设置到分页对象中 + page.setTotal(Long.parseLong(result.get("total").toString())); + // 从结果映射中获取项目列表,转换为访问记录信息列表后设置到分页对象中 + page.setRecords(JSONUtil.toList(JSONUtil.toJsonStr(result.get("item")), AccessRecordFindRes.class)); + + // 返回填充了数据的分页对象 + return page; + } + + /** + * 人员授权 + * + * @param imageFile 传参 + * @return Boolean + */ + +} diff --git a/ruoyi-modules/E8Service/src/main/java/org/dromara/E8Service/controller/AccessControlController.java b/ruoyi-modules/E8Service/src/main/java/org/dromara/E8Service/controller/AccessControlController.java new file mode 100644 index 00000000..144d6c03 --- /dev/null +++ b/ruoyi-modules/E8Service/src/main/java/org/dromara/E8Service/controller/AccessControlController.java @@ -0,0 +1,66 @@ +package org.dromara.E8Service.controller; + +import com.baomidou.mybatisplus.core.metadata.IPage; +import lombok.RequiredArgsConstructor; +import lombok.extern.slf4j.Slf4j; +import org.dromara.E8Service.Service.business.AccessControlService; +import org.dromara.E8Service.domain.AccessControl.req.RemoteOpenDoorReq; +import org.dromara.E8Service.domain.AccessControl.res.AccessRecordFindRes; +import org.dromara.E8Service.domain.QueryDto; +import org.dromara.common.core.domain.R; +import org.springframework.web.bind.annotation.PostMapping; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RestController; + +/** + * @author lsm + * @apiNote AccessControlController + * @since 2025/6/24 + */ +@Slf4j +@RestController +@RequiredArgsConstructor +@RequestMapping("/e8accessControl") +public class AccessControlController { + + private final AccessControlService accessControlService; + + /** + * 远程开门 + * + * @param req 传参 + * @return Boolean + */ + @PostMapping("/remoteOpenDoor") + public R remoteOpenDoor(RemoteOpenDoorReq req) { + log.info("E8远程开门 入参:{}", req); + + Boolean flag = accessControlService.remoteOpenDoor(req); + + if (flag) { + return R.ok(); + } else { + return R.fail("E8远程开门,调用失败!"); + } + } + + /** + * 获取门禁记录列表 + * + * @param dto 查询参数 + * @return IPage + */ + @PostMapping("/getPageAccessRecordList") + public R> getPageAccessRecordList(QueryDto dto) { + log.info("E8获取门禁记录列表 入参:{}", dto); + + IPage page = accessControlService.getPageAccessRecordList(dto); + + if (page == null) { + return R.fail("E8获取门禁记录列表,调用失败!"); + } else { + return R.ok(page); + } + } + +} diff --git a/ruoyi-modules/E8Service/src/main/java/org/dromara/E8Service/controller/DoorDeviceController.java b/ruoyi-modules/E8Service/src/main/java/org/dromara/E8Service/controller/DoorDeviceController.java new file mode 100644 index 00000000..9d868dfa --- /dev/null +++ b/ruoyi-modules/E8Service/src/main/java/org/dromara/E8Service/controller/DoorDeviceController.java @@ -0,0 +1,120 @@ +package org.dromara.E8Service.controller; + +import com.baomidou.mybatisplus.core.metadata.IPage; +import lombok.RequiredArgsConstructor; +import lombok.extern.slf4j.Slf4j; +import org.dromara.E8Service.Service.base.DoorDeviceService; +import org.dromara.E8Service.domain.DoorDevice.req.DoorDeviceAddReq; +import org.dromara.E8Service.domain.DoorDevice.req.DoorDeviceUpdateReq; +import org.dromara.E8Service.domain.DoorDevice.res.DoorDeviceAddRes; +import org.dromara.E8Service.domain.DoorDevice.res.DoorDeviceFindRes; +import org.dromara.E8Service.domain.DoorDevice.res.DoorDeviceUpdateRes; +import org.dromara.E8Service.domain.QueryDto; +import org.dromara.common.core.domain.R; +import org.springframework.util.ObjectUtils; +import org.springframework.web.bind.annotation.*; + +/** + * @author lsm + * @apiNote DoorDeviceController + * @since 2025/6/23 + */ +@Slf4j +@RestController +@RequiredArgsConstructor +@RequestMapping("/e8doorDevice") +public class DoorDeviceController { + + private final DoorDeviceService doorDeviceService; + + /** + * 查询门禁信息 + * + * @param id 入参 + * @return Result + */ + @PostMapping("/findDoorDevice/{id}") + public R findDoorDevice(@PathVariable Long id) { + log.info("E8接口 查询门禁信息 入参={}", id); + + DoorDeviceFindRes doorDeviceInfo = doorDeviceService.findDoorDevice(id); + + if (doorDeviceInfo == null) { + return R.fail("E8接口查询门禁信息,调用失败!"); + } else { + return R.ok(doorDeviceInfo); + } + } + + /** + * 新增门禁信息 + * + * @param addReq 入参 + * @return Boolean + */ + @PostMapping("/addDoorDevice") + public R addDoorDevice(@RequestBody DoorDeviceAddReq addReq) { + log.info("E8接口新增门禁信息 入参={}", addReq); + + DoorDeviceAddRes doorDevice = doorDeviceService.addDoorDevice(addReq); + + if (doorDevice == null) { + return R.fail("E8接口新增门禁信息,调用失败!"); + } else { + return R.ok(doorDevice); + } + } + + /** + * 门禁信息修改 + * + * @param updateReq 入参 + * @return Boolean + */ + @PostMapping("/updateDoorDevice") + public R updateDoorDevice(@RequestBody DoorDeviceUpdateReq updateReq) { + log.info("E8接口门禁信息修改 入参={}", updateReq); + + DoorDeviceUpdateRes doorDevice = doorDeviceService.updateDoorDevice(updateReq); + + if (doorDevice == null) { + return R.fail("E8接口门禁信息修改,调用失败!"); + } else { + return R.ok(doorDevice); + } + } + + /** + * 删除门禁信息 + * + * @param id 入参 + * @return Boolean + */ + @PostMapping("/deleteDoorDevice/{id}") + public R deleteDoorDevice(@PathVariable Integer id) { + log.info("E8接口删除门禁信息 入参={}", id); + + Boolean flag = doorDeviceService.deleteDoorDevice(id); + + return flag ? R.ok() : R.fail("E8接口删除门禁信息,调用失败!"); + } + + /** + * 查询门禁信息列表 + * + * @param dto 入参 + * @return IPage + */ + @PostMapping("/findDoorDeviceList") + public R> findDoorDeviceList(@RequestBody QueryDto dto) { + log.info("E8接口查询门禁信息列表 入参={}", dto); + + IPage doorDeviceList = doorDeviceService.findDoorDeviceList(dto); + + if (ObjectUtils.isEmpty(doorDeviceList)) { + return R.fail("E8接口查询门禁信息列表,调用失败!"); + } else { + return R.ok(doorDeviceList); + } + } +} diff --git a/ruoyi-modules/E8Service/src/main/java/org/dromara/E8Service/domain/AccessControl/req/AccessRecordFindReq.java b/ruoyi-modules/E8Service/src/main/java/org/dromara/E8Service/domain/AccessControl/req/AccessRecordFindReq.java new file mode 100644 index 00000000..d0618d4d --- /dev/null +++ b/ruoyi-modules/E8Service/src/main/java/org/dromara/E8Service/domain/AccessControl/req/AccessRecordFindReq.java @@ -0,0 +1,60 @@ +package org.dromara.E8Service.domain.AccessControl.req; + +import lombok.Data; + +/** + * @author lsm + * @apiNote AccessRecordFindReq + * @since 2025/5/27 15:08 + */ +@Data +public class AccessRecordFindReq { + + /** + * 是否脱敏 true脱敏,敏感信息加***隐藏;false完整显示 + */ + private Boolean isViewFullData; + + /** + * 开始时间 + */ + private String startTime; + + /** + * 结束时间 + */ + private String endTime; + + /** + * 人员姓名 + */ + private String customerName; + + /** + * 人员手机号码 + */ + private String tel; + + /** + * 组织ID + */ + private Long orgId; + + /** + * 门ID + */ + private Long doorId; + + /** + * 设备ID + */ + private Long deviceId; + + /** + * 通行记录类型 0:未知 1:卡开门 2:人脸开门 3:指纹开门 4:密码开门 5:按钮开门 6:条码开门 7:多卡开门 8:密码开门 9:蓝牙开门 10:身份证开门 + * 11:二维码开门 12:远程开门 13:卡呼梯 14:卡乘梯 15:密码呼梯 16:密码乘梯 17:指纹呼梯 18:指纹乘梯 19:人脸呼梯 20:人脸乘梯 + * 21:二维码呼梯 22:二维码乘梯 23:扫码呼梯 24:扫码乘梯 25:蓝牙呼梯 26:远程呼梯 27:远程授权 + */ + private Integer recordType; + +} diff --git a/ruoyi-modules/E8Service/src/main/java/org/dromara/E8Service/domain/AccessControl/req/RemoteOpenDoorReq.java b/ruoyi-modules/E8Service/src/main/java/org/dromara/E8Service/domain/AccessControl/req/RemoteOpenDoorReq.java new file mode 100644 index 00000000..3775c8f9 --- /dev/null +++ b/ruoyi-modules/E8Service/src/main/java/org/dromara/E8Service/domain/AccessControl/req/RemoteOpenDoorReq.java @@ -0,0 +1,48 @@ +package org.dromara.E8Service.domain.AccessControl.req; + +import lombok.Data; + +import java.util.List; + +/** + * @author lsm + * @apiNote RemoteOpenDoorReq + * @since 2025/5/27 15:02 + */ +@Data +public class RemoteOpenDoorReq { + + /** + * 门操作类型 0:开门 1:关门 2:常开 3:常闭 4:取消常开 5:取消常闭 6:取消报警 + */ + private Integer type; + + /** + * 原因 + */ + private String reason; + + /** + * 操作人ID + */ + private Long operatorId; + + /** + * 门操作数据 + */ + private List controlList; + + @Data + public static class ControlData { + + /** + * 门ID + */ + private Long doorId; + + /** + * 设备ID + */ + private Long deviceId; + } +} diff --git a/ruoyi-modules/E8Service/src/main/java/org/dromara/E8Service/domain/AccessControl/res/AccessRecordFindRes.java b/ruoyi-modules/E8Service/src/main/java/org/dromara/E8Service/domain/AccessControl/res/AccessRecordFindRes.java new file mode 100644 index 00000000..0e48bb4f --- /dev/null +++ b/ruoyi-modules/E8Service/src/main/java/org/dromara/E8Service/domain/AccessControl/res/AccessRecordFindRes.java @@ -0,0 +1,245 @@ +package org.dromara.E8Service.domain.AccessControl.res; + +import lombok.Data; + +import java.util.Date; + +/** + * @author lsm + * @apiNote AccessRecordFindRes + * @since 2025/5/27 15:12 + */ +@Data +public class AccessRecordFindRes { + + /** + * 主键 + */ + private Long id; + + /** + * 记录ID + */ + private String recordId; + + /** + * 设备ID + */ + private Long deviceId; + + /** + * 设备编号 + */ + private Integer devNo; + + /** + * 设备名称 + */ + private String deviceName; + + /** + * 门ID + */ + private Long doorId; + + /** + * 门名称 + */ + private String doorName; + + /** + * 设备类型(例如:1102-车场控制机,205-辅机等) + */ + private Integer deviceType; + + /** + * 分控ID + */ + private Long deviceSubId; + + /** + * 读头ID + */ + private Long readerId; + + /** + * 读头名称 + */ + private String readerName; + + /** + * 出入口类型(0-未知,1-入口,2-出口) + */ + private Integer gatewayType; + + /** + * 区域ID + */ + private Long areaId; + + /** + * 区域名称 + */ + private String areaName; + + /** + * 客户ID + */ + private Long customerId; + + /** + * 客户编号 + */ + private String customerNo; + + /** + * 客户名称 + */ + private String customerName; + + /** + * 客户名称(备用字段) + */ + private String customerName1; + + /** + * 客户手机号 + */ + private String customerTel; + + /** + * 客户手机号(备用字段) + */ + private String customerTel1; + + /** + * 组织ID + */ + private String organIds; + + /** + * 组织全路径 + */ + private String organFullPath; + + /** + * 卡类别(例如:34-普通用户卡,35-胁迫卡等) + */ + private Integer cardType; + + /** + * 凭证编号 + */ + private String idno; + + /** + * 凭证类型(例如:10-MF1-A卡,20-个人密码等) + */ + private Integer voucherType; + + /** + * 凭证模式(0-ID卡模式,1-IC卡模式等) + */ + private Integer voucherMode; + + /** + * 图片地址 + */ + private String pictureUrl; + + /** + * 监控图片地址 + */ + private String monitorPictureUrl; + + /** + * 视频地址 + */ + private String videoUrl; + + /** + * 通行记录类型(例如:1-卡开门,2-人脸开门等) + */ + private Integer recordType; + + /** + * 是否脱机记录(0-否,1-是) + */ + private Integer offineFlag; + + /** + * 通行时间 + */ + private Date actionTime; + + /** + * 添加时间 + */ + private Date addTime; + + /** + * 扩展字段 + */ + private String extend; + + /** + * 体温 + */ + private Double temperature; + + /** + * 健康状态(0-未知,1-正常,2-异常) + */ + private Integer healthCodeStatus; + + /** + * 设备类型描述 + */ + private String deviceTypeDesc; + + /** + * 出入口类型描述 + */ + private String gatewayTypeDesc; + + /** + * 凭证类型描述 + */ + private String voucherTypeDesc; + + /** + * 凭证模式描述 + */ + private String voucherModeDesc; + + /** + * 卡类描述 + */ + private String cardTypeDesc; + + /** + * 记录类型描述 + */ + private String recordTypeDesc; + + /** + * 体温描述 + */ + private String temperatureDesc; + + /** + * 健康码状态描述 + */ + private String healthCodeStatusDesc; + + /** + * 人脸凭证地址 + */ + private String voucherUrl; + + /** + * 是否显示敏感信息(true-隐藏,false-显示) + */ + private Boolean isViewFullData; + +} diff --git a/ruoyi-modules/E8Service/src/main/java/org/dromara/E8Service/domain/DoorDevice/res/DoorDeviceUpdateRes.java b/ruoyi-modules/E8Service/src/main/java/org/dromara/E8Service/domain/DoorDevice/res/DoorDeviceUpdateRes.java new file mode 100644 index 00000000..06a428f4 --- /dev/null +++ b/ruoyi-modules/E8Service/src/main/java/org/dromara/E8Service/domain/DoorDevice/res/DoorDeviceUpdateRes.java @@ -0,0 +1,198 @@ +package org.dromara.E8Service.domain.DoorDevice.res; + +import lombok.Data; + +import java.util.List; + +/** + * @author lsm + * @apiNote DoorDeviceUpdateRes + * @since 2025/6/23 + */ +@Data +public class DoorDeviceUpdateRes { + /** + * 设备ID + */ + private Long id; + /** + * 创建时间 + */ + private String creationTime; + /** + * 创建者ID + */ + private String creatorId; + /** + * 修改时间 + */ + private String lastModificationTime; + /** + * 修改者ID + */ + private String lastModifierId; + /** + * 是否删除 + */ + private Boolean isDeleted; + /** + * 删除者ID + */ + private String deleterId; + /** + * 删除时间 + */ + private String deletionTime; + /** + * 设备编号 + */ + private String no; + /** + * 设备编号编码 + */ + private Integer noCode; + /** + * cloudId + */ + private String cloudId; + /** + * name + */ + private String name; + /** + * 父级设备名称 + */ + private String parentName; + /** + * 父级设备ID,默认0 + */ + private Integer parentId; + /** + * 管理机IP + */ + private String masterIp; + /** + * 设备IP + */ + private String ip; + /** + * 设备端口 + */ + private Long port; + /** + * 设备MAC + */ + private String mac; + /** + * 子网掩码 + */ + private String netMask; + /** + * 设备网关 + */ + private String gatewayIP; + /** + * 设备产品线类型 0:车行 1:车位 2:人行 + */ + private Integer productType; + /** + * 设备类型 + */ + private Long type; + /** + * 设备类型描述 + */ + private String typeDescription; + /** + * 业务逻辑设备类型 + */ + private Integer logicType; + /** + * 设备型号 + */ + private Integer model; + /** + * 设备型号描述 + */ + private String modelDescription; + /** + * 机号 + */ + private String modelName; + /** + * 设备序列号 + */ + private String sn; + /** + * 设备CPUID + */ + private String cpuID; + /** + * 设备在线状态 0:离线 1:在线 2:未知 + */ + private Integer status; + /** + * 设备在线状态描述 + */ + private String statusDescription; + /** + * 机号 + */ + private String macNo; + /** + * 蓝牙地址 + */ + private String bluetoothAddr; + /** + * 设备层级 + */ + private Integer deviceLevel; + /** + * 父级设备路径 默认空 + */ + private String parentIdPath; + /** + * 是否需要升级 + */ + private Boolean isNeedUpgrade; + /** + * 项目ID + */ + private Integer projectId; + /** + * 创建者 + */ + private String creatorName; + /** + * 关联门 + */ + private String relDoors; + /** + * int32 出入口类型 0:未知 1:入口 2:出口 + */ + private Integer gatewayType; + /** + * 出入口类型 + */ + private String gatewayTypeDesc; + /** + * 备注 + */ + private String remark; + /** + * 设备通讯方式 0:TCP/IP 1:RS485 + */ + private Integer commType; + /** + * 工单号(设备搜索) + */ + private String projectNumber; + /** + * 固件版本信息(设备搜索) + */ + private String version; + /** + * 子设备列表 + */ + private List childList; +} diff --git a/ruoyi-modules/E8Service/src/main/java/org/dromara/E8Service/domain/custom/req/CustomAddReq.java b/ruoyi-modules/E8Service/src/main/java/org/dromara/E8Service/domain/custom/req/CustomAddReq.java new file mode 100644 index 00000000..12fdf036 --- /dev/null +++ b/ruoyi-modules/E8Service/src/main/java/org/dromara/E8Service/domain/custom/req/CustomAddReq.java @@ -0,0 +1,309 @@ +package org.dromara.E8Service.domain.custom.req; + +import lombok.Data; + +import java.util.List; + +/** + * @author lsm + * @apiNote CustomAddReq + * @since 2025/5/26 21:43 + */ +@Data +public class CustomAddReq { + + /** + * 人员姓名 + */ + private String name; + + /** + * 证件类型,0身份证,1驾驶证,2工作证,100其他 + */ + private Integer identityType; + + /** + * 证件编号 + */ + private String identityNo; + + /** + * 籍贯 + */ + private String hometown; + + /** + * 生日 + */ + private String birthday; + + /** + * 地址 + */ + private String address; + + /** + * 性别,0女,1男 + */ + private Integer gender; + + /** + * 职务 + */ + private String duty; + + /** + * 房号 + */ + private String roomNo; + + /** + * 入职时间 + */ + private String enterTime; + + /** + * 手机号 + */ + private String mobile; + + /** + * 邮箱 + */ + private String email; + + /** + * 紧急联系人 + */ + private String emergencyContact; + + /** + * 紧急联系人电话 + */ + private String emergencyContactPhone; + + /** + * 备注 + */ + private String remark; + + /** + * 区域全路径(多个以;分割,层级以|分割) + */ + private String areaFullPath; + + /** + * 组织ID(以;分隔) + */ + private String areaIds; + + /** + * 组织全路径(多个以;分割,层级以|分割) + */ + private String organFullPath; + + /** + * 组织ID(以;分隔) + */ + private String organIds; + + /** + * 客户明细 + */ + private CustomerDetail detail; + + /** + * 车牌号 + */ + private String carNos; + + /** + * 人员图片 + */ + private String image; + + /** + * 指纹索引,0-9,0-左手大拇指,4-左手小指,……,9-右手小指 + */ + private String fingerNo; + + /** + * 指纹信息 多个以“;分隔” + */ + private String fingerData; + + /** + * 绑定车辆信息 + */ + private List vehicleInfos; + + /** + * 相关联区域 + */ + private List relAreas; + + /** + * 是否特殊车牌 + */ + private Boolean isSpecialPlate; + + /** + * 车辆信息· + */ + @Data + public static class Vehicle { + + /** + * 用户id + */ + private Long customerId; + + /** + * 车牌号 + */ + private String plateNO; + + /** + * 车牌颜色,0其他,1蓝牌,2黄牌,3白牌,4黑牌,5绿牌,6黄绿牌 + */ + private Integer plateColor; + + /** + * 车辆类型0小型车,1大型车,2其它,3摩托车 + */ + private Integer type; + + /** + * 品牌 + */ + private String carLogo; + } + + /** + * 人员明细 + */ + @Data + public static class CustomerDetail { + + /** + * 客户Id + */ + private Long customerId; + + /** + * 工号 + */ + private String workNo; + + /** + * 最高学历,0未知,1小学,2初中,3高中,4大学专科,5大学本科,6硕士研究生,7博士研究生 + */ + private Integer education; + + /** + * 毕业学校 + */ + private String school; + + /** + * 专业 + */ + private String master; + + /** + * 政治面貌 + */ + private String politics; + + /** + * 婚姻状况 + */ + private Integer marriage; + + /** + * QQ + */ + private String qq; + + /** + * 微信 + */ + private String wechat; + + /** + * 驾驶证号 + */ + private String driverLicense; + + /** + * 是否忽略反潜回(1:是;0:否) + */ + private Integer isIgnoreEntryBack; + + /** + * 是否忽略门时区(1:是;0:否) + */ + private Integer isIgnoreDoorSchedule; + + /** + * 是否忽略互锁(1:是;0:否) + */ + private Integer isIgnoreLock; + + /** + * 是否忽略报警(1:是;0:否) + */ + private Integer isIgnoreAlarm; + + /** + * 是否发行卡凭证(0:未录入;1:未发行;2:已发行) + */ + private Integer isIssue; + + /** + * 是否忽略人时区(1:是;0:否) + */ + private Integer isIgnorePersonSchedule; + + /** + * 是否黑名单人员(1:是;0:否) + */ + private Integer isBlacklist; + } + + /** + * 相关联的区域 + */ + @Data + public static class RelatedArea { + /** + * 区域id + */ + private Long areaId; + + /** + * 区域名称 + */ + private String areaName; + + /** + * 用户类型 0业主,1家属,2租客,3员工,4企业主,11职员,12临时人员,13户主,14外部人员,100其他人员 + */ + private Integer userType; + + /** + * 区域类型 0区域,1楼栋,2,房屋,3门,4楼层 + */ + private Integer areaType; + + /** + * 区域类型描述 + */ + private String areaTypeDesc; + + /** + * 区域编号 + */ + private String areaNo; + } +} diff --git a/ruoyi-modules/E8Service/src/main/java/org/dromara/E8Service/domain/custom/req/CustomFindReq.java b/ruoyi-modules/E8Service/src/main/java/org/dromara/E8Service/domain/custom/req/CustomFindReq.java new file mode 100644 index 00000000..e3dc7288 --- /dev/null +++ b/ruoyi-modules/E8Service/src/main/java/org/dromara/E8Service/domain/custom/req/CustomFindReq.java @@ -0,0 +1,75 @@ +package org.dromara.E8Service.domain.custom.req; + +import lombok.Data; + +import java.util.List; + +/** + * @author lsm + * @apiNote CustomFindReq + * @since 2025/5/26 20:14 + */ + +@Data +public class CustomFindReq { + + /** + * 是否脱敏 true脱敏,敏感信息加***隐藏;false完整显示 + */ + private Boolean isViewFullData; + + /** + * 人员ID + */ + private Long customerId; + + /** + * 人员编号 + */ + private String no; + + /** + * 人员姓名 + */ + private String name; + + /** + * 所属区域id + */ + private Long areaId; + + /** + * 手机号 + */ + private String mobileNo; + + /** + * 组织id列表 + */ + private List orgIds; + + /** + * 人员姓名/编号/手机号 模糊查询 + */ + private String matchString; + + /** + * 人员是否添加凭证 为true时筛选有凭证的人员 + */ + private Boolean isHasVoucher; + + /** + * 需要排除的人员id列表 + */ + private List exceptIds; + + /** + * 完整手机号精确查找 + */ + private String fullMobile; + + /** + * 人员是否在多人开门组 + */ + private Boolean isFilterMoreGroup; +} diff --git a/ruoyi-modules/E8Service/src/main/java/org/dromara/E8Service/domain/custom/req/CustomUpdateReq.java b/ruoyi-modules/E8Service/src/main/java/org/dromara/E8Service/domain/custom/req/CustomUpdateReq.java new file mode 100644 index 00000000..5f2cd848 --- /dev/null +++ b/ruoyi-modules/E8Service/src/main/java/org/dromara/E8Service/domain/custom/req/CustomUpdateReq.java @@ -0,0 +1,329 @@ +package org.dromara.E8Service.domain.custom.req; + +import lombok.Data; + +import java.util.List; + +/** + * @author lsm + * @apiNote : CustomUpdateReq + * @since 2025/5/27 10:11 + */ +@Data +public class CustomUpdateReq { + + /** + * 人员id + */ + private Long id; + + /** + * 人员编号 + */ + private String no; + + /** + * 人员姓名 + */ + private String name; + + /** + * 证件类型,0身份证,1驾驶证,2工作证,100其他 + */ + private Integer identityType; + + /** + * 证件编号 + */ + private String identityNo; + + /** + * 籍贯 + */ + private String hometown; + + /** + * 生日 + */ + private String birthday; + + /** + * 地址 + */ + private String address; + + /** + * 性别,0女,1男 + */ + private Integer gender; + + /** + * 职务 + */ + private String duty; + + /** + * 房号 + */ + private String roomNo; + + /** + * 入职时间 + */ + private String enterTime; + + /** + * 手机号 + */ + private String mobile; + + /** + * 邮箱 + */ + private String email; + + /** + * 紧急联系人 + */ + private String emergencyContact; + + /** + * 紧急联系人电话 + */ + private String emergencyContactPhone; + + /** + * 备注 + */ + private String remark; + + /** + * 区域全路径(多个以;分割,层级以|分割) + */ + private String areaFullPath; + + /** + * 组织ID(以;分隔) + */ + private String areaIds; + + /** + * 组织全路径(多个以;分割,层级以|分割) + */ + private String organFullPath; + + /** + * 组织ID(以;分隔) + */ + private String organIds; + + /** + * 客户明细 + */ + private CustomerDetail detail; + + /** + * 车牌号 + */ + private String carNos; + + /** + * 人员图片 + */ + private String image; + + /** + * 指纹索引,0-9,0-左手大拇指,4-左手小指,……,9-右手小指 + */ + private String fingerNo; + + /** + * 指纹信息 多个以“;分隔” + */ + private String fingerData; + + /** + * 绑定车辆信息 + */ + private List vehicleInfos; + + /** + * 相关联区域 + */ + private List relAreas; + + /** + * 是否特殊车牌 + */ + private Boolean isSpecialPlate; + + /** + * 人员明细 + */ + @Data + public static class CustomerDetail { + + /** + * 主键 + */ + private Long id; + + /** + * 客户Id + */ + private Long customerId; + + /** + * 工号 + */ + private String workNo; + + /** + * 最高学历,0未知,1小学,2初中,3高中,4大学专科,5大学本科,6硕士研究生,7博士研究生 + */ + private Integer education; + + /** + * 毕业学校 + */ + private String school; + + /** + * 专业 + */ + private String master; + + /** + * 政治面貌 + */ + private String politics; + + /** + * 婚姻状况 + */ + private Integer marriage; + + /** + * QQ + */ + private String qq; + + /** + * 微信 + */ + private String wechat; + + /** + * 驾驶证号 + */ + private String driverLicense; + + /** + * 是否忽略反潜回(1:是;0:否) + */ + private Integer isIgnoreEntryBack; + + /** + * 是否忽略门时区(1:是;0:否) + */ + private Integer isIgnoreDoorSchedule; + + /** + * 是否忽略互锁(1:是;0:否) + */ + private Integer isIgnoreLock; + + /** + * 是否忽略报警(1:是;0:否) + */ + private Integer isIgnoreAlarm; + + /** + * 是否发行卡凭证(0:未录入;1:未发行;2:已发行) + */ + private Integer isIssue; + + /** + * 是否忽略人时区(1:是;0:否) + */ + private Integer isIgnorePersonSchedule; + + /** + * 是否黑名单人员(1:是;0:否) + */ + private Integer isBlacklist; + } + + /** + * 车辆信息· + */ + @Data + public static class Vehicle { + + /** + * 主键 + */ + private Long id; + + /** + * 用户id + */ + private Long customerId; + + /** + * 车牌号 + */ + private String plateNO; + + /** + * 车牌颜色,0其他,1蓝牌,2黄牌,3白牌,4黑牌,5绿牌,6黄绿牌 + */ + private Integer plateColor; + + /** + * 车辆类型0小型车,1大型车,2其它,3摩托车 + */ + private Integer type; + + /** + * 品牌 + */ + private String carLogo; + } + + /** + * 相关联的区域 + */ + @Data + public static class RelatedArea { + /** + * 区域id + */ + private Long areaId; + + /** + * 区域名称 + */ + private String areaName; + + /** + * 用户类型 0业主,1家属,2租客,3员工,4企业主,11职员,12临时人员,13户主,14外部人员,100其他人员 + */ + private Integer userType; + + /** + * 区域类型 0区域,1楼栋,2,房屋,3门,4楼层 + */ + private Integer areaType; + + /** + * 区域类型描述 + */ + private String areaTypeDesc; + + /** + * 区域编号 + */ + private String areaNo; + } +} diff --git a/ruoyi-modules/E8Service/src/main/java/org/dromara/E8Service/domain/custom/res/CustomAddRes.java b/ruoyi-modules/E8Service/src/main/java/org/dromara/E8Service/domain/custom/res/CustomAddRes.java new file mode 100644 index 00000000..00fe51e7 --- /dev/null +++ b/ruoyi-modules/E8Service/src/main/java/org/dromara/E8Service/domain/custom/res/CustomAddRes.java @@ -0,0 +1,72 @@ +package org.dromara.E8Service.domain.custom.res; + +import lombok.Data; + +/** + * @apiNote CustomAddRes + * @author lsm + * @since 2025/6/24 +*/ +@Data +public class CustomAddRes { + /** + * id + */ + private Long id; + /** + * 人员编号 + */ + private String no; + /** + * 人员姓名 + */ + private String name; + /** + * 证件类型,0身份证,1驾驶证,2工作证,100其他 + */ + private Object identityType; + /** + * 证件号 + */ + private String identityNo; + /** + * 籍贯 + */ + private String hometown; + /** + * 生日 + */ + private Object birthday; + /** + * 地址 + */ + private String address; + /** + * 性别,0女,1男 + */ + private Integer gender; + /** + * 手机号 + */ + private String mobile; + /** + * 邮箱 + */ + private String email; + /** + * 紧急联系人 + */ + private String emergencyContact; + /** + * 紧急联系人电话 + */ + private String emergencyContactPhone; + /** + * 备注 + */ + private String remark; + /** + * isViewFullData + */ + private Boolean isViewFullData; +} diff --git a/ruoyi-modules/E8Service/src/main/java/org/dromara/E8Service/domain/custom/res/CustomFindRes.java b/ruoyi-modules/E8Service/src/main/java/org/dromara/E8Service/domain/custom/res/CustomFindRes.java new file mode 100644 index 00000000..9839bd75 --- /dev/null +++ b/ruoyi-modules/E8Service/src/main/java/org/dromara/E8Service/domain/custom/res/CustomFindRes.java @@ -0,0 +1,490 @@ +package org.dromara.E8Service.domain.custom.res; + + +import lombok.Data; +import org.dromara.E8Service.domain.enums.AreaTypeEnum; +import org.dromara.E8Service.domain.enums.UserTypeEnum; + +import java.util.List; + +/** + * @author lsm + * @apiNote CustomFindRes + * @since 2025/5/26 20:34 + */ +@Data +public class CustomFindRes { + + /** + * 人员id + */ + private Long id; + + /** + * 创建时间 + */ + private String creationTime; + + /** + * 创建者id(uuid) + */ + private String creatorId; + + /** + * 最后修改时间 + */ + private String lastModificationTime; + + /** + * 最后修改者id(uuid) + */ + private String lastModifierId; + + /** + * 是否删除 + */ + private Boolean isDeleted; + + /** + * 删除者id(uuid) + */ + private String deleterId; + + /** + * 删除时间 + */ + private String deletionTime; + + /** + * 人员编号 + */ + private String no; + + /** + * 人员姓名 + */ + private String name; + + /** + * 证件类型,0身份证,1驾驶证,2工作证,100其他 + */ + private Integer identityType; + + /** + * 证件类型名 + */ + private String identityTypeName; + + /** + * 证件编号 + */ + private String identityNo; + + /** + * 籍贯 + */ + private String hometown; + + /** + * 生日 + */ + private String birthday; + + /** + * 地址 + */ + private String address; + + /** + * 性别,0女,1男 + */ + private Integer gender; + + /** + * 性别名称 + */ + private String genderName; + + /** + * 职务 + */ + private String duty; + + /** + * 组织名称 + */ + private String orgName; + + /** + * 区域名称 + */ + private String areaName; + + /** + * 绑定车辆信息 + */ + private List tempCars; + + /** + * 房号 + */ + private String roomNo; + + /** + * 入职时间 + */ + private String enterTime; + + /** + * 手机号 + */ + private String mobile; + + /** + * 邮箱 + */ + private String email; + + /** + * 紧急联系人 + */ + private String emergencyContact; + + /** + * 紧急联系人电话 + */ + private String emergencyContactPhone; + + /** + * 箱号 + */ + private String crateName; + + /** + * 备注 + */ + private String remark; + + /** + * 客户明细 + */ + private CustomerDetail detail; + + /** + * 区域全路径(多个以;分割,层级以|分割) + */ + private String areaFullPath; + + /** + * 区域全路径(多个以;分割,层级以|分割) + */ + private String areaIds; + + /** + * 组织ID(以;分隔) + */ + private String organFullPath; + + /** + * 组织ID(以;分隔) + */ + private String organIds; + + /** + * 凭证信息 + */ + private String voucherInfos; + + /** + * 人员图片 + */ + private String image; + + /** + * 人员图片地址 + */ + private String imageUrl; + + /** + * 指纹索引,0-9,0-左手大拇指,4-左手小指,……,9-右手小指 + */ + private String fingerNo; + + /** + * 指纹信息 多个以“;分隔” + */ + private String fingerData; + + /** + * 是否在黑名单 1:是 0:否 + */ + private Integer isBlacklist; + + /** + * 相关联区域 + */ + private List relAreas; + + /** + * 线上id + */ + private String onlineId; + + /** + * 车牌号 + */ + private String carNos; + + /** + * 是否特殊车牌 + */ + private boolean isSpecialPlate; + + /** + * 是否脱敏 true脱敏,敏感信息加***隐藏;false完整显示 + */ + private boolean isViewFullData; + + /** + * 车辆信息· + */ + @Data + public static class Vehicle { + /** + * 车辆id + */ + private Long id; + + /** + * 创建时间 + */ + private String creationTime; + + /** + * 创建者id(uuid) + */ + private String creatorId; + + /** + * 最后修改时间 + */ + private String lastModificationTime; + + /** + * 最后修改者id(uuid) + */ + private String lastModifierId; + + /** + * 是否删除 + */ + private Boolean isDeleted; + + /** + * 删除者id(uuid) + */ + private String deleterId; + + /** + * 删除时间 + */ + private String deletionTime; + + /** + * 用户id + */ + private Long customerId; + + /** + * 车牌号 + */ + private String plateNO; + + /** + * 车牌颜色,0其他,1蓝牌,2黄牌,3白牌,4黑牌,5绿牌,6黄绿牌 + */ + private Integer plateColor; + + /** + * 车辆类型0小型车,1大型车,2其它,3摩托车 + */ + private Integer type; + + /** + * 车辆状态 + */ + private Integer status; + + /** + * 品牌 + */ + private String carLogo; + } + + /** + * 人员明细 + */ + @Data + public static class CustomerDetail { + /** + * 客户明细id + */ + private Long id; + + /** + * 创建时间 + */ + private String creationTime; + + /** + * 创建者id(uuid) + */ + private String creatorId; + + /** + * 最后修改时间 + */ + private String lastModificationTime; + + /** + * 最后修改者id(uuid) + */ + private String lastModifierId; + + /** + * 是否删除 + */ + private boolean isDeleted; + + /** + * 删除者id(uuid) + */ + private String deleterId; + + /** + * 删除时间 + */ + private String deletionTime; + + /** + * 客户Id + */ + private Integer customerId; + + /** + * 工号 + */ + private String workNo; + + /** + * 最高学历,0未知,1小学,2初中,3高中,4大学专科,5大学本科,6硕士研究生,7博士研究生 + */ + private Integer education; + + /** + * 毕业学校 + */ + private String school; + + /** + * 专业 + */ + private String master; + + /** + * 政治面貌 + */ + private String politics; + + /** + * 婚姻状况 + */ + private Integer marriage; + + /** + * QQ + */ + private String qq; + + /** + * 微信 + */ + private String wechat; + + /** + * 驾驶证号 + */ + private String driverLicense; + + /** + * 是否忽略反潜回(1:是;0:否) + */ + private Integer isIgnoreEntryBack; + + /** + * 是否忽略门时区(1:是;0:否) + */ + private Integer isIgnoreDoorSchedule; + + /** + * 是否忽略互锁(1:是;0:否) + */ + private Integer isIgnoreLock; + + /** + * 是否忽略报警(1:是;0:否) + */ + private Integer isIgnoreAlarm; + + /** + * 是否发行卡凭证(0:未录入;1:未发行;2:已发行) + */ + private Integer isIssue; + + /** + * 是否忽略人时区(1:是;0:否) + */ + private Integer isIgnorePersonSchedule; + + /** + * 是否黑名单人员(1:是;0:否) + */ + private Integer isBlacklist; + } + + /** + * 相关联的区域 + */ + @Data + public static class RelatedArea { + /** + * 区域id + */ + private Long areaId; + + /** + * 区域名称 + */ + private String areaName; + + /** + * 用户类型 + */ + private UserTypeEnum userType; + + /** + * 区域类型 + */ + private AreaTypeEnum areaType; + + /** + * 区域类型描述 + */ + private String areaTypeDesc; + + /** + * 区域编号 + */ + private String areaNo; + } +} diff --git a/ruoyi-modules/E8Service/src/main/java/org/dromara/E8Service/domain/enums/AreaTypeEnum.java b/ruoyi-modules/E8Service/src/main/java/org/dromara/E8Service/domain/enums/AreaTypeEnum.java new file mode 100644 index 00000000..dd41a4b4 --- /dev/null +++ b/ruoyi-modules/E8Service/src/main/java/org/dromara/E8Service/domain/enums/AreaTypeEnum.java @@ -0,0 +1,45 @@ +package org.dromara.E8Service.domain.enums; + +/** + * @author lsm + * @apiNote AreaTypeEnum + * @since 2025/5/26 21:22 + */ +public enum AreaTypeEnum { + // 枚举值,括号中是对应的编号和描述 + REGION(0, "区域"), + BUILDING(1, "楼栋"), + HOUSE(2, "房屋"), + DOOR(3, "门"), + FLOOR(4, "楼层"); + + // 定义私有变量,用于存储编号和描述 + private final int code; + private final String description; + + // 构造方法,用于初始化每个枚举值的编号和描述 + AreaTypeEnum(int code, String description) { + this.code = code; + this.description = description; + } + + // 获取编号的方法 + public int getCode() { + return code; + } + + // 获取描述的方法 + public String getDescription() { + return description; + } + + // 根据编号获取对应的枚举值 + public static AreaTypeEnum getByCode(int code) { + for (AreaTypeEnum areaType : AreaTypeEnum.values()) { + if (areaType.getCode() == code) { + return areaType; + } + } + return null; // 如果没有找到匹配的编号,返回 null + } +} diff --git a/ruoyi-modules/E8Service/src/main/java/org/dromara/E8Service/domain/enums/UserTypeEnum.java b/ruoyi-modules/E8Service/src/main/java/org/dromara/E8Service/domain/enums/UserTypeEnum.java new file mode 100644 index 00000000..f190a08b --- /dev/null +++ b/ruoyi-modules/E8Service/src/main/java/org/dromara/E8Service/domain/enums/UserTypeEnum.java @@ -0,0 +1,50 @@ +package org.dromara.E8Service.domain.enums; + +/** + * @author zcxlsm + * @apiNote UserEnumType + * @since 2025/5/26 21:16 + */ +public enum UserTypeEnum { + // 枚举值,括号中是对应的编号和描述 + OWNER(0, "业主"), + FAMILY_MEMBER(1, "家属"), + TENANT(2, "租客"), + EMPLOYEE(3, "员工"), + BUSINESS_OWNER(4, "企业主"), + STAFF(11, "职员"), + TEMPORARY_PERSONNEL(12, "临时人员"), + HOUSEHOLD_HEAD(13, "户主"), + EXTERNAL_PERSONNEL(14, "外部人员"), + OTHER_PERSONNEL(100, "其他人员"); + + // 定义私有变量,用于存储编号和描述 + private final int code; + private final String description; + + // 构造方法,用于初始化每个枚举值的编号和描述 + UserTypeEnum(int code, String description) { + this.code = code; + this.description = description; + } + + // 获取编号的方法 + public int getCode() { + return code; + } + + // 获取描述的方法 + public String getDescription() { + return description; + } + + // 根据编号获取对应的枚举值 + public static UserTypeEnum getByCode(int code) { + for (UserTypeEnum userType : UserTypeEnum.values()) { + if (userType.getCode() == code) { + return userType; + } + } + return null; // 如果没有找到匹配的编号,返回 null + } +} diff --git a/ruoyi-modules/E8Service/src/main/java/org/dromara/E8Service/domain/lift/req/LiftAddReq.java b/ruoyi-modules/E8Service/src/main/java/org/dromara/E8Service/domain/lift/req/LiftAddReq.java new file mode 100644 index 00000000..8d1623ff --- /dev/null +++ b/ruoyi-modules/E8Service/src/main/java/org/dromara/E8Service/domain/lift/req/LiftAddReq.java @@ -0,0 +1,27 @@ +package org.dromara.E8Service.domain.lift.req; + +import lombok.Data; + +/** + * @author lsm + * @apiNote LiftAddReq + * @since 2025/5/27 11:47 + */ +@Data +public class LiftAddReq { + + /** + * 名称 + */ + private String name; + + /** + * 区域ID + */ + private Long areaId; + + /** + * 备注 + */ + private String remark; +} diff --git a/ruoyi-modules/E8Service/src/main/java/org/dromara/E8Service/domain/lift/req/LiftFindReq.java b/ruoyi-modules/E8Service/src/main/java/org/dromara/E8Service/domain/lift/req/LiftFindReq.java new file mode 100644 index 00000000..30900baf --- /dev/null +++ b/ruoyi-modules/E8Service/src/main/java/org/dromara/E8Service/domain/lift/req/LiftFindReq.java @@ -0,0 +1,41 @@ +package org.dromara.E8Service.domain.lift.req; + +import lombok.Data; + +/** + * @author lsm + * @apiNote LiftFindReq + * @since 2025/5/27 11:30 + */ +@Data +public class LiftFindReq { + /** + * 主键 + */ + private Long id; + + /** + * 是否脱敏 true脱敏,敏感信息加***隐藏;false完整显示; + */ + private Boolean isViewFullData; + + /** + * 电梯名称 + */ + private String name; + + /** + * 类型 0:单开 1:双开 + */ + private Integer type; + + /** + * 脱离原因 0:人工脱离 1:消防脱离 + */ + private Integer reason; + + /** + * 上级区域ID + */ + private Long parentId; +} diff --git a/ruoyi-modules/E8Service/src/main/java/org/dromara/E8Service/domain/lift/req/LiftUpdateReq.java b/ruoyi-modules/E8Service/src/main/java/org/dromara/E8Service/domain/lift/req/LiftUpdateReq.java new file mode 100644 index 00000000..ae295cd5 --- /dev/null +++ b/ruoyi-modules/E8Service/src/main/java/org/dromara/E8Service/domain/lift/req/LiftUpdateReq.java @@ -0,0 +1,33 @@ +package org.dromara.E8Service.domain.lift.req; + +import lombok.Data; + +/** + * @author lsm + * @apiNote LiftUpdateReq + * @since 2025/5/27 11:54 + */ +@Data +public class LiftUpdateReq { + + /** + * 主键 + */ + private Long id; + + /** + * 名称 + */ + private String name; + + /** + * 区域ID + */ + private Long areaId; + + /** + * 备注 + */ + private String remark; + +} diff --git a/ruoyi-modules/E8Service/src/main/java/org/dromara/E8Service/domain/lift/res/LiftAddRes.java b/ruoyi-modules/E8Service/src/main/java/org/dromara/E8Service/domain/lift/res/LiftAddRes.java new file mode 100644 index 00000000..7993a8fe --- /dev/null +++ b/ruoyi-modules/E8Service/src/main/java/org/dromara/E8Service/domain/lift/res/LiftAddRes.java @@ -0,0 +1,9 @@ +package org.dromara.E8Service.domain.lift.res; + +/** + * @author lsm + * @apiNote LiftAddRes + * @since 2025/6/24 + */ +public class LiftAddRes { +} diff --git a/ruoyi-modules/E8Service/src/main/java/org/dromara/E8Service/domain/lift/res/LiftFindRes.java b/ruoyi-modules/E8Service/src/main/java/org/dromara/E8Service/domain/lift/res/LiftFindRes.java new file mode 100644 index 00000000..5bca2503 --- /dev/null +++ b/ruoyi-modules/E8Service/src/main/java/org/dromara/E8Service/domain/lift/res/LiftFindRes.java @@ -0,0 +1,177 @@ +package org.dromara.E8Service.domain.lift.res; + +import lombok.Data; + +import java.util.List; + +/** + * @author zcxlsm + * @apiNote LiftFindRes + * @since 2025/5/27 11:33 + */ +@Data +public class LiftFindRes { + /** + * 主键 + */ + private Long id; + + /** + * 创建时间 + */ + private String creationTime; + + /** + * 创建人 + */ + private String creatorId; + + /** + * 最后修改时间 + */ + private String lastModificationTime; + + /** + * 最后修改人 + */ + private String lastModifierId; + + /** + * 是否删除 + */ + private Boolean isDeleted; + + /** + * 删除人 + */ + private String deleterId; + + /** + * 删除时间 + */ + private String deletionTime; + + /** + * 电梯编号 + */ + private String code; + + /** + * 电梯名称 + */ + private String name; + + /** + * 所属区域Id + */ + private Long areaId; + + /** + * 区域名称 + */ + private String areaName; + + /** + * 绑定设备ID + */ + private Long deviceId; + + /** + * 设备名称 + */ + private String deviceName; + + /** + * 最高楼层限制 + */ + private Integer maxFloorNum; + + /** + * 类型 0:单开 1:多开 + */ + private Integer type; + + /** + * 状态 0:正常 1:脱离 + */ + private Integer status; + + /** + * 脱离原因 + */ + private String reason; + + /** + * 备注 + */ + private String remark; + + /** + * 创建人名称 + */ + private String creatorName; + + /** + * 楼层集合 + */ + private List floorList; + + /** + * 线上ID + */ + private String onlineId; + + @Data + public static class ManElevatorFloorsDto { + + /** + * 电梯Id + */ + private Long elevatorId; + + /** + * 楼层权限标识 + */ + private Long floorId; + + /** + * 楼层名称 + */ + private String floorName; + + /** + * 是否前门 + */ + private boolean isFrontDoor; + + /** + * 是否后门 + */ + private boolean isBackDoor; + + /** + * 是否公共楼层 + */ + private boolean isCommonFloor; + + /** + * 轿厢二维码 + */ + private String outSideCallqrCode; + + /** + * 是否选择前门 + */ + private boolean isSelectFrontDoor; + + /** + * 是否选择后门 + */ + private boolean isSelectBackDoor; + + /** + * 楼层按键值 + */ + private Long floorCode; + } +} diff --git a/ruoyi-modules/E8Service/src/main/resources/application.yml b/ruoyi-modules/E8Service/src/main/resources/application.yml new file mode 100644 index 00000000..6ad19a21 --- /dev/null +++ b/ruoyi-modules/E8Service/src/main/resources/application.yml @@ -0,0 +1,34 @@ +# Tomcat +server: + port: 7777 + +# Spring +spring: + application: + # 应用名称 + name: E8Service + profiles: + # 环境配置 + active: @profiles.active@ + +--- # nacos 配置 +spring: + cloud: + nacos: + # nacos 服务地址 + server-addr: @nacos.server@ + username: @nacos.username@ + password: @nacos.password@ + discovery: + # 注册组 + group: @nacos.discovery.group@ + namespace: ${spring.profiles.active} + config: + # 配置组 + group: @nacos.config.group@ + namespace: ${spring.profiles.active} + config: + import: + - optional:nacos:application-common.yml + - optional:nacos:datasource.yml + - optional:nacos:${spring.application.name}.yml diff --git a/ruoyi-modules/E8Service/src/main/resources/banner.txt b/ruoyi-modules/E8Service/src/main/resources/banner.txt new file mode 100644 index 00000000..c86da884 --- /dev/null +++ b/ruoyi-modules/E8Service/src/main/resources/banner.txt @@ -0,0 +1,10 @@ +Spring Boot Version: ${spring-boot.version} +Spring Application Name: ${spring.application.name} + _ _ + (_) | | + _ __ _ _ ___ _ _ _ ______ ___ _ _ ___ | |_ ___ _ __ ___ +| '__|| | | | / _ \ | | | || ||______|/ __|| | | |/ __|| __| / _ \| '_ ` _ \ +| | | |_| || (_) || |_| || | \__ \| |_| |\__ \| |_ | __/| | | | | | +|_| \__,_| \___/ \__, ||_| |___/ \__, ||___/ \__| \___||_| |_| |_| + __/ | __/ | + |___/ |___/ diff --git a/ruoyi-modules/E8Service/src/main/resources/logback-plus.xml b/ruoyi-modules/E8Service/src/main/resources/logback-plus.xml new file mode 100644 index 00000000..00d30896 --- /dev/null +++ b/ruoyi-modules/E8Service/src/main/resources/logback-plus.xml @@ -0,0 +1,28 @@ + + + + + + + + + + + ${console.log.pattern} + utf-8 + + + + + + + + + + + + + + + diff --git a/ruoyi-modules/pom.xml b/ruoyi-modules/pom.xml index 8f73c2b6..b950a8bd 100644 --- a/ruoyi-modules/pom.xml +++ b/ruoyi-modules/pom.xml @@ -16,6 +16,7 @@ ruoyi-workflow Property Sis + E8Service ruoyi-modules