diff --git a/xinnengyuan/ruoyi-admin/src/main/resources/application-dev.yml b/xinnengyuan/ruoyi-admin/src/main/resources/application-dev.yml index ae86b0d0..b951cffa 100644 --- a/xinnengyuan/ruoyi-admin/src/main/resources/application-dev.yml +++ b/xinnengyuan/ruoyi-admin/src/main/resources/application-dev.yml @@ -354,3 +354,7 @@ qrCode: # 无人机大图 drone: url: http://192.168.110.2:9512 +# 聊天服务 +chat: + server: + port: 19099 diff --git a/xinnengyuan/ruoyi-admin/src/main/resources/application-local.yml b/xinnengyuan/ruoyi-admin/src/main/resources/application-local.yml index def0528d..8ffae3e5 100644 --- a/xinnengyuan/ruoyi-admin/src/main/resources/application-local.yml +++ b/xinnengyuan/ruoyi-admin/src/main/resources/application-local.yml @@ -164,7 +164,7 @@ sms: # 配置源类型用于标定配置来源(interface,yaml) config-type: yaml # 用于标定yml中的配置是否开启短信拦截,接口配置不受此限制 - restricted: true + restricted: false # 短信拦截限制单手机号每分钟最大发送,只对开启了拦截的配置有效 minute-max: 1 # 短信拦截限制单手机号每日最大发送量,只对开启了拦截的配置有效 @@ -183,12 +183,45 @@ sms: signature: 您的短信签名 sdk-app-id: 您的sdkAppId config2: - # 厂商标识,标定此配置是哪个厂商,详细请看厂商标识介绍部分 + # 登录 supplier: tencent - access-key-id: 您的accessKey - access-key-secret: 您的accessKeySecret - signature: 您的短信签名 - sdk-app-id: 您的sdkAppId + access-key-id: AKIDb3JK5dx4wa0DCxWqvxlKejvysZ3ITVJv + access-key-secret: c5LPFsJI8k7GDxTkoeFj4A1ukQr66rPi + signature: 重庆远界大数据研究院 + sdk-app-id: 1401018866 + template-id: 2491779 + config3: + # 注册 + supplier: tencent + access-key-id: AKIDb3JK5dx4wa0DCxWqvxlKejvysZ3ITVJv + access-key-secret: c5LPFsJI8k7GDxTkoeFj4A1ukQr66rPi + signature: 重庆远界大数据研究院 + sdk-app-id: 1401018866 + template-id: 2491776 + config4: + # 质量工单逾期 + supplier: tencent + access-key-id: AKIDb3JK5dx4wa0DCxWqvxlKejvysZ3ITVJv + access-key-secret: c5LPFsJI8k7GDxTkoeFj4A1ukQr66rPi + signature: 重庆远界大数据研究院 + sdk-app-id: 1401018866 + template-id: 2534747 + config5: + # 设计图纸 + supplier: tencent + access-key-id: AKIDb3JK5dx4wa0DCxWqvxlKejvysZ3ITVJv + access-key-secret: c5LPFsJI8k7GDxTkoeFj4A1ukQr66rPi + signature: 重庆远界大数据研究院 + sdk-app-id: 1401018866 + template-id: 2534750 + config6: + # 安全工单 + supplier: tencent + access-key-id: AKIDb3JK5dx4wa0DCxWqvxlKejvysZ3ITVJv + access-key-secret: c5LPFsJI8k7GDxTkoeFj4A1ukQr66rPi + signature: 重庆远界大数据研究院 + sdk-app-id: 1401018866 + template-id: 2534848 --- # 三方授权 justauth: @@ -276,7 +309,10 @@ dxf2GeoJson: file-name: main ys7: app-key: 3acf9f1a43dc4209841e0893003db0a2 - app-secret: 4bbf3e9394f55d3af6e3af27b2d3db36 + app-secret: 09e29c70ae1161fbc3ce2030fc09ba2e + job: + capture-enabled: true # 控制是否启用萤石抓拍任务 + device-sync-enabled: true # 控制是否同步萤石设备 # 斯巴达算法 sparta: url: http://119.3.204.120:8040 @@ -286,10 +322,14 @@ sparta: id-card: encrypt-key: 7ae260d150a14027d2238a1cf80a48ef recognizer: - url: http://192.168.110.5:50070 + url: http://192.168.110.5:50071 qrCode: - url: http://xny.yj-3d.com:7171 + url: http://xny.yj-3d.com:7788 # 无人机大图 drone: url: http://192.168.110.2:9512 +# 聊天服务 +chat: + server: + port: 18088 diff --git a/xinnengyuan/ruoyi-admin/src/main/resources/application-prod.yml b/xinnengyuan/ruoyi-admin/src/main/resources/application-prod.yml index 388e0688..de58bcb4 100644 --- a/xinnengyuan/ruoyi-admin/src/main/resources/application-prod.yml +++ b/xinnengyuan/ruoyi-admin/src/main/resources/application-prod.yml @@ -326,7 +326,7 @@ ys7: app-key: 3acf9f1a43dc4209841e0893003db0a2 app-secret: 09e29c70ae1161fbc3ce2030fc09ba2e job: - capture-enabled: false # 控制是否启用萤石抓拍任务 + capture-enabled: true # 控制是否启用萤石抓拍任务 device-sync-enabled: true # 控制是否同步萤石设备 # 斯巴达算法 sparta: @@ -344,3 +344,7 @@ qrCode: # 无人机大图 drone: url: http://192.168.110.2:9512 +# 聊天服务 +chat: + server: + port: 19099 diff --git a/xinnengyuan/ruoyi-admin/src/main/resources/application.yml b/xinnengyuan/ruoyi-admin/src/main/resources/application.yml index f58f7710..a66b9f95 100644 --- a/xinnengyuan/ruoyi-admin/src/main/resources/application.yml +++ b/xinnengyuan/ruoyi-admin/src/main/resources/application.yml @@ -106,6 +106,10 @@ sa-token: is-share: false # jwt秘钥 jwt-secret-key: abcdefghijklmnopqrstuvwxyz + # token有效期,单位s 默认30天, -1代表永不过期 + timeout: 2592000 + # token临时有效期 (指定时间内无操作就视为token过期) 单位: 秒 + active-timeout: 86400 # security配置 security: @@ -277,8 +281,8 @@ springdoc: packages-to-scan: org.dromara.gps - group: 24.招标模块 packages-to-scan: org.dromara.tender -# - group: 25.app版本模块 -# packages-to-scan: org.dromara.app + # - group: 25.app版本模块 + # packages-to-scan: org.dromara.app - group: 25.数据迁移模块 packages-to-scan: org.dromara.transferData - group: 26.netty消息模块 diff --git a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/bigscreen/controller/ProjectBigScreenController.java b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/bigscreen/controller/ProjectBigScreenController.java index 0ad29cd0..c36d42d6 100644 --- a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/bigscreen/controller/ProjectBigScreenController.java +++ b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/bigscreen/controller/ProjectBigScreenController.java @@ -9,10 +9,7 @@ import lombok.RequiredArgsConstructor; import org.dromara.bigscreen.domain.dto.ProjectUpdateDto; import org.dromara.bigscreen.domain.dto.TanchuangInfoReq; import org.dromara.bigscreen.domain.dto.Ys7DeviceUpdateReq; -import org.dromara.bigscreen.domain.vo.ProjectImageProgressVo; -import org.dromara.bigscreen.domain.vo.ProjectLandVo; -import org.dromara.bigscreen.domain.vo.ProjectPeopleVo; -import org.dromara.bigscreen.domain.vo.ProjectSafetyInspectionVo; +import org.dromara.bigscreen.domain.vo.*; import org.dromara.bigscreen.service.ProjectBigScreenService; import org.dromara.common.core.constant.HttpStatus; import org.dromara.common.core.domain.R; @@ -20,7 +17,12 @@ import org.dromara.common.core.exception.ServiceException; 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.facility.domain.bo.FacRedLineBo; +import org.dromara.facility.domain.vo.redline.FacRedLineVo; +import org.dromara.facility.service.IFacRedLineService; import org.dromara.gps.domain.bo.GpsEquipmentBo; import org.dromara.land.domain.BusLandBlock; import org.dromara.land.domain.BusLandTransferLedger; @@ -33,6 +35,7 @@ import org.dromara.manager.ys7manager.Ys7Manager; import org.dromara.other.domain.OthYs7Device; import org.dromara.other.service.IOthYs7DeviceService; import org.dromara.project.domain.vo.project.BusProjectSafetyDayVo; +import org.dromara.project.domain.vo.project.BusProjectVo; import org.dromara.project.domain.vo.projectnews.BusProjectNewsVo; import org.dromara.project.service.IBusProjectNewsService; import org.dromara.project.service.IBusProjectService; @@ -86,6 +89,8 @@ public class ProjectBigScreenController extends BaseController { private final BusLandTransferLedgerSonServiceImpl busLandTransferLedgerSonService; + private final IFacRedLineService facRedLineService; + /** * 查询项目土地统计 */ @@ -271,7 +276,7 @@ public class ProjectBigScreenController extends BaseController { throw new ServiceException("更新云端萤石摄像头名称异常", HttpStatus.ERROR); } } - if (req.getLatitude() != null && req.getLongitude() != null) { + if (req.getLatitude() != null && req.getLongitude() != null) { ys7Device.setLatitude(req.getLatitude()); ys7Device.setLongitude(req.getLongitude()); } @@ -334,6 +339,22 @@ public class ProjectBigScreenController extends BaseController { return toAjax(projectService.updatePosition(dto)); } + /** + * 获取项目信息 + */ + @GetMapping("/getProjectInfo/{projectId}") + public R getProjectInfo(@NotNull(message = "主键不能为空") + @PathVariable Long projectId) { + BusProjectVo projectVo = projectService.queryById(projectId); + ProjectInfo info = new ProjectInfo(); + info.setLat(projectVo.getLat()); + info.setLng(projectVo.getLng()); + info.setPlan(projectVo.getPlan()); + info.setPosition(projectVo.getPosition()); + info.setProjectId(projectVo.getId().toString()); + return R.ok(info); + } + /** * 查询项目地域分散图 @@ -372,4 +393,12 @@ public class ProjectBigScreenController extends BaseController { return R.ok(projectBigScreenService.getInfoData(req)); } + /** + * 查询设施-红线列表 + */ + @GetMapping("/redLine/list") + public TableDataInfo list(FacRedLineBo bo, PageQuery pageQuery) { + return facRedLineService.queryPageList(bo, pageQuery); + } + } diff --git a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/bigscreen/domain/vo/ProjectInfo.java b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/bigscreen/domain/vo/ProjectInfo.java new file mode 100644 index 00000000..4043b08c --- /dev/null +++ b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/bigscreen/domain/vo/ProjectInfo.java @@ -0,0 +1,42 @@ +package org.dromara.bigscreen.domain.vo; + +import lombok.Data; + +import java.io.Serial; +import java.io.Serializable; + +/** + * @author lilemy + * @date 2025-10-22 15:00 + */ +@Data +public class ProjectInfo implements Serializable { + + @Serial + private static final long serialVersionUID = -8436930470114636496L; + + /** + * 纬度 + */ + private String lat; + + /** + * 经度 + */ + private String lng; + + /** + * 计划 + */ + private String plan; + + /** + * 位置 + */ + private String position; + + /** + * 项目id + */ + private String projectId; +} diff --git a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/project/domain/dto/project/BusProjectUpdateReq.java b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/project/domain/dto/project/BusProjectUpdateReq.java index d191231b..36ba7c8c 100644 --- a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/project/domain/dto/project/BusProjectUpdateReq.java +++ b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/project/domain/dto/project/BusProjectUpdateReq.java @@ -157,4 +157,9 @@ public class BusProjectUpdateReq implements Serializable { */ private List deptIds; + /** + * 省份 + */ + private String province; + } diff --git a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/websocket/ChatServer.java b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/websocket/ChatServer.java index b677e1c5..3405283e 100644 --- a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/websocket/ChatServer.java +++ b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/websocket/ChatServer.java @@ -1,7 +1,6 @@ package org.dromara.websocket; import io.netty.bootstrap.ServerBootstrap; -import io.netty.channel.ChannelFuture; import io.netty.channel.ChannelInitializer; import io.netty.channel.ChannelOption; import io.netty.channel.EventLoopGroup; @@ -15,15 +14,15 @@ import io.netty.handler.stream.ChunkedWriteHandler; import jakarta.annotation.PostConstruct; import jakarta.annotation.PreDestroy; import lombok.extern.slf4j.Slf4j; -import org.springframework.boot.CommandLineRunner; -import org.springframework.context.annotation.Bean; +import org.springframework.beans.factory.annotation.Value; import org.springframework.context.annotation.Configuration; -import org.springframework.stereotype.Component; @Slf4j @Configuration -public class ChatServer { - private final int port = 19099; // 聊天服务器端口 +public class ChatServer { + + @Value("${chat.server.port}") + private int port; // 聊天服务器端口 private EventLoopGroup bossGroup; private EventLoopGroup workerGroup; @@ -62,12 +61,12 @@ public class ChatServer { ch.pipeline().addLast(new ChunkedWriteHandler()); ch.pipeline().addLast(new HttpObjectAggregator(8192)); // 注意:WebSocketServerProtocolHandler 必须在 ChatServerHandler 之前添加 - ch.pipeline().addLast(new WebSocketServerProtocolHandler("/ws", null, true, 65536 * 10,false,true)); + ch.pipeline().addLast(new WebSocketServerProtocolHandler("/ws", null, true, 65536 * 10, false, true)); ch.pipeline().addLast(new ChatServerHandler()); // 添加聊天消息处理类 } }); - log.info("Netty聊天服务器启动,端口:" + port); + log.info("Netty聊天服务器启动,端口:{}", port); bootstrap.bind(port).sync(); // ChannelFuture future = bootstrap.bind(port).sync(); // future.channel().closeFuture().sync();