Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
Y
yd-csf
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
xingmin
yd-csf
Commits
f5e071b8
Commit
f5e071b8
authored
Sep 14, 2026
by
jianan
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
保费到期提醒4
parent
08bc47a6
Hide whitespace changes
Inline
Side-by-side
Showing
1 changed file
with
93 additions
and
0 deletions
+93
-0
yd-csf-service/src/main/java/com/yd/csf/service/component/RenewalPolicyReportService.java
+93
-0
No files found.
yd-csf-service/src/main/java/com/yd/csf/service/component/RenewalPolicyReportService.java
0 → 100644
View file @
f5e071b8
package
com
.
yd
.
csf
.
service
.
component
;
import
com.alibaba.excel.EasyExcel
;
import
com.yd.csf.service.dto.RenewalDuePolicy
;
import
com.yd.csf.service.dto.RenewalReminderData
;
import
com.yd.csf.service.model.PolicyFollow
;
import
com.yd.csf.service.vo.RenewalPolicyExportDTO
;
import
org.apache.commons.collections4.CollectionUtils
;
import
org.springframework.stereotype.Component
;
import
java.io.ByteArrayOutputStream
;
import
java.io.IOException
;
import
java.time.LocalDate
;
import
java.time.format.DateTimeFormatter
;
import
java.util.ArrayList
;
import
java.util.List
;
import
java.util.Objects
;
/**
* 续期保单清单 Excel 生成(30 列,对齐 policy报表模版.xlsx)
*/
@Component
public
class
RenewalPolicyReportService
{
private
static
final
String
FILE_NAME_PATTERN
=
"续期保单清单_%s-%s_%s.xlsx"
;
private
static
final
DateTimeFormatter
MONTH_FMT
=
DateTimeFormatter
.
ofPattern
(
"yyyyMM"
);
private
static
final
DateTimeFormatter
DAY_FMT
=
DateTimeFormatter
.
ofPattern
(
"yyyyMMdd"
);
/**
* 生成清单文件字节
*/
public
byte
[]
generate
(
RenewalReminderData
data
)
{
List
<
RenewalPolicyExportDTO
>
rows
=
toRows
(
data
);
try
(
ByteArrayOutputStream
out
=
new
ByteArrayOutputStream
())
{
EasyExcel
.
write
(
out
,
RenewalPolicyExportDTO
.
class
)
.
sheet
(
"续期保单"
)
.
doWrite
(
rows
);
return
out
.
toByteArray
();
}
catch
(
IOException
e
)
{
throw
new
RuntimeException
(
"生成续期保单清单失败"
,
e
);
}
}
/**
* 文件名:续期保单清单_<窗口首月>-<窗口末月>_<生成日>.xlsx
*/
public
String
buildFileName
(
RenewalReminderData
data
,
LocalDate
today
)
{
return
String
.
format
(
FILE_NAME_PATTERN
,
data
.
getWindowStart
().
format
(
MONTH_FMT
),
data
.
getWindowEnd
().
format
(
MONTH_FMT
),
today
.
format
(
DAY_FMT
));
}
private
List
<
RenewalPolicyExportDTO
>
toRows
(
RenewalReminderData
data
)
{
List
<
RenewalPolicyExportDTO
>
rows
=
new
ArrayList
<>();
if
(
data
==
null
||
CollectionUtils
.
isEmpty
(
data
.
getDuePolicies
()))
{
return
rows
;
}
for
(
RenewalDuePolicy
item
:
data
.
getDuePolicies
())
{
PolicyFollow
p
=
item
.
getPolicyFollow
();
RenewalPolicyExportDTO
row
=
new
RenewalPolicyExportDTO
();
row
.
setId
(
p
.
getId
());
row
.
setPolicyNo
(
p
.
getPolicyNo
());
row
.
setProductName
(
p
.
getProductName
());
row
.
setPolicyHolder
(
p
.
getPolicyHolder
());
row
.
setPolicyHolderEn
(
p
.
getPolicyHolderEn
());
row
.
setInsured
(
p
.
getInsured
());
row
.
setStatus
(
p
.
getStatus
());
row
.
setEachIssuePremium
(
p
.
getEachIssuePremium
());
row
.
setPolicyCurrency
(
p
.
getPolicyCurrency
());
row
.
setPolicyLevy
(
p
.
getPolicyLevy
());
row
.
setEffectiveDate
(
p
.
getEffectiveDate
());
row
.
setSignDate
(
p
.
getSignDate
());
row
.
setIssueDate
(
p
.
getIssueDate
());
row
.
setCoolingOffEndDate
(
p
.
getCoolingOffEndDate
());
row
.
setDueDate
(
java
.
sql
.
Date
.
valueOf
(
item
.
getDueDate
()));
row
.
setIssueNumber
(
Objects
.
toString
(
p
.
getIssueNumber
(),
null
));
row
.
setPaymentFrequency
(
p
.
getPaymentFrequency
());
row
.
setIsPrepay
(
p
.
getIsPrepay
());
row
.
setPrepaidTerm
(
p
.
getPrepaidTerm
());
row
.
setProductCate
(
p
.
getProductCate
());
row
.
setInsuranceCompany
(
p
.
getInsuranceCompany
());
row
.
setReconciliationCompany
(
p
.
getReconciliationCompany
());
row
.
setFirstBroker
(
p
.
getFirstBroker
());
row
.
setSigner
(
p
.
getSigner
());
row
.
setPracticeCode
(
p
.
getPracticeCode
());
row
.
setAppointmentNo
(
p
.
getAppointmentNo
());
row
.
setSignLocation
(
p
.
getSignLocation
());
rows
.
add
(
row
);
}
return
rows
;
}
}
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