Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
M
map-parent
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
常超
map-parent
Commits
57371b35
Commit
57371b35
authored
Jul 15, 2021
by
Jbb
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
excel上传数据细节的考虑
parent
b3f949c1
Show whitespace changes
Inline
Side-by-side
Showing
3 changed files
with
59 additions
and
21 deletions
+59
-21
service/pom.xml
+5
-0
service/view/src/main/java/com/founder/view/controller/TbStLayerDataController.java
+23
-21
service/view/src/test/java/com/founder/demo/CodeGenerator.java
+31
-0
No files found.
service/pom.xml
View file @
57371b35
...
...
@@ -73,6 +73,11 @@
<version>
4.2.1
</version>
</dependency>
<dependency>
<groupId>
org.springframework.boot
</groupId>
<artifactId>
spring-boot-starter-test
</artifactId>
<scope>
test
</scope>
</dependency>
<dependency>
<groupId>
org.postgresql
</groupId>
<artifactId>
postgresql
</artifactId>
<version>
9.4.1209.jre7
</version>
...
...
service/view/src/main/java/com/founder/view/controller/TbStLayerDataController.java
View file @
57371b35
...
...
@@ -8,8 +8,8 @@ import com.founder.commonutils.viewEntity.TbStLayerData;
import
com.founder.view.service.TbStLayerDataService
;
import
com.founder.view.service.TbStLayerService
;
import
io.swagger.annotations.Api
;
import
org.apache.ibatis.javassist.bytecode.ByteArray
;
import
org.apache.poi.ss.usermodel.Cell
;
import
org.apache.poi.ss.usermodel.CellType
;
import
org.apache.poi.xssf.usermodel.XSSFRow
;
import
org.apache.poi.xssf.usermodel.XSSFSheet
;
import
org.apache.poi.xssf.usermodel.XSSFWorkbook
;
...
...
@@ -18,12 +18,8 @@ import org.springframework.web.bind.annotation.RequestMapping;
import
org.springframework.web.bind.annotation.RequestParam
;
import
org.springframework.web.bind.annotation.RestController
;
import
org.springframework.web.multipart.MultipartFile
;
import
javax.annotation.Resource
;
import
javax.servlet.ServletOutputStream
;
import
javax.servlet.http.HttpServletResponse
;
import
java.io.ByteArrayOutputStream
;
import
java.io.FileInputStream
;
import
java.io.InputStream
;
import
java.text.DateFormat
;
import
java.text.SimpleDateFormat
;
...
...
@@ -55,7 +51,7 @@ public class TbStLayerDataController {
public
MapRestResult
uploadDown
(
@RequestParam
(
"excelFile"
)
MultipartFile
excelFile
,
@RequestParam
(
required
=
false
)
String
xxzjbh
,
@RequestParam
(
required
=
false
)
String
name
,
@RequestParam
(
required
=
false
)
Double
threshold
,
@RequestParam
(
required
=
false
)
String
lrr
,
@RequestParam
(
required
=
false
)
String
lrdwdm
,
@RequestParam
(
required
=
false
)
String
lrdwmc
,
HttpServletResponse
response
)
{
@RequestParam
(
required
=
false
)
String
lrdwmc
)
{
TbStLayer
tbStLayer
=
new
TbStLayer
();
List
<
TbStLayerData
>
pointLists
=
null
;
String
layerId
=
xxzjbh
;
...
...
@@ -76,15 +72,15 @@ public class TbStLayerDataController {
tbStLayerService
.
save
(
tbStLayer
);
is
=
excelFile
.
getInputStream
();
//InputStream is = new FileInputStream("C:\\Users\\JBB\\Desktop\\工作目录\\excel\\模板.xlsx");
pointLists
=
parseInputStream
(
layerId
,
is
,
response
);
pointLists
=
parseInputStream
(
layerId
,
is
);
//错误数据 上传归于同一个用户
}
else
{
is
=
excelFile
.
getInputStream
();
pointLists
=
parseInputStream
(
layerId
,
is
,
response
);
pointLists
=
parseInputStream
(
layerId
,
is
);
}
return
MapRestResult
.
build
(
200
,
"数据上传成功!"
,
pointLists
);
}
catch
(
Exception
e
)
{
//
e.printStackTrace();
e
.
printStackTrace
();
//如果保存数据、poi生成excel失败了就将之前的数据删除....
tbStLayerService
.
removeById
(
layerId
);
accidentPointService
.
deleteByGlId
(
layerId
);
...
...
@@ -94,7 +90,7 @@ public class TbStLayerDataController {
}
//将解析excel的代码抽成一个方法 返回错误的数据 类型为list<tbStLayerData>
public
List
<
TbStLayerData
>
parseInputStream
(
String
layerId
,
InputStream
is
,
HttpServletResponse
response
)
throws
Exception
{
public
List
<
TbStLayerData
>
parseInputStream
(
String
layerId
,
InputStream
is
)
throws
Exception
{
List
<
TbStLayerData
>
pointList
=
new
ArrayList
<>();
XSSFWorkbook
sheets
=
new
XSSFWorkbook
(
is
);
XSSFSheet
sheetAt
=
sheets
.
getSheetAt
(
0
);
...
...
@@ -123,32 +119,32 @@ public class TbStLayerDataController {
dateStr = row.getCell(3).getStringCellValue();
System.out.println(jd + "====" + wd + "====" + titleStr + "====" + dateStr);
}*/
//经纬度不能为空 否则报错 每
一行都判断单元格是否为空 设置单元格格式
是因为不知道哪一个会为空
//经纬度不能为空 否则报错 每
个单元格都判断单元格是否为空(设置单元格格式一律设置为string格式)
是因为不知道哪一个会为空
if
(
row
.
getCell
(
0
)
!=
null
&&
row
.
getCell
(
1
)
!=
null
)
{
row
.
getCell
(
0
).
setCellType
(
Cell
.
CELL_TYPE_
STRING
);
row
.
getCell
(
1
).
setCellType
(
Cell
.
CELL_TYPE_
STRING
);
row
.
getCell
(
0
).
setCellType
(
Cell
Type
.
STRING
);
row
.
getCell
(
1
).
setCellType
(
Cell
Type
.
STRING
);
try
{
//验证经纬度是否是八位小数以内
boolean
isTrue
=
LngLonUtil
.
verifyLongAndLat
(
Double
.
parseDouble
(
row
.
getCell
(
0
).
getStringCellValue
()),
Double
.
parseDouble
(
row
.
getCell
(
1
).
getStringCellValue
()));
if
(
isTrue
)
{
//这里可以不用for循环 因为excel列数比较少
for
(
int
j
=
0
;
j
<
lastCellNum
;
j
++)
{
if
(
j
==
0
&&
row
.
getCell
(
0
)
!=
null
)
{
row
.
getCell
(
0
).
setCellType
(
Cell
.
CELL_TYPE_
STRING
);
row
.
getCell
(
0
).
setCellType
(
Cell
Type
.
STRING
);
double
x
=
Double
.
parseDouble
(
row
.
getCell
(
0
).
getStringCellValue
());
point
.
setX
(
x
);
}
if
(
j
==
1
&&
row
.
getCell
(
1
)
!=
null
)
{
row
.
getCell
(
1
).
setCellType
(
Cell
.
CELL_TYPE_
STRING
);
row
.
getCell
(
1
).
setCellType
(
Cell
Type
.
STRING
);
double
y
=
Double
.
parseDouble
(
row
.
getCell
(
1
).
getStringCellValue
());
point
.
setY
(
y
);
}
if
(
j
==
2
&&
row
.
getCell
(
2
)
!=
null
)
{
row
.
getCell
(
2
).
setCellType
(
Cell
.
CELL_TYPE_
STRING
);
row
.
getCell
(
2
).
setCellType
(
Cell
Type
.
STRING
);
String
title
=
row
.
getCell
(
2
).
getStringCellValue
();
point
.
setTitle
(
title
);
}
if
(
j
==
3
&&
row
.
getCell
(
3
)
!=
null
)
{
row
.
getCell
(
3
).
setCellType
(
Cell
.
CELL_TYPE_
STRING
);
row
.
getCell
(
3
).
setCellType
(
Cell
Type
.
STRING
);
String
dateTimeStr
=
row
.
getCell
(
3
).
getStringCellValue
();
if
(
dateTimeStr
!=
""
){
Date
dateTime
=
df
.
parse
(
dateTimeStr
);
...
...
@@ -184,12 +180,12 @@ public class TbStLayerDataController {
point
.
setY
(
y
);
}
if
(
j
==
2
&&
row
.
getCell
(
2
)
!=
null
)
{
row
.
getCell
(
2
).
setCellType
(
Cell
.
CELL_TYPE_
STRING
);
row
.
getCell
(
2
).
setCellType
(
Cell
Type
.
STRING
);
String
title
=
row
.
getCell
(
2
).
getStringCellValue
();
point
.
setTitle
(
title
);
}
if
(
j
==
3
&&
row
.
getCell
(
3
)
!=
null
)
{
row
.
getCell
(
3
).
setCellType
(
Cell
.
CELL_TYPE_
STRING
);
row
.
getCell
(
3
).
setCellType
(
Cell
Type
.
STRING
);
String
dateTimeStr
=
row
.
getCell
(
3
).
getStringCellValue
();
if
(
dateTimeStr
!=
""
){
Date
dateTime
=
df
.
parse
(
dateTimeStr
);
...
...
@@ -207,11 +203,13 @@ public class TbStLayerDataController {
errorData
.
setxStr
(
row
.
getCell
(
0
).
getStringCellValue
());
errorData
.
setyStr
(
row
.
getCell
(
1
).
getStringCellValue
());
if
(
row
.
getCell
(
2
)
!=
null
){
row
.
getCell
(
2
).
setCellType
(
CellType
.
STRING
);
errorData
.
setTitle
(
row
.
getCell
(
2
).
getStringCellValue
());
}
else
{
errorData
.
setTitle
(
""
);
}
if
(
row
.
getCell
(
3
)
!=
null
){
row
.
getCell
(
3
).
setCellType
(
CellType
.
STRING
);
errorData
.
setTimeStr
(
row
.
getCell
(
3
).
getStringCellValue
());
}
else
{
errorData
.
setTimeStr
(
""
);
...
...
@@ -219,7 +217,8 @@ public class TbStLayerDataController {
//errorData.setTimeStr(row.getCell(3).getStringCellValue());
pointList
.
add
(
errorData
);
}
}
else
{
}
else
if
(
row
.
getCell
(
2
)
!=
null
||
row
.
getCell
(
3
)
!=
null
)
{
//第三个或第四个单元格不为空
//第一个 二个 肯定为空 第三个和第四个要设置单元格格式统一使用字符串
TbStLayerData
errorData
=
new
TbStLayerData
();
if
(
row
.
getCell
(
0
)
!=
null
)
{
errorData
.
setxStr
(
row
.
getCell
(
0
).
getStringCellValue
());
...
...
@@ -232,16 +231,19 @@ public class TbStLayerDataController {
errorData
.
setyStr
(
""
);
}
if
(
row
.
getCell
(
2
)
!=
null
)
{
row
.
getCell
(
2
).
setCellType
(
CellType
.
STRING
);
errorData
.
setTitle
(
row
.
getCell
(
2
).
getStringCellValue
());
}
else
{
errorData
.
setTitle
(
""
);
}
if
(
row
.
getCell
(
3
)
!=
null
)
{
row
.
getCell
(
3
).
setCellType
(
CellType
.
STRING
);
errorData
.
setTimeStr
(
row
.
getCell
(
3
).
getStringCellValue
());
}
else
{
errorData
.
setTimeStr
(
""
);
}
if
(
errorData
.
getxStr
()
!=
""
&&
errorData
.
getyStr
()
!=
""
&&
errorData
.
getTitle
()
!=
""
&&
errorData
.
getTimeStr
()
!=
""
){
//过滤空白行 数据只要有一个值 就返回
if
(
errorData
.
getxStr
()
!=
""
||
errorData
.
getyStr
()
!=
""
||
errorData
.
getTitle
()
!=
""
||
errorData
.
getTimeStr
()
!=
""
){
pointList
.
add
(
errorData
);
}
}
...
...
service/view/src/test/java/com/founder/demo/CodeGenerator.java
View file @
57371b35
...
...
@@ -10,24 +10,38 @@ import com.baomidou.mybatisplus.generator.config.StrategyConfig;
import
com.baomidou.mybatisplus.generator.config.rules.DateType
;
import
com.baomidou.mybatisplus.generator.config.rules.NamingStrategy
;
import
com.founder.commonutils.util.KeyUtil
;
import
com.founder.commonutils.viewEntity.TbStLayer
;
import
com.founder.commonutils.viewEntity.TbStLayerData
;
import
com.founder.view.ViewApplication
;
import
com.founder.view.service.TbStLayerService
;
import
org.apache.poi.ss.usermodel.Cell
;
import
org.apache.poi.xssf.usermodel.XSSFRow
;
import
org.apache.poi.xssf.usermodel.XSSFSheet
;
import
org.apache.poi.xssf.usermodel.XSSFWorkbook
;
import
org.junit.Before
;
import
org.junit.Test
;
import
org.junit.runner.RunWith
;
import
org.springframework.boot.test.context.SpringBootTest
;
import
org.springframework.context.ApplicationContext
;
import
org.springframework.context.support.ClassPathXmlApplicationContext
;
import
org.springframework.test.context.junit4.SpringJUnit4ClassRunner
;
import
javax.annotation.Resource
;
import
java.io.FileInputStream
;
import
java.io.InputStream
;
import
java.text.DateFormat
;
import
java.text.ParseException
;
import
java.text.SimpleDateFormat
;
import
java.util.ArrayList
;
import
java.util.Date
;
import
java.util.List
;
/**
* @author
* @since 2018/12/13
*/
@RunWith
(
SpringJUnit4ClassRunner
.
class
)
@SpringBootTest
(
classes
=
ViewApplication
.
class
)
public
class
CodeGenerator
{
@Test
...
...
@@ -151,4 +165,21 @@ public class CodeGenerator {
}
}
}
@Resource
TbStLayerService
tbStLayerService
;
@Test
public
void
testParse
()
throws
ParseException
{
// DateFormat df = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
// String dateTimeStr = "2021-07-01 12:59:36";
// Date dateTime = df.parse(dateTimeStr);
// System.out.println(dateTimeStr);
TbStLayer
tbStLayer
=
new
TbStLayer
();
tbStLayer
.
setXxzjbh
(
"12345"
);
tbStLayer
.
setName
(
"Rose"
);
boolean
b
=
tbStLayerService
.
saveOrUpdate
(
tbStLayer
);
if
(
b
){
System
.
out
.
println
(
"插入成功!"
);
}
}
}
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