Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
P
patzn-cloud-service-soil
Overview
Overview
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
wangweidong
patzn-cloud-service-soil
Commits
ebe46889
Commit
ebe46889
authored
Mar 20, 2021
by
wangweidong
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
土工平台修改
parent
e2233e1f
Hide whitespace changes
Inline
Side-by-side
Showing
4 changed files
with
291 additions
and
226 deletions
+291
-226
CollectUtil.java
...java/com/patzn/cloud/service/lims/common/CollectUtil.java
+56
-2
SoilExpReportServiceImpl.java
...vice/lims/soil/service/impl/SoilExpReportServiceImpl.java
+233
-224
SoilExperimentServiceImpl.java
...ice/lims/soil/service/impl/SoilExperimentServiceImpl.java
+2
-0
AttachmentTemplateSZYS.xlsx
...ain/resources/templates/excel/AttachmentTemplateSZYS.xlsx
+0
-0
No files found.
src/main/java/com/patzn/cloud/service/lims/common/CollectUtil.java
View file @
ebe46889
...
@@ -13,15 +13,69 @@ import java.util.List;
...
@@ -13,15 +13,69 @@ import java.util.List;
public
class
CollectUtil
{
public
class
CollectUtil
{
public
static
void
main
(
String
[]
args
)
{
public
static
void
main
(
String
[]
args
)
{
File
file
=
new
File
(
"D://
界限含水率(联合测定)S-1
.txt"
);
File
file
=
new
File
(
"D://
颗粒分析试验 GB SieveS-99
.txt"
);
try
{
try
{
FileInputStream
io
=
new
FileInputStream
(
file
);
FileInputStream
io
=
new
FileInputStream
(
file
);
txt2String
Wuxing
(
io
);
txt2String
KeliFenxi
(
io
);
}
catch
(
Exception
e
){
}
catch
(
Exception
e
){
}
}
}
}
public
static
List
<
SoilExperimentCollectDataVO
>
txt2StringKeliFenxi
(
InputStream
io
){
StringBuilder
result
=
new
StringBuilder
();
List
<
SoilExperimentCollectDataVO
>
dataList
=
new
ArrayList
<>();
try
{
InputStreamReader
inputReader
=
new
InputStreamReader
(
io
,
"GBK"
);
BufferedReader
brCheck
=
new
BufferedReader
(
inputReader
);
//构造一个BufferedReader类来读取文件
BufferedReader
br
=
new
BufferedReader
(
inputReader
);
//构造一个BufferedReader类来读取文件
String
s
=
null
;
StringBuffer
sbAll
=
new
StringBuffer
();
List
<
String
>
allStringList
=
new
ArrayList
<>();
String
gcbh
=
""
;
String
sampleCode
=
""
;
while
((
s
=
brCheck
.
readLine
())!=
null
){
// s = s.replace("─","").replace("┌","").
// replace("┬","").replace("┐","").
// replace("├","").replace("┼","").
// replace("┴","").replace("└","").
// replace("┘","").replace("┤","").
// replace("─","").replace("─","");
System
.
out
.
println
(
s
);
allStringList
.
add
(
s
);
String
content
=
s
.
replace
(
" "
,
""
);
sbAll
.
append
(
content
);
}
System
.
out
.
println
();
System
.
out
.
println
(
sampleCode
);
}
catch
(
Exception
e
){
}
return
dataList
;
}
public
static
List
<
SoilExperimentCollectDataVO
>
txt2StringWuxing
(
InputStream
io
){
public
static
List
<
SoilExperimentCollectDataVO
>
txt2StringWuxing
(
InputStream
io
){
StringBuilder
result
=
new
StringBuilder
();
StringBuilder
result
=
new
StringBuilder
();
List
<
SoilExperimentCollectDataVO
>
dataList
=
new
ArrayList
<>();
List
<
SoilExperimentCollectDataVO
>
dataList
=
new
ArrayList
<>();
...
...
src/main/java/com/patzn/cloud/service/lims/soil/service/impl/SoilExpReportServiceImpl.java
View file @
ebe46889
...
@@ -148,255 +148,264 @@ public class SoilExpReportServiceImpl extends BaseServiceImpl<SoilExpReportMappe
...
@@ -148,255 +148,264 @@ public class SoilExpReportServiceImpl extends BaseServiceImpl<SoilExpReportMappe
@Transactional
(
rollbackFor
=
Exception
.
class
)
@Transactional
(
rollbackFor
=
Exception
.
class
)
@Override
@Override
public
SoilReport
generateReport
(
Long
entrustId
,
Long
templateId
,
Long
[]
expReportIds
)
{
public
SoilReport
generateReport
(
Long
entrustId
,
Long
templateId
,
Long
[]
expReportIds
)
{
RestAssert
.
fail
(
null
==
templateId
,
"请选择报告模板"
);
RestAssert
.
fail
(
ArrayUtils
.
isEmpty
(
expReportIds
),
"请选择试验项目报告"
);
SoilExpReportTemplate
template
=
soilExpReportTemplateService
.
getById
(
templateId
);
RestAssert
.
fail
(
null
==
template
,
"报告模板不存在"
);
SoilEntrust
entrust
=
soilEntrustService
.
getById
(
entrustId
);
RestAssert
.
fail
(
null
==
entrust
,
"委托单不存在"
);
List
<
SoilExpReport
>
reportList
=
soilExpReportService
.
list
(
Condition
.
create
().
in
(
"id"
,
expReportIds
).
orderBy
(
"version"
,
true
));
InputStream
ioPut
=
ossClient
.
download
(
template
.
getObjectKey
());
RestAssert
.
fail
(
null
==
ioPut
,
"模板不存在"
);
XSSFWorkbook
xssfWorkbook
=
HSSFWorkbookUtil
.
getWorkbookByIO
(
ioPut
);
RestAssert
.
fail
(
null
==
xssfWorkbook
,
"模板获取失败"
);
Map
<
String
,
String
>
replaceMap
=
new
HashMap
<>();
Map
<
String
,
String
>
mapReplace
=
new
HashMap
<>();
mapReplace
.
put
(
"#{projectName}"
,
StringHandleUtils
.
getString
(
entrust
.
getProjectName
()));
mapReplace
.
put
(
"#{reportCode}"
,
"报告编号:"
+
entrust
.
getEntrustCode
());
mapReplace
.
put
(
"#{client}"
,
StringHandleUtils
.
getString
(
entrust
.
getClient
()));
mapReplace
.
put
(
"#{boreholeName}"
,
StringHandleUtils
.
getString
(
entrust
.
getBoreholeName
()));
mapReplace
.
put
(
"#{projectNo}"
,
StringHandleUtils
.
getString
(
entrust
.
getProjectNo
()));
mapReplace
.
put
(
"#{testType}"
,
StringHandleUtils
.
getString
(
entrust
.
getTestType
()));
int
sheetNums
=
xssfWorkbook
.
getNumberOfSheets
();
Integer
sampleBeginRow
=
template
.
getSampleBeginRow
();
Integer
sampleMergerNum
=
template
.
getSampleMergerNum
();
Integer
templateSampleNum
=
template
.
getTemplateSampleNum
();
List
<
SoilExpReportTemplateConfig
>
configList
=
new
ArrayList
<>();
if
(
null
!=
sampleBeginRow
&&
null
!=
sampleMergerNum
&&
null
!=
templateSampleNum
){
configList
=
soilExpReportTemplateConfigService
.
list
(
Condition
.
create
().
eq
(
"template_id"
,
templateId
));
}
Map
<
Integer
,
List
<
SoilExpReportTemplateConfig
>>
configSheetMap
=
new
HashMap
<>();
if
(
CollectionUtils
.
isNotEmpty
(
configList
)){
for
(
SoilExpReportTemplateConfig
config:
configList
)
{
if
(
null
==
config
.
getSheetNum
()){
continue
;
}
if
(
configSheetMap
.
containsKey
(
config
.
getSheetNum
())){
List
<
SoilExpReportTemplateConfig
>
templateConfigsList
=
configSheetMap
.
get
(
config
.
getSheetNum
());
templateConfigsList
.
add
(
config
);
configSheetMap
.
put
(
config
.
getSheetNum
(),
templateConfigsList
);
}
else
{
List
<
SoilExpReportTemplateConfig
>
templateConfigsList
=
new
ArrayList
<>();
templateConfigsList
.
add
(
config
);
configSheetMap
.
put
(
config
.
getSheetNum
(),
templateConfigsList
);
}
}
}
List
<
SoilExpReportRelExp
>
reportRelExpList
=
soilExpReportRelExpService
.
list
(
Condition
.
create
().
in
(
"exp_report_id"
,
expReportIds
));
List
<
SoilSampleVO
>
voList
=
new
ArrayList
<>();
List
<
SoilAppendix
>
appendixList
=
new
ArrayList
<>();
try
{
RestAssert
.
fail
(
null
==
templateId
,
"请选择报告模板"
);
RestAssert
.
fail
(
ArrayUtils
.
isEmpty
(
expReportIds
),
"请选择试验项目报告"
);
SoilExpReportTemplate
template
=
soilExpReportTemplateService
.
getById
(
templateId
);
RestAssert
.
fail
(
null
==
template
,
"报告模板不存在"
);
SoilEntrust
entrust
=
soilEntrustService
.
getById
(
entrustId
);
RestAssert
.
fail
(
null
==
entrust
,
"委托单不存在"
);
List
<
SoilExpReport
>
reportList
=
soilExpReportService
.
list
(
Condition
.
create
().
in
(
"id"
,
expReportIds
).
orderBy
(
"version"
,
true
));
InputStream
ioPut
=
ossClient
.
download
(
template
.
getObjectKey
());
RestAssert
.
fail
(
null
==
ioPut
,
"模板不存在"
);
XSSFWorkbook
xssfWorkbook
=
HSSFWorkbookUtil
.
getWorkbookByIO
(
ioPut
);
RestAssert
.
fail
(
null
==
xssfWorkbook
,
"模板获取失败"
);
Map
<
String
,
String
>
replaceMap
=
new
HashMap
<>();
Map
<
String
,
String
>
mapReplace
=
new
HashMap
<>();
mapReplace
.
put
(
"#{projectName}"
,
StringHandleUtils
.
getString
(
entrust
.
getProjectName
()));
mapReplace
.
put
(
"#{reportCode}"
,
"报告编号:"
+
entrust
.
getEntrustCode
());
mapReplace
.
put
(
"#{client}"
,
StringHandleUtils
.
getString
(
entrust
.
getClient
()));
mapReplace
.
put
(
"#{boreholeName}"
,
StringHandleUtils
.
getString
(
entrust
.
getBoreholeName
()));
mapReplace
.
put
(
"#{projectNo}"
,
StringHandleUtils
.
getString
(
entrust
.
getProjectNo
()));
mapReplace
.
put
(
"#{testType}"
,
StringHandleUtils
.
getString
(
entrust
.
getTestType
()));
int
sheetNums
=
xssfWorkbook
.
getNumberOfSheets
();
if
(
CollectionUtils
.
isNotEmpty
(
reportRelExpList
)){
List
<
Long
>
expIds
=
reportRelExpList
.
stream
().
map
(
r
->{
return
r
.
getExpId
();
}).
collect
(
Collectors
.
toList
());
Integer
sampleBeginRow
=
template
.
getSampleBeginRow
();
Integer
sampleMergerNum
=
template
.
getSampleMergerNum
();
Integer
templateSampleNum
=
template
.
getTemplateSampleNum
();
appendixList
=
soilAppendixService
.
list
(
Condition
.
create
().
in
(
"exp_id"
,
expIds
));
List
<
SoilExpReportTemplateConfig
>
configList
=
new
ArrayList
<>();
if
(
null
!=
sampleBeginRow
&&
null
!=
sampleMergerNum
&&
null
!=
templateSampleNum
){
configList
=
soilExpReportTemplateConfigService
.
list
(
Condition
.
create
().
eq
(
"template_id"
,
templateId
));
}
Map
<
Integer
,
List
<
SoilExpReportTemplateConfig
>>
configSheetMap
=
new
HashMap
<>();
if
(
CollectionUtils
.
isNotEmpty
(
configList
)){
for
(
SoilExpReportTemplateConfig
config:
configList
)
{
if
(
null
==
config
.
getSheetNum
()){
continue
;
}
if
(
configSheetMap
.
containsKey
(
config
.
getSheetNum
())){
List
<
SoilExpReportTemplateConfig
>
templateConfigsList
=
configSheetMap
.
get
(
config
.
getSheetNum
());
templateConfigsList
.
add
(
config
);
configSheetMap
.
put
(
config
.
getSheetNum
(),
templateConfigsList
);
}
else
{
List
<
SoilExpReportTemplateConfig
>
templateConfigsList
=
new
ArrayList
<>();
templateConfigsList
.
add
(
config
);
configSheetMap
.
put
(
config
.
getSheetNum
(),
templateConfigsList
);
}
List
<
SoilExperimentVO
>
experimentList
=
soilExperimentService
.
listVOByIdsContainsItem
(
expIds
);
}
if
(
CollectionUtils
.
isNotEmpty
(
experimentList
)){
}
List
<
Long
>
sampelIds
=
experimentList
.
stream
().
map
(
e
->{
List
<
SoilExpReportRelExp
>
reportRelExpList
=
soilExpReportRelExpService
.
list
(
Condition
.
create
().
in
(
"exp_report_id"
,
expReportIds
));
return
e
.
getSampleId
();
}).
collect
(
Collectors
.
toList
());
List
<
SoilSampleVO
>
voList
=
new
ArrayList
<>();
List
<
SoilSample
>
sampleList
=
soilSampleService
.
list
(
Condition
.
create
().
in
(
"id"
,
sampelIds
)
);
List
<
SoilAppendix
>
appendixList
=
new
ArrayList
<>(
);
for
(
SoilSample
sample:
sampleList
)
{
List
<
SoilExperimentVO
>
vosList
=
new
ArrayList
<>();
for
(
SoilExperimentVO
soilExperimentVO:
experimentList
)
{
if
(
sample
.
getId
().
equals
(
soilExperimentVO
.
getSampleId
())){
vosList
.
add
(
soilExperimentVO
);
}
}
SoilSampleVO
vo
=
sample
.
convert
(
SoilSampleVO
.
class
);
vo
.
setExperimentVOList
(
vosList
);
vo
.
setBoreholeName
(
entrust
.
getBoreholeName
());
voList
.
add
(
vo
);
}
}
}
if
(
CollectionUtils
.
isNotEmpty
(
reportRelExpList
)){
List
<
Long
>
expIds
=
reportRelExpList
.
stream
().
map
(
r
->{
return
r
.
getExpId
();
}).
collect
(
Collectors
.
toList
());
for
(
int
i
=
0
;
i
<
sheetNums
;
i
++)
{
appendixList
=
soilAppendixService
.
list
(
Condition
.
create
().
in
(
"exp_id"
,
expIds
));
if
(!
xssfWorkbook
.
isSheetHidden
(
i
)){
HSSFWorkbookUtil
.
replaceModel
(
mapReplace
,
xssfWorkbook
,
i
);
List
<
SoilExpReportTemplateConfig
>
templateConfigsList
=
configSheetMap
.
get
(
i
);
if
(
CollectionUtils
.
isEmpty
(
templateConfigsList
)){
continue
;
}
XSSFSheet
sheetOne
=
xssfWorkbook
.
getSheetAt
(
i
);
Integer
beginRow
=
sampleBeginRow
;
if
(
voList
.
size
()<
templateSampleNum
){
for
(
SoilSampleVO
vo:
voList
)
{
List
<
SoilExperimentVO
>
experimentVOList
=
vo
.
getExperimentVOList
();
XSSFRow
xssfRow
=
sheetOne
.
getRow
(
beginRow
);
for
(
SoilExpReportTemplateConfig
config:
configList
)
{
if
(
"sn"
.
equals
(
config
.
getDataAttribute
())){
continue
;
}
setExcelCellValueForSummary
(
config
.
getDataAttribute
(),
vo
,
xssfRow
.
getCell
(
config
.
getColumnPlace
()),
experimentVOList
);
}
beginRow
+=
sampleMergerNum
;
}
}
else
{
int
insertRow
=
beginRow
+
sampleMergerNum
*
templateSampleNum
;
XSSFRow
zeroRow
=
sheetOne
.
getRow
(
beginRow
);
XSSFCellStyle
cellStyle
=
zeroRow
.
getCell
(
0
).
getCellStyle
();
int
lastCellNum
=
zeroRow
.
getLastCellNum
();
int
insertCount
=
voList
.
size
()-
templateSampleNum
;
for
(
int
m
=
0
;
m
<
insertCount
;
m
++)
{
for
(
int
k
=
0
;
k
<
sampleMergerNum
;
k
++)
{
sheetOne
.
shiftRows
(
insertRow
,
sheetOne
.
getLastRowNum
(),
1
,
true
,
false
);
XSSFRow
row
=
sheetOne
.
createRow
(
insertRow
);
row
.
setHeight
(
zeroRow
.
getHeight
());
for
(
int
j
=
0
;
j
<
lastCellNum
;
j
++)
{
XSSFCell
xssfCell
=
row
.
createCell
(
j
);
xssfCell
.
setCellStyle
(
cellStyle
);
}
insertRow
++;
}
}
int
sn
=
1
;
for
(
SoilSampleVO
vo:
voList
)
{
XSSFRow
xssfRow
=
sheetOne
.
getRow
(
beginRow
);
List
<
SoilExperimentVO
>
experimentVOList
=
vo
.
getExperimentVOList
();
for
(
SoilExpReportTemplateConfig
config:
configList
)
{
if
(
null
==
config
.
getColumnPlace
()){
continue
;
}
XSSFCell
cell
=
xssfRow
.
getCell
(
config
.
getColumnPlace
());
if
(
"sn"
.
equals
(
config
.
getDataAttribute
())){
cell
.
setCellValue
(
sn
);
continue
;
}
setExcelCellValueForSummary
(
config
.
getDataAttribute
(),
vo
,
cell
,
experimentVOList
);
}
beginRow
+=
sampleMergerNum
;
sn
++;
}
for
(
SoilExpReportTemplateConfig
config:
configList
)
{
if
(
null
==
config
.
getMergeRowNum
()){
config
.
setMergeRowNum
(
1
);
}
if
(
null
==
config
.
getMergeBegin
()){
continue
;
}
if
(
null
==
config
.
getMergeEnd
()){
continue
;
}
int
step
=
config
.
getMergeRowNum
();
if
(
step
==
1
&&
config
.
getMergeEnd
()
==
config
.
getMergeBegin
()){
continue
;
}
if
(
null
!=
config
.
getColumnPlace
()
&&
null
!=
config
.
getMergeRowNum
()){
Integer
sampleBgMum
=
template
.
getSampleBeginRow
()+
templateSampleNum
*
sampleMergerNum
;
Integer
sampleEnMum
=
template
.
getSampleBeginRow
()+
voList
.
size
()*
sampleMergerNum
-
1
;
while
(
sampleBgMum
<=
sampleEnMum
)
{
sheetOne
.
addMergedRegion
(
new
CellRangeAddress
(
sampleBgMum
,
sampleBgMum
+
step
-
1
,
config
.
getMergeBegin
(),
config
.
getMergeEnd
()));
sampleBgMum
=
sampleBgMum
+
step
;
}
}
}
}
}
}
List
<
Workbook
>
bookList
=
new
ArrayList
<>();
Workbook
workbook
=
null
;
if
(
null
!=
xssfWorkbook
){
try
{
workbook
=
new
Workbook
(
exportToExcelInputStream
(
xssfWorkbook
));
}
catch
(
Exception
e
){
}
List
<
SoilExperimentVO
>
experimentList
=
soilExperimentService
.
listVOByIdsContainsItem
(
expIds
);
}
for
(
SoilExpReport
report:
reportList
)
{
try
{
Workbook
book
=
new
Workbook
(
ossClient
.
download
(
report
.
getObjectKey
()));
if
(
null
!=
book
){
bookList
.
add
(
book
);
}
}
catch
(
Exception
e
){
}
if
(
CollectionUtils
.
isNotEmpty
(
experimentList
)){
}
List
<
Long
>
sampelIds
=
experimentList
.
stream
().
map
(
e
->{
for
(
SoilAppendix
appendix:
appendixList
)
{
return
e
.
getSampleId
();
}).
collect
(
Collectors
.
toList
());
try
{
Workbook
book
=
new
Workbook
(
ossClient
.
download
(
appendix
.
getObjectKey
()));
if
(
null
!=
book
){
bookList
.
add
(
book
);
}
}
catch
(
Exception
e
){
}
List
<
SoilSample
>
sampleList
=
soilSampleService
.
list
(
Condition
.
create
().
in
(
"id"
,
sampelIds
));
}
for
(
SoilSample
sample:
sampleList
)
{
if
(
CollectionUtils
.
isNotEmpty
(
bookList
)){
List
<
SoilExperimentVO
>
vosList
=
new
ArrayList
<>();
for
(
SoilExperimentVO
soilExperimentVO:
experimentList
)
{
try
{
if
(
sample
.
getId
().
equals
(
soilExperimentVO
.
getSampleId
())){
File
allFileName
=
AsposeUtil
.
mergeWork
(
entrust
.
getEntrustCode
(),
workbook
,
bookList
);
vosList
.
add
(
soilExperimentVO
);
OssFileResult
result
=
ossClient
.
upload
(
allFileName
);
}
}
SoilReport
soilReport
=
new
SoilReport
();
SoilSampleVO
vo
=
sample
.
convert
(
SoilSampleVO
.
class
);
soilReport
.
setUname
(
LoginHelper
.
getAccount
().
getUserName
());
vo
.
setExperimentVOList
(
vosList
);
soilReport
.
setRemark
(
"报告生成"
);
vo
.
setBoreholeName
(
entrust
.
getBoreholeName
());
soilReport
.
setVersionId
(
result
.
getVersionId
());
voList
.
add
(
vo
);
soilReport
.
setObjectKey
(
result
.
getObjectKey
());
}
soilReport
.
setBucketName
(
result
.
getBucketName
());
}
soilReport
.
setEntrustId
(
entrustId
);
}
soilReport
.
setUri
(
result
.
getUri
());
soilReport
.
setReportType
(
template
.
getClassType
());
if
(
soilReportService
.
save
(
soilReport
)){
for
(
int
i
=
0
;
i
<
sheetNums
;
i
++)
{
FileUtils
.
deleteFiles
(
allFileName
);
if
(!
xssfWorkbook
.
isSheetHidden
(
i
)){
HSSFWorkbookUtil
.
replaceModel
(
mapReplace
,
xssfWorkbook
,
i
);
return
soilReport
;
}
List
<
SoilExpReportTemplateConfig
>
templateConfigsList
=
configSheetMap
.
get
(
i
);
}
catch
(
Exception
e
){
if
(
CollectionUtils
.
isEmpty
(
templateConfigsList
)){
logger
.
error
(
"生成汇总报告失败"
+
e
.
getMessage
());
continue
;
return
null
;
}
XSSFSheet
sheetOne
=
xssfWorkbook
.
getSheetAt
(
i
);
Integer
beginRow
=
sampleBeginRow
;
if
(
voList
.
size
()<
templateSampleNum
){
for
(
SoilSampleVO
vo:
voList
)
{
List
<
SoilExperimentVO
>
experimentVOList
=
vo
.
getExperimentVOList
();
XSSFRow
xssfRow
=
sheetOne
.
getRow
(
beginRow
);
for
(
SoilExpReportTemplateConfig
config:
configList
)
{
if
(
"sn"
.
equals
(
config
.
getDataAttribute
())){
continue
;
}
setExcelCellValueForSummary
(
config
.
getDataAttribute
(),
vo
,
xssfRow
.
getCell
(
config
.
getColumnPlace
()),
experimentVOList
);
}
beginRow
+=
sampleMergerNum
;
}
}
else
{
int
insertRow
=
beginRow
+
sampleMergerNum
*
templateSampleNum
;
XSSFRow
zeroRow
=
sheetOne
.
getRow
(
beginRow
);
XSSFCellStyle
cellStyle
=
zeroRow
.
getCell
(
0
).
getCellStyle
();
int
lastCellNum
=
zeroRow
.
getLastCellNum
();
int
insertCount
=
voList
.
size
()-
templateSampleNum
;
for
(
int
m
=
0
;
m
<
insertCount
;
m
++)
{
for
(
int
k
=
0
;
k
<
sampleMergerNum
;
k
++)
{
sheetOne
.
shiftRows
(
insertRow
,
sheetOne
.
getLastRowNum
(),
1
,
true
,
false
);
XSSFRow
row
=
sheetOne
.
createRow
(
insertRow
);
row
.
setHeight
(
zeroRow
.
getHeight
());
for
(
int
j
=
0
;
j
<
lastCellNum
;
j
++)
{
XSSFCell
xssfCell
=
row
.
createCell
(
j
);
xssfCell
.
setCellStyle
(
cellStyle
);
}
insertRow
++;
}
}
int
sn
=
1
;
for
(
SoilSampleVO
vo:
voList
)
{
XSSFRow
xssfRow
=
sheetOne
.
getRow
(
beginRow
);
List
<
SoilExperimentVO
>
experimentVOList
=
vo
.
getExperimentVOList
();
for
(
SoilExpReportTemplateConfig
config:
configList
)
{
if
(
null
==
config
.
getColumnPlace
()){
continue
;
}
XSSFCell
cell
=
xssfRow
.
getCell
(
config
.
getColumnPlace
());
if
(
"sn"
.
equals
(
config
.
getDataAttribute
())){
cell
.
setCellValue
(
sn
);
continue
;
}
setExcelCellValueForSummary
(
config
.
getDataAttribute
(),
vo
,
cell
,
experimentVOList
);
}
beginRow
+=
sampleMergerNum
;
sn
++;
}
for
(
SoilExpReportTemplateConfig
config:
configList
)
{
if
(
null
==
config
.
getMergeRowNum
()){
config
.
setMergeRowNum
(
1
);
}
if
(
null
==
config
.
getMergeBegin
()){
continue
;
}
if
(
null
==
config
.
getMergeEnd
()){
continue
;
}
int
step
=
config
.
getMergeRowNum
();
if
(
step
==
1
&&
config
.
getMergeEnd
()
==
config
.
getMergeBegin
()){
continue
;
}
if
(
null
!=
config
.
getColumnPlace
()
&&
null
!=
config
.
getMergeRowNum
()){
Integer
sampleBgMum
=
template
.
getSampleBeginRow
()+
templateSampleNum
*
sampleMergerNum
;
Integer
sampleEnMum
=
template
.
getSampleBeginRow
()+
voList
.
size
()*
sampleMergerNum
-
1
;
while
(
sampleBgMum
<=
sampleEnMum
)
{
sheetOne
.
addMergedRegion
(
new
CellRangeAddress
(
sampleBgMum
,
sampleBgMum
+
step
-
1
,
config
.
getMergeBegin
(),
config
.
getMergeEnd
()));
sampleBgMum
=
sampleBgMum
+
step
;
}
}
}
}
}
}
List
<
Workbook
>
bookList
=
new
ArrayList
<>();
Workbook
workbook
=
null
;
if
(
null
!=
xssfWorkbook
){
try
{
workbook
=
new
Workbook
(
exportToExcelInputStream
(
xssfWorkbook
));
}
catch
(
Exception
e
){
logger
.
error
(
" workbook = new Workbook(exportToExcelInputStream(xssfWorkbook));"
+
e
.
getMessage
());
}
}
for
(
SoilExpReport
report:
reportList
)
{
try
{
Workbook
book
=
new
Workbook
(
ossClient
.
download
(
report
.
getObjectKey
()));
if
(
null
!=
book
){
bookList
.
add
(
book
);
}
}
catch
(
Exception
e
){
logger
.
error
(
" Workbook book = new Workbook(ossClient.download(report.getObjectKey()));"
+
e
.
getMessage
());
}
}
for
(
SoilAppendix
appendix:
appendixList
)
{
try
{
Workbook
book
=
new
Workbook
(
ossClient
.
download
(
appendix
.
getObjectKey
()));
if
(
null
!=
book
){
bookList
.
add
(
book
);
}
}
catch
(
Exception
e
){
logger
.
error
(
" Workbook book = new Workbook(ossClient.download(appendix.getObjectKey()));;"
+
e
.
getMessage
());
}
}
if
(
CollectionUtils
.
isNotEmpty
(
bookList
)){
try
{
File
allFileName
=
AsposeUtil
.
mergeWork
(
entrust
.
getEntrustCode
(),
workbook
,
bookList
);
OssFileResult
result
=
ossClient
.
upload
(
allFileName
);
SoilReport
soilReport
=
new
SoilReport
();
soilReport
.
setUname
(
LoginHelper
.
getAccount
().
getUserName
());
soilReport
.
setRemark
(
"报告生成"
);
soilReport
.
setVersionId
(
result
.
getVersionId
());
soilReport
.
setObjectKey
(
result
.
getObjectKey
());
soilReport
.
setBucketName
(
result
.
getBucketName
());
soilReport
.
setEntrustId
(
entrustId
);
soilReport
.
setUri
(
result
.
getUri
());
soilReport
.
setReportType
(
template
.
getClassType
());
if
(
soilReportService
.
save
(
soilReport
)){
FileUtils
.
deleteFiles
(
allFileName
);
return
soilReport
;
}
}
catch
(
Exception
e
){
logger
.
error
(
"生成汇总报告失败"
+
e
.
getMessage
());
return
null
;
}
}
else
{
return
null
;
}
}
catch
(
Exception
e
){
logger
.
error
(
"生成汇总报告失败------"
+
e
.
getMessage
());
RestAssert
.
fail
(
"生成失败,请联系管理员!"
);
}
}
}
else
{
return
null
;
}
return
null
;
return
null
;
}
}
...
...
src/main/java/com/patzn/cloud/service/lims/soil/service/impl/SoilExperimentServiceImpl.java
View file @
ebe46889
...
@@ -3168,6 +3168,8 @@ public class SoilExperimentServiceImpl extends BaseServiceImpl<SoilExperimentMap
...
@@ -3168,6 +3168,8 @@ public class SoilExperimentServiceImpl extends BaseServiceImpl<SoilExperimentMap
replaceMap
.
put
(
"#{title}"
,
"附录"
+(
count
)+
" "
+
type
.
getExperiment
()+
"试验成果图\n"
+
replaceMap
.
put
(
"#{title}"
,
"附录"
+(
count
)+
" "
+
type
.
getExperiment
()+
"试验成果图\n"
+
"APPENDIX "
+
count
+
" "
+
testEnglish
);
"APPENDIX "
+
count
+
" "
+
testEnglish
);
replaceMap
.
put
(
"#{reportCode}"
,
StringHandleUtils
.
getString
(
type
.
getEntrustCode
()));
try
{
try
{
HSSFWorkbookUtil
.
replaceModel
(
replaceMap
,
xssfWorkbook
);
HSSFWorkbookUtil
.
replaceModel
(
replaceMap
,
xssfWorkbook
);
HSSFWorkbookUtil
.
insertImage
(
xssfWorkbook
,
fileMap
,
true
);
HSSFWorkbookUtil
.
insertImage
(
xssfWorkbook
,
fileMap
,
true
);
...
...
src/main/resources/templates/excel/AttachmentTemplateSZYS.xlsx
View file @
ebe46889
No preview for this file type
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