Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
8
8timerapiv200
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
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
8timerv2
8timerapiv200
Commits
e77f90b1
Commit
e77f90b1
authored
Apr 24, 2023
by
翁国栋
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
bug修改
parent
cd094ea2
Hide whitespace changes
Inline
Side-by-side
Showing
4 changed files
with
195 additions
and
15 deletions
+195
-15
src/main/java/cn/timer/api/controller/insure/InsureContorll.java
+97
-4
src/main/java/cn/timer/api/controller/insure/InsureUserController.java
+80
-5
src/main/java/cn/timer/api/utils/ExcelUtils.java
+15
-5
src/main/resources/application-test.yml
+3
-1
No files found.
src/main/java/cn/timer/api/controller/insure/InsureContorll.java
View file @
e77f90b1
...
...
@@ -34,11 +34,10 @@ import io.swagger.annotations.ApiOperation;
import
io.swagger.models.auth.In
;
import
org.apache.commons.codec.digest.DigestUtils
;
import
org.apache.http.client.utils.URIBuilder
;
import
org.apache.poi.hssf.usermodel.HSSFWorkbook
;
import
org.apache.poi.ss.usermodel.CellType
;
import
org.apache.poi.xssf.usermodel.XSSFCell
;
import
org.apache.poi.xssf.usermodel.XSSFRow
;
import
org.apache.poi.xssf.usermodel.XSSFSheet
;
import
org.apache.poi.xssf.usermodel.XSSFWorkbook
;
import
org.apache.poi.ss.util.CellRangeAddress
;
import
org.apache.poi.xssf.usermodel.*
;
import
org.eclipse.jetty.util.StringUtil
;
import
org.slf4j.Logger
;
import
org.slf4j.LoggerFactory
;
...
...
@@ -2106,4 +2105,98 @@ public class InsureContorll {
}
}
}
@PostMapping
(
value
=
"/exportInsureUserData"
)
@ApiOperation
(
value
=
"导出投保人员名单"
,
httpMethod
=
"POST"
,
notes
=
"导出投保人员名单"
)
@ResponseBody
public
Result
<
Object
>
exportInsureUserData
(
@RequestBody
InsureDto
insureDto
,
HttpServletResponse
resp
)
{
String
[]
rowName
=
new
String
[]{
"序号"
,
"被保险人姓名(必选)"
,
"证件类型(必选)"
,
"证件号码(必选)"
,
"方案名称(必选)"
,
"二、三轮车车架号(必选)"
,
"职业类别(必选)"
};
XSSFWorkbook
workbook
=
null
;
/*
1,创建工作簿对象,然后创建大标题行,并设置标题
*/
// 创建工作簿对象
workbook
=
new
XSSFWorkbook
();
// 创建一个表格对象
XSSFSheet
sheet
=
workbook
.
createSheet
(
"Sheet1"
);
String
mark
=
"title"
;
// 定义大标题行的样式
XSSFCellStyle
titleCellStyle
=
ExcelUtils
.
getCellStyle
(
workbook
,
mark
);
String
title
=
"导出线下人员名单"
;
// 如果参数title不等空,则设置Sheet表格的大标题
if
(!
"null"
.
equals
(
title
)
&&
title
!=
null
&&
!
""
.
equals
(
title
)
&&
!
title
.
trim
().
isEmpty
())
{
// 创建表格大标题行
XSSFRow
titleRow
=
sheet
.
createRow
(
0
);
// 创建表格大标题行的第一个单元格
XSSFCell
titleCell
=
titleRow
.
createCell
(
0
);
// 定义大标题行的宽度和高度(合并单元格)
sheet
.
addMergedRegion
(
new
CellRangeAddress
(
0
,
1
,
0
,
(
rowName
.
length
-
1
)));
// 设置大标题行的单元格样式
titleCell
.
setCellStyle
(
titleCellStyle
);
// 设置大标题行的单元格名称
titleCell
.
setCellValue
(
title
);
}
int
columnNum
=
rowName
.
length
;
// 创建小标题行,由于0行和1行用作大标题行,所以小标题行从2开始
XSSFRow
subTitleRow
=
sheet
.
createRow
(
2
);
// 将列头设置到sheet的单元格中
for
(
int
i
=
0
;
i
<
columnNum
;
i
++)
{
// 创建小标题行的单元格
XSSFCell
subTitleCell
=
subTitleRow
.
createCell
(
i
);
// 设置单元格的单元格类型
subTitleCell
.
setCellType
(
CellType
.
STRING
);
// 使用数组中的数据作为单元格的文本来创建小标题
XSSFRichTextString
text
=
new
XSSFRichTextString
(
rowName
[
i
]);
// 设置小标题单元格的样式
subTitleCell
.
setCellStyle
(
titleCellStyle
);
// 设置文本到小标题单元格中
subTitleCell
.
setCellValue
(
text
);
}
XSSFCell
cell
=
null
;
List
<
PlansDto
>
list
=
insureDto
.
getPlans
();
for
(
int
i
=
0
;
i
<
list
.
size
();
i
++)
{
PlansDto
objArr
=
list
.
get
(
i
);
List
<
YgglMainEmp
>
ygglMainEmpList
=
ygglMainEmpMapper
.
selectListByIds
(
objArr
.
getUserIds
());
// 创建当前要填充数据的行对象
for
(
int
j
=
0
;
j
<
ygglMainEmpList
.
size
();
j
++)
{
XSSFRow
currentRow
=
sheet
.
createRow
(
i
+
3
);
//第i+1行 第一列
cell
=
currentRow
.
createCell
(
0
,
CellType
.
NUMERIC
);
cell
.
setCellValue
(
i
+
1
);
cell
=
currentRow
.
createCell
(
1
);
cell
.
setCellValue
(
i
+
1
);
}
OutputStream
os
=
null
;
try
{
resp
.
setContentType
(
"application/octet-stream"
);
resp
.
setHeader
(
"content-disposition"
,
"attachment; filename="
+
URLEncoder
.
encode
(
list
.
size
()+
"名人员清单.xlsx"
,
"UTF-8"
));
resp
.
setCharacterEncoding
(
"UTF-8"
);
os
=
resp
.
getOutputStream
();
workbook
.
write
(
os
);
}
catch
(
FileNotFoundException
e
)
{
e
.
printStackTrace
();
}
catch
(
IOException
e
)
{
e
.
printStackTrace
();
}
finally
{
try
{
os
.
close
();
}
catch
(
IOException
e
)
{
e
.
printStackTrace
();
}
}
}
return
ResultUtil
.
error
(
"导出成功"
);
}
}
src/main/java/cn/timer/api/controller/insure/InsureUserController.java
View file @
e77f90b1
...
...
@@ -33,7 +33,10 @@ import com.github.xiaoymin.knife4j.annotations.ApiOperationSupport;
import
com.google.common.collect.Maps
;
import
io.swagger.annotations.Api
;
import
io.swagger.annotations.ApiOperation
;
import
org.apache.poi.xssf.usermodel.XSSFWorkbook
;
import
org.apache.poi.hssf.usermodel.*
;
import
org.apache.poi.ss.usermodel.CellType
;
import
org.apache.poi.ss.util.CellRangeAddress
;
import
org.apache.poi.xssf.usermodel.*
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.transaction.annotation.Transactional
;
import
org.springframework.web.bind.annotation.*
;
...
...
@@ -128,17 +131,89 @@ public class InsureUserController{
policyDto
.
setPolicyDateStart
(
policyDateStart
);
policyDto
.
setPlanId
(
planId
);
policyDto
.
setCategoryId
(
categoryId
);
policyDto
.
setPage
(
null
);
// policyDto.setPage(null);
policyDto
.
setAll
(
true
);
List
<
PolicyDto
>
userList
=
insureUserMapper
.
selectPolicyList
(
policyDto
);
String
[]
rowName
=
new
String
[]{
"编号"
,
"姓名"
,
"证件类型"
,
"证件号"
,
"保单号"
,
"状态"
,
"计划"
,
"保险生效时间"
,
"保险失效时间"
};
List
<
Object
[]>
list
=
null
;
XSSFWorkbook
workbook
=
null
;
/*
1,创建工作簿对象,然后创建大标题行,并设置标题
*/
// 创建工作簿对象
workbook
=
new
XSSFWorkbook
();
// 创建一个表格对象
XSSFSheet
sheet
=
workbook
.
createSheet
(
"Sheet1"
);
String
mark
=
"title"
;
// 定义大标题行的样式
XSSFCellStyle
titleCellStyle
=
ExcelUtils
.
getCellStyle
(
workbook
,
mark
);
String
title
=
"导出线下人员名单"
;
// 如果参数title不等空,则设置Sheet表格的大标题
if
(!
"null"
.
equals
(
title
)
&&
title
!=
null
&&
!
""
.
equals
(
title
)
&&
!
title
.
trim
().
isEmpty
())
{
// 创建表格大标题行
XSSFRow
titleRow
=
sheet
.
createRow
(
0
);
// 创建表格大标题行的第一个单元格
XSSFCell
titleCell
=
titleRow
.
createCell
(
0
);
// 定义大标题行的宽度和高度(合并单元格)
sheet
.
addMergedRegion
(
new
CellRangeAddress
(
0
,
1
,
0
,
(
rowName
.
length
-
1
)));
// 设置大标题行的单元格样式
titleCell
.
setCellStyle
(
titleCellStyle
);
// 设置大标题行的单元格名称
titleCell
.
setCellValue
(
title
);
}
int
columnNum
=
rowName
.
length
;
// 创建小标题行,由于0行和1行用作大标题行,所以小标题行从2开始
XSSFRow
subTitleRow
=
sheet
.
createRow
(
2
);
// 将列头设置到sheet的单元格中
for
(
int
i
=
0
;
i
<
columnNum
;
i
++)
{
// 创建小标题行的单元格
XSSFCell
subTitleCell
=
subTitleRow
.
createCell
(
i
);
// 设置单元格的单元格类型
subTitleCell
.
setCellType
(
CellType
.
STRING
);
// 使用数组中的数据作为单元格的文本来创建小标题
XSSFRichTextString
text
=
new
XSSFRichTextString
(
rowName
[
i
]);
// 设置小标题单元格的样式
subTitleCell
.
setCellStyle
(
titleCellStyle
);
// 设置文本到小标题单元格中
subTitleCell
.
setCellValue
(
text
);
}
XSSFCell
cell
=
null
;
for
(
int
i
=
0
;
i
<
userList
.
size
();
i
++)
{
PolicyDto
objArr
=
userList
.
get
(
i
);
// 创建当前要填充数据的行对象
XSSFRow
currentRow
=
sheet
.
createRow
(
i
+
3
);
//第i+1行 第一列
cell
=
currentRow
.
createCell
(
0
,
CellType
.
NUMERIC
);
cell
.
setCellValue
(
i
+
1
);
cell
=
currentRow
.
createCell
(
1
);
cell
.
setCellValue
(
objArr
.
getName
());
cell
=
currentRow
.
createCell
(
2
);
cell
.
setCellValue
(
"身份证"
);
cell
=
currentRow
.
createCell
(
3
);
cell
.
setCellValue
(
objArr
.
getZjNum
());
cell
=
currentRow
.
createCell
(
4
);
cell
.
setCellValue
(
objArr
.
getPolicyNo
());
cell
=
currentRow
.
createCell
(
5
);
cell
.
setCellValue
(
objArr
.
getStatus
().
equals
(
"1"
)?
"生效"
:
"失效"
);
cell
=
currentRow
.
createCell
(
6
);
cell
.
setCellValue
(
objArr
.
getPlanName
());
cell
=
currentRow
.
createCell
(
7
);
cell
.
setCellValue
(
objArr
.
getPolicyDateStart
());
cell
=
currentRow
.
createCell
(
8
);
cell
.
setCellValue
(
objArr
.
getPolicyDateEnd
());
}
OutputStream
os
=
null
;
try
{
resp
.
setContentType
(
"application/octet-stream"
);
resp
.
setHeader
(
"content-disposition"
,
"attachment; filename="
+
URLEncoder
.
encode
(
localDate
+
"_"
+
l
ist
.
size
()+
"名人员清单.xlsx"
,
"UTF-8"
));
resp
.
setHeader
(
"content-disposition"
,
"attachment; filename="
+
URLEncoder
.
encode
(
localDate
+
"_"
+
userL
ist
.
size
()+
"名人员清单.xlsx"
,
"UTF-8"
));
resp
.
setCharacterEncoding
(
"UTF-8"
);
os
=
resp
.
getOutputStream
();
XSSFWorkbook
workbook
=
ExcelUtils
.
exportExcel
(
localDate
+
"_"
+
list
.
size
()+
"投保人列表导出.xlsx"
,
rowName
,
Collections
.
singletonList
(
list
.
stream
().
toArray
()));
workbook
.
write
(
os
);
}
catch
(
FileNotFoundException
e
)
{
e
.
printStackTrace
();
...
...
src/main/java/cn/timer/api/utils/ExcelUtils.java
View file @
e77f90b1
...
...
@@ -8,10 +8,9 @@ import org.apache.poi.xssf.usermodel.*;
import
org.slf4j.Logger
;
import
org.slf4j.LoggerFactory
;
import
java.io.File
;
import
java.io.FileInputStream
;
import
java.io.InputStream
;
import
java.io.OutputStream
;
import
javax.servlet.ServletOutputStream
;
import
javax.servlet.http.HttpServletResponse
;
import
java.io.*
;
import
java.text.SimpleDateFormat
;
import
java.util.ArrayList
;
import
java.util.HashMap
;
...
...
@@ -425,7 +424,7 @@ public class ExcelUtils {
* @param mark 标记,当且仅当为title时获取标题行的样式,否则为普通单元格样式
* @return
*/
p
rivate
static
XSSFCellStyle
getCellStyle
(
XSSFWorkbook
workbook
,
String
mark
)
{
p
ublic
static
XSSFCellStyle
getCellStyle
(
XSSFWorkbook
workbook
,
String
mark
)
{
// 创建字体对象
XSSFFont
font
=
workbook
.
createFont
();
...
...
@@ -507,5 +506,16 @@ public class ExcelUtils {
return
xssfCell
.
getStringCellValue
().
trim
();
}
}
public
static
void
excelOutputStream
(
XSSFWorkbook
workbook
,
String
fileName
,
HttpServletResponse
response
){
try
{
ServletOutputStream
out
=
response
.
getOutputStream
();
workbook
.
write
(
out
);
out
.
flush
();
out
.
close
();
}
catch
(
IOException
e
)
{
e
.
printStackTrace
();
}
}
}
src/main/resources/application-test.yml
View file @
e77f90b1
...
...
@@ -284,7 +284,9 @@ insure:
#保全申请
batchUrl
:
'
http://sandbox.portal.unistar-ins.com/fuli/Home/WelfareProduct/batch_declare'
#保全取消支付
cancelPayment
:
'
http://sandbox.portal.unistar-ins.com/fuli/Home/OrderImport/order_import_set'
cancelPayment
:
'
http://sandbox.portal.unistar-ins.com/cps/Labor/OrderImport/order_import_set'
#预付款提交接口
order_import_set
:
'
https://portal.unistar-ins.com/cps/Labor/OrderImport/order_import_set'
youling
:
serverUrl
:
'
https://tapi.youlingrc.com'
...
...
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