Skip to content
项目
群组
代码片段
帮助
当前项目
正在载入...
登录 / 注册
切换导航面板
D
device-back
项目
项目
详情
活动
周期分析
仓库
仓库
文件
提交
分支
标签
贡献者
图表
比较
统计图
议题
1
议题
1
列表
看板
标记
里程碑
合并请求
0
合并请求
0
CI / CD
CI / CD
流水线
作业
日程
统计图
Wiki
Wiki
代码片段
代码片段
成员
成员
折叠边栏
关闭边栏
活动
图像
聊天
创建新问题
作业
提交
问题看板
Open sidebar
Matrix
device-back
Commits
195d053e
提交
195d053e
authored
9月 29, 2020
作者:
Matrix
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
[决算模块] 完成决算excel和分页
上级
4c4dd861
隐藏空白字符变更
内嵌
并排
正在显示
5 个修改的文件
包含
141 行增加
和
26 行删除
+141
-26
.gitignore
.gitignore
+2
-0
FinalCheckController.java
...ev/device/finalcheck/controller/FinalCheckController.java
+124
-17
FinalCheckService.java
...tykj/dev/device/finalcheck/service/FinalCheckService.java
+4
-2
FinalCheckServiceImpl.java
...device/finalcheck/service/impl/FinalCheckServiceImpl.java
+11
-7
finalCheck.xlsx
dev-union/src/main/resources/excelTemplate/finalCheck.xlsx
+0
-0
没有找到文件。
.gitignore
浏览文件 @
195d053e
...
...
@@ -5,6 +5,7 @@ target/
!**/src/test/**
### STS ###
\~*.xlsx
.apt_generated
.classpath
.factorypath
...
...
@@ -29,3 +30,4 @@ build/
### VS Code ###
.vscode/
/dev-union/src/main/resources/excelTemplate/~$finalCheck.xlsx
dev-finalcheck/src/main/java/com/tykj/dev/device/finalcheck/controller/FinalCheckController.java
浏览文件 @
195d053e
...
...
@@ -2,22 +2,33 @@ package com.tykj.dev.device.finalcheck.controller;
import
com.tykj.dev.config.swagger.AutoDocument
;
import
com.tykj.dev.device.finalcheck.entity.other.TimeParam
;
import
com.tykj.dev.device.finalcheck.entity.vo.FinalDetailVo
;
import
com.tykj.dev.device.finalcheck.entity.vo.FinalReportVo
;
import
com.tykj.dev.device.finalcheck.service.FinalCheckService
;
import
com.tykj.dev.misc.base.ResultObj
;
import
com.tykj.dev.misc.exception.ApiException
;
import
com.tykj.dev.misc.utils.ResultUtil
;
import
io.swagger.annotations.Api
;
import
io.swagger.annotations.ApiOperation
;
import
lombok.SneakyThrows
;
import
lombok.extern.slf4j.Slf4j
;
import
org.apache.poi.ss.usermodel.Workbook
;
import
org.jeecgframework.poi.excel.ExcelExportUtil
;
import
org.jeecgframework.poi.excel.entity.TemplateExportParams
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.
core.io.ClassPathResourc
e
;
import
org.springframework.
data.domain.Pag
e
;
import
org.springframework.http.ResponseEntity
;
import
org.springframework.web.bind.annotation.*
;
import
javax.servlet.http.HttpServletRequest
;
import
javax.servlet.http.HttpServletResponse
;
import
java.io.BufferedOutputStream
;
import
java.io.IOException
;
import
java.io.InputStream
;
import
java.util.List
;
import
java.io.OutputStream
;
import
java.text.SimpleDateFormat
;
import
java.util.*
;
import
static
com
.
tykj
.
dev
.
misc
.
utils
.
TimestampUtil
.
localDateToDate
;
/**
* finalCheckController.
...
...
@@ -35,10 +46,47 @@ public class FinalCheckController {
@Autowired
private
FinalCheckService
fcService
;
public
static
void
downloadExcel
(
HttpServletRequest
request
,
HttpServletResponse
response
,
Workbook
wb
,
String
excelName
)
{
// 判断数据
if
(
wb
==
null
)
{
throw
new
ApiException
(
"workbook can not be null!"
);
}
// 重置响应对象
response
.
reset
();
// 当前日期,用于导出文件名称
SimpleDateFormat
sdf
=
new
SimpleDateFormat
(
"yyyyMMdd"
);
String
dateStr
=
excelName
+
sdf
.
format
(
new
Date
())
+
".xls"
;
// 指定下载的文件名--设置响应头
response
.
addHeader
(
"Content-Disposition"
,
"attachment;filename="
+
dateStr
);
response
.
setContentType
(
"application/octet-stream;charset=UTF-8"
);
response
.
setHeader
(
"Pragma"
,
"no-cache"
);
response
.
setDateHeader
(
"Expires"
,
0
);
response
.
setHeader
(
"Access-Control-Allow-Origin"
,
request
.
getHeader
(
"Origin"
));
response
.
setHeader
(
"Access-Control-Allow-Credentials"
,
"true"
);
response
.
setHeader
(
"Access-Control-Allow-Methods"
,
"POST, GET, OPTIONS, PUT, PATCH, DELETE"
);
response
.
setHeader
(
"Access-Control-Max-Age"
,
"3600"
);
response
.
setHeader
(
"Access-Control-Allow-Headers"
,
"Origin, X-Requested-With, Content-Type, Accept"
);
// 写出数据输出流到页面
try
{
OutputStream
output
=
response
.
getOutputStream
();
BufferedOutputStream
bufferedOutPut
=
new
BufferedOutputStream
(
output
);
wb
.
write
(
bufferedOutPut
);
bufferedOutPut
.
flush
();
bufferedOutPut
.
close
();
output
.
close
();
}
catch
(
IOException
e
)
{
e
.
printStackTrace
();
}
}
@GetMapping
(
"/reports"
)
@ApiOperation
(
value
=
"查询所有决算报告(不附带详情数据)"
)
public
ResponseEntity
<
ResultObj
<
List
<
FinalReportVo
>>>
findAllReports
(
String
keyword
)
{
return
ResultUtil
.
success
(
fcService
.
findAllWithoutDetail
(
keyword
));
public
ResponseEntity
<
ResultObj
<
Page
<
FinalReportVo
>>>
findAllReports
(
@RequestParam
String
keyword
,
@RequestParam
(
required
=
false
,
defaultValue
=
"1"
)
int
page
,
@RequestParam
(
required
=
false
,
defaultValue
=
"10"
)
int
size
)
{
return
ResultUtil
.
success
(
fcService
.
findAllWithoutDetail
(
keyword
,
--
page
,
size
));
}
@GetMapping
(
"/{id}"
)
...
...
@@ -47,14 +95,6 @@ public class FinalCheckController {
return
ResultUtil
.
success
(
fcService
.
findReportById
(
id
));
}
@GetMapping
(
"/test"
)
public
ResponseEntity
test
()
throws
IOException
{
ClassPathResource
classPathResource
=
new
ClassPathResource
(
"excleTemplate/test.xlsx"
);
InputStream
inputStream
=
classPathResource
.
getInputStream
();
System
.
out
.
println
(
inputStream
.
getClass
());
return
ResponseEntity
.
ok
(
"ok"
);
}
@PostMapping
(
"/reports"
)
@ApiOperation
(
value
=
"生成决算报告"
)
public
ResponseEntity
<
ResultObj
<
FinalReportVo
>>
generateReport
(
@RequestBody
TimeParam
time
)
{
...
...
@@ -62,11 +102,78 @@ public class FinalCheckController {
return
ResultUtil
.
success
(
finalReportVo
);
}
@SneakyThrows
@PostMapping
(
"/excel/{id}"
)
@ApiOperation
(
value
=
"根据id导出对应的excel数据"
)
public
ResponseEntity
<
ResultObj
<
FinalReportVo
>>
exportExcel
(
@PathVariable
Integer
id
,
HttpServletResponse
response
)
{
return
ResultUtil
.
success
(
new
FinalReportVo
());
public
void
exportExcel
(
@PathVariable
Integer
id
,
HttpServletRequest
request
,
HttpServletResponse
response
)
throws
IOException
{
FinalReportVo
reportVo
=
fcService
.
findReportById
(
id
);
TemplateExportParams
params
=
new
TemplateExportParams
();
Map
<
String
,
Object
>
map
=
new
HashMap
<>();
map
.
put
(
"name"
,
reportVo
.
getName
());
map
.
put
(
"unitName"
,
reportVo
.
getUnitName
());
map
.
put
(
"startTime"
,
localDateToDate
(
reportVo
.
getStartTime
()));
map
.
put
(
"endTime"
,
localDateToDate
(
reportVo
.
getEndTime
()));
map
.
put
(
"reportTime"
,
localDateToDate
(
reportVo
.
getReportTime
().
toLocalDate
()));
List
<
Map
<
String
,
String
>>
listMap
=
new
ArrayList
<>();
for
(
int
i
=
0
;
i
<
reportVo
.
getDetails
().
size
();
i
++)
{
Map
<
String
,
String
>
lm
=
new
HashMap
<>();
FinalDetailVo
detail
=
reportVo
.
getDetails
().
get
(
i
);
lm
.
put
(
"order"
,
i
+
1
+
""
);
lm
.
put
(
"model"
,
detail
.
getModel
());
lm
.
put
(
"type"
,
detail
.
getType
()
+
""
);
lm
.
put
(
"vertical"
,
detail
.
getVertical
()
+
""
);
lm
.
put
(
"horizontal"
,
detail
.
getHorizontal
()
+
""
);
lm
.
put
(
"commission"
,
detail
.
getCommission
()
+
""
);
lm
.
put
(
"other"
,
detail
.
getOther
()
+
""
);
lm
.
put
(
"total"
,
detail
.
getTotal
()
+
""
);
lm
.
put
(
"hosting"
,
detail
.
getHosting
()
+
""
);
lm
.
put
(
"received"
,
detail
.
getReceived
()
+
""
);
lm
.
put
(
"sending"
,
detail
.
getSending
()
+
""
);
lm
.
put
(
"scrapped"
,
detail
.
getScrapped
()
+
""
);
listMap
.
add
(
lm
);
}
if
(
listMap
.
size
()
<=
15
)
{
for
(
int
i
=
0
;
i
<
15
-
listMap
.
size
();
i
++)
{
Map
<
String
,
String
>
lm
=
new
HashMap
<>();
lm
.
put
(
"order"
,
" "
);
lm
.
put
(
"model"
,
""
);
lm
.
put
(
"type"
,
""
);
lm
.
put
(
"vertical"
,
""
);
lm
.
put
(
"horizontal"
,
""
);
lm
.
put
(
"commission"
,
""
);
lm
.
put
(
"other"
,
""
);
lm
.
put
(
"total"
,
""
);
lm
.
put
(
"hosting"
,
""
);
lm
.
put
(
"received"
,
""
);
lm
.
put
(
"sending"
,
""
);
lm
.
put
(
"scrapped"
,
""
);
listMap
.
add
(
lm
);
}
}
map
.
put
(
"list"
,
listMap
);
params
.
setTemplateUrl
(
"excelTemplate/finalCheck.xlsx"
);
Workbook
book
=
ExcelExportUtil
.
exportExcel
(
params
,
map
);
//
// File savefile = new File("/Users/matrix/local-doc/excel");
// if (!savefile.exists()) {
// boolean result = savefile.mkdirs();
// System.out.println("目录不存在,进行创建,创建" + (result ? "成功!" : "失败!"));
// }
// FileOutputStream fos = new FileOutputStream("/Users/matrix/local-doc/excel/templateMapResult.xlsx");
// book.write(fos);
// fos.close();
downloadExcel
(
request
,
response
,
book
,
"Report"
);
}
}
dev-finalcheck/src/main/java/com/tykj/dev/device/finalcheck/service/FinalCheckService.java
浏览文件 @
195d053e
package
com
.
tykj
.
dev
.
device
.
finalcheck
.
service
;
import
com.tykj.dev.device.finalcheck.entity.vo.FinalReportVo
;
import
org.springframework.data.domain.Page
;
import
java.time.LocalDate
;
import
java.util.List
;
/**
* FinalCheckService.
...
...
@@ -24,9 +24,11 @@ public interface FinalCheckService {
/**
* 根据关键字查询报告列表(不附带detail)
* @param keyword 要查询的字
* @param page
* @param size
* @return {@link FinalReportVo} 's List
*/
List
<
FinalReportVo
>
findAllWithoutDetail
(
String
keyword
);
Page
<
FinalReportVo
>
findAllWithoutDetail
(
String
keyword
,
int
page
,
int
size
);
/**
* 根据主键id查询报告
...
...
dev-finalcheck/src/main/java/com/tykj/dev/device/finalcheck/service/impl/FinalCheckServiceImpl.java
浏览文件 @
195d053e
...
...
@@ -15,6 +15,9 @@ import com.tykj.dev.device.usereport.subject.vo.DeviceStatistics;
import
com.tykj.dev.misc.exception.ApiException
;
import
org.apache.commons.lang3.StringUtils
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.data.domain.Page
;
import
org.springframework.data.domain.PageRequest
;
import
org.springframework.data.domain.Sort
;
import
org.springframework.data.jpa.domain.Specification
;
import
org.springframework.stereotype.Service
;
...
...
@@ -30,6 +33,7 @@ import java.util.stream.Collectors;
import
static
com
.
tykj
.
dev
.
misc
.
utils
.
TimestampUtil
.
localDateToDate
;
import
static
java
.
util
.
stream
.
Collectors
.
groupingBy
;
import
static
java
.
util
.
stream
.
Collectors
.
toMap
;
import
static
org
.
springframework
.
data
.
domain
.
Sort
.
Direction
.*;
/**
* FinalCheckServiceImpl.
...
...
@@ -93,11 +97,10 @@ public class FinalCheckServiceImpl implements FinalCheckService {
}
@Override
public
List
<
FinalReportVo
>
findAllWithoutDetail
(
String
keyword
)
{
public
Page
<
FinalReportVo
>
findAllWithoutDetail
(
String
keyword
,
int
page
,
int
size
)
{
if
(
StringUtils
.
isEmpty
(
keyword
))
{
return
reportDao
.
findAll
().
stream
()
.
map
(
report
->
report
.
toVo
(
Collections
.
emptyList
()))
.
collect
(
Collectors
.
toList
());
return
reportDao
.
findAll
(
PageRequest
.
of
(
page
,
size
,
Sort
.
by
(
ASC
,
"id"
)))
.
map
(
report
->
report
.
toVo
(
Collections
.
emptyList
()));
}
//构造查询器
...
...
@@ -107,9 +110,10 @@ public class FinalCheckServiceImpl implements FinalCheckService {
.
build
();
return
reportDao
.
findAll
(
pred
).
stream
()
.
map
(
report
->
report
.
toVo
(
Collections
.
emptyList
()))
.
collect
(
Collectors
.
toList
());
return
reportDao
.
findAll
(
pred
,
PageRequest
.
of
(
page
,
size
,
Sort
.
by
(
ASC
,
"id"
)))
.
map
(
report
->
report
.
toVo
(
Collections
.
emptyList
()));
}
@Override
...
...
dev-union/src/main/resources/excelTemplate/finalCheck.xlsx
0 → 100644
浏览文件 @
195d053e
File added
编写
预览
Markdown
格式
0%
重试
或
添加新文件
添加附件
取消
您添加了
0
人
到此讨论。请谨慎行事。
请先完成此评论的编辑!
取消
请
注册
或者
登录
后发表评论