Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
R
RuoYi-Vue-master
Project
Project
Details
Activity
Releases
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Boards
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
AI算法平台
RuoYi-Vue-master
Commits
d12cd6c4
Commit
d12cd6c4
authored
May 10, 2023
by
周昊
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
1、开发场景启停关联flink接口
parent
872b625a
Changes
11
Hide whitespace changes
Inline
Side-by-side
Showing
11 changed files
with
245 additions
and
41 deletions
+245
-41
ruoyi-admin/pom.xml
ruoyi-admin/pom.xml
+0
-8
ruoyi-admin/src/main/java/com/ruoyi/algorithm/controller/AlgorithmSceneBaseController.java
...yi/algorithm/controller/AlgorithmSceneBaseController.java
+11
-0
ruoyi-admin/src/main/java/com/ruoyi/algorithm/domain/AlgorithmSceneBase.java
...n/java/com/ruoyi/algorithm/domain/AlgorithmSceneBase.java
+11
-0
ruoyi-admin/src/main/java/com/ruoyi/algorithm/service/IAlgorithmSceneBaseService.java
...m/ruoyi/algorithm/service/IAlgorithmSceneBaseService.java
+2
-0
ruoyi-admin/src/main/java/com/ruoyi/algorithm/service/impl/AlgorithmSceneBaseServiceImpl.java
...algorithm/service/impl/AlgorithmSceneBaseServiceImpl.java
+47
-21
ruoyi-admin/src/main/java/com/ruoyi/algorithm/utils/FlinkRestApiUtil.java
...main/java/com/ruoyi/algorithm/utils/FlinkRestApiUtil.java
+29
-0
ruoyi-admin/src/main/resources/application.yml
ruoyi-admin/src/main/resources/application.yml
+14
-0
ruoyi-admin/src/main/resources/mapper/system/AlgorithmPieceBaseMapper.xml
...main/resources/mapper/system/AlgorithmPieceBaseMapper.xml
+1
-1
ruoyi-admin/src/main/resources/mapper/system/AlgorithmSceneBaseMapper.xml
...main/resources/mapper/system/AlgorithmSceneBaseMapper.xml
+46
-11
ruoyi-common/pom.xml
ruoyi-common/pom.xml
+14
-0
ruoyi-common/src/main/java/com/ruoyi/common/config/FlinkConfig.java
...on/src/main/java/com/ruoyi/common/config/FlinkConfig.java
+70
-0
No files found.
ruoyi-admin/pom.xml
View file @
d12cd6c4
...
...
@@ -61,14 +61,6 @@
<artifactId>
ruoyi-generator
</artifactId>
</dependency>
<!-- lombok工具 -->
<dependency>
<groupId>
org.projectlombok
</groupId>
<artifactId>
lombok
</artifactId>
<version>
RELEASE
</version>
<scope>
compile
</scope>
</dependency>
</dependencies>
<build>
...
...
ruoyi-admin/src/main/java/com/ruoyi/algorithm/controller/AlgorithmSceneBaseController.java
View file @
d12cd6c4
...
...
@@ -90,4 +90,15 @@ public class AlgorithmSceneBaseController extends BaseController
{
return
toAjax
(
algorithmSceneBaseService
.
deleteAlgorithmSceneBaseByIds
(
ids
));
}
/**
* 算法场景启用禁用
*/
@PreAuthorize
(
"@ss.hasPermi('system:algorithmScene:editStatus')"
)
@Log
(
title
=
"算法场景启用禁用"
,
businessType
=
BusinessType
.
UPDATE
)
@PutMapping
(
"/editStatus"
)
public
AjaxResult
editStatus
(
@RequestBody
AlgorithmSceneBase
algorithmSceneBase
)
{
return
toAjax
(
algorithmSceneBaseService
.
editStatus
(
algorithmSceneBase
));
}
}
ruoyi-admin/src/main/java/com/ruoyi/algorithm/domain/AlgorithmSceneBase.java
View file @
d12cd6c4
...
...
@@ -51,6 +51,9 @@ public class AlgorithmSceneBase extends BaseEntity
/** 删除标志(0代表存在 */
private
String
delFlag
;
/** Flink jobId */
private
String
jobId
;
public
Long
getId
()
{
return
id
;
}
...
...
@@ -122,4 +125,12 @@ public class AlgorithmSceneBase extends BaseEntity
public
void
setDelFlag
(
String
delFlag
)
{
this
.
delFlag
=
delFlag
;
}
public
String
getJobId
()
{
return
jobId
;
}
public
void
setJobId
(
String
jobId
)
{
this
.
jobId
=
jobId
;
}
}
ruoyi-admin/src/main/java/com/ruoyi/algorithm/service/IAlgorithmSceneBaseService.java
View file @
d12cd6c4
...
...
@@ -61,4 +61,6 @@ public interface IAlgorithmSceneBaseService
public
int
deleteAlgorithmSceneBaseById
(
Long
id
);
List
<
AlgorithmSceneListDto
>
selectAlgorithmSceneListDto
(
AlgorithmSceneBase
algorithmSceneBase
);
int
editStatus
(
AlgorithmSceneBase
algorithmSceneBase
);
}
ruoyi-admin/src/main/java/com/ruoyi/algorithm/service/impl/AlgorithmSceneBaseServiceImpl.java
View file @
d12cd6c4
...
...
@@ -2,7 +2,13 @@ package com.ruoyi.algorithm.service.impl;
import
java.util.List
;
import
cn.hutool.core.util.StrUtil
;
import
cn.hutool.json.JSONObject
;
import
cn.hutool.json.JSONUtil
;
import
com.ruoyi.algorithm.domain.dto.AlgorithmSceneListDto
;
import
com.ruoyi.algorithm.utils.FlinkRestApiUtil
;
import
com.ruoyi.common.config.FlinkConfig
;
import
com.ruoyi.common.exception.ServiceException
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.stereotype.Service
;
import
com.ruoyi.algorithm.mapper.AlgorithmSceneBaseMapper
;
...
...
@@ -11,85 +17,78 @@ import com.ruoyi.algorithm.service.IAlgorithmSceneBaseService;
/**
* 算法场景Service业务层处理
*
*
* @author ruoyi
* @date 2023-04-26
*/
@Service
public
class
AlgorithmSceneBaseServiceImpl
implements
IAlgorithmSceneBaseService
{
public
class
AlgorithmSceneBaseServiceImpl
implements
IAlgorithmSceneBaseService
{
@Autowired
private
AlgorithmSceneBaseMapper
algorithmSceneBaseMapper
;
/**
* 查询算法场景
*
*
* @param id 算法场景主键
* @return 算法场景
*/
@Override
public
AlgorithmSceneBase
selectAlgorithmSceneBaseById
(
Long
id
)
{
public
AlgorithmSceneBase
selectAlgorithmSceneBaseById
(
Long
id
)
{
return
algorithmSceneBaseMapper
.
selectAlgorithmSceneBaseById
(
id
);
}
/**
* 查询算法场景列表
*
*
* @param algorithmSceneBase 算法场景
* @return 算法场景
*/
@Override
public
List
<
AlgorithmSceneBase
>
selectAlgorithmSceneBaseList
(
AlgorithmSceneBase
algorithmSceneBase
)
{
public
List
<
AlgorithmSceneBase
>
selectAlgorithmSceneBaseList
(
AlgorithmSceneBase
algorithmSceneBase
)
{
return
algorithmSceneBaseMapper
.
selectAlgorithmSceneBaseList
(
algorithmSceneBase
);
}
/**
* 新增算法场景
*
*
* @param algorithmSceneBase 算法场景
* @return 结果
*/
@Override
public
int
insertAlgorithmSceneBase
(
AlgorithmSceneBase
algorithmSceneBase
)
{
public
int
insertAlgorithmSceneBase
(
AlgorithmSceneBase
algorithmSceneBase
)
{
return
algorithmSceneBaseMapper
.
insertAlgorithmSceneBase
(
algorithmSceneBase
);
}
/**
* 修改算法场景
*
*
* @param algorithmSceneBase 算法场景
* @return 结果
*/
@Override
public
int
updateAlgorithmSceneBase
(
AlgorithmSceneBase
algorithmSceneBase
)
{
public
int
updateAlgorithmSceneBase
(
AlgorithmSceneBase
algorithmSceneBase
)
{
return
algorithmSceneBaseMapper
.
updateAlgorithmSceneBase
(
algorithmSceneBase
);
}
/**
* 批量删除算法场景
*
*
* @param ids 需要删除的算法场景主键
* @return 结果
*/
@Override
public
int
deleteAlgorithmSceneBaseByIds
(
Long
[]
ids
)
{
public
int
deleteAlgorithmSceneBaseByIds
(
Long
[]
ids
)
{
return
algorithmSceneBaseMapper
.
deleteAlgorithmSceneBaseByIds
(
ids
);
}
/**
* 删除算法场景信息
*
*
* @param id 算法场景主键
* @return 结果
*/
@Override
public
int
deleteAlgorithmSceneBaseById
(
Long
id
)
{
public
int
deleteAlgorithmSceneBaseById
(
Long
id
)
{
return
algorithmSceneBaseMapper
.
deleteAlgorithmSceneBaseById
(
id
);
}
...
...
@@ -97,4 +96,31 @@ public class AlgorithmSceneBaseServiceImpl implements IAlgorithmSceneBaseService
public
List
<
AlgorithmSceneListDto
>
selectAlgorithmSceneListDto
(
AlgorithmSceneBase
algorithmSceneBase
)
{
return
algorithmSceneBaseMapper
.
selectAlgorithmSceneListDto
(
algorithmSceneBase
);
}
@Override
public
int
editStatus
(
AlgorithmSceneBase
algorithmSceneBase
)
{
//判断状态是否正确
AlgorithmSceneBase
sceneBase
=
selectAlgorithmSceneBaseById
(
algorithmSceneBase
.
getId
());
if
(
sceneBase
.
getStatus
().
equals
(
algorithmSceneBase
.
getStatus
()))
{
throw
new
ServiceException
(
"场景状态错误,请刷新后再试!"
);
}
AlgorithmSceneBase
newSceneBase
=
new
AlgorithmSceneBase
();
newSceneBase
.
setId
(
algorithmSceneBase
.
getId
());
newSceneBase
.
setStatus
(
algorithmSceneBase
.
getStatus
());
newSceneBase
.
setJobId
(
""
);
if
(
"0"
.
equals
(
algorithmSceneBase
.
getStatus
()))
{
// flink 启动job
String
result
=
FlinkRestApiUtil
.
runJar
(
FlinkConfig
.
getJarId
(),
FlinkConfig
.
getEntryClass
()
,
StrUtil
.
format
(
FlinkConfig
.
getProgramArgs
(),
algorithmSceneBase
.
getId
()));
JSONObject
jsonObject
=
JSONUtil
.
parseObj
(
result
);
String
jobId
=
jsonObject
.
getStr
(
"job"
);
newSceneBase
.
setJobId
(
jobId
);
}
else
{
// flink 取消job
String
s
=
FlinkRestApiUtil
.
cancelJob
(
sceneBase
.
getJobId
());
}
//修改场景状态
updateAlgorithmSceneBase
(
newSceneBase
);
return
1
;
}
}
ruoyi-admin/src/main/java/com/ruoyi/algorithm/utils/FlinkRestApiUtil.java
0 → 100644
View file @
d12cd6c4
package
com
.
ruoyi
.
algorithm
.
utils
;
import
cn.hutool.core.util.StrUtil
;
import
cn.hutool.http.HttpUtil
;
import
com.ruoyi.common.config.FlinkConfig
;
import
java.util.HashMap
;
/**
* @author 周昊
* @desc ...
* @date 2023-05-09 09:36:34
*/
public
class
FlinkRestApiUtil
{
public
static
String
runJar
(
String
jarId
,
String
entryClass
,
String
programArgs
)
{
String
url
=
"http://{}:{}/jars/{}/run?entry-class={}&program-args={}"
;
url
=
StrUtil
.
format
(
url
,
FlinkConfig
.
getHost
(),
FlinkConfig
.
getPort
(),
jarId
,
entryClass
,
programArgs
);
return
HttpUtil
.
post
(
url
,
new
HashMap
<>());
}
public
static
String
cancelJob
(
String
jobId
)
{
String
url
=
"http://{}:{}/jobs/{}/yarn-cancel"
;
url
=
StrUtil
.
format
(
url
,
FlinkConfig
.
getHost
(),
FlinkConfig
.
getPort
(),
jobId
);
return
HttpUtil
.
get
(
url
);
}
}
ruoyi-admin/src/main/resources/application.yml
View file @
d12cd6c4
...
...
@@ -129,3 +129,17 @@ xss:
excludes
:
/system/notice
# 匹配链接
urlPatterns
:
/system/*,/monitor/*,/tool/*
# flink配置
flink
:
#地址
host
:
localhost
# 端口,默认为8081
port
:
8081
# jarId
jarId
:
896604ca-fe49-4bdc-ac3e-cb68710659b9_my-flink-project-0.1.jar
# flink启动类
entryClass
:
com.censoft.flink.StreamingJob
# 启动参数
programArgs
:
--sceneId {}
ruoyi-admin/src/main/resources/mapper/system/AlgorithmPieceBaseMapper.xml
View file @
d12cd6c4
...
...
@@ -140,7 +140,7 @@
<delete
id=
"deleteAlgorithmPieceBaseById"
parameterType=
"Long"
>
update algorithm_piece_base
set del_flag = '1'
where id
where id
= #{id}
</delete>
<delete
id=
"deleteAlgorithmPieceBaseByIds"
parameterType=
"String"
>
...
...
ruoyi-admin/src/main/resources/mapper/system/AlgorithmSceneBaseMapper.xml
View file @
d12cd6c4
...
...
@@ -5,12 +5,21 @@
<mapper
namespace=
"com.ruoyi.algorithm.mapper.AlgorithmSceneBaseMapper"
>
<resultMap
type=
"com.ruoyi.algorithm.domain.AlgorithmSceneBase"
id=
"AlgorithmSceneBaseResult"
>
<result
property=
"id"
column=
"id"
/>
<result
property=
"sceneName"
column=
"scene_name"
/>
<result
property=
"algorithmId"
column=
"algorithm_id"
/>
<result
property=
"alarmTypes"
column=
"alarm_types"
/>
<result
property=
"frameSecond"
column=
"frame_second"
/>
<result
property=
"cameraIdList"
column=
"camera_id_list"
/>
<result
property=
"id"
column=
"id"
/>
<result
property=
"sceneName"
column=
"scene_name"
/>
<result
property=
"algorithmId"
column=
"algorithm_id"
/>
<result
property=
"alarmTypes"
column=
"alarm_types"
/>
<result
property=
"frameSecond"
column=
"frame_second"
/>
<result
property=
"cameraIdList"
column=
"camera_id_list"
/>
<result
property=
"live"
column=
"live"
/>
<result
property=
"status"
column=
"status"
/>
<result
property=
"jobId"
column=
"job_id"
/>
<result
property=
"delFlag"
column=
"del_flag"
/>
<result
property=
"createBy"
column=
"create_by"
/>
<result
property=
"createTime"
column=
"create_time"
/>
<result
property=
"updateBy"
column=
"update_by"
/>
<result
property=
"updateTime"
column=
"update_time"
/>
<result
property=
"remark"
column=
"remark"
/>
</resultMap>
<resultMap
type=
"com.ruoyi.algorithm.domain.dto.AlgorithmSceneListDto"
id=
"AlgorithmSceneListDtoResult"
>
...
...
@@ -31,8 +40,7 @@
</resultMap>
<sql
id=
"selectAlgorithmSceneBaseVo"
>
select id, scene_name, algorithm_id, alarm_types, frame_second, camera_id_list
from algorithm_scene_base
select id, scene_name, algorithm_id, alarm_types, frame_second, camera_id_list, live, status, job_id, del_flag, create_by, create_time, update_by, update_time, remark from algorithm_scene_base
</sql>
<select
id=
"selectAlgorithmSceneBaseList"
parameterType=
"AlgorithmSceneBase"
resultMap=
"AlgorithmSceneBaseResult"
>
...
...
@@ -113,6 +121,15 @@
<if
test=
"alarmTypes != null"
>
alarm_types,
</if>
<if
test=
"frameSecond != null"
>
frame_second,
</if>
<if
test=
"cameraIdList != null"
>
camera_id_list,
</if>
<if
test=
"live != null"
>
live,
</if>
<if
test=
"status != null"
>
status,
</if>
<if
test=
"jobId != null"
>
job_id,
</if>
<if
test=
"delFlag != null"
>
del_flag,
</if>
<if
test=
"createBy != null"
>
create_by,
</if>
<if
test=
"createTime != null"
>
create_time,
</if>
<if
test=
"updateBy != null"
>
update_by,
</if>
<if
test=
"updateTime != null"
>
update_time,
</if>
<if
test=
"remark != null"
>
remark,
</if>
</trim>
<trim
prefix=
"values ("
suffix=
")"
suffixOverrides=
","
>
<if
test=
"id != null"
>
#{id},
</if>
...
...
@@ -121,6 +138,15 @@
<if
test=
"alarmTypes != null"
>
#{alarmTypes},
</if>
<if
test=
"frameSecond != null"
>
#{frameSecond},
</if>
<if
test=
"cameraIdList != null"
>
#{cameraIdList},
</if>
<if
test=
"live != null"
>
#{live},
</if>
<if
test=
"status != null"
>
#{status},
</if>
<if
test=
"jobId != null"
>
#{jobId},
</if>
<if
test=
"delFlag != null"
>
#{delFlag},
</if>
<if
test=
"createBy != null"
>
#{createBy},
</if>
<if
test=
"createTime != null"
>
#{createTime},
</if>
<if
test=
"updateBy != null"
>
#{updateBy},
</if>
<if
test=
"updateTime != null"
>
#{updateTime},
</if>
<if
test=
"remark != null"
>
#{remark},
</if>
</trim>
</insert>
...
...
@@ -132,18 +158,27 @@
<if
test=
"alarmTypes != null"
>
alarm_types = #{alarmTypes},
</if>
<if
test=
"frameSecond != null"
>
frame_second = #{frameSecond},
</if>
<if
test=
"cameraIdList != null"
>
camera_id_list = #{cameraIdList},
</if>
<if
test=
"live != null"
>
live = #{live},
</if>
<if
test=
"status != null"
>
status = #{status},
</if>
<if
test=
"jobId != null"
>
job_id = #{jobId},
</if>
<if
test=
"delFlag != null"
>
del_flag = #{delFlag},
</if>
<if
test=
"createBy != null"
>
create_by = #{createBy},
</if>
<if
test=
"createTime != null"
>
create_time = #{createTime},
</if>
<if
test=
"updateBy != null"
>
update_by = #{updateBy},
</if>
<if
test=
"updateTime != null"
>
update_time = #{updateTime},
</if>
<if
test=
"remark != null"
>
remark = #{remark},
</if>
</trim>
where id = #{id}
</update>
<delete
id=
"deleteAlgorithmSceneBaseById"
parameterType=
"Long"
>
delet
e
from algorithm_scene_base
update algorithm_scene_bas
e
set del_flag = '1'
where id = #{id}
</delete>
<delete
id=
"deleteAlgorithmSceneBaseByIds"
parameterType=
"String"
>
delete from algorithm_scene_base
where id in
update algorithm_scene_base set del_flag = '1'
where id in
<foreach
item=
"id"
collection=
"array"
open=
"("
separator=
","
close=
")"
>
#{id}
</foreach>
...
...
ruoyi-common/pom.xml
View file @
d12cd6c4
...
...
@@ -126,6 +126,20 @@
<artifactId>
javax.servlet-api
</artifactId>
</dependency>
<dependency>
<groupId>
cn.hutool
</groupId>
<artifactId>
hutool-all
</artifactId>
<version>
5.8.16
</version>
</dependency>
<!-- lombok工具 -->
<dependency>
<groupId>
org.projectlombok
</groupId>
<artifactId>
lombok
</artifactId>
<version>
RELEASE
</version>
<scope>
compile
</scope>
</dependency>
</dependencies>
</project>
\ No newline at end of file
ruoyi-common/src/main/java/com/ruoyi/common/config/FlinkConfig.java
0 → 100644
View file @
d12cd6c4
package
com
.
ruoyi
.
common
.
config
;
import
lombok.Data
;
import
org.springframework.boot.context.properties.ConfigurationProperties
;
import
org.springframework.stereotype.Component
;
/**
* flink相关配置
*
* @author ruoyi
*/
@Component
@ConfigurationProperties
(
prefix
=
"flink"
)
public
class
FlinkConfig
{
/** 地址 */
private
static
String
host
;
/** 端口 */
private
static
String
port
;
/** jarId */
private
static
String
jarId
;
/** flink启动类 */
private
static
String
entryClass
;
/** 启动参数 */
private
static
String
programArgs
;
public
static
String
getHost
()
{
return
host
;
}
public
void
setHost
(
String
host
)
{
FlinkConfig
.
host
=
host
;
}
public
static
String
getPort
()
{
return
port
;
}
public
void
setPort
(
String
port
)
{
FlinkConfig
.
port
=
port
;
}
public
static
String
getJarId
()
{
return
jarId
;
}
public
void
setJarId
(
String
jarId
)
{
FlinkConfig
.
jarId
=
jarId
;
}
public
static
String
getEntryClass
()
{
return
entryClass
;
}
public
void
setEntryClass
(
String
entryClass
)
{
FlinkConfig
.
entryClass
=
entryClass
;
}
public
static
String
getProgramArgs
()
{
return
programArgs
;
}
public
void
setProgramArgs
(
String
programArgs
)
{
FlinkConfig
.
programArgs
=
programArgs
;
}
}
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment