Compare commits

..

8 Commits
test ... main

Author SHA1 Message Date
孙小云 60e6d64a53 Merge branch 'main' of http://th.local.t-aaron.com:13000/THENG/a-cloud-all 2026-03-24 19:10:37 +08:00
孙小云 ee793a8efa 添加接口 2026-03-24 19:10:32 +08:00
gyb 00da30d06f Merge remote-tracking branch 'origin/main' 2026-03-24 08:41:38 +08:00
gyb 4cfc34ee21 feat:新增标注返回groupid,标注属性保存 2026-03-24 08:40:14 +08:00
孙小云 c80a061dcb Merge branch 'main' of http://th.local.t-aaron.com:13000/THENG/a-cloud-all 2026-03-24 08:32:07 +08:00
孙小云 21ca1f3c01 添加方法 2026-03-24 08:32:03 +08:00
gyb 15d9b48131 feat:新增标注返回groupid,标注属性保存 2026-03-24 08:29:40 +08:00
孙小云 ed9467bbd1 修改接口,添加错误信息 2026-03-23 18:19:27 +08:00
16 changed files with 121 additions and 61 deletions

View File

@ -1,7 +1,7 @@
# DevOps 自动化部署配置文件
# 全局分支配置(所有仓库统一使用此分支)
global_branch: test
global_branch: main
# 主仓库配置
main_repository:
@ -27,8 +27,8 @@ logging:
# 钉钉通知配置
dingtalk:
enabled: true # 是否启用钉钉通知
access_token: 6add370f6b31b98e71ad5e1862cf574ab3f2350fb7d5eb07675a23d25a6f8144
secret: SEC89990cf37671b10c3ddce9446eb10c7022179f638cad3c403ad2944a6ce51e56
access_token: fccb17a6c74ca862d7994630562d9d3d5be7b60d012d53dce32c64c566b9a3de
secret: SEC54a73636473f324b8f77741ee41ee278d22eba4af898bba739c11183d851c8b0
# 数据库配置(用于数据库管理页面)
database:

View File

@ -40,16 +40,8 @@ def run_npm(work_dir, npm_commands, source_dir, target_dir):
Logger.error(error_msg)
return False, error_msg
# 加载 nvm 环境(如果存在)
nvm_env_loader = ""
nvm_dir = Path.home() / ".nvm"
if nvm_dir.exists():
nvm_env_loader = "export NVM_DIR=\"$HOME/.nvm\" && [ -s \"$NVM_DIR/nvm.sh\" ] && . \"$NVM_DIR/nvm.sh\" && "
Logger.info("检测到 nvm 环境,将使用 nvm 中的 Node.js 版本")
# 执行 NPM 命令
full_command = nvm_env_loader + npm_commands
if not Logger.run_command(full_command, work_dir):
if not Logger.run_command(npm_commands, work_dir):
error_msg = "NPM/PNPM 编译失败,请查看日志获取详细错误信息"
Logger.error(error_msg)
return False, error_msg

View File

@ -1,8 +1,8 @@
<p align="center">
<p align="center">
<img alt="logo" src="https://oscimg.oschina.net/oscnet/up-b99b286755aef70355a7084753f89cdb7c9.png">
</p>
<h1 align="center" style="margin: 30px 0 30px; font-weight: bold;">RuoYi v3.6.7</h1>
<h4 align="center">基于Vue/Element UI 和 Spring Boot/Spring Cloud & Alibaba 前后端分离的分布式微服务架构</h4>
<h4 align="center">基于 Vue/Element UI 和 Spring Boot/Spring Cloud & Alibaba 前后端分离的分布式微服务架构</h4>
<p align="center">
<a href="https://gitee.com/y_project/RuoYi-Cloud/stargazers"><img src="https://gitee.com/y_project/RuoYi-Cloud/badge/star.svg?theme=dark"></a>
<a href="https://gitee.com/y_project/RuoYi-Cloud"><img src="https://img.shields.io/badge/RuoYi-v3.6.7-brightgreen.svg"></a>
@ -11,7 +11,7 @@
## 平台简介
若依是一套全部开源的快速开发平台,毫无保留给个人及企业免费使用。
若依是一套全部开源的快速开发平台,毫无保留给个人及企业免费使用。
* 采用前后端分离的模式,微服务版本前端(基于 [RuoYi-Vue](https://gitee.com/y_project/RuoYi-Vue))。
* 后端采用Spring Boot、Spring Cloud & Alibaba。

@ -1 +1 @@
Subproject commit b784fb913813c45deb739ed4120cce0e87adc12f
Subproject commit 0a0b9741cca600b27b6ab15905f02ae3d71e29e2

View File

@ -352,24 +352,24 @@ services:
- ZLM_SERCERT=fgVdaI75GcSBPeSBvg8NL7aRrlkCtGPv
# ========== 流媒体地址配置 ==========
# Stream_IP: 生成播放地址时使用的IP宿主机外网IP或域名
# 用途WVP生成的播放地址格式为 http://220.154.147.16:9090/live/123.live.flv
# 用途WVP生成的播放地址格式为 http://45.120.103.238:9090/live/123.live.flv
# 对应application.yml中的media.stream-ip配置
- Stream_IP=220.154.147.16
- Stream_IP=45.120.103.238
# SDP_IP: WVP在国标信令中使用的IP
# 用途GB28181设备通过此IP与WVP进行媒体流传输
# 对应application.yml中的media.sdp-ip配置
- SDP_IP=220.154.147.16
- SDP_IP=45.120.103.238
# ========== 流媒体端口配置(宿主机外部端口) ==========
# 以下端口用于生成客户端播放地址必须与zlmediakit容器的端口映射一致
#
# MediaHttp: HTTP播放端口对应zlmediakit的9090:80映射
# 用途生成HTTP-FLV/HLS/TS/RTC播放地址
# 示例http://220.154.147.16:9090/live/123.live.flv
# 示例http://45.120.103.238:9090/live/123.live.flv
# 对应application.yml中的media.flv-port和media.ws-flv-port配置
- MediaHttp=9090
# MediaHttps: HTTPS播放端口对应zlmediakit的8443:443映射
# 用途生成HTTPS-FLV/HLS/TS播放地址
# 示例https://220.154.147.16:8443/live/123.live.flv
# 示例https://45.120.103.238:8443/live/123.live.flv
# 对应application.yml中的media.flv-ssl-port和media.ws-flv-ssl-port配置
- MediaHttps=8443
# MediaRtp: RTP代理端口对应zlmediakit的10000:10000映射
@ -379,13 +379,13 @@ services:
- MediaRtp=10000
# MediaRtmp: RTMP推流端口对应zlmediakit的1935:1935映射
# 用途OBS等推流工具推流地址
# 示例rtmp://220.154.147.16:1935/live/123
# 示例rtmp://45.120.103.238:1935/live/123
# 对应application.yml中的media.rtmp-port配置
# 对应zlmediakit config.ini中的rtmp.port=1935
- MediaRtmp=1935
# MediaRtsp: RTSP推流/拉流端口对应zlmediakit的8554:554映射
# 用途RTSP协议的推流和拉流
# 示例rtsp://220.154.147.16:8554/live/123
# 示例rtsp://45.120.103.238:8554/live/123
# 对应application.yml中的media.rtsp-port配置
# 对应zlmediakit config.ini中的rtsp.port=554
- MediaRtsp=8554
@ -445,20 +445,20 @@ services:
- TZ=Asia/Shanghai
ports:
# RTMP推流端口容器内部1935映射到宿主机1935
# OBS推流地址rtmp://220.154.147.16:1935/live/streamId
# OBS推流地址rtmp://45.120.103.238:1935/live/streamId
# 对应config.ini中的rtmp.port=1935
- "1935:1935"
# HTTP端口容器内部80映射到宿主机9090
# 用途1WVP通过http://zlmediakit:80访问ZLM API
# 用途2客户端通过http://220.154.147.16:9090播放HTTP-FLV/HLS/TS
# 用途2客户端通过http://45.120.103.238:9090播放HTTP-FLV/HLS/TS
# 对应config.ini中的http.port=80
- "9090:80"
# HTTPS端口容器内部443映射到宿主机8443
# 客户端通过https://220.154.147.16:8443播放
# 客户端通过https://45.120.103.238:8443播放
# 对应config.ini中的http.sslport=443
- "8443:443"
# RTSP端口容器内部554映射到宿主机8554
# RTSP地址rtsp://220.154.147.16:8554/live/streamId
# RTSP地址rtsp://45.120.103.238:8554/live/streamId
# 对应config.ini中的rtsp.port=554
- "8554:554"
# RTP代理端口TCP容器内部10000映射到宿主机10000

@ -1 +1 @@
Subproject commit 6bc63276471203e63a2e98d23f9396e9b6f98163
Subproject commit 6f0ac0c588c9a1711ddbe833c638206eed4bb3c4

View File

@ -6,8 +6,6 @@ import lombok.EqualsAndHashCode;
import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle;
import java.util.List;
/**
* 标注 VO
*
@ -52,9 +50,9 @@ public class AirlineMarkerVO extends BaseEntity {
private Integer fontSize;
/**
* 经纬度格式[,,asl高度]
* 坐标JSON
*/
private List<PointInfo> coordinates;
private Object coordinates;
/**
* 简介
@ -66,24 +64,6 @@ public class AirlineMarkerVO extends BaseEntity {
*/
private Long groupId;
@Data
public static class PointInfo {
/**
* 纬度
*/
private Double latitude;
/**
* 经度
*/
private Double longitude;
/**
* 海拔高度
*/
private Double asl;
}
@Override
public String toString() {
return new ToStringBuilder(this, ToStringStyle.MULTI_LINE_STYLE)

View File

@ -3,6 +3,7 @@ package com.ruoyi.task.api;
import com.ruoyi.common.core.constant.SecurityConstants;
import com.ruoyi.common.core.constant.ServiceNameConstants;
import com.ruoyi.common.core.domain.R;
import com.ruoyi.task.api.domain.TaskResultVO;
import com.ruoyi.task.api.domain.TaskVO;
import com.ruoyi.task.api.domain.TaskTempVO;
import com.ruoyi.task.api.enums.StatusEnum;
@ -121,8 +122,10 @@ public interface RemoteTaskService
* @param source 请求来源
* @return 结果
*/
@PutMapping("/task/status/{taskId}")
R<Boolean> updateTaskStatus(@PathVariable("taskId") Long taskId, @RequestParam("status") StatusEnum status, @RequestHeader(SecurityConstants.FROM_SOURCE) String source);
@PostMapping("/task/status/{taskId}")
R<Boolean> updateTaskStatus(@PathVariable("taskId") Long taskId,
@RequestBody() TaskResultVO status,
@RequestHeader(SecurityConstants.FROM_SOURCE) String source);
/**
* 设置 recovery true
@ -133,4 +136,13 @@ public interface RemoteTaskService
*/
@PutMapping("/task/recovery/{taskId}")
R<Boolean> updateTaskRecovery(@PathVariable("taskId") Long taskId, @RequestHeader(SecurityConstants.FROM_SOURCE) String source);
/**
* 查询待自动执行的任务
*
* @param source 请求来源
* @return 结果
*/
@GetMapping("/task/pending-auto")
R<List<TaskVO>> getPendingTasksForAutoExecute(@RequestHeader(SecurityConstants.FROM_SOURCE) String source);
}

View File

@ -0,0 +1,70 @@
package com.ruoyi.task.api.domain;
import com.ruoyi.task.api.enums.StatusEnum;
public class TaskResultVO {
/** 状态 */
private StatusEnum status;
public String getErrMsg() {
return errMsg;
}
public void setErrMsg(String errMsg) {
this.errMsg = errMsg;
}
public StatusEnum getStatus() {
return status;
}
public void setStatus(StatusEnum status) {
this.status = status;
}
/**
* 错误原因
*/
private String errMsg;
public static TaskResultVO Checking(){
TaskResultVO vo = new TaskResultVO();
vo.status = StatusEnum.CHECKING;
return vo;
}
public static TaskResultVO Checking(String errMsg){
TaskResultVO vo = new TaskResultVO();
vo.status = StatusEnum.CHECKING;
vo.setErrMsg(errMsg);
return vo;
}
public static TaskResultVO Completed(){
TaskResultVO vo = new TaskResultVO();
vo.status = StatusEnum.COMPLETED;
return vo;
}
public static TaskResultVO Completed(String errMsg){
TaskResultVO vo = new TaskResultVO();
vo.status = StatusEnum.COMPLETED;
vo.setErrMsg(errMsg);
return vo;
}
public static TaskResultVO Error(String errMsg){
TaskResultVO vo = new TaskResultVO();
vo.status = StatusEnum.FAILED;
vo.errMsg = errMsg;
return vo;
}
public static TaskResultVO Running(){
TaskResultVO vo = new TaskResultVO();
vo.status = StatusEnum.RUNNING;
return vo;
}
}

View File

@ -2,6 +2,7 @@ package com.ruoyi.task.api.factory;
import com.ruoyi.common.core.domain.R;
import com.ruoyi.task.api.RemoteTaskService;
import com.ruoyi.task.api.domain.TaskResultVO;
import com.ruoyi.task.api.domain.TaskVO;
import com.ruoyi.task.api.domain.TaskTempVO;
import com.ruoyi.task.api.enums.StatusEnum;
@ -79,7 +80,7 @@ public class RemoteTaskFallbackFactory implements FallbackFactory<RemoteTaskServ
@Override
public R<Boolean> updateTaskStatus(Long taskId, StatusEnum status, String source) {
public R<Boolean> updateTaskStatus(Long taskId, TaskResultVO resultVO, String source) {
return R.fail("修改执行状态失败");
}
@ -87,6 +88,11 @@ public class RemoteTaskFallbackFactory implements FallbackFactory<RemoteTaskServ
public R<Boolean> updateTaskRecovery(Long taskId, String source) {
return R.fail("设置recovery失败");
}
@Override
public R<List<TaskVO>> getPendingTasksForAutoExecute(String source) {
return R.ok(Collections.emptyList());
}
};
}
}

@ -1 +1 @@
Subproject commit 53ea05322f47abfc8be630cc3b6808f1df972c2a
Subproject commit acbb57fd9dad3f5dc9ad714a45f0d383da1a566e

@ -1 +1 @@
Subproject commit 19b7aea90201b67c52c8341a18375199fa352055
Subproject commit f2f849c6e650631f801194ad77430b2bbe50f086

@ -1 +1 @@
Subproject commit f08f3aca997ead29138077fffb0b77c6d712b219
Subproject commit ab6318aa9cf5b32291041d3e791689d48dde60d5

@ -1 +1 @@
Subproject commit 789dcadeeb2b2267f14529cf3e27ce4ecfdbfdb0
Subproject commit 0bfe9843a51f57f2ca2f6ef38f0dc9e546dc8c05

View File

@ -104,7 +104,7 @@
<div>
<label for="wsUrl">WebSocket 地址:</label>
<input type="text" id="wsUrl" value="ws://220.154.147.16:9988/prod-api/websocket/statistics">
<input type="text" id="wsUrl" value="ws://45.120.103.238:9988/prod-api/websocket/statistics">
</div>
<div id="status" class="status disconnected">状态: 未连接</div>

2
wvpjar

@ -1 +1 @@
Subproject commit e003785e26d7adcefc2588d1e97db78c701691d0
Subproject commit a014943fc0945bc86f4275481adf47525a704756