Skip to content
Toggle navigation
Projects
Groups
Snippets
Help
polysoft-nafmii
/
polysoft-parent
This project
Loading...
Sign in
Toggle navigation
Go to a project
Project
Repository
Issues
0
Merge Requests
0
Pipelines
Wiki
Settings
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Commit 03215dd1
authored
May 06, 2021
by
zhoujinghao
Browse Files
Options
Browse Files
Tag
Download
Email Patches
Plain Diff
导入相关代码优化
1 parent
379a6f77
Hide whitespace changes
Inline
Side-by-side
Showing
2 changed files
with
88 additions
and
12 deletions
nafmii-admin/src/main/java/org/nafmii/admin/excel/FaguiSheet.java
nafmii-admin/src/main/java/org/nafmii/admin/user/service/impl/ImportExcelServiceImpl.java
nafmii-admin/src/main/java/org/nafmii/admin/excel/FaguiSheet.java
0 → 100644
View file @
03215dd
package
org
.
nafmii
.
admin
.
excel
;
import
com.alibaba.excel.context.AnalysisContext
;
import
com.alibaba.excel.event.AnalysisEventListener
;
import
io.micrometer.core.instrument.util.StringUtils
;
import
lombok.Data
;
import
org.nafmii.admin.user.dao.ImportExcelMapper
;
import
org.nafmii.admin.user.dto.ImportExcelDto
;
import
org.nafmii.common.response.ApiResponse
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
javax.annotation.Resource
;
import
java.util.ArrayList
;
import
java.util.List
;
import
java.util.Map
;
/**
* @author:zhoujh
* @Function:TODO
* @date 2021/5/6 11:05
* @ClassName:
* @version:
* @remark:
*/
public
class
FaguiSheet
extends
AnalysisEventListener
<
Map
<
Integer
,
String
>>
{
@Resource
private
ImportExcelMapper
importExcelMapper
;
// 所有要插入的数据
private
List
<
ImportExcelDto
>
datas
=
new
ArrayList
<>();
// 缓存上一次跨行数据的有效数据
private
Map
<
Integer
,
String
>
preContent
;
@Override
public
void
invoke
(
Map
<
Integer
,
String
>
o
,
AnalysisContext
analysisContext
)
{
ImportExcelDto
model
=
new
ImportExcelDto
();
String
olumn1
=
o
.
get
(
0
);
String
olumn2
=
o
.
get
(
1
);
String
olumn3
=
o
.
get
(
2
);
// 如果数据是空的话,从缓存对象中取值
if
(
StringUtils
.
isBlank
(
olumn1
))
{
olumn1
=
preContent
.
get
(
0
);
}
if
(
StringUtils
.
isBlank
(
olumn2
))
{
olumn2
=
preContent
.
get
(
1
);
}
if
(
StringUtils
.
isBlank
(
olumn3
))
{
olumn3
=
preContent
.
get
(
2
);
}
model
.
setColumn1
(
olumn1
);
model
.
setColumn2
(
olumn2
);
model
.
setColumn3
(
olumn3
);
// 将数据放入list
datas
.
add
(
model
);
// 复用跨行数据的实现
String
uniqueKey
=
o
.
get
(
0
);
// 如果A列的值为空,那么说明这是跨行列,如果取的值不是空,那说明这是第一次读取跨行列数据
// 如果preContent为空,说明这是第一次读取sheet表格的数据
if
(!
StringUtils
.
isBlank
(
uniqueKey
)
||
preContent
==
null
)
{
preContent
=
o
;
}
}
@Override
public
void
doAfterAllAnalysed
(
AnalysisContext
analysisContext
)
{
for
(
ImportExcelDto
data
:
datas
)
{
importExcelMapper
.
insertExcelData
(
data
);
}
}
}
nafmii-admin/src/main/java/org/nafmii/admin/user/service/impl/ImportExcelServiceImpl.java
View file @
03215dd
...
@@ -3,6 +3,7 @@ package org.nafmii.admin.user.service.impl;
...
@@ -3,6 +3,7 @@ package org.nafmii.admin.user.service.impl;
import
com.alibaba.excel.EasyExcel
;
import
com.alibaba.excel.EasyExcel
;
import
lombok.extern.slf4j.Slf4j
;
import
lombok.extern.slf4j.Slf4j
;
import
org.nafmii.admin.excel.FaguiSheet
;
import
org.nafmii.admin.user.dao.ImportExcelMapper
;
import
org.nafmii.admin.user.dao.ImportExcelMapper
;
import
org.nafmii.admin.user.dto.ImportExcelDto
;
import
org.nafmii.admin.user.dto.ImportExcelDto
;
import
org.nafmii.admin.user.service.IImportExcelService
;
import
org.nafmii.admin.user.service.IImportExcelService
;
...
@@ -40,27 +41,26 @@ import java.util.List;
...
@@ -40,27 +41,26 @@ import java.util.List;
@Slf4j
@Slf4j
@Service
@Service
public
class
ImportExcelServiceImpl
implements
IImportExcelService
{
public
class
ImportExcelServiceImpl
implements
IImportExcelService
{
@Resource
@Resource
private
ImportExcelMapper
importExcelMapper
;
private
ImportExcelMapper
importExcelMapper
;
@Override
@Override
public
ApiResponse
batchImportExcel
(
MultipartFile
file
)
{
public
ApiResponse
batchImportExcel
(
MultipartFile
file
)
{
List
<
ImportExcelDto
>
list
=
null
;
try
{
try
{
list
=
EasyExcel
.
read
(
file
.
getInputStream
()).
sheet
(
0
).
head
(
ImportExcelDto
.
class
).
doReadSync
();
EasyExcel
.
read
(
file
.
getInputStream
(),
new
FaguiSheet
()).
sheet
(
0
).
doReadSync
();
}
catch
(
IOException
e
)
{
}
catch
(
IOException
e
)
{
e
.
printStackTrace
();
e
.
printStackTrace
();
}
}
log
.
info
(
"导入后生成的数据源=============>"
+
list
);
// log.info("导入后生成的数据源=============>"+datas
);
if
(!
list
.
isEmpty
())
{
// if (!datas
.isEmpty()) {
for
(
ImportExcelDto
data
:
list
)
{
// for (ImportExcelDto data : datas
) {
int
i
=
importExcelMapper
.
insertExcelData
(
data
);
//
int i = importExcelMapper.insertExcelData(data);
if
(
i
<
0
){
//
if (i < 0){
return
new
ApiResponse
(
ApiResponse
.
FAIL
,
ApiResponse
.
FAIL_TEXT
);
//
return new ApiResponse(ApiResponse.FAIL, ApiResponse.FAIL_TEXT);
}
//
}
}
//
}
}
//
}
return
new
ApiResponse
(
ApiResponse
.
SUCCESS
,
ApiResponse
.
SUCCESS_TEXT
);
return
new
ApiResponse
(
ApiResponse
.
SUCCESS
,
ApiResponse
.
SUCCESS_TEXT
);
}
}
...
...
Write
Preview
Markdown
is supported
Attach a file
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 post a comment