Skip to content
项目
群组
代码片段
帮助
当前项目
正在载入...
登录 / 注册
切换导航面板
T
ty-weekly
项目
项目
详情
活动
周期分析
仓库
仓库
文件
提交
分支
标签
贡献者
图表
比较
统计图
议题
0
议题
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
CI / CD
CI / CD
流水线
作业
日程
统计图
Wiki
Wiki
代码片段
代码片段
成员
成员
折叠边栏
关闭边栏
活动
图像
聊天
创建新问题
作业
提交
问题看板
Open sidebar
朱旭欣
ty-weekly
Commits
5bcc993e
提交
5bcc993e
authored
7月 04, 2022
作者:
朱旭欣
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
第二次提交
上级
331a7d7e
显示空白字符变更
内嵌
并排
正在显示
12 个修改的文件
包含
137 行增加
和
81 行删除
+137
-81
PageUtil.java
src/main/java/com/example/tyweekly/config/PageUtil.java
+45
-0
WebMvcConfig.java
src/main/java/com/example/tyweekly/config/WebMvcConfig.java
+1
-1
UserController.java
.../java/com/example/tyweekly/controller/UserController.java
+0
-1
WeeklyController.java
...ava/com/example/tyweekly/controller/WeeklyController.java
+3
-17
WeeklyFileDao.java
src/main/java/com/example/tyweekly/dao/WeeklyFileDao.java
+8
-0
WeeklyUserDao.java
src/main/java/com/example/tyweekly/dao/WeeklyUserDao.java
+2
-1
WeeklyCondition.java
...ain/java/com/example/tyweekly/entity/WeeklyCondition.java
+5
-2
WeeklyFile.java
src/main/java/com/example/tyweekly/entity/WeeklyFile.java
+0
-3
WeeklyUser.java
src/main/java/com/example/tyweekly/entity/WeeklyUser.java
+7
-4
WeeklyFileService.java
.../java/com/example/tyweekly/service/WeeklyFileService.java
+3
-5
WeeklyFileServiceImpl.java
.../example/tyweekly/service/impl/WeeklyFileServiceImpl.java
+57
-42
application.properties
src/main/resources/application.properties
+6
-5
没有找到文件。
src/main/java/com/example/tyweekly/config/PageUtil.java
0 → 100644
浏览文件 @
5bcc993e
package
com
.
example
.
tyweekly
.
config
;
import
org.springframework.data.domain.Page
;
import
org.springframework.data.domain.PageImpl
;
import
org.springframework.data.domain.Pageable
;
import
java.util.ArrayList
;
import
java.util.List
;
/**
* @author dengdiyi
* 分页工具类
*/
public
class
PageUtil
{
/**
* @param page 当前页数,默认0为第一页
* @param size 分页大小
* 获取分页后每一页的分页信息
*/
public
static
<
T
>
Page
<
T
>
getPerPage
(
Integer
page
,
Integer
size
,
List
<
T
>
list
,
Pageable
pageable
)
{
//若List的size小于分页大小(只有一页)
if
(
list
.
size
()
<=
size
&&
page
==
0
)
{
return
new
PageImpl
<>(
list
,
pageable
,
list
.
size
());
}
else
{
//计算分了几页
double
d
=
Math
.
ceil
(
list
.
size
()
/
size
.
doubleValue
());
int
value
=
new
Double
(
d
).
intValue
();
//当前页数超出了最大页数
if
(
page
>=
value
)
{
return
new
PageImpl
<>(
new
ArrayList
<>(),
pageable
,
list
.
size
());
}
else
{
//当前页的第一条记录的索引值
int
index
=
page
*
size
;
//当前页为最后一页
if
(
page
==
value
-
1
)
{
return
new
PageImpl
<>(
list
.
subList
(
index
,
list
.
size
()),
pageable
,
list
.
size
());
}
return
new
PageImpl
<>(
list
.
subList
(
index
,
index
+
size
),
pageable
,
list
.
size
());
}
}
}
}
src/main/java/com/example/tyweekly/config/WebMvcConfig.java
浏览文件 @
5bcc993e
...
...
@@ -35,7 +35,7 @@ public class WebMvcConfig {
@Override
public
void
addResourceHandlers
(
ResourceHandlerRegistry
registry
)
{
registry
.
addResourceHandler
(
"/file/**"
)
.
addResourceLocations
(
"file:"
+
"
C:\\Intel\\
"
+
File
.
separator
);
.
addResourceLocations
(
"file:"
+
"
/root/projects/weekly/save
"
+
File
.
separator
);
}
...
...
src/main/java/com/example/tyweekly/controller/UserController.java
浏览文件 @
5bcc993e
...
...
@@ -20,7 +20,6 @@ public class UserController {
@Autowired
private
WeeklyUserService
weeklyUserService
;
@PostMapping
(
"/saveUser"
)
@ApiOperation
(
value
=
"新增用户"
)
public
WeeklyUser
saveOne
(
@RequestBody
WeeklyUser
weeklyUser
){
...
...
src/main/java/com/example/tyweekly/controller/WeeklyController.java
浏览文件 @
5bcc993e
package
com
.
example
.
tyweekly
.
controller
;
import
com.example.tyweekly.entity.PagePojo
;
import
com.example.tyweekly.entity.ReturnPojo
;
import
com.example.tyweekly.entity.WeeklyCondition
;
import
com.example.tyweekly.entity.WeeklyFile
;
import
com.example.tyweekly.service.WeeklyFileService
;
import
io.swagger.annotations.Api
;
import
io.swagger.annotations.ApiOperation
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.http.ResponseEntity
;
import
org.springframework.validation.annotation.Validated
;
import
org.springframework.web.bind.annotation.*
;
import
org.springframework.web.multipart.MultipartFile
;
...
...
@@ -47,8 +46,8 @@ public class WeeklyController {
@PostMapping
(
"/findAllWeekly"
)
@ApiOperation
(
value
=
"周报情况动态查询"
)
public
PagePojo
findAllWeekly
(
@RequestBody
WeeklyCondition
weeklyCondition
){
return
weeklyFileService
.
findAllWeekly
(
weeklyCondition
);
public
ResponseEntity
findAllWeekly
(
@RequestBody
WeeklyCondition
weeklyCondition
){
return
ResponseEntity
.
ok
(
weeklyFileService
.
findAllWeekly
(
weeklyCondition
)
);
}
...
...
@@ -64,17 +63,4 @@ public class WeeklyController {
}
src/main/java/com/example/tyweekly/dao/WeeklyFileDao.java
浏览文件 @
5bcc993e
...
...
@@ -3,9 +3,17 @@ package com.example.tyweekly.dao;
import
com.example.tyweekly.entity.WeeklyFile
;
import
org.springframework.data.jpa.repository.JpaRepository
;
import
org.springframework.data.jpa.repository.JpaSpecificationExecutor
;
import
java.util.List
;
/**
* @author tykj
*/
public
interface
WeeklyFileDao
extends
JpaRepository
<
WeeklyFile
,
Integer
>,
JpaSpecificationExecutor
<
WeeklyFile
>
{
/**
* 根据文件名进行模糊查询
* @param name 文件名
* @return 实体的集合
*/
List
<
WeeklyFile
>
findAllByWeeklyNameLike
(
String
name
);
}
src/main/java/com/example/tyweekly/dao/WeeklyUserDao.java
浏览文件 @
5bcc993e
...
...
@@ -2,10 +2,11 @@ package com.example.tyweekly.dao;
import
com.example.tyweekly.entity.WeeklyUser
;
import
org.springframework.data.jpa.repository.JpaRepository
;
import
org.springframework.data.jpa.repository.JpaSpecificationExecutor
;
/**
* @author tykj
*/
public
interface
WeeklyUserDao
extends
JpaRepository
<
WeeklyUser
,
Integer
>
{
public
interface
WeeklyUserDao
extends
JpaRepository
<
WeeklyUser
,
Integer
>
,
JpaSpecificationExecutor
<
WeeklyUser
>
{
}
src/main/java/com/example/tyweekly/entity/WeeklyCondition.java
浏览文件 @
5bcc993e
...
...
@@ -24,6 +24,9 @@ public class WeeklyCondition {
@ApiModelProperty
(
value
=
"请求数量"
,
example
=
"1"
)
private
Integer
pageSize
;
@ApiModelProperty
(
value
=
"状态"
,
example
=
"ture"
)
private
Boolean
state
;
@ApiModelProperty
(
value
=
"状态"
,
example
=
"{未上交0 已提交1 全部2}"
)
@NotNull
(
message
=
"状态不能为空"
)
private
Integer
status
;
}
src/main/java/com/example/tyweekly/entity/WeeklyFile.java
浏览文件 @
5bcc993e
...
...
@@ -40,7 +40,4 @@ public class WeeklyFile {
@ApiModelProperty
(
value
=
"文件保存路径"
,
example
=
"文件地址"
)
private
String
uploadAddress
;
@ApiModelProperty
(
value
=
"状态"
,
example
=
"ture"
)
private
Boolean
state
;
}
src/main/java/com/example/tyweekly/entity/WeeklyUser.java
浏览文件 @
5bcc993e
...
...
@@ -6,10 +6,8 @@ import lombok.AllArgsConstructor;
import
lombok.Data
;
import
lombok.NoArgsConstructor
;
import
javax.persistence.Entity
;
import
javax.persistence.GeneratedValue
;
import
javax.persistence.GenerationType
;
import
javax.persistence.Id
;
import
javax.persistence.*
;
import
java.util.List
;
/**
* @author tykj
...
...
@@ -31,4 +29,9 @@ public class WeeklyUser {
private
String
userName
;
@ApiModelProperty
(
value
=
"文件"
,
example
=
"小明"
)
@Transient
private
List
<
WeeklyFile
>
files
;
}
src/main/java/com/example/tyweekly/service/WeeklyFileService.java
浏览文件 @
5bcc993e
package
com
.
example
.
tyweekly
.
service
;
import
com.example.tyweekly.entity.PagePojo
;
import
com.example.tyweekly.entity.ReturnPojo
;
import
com.example.tyweekly.entity.WeeklyCondition
;
import
com.example.tyweekly.entity.WeeklyFile
;
import
com.example.tyweekly.entity.*
;
import
org.springframework.data.domain.Page
;
import
org.springframework.web.multipart.MultipartFile
;
import
java.io.FileNotFoundException
;
...
...
@@ -35,7 +33,7 @@ public interface WeeklyFileService {
* @param weeklyCondition
* @return
*/
Page
Pojo
findAllWeekly
(
WeeklyCondition
weeklyCondition
);
Page
<
WeeklyUser
>
findAllWeekly
(
WeeklyCondition
weeklyCondition
);
/**
...
...
src/main/java/com/example/tyweekly/service/impl/WeeklyFileServiceImpl.java
浏览文件 @
5bcc993e
package
com
.
example
.
tyweekly
.
service
.
impl
;
import
com.example.tyweekly.config.PageUtil
;
import
com.example.tyweekly.config.TimedTask
;
import
com.example.tyweekly.dao.WeeklyFileDao
;
import
com.example.tyweekly.dao.WeeklyUserDao
;
...
...
@@ -7,8 +8,10 @@ import com.example.tyweekly.entity.*;
import
com.example.tyweekly.service.WeeklyFileService
;
import
lombok.extern.slf4j.Slf4j
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.beans.factory.annotation.Value
;
import
org.springframework.data.domain.Page
;
import
org.springframework.data.domain.PageRequest
;
import
org.springframework.data.domain.Pageable
;
import
org.springframework.data.jpa.domain.Specification
;
import
org.springframework.stereotype.Service
;
import
org.springframework.web.multipart.MultipartFile
;
...
...
@@ -23,6 +26,8 @@ import java.io.FileOutputStream;
import
java.io.IOException
;
import
java.time.LocalDateTime
;
import
java.util.*
;
import
java.util.function.Function
;
import
java.util.stream.Collectors
;
/**
* @author tykj
...
...
@@ -37,6 +42,12 @@ public class WeeklyFileServiceImpl implements WeeklyFileService {
@Autowired
private
WeeklyUserDao
weeklyUserDao
;
@Value
(
"${file.path}"
)
private
String
download
;
@Value
(
"${file.path1}"
)
private
String
save
;
@Override
public
WeeklyFile
uploadDatum
(
MultipartFile
file
)
throws
IOException
{
//MultipartFile 接收前端传过来的文件
...
...
@@ -51,7 +62,7 @@ public class WeeklyFileServiceImpl implements WeeklyFileService {
}
}
//指定上传路径
String
path
=
"C:\\Intel\\周报文件夹\\"
;
String
path
=
save
;
//拼接成为新文件的路径
String
filePath
=
path
+
oldName
;
//创建新文件对象 指定文件路径为拼接好的路径
...
...
@@ -63,7 +74,7 @@ public class WeeklyFileServiceImpl implements WeeklyFileService {
weeklyFile1
.
setUploadAddress
(
filePath
);
weeklyFile1
.
setWeeklyName
(
oldName
);
weeklyFile1
.
setUploadTime
(
LocalDateTime
.
now
());
weeklyFile1
.
setState
(
false
);
return
weeklyFileDao
.
save
(
weeklyFile1
);
}
...
...
@@ -73,49 +84,53 @@ public class WeeklyFileServiceImpl implements WeeklyFileService {
}
@Override
public
Page
Pojo
findAllWeekly
(
WeeklyCondition
weeklyCondition
)
{
public
Page
<
WeeklyUser
>
findAllWeekly
(
WeeklyCondition
weeklyCondition
)
{
//根据传入的数据,进行分页数据查询
PageRequest
of1
=
PageRequest
.
of
(
weeklyCondition
.
getPage
()-
1
,
weeklyCondition
.
getPageSize
());
Pageable
of1
=
PageRequest
.
of
(
weeklyCondition
.
getPage
(),
weeklyCondition
.
getPageSize
());
Map
<
String
,
WeeklyUser
>
userMap
=
weeklyUserDao
.
findAll
().
stream
().
collect
(
Collectors
.
toMap
(
WeeklyUser:
:
getUserName
,
Function
.
identity
()));
List
<
String
>
userNames
=
new
ArrayList
<>(
userMap
.
keySet
());
//动态查询构造器
Specification
<
WeeklyFile
>
queryCondition
=
new
Specification
<
WeeklyFile
>(){
@Override
public
Predicate
toPredicate
(
Root
<
WeeklyFile
>
root
,
CriteriaQuery
<?>
query
,
CriteriaBuilder
criteriaBuilder
)
{
List
<
Predicate
>
predicateList
=
new
ArrayList
<>();
if
(
weeklyCondition
.
getState
()!=
null
){
predicateList
.
add
(
criteriaBuilder
.
equal
(
root
.
get
(
"state"
),
weeklyCondition
.
getState
()));
List
<
WeeklyFile
>
weeklyFileList
=
weeklyFileDao
.
findAll
();
List
<
WeeklyUser
>
userList
=
new
ArrayList
<>();
int
a
=
0
;
//查询已上交
userNames
.
forEach
(
s
->
{
WeeklyUser
weeklyUser
=
userMap
.
get
(
s
);
List
<
WeeklyFile
>
weeklyFiles
=
new
ArrayList
<>();
weeklyFileList
.
forEach
(
weeklyFile
->
{
if
(
weeklyFile
.
getWeeklyName
().
contains
(
s
)){
//如果存在
weeklyFiles
.
add
(
weeklyFile
);
}
return
criteriaBuilder
.
and
(
predicateList
.
toArray
(
new
Predicate
[
predicateList
.
size
()]));
});
weeklyUser
.
setFiles
(
weeklyFiles
);
userList
.
add
(
weeklyUser
);
});
//做处理
//1 上交的
Integer
status
=
weeklyCondition
.
getStatus
();
List
<
WeeklyUser
>
userList1
=
new
ArrayList
<>();
switch
(
status
){
case
0
:
//未上交
userList1
=
userList
.
stream
().
filter
(
weeklyUser
->
weeklyUser
.
getFiles
().
size
()
==
0
).
collect
(
Collectors
.
toList
());
break
;
//可选
case
1
:
//提交
userList1
=
userList
.
stream
().
filter
(
weeklyUser
->
weeklyUser
.
getFiles
().
size
()
!=
0
).
collect
(
Collectors
.
toList
());
break
;
//可选
//你可以有任意数量的case语句
case
2
:
//提交
userList1
=
userList
;
break
;
//可选
default
:
//可选
userList1
=
userList
;
//userList
}
};
Page
<
WeeklyFile
>
all
=
weeklyFileDao
.
findAll
(
queryCondition
,
of1
);
List
<
WeeklyFile
>
content
=
all
.
getContent
();
List
<
WeeklyFileVO
>
weeklyFileVOList
=
new
ArrayList
<>();
List
<
WeeklyUser
>
userList
=
weeklyUserDao
.
findAll
();
for
(
WeeklyUser
weeklyUser
:
userList
)
{
String
userName
=
weeklyUser
.
getUserName
();
WeeklyFileVO
weeklyFileVO
=
new
WeeklyFileVO
();
weeklyFileVO
.
setUserName
(
userName
);
weeklyFileVO
.
setState
(
false
);
for
(
WeeklyFile
weeklyFile
:
content
)
{
if
(
weeklyFile
.
getWeeklyName
().
contains
(
userName
)){
weeklyFileVO
.
setState
(
true
);
WeeklyFile
weeklyFile1
=
weeklyFileDao
.
findById
(
weeklyFile
.
getId
()).
get
();
weeklyFile1
.
setState
(
true
);
weeklyFileDao
.
save
(
weeklyFile1
);
weeklyFileVO
.
setUploadTime
(
weeklyFile
.
getUploadTime
());
weeklyFileVO
.
setWeeklyName
(
weeklyFile
.
getWeeklyName
());
}
}
weeklyFileVOList
.
add
(
weeklyFileVO
);
}
PagePojo
pagePojo
=
new
PagePojo
();
pagePojo
.
setPage
(
weeklyCondition
.
getPage
());
pagePojo
.
setPageSize
(
weeklyCondition
.
getPageSize
());
pagePojo
.
setTotal
(
all
.
getTotalElements
());
pagePojo
.
setWeeklyFileVOList
(
weeklyFileVOList
);
return
pagePojo
;
//做物理分页
Page
<
WeeklyUser
>
perPage
=
PageUtil
.
getPerPage
(
of1
.
getPageNumber
()-
1
,
of1
.
getPageSize
(),
userList1
,
of1
);
return
perPage
;
}
@Override
...
...
@@ -125,7 +140,7 @@ public class WeeklyFileServiceImpl implements WeeklyFileService {
for
(
WeeklyFile
weeklyFile
:
all
)
{
fileList
.
add
(
new
File
(
weeklyFile
.
getUploadAddress
()));
}
FileOutputStream
fos2
=
new
FileOutputStream
(
new
File
(
"C:\\Intel\\周报文件夹\\ty-weekly.zip"
));
FileOutputStream
fos2
=
new
FileOutputStream
(
new
File
(
download
));
TimedTask
.
toZip
(
fileList
,
fos2
);
}
...
...
src/main/resources/application.properties
浏览文件 @
5bcc993e
server.port
=
80
88
server.port
=
80
96
# mysql jdbc
spring.datasource.url
=
jdbc:mysql://
localhost:3306/user
?serverTimezone=Asia/Shanghai&characterEncoding=UTF-8&zeroDateTimeBehavior=convertToNull&useSSL=false
spring.datasource.url
=
jdbc:mysql://
192.168.100.249:3306/weekly
?serverTimezone=Asia/Shanghai&characterEncoding=UTF-8&zeroDateTimeBehavior=convertToNull&useSSL=false
spring.datasource.driver-class-name
=
com.mysql.cj.jdbc.Driver
spring.datasource.username
=
root
spring.datasource.password
=
123456
spring.datasource.password
=
root
spring.jpa.hibernate.ddl-auto
=
update
spring.jpa.show-sql
=
true
spring.jpa.properties.hibernate.format_sql
=
true
file.path
=
/root/projects/weekly/download
file.path1
=
/root/projects/weekly/save
编写
预览
Markdown
格式
0%
重试
或
添加新文件
添加附件
取消
您添加了
0
人
到此讨论。请谨慎行事。
请先完成此评论的编辑!
取消
请
注册
或者
登录
后发表评论