Skip to content
项目
群组
代码片段
帮助
当前项目
正在载入...
登录 / 注册
切换导航面板
B
basic-api-boot
概览
概览
详情
活动
周期分析
版本库
存储库
文件
提交
分支
标签
贡献者
分支图
比较
统计图
问题
0
议题
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
CI / CD
CI / CD
流水线
作业
日程表
图表
维基
Wiki
代码片段
代码片段
成员
成员
折叠边栏
关闭边栏
活动
图像
聊天
创建新问题
作业
提交
问题看板
Open sidebar
Basic
basic-api-boot
Commits
f773da7a
提交
f773da7a
authored
4月 14, 2022
作者:
17607474349
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
feat:
1、实现对定位标签的相关操作(未同步) 2、添加hutool相关依赖
上级
b54bb589
显示空白字符变更
内嵌
并排
正在显示
17 个修改的文件
包含
733 行增加
和
15 行删除
+733
-15
build.gradle
app/build.gradle
+9
-0
LocationTagRepository.java
...com/yiring/app/domain/location/LocationTagRepository.java
+17
-0
LocationTagExportExcel.java
...com/yiring/app/excel/location/LocationTagExportExcel.java
+71
-0
LocationTagImportExcel.java
...com/yiring/app/excel/location/LocationTagImportExcel.java
+43
-0
LocationTagAddParam.java
...va/com/yiring/app/param/location/LocationTagAddParam.java
+39
-0
LocationTagDeleteParam.java
...com/yiring/app/param/location/LocationTagDeleteParam.java
+34
-0
LocationTagFindParam.java
...a/com/yiring/app/param/location/LocationTagFindParam.java
+41
-0
LocationTagModifyParam.java
...com/yiring/app/param/location/LocationTagModifyParam.java
+39
-0
LocationTagService.java
...a/com/yiring/app/service/location/LocationTagService.java
+62
-0
LocationTagServiceImpl.java
...ing/app/service/location/impl/LocationTagServiceImpl.java
+217
-0
LocationTagVo.java
...c/main/java/com/yiring/app/vo/location/LocationTagVo.java
+69
-0
LocationTagController.java
...c/main/java/com/yiring/app/web/LocationTagController.java
+74
-0
build.gradle
basic-auth/build.gradle
+3
-0
PostFindParam.java
...c/main/java/com/yiring/auth/param/post/PostFindParam.java
+2
-2
PostService.java
...c/main/java/com/yiring/auth/service/post/PostService.java
+3
-3
PostServiceImpl.java
...va/com/yiring/auth/service/post/impl/PostServiceImpl.java
+7
-7
PostController.java
...rc/main/java/com/yiring/auth/web/post/PostController.java
+3
-3
没有找到文件。
app/build.gradle
浏览文件 @
f773da7a
...
@@ -47,4 +47,13 @@ dependencies {
...
@@ -47,4 +47,13 @@ dependencies {
// https://mvnrepository.com/artifact/com.graphhopper.external/jackson-datatype-jts
// https://mvnrepository.com/artifact/com.graphhopper.external/jackson-datatype-jts
implementation
'com.graphhopper.external:jackson-datatype-jts:1.0-2.7'
implementation
'com.graphhopper.external:jackson-datatype-jts:1.0-2.7'
// hutool-core
implementation
"cn.hutool:hutool-core:${hutoolVersion}"
// hutool-http
implementation
"cn.hutool:hutool-http:${hutoolVersion}"
// myexcel
implementation
"com.github.liaochong:myexcel:${myexcelVersion}"
}
}
app/src/main/java/com/yiring/app/domain/location/LocationTagRepository.java
0 → 100644
浏览文件 @
f773da7a
/* (C) 2022 YiRing, Inc. */
package
com
.
yiring
.
app
.
domain
.
location
;
import
java.io.Serializable
;
import
org.springframework.data.jpa.repository.JpaRepository
;
import
org.springframework.data.jpa.repository.JpaSpecificationExecutor
;
import
org.springframework.stereotype.Repository
;
/**
* 定位标签JPA
* @author LJ-2204
* @date 2022/4/14
*/
@Repository
public
interface
LocationTagRepository
extends
JpaRepository
<
LocationTag
,
Serializable
>,
JpaSpecificationExecutor
<
LocationTag
>
{}
app/src/main/java/com/yiring/app/excel/location/LocationTagExportExcel.java
0 → 100644
浏览文件 @
f773da7a
/* (C) 2022 YiRing, Inc. */
package
com
.
yiring
.
app
.
excel
.
location
;
import
com.fasterxml.jackson.databind.annotation.JsonSerialize
;
import
com.fasterxml.jackson.databind.ser.std.ToStringSerializer
;
import
com.github.liaochong.myexcel.core.annotation.ExcelColumn
;
import
com.github.liaochong.myexcel.core.annotation.ExcelModel
;
import
com.yiring.app.domain.location.LocationTag
;
import
java.io.Serializable
;
import
java.time.LocalDateTime
;
import
java.util.List
;
import
java.util.stream.Collectors
;
import
lombok.AccessLevel
;
import
lombok.Builder
;
import
lombok.Data
;
import
lombok.experimental.FieldDefaults
;
/**
* 定位标签导出模型
* @author LJ-2204
* @date 2022/4/14
*/
@ExcelModel
@Data
@Builder
@FieldDefaults
(
level
=
AccessLevel
.
PRIVATE
)
public
class
LocationTagExportExcel
implements
Serializable
{
private
static
final
long
serialVersionUID
=
-
4549580878785078998L
;
@ExcelColumn
(
title
=
"主键"
)
@JsonSerialize
(
using
=
ToStringSerializer
.
class
)
Long
id
;
@ExcelColumn
(
title
=
"编号"
)
String
code
;
@ExcelColumn
(
title
=
"标签类型"
)
LocationTag
.
Type
type
;
@ExcelColumn
(
title
=
"状态"
)
Boolean
silent
;
@ExcelColumn
(
title
=
"imei"
)
String
imei
;
@ExcelColumn
(
title
=
"电量"
)
Integer
volt
;
@ExcelColumn
(
title
=
"最近更新时间"
)
LocalDateTime
updateTime
;
public
static
List
<
LocationTagExportExcel
>
transforms
(
List
<
LocationTag
>
locationTags
)
{
return
locationTags
.
stream
()
.
map
(
locationTag
->
LocationTagExportExcel
.
builder
()
.
id
(
locationTag
.
getId
())
.
code
(
locationTag
.
getCode
())
.
type
(
locationTag
.
getType
())
.
silent
(
locationTag
.
getSilent
())
.
imei
(
locationTag
.
getImei
())
.
volt
(
locationTag
.
getVolt
())
.
updateTime
(
locationTag
.
getUpdateTime
())
.
build
()
)
.
collect
(
Collectors
.
toList
());
}
}
app/src/main/java/com/yiring/app/excel/location/LocationTagImportExcel.java
0 → 100644
浏览文件 @
f773da7a
/* (C) 2022 YiRing, Inc. */
package
com
.
yiring
.
app
.
excel
.
location
;
import
com.github.liaochong.myexcel.core.annotation.ExcelColumn
;
import
com.yiring.app.domain.location.LocationTag
;
import
java.io.Serializable
;
import
lombok.*
;
import
lombok.experimental.FieldDefaults
;
/**
* @author LJ-2204
* @date 2022/4/14
*/
@Data
@Builder
@NoArgsConstructor
@AllArgsConstructor
@FieldDefaults
(
level
=
AccessLevel
.
PRIVATE
)
public
class
LocationTagImportExcel
implements
Serializable
{
private
static
final
long
serialVersionUID
=
-
8817732062049005201L
;
// 编号
@ExcelColumn
(
index
=
0
)
String
code
;
// 标签型号
@ExcelColumn
(
index
=
1
)
String
type
;
// 所用实体
@ExcelColumn
(
index
=
2
)
String
entityType
;
// 设备编码
@ExcelColumn
(
index
=
3
)
String
imei
;
public
LocationTag
transform
()
{
return
LocationTag
.
builder
().
code
(
this
.
code
).
type
(
LocationTag
.
Type
.
valueOf
(
this
.
type
)).
imei
(
this
.
imei
).
build
();
}
}
app/src/main/java/com/yiring/app/param/location/LocationTagAddParam.java
0 → 100644
浏览文件 @
f773da7a
/* (C) 2022 YiRing, Inc. */
package
com
.
yiring
.
app
.
param
.
location
;
import
com.yiring.app.domain.location.LocationTag
;
import
io.swagger.annotations.ApiModel
;
import
io.swagger.annotations.ApiModelProperty
;
import
java.io.Serializable
;
import
lombok.*
;
import
lombok.experimental.FieldDefaults
;
/**
* 定位标签新增入参
* @author LJ-2204
* @date 2022/4/14
*/
@ApiModel
(
"LocationTagAddParam"
)
@Data
@Builder
@NoArgsConstructor
@AllArgsConstructor
@FieldDefaults
(
level
=
AccessLevel
.
PRIVATE
)
public
class
LocationTagAddParam
implements
Serializable
{
private
static
final
long
serialVersionUID
=
-
2942040230386389302L
;
@ApiModelProperty
(
value
=
"编号"
,
example
=
"BTT88888888"
,
required
=
true
)
String
code
;
@ApiModelProperty
(
value
=
"标签类型"
,
example
=
"蓝牙人员定位卡"
,
required
=
true
)
LocationTag
.
Type
type
;
@ApiModelProperty
(
value
=
"imei 设备编码标识"
,
example
=
"88888888"
)
String
imei
;
public
LocationTag
transform
()
{
return
LocationTag
.
builder
().
code
(
this
.
code
).
type
(
this
.
type
).
imei
(
this
.
imei
).
build
();
}
}
app/src/main/java/com/yiring/app/param/location/LocationTagDeleteParam.java
0 → 100644
浏览文件 @
f773da7a
/* (C) 2022 YiRing, Inc. */
package
com
.
yiring
.
app
.
param
.
location
;
import
com.yiring.auth.domain.user.User
;
import
io.swagger.annotations.ApiModel
;
import
io.swagger.annotations.ApiModelProperty
;
import
java.io.Serializable
;
import
javax.validation.constraints.NotNull
;
import
lombok.*
;
import
lombok.experimental.FieldDefaults
;
/**
* 定位标签销毁入参
* @author LJ-2204
* @date 2022/4/14
*/
@ApiModel
(
"LocationTagDeleteParam"
)
@Data
@Builder
@NoArgsConstructor
@AllArgsConstructor
@FieldDefaults
(
level
=
AccessLevel
.
PRIVATE
)
public
class
LocationTagDeleteParam
implements
Serializable
{
private
static
final
long
serialVersionUID
=
2404060244461070885L
;
@ApiModelProperty
(
value
=
"id"
,
example
=
"145235231"
,
required
=
true
)
@NotNull
(
message
=
"id 不能为空"
)
Long
id
;
@ApiModelProperty
(
value
=
"人员"
,
example
=
"1"
)
User
user
;
}
app/src/main/java/com/yiring/app/param/location/LocationTagFindParam.java
0 → 100644
浏览文件 @
f773da7a
/* (C) 2022 YiRing, Inc. */
package
com
.
yiring
.
app
.
param
.
location
;
import
com.yiring.app.domain.location.LocationTag
;
import
io.swagger.annotations.ApiModel
;
import
io.swagger.annotations.ApiModelProperty
;
import
java.io.Serializable
;
import
lombok.*
;
import
lombok.experimental.FieldDefaults
;
/**
* 定位标签分页入参
* @author LJ-2204
* @date 2022/4/14
*/
@ApiModel
(
"LocationTagFindParam"
)
@Data
@Builder
@NoArgsConstructor
@AllArgsConstructor
@FieldDefaults
(
level
=
AccessLevel
.
PRIVATE
)
public
class
LocationTagFindParam
implements
Serializable
{
private
static
final
long
serialVersionUID
=
-
5134311481372693111L
;
@ApiModelProperty
(
value
=
"编号"
,
example
=
"BTT88888888"
)
String
code
;
@ApiModelProperty
(
value
=
"标签类型"
,
example
=
"蓝牙人员定位卡"
)
LocationTag
.
Type
type
;
@ApiModelProperty
(
value
=
"状态"
,
example
=
"true"
)
Boolean
silent
;
@ApiModelProperty
(
value
=
"每页记录数"
,
example
=
"10"
)
Integer
pageSize
;
@ApiModelProperty
(
value
=
"页码"
,
example
=
"1"
)
Integer
pageNo
;
}
app/src/main/java/com/yiring/app/param/location/LocationTagModifyParam.java
0 → 100644
浏览文件 @
f773da7a
/* (C) 2022 YiRing, Inc. */
package
com
.
yiring
.
app
.
param
.
location
;
import
com.yiring.app.domain.location.LocationTag
;
import
io.swagger.annotations.ApiModel
;
import
io.swagger.annotations.ApiModelProperty
;
import
java.io.Serializable
;
import
lombok.*
;
import
lombok.experimental.FieldDefaults
;
/**
* 定位标签修改入参
* @author LJ-2204
* @date 2022/4/14
*/
@ApiModel
(
"LocationTagModifyParam"
)
@Data
@Builder
@NoArgsConstructor
@AllArgsConstructor
@FieldDefaults
(
level
=
AccessLevel
.
PRIVATE
)
public
class
LocationTagModifyParam
implements
Serializable
{
private
static
final
long
serialVersionUID
=
7711908393372149723L
;
@ApiModelProperty
(
value
=
"编号"
,
example
=
"BTT88888888"
,
required
=
true
)
String
code
;
@ApiModelProperty
(
value
=
"标签类型"
,
example
=
"蓝牙人员定位卡"
,
required
=
true
)
LocationTag
.
Type
type
;
@ApiModelProperty
(
value
=
"imei 设备编码标识"
,
example
=
"88888888"
)
String
imei
;
public
LocationTag
transform
()
{
return
LocationTag
.
builder
().
code
(
this
.
code
).
type
(
this
.
type
).
imei
(
this
.
imei
).
build
();
}
}
app/src/main/java/com/yiring/app/service/location/LocationTagService.java
0 → 100644
浏览文件 @
f773da7a
/* (C) 2022 YiRing, Inc. */
package
com
.
yiring
.
app
.
service
.
location
;
import
com.yiring.app.param.location.LocationTagAddParam
;
import
com.yiring.app.param.location.LocationTagDeleteParam
;
import
com.yiring.app.param.location.LocationTagFindParam
;
import
com.yiring.app.param.location.LocationTagModifyParam
;
import
com.yiring.app.vo.location.LocationTagVo
;
import
com.yiring.common.core.Result
;
import
com.yiring.common.param.IdParam
;
import
com.yiring.common.vo.PageVo
;
import
javax.servlet.http.HttpServletResponse
;
import
org.springframework.web.multipart.MultipartFile
;
/**
* 定位标签
* @author LJ-2204
* @date 2022/4/14
*/
public
interface
LocationTagService
{
/**
* 新增定位标签
* @param param
* @return
*/
Result
<
String
>
addLocationTag
(
LocationTagAddParam
param
);
/**
* 分页查询
* @param param
* @return
*/
Result
<
PageVo
<
LocationTagVo
>>
findLocationTagPage
(
LocationTagFindParam
param
);
/**
* 销毁定位标签
* @param param
* @return
*/
Result
<
String
>
deleteLocationTag
(
LocationTagDeleteParam
param
);
/**
* 导出定位标签
* @param param
* @param response
*/
void
exportLocationTagInfo
(
LocationTagFindParam
param
,
HttpServletResponse
response
);
/**
* 导入定位标签
* @param file
* @return
*/
Result
<
String
>
importLocationTagInfo
(
MultipartFile
file
);
/**
* 修改定位标签
* @param param
* @return
*/
Result
<
String
>
modifyLocationTag
(
LocationTagModifyParam
param
,
IdParam
idParam
);
}
app/src/main/java/com/yiring/app/service/location/impl/LocationTagServiceImpl.java
0 → 100644
浏览文件 @
f773da7a
/* (C) 2022 YiRing, Inc. */
package
com
.
yiring
.
app
.
service
.
location
.
impl
;
import
cn.hutool.core.collection.ListUtil
;
import
cn.hutool.core.util.ObjectUtil
;
import
cn.hutool.core.util.StrUtil
;
import
com.github.liaochong.myexcel.core.DefaultStreamExcelBuilder
;
import
com.github.liaochong.myexcel.core.SaxExcelReader
;
import
com.yiring.app.domain.location.LocationTag
;
import
com.yiring.app.domain.location.LocationTagRepository
;
import
com.yiring.app.excel.location.LocationTagExportExcel
;
import
com.yiring.app.excel.location.LocationTagImportExcel
;
import
com.yiring.app.param.location.LocationTagAddParam
;
import
com.yiring.app.param.location.LocationTagDeleteParam
;
import
com.yiring.app.param.location.LocationTagFindParam
;
import
com.yiring.app.param.location.LocationTagModifyParam
;
import
com.yiring.app.service.location.LocationTagService
;
import
com.yiring.app.vo.location.LocationTagVo
;
import
com.yiring.common.core.Result
;
import
com.yiring.common.core.Status
;
import
com.yiring.common.param.IdParam
;
import
com.yiring.common.vo.PageVo
;
import
java.io.IOException
;
import
java.io.InputStream
;
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.jetbrains.annotations.NotNull
;
import
org.springframework.data.domain.*
;
import
org.springframework.data.jpa.domain.Specification
;
import
org.springframework.stereotype.Service
;
import
org.springframework.transaction.annotation.Transactional
;
import
org.springframework.web.multipart.MultipartFile
;
/**
* 定位标签
* @author LJ-2204
* @date 2022/4/14
*/
@Transactional
(
rollbackFor
=
RuntimeException
.
class
)
@Service
@Slf4j
public
class
LocationTagServiceImpl
implements
LocationTagService
{
final
Integer
FACTORY_ID
=
100
;
@Resource
LocationTagRepository
locationTagRepository
;
@Override
public
Result
<
String
>
addLocationTag
(
LocationTagAddParam
param
)
{
if
(
hasLocationTagInfoByCode
(
param
.
getCode
()))
return
Result
.
no
(
Status
.
BAD_REQUEST
,
"编号已存在"
);
LocationTag
locationTag
=
param
.
transform
();
locationTagRepository
.
save
(
locationTag
);
return
Result
.
ok
();
}
@Override
public
Result
<
PageVo
<
LocationTagVo
>>
findLocationTagPage
(
LocationTagFindParam
param
)
{
Specification
<
LocationTag
>
specification
=
getLocationTagPageSpecification
(
param
);
Sort
sort
=
Sort
.
by
(
Sort
.
Order
.
desc
(
LocationTag
.
Fields
.
createTime
));
if
(
Objects
.
nonNull
(
param
.
getPageNo
())
&&
Objects
.
nonNull
(
param
.
getPageSize
()))
{
//分页
Pageable
pageable
=
PageRequest
.
of
(
param
.
getPageNo
()
-
1
,
param
.
getPageSize
());
Page
<
LocationTag
>
locationTags
=
locationTagRepository
.
findAll
(
specification
,
pageable
);
List
<
LocationTagVo
>
locationTagVos
=
LocationTagVo
.
transforms
(
locationTags
.
getContent
());
PageVo
<
LocationTagVo
>
page
=
PageVo
.
build
(
locationTagVos
,
locationTagVos
.
size
());
return
Result
.
ok
(
page
);
}
else
{
List
<
LocationTag
>
locationTags
=
locationTagRepository
.
findAll
(
specification
,
sort
);
List
<
LocationTagVo
>
locationTagVos
=
LocationTagVo
.
transforms
(
locationTags
);
PageVo
<
LocationTagVo
>
page
=
PageVo
.
build
(
locationTagVos
,
locationTagVos
.
size
());
return
Result
.
ok
(
page
);
}
}
@Override
public
Result
<
String
>
deleteLocationTag
(
LocationTagDeleteParam
param
)
{
if
(
ObjectUtil
.
isNotEmpty
(
param
.
getUser
()))
return
Result
.
no
(
Status
.
BAD_REQUEST
,
"请先解绑人员"
);
locationTagRepository
.
deleteById
(
param
.
getId
());
return
Result
.
ok
();
}
@Override
public
void
exportLocationTagInfo
(
LocationTagFindParam
param
,
HttpServletResponse
response
)
{
Specification
<
LocationTag
>
specification
=
getLocationTagPageSpecification
(
param
);
List
<
LocationTag
>
locationTags
=
locationTagRepository
.
findAll
(
specification
);
List
<
LocationTagExportExcel
>
locationTagExportExcels
=
LocationTagExportExcel
.
transforms
(
locationTags
);
try
(
DefaultStreamExcelBuilder
<
LocationTagExportExcel
>
streamExcelBuilder
=
DefaultStreamExcelBuilder
.
of
(
LocationTagExportExcel
.
class
)
.
threadPool
(
Executors
.
newFixedThreadPool
(
2
))
.
rowHeight
(
14
)
.
titleRowHeight
(
14
)
.
style
(
"cell->vertical-align:center;text-align:center"
,
"title->vertical-align:center;text-align:center;font-weight:bold;font-family:等线"
)
.
start
()
)
{
streamExcelBuilder
.
append
(
locationTagExportExcels
);
String
fileName
=
URLEncoder
.
encode
(
"定位标签信息.xlsx"
,
StandardCharsets
.
UTF_8
);
response
.
setContentType
(
"application/octet-stream"
);
response
.
setHeader
(
"Content-Disposition"
,
"attachment;filename="
+
fileName
);
OutputStream
out
=
response
.
getOutputStream
();
Workbook
workbook
=
streamExcelBuilder
.
fixedTitles
().
build
();
workbook
.
write
(
out
);
workbook
.
close
();
out
.
flush
();
out
.
close
();
}
catch
(
Exception
e
)
{
log
.
error
(
e
.
getMessage
(),
e
);
throw
new
RuntimeException
(
"导出岗位信息失败: "
+
e
.
getMessage
());
}
}
@Override
public
Result
<
String
>
importLocationTagInfo
(
MultipartFile
file
)
{
if
(
file
.
isEmpty
())
throw
new
RuntimeException
(
"请选择文件"
);
List
<
LocationTagImportExcel
>
locationTagImportExcels
;
try
(
InputStream
inputStream
=
file
.
getInputStream
())
{
locationTagImportExcels
=
SaxExcelReader
.
of
(
LocationTagImportExcel
.
class
)
.
rowFilter
(
row
->
row
.
getRowNum
()
>
0
)
.
ignoreBlankRow
()
.
read
(
inputStream
);
}
catch
(
IOException
e
)
{
log
.
info
(
e
.
getMessage
());
throw
new
RuntimeException
(
"文件导入异常"
);
}
List
<
LocationTag
>
locationTags
=
locationTagImportExcels
.
stream
()
.
map
(
LocationTagImportExcel:
:
transform
)
.
collect
(
Collectors
.
toList
());
locationTags
.
forEach
(
locationTag
->
{
locationTagRepository
.
findOne
((
root
,
cq
,
cb
)
->
{
List
<
Predicate
>
predicates
=
new
ArrayList
<>();
if
(
StrUtil
.
isNotEmpty
(
locationTag
.
getCode
()))
{
predicates
.
add
(
cb
.
equal
(
root
.
get
(
LocationTag
.
Fields
.
code
),
locationTag
.
getCode
()));
}
return
cq
.
where
(
predicates
.
toArray
(
new
Predicate
[
0
])).
getRestriction
();
})
.
ifPresent
(
temp
->
locationTag
.
setId
(
temp
.
getId
()));
locationTagRepository
.
save
(
locationTag
);
});
return
Result
.
ok
();
}
@Override
public
Result
<
String
>
modifyLocationTag
(
LocationTagModifyParam
param
,
IdParam
idParam
)
{
Optional
<
LocationTag
>
locationTagOptional
=
locationTagRepository
.
findById
(
idParam
.
getId
());
if
(
locationTagOptional
.
isEmpty
())
return
Result
.
no
(
Status
.
BAD_REQUEST
,
"被修改的数据不存在"
);
LocationTag
locationTag
=
locationTagOptional
.
get
();
if
(!
StrUtil
.
equals
(
locationTag
.
getCode
(),
param
.
getCode
()))
{
if
(
hasLocationTagInfoByCode
(
param
.
getCode
()))
return
Result
.
no
(
Status
.
BAD_REQUEST
,
"编号已存在"
);
}
locationTag
=
param
.
transform
();
locationTag
.
setId
(
idParam
.
getId
());
locationTagRepository
.
save
(
locationTag
);
return
Result
.
ok
();
}
private
boolean
hasLocationTagInfoByCode
(
String
code
)
{
LocationTag
locationTag
=
LocationTag
.
builder
().
code
(
code
).
build
();
return
locationTagRepository
.
count
(
Example
.
of
(
locationTag
))
>
0
;
}
@NotNull
private
Specification
<
LocationTag
>
getLocationTagPageSpecification
(
LocationTagFindParam
param
)
{
return
(
root
,
cq
,
cb
)
->
{
List
<
Predicate
>
predicates
=
ListUtil
.
toList
();
if
(
StrUtil
.
isNotEmpty
(
param
.
getCode
()))
{
cb
.
equal
(
root
.
get
(
LocationTag
.
Fields
.
code
),
param
.
getCode
());
}
if
(
ObjectUtil
.
isNotEmpty
(
param
.
getType
()))
{
cb
.
equal
(
root
.
get
(
LocationTag
.
Fields
.
type
),
param
.
getType
());
}
if
(
ObjectUtil
.
isNotEmpty
(
param
.
getSilent
()))
{
cb
.
equal
(
root
.
get
(
LocationTag
.
Fields
.
silent
),
param
.
getSilent
());
}
Order
order
=
cb
.
desc
(
root
.
get
(
LocationTag
.
Fields
.
createTime
));
return
cq
.
orderBy
(
order
).
where
(
predicates
.
toArray
(
new
Predicate
[
0
])).
getRestriction
();
};
}
}
app/src/main/java/com/yiring/app/vo/location/LocationTagVo.java
0 → 100644
浏览文件 @
f773da7a
/* (C) 2022 YiRing, Inc. */
package
com
.
yiring
.
app
.
vo
.
location
;
import
com.fasterxml.jackson.databind.annotation.JsonSerialize
;
import
com.fasterxml.jackson.databind.ser.std.ToStringSerializer
;
import
com.yiring.app.domain.location.LocationTag
;
import
io.swagger.annotations.ApiModel
;
import
io.swagger.annotations.ApiModelProperty
;
import
java.io.Serializable
;
import
java.time.LocalDateTime
;
import
java.util.List
;
import
java.util.stream.Collectors
;
import
lombok.*
;
import
lombok.experimental.FieldDefaults
;
/**
* 定位标签视图
* @author LJ-2204
* @date 2022/4/14
*/
@ApiModel
(
"LocationTagVo"
)
@Data
@Builder
@NoArgsConstructor
@AllArgsConstructor
@FieldDefaults
(
level
=
AccessLevel
.
PRIVATE
)
public
class
LocationTagVo
implements
Serializable
{
private
static
final
long
serialVersionUID
=
-
7884163207638158359L
;
@JsonSerialize
(
using
=
ToStringSerializer
.
class
)
@ApiModelProperty
(
value
=
"主键"
,
example
=
"188354391834"
)
Long
id
;
@ApiModelProperty
(
value
=
"编号"
,
example
=
"BTT88888888"
)
String
code
;
@ApiModelProperty
(
value
=
"标签型号"
,
example
=
"BTT01"
)
LocationTag
.
Type
type
;
@ApiModelProperty
(
value
=
"状态"
,
example
=
"静止"
)
Boolean
silent
;
@ApiModelProperty
(
value
=
"电量"
,
example
=
"1"
)
Integer
volt
;
@ApiModelProperty
(
value
=
"imei 设备编码"
,
example
=
"88888888"
)
String
imei
;
@ApiModelProperty
(
value
=
"最近更新时间"
,
example
=
"2022-01-01 00:00:00"
)
LocalDateTime
updateTime
;
public
static
List
<
LocationTagVo
>
transforms
(
List
<
LocationTag
>
locationTags
)
{
return
locationTags
.
stream
()
.
map
(
locationTag
->
LocationTagVo
.
builder
()
.
id
(
locationTag
.
getId
())
.
code
(
locationTag
.
getCode
())
.
type
(
locationTag
.
getType
())
.
silent
(
locationTag
.
getSilent
())
.
volt
(
locationTag
.
getVolt
())
.
build
()
)
.
collect
(
Collectors
.
toList
());
}
}
app/src/main/java/com/yiring/app/web/LocationTagController.java
0 → 100644
浏览文件 @
f773da7a
/* (C) 2022 YiRing, Inc. */
package
com
.
yiring
.
app
.
web
;
import
com.yiring.app.param.location.LocationTagAddParam
;
import
com.yiring.app.param.location.LocationTagDeleteParam
;
import
com.yiring.app.param.location.LocationTagFindParam
;
import
com.yiring.app.param.location.LocationTagModifyParam
;
import
com.yiring.app.service.location.LocationTagService
;
import
com.yiring.app.vo.location.LocationTagVo
;
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.validation.annotation.Validated
;
import
org.springframework.web.bind.annotation.*
;
import
org.springframework.web.multipart.MultipartFile
;
/**
* 定位标签
* @author LJ-2204
* @date 2022/4/13
*/
@Slf4j
@Validated
@Api
(
tags
=
"职位信息"
)
@RestController
@RequestMapping
(
"/location/tag/"
)
public
class
LocationTagController
{
@Resource
LocationTagService
locationTagService
;
@ApiOperation
(
"新增定位标签"
)
@PostMapping
(
"addLocationTag"
)
public
Result
<
String
>
addLocationTag
(
@Valid
LocationTagAddParam
param
)
{
return
locationTagService
.
addLocationTag
(
param
);
}
@ApiOperation
(
"分页查询"
)
@GetMapping
(
"findLocationTagPage"
)
public
Result
<
PageVo
<
LocationTagVo
>>
findLocationTagPage
(
@Valid
LocationTagFindParam
param
)
{
return
locationTagService
.
findLocationTagPage
(
param
);
}
@ApiOperation
(
"销毁定位标签"
)
@DeleteMapping
(
"deleteLocationTag"
)
public
Result
<
String
>
deleteLocationTag
(
@Valid
LocationTagDeleteParam
param
)
{
return
locationTagService
.
deleteLocationTag
(
param
);
}
@ApiOperation
(
"导出定位标签"
)
@GetMapping
(
"exportLocationTagInfo"
)
public
void
exportLocationTagInfo
(
@Valid
LocationTagFindParam
param
,
HttpServletResponse
response
)
{
locationTagService
.
exportLocationTagInfo
(
param
,
response
);
}
@ApiOperation
(
"导入定位标签"
)
@PostMapping
(
"importLocationTagInfo"
)
public
Result
<
String
>
importLocationTagInfo
(
@RequestParam
(
"file"
)
MultipartFile
file
)
{
return
locationTagService
.
importLocationTagInfo
(
file
);
}
@ApiOperation
(
"修改定位标签"
)
@PutMapping
(
"modifyLocationTag"
)
public
Result
<
String
>
modifyLocationTag
(
@Valid
LocationTagModifyParam
param
,
IdParam
idParam
)
{
return
locationTagService
.
modifyLocationTag
(
param
,
idParam
);
}
}
basic-auth/build.gradle
浏览文件 @
f773da7a
...
@@ -23,4 +23,7 @@ dependencies {
...
@@ -23,4 +23,7 @@ dependencies {
// myexcel
// myexcel
implementation
"com.github.liaochong:myexcel:${myexcelVersion}"
implementation
"com.github.liaochong:myexcel:${myexcelVersion}"
// hutool-http
implementation
"cn.hutool:hutool-http:${hutoolVersion}"
}
}
basic-auth/src/main/java/com/yiring/auth/param/post/
FindPost
Param.java
→
basic-auth/src/main/java/com/yiring/auth/param/post/
PostFind
Param.java
浏览文件 @
f773da7a
...
@@ -13,13 +13,13 @@ import lombok.experimental.FieldDefaults;
...
@@ -13,13 +13,13 @@ import lombok.experimental.FieldDefaults;
* @date 2022/4/13
* @date 2022/4/13
*/
*/
@ApiModel
(
"
FindPost
Param"
)
@ApiModel
(
"
PostFind
Param"
)
@Data
@Data
@Builder
@Builder
@NoArgsConstructor
@NoArgsConstructor
@AllArgsConstructor
@AllArgsConstructor
@FieldDefaults
(
level
=
AccessLevel
.
PRIVATE
)
@FieldDefaults
(
level
=
AccessLevel
.
PRIVATE
)
public
class
FindPost
Param
implements
Serializable
{
public
class
PostFind
Param
implements
Serializable
{
private
static
final
long
serialVersionUID
=
1926710333813935577L
;
private
static
final
long
serialVersionUID
=
1926710333813935577L
;
...
...
basic-auth/src/main/java/com/yiring/auth/service/post/PostService.java
浏览文件 @
f773da7a
/* (C) 2022 YiRing, Inc. */
/* (C) 2022 YiRing, Inc. */
package
com
.
yiring
.
auth
.
service
.
post
;
package
com
.
yiring
.
auth
.
service
.
post
;
import
com.yiring.auth.param.post.
FindPost
Param
;
import
com.yiring.auth.param.post.
PostFind
Param
;
import
com.yiring.auth.param.post.PostParam
;
import
com.yiring.auth.param.post.PostParam
;
import
com.yiring.auth.vo.post.PostVo
;
import
com.yiring.auth.vo.post.PostVo
;
import
com.yiring.common.core.Result
;
import
com.yiring.common.core.Result
;
...
@@ -42,7 +42,7 @@ public interface PostService {
...
@@ -42,7 +42,7 @@ public interface PostService {
* @param param
* @param param
* @return
* @return
*/
*/
Result
<
PageVo
<
PostVo
>>
findPostPage
(
FindPost
Param
param
);
Result
<
PageVo
<
PostVo
>>
findPostPage
(
PostFind
Param
param
);
/**
/**
* 详细信息查询
* 详细信息查询
...
@@ -63,5 +63,5 @@ public interface PostService {
...
@@ -63,5 +63,5 @@ public interface PostService {
* @param param
* @param param
* @param response
* @param response
*/
*/
void
exportPostInfo
(
FindPost
Param
param
,
HttpServletResponse
response
);
void
exportPostInfo
(
PostFind
Param
param
,
HttpServletResponse
response
);
}
}
basic-auth/src/main/java/com/yiring/auth/service/post/impl/PostServiceImpl.java
浏览文件 @
f773da7a
...
@@ -8,7 +8,7 @@ import com.github.liaochong.myexcel.core.DefaultStreamExcelBuilder;
...
@@ -8,7 +8,7 @@ import com.github.liaochong.myexcel.core.DefaultStreamExcelBuilder;
import
com.yiring.auth.domain.post.Post
;
import
com.yiring.auth.domain.post.Post
;
import
com.yiring.auth.domain.post.PostRepository
;
import
com.yiring.auth.domain.post.PostRepository
;
import
com.yiring.auth.excel.post.PostExcel
;
import
com.yiring.auth.excel.post.PostExcel
;
import
com.yiring.auth.param.post.
FindPost
Param
;
import
com.yiring.auth.param.post.
PostFind
Param
;
import
com.yiring.auth.param.post.PostParam
;
import
com.yiring.auth.param.post.PostParam
;
import
com.yiring.auth.service.post.PostService
;
import
com.yiring.auth.service.post.PostService
;
import
com.yiring.auth.vo.post.PostVo
;
import
com.yiring.auth.vo.post.PostVo
;
...
@@ -50,7 +50,7 @@ public class PostServiceImpl implements PostService {
...
@@ -50,7 +50,7 @@ public class PostServiceImpl implements PostService {
@Override
@Override
public
Result
<
String
>
addPost
(
PostParam
postParam
)
{
public
Result
<
String
>
addPost
(
PostParam
postParam
)
{
if
(
hasPostInfo
(
postParam
.
getName
()))
return
Result
.
no
(
Status
.
INTERNAL_SERVER_ERROR
,
"职位已存在"
);
if
(
hasPostInfo
(
postParam
.
getName
()))
return
Result
.
no
(
Status
.
BAD_REQUEST
,
"职位已存在"
);
Post
post
=
postParam
.
transform
();
Post
post
=
postParam
.
transform
();
postRepository
.
save
(
post
);
postRepository
.
save
(
post
);
return
Result
.
ok
();
return
Result
.
ok
();
...
@@ -59,12 +59,12 @@ public class PostServiceImpl implements PostService {
...
@@ -59,12 +59,12 @@ public class PostServiceImpl implements PostService {
@Override
@Override
public
Result
<
String
>
modifyPost
(
PostParam
postParam
,
IdParam
idParam
)
{
public
Result
<
String
>
modifyPost
(
PostParam
postParam
,
IdParam
idParam
)
{
Optional
<
Post
>
postOptional
=
postRepository
.
findById
(
idParam
.
getId
());
Optional
<
Post
>
postOptional
=
postRepository
.
findById
(
idParam
.
getId
());
if
(
postOptional
.
isEmpty
())
return
Result
.
no
(
Status
.
INTERNAL_SERVER_ERROR
,
"被修改的数据不存在"
);
if
(
postOptional
.
isEmpty
())
return
Result
.
no
(
Status
.
BAD_REQUEST
,
"被修改的数据不存在"
);
Post
post
=
postOptional
.
get
();
Post
post
=
postOptional
.
get
();
if
(!
StrUtil
.
equals
(
post
.
getName
(),
postParam
.
getName
()))
{
if
(!
StrUtil
.
equals
(
post
.
getName
(),
postParam
.
getName
()))
{
if
(
hasPostInfo
(
postParam
.
getName
()))
return
Result
.
no
(
Status
.
INTERNAL_SERVER_ERROR
,
"职位已存在"
);
if
(
hasPostInfo
(
postParam
.
getName
()))
return
Result
.
no
(
Status
.
BAD_REQUEST
,
"职位已存在"
);
}
}
post
=
postParam
.
transform
();
post
=
postParam
.
transform
();
...
@@ -81,7 +81,7 @@ public class PostServiceImpl implements PostService {
...
@@ -81,7 +81,7 @@ public class PostServiceImpl implements PostService {
}
}
@Override
@Override
public
Result
<
PageVo
<
PostVo
>>
findPostPage
(
FindPost
Param
param
)
{
public
Result
<
PageVo
<
PostVo
>>
findPostPage
(
PostFind
Param
param
)
{
Specification
<
Post
>
specification
=
getPostPageSpecification
(
param
);
Specification
<
Post
>
specification
=
getPostPageSpecification
(
param
);
if
(
ObjectUtil
.
isEmpty
(
param
.
getPageSize
())
&&
ObjectUtil
.
isEmpty
(
param
.
getPageNo
()))
{
if
(
ObjectUtil
.
isEmpty
(
param
.
getPageSize
())
&&
ObjectUtil
.
isEmpty
(
param
.
getPageNo
()))
{
...
@@ -113,7 +113,7 @@ public class PostServiceImpl implements PostService {
...
@@ -113,7 +113,7 @@ public class PostServiceImpl implements PostService {
}
}
@Override
@Override
public
void
exportPostInfo
(
FindPost
Param
param
,
HttpServletResponse
response
)
{
public
void
exportPostInfo
(
PostFind
Param
param
,
HttpServletResponse
response
)
{
Specification
<
Post
>
specification
=
getPostPageSpecification
(
param
);
Specification
<
Post
>
specification
=
getPostPageSpecification
(
param
);
List
<
Post
>
postList
=
postRepository
.
findAll
(
specification
);
List
<
Post
>
postList
=
postRepository
.
findAll
(
specification
);
List
<
PostExcel
>
postExcels
=
PostExcel
.
transforms
(
postList
);
List
<
PostExcel
>
postExcels
=
PostExcel
.
transforms
(
postList
);
...
@@ -147,7 +147,7 @@ public class PostServiceImpl implements PostService {
...
@@ -147,7 +147,7 @@ public class PostServiceImpl implements PostService {
}
}
}
}
private
Specification
<
Post
>
getPostPageSpecification
(
FindPost
Param
param
)
{
private
Specification
<
Post
>
getPostPageSpecification
(
PostFind
Param
param
)
{
return
(
root
,
cq
,
cb
)
->
{
return
(
root
,
cq
,
cb
)
->
{
List
<
Predicate
>
predicates
=
ListUtil
.
toList
();
List
<
Predicate
>
predicates
=
ListUtil
.
toList
();
...
...
basic-auth/src/main/java/com/yiring/auth/web/post/PostController.java
浏览文件 @
f773da7a
/* (C) 2022 YiRing, Inc. */
/* (C) 2022 YiRing, Inc. */
package
com
.
yiring
.
auth
.
web
.
post
;
package
com
.
yiring
.
auth
.
web
.
post
;
import
com.yiring.auth.param.post.
FindPost
Param
;
import
com.yiring.auth.param.post.
PostFind
Param
;
import
com.yiring.auth.param.post.PostParam
;
import
com.yiring.auth.param.post.PostParam
;
import
com.yiring.auth.service.post.PostService
;
import
com.yiring.auth.service.post.PostService
;
import
com.yiring.auth.vo.post.PostVo
;
import
com.yiring.auth.vo.post.PostVo
;
...
@@ -53,7 +53,7 @@ public class PostController {
...
@@ -53,7 +53,7 @@ public class PostController {
@ApiOperation
(
value
=
"分页查询"
)
@ApiOperation
(
value
=
"分页查询"
)
@GetMapping
(
"findPostPage"
)
@GetMapping
(
"findPostPage"
)
public
Result
<
PageVo
<
PostVo
>>
findPostPage
(
@Valid
FindPost
Param
param
)
{
public
Result
<
PageVo
<
PostVo
>>
findPostPage
(
@Valid
PostFind
Param
param
)
{
return
postService
.
findPostPage
(
param
);
return
postService
.
findPostPage
(
param
);
}
}
...
@@ -65,7 +65,7 @@ public class PostController {
...
@@ -65,7 +65,7 @@ public class PostController {
@ApiOperation
(
value
=
"导出职位信息"
)
@ApiOperation
(
value
=
"导出职位信息"
)
@GetMapping
(
"exportPostInfo"
)
@GetMapping
(
"exportPostInfo"
)
public
void
exportPostInfo
(
@Valid
FindPost
Param
param
,
HttpServletResponse
response
)
{
public
void
exportPostInfo
(
@Valid
PostFind
Param
param
,
HttpServletResponse
response
)
{
postService
.
exportPostInfo
(
param
,
response
);
postService
.
exportPostInfo
(
param
,
response
);
}
}
}
}
编写
预览
Markdown
格式
0%
重试
或
添加新文件
添加附件
取消
您添加了
0
人
到此讨论。请谨慎行事。
请先完成此评论的编辑!
取消
请
注册
或者
登录
后发表评论