Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
A
amos-boot-biz
Project
Project
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
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
项目统一框架
amos-boot-biz
Commits
af7ac8fb
Commit
af7ac8fb
authored
May 09, 2022
by
wujiang
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
提交预览代码
parent
6c083d21
Hide whitespace changes
Inline
Side-by-side
Showing
5 changed files
with
130 additions
and
17 deletions
+130
-17
MyByteArrayMultipartFile.java
...n/equipmanage/common/entity/MyByteArrayMultipartFile.java
+81
-0
WordTemplateUtils.java
...m/yeejoin/equipmanage/common/utils/WordTemplateUtils.java
+7
-12
FirePatrolReportController.java
...in/equipmanage/controller/FirePatrolReportController.java
+6
-1
FilePatrolReportServiceImpl.java
...equipmanage/service/impl/FilePatrolReportServiceImpl.java
+36
-4
sellPlan.pdf
amos-boot-system-equip/sellPlan.pdf
+0
-0
No files found.
amos-boot-module/amos-boot-module-api/amos-boot-module-equip-api/src/main/java/com/yeejoin/equipmanage/common/entity/MyByteArrayMultipartFile.java
0 → 100644
View file @
af7ac8fb
package
com
.
yeejoin
.
equipmanage
.
common
.
entity
;
import
java.io.ByteArrayInputStream
;
import
java.io.File
;
import
java.io.FileOutputStream
;
import
java.io.IOException
;
import
java.io.InputStream
;
import
java.io.OutputStream
;
import
org.springframework.web.multipart.MultipartFile
;
import
lombok.NonNull
;
public
class
MyByteArrayMultipartFile
implements
MultipartFile
{
private
String
name
;
private
String
originalFilename
;
private
String
contentType
;
public
MyByteArrayMultipartFile
(
String
name
,
String
originalFilename
,
String
contentType
,
@NonNull
byte
[]
bytes
)
{
super
();
this
.
name
=
name
;
this
.
originalFilename
=
originalFilename
;
this
.
contentType
=
contentType
;
this
.
bytes
=
bytes
;
}
public
MyByteArrayMultipartFile
()
{
super
();
// TODO Auto-generated constructor stub
}
public
String
getName
()
{
return
name
;
}
public
String
getOriginalFilename
()
{
return
originalFilename
;
}
public
String
getContentType
()
{
return
contentType
;
}
public
byte
[]
getBytes
()
{
return
bytes
;
}
@NonNull
byte
[]
bytes
;
@Override
public
boolean
isEmpty
()
{
return
bytes
.
length
==
0
;
}
@Override
public
long
getSize
()
{
return
bytes
.
length
;
}
@Override
public
InputStream
getInputStream
()
{
return
new
ByteArrayInputStream
(
bytes
);
}
@Override
public
void
transferTo
(
File
destination
)
throws
IOException
{
OutputStream
outputStream
=
null
;
try
{
outputStream
=
new
FileOutputStream
(
destination
);
outputStream
.
write
(
bytes
);
}
finally
{
if
(
outputStream
!=
null
)
{
outputStream
.
close
();
}
}
}
}
amos-boot-module/amos-boot-module-api/amos-boot-module-equip-api/src/main/java/com/yeejoin/equipmanage/common/utils/WordTemplateUtils.java
View file @
af7ac8fb
...
...
@@ -25,6 +25,7 @@ import javax.servlet.http.HttpServletResponse;
import
org.apache.commons.fileupload.FileItem
;
import
org.apache.commons.fileupload.FileItemFactory
;
import
org.apache.commons.fileupload.disk.DiskFileItemFactory
;
import
org.apache.commons.io.IOUtils
;
import
org.springframework.core.io.support.PropertiesLoaderUtils
;
import
org.springframework.http.MediaType
;
...
...
@@ -83,7 +84,7 @@ public class WordTemplateUtils {
response
.
setCharacterEncoding
(
"utf-8"
);
response
.
setContentType
(
"application/msword"
);
// 设置浏览器以下载的方式处理该文件名
String
fileName
=
(
StringUtil
.
isNotEmpty
(
title
)
?
title
:
FileUtil
.
getUUID
())
+
".
pdf
"
;
String
fileName
=
(
StringUtil
.
isNotEmpty
(
title
)
?
title
:
FileUtil
.
getUUID
())
+
".
doc
"
;
response
.
setHeader
(
"Content-Disposition"
,
"attachment;filename="
.
concat
(
String
.
valueOf
(
URLEncoder
.
encode
(
fileName
,
"UTF-8"
))));
...
...
@@ -105,14 +106,15 @@ public class WordTemplateUtils {
}
}
public
File
Item
getWordFileItem
(
Map
map
,
String
title
,
String
ftlFile
)
throws
IOException
{
public
File
getWordFileItem
(
Map
map
,
String
title
,
String
ftlFile
)
throws
IOException
{
URL
resourcePath
=
this
.
getClass
().
getClassLoader
().
getResource
(
"ftl"
);
configuration
.
setDirectoryForTemplateLoading
(
new
File
(
resourcePath
.
getPath
()));
Template
freemarkerTemplate
=
configuration
.
getTemplate
(
ftlFile
);
FileItemFactory
factory
=
new
DiskFileItemFactory
(
16
,
null
);
String
textFieldName
=
"file"
;
FileItem
item
=
factory
.
createItem
(
textFieldName
,
MediaType
.
MULTIPART_FORM_DATA_VALUE
,
true
,
title
);
File
file
=
null
;
File
filepdf
=
new
File
(
"sellPlan.pdf"
);
int
bytesRead
=
0
;
byte
[]
buffer
=
new
byte
[
10
*
1024
*
1024
];
InputStream
fin
=
null
;
...
...
@@ -121,12 +123,9 @@ public class WordTemplateUtils {
// 调用工具类的createDoc方法生成Word文档
file
=
createDoc
(
map
,
freemarkerTemplate
);
fin
=
new
FileInputStream
(
file
);
os
=
item
.
getOutputStream
(
);
os
=
new
FileOutputStream
(
filepdf
);
wordTopdfByAspose
(
fin
,
os
);
while
((
bytesRead
=
fin
.
read
(
buffer
,
0
,
8192
))
!=
-
1
)
{
os
.
write
(
buffer
,
0
,
bytesRead
);
}
return
item
;
return
filepdf
;
}
finally
{
if
(
fin
!=
null
){
fin
.
close
();}
...
...
@@ -155,7 +154,6 @@ public class WordTemplateUtils {
}
public
boolean
wordTopdfByAspose
(
InputStream
inputStream
,
OutputStream
outputStream
)
{
// 验证License 若不验证则转化出的pdf文档会有水印产生
if
(!
getLicense
())
{
return
false
;
...
...
@@ -163,11 +161,8 @@ public class WordTemplateUtils {
try
{
// 将源文件保存在com.aspose.words.Document中,具体的转换格式依靠里面的save方法
com
.
aspose
.
words
.
Document
doc
=
new
com
.
aspose
.
words
.
Document
(
inputStream
);
// 全面支持DOC, DOCX, OOXML, RTF HTML, OpenDocument, PDF,EPUB, XPS, SWF 相互转换
doc
.
save
(
outputStream
,
SaveFormat
.
PDF
);
}
catch
(
Exception
e
)
{
e
.
printStackTrace
();
return
false
;
...
...
amos-boot-module/amos-boot-module-biz/amos-boot-module-equip-biz/src/main/java/com/yeejoin/equipmanage/controller/FirePatrolReportController.java
View file @
af7ac8fb
...
...
@@ -13,11 +13,13 @@ import org.springframework.web.bind.annotation.GetMapping;
import
org.springframework.web.bind.annotation.RequestMapping
;
import
org.springframework.web.bind.annotation.RequestParam
;
import
org.springframework.web.bind.annotation.RestController
;
import
org.typroject.tyboot.core.foundation.context.RequestContext
;
import
org.typroject.tyboot.core.foundation.enumeration.UserType
;
import
org.typroject.tyboot.core.restful.doc.TycloudOperation
;
import
com.baomidou.mybatisplus.core.metadata.IPage
;
import
com.baomidou.mybatisplus.extension.plugins.pagination.Page
;
import
com.yeejoin.amos.boot.biz.common.controller.BaseController
;
import
com.yeejoin.equipmanage.common.dto.AnalysisReportLogDto
;
import
com.yeejoin.equipmanage.common.entity.AnalysisReportLog
;
import
com.yeejoin.equipmanage.service.IFirePatrolReportService
;
...
...
@@ -35,7 +37,7 @@ import lombok.extern.slf4j.Slf4j;
@Api
(
tags
=
"消防巡查报表Api"
)
@RequestMapping
(
value
=
"/fire-patrol-report"
)
@Slf4j
public
class
FirePatrolReportController
{
public
class
FirePatrolReportController
extends
BaseController
{
@Autowired
IFirePatrolReportService
iFirePatrolReportService
;
...
...
@@ -57,6 +59,9 @@ public class FirePatrolReportController {
@ApiParam
(
value
=
"换流站编码"
,
required
=
true
)
@RequestParam
String
stationCode
,
@ApiParam
(
value
=
"开始日期"
,
required
=
true
)
@RequestParam
@DateTimeFormat
(
pattern
=
"yyyy-MM-dd"
)
Date
startDate
,
@ApiParam
(
value
=
"结束日期"
,
required
=
true
)
@RequestParam
@DateTimeFormat
(
pattern
=
"yyyy-MM-dd"
)
Date
endDate
)
{
RequestContext
.
setProduct
(
getProduct
());
RequestContext
.
setAppKey
(
getAppKey
());
RequestContext
.
setToken
(
getToken
());
return
iFirePatrolReportService
.
preview
(
stationCode
,
startDate
,
endDate
);
}
...
...
amos-boot-module/amos-boot-module-biz/amos-boot-module-equip-biz/src/main/java/com/yeejoin/equipmanage/service/impl/FilePatrolReportServiceImpl.java
View file @
af7ac8fb
...
...
@@ -4,6 +4,8 @@ import java.awt.Color;
import
java.awt.Font
;
import
java.awt.RenderingHints
;
import
java.awt.image.BufferedImage
;
import
java.io.File
;
import
java.io.FileInputStream
;
import
java.io.IOException
;
import
java.text.SimpleDateFormat
;
import
java.time.LocalDateTime
;
...
...
@@ -12,6 +14,7 @@ import java.util.ArrayList;
import
java.util.Base64
;
import
java.util.Date
;
import
java.util.HashMap
;
import
java.util.Iterator
;
import
java.util.List
;
import
java.util.Map
;
...
...
@@ -19,6 +22,7 @@ import javax.servlet.http.HttpServletRequest;
import
javax.servlet.http.HttpServletResponse
;
import
org.apache.commons.fileupload.FileItem
;
import
org.apache.commons.io.IOUtils
;
import
org.jfree.chart.ChartFactory
;
import
org.jfree.chart.ChartUtilities
;
import
org.jfree.chart.JFreeChart
;
...
...
@@ -30,6 +34,7 @@ import org.jfree.data.general.DefaultPieDataset;
import
org.jfree.ui.RectangleEdge
;
import
org.jfree.ui.RectangleInsets
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.mock.web.MockMultipartFile
;
import
org.springframework.stereotype.Service
;
import
org.springframework.web.multipart.MultipartFile
;
import
org.springframework.web.multipart.commons.CommonsMultipartFile
;
...
...
@@ -40,6 +45,7 @@ import com.github.xiaoymin.knife4j.core.util.StrUtil;
import
com.yeejoin.amos.component.feign.model.FeignClientResult
;
import
com.yeejoin.amos.feign.systemctl.Systemctl
;
import
com.yeejoin.equipmanage.common.dto.AnalysisReportLogDto
;
import
com.yeejoin.equipmanage.common.entity.MyByteArrayMultipartFile
;
import
com.yeejoin.equipmanage.common.enums.WordTemplateTypeEum
;
import
com.yeejoin.equipmanage.common.exception.BaseException
;
import
com.yeejoin.equipmanage.common.exception.CommonException
;
...
...
@@ -297,15 +303,41 @@ public class FilePatrolReportServiceImpl implements IFirePatrolReportService {
public
String
preview
(
String
code
,
Date
startDate
,
Date
endDate
)
{
WordTemplateUtils
instance
=
WordTemplateUtils
.
getInstance
();
Map
<
String
,
Object
>
map
=
getWordMap
(
code
,
startDate
,
endDate
);
String
urlString
=
""
;
try
{
//instance.pdfCreate(map, (String) map.get("document_number"), WordTemplateTypeEum.firePatrolReport.getTemplateFile());
FileItem
item
=
instance
.
getWordFileItem
(
map
,(
String
)
map
.
get
(
"document_number"
),
WordTemplateTypeEum
.
firePatrolReport
.
getTemplateFile
());
MultipartFile
file
=
new
CommonsMultipartFile
(
item
);
FeignClientResult
<
java
.
util
.
Map
<
String
,
String
>>
result
=
Systemctl
.
fileStorageClient
.
updateCommonFile
(
file
);
File
filepdf
=
instance
.
getWordFileItem
(
map
,(
String
)
map
.
get
(
"document_number"
),
WordTemplateTypeEum
.
firePatrolReport
.
getTemplateFile
());
//MultipartFile multipartFile = new CommonsMultipartFile(item);
filepdf
.
getAbsolutePath
();
// File file = new File("F:\\application-dev.yml");
// FileInputStream input = new FileInputStream(filepdf);
MultipartFile
multipartFile
=
new
MyByteArrayMultipartFile
(
"file"
,
"file.pdf"
,
"application/pdf"
,
file2byte
(
filepdf
));
FeignClientResult
<
java
.
util
.
Map
<
String
,
String
>>
result
=
Systemctl
.
fileStorageClient
.
updateCommonFile
(
multipartFile
);
if
(
result
!=
null
)
{
Iterator
<
String
>
it
=
result
.
getResult
().
keySet
().
iterator
();
while
(
it
.
hasNext
())
{
urlString
=
it
.
next
();
}
}
}
catch
(
IOException
e
)
{
e
.
printStackTrace
();
}
return
null
;
return
urlString
;
}
public
static
byte
[]
file2byte
(
File
file
)
{
try
{
FileInputStream
in
=
new
FileInputStream
(
file
);
//当文件没有结束时,每次读取一个字节显示
byte
[]
data
=
new
byte
[
in
.
available
()];
in
.
read
(
data
);
in
.
close
();
return
data
;
}
catch
(
Exception
e
)
{
e
.
printStackTrace
();
return
null
;
}
}
// @Override
...
...
amos-boot-system-equip/sellPlan.pdf
0 → 100644
View file @
af7ac8fb
File added
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