Skip to content
项目
群组
代码片段
帮助
当前项目
正在载入...
登录 / 注册
切换导航面板
B
basic-api-boot
概览
概览
详情
活动
周期分析
版本库
存储库
文件
提交
分支
标签
贡献者
分支图
比较
统计图
问题
0
议题
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
CI / CD
CI / CD
流水线
作业
日程表
图表
维基
Wiki
代码片段
代码片段
成员
成员
折叠边栏
关闭边栏
活动
图像
聊天
创建新问题
作业
提交
问题看板
Open sidebar
Basic
basic-api-boot
Commits
c9267941
提交
c9267941
authored
5月 23, 2022
作者:
涂茂林
浏览文件
操作
浏览文件
下载
差异文件
合并分支 'dev_tzl' 到 'dev_tml'
Dev tzl 查看合并请求 chemical-kesai/kshg-api!35
上级
078859ec
25b2b76e
隐藏空白字符变更
内嵌
并排
正在显示
13 个修改的文件
包含
579 行增加
和
14 行删除
+579
-14
WorkArea.java
...rc/main/java/com/yiring/app/domain/workArea/WorkArea.java
+54
-0
WorkAreaRepository.java
...va/com/yiring/app/domain/workArea/WorkAreaRepository.java
+14
-0
WorkAreaExportExcel.java
...va/com/yiring/app/excel/workArea/WorkAreaExportExcel.java
+42
-0
BroadcastQueryParam.java
...a/com/yiring/app/param/broadcast/BroadcastQueryParam.java
+2
-2
StreamProxyItem.java
...main/java/com/yiring/app/param/video/StreamProxyItem.java
+5
-0
WorkAreaParam.java
...ain/java/com/yiring/app/param/workArea/WorkAreaParam.java
+54
-0
WorkAreaQueryParam.java
...ava/com/yiring/app/param/workArea/WorkAreaQueryParam.java
+36
-0
VideoServiceImpl.java
...a/com/yiring/app/service/video/impl/VideoServiceImpl.java
+6
-2
VisitorServiceImpl.java
...m/yiring/app/service/visitor/impl/VisitorServiceImpl.java
+0
-10
WorkAreaService.java
...java/com/yiring/app/service/workArea/WorkAreaService.java
+53
-0
WorkAreaServiceImpl.java
...yiring/app/service/workArea/impl/WorkAreaServiceImpl.java
+191
-0
WorkAreaVo.java
app/src/main/java/com/yiring/app/vo/workArea/WorkAreaVo.java
+52
-0
WorkAreaController.java
.../java/com/yiring/app/web/workArea/WorkAreaController.java
+70
-0
没有找到文件。
app/src/main/java/com/yiring/app/domain/workArea/WorkArea.java
0 → 100644
浏览文件 @
c9267941
/* (C) 2022 YiRing, Inc. */
package
com
.
yiring
.
app
.
domain
.
workArea
;
import
com.yiring.app.domain.video.Video
;
import
com.yiring.common.domain.BasicEntity
;
import
java.io.Serial
;
import
java.io.Serializable
;
import
javax.persistence.*
;
import
lombok.*
;
import
lombok.experimental.FieldDefaults
;
import
lombok.experimental.FieldNameConstants
;
import
org.hibernate.annotations.Comment
;
/**
* @author tzl
* @version 1.0
* @description:
* @date 2022/5/20 16:08
*/
@Getter
@Setter
@ToString
@Builder
@NoArgsConstructor
@AllArgsConstructor
@FieldNameConstants
@FieldDefaults
(
level
=
AccessLevel
.
PRIVATE
)
@Entity
@Table
(
name
=
"BS_WORK_AREA"
)
@Comment
(
"工区"
)
public
class
WorkArea
extends
BasicEntity
implements
Serializable
{
@Serial
private
static
final
long
serialVersionUID
=
-
6738299404223231827L
;
@Comment
(
"工区名称"
)
String
workAreaName
;
@Comment
(
"消抖阈值(秒)"
)
Integer
threshold
;
@Comment
(
"超时时间(秒)"
)
Integer
timeout
;
@Comment
(
"负责人"
)
String
personInCharge
;
@Comment
(
"联系电话"
)
String
mobile
;
@Comment
(
"监控设备"
)
@OneToOne
Video
video
;
}
app/src/main/java/com/yiring/app/domain/workArea/WorkAreaRepository.java
0 → 100644
浏览文件 @
c9267941
/* (C) 2022 YiRing, Inc. */
package
com
.
yiring
.
app
.
domain
.
workArea
;
import
java.io.Serializable
;
import
org.springframework.data.jpa.repository.JpaRepository
;
import
org.springframework.data.jpa.repository.JpaSpecificationExecutor
;
import
org.springframework.stereotype.Repository
;
/**
* @author tzl
* 2022/5/21 9:55
*/
@Repository
public
interface
WorkAreaRepository
extends
JpaRepository
<
WorkArea
,
Serializable
>,
JpaSpecificationExecutor
<
WorkArea
>
{}
app/src/main/java/com/yiring/app/excel/workArea/WorkAreaExportExcel.java
0 → 100644
浏览文件 @
c9267941
/* (C) 2022 YiRing, Inc. */
package
com
.
yiring
.
app
.
excel
.
workArea
;
import
com.github.liaochong.myexcel.core.annotation.ExcelColumn
;
import
com.github.liaochong.myexcel.core.annotation.ExcelModel
;
import
java.io.Serial
;
import
java.io.Serializable
;
import
lombok.*
;
import
lombok.experimental.FieldDefaults
;
/**
* @author tzl
* @version 1.0
* @description:
* @date 2022/5/21 10:12
*/
@ExcelModel
@Data
@NoArgsConstructor
@AllArgsConstructor
@Builder
@FieldDefaults
(
level
=
AccessLevel
.
PRIVATE
)
public
class
WorkAreaExportExcel
implements
Serializable
{
@Serial
private
static
final
long
serialVersionUID
=
-
122186147042368396L
;
@ExcelColumn
(
title
=
"工区名称"
)
String
workAreaName
;
@ExcelColumn
(
title
=
"消抖阈值(秒)"
)
Integer
threshold
;
@ExcelColumn
(
title
=
"超时时间(秒)"
)
Integer
timeout
;
@ExcelColumn
(
title
=
"负责人"
)
String
personInCharge
;
@ExcelColumn
(
title
=
"联系电话"
)
String
mobile
;
}
app/src/main/java/com/yiring/app/param/broadcast/BroadcastQueryParam.java
浏览文件 @
c9267941
...
@@ -34,9 +34,9 @@ public class BroadcastQueryParam implements Serializable {
...
@@ -34,9 +34,9 @@ public class BroadcastQueryParam implements Serializable {
@ApiModelProperty
(
value
=
"状态"
,
example
=
"1"
)
@ApiModelProperty
(
value
=
"状态"
,
example
=
"1"
)
String
status
;
String
status
;
@ApiModelProperty
(
value
=
"分页条数"
,
example
=
"10"
,
required
=
true
)
@ApiModelProperty
(
value
=
"分页条数"
,
example
=
"10"
)
Integer
pageSize
;
Integer
pageSize
;
@ApiModelProperty
(
value
=
"当前页数"
,
example
=
"1"
,
required
=
true
)
@ApiModelProperty
(
value
=
"当前页数"
,
example
=
"1"
)
Integer
pageNo
;
Integer
pageNo
;
}
}
app/src/main/java/com/yiring/app/param/video/StreamProxyItem.java
浏览文件 @
c9267941
...
@@ -27,12 +27,17 @@ public class StreamProxyItem implements Serializable {
...
@@ -27,12 +27,17 @@ public class StreamProxyItem implements Serializable {
String
stream
;
String
stream
;
//拉流地址
//拉流地址
String
url
;
String
url
;
//ffmpeg地址
String
src_url
;
String
rtp_type
;
String
ffmpeg_cmd_key
;
//类型,根据地址是否有关键字判断
//类型,根据地址是否有关键字判断
String
type
;
String
type
;
//节点选择
//节点选择
String
mediaServerId
;
String
mediaServerId
;
//是否启用
//是否启用
boolean
enable
;
boolean
enable
;
boolean
status
;
//是否转HLS
//是否转HLS
boolean
enable_hls
;
boolean
enable_hls
;
...
...
app/src/main/java/com/yiring/app/param/workArea/WorkAreaParam.java
0 → 100644
浏览文件 @
c9267941
/* (C) 2022 YiRing, Inc. */
package
com
.
yiring
.
app
.
param
.
workArea
;
import
com.yiring.common.constant.RegEx
;
import
io.swagger.annotations.ApiModel
;
import
io.swagger.annotations.ApiModelProperty
;
import
java.io.Serial
;
import
java.io.Serializable
;
import
javax.validation.constraints.NotEmpty
;
import
javax.validation.constraints.Pattern
;
import
javax.validation.constraints.Size
;
import
lombok.*
;
import
lombok.experimental.FieldDefaults
;
/**
* @author tzl
* @version 1.0
* @description:
* @date 2022/5/21 9:42
*/
@ApiModel
(
"WorkAreaParam"
)
@Data
@Builder
@NoArgsConstructor
@AllArgsConstructor
@FieldDefaults
(
level
=
AccessLevel
.
PRIVATE
)
public
class
WorkAreaParam
implements
Serializable
{
@Serial
private
static
final
long
serialVersionUID
=
5907859647052875421L
;
@ApiModelProperty
(
value
=
"工区名称"
,
example
=
"工业区"
,
required
=
true
)
@NotEmpty
(
message
=
"工区名称不能为空"
)
@Size
(
max
=
10
)
String
workAreaName
;
@ApiModelProperty
(
value
=
"消抖阈值(秒)"
,
example
=
"1"
,
required
=
true
)
@NotEmpty
(
message
=
"消抖阈值(秒)不能为空"
)
Integer
threshold
;
@ApiModelProperty
(
value
=
"超时时间(秒)"
,
example
=
"1"
,
required
=
true
)
@NotEmpty
(
message
=
"超时时间(秒)不能为空"
)
Integer
timeout
;
@ApiModelProperty
(
value
=
"负责人"
,
example
=
"1"
)
String
personInCharge
;
@ApiModelProperty
(
value
=
"联系电话"
,
example
=
"17674741309"
)
@Pattern
(
regexp
=
RegEx
.
MOBILE
,
message
=
"请输入正确的联系电话"
)
String
mobile
;
@ApiModelProperty
(
value
=
"摄像头id"
,
example
=
"1"
,
required
=
true
)
Long
videoId
;
}
app/src/main/java/com/yiring/app/param/workArea/WorkAreaQueryParam.java
0 → 100644
浏览文件 @
c9267941
/* (C) 2022 YiRing, Inc. */
package
com
.
yiring
.
app
.
param
.
workArea
;
import
io.swagger.annotations.ApiModel
;
import
io.swagger.annotations.ApiModelProperty
;
import
java.io.Serial
;
import
java.io.Serializable
;
import
lombok.*
;
import
lombok.experimental.FieldDefaults
;
/**
* @author tzl
* @version 1.0
* @description:
* @date 2022/5/21 10:02
*/
@ApiModel
(
"WorkAreaQueryParam"
)
@Data
@Builder
@NoArgsConstructor
@AllArgsConstructor
@FieldDefaults
(
level
=
AccessLevel
.
PRIVATE
)
public
class
WorkAreaQueryParam
implements
Serializable
{
@Serial
private
static
final
long
serialVersionUID
=
-
8037877534751243885L
;
@ApiModelProperty
(
value
=
"工区名称"
,
example
=
"工业区"
,
required
=
true
)
String
workAreaName
;
@ApiModelProperty
(
value
=
"每页记录数"
,
example
=
"10"
)
Integer
pageSize
;
@ApiModelProperty
(
value
=
"页码"
,
example
=
"1"
)
Integer
pageNo
;
}
app/src/main/java/com/yiring/app/service/video/impl/VideoServiceImpl.java
浏览文件 @
c9267941
...
@@ -91,12 +91,16 @@ public class VideoServiceImpl implements VideoService {
...
@@ -91,12 +91,16 @@ public class VideoServiceImpl implements VideoService {
.
name
(
video
.
getVideoName
())
.
name
(
video
.
getVideoName
())
.
app
(
"stream"
)
.
app
(
"stream"
)
.
stream
(
video
.
getUuid
())
.
stream
(
video
.
getUuid
())
.
url
(
video
.
getM3u8
())
.
url
(
video
.
getM3u8
().
contains
(
"/h264"
)
?
video
.
getM3u8
()
:
""
)
.
src_url
(
video
.
getM3u8
().
contains
(
"/h265"
)
?
video
.
getM3u8
()
:
""
)
.
ffmpeg_cmd_key
(
video
.
getM3u8
().
contains
(
"/h265"
)
?
"ffmpeg.cmd"
:
""
)
.
rtp_type
(
video
.
getM3u8
().
contains
(
"/h265"
)
?
""
:
"0"
)
.
mediaServerId
(
"ZbnQN5csqxrPix7a"
)
.
mediaServerId
(
"ZbnQN5csqxrPix7a"
)
.
enable
(
true
)
.
enable
(
true
)
.
enable_hls
(
true
)
.
enable_hls
(
true
)
// .status(true)
.
type
(
video
.
getM3u8
().
contains
(
"/h265"
)
?
"ffmpeg"
:
"default"
)
.
type
(
video
.
getM3u8
().
contains
(
"/h265"
)
?
"ffmpeg"
:
"default"
)
.
timeout_ms
(
video
.
getM3u8
().
contains
(
"/h265"
)
?
6
0
:
null
)
.
timeout_ms
(
video
.
getM3u8
().
contains
(
"/h265"
)
?
3000
0
:
null
)
.
build
();
.
build
();
JSONObject
jsonObject
=
gbClient
.
proxySave
(
streamProxyItem
,
gbCookie
());
JSONObject
jsonObject
=
gbClient
.
proxySave
(
streamProxyItem
,
gbCookie
());
if
(!
jsonObject
.
get
(
"code"
).
equals
(
0
))
{
if
(!
jsonObject
.
get
(
"code"
).
equals
(
0
))
{
...
...
app/src/main/java/com/yiring/app/service/visitor/impl/VisitorServiceImpl.java
浏览文件 @
c9267941
...
@@ -136,16 +136,6 @@ public class VisitorServiceImpl implements VisitorService {
...
@@ -136,16 +136,6 @@ public class VisitorServiceImpl implements VisitorService {
.
map
(
visitor
->
{
.
map
(
visitor
->
{
VisitorVo
vo
=
new
VisitorVo
();
VisitorVo
vo
=
new
VisitorVo
();
BeanUtils
.
copyProperties
(
visitor
,
vo
);
BeanUtils
.
copyProperties
(
visitor
,
vo
);
// VisitorVo.UserVo userVo = VisitorVo.UserVo
// .builder()
// .realName(visitor.getUser().getRealName())
// .build();
// vo.setUserVo(userVo);
//翻译被访问人姓名
// if (vo.getIntervieweeId() != null) {
// Optional<User> byId = userRepository.findById(vo.getIntervieweeId());
// byId.ifPresent(user -> vo.setIntervieweeName(user.getRealName()));
// }
return
vo
;
return
vo
;
})
})
.
collect
(
Collectors
.
toList
());
.
collect
(
Collectors
.
toList
());
...
...
app/src/main/java/com/yiring/app/service/workArea/WorkAreaService.java
0 → 100644
浏览文件 @
c9267941
/* (C) 2022 YiRing, Inc. */
package
com
.
yiring
.
app
.
service
.
workArea
;
import
com.yiring.app.param.workArea.WorkAreaParam
;
import
com.yiring.app.param.workArea.WorkAreaQueryParam
;
import
com.yiring.app.vo.workArea.WorkAreaVo
;
import
com.yiring.common.core.Result
;
import
com.yiring.common.param.IdParam
;
import
com.yiring.common.vo.PageVo
;
import
javax.servlet.http.HttpServletResponse
;
public
interface
WorkAreaService
{
/**
* 新增工区信息
* @author tzl
* @date 2022/5/21 9:50
* @param workAreaParam WorkAreaParam
* @return com.yiring.common.core.Result<java.lang.String>
*/
Result
<
String
>
saveWorkArea
(
WorkAreaParam
workAreaParam
);
/**
* 修改工区信息
* @author tzl
* @date 2022/5/21 9:51
* @param workAreaParam WorkAreaParam
* @param idParam IdParam
* @return com.yiring.common.core.Result<java.lang.String>
*/
Result
<
String
>
updateWorkArea
(
WorkAreaParam
workAreaParam
,
IdParam
idParam
);
/**
* 删除工区信息
* @author tzl
* @date 2022/5/21 9:51
* @param idParam IdParam
* @return com.yiring.common.core.Result<java.lang.String>
*/
Result
<
String
>
deleteWorkArea
(
IdParam
idParam
);
/**
* 查询工区信息
* @author tzl
* @date 2022/5/21 10:04
* @param workAreaQueryParam WorkAreaQueryParam
* @return com.yiring.common.core.Result<com.yiring.app.vo.workArea.WorkAreaVo>
*/
Result
<
PageVo
<
WorkAreaVo
>>
pageWorkArea
(
WorkAreaQueryParam
workAreaQueryParam
);
/**
* 导出工区信息
* @author tzl
* @date 2022/5/21 10:14
* @param workAreaQueryParam WorkAreaQueryParam
*/
void
export
(
WorkAreaQueryParam
workAreaQueryParam
,
HttpServletResponse
httpServletResponse
);
}
app/src/main/java/com/yiring/app/service/workArea/impl/WorkAreaServiceImpl.java
0 → 100644
浏览文件 @
c9267941
/* (C) 2022 YiRing, Inc. */
package
com
.
yiring
.
app
.
service
.
workArea
.
impl
;
import
cn.hutool.core.util.StrUtil
;
import
com.github.liaochong.myexcel.core.DefaultStreamExcelBuilder
;
import
com.yiring.app.domain.workArea.WorkArea
;
import
com.yiring.app.domain.workArea.WorkAreaRepository
;
import
com.yiring.app.excel.workArea.WorkAreaExportExcel
;
import
com.yiring.app.param.workArea.WorkAreaParam
;
import
com.yiring.app.param.workArea.WorkAreaQueryParam
;
import
com.yiring.app.service.workArea.WorkAreaService
;
import
com.yiring.app.vo.workArea.WorkAreaVo
;
import
com.yiring.common.core.Result
;
import
com.yiring.common.core.Status
;
import
com.yiring.common.domain.BasicEntity
;
import
com.yiring.common.param.IdParam
;
import
com.yiring.common.vo.PageVo
;
import
java.io.OutputStream
;
import
java.net.URLEncoder
;
import
java.nio.charset.StandardCharsets
;
import
java.util.ArrayList
;
import
java.util.List
;
import
java.util.Objects
;
import
java.util.Optional
;
import
java.util.concurrent.Executors
;
import
java.util.stream.Collectors
;
import
javax.annotation.Resource
;
import
javax.persistence.criteria.Order
;
import
javax.persistence.criteria.Predicate
;
import
javax.servlet.http.HttpServletResponse
;
import
lombok.extern.slf4j.Slf4j
;
import
org.apache.poi.ss.usermodel.Workbook
;
import
org.springframework.beans.BeanUtils
;
import
org.springframework.data.domain.*
;
import
org.springframework.data.jpa.domain.Specification
;
import
org.springframework.stereotype.Service
;
import
org.springframework.transaction.annotation.Transactional
;
/**
* @author tzl
* @version 1.0
* @description:
* @date 2022/5/21 9:52
*/
@Slf4j
@Transactional
(
rollbackFor
=
RuntimeException
.
class
)
@Service
public
class
WorkAreaServiceImpl
implements
WorkAreaService
{
@Resource
WorkAreaRepository
workAreaRepository
;
@Override
public
Result
<
String
>
saveWorkArea
(
WorkAreaParam
workAreaParam
)
{
//工区名称不能重复
if
(
hasWorkAreaName
(
workAreaParam
.
getWorkAreaName
()))
{
return
Result
.
no
(
Status
.
BAD_REQUEST
,
"工区名称已存在"
);
}
WorkArea
workArea
=
new
WorkArea
();
BeanUtils
.
copyProperties
(
workAreaParam
,
workArea
);
workAreaRepository
.
saveAndFlush
(
workArea
);
return
Result
.
ok
();
}
@Override
public
Result
<
String
>
updateWorkArea
(
WorkAreaParam
workAreaParam
,
IdParam
idParam
)
{
Optional
<
WorkArea
>
byId
=
workAreaRepository
.
findById
(
idParam
.
getId
());
if
(
byId
.
isEmpty
())
{
return
Result
.
no
(
Status
.
NOT_FOUND
);
}
WorkArea
workArea
=
byId
.
get
();
//修改工区名称时判断
if
(!
workArea
.
getWorkAreaName
().
equals
(
workAreaParam
.
getWorkAreaName
()))
{
if
(
hasWorkAreaName
(
workAreaParam
.
getWorkAreaName
()))
{
return
Result
.
no
(
Status
.
BAD_REQUEST
,
"工区名称已存在"
);
}
}
BeanUtils
.
copyProperties
(
workAreaParam
,
workArea
);
workAreaRepository
.
saveAndFlush
(
workArea
);
return
Result
.
ok
();
}
@Override
public
Result
<
String
>
deleteWorkArea
(
IdParam
idParam
)
{
Optional
<
WorkArea
>
byId
=
workAreaRepository
.
findById
(
idParam
.
getId
());
if
(
byId
.
isEmpty
())
{
return
Result
.
no
(
Status
.
NOT_FOUND
);
}
WorkArea
workArea
=
byId
.
get
();
workAreaRepository
.
delete
(
workArea
);
return
Result
.
ok
();
}
@Override
public
Result
<
PageVo
<
WorkAreaVo
>>
pageWorkArea
(
WorkAreaQueryParam
workAreaQueryParam
)
{
PageVo
<
WorkAreaVo
>
resultVo
;
//排序
Sort
sort
=
Sort
.
by
(
Sort
.
Order
.
desc
(
BasicEntity
.
Fields
.
updateTime
));
if
(
Objects
.
nonNull
(
workAreaQueryParam
.
getPageNo
())
&&
Objects
.
nonNull
(
workAreaQueryParam
.
getPageSize
()))
{
//分页
Pageable
pageable
=
PageRequest
.
of
(
workAreaQueryParam
.
getPageNo
()
-
1
,
workAreaQueryParam
.
getPageSize
());
Page
<
WorkArea
>
all
=
workAreaRepository
.
findAll
(
condition
(
workAreaQueryParam
),
pageable
);
List
<
WorkAreaVo
>
data
=
all
.
get
()
.
map
(
workArea
->
{
WorkAreaVo
vo
=
new
WorkAreaVo
();
BeanUtils
.
copyProperties
(
workArea
,
vo
);
return
vo
;
})
.
collect
(
Collectors
.
toList
());
resultVo
=
PageVo
.
build
(
data
,
all
.
getTotalElements
());
}
else
{
List
<
WorkArea
>
all
=
workAreaRepository
.
findAll
(
condition
(
workAreaQueryParam
),
sort
);
List
<
WorkAreaVo
>
data
=
all
.
stream
()
.
map
(
workArea
->
{
WorkAreaVo
vo
=
new
WorkAreaVo
();
BeanUtils
.
copyProperties
(
workArea
,
vo
);
return
vo
;
})
.
collect
(
Collectors
.
toList
());
resultVo
=
PageVo
.
build
(
data
,
data
.
size
());
}
return
Result
.
ok
(
resultVo
);
}
@Override
public
void
export
(
WorkAreaQueryParam
workAreaQueryParam
,
HttpServletResponse
httpServletResponse
)
{
List
<
WorkArea
>
workAreas
=
workAreaRepository
.
findAll
(
condition
(
workAreaQueryParam
));
List
<
WorkAreaExportExcel
>
workAreaExportExcels
=
workAreas
.
stream
()
.
map
(
workArea
->
{
WorkAreaExportExcel
workAreaExportExcel
=
new
WorkAreaExportExcel
();
BeanUtils
.
copyProperties
(
workArea
,
workAreaExportExcel
);
return
workAreaExportExcel
;
})
.
toList
();
try
(
DefaultStreamExcelBuilder
<
WorkAreaExportExcel
>
defaultStreamExcelBuilder
=
DefaultStreamExcelBuilder
.
of
(
WorkAreaExportExcel
.
class
)
.
threadPool
(
Executors
.
newFixedThreadPool
(
2
))
.
rowHeight
(
14
)
.
titleRowHeight
(
14
)
.
widths
(
8
)
.
style
(
"cell->vertical-align:center;text-align:center"
,
"title->vertical-align:center;text-align:center;font-weight:bold;font-family:等线"
)
.
start
()
)
{
defaultStreamExcelBuilder
.
append
(
workAreaExportExcels
);
String
fileName
=
URLEncoder
.
encode
(
"工区信息.xlsx"
,
StandardCharsets
.
UTF_8
);
httpServletResponse
.
setContentType
(
"application/octet-stream"
);
httpServletResponse
.
setHeader
(
"Access-Control-Expose-Headers"
,
"Content-Disposition"
);
httpServletResponse
.
setHeader
(
"Content-Disposition"
,
"attachment;filename="
+
fileName
);
OutputStream
out
=
httpServletResponse
.
getOutputStream
();
Workbook
workbook
=
defaultStreamExcelBuilder
.
fixedTitles
().
build
();
workbook
.
write
(
out
);
workbook
.
close
();
out
.
flush
();
out
.
close
();
}
catch
(
Exception
e
)
{
log
.
error
(
e
.
getMessage
(),
e
);
throw
new
RuntimeException
(
"导出工区信息失败: "
+
e
.
getMessage
());
}
}
public
Specification
<
WorkArea
>
condition
(
WorkAreaQueryParam
workAreaQueryParam
)
{
return
(
root
,
cq
,
cb
)
->
{
List
<
Predicate
>
list
=
new
ArrayList
<>();
if
(
StrUtil
.
isNotBlank
(
workAreaQueryParam
.
getWorkAreaName
()))
{
list
.
add
(
cb
.
like
(
root
.
get
(
WorkArea
.
Fields
.
workAreaName
),
"%"
+
workAreaQueryParam
.
getWorkAreaName
()
+
"%"
)
);
}
Order
order
=
cb
.
desc
(
root
.
get
(
BasicEntity
.
Fields
.
updateTime
));
Predicate
[]
predicates
=
new
Predicate
[
list
.
size
()];
cq
.
where
(
list
.
toArray
(
predicates
));
cq
.
orderBy
(
order
);
return
cb
.
and
(
list
.
toArray
(
predicates
));
};
}
boolean
hasWorkAreaName
(
String
wrokAreaName
)
{
WorkArea
workArea
=
WorkArea
.
builder
().
workAreaName
(
wrokAreaName
).
build
();
return
workAreaRepository
.
count
(
Example
.
of
(
workArea
))
>
0
;
}
}
app/src/main/java/com/yiring/app/vo/workArea/WorkAreaVo.java
0 → 100644
浏览文件 @
c9267941
/* (C) 2022 YiRing, Inc. */
package
com
.
yiring
.
app
.
vo
.
workArea
;
import
com.fasterxml.jackson.databind.annotation.JsonSerialize
;
import
com.fasterxml.jackson.databind.ser.std.ToStringSerializer
;
import
com.yiring.app.domain.video.Video
;
import
io.swagger.annotations.ApiModel
;
import
io.swagger.annotations.ApiModelProperty
;
import
java.io.Serial
;
import
java.io.Serializable
;
import
lombok.*
;
import
lombok.experimental.FieldDefaults
;
/**
* @author tzl
* @version 1.0
* @description:
* @date 2022/5/21 9:47
*/
@ApiModel
(
"WorkAreaVo"
)
@Data
@Builder
@NoArgsConstructor
@AllArgsConstructor
@FieldDefaults
(
level
=
AccessLevel
.
PRIVATE
)
public
class
WorkAreaVo
implements
Serializable
{
@Serial
private
static
final
long
serialVersionUID
=
-
7662909335410925656L
;
@JsonSerialize
(
using
=
ToStringSerializer
.
class
)
@ApiModelProperty
(
value
=
"id"
,
example
=
"1"
,
required
=
true
)
private
Long
id
;
@ApiModelProperty
(
value
=
"工区名称"
,
example
=
"工业区"
)
String
workAreaName
;
@ApiModelProperty
(
value
=
"消抖阈值(秒)"
,
example
=
"1"
)
Integer
threshold
;
@ApiModelProperty
(
value
=
"超时时间(秒)"
,
example
=
"1"
)
Integer
timeout
;
@ApiModelProperty
(
value
=
"负责人"
,
example
=
"1"
)
String
personInCharge
;
@ApiModelProperty
(
value
=
"联系电话"
,
example
=
"17674741309"
)
String
mobile
;
@ApiModelProperty
(
value
=
"摄像头"
,
example
=
"1"
)
Video
video
;
}
app/src/main/java/com/yiring/app/web/workArea/WorkAreaController.java
0 → 100644
浏览文件 @
c9267941
/* (C) 2022 YiRing, Inc. */
package
com
.
yiring
.
app
.
web
.
workArea
;
import
com.yiring.app.param.workArea.WorkAreaParam
;
import
com.yiring.app.param.workArea.WorkAreaQueryParam
;
import
com.yiring.app.service.workArea.WorkAreaService
;
import
com.yiring.app.vo.workArea.WorkAreaVo
;
import
com.yiring.common.core.Result
;
import
com.yiring.common.param.IdParam
;
import
com.yiring.common.vo.PageVo
;
import
io.swagger.annotations.Api
;
import
io.swagger.annotations.ApiOperation
;
import
javax.annotation.Resource
;
import
javax.servlet.http.HttpServletResponse
;
import
javax.validation.Valid
;
import
lombok.extern.slf4j.Slf4j
;
import
org.springframework.http.MediaType
;
import
org.springframework.validation.annotation.Validated
;
import
org.springframework.web.bind.annotation.GetMapping
;
import
org.springframework.web.bind.annotation.PostMapping
;
import
org.springframework.web.bind.annotation.RequestMapping
;
import
org.springframework.web.bind.annotation.RestController
;
/**
* @author tzl
* @version 1.0
* @description:
* @date 2022/5/21 10:18
*/
@Slf4j
@Validated
@SuppressWarnings
({
"deprecation"
})
@Api
(
tags
=
"工区"
,
description
=
"WorkArea"
)
@RestController
@RequestMapping
(
"/workArea/"
)
public
class
WorkAreaController
{
@Resource
WorkAreaService
workAreaService
;
@ApiOperation
(
value
=
"新增工区信息"
)
@PostMapping
(
"saveWorkArea"
)
public
Result
<
String
>
saveWorkArea
(
@Valid
WorkAreaParam
workAreaParam
)
{
return
workAreaService
.
saveWorkArea
(
workAreaParam
);
}
@ApiOperation
(
value
=
"修改工区信息"
)
@PostMapping
(
"updateWorkArea"
)
public
Result
<
String
>
updateWorkArea
(
@Valid
WorkAreaParam
workAreaParam
,
@Valid
IdParam
idParam
)
{
return
workAreaService
.
updateWorkArea
(
workAreaParam
,
idParam
);
}
@ApiOperation
(
value
=
"删除工区信息"
)
@PostMapping
(
"deleteWorkArea"
)
public
Result
<
String
>
deleteWorkArea
(
@Valid
IdParam
idParam
)
{
return
workAreaService
.
deleteWorkArea
(
idParam
);
}
@ApiOperation
(
value
=
"查看工区信息"
)
@GetMapping
(
"pageWorkArea"
)
public
Result
<
PageVo
<
WorkAreaVo
>>
pageWorkArea
(
@Valid
WorkAreaQueryParam
workAreaQueryParam
)
{
return
workAreaService
.
pageWorkArea
(
workAreaQueryParam
);
}
@ApiOperation
(
value
=
"导出工区信息"
,
produces
=
MediaType
.
APPLICATION_OCTET_STREAM_VALUE
)
@PostMapping
(
"export"
)
public
void
export
(
HttpServletResponse
response
,
@Valid
WorkAreaQueryParam
workAreaQueryParam
)
{
workAreaService
.
export
(
workAreaQueryParam
,
response
);
}
}
编写
预览
Markdown
格式
0%
重试
或
添加新文件
添加附件
取消
您添加了
0
人
到此讨论。请谨慎行事。
请先完成此评论的编辑!
取消
请
注册
或者
登录
后发表评论