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
8a44d2ed
Commit
8a44d2ed
authored
Jan 06, 2026
by
zhangxingmin
Browse files
Options
Browse Files
Download
Plain Diff
Merge remote-tracking branch 'origin/test' into test
parents
b098f3da
d7f19dfe
Show whitespace changes
Inline
Side-by-side
Showing
5 changed files
with
238 additions
and
16 deletions
+238
-16
yd-csf-api/src/main/java/com/yd/csf/api/controller/ApiExpectedFortuneController.java
+25
-1
yd-csf-api/src/main/java/com/yd/csf/api/service/ApiExpectedFortuneService.java
+7
-0
yd-csf-api/src/main/java/com/yd/csf/api/service/impl/ApiExpectedFortuneServiceImpl.java
+44
-3
yd-csf-service/src/main/java/com/yd/csf/service/vo/CommissionExpectedExportDTO.java
+7
-12
yd-csf-service/src/main/java/com/yd/csf/service/vo/ExpectedFortuneExportDTO.java
+155
-0
No files found.
yd-csf-api/src/main/java/com/yd/csf/api/controller/ApiExpectedFortuneController.java
View file @
8a44d2ed
...
...
@@ -24,8 +24,10 @@ import org.springframework.web.bind.annotation.RequestBody;
import
org.springframework.web.bind.annotation.RequestMapping
;
import
org.springframework.web.bind.annotation.RestController
;
import
javax.servlet.http.HttpServletResponse
;
import
java.io.UnsupportedEncodingException
;
import
java.net.URLEncoder
;
import
java.util.List
;
import
java.util.Map
;
/**
* 预计发佣信息
...
...
@@ -142,6 +144,28 @@ public class ApiExpectedFortuneController implements ApiExpectedFortuneFeignClie
}
/**
* 应付款导出
*
* @param request
* @return
*/
@PostMapping
(
"/export"
)
@Operation
(
summary
=
"应付款导出"
)
public
void
exportExpectedFortune
(
@RequestBody
ApiExpectedFortunePageRequest
request
,
HttpServletResponse
response
)
throws
UnsupportedEncodingException
{
if
(
request
==
null
)
{
throw
new
RuntimeException
(
"查询参数不能为空"
);
}
// 设置响应头
String
fileName
=
URLEncoder
.
encode
(
"应付款管理数据"
,
"UTF-8"
).
replaceAll
(
"\\+"
,
"%20"
);
response
.
setContentType
(
"application/vnd.openxmlformats-officedocument.spreadsheetml.sheet"
);
response
.
setCharacterEncoding
(
"utf-8"
);
response
.
setHeader
(
"Content-disposition"
,
"attachment;filename*=utf-8''"
+
fileName
+
".xlsx"
);
apiExpectedFortuneService
.
exportExpectedFortune
(
request
,
response
);
}
/**
* 查询保单是否生成过预计发佣
* @param policyNo
* @return
...
...
yd-csf-api/src/main/java/com/yd/csf/api/service/ApiExpectedFortuneService.java
View file @
8a44d2ed
package
com
.
yd
.
csf
.
api
.
service
;
import
com.baomidou.mybatisplus.core.conditions.query.QueryWrapper
;
import
com.baomidou.mybatisplus.core.metadata.IPage
;
import
com.yd.common.result.Result
;
import
com.yd.csf.api.dto.ApiExpectedFortunePageResponseVO
;
...
...
@@ -11,9 +12,11 @@ import com.yd.csf.feign.response.expectedfortune.ApiExpectedFortunePageResponse;
import
com.yd.csf.feign.response.expectedfortune.ApiGenerateExpectedFortuneResponse
;
import
com.yd.csf.service.dto.QueryPolicyAndBrokerDto
;
import
com.yd.csf.service.model.CommissionRuleBinding
;
import
com.yd.csf.service.model.ExpectedFortune
;
import
com.yd.csf.service.vo.ExpectedFortuneStatisticsVO
;
import
org.springframework.scheduling.annotation.Async
;
import
javax.servlet.http.HttpServletResponse
;
import
java.util.List
;
import
java.util.Map
;
...
...
@@ -27,6 +30,8 @@ public interface ApiExpectedFortuneService {
Result
<
IPage
<
ApiExpectedFortunePageResponse
>>
page
(
ApiExpectedFortunePageRequest
request
);
QueryWrapper
<
ExpectedFortune
>
getQueryWrapper
(
ApiExpectedFortunePageRequest
request
);
Result
<
Boolean
>
isGenerate
(
String
policyNo
);
Result
batchDelByPolicyNo
(
String
policyNo
);
...
...
@@ -38,4 +43,6 @@ public interface ApiExpectedFortuneService {
Result
<
ApiExpectedFortunePageResponseVO
>
list
(
ApiExpectedFortunePageRequest
request
);
Boolean
add
(
List
<
ExpectedFortuneAddRequest
>
request
);
void
exportExpectedFortune
(
ApiExpectedFortunePageRequest
request
,
HttpServletResponse
response
);
}
yd-csf-api/src/main/java/com/yd/csf/api/service/impl/ApiExpectedFortuneServiceImpl.java
View file @
8a44d2ed
package
com
.
yd
.
csf
.
api
.
service
.
impl
;
import
cn.hutool.core.bean.BeanUtil
;
import
com.alibaba.excel.EasyExcel
;
import
com.alibaba.excel.ExcelWriter
;
import
com.alibaba.excel.write.metadata.WriteSheet
;
import
com.baomidou.mybatisplus.core.conditions.query.QueryWrapper
;
import
com.baomidou.mybatisplus.core.metadata.IPage
;
import
com.baomidou.mybatisplus.extension.plugins.pagination.Page
;
...
...
@@ -23,19 +26,18 @@ import com.yd.csf.feign.request.expectedfortune.*;
import
com.yd.csf.feign.response.expectedfortune.ApiExpectedFortunePageResponse
;
import
com.yd.csf.feign.response.expectedfortune.ApiGenerateExpectedFortuneResponse
;
import
com.yd.csf.service.dto.CommissionRuleBindingDto
;
import
com.yd.csf.service.dto.FortuneStatisticsVO
;
import
com.yd.csf.service.dto.QueryPolicyAndBrokerDto
;
import
com.yd.csf.service.dto.QueryPolicyBrokerDto
;
import
com.yd.csf.service.enums.FortuneStatusEnum
;
import
com.yd.csf.service.model.CommissionRuleBinding
;
import
com.yd.csf.service.model.ExpectedFortune
;
import
com.yd.csf.service.model.
Fortune
;
import
com.yd.csf.service.model.
Policy
;
import
com.yd.csf.service.model.PolicyBroker
;
import
com.yd.csf.service.service.ICommissionRuleBindingService
;
import
com.yd.csf.service.service.IExpectedFortuneService
;
import
com.yd.csf.service.service.PolicyBrokerService
;
import
com.yd.csf.service.service.PolicyService
;
import
com.yd.csf.service.vo.ExpectedFortune
StatisticsV
O
;
import
com.yd.csf.service.vo.ExpectedFortune
ExportDT
O
;
import
com.yd.csf.service.vo.ExpectedFortuneStatisticsVO
;
import
com.yd.user.feign.client.clientuser.ApiClientUserFeignClient
;
import
jodd.util.StringUtil
;
...
...
@@ -51,11 +53,13 @@ import org.springframework.transaction.annotation.Transactional;
import
org.springframework.transaction.support.TransactionTemplate
;
import
org.springframework.util.CollectionUtils
;
import
javax.servlet.http.HttpServletResponse
;
import
java.math.BigDecimal
;
import
java.math.RoundingMode
;
import
java.time.LocalDate
;
import
java.time.LocalDateTime
;
import
java.util.*
;
import
java.util.function.Function
;
import
java.util.stream.Collectors
;
@Slf4j
...
...
@@ -477,6 +481,42 @@ public class ApiExpectedFortuneServiceImpl implements ApiExpectedFortuneService
return
true
;
}
@Override
public
void
exportExpectedFortune
(
ApiExpectedFortunePageRequest
request
,
HttpServletResponse
response
)
{
// 查询数据
QueryWrapper
<
ExpectedFortune
>
queryWrapper
=
this
.
getQueryWrapper
(
request
);
List
<
ExpectedFortune
>
fortuneList
=
iExpectedFortuneService
.
list
(
queryWrapper
);
// 关联保单信息
List
<
Policy
>
policyList
=
policyService
.
lambdaQuery
()
.
in
(
Policy:
:
getPolicyNo
,
fortuneList
.
stream
().
map
(
ExpectedFortune:
:
getPolicyNo
).
collect
(
Collectors
.
toList
()))
.
list
();
Map
<
String
,
Policy
>
policyMap
=
policyList
.
stream
()
.
collect
(
Collectors
.
toMap
(
Policy:
:
getPolicyNo
,
Function
.
identity
()));
// 转换为导出DTO
List
<
ExpectedFortuneExportDTO
>
exportDataList
=
fortuneList
.
stream
()
.
map
(
fortune
->
{
ExpectedFortuneExportDTO
dto
=
ExpectedFortuneExportDTO
.
convertToExportDTO
(
fortune
);
// 关联保单信息
Policy
policy
=
policyMap
.
get
(
fortune
.
getPolicyNo
());
if
(!
Objects
.
isNull
(
policy
))
{
dto
.
setInsuranceCompany
(
policy
.
getInsuranceCompany
());
dto
.
setProductName
(
policy
.
getProductName
());
}
return
dto
;
})
.
collect
(
Collectors
.
toList
());
// 使用EasyExcel导出
try
(
ExcelWriter
excelWriter
=
EasyExcel
.
write
(
response
.
getOutputStream
(),
ExpectedFortuneExportDTO
.
class
).
build
())
{
WriteSheet
writeSheet
=
EasyExcel
.
writerSheet
(
"应收款数据"
).
build
();
excelWriter
.
write
(
exportDataList
,
writeSheet
);
}
catch
(
Exception
e
)
{
throw
new
RuntimeException
(
"导出应收款数据失败"
,
e
);
}
}
/**
* 创建应付款编号 应付款类型-CSF-年份后两位-6位数字(不重复)
*
...
...
@@ -517,6 +557,7 @@ public class ApiExpectedFortuneServiceImpl implements ApiExpectedFortuneService
return
response
;
}
@Override
public
QueryWrapper
<
ExpectedFortune
>
getQueryWrapper
(
ApiExpectedFortunePageRequest
request
)
{
QueryWrapper
<
ExpectedFortune
>
queryWrapper
=
new
QueryWrapper
<>();
if
(
request
==
null
)
{
...
...
yd-csf-service/src/main/java/com/yd/csf/service/vo/CommissionExpectedExportDTO.java
View file @
8a44d2ed
...
...
@@ -15,22 +15,19 @@ import java.util.Date;
@Data
@ContentRowHeight
(
15
)
@HeadRowHeight
(
20
)
@ColumnWidth
(
2
5
)
@ColumnWidth
(
2
0
)
public
class
CommissionExpectedExportDTO
{
@ExcelProperty
(
"应收账款编号"
)
@ColumnWidth
(
20
)
private
String
receivableNo
;
@ExcelProperty
(
"应收款类型"
)
private
String
commissionBizType
;
@ExcelProperty
(
"保单号"
)
@ColumnWidth
(
20
)
private
String
policyNo
;
@ExcelProperty
(
"对账公司"
)
@ColumnWidth
(
20
)
private
String
reconciliationCompany
;
@ExcelProperty
(
"佣金期数"
)
...
...
@@ -40,13 +37,13 @@ public class CommissionExpectedExportDTO {
private
Integer
totalPeriod
;
@ExcelProperty
(
"来佣名称"
)
@ColumnWidth
(
20
)
private
String
commissionName
;
@ExcelProperty
(
"来佣类型"
)
private
String
commissionType
;
@ExcelProperty
(
"预计入账比例(%)"
)
@ColumnWidth
(
25
)
private
BigDecimal
commissionRatio
;
@ExcelProperty
(
"来佣币种"
)
...
...
@@ -54,7 +51,7 @@ public class CommissionExpectedExportDTO {
@ExcelProperty
(
"预计来佣日期"
)
@DateTimeFormat
(
"yyyy-MM-dd"
)
@ColumnWidth
(
1
5
)
@ColumnWidth
(
2
5
)
private
Date
commissionDate
;
@ExcelProperty
(
"入账状态"
)
...
...
@@ -65,23 +62,21 @@ public class CommissionExpectedExportDTO {
private
String
statusDesc
;
@ExcelProperty
(
"预计入账金额(HKD)"
)
@ColumnWidth
(
2
0
)
@ColumnWidth
(
2
5
)
private
BigDecimal
expectedAmount
;
@ExcelProperty
(
"已入账金额(HKD)"
)
@ColumnWidth
(
2
0
)
@ColumnWidth
(
2
5
)
private
BigDecimal
paidAmount
;
@ExcelProperty
(
"已入账比例(%)"
)
@ColumnWidth
(
20
)
private
BigDecimal
paidRatio
;
@ExcelProperty
(
"待入账金额(HKD)"
)
@ColumnWidth
(
2
0
)
@ColumnWidth
(
2
5
)
private
BigDecimal
pendingAmount
;
@ExcelProperty
(
"待入账比例(%)"
)
@ColumnWidth
(
20
)
private
BigDecimal
pendingRatio
;
@ExcelProperty
(
"备注"
)
...
...
@@ -104,7 +99,7 @@ public class CommissionExpectedExportDTO {
public
static
CommissionExpectedExportDTO
convertToExportDTO
(
CommissionExpected
vo
)
{
CommissionExpectedExportDTO
dto
=
new
CommissionExpectedExportDTO
();
dto
.
setReceivableNo
(
vo
.
getReceivableNo
());
dto
.
setCommissionBizType
(
vo
.
getCommissionBizType
()
);
dto
.
setCommissionBizType
(
"R"
.
equals
(
vo
.
getCommissionBizType
())
?
"关联保单应收单"
:
"非关联保单应收单"
);
dto
.
setPolicyNo
(
vo
.
getPolicyNo
());
dto
.
setReconciliationCompany
(
vo
.
getReconciliationCompany
());
dto
.
setCommissionPeriod
(
vo
.
getCommissionPeriod
());
...
...
yd-csf-service/src/main/java/com/yd/csf/service/vo/ExpectedFortuneExportDTO.java
0 → 100644
View file @
8a44d2ed
package
com
.
yd
.
csf
.
service
.
vo
;
import
cn.hutool.core.convert.Convert
;
import
com.alibaba.excel.annotation.ExcelProperty
;
import
com.alibaba.excel.annotation.format.DateTimeFormat
;
import
com.alibaba.excel.annotation.write.style.ColumnWidth
;
import
com.alibaba.excel.annotation.write.style.ContentRowHeight
;
import
com.alibaba.excel.annotation.write.style.HeadRowHeight
;
import
com.yd.csf.service.enums.FortuneStatusEnum
;
import
com.yd.csf.service.model.ExpectedFortune
;
import
lombok.Data
;
import
java.math.BigDecimal
;
import
java.time.LocalDateTime
;
import
java.util.Date
;
@Data
@ContentRowHeight
(
15
)
@HeadRowHeight
(
20
)
@ColumnWidth
(
20
)
public
class
ExpectedFortuneExportDTO
{
@ExcelProperty
(
"预计发佣业务ID"
)
private
String
expectedFortuneBizId
;
@ExcelProperty
(
"应付款编号"
)
private
String
payableNo
;
@ExcelProperty
(
"应付款类型"
)
private
String
fortuneBizType
;
@ExcelProperty
(
"保单号"
)
private
String
policyNo
;
@ExcelProperty
(
"转介人名称"
)
private
String
broker
;
@ExcelProperty
(
"团队名称"
)
private
String
team
;
@ExcelProperty
(
"出账状态"
)
private
String
status
;
@ExcelProperty
(
"出账币种"
)
private
String
currency
;
@ExcelProperty
(
"出账期数"
)
private
Integer
fortunePeriod
;
@ExcelProperty
(
"出账总期数"
)
private
Integer
fortuneTotalPeriod
;
@ExcelProperty
(
"出账项目"
)
private
String
fortuneName
;
@ExcelProperty
(
"出账日(估)"
)
@DateTimeFormat
(
"yyyy-MM-dd"
)
@ColumnWidth
(
25
)
private
Date
payoutDate
;
@ExcelProperty
(
"出账日(实)"
)
@DateTimeFormat
(
"yyyy-MM-dd"
)
@ColumnWidth
(
25
)
private
Date
actualPayoutDate
;
@ExcelProperty
(
"出账金额(估)"
)
private
BigDecimal
amount
;
@ExcelProperty
(
"已出账比例(%)"
)
private
BigDecimal
paidRatio
;
@ExcelProperty
(
"已出账金额"
)
private
BigDecimal
paidAmount
;
@ExcelProperty
(
"待出账比例(%)"
)
private
BigDecimal
unpaidRatio
;
@ExcelProperty
(
"待出账金额"
)
private
BigDecimal
unpaidAmount
;
@ExcelProperty
(
"持有比例"
)
private
String
brokerRatio
;
@ExcelProperty
(
"保险公司"
)
private
String
insuranceCompany
;
@ExcelProperty
(
"产品计划"
)
private
String
productName
;
@ExcelProperty
(
"期交保费"
)
private
BigDecimal
premium
;
@ExcelProperty
(
"出账状态-修改理由"
)
@ColumnWidth
(
30
)
private
String
statusDesc
;
@ExcelProperty
(
"备注"
)
@ColumnWidth
(
30
)
private
String
remark
;
@ExcelProperty
(
"创建时间"
)
@DateTimeFormat
(
"yyyy-MM-dd HH:mm:ss"
)
@ColumnWidth
(
25
)
private
LocalDateTime
createTime
;
@ExcelProperty
(
"更新时间"
)
@DateTimeFormat
(
"yyyy-MM-dd HH:mm:ss"
)
@ColumnWidth
(
25
)
private
LocalDateTime
updateTime
;
/**
* 将对象转换为导出DTO
*/
public
static
ExpectedFortuneExportDTO
convertToExportDTO
(
ExpectedFortune
expectedFortune
)
{
ExpectedFortuneExportDTO
dto
=
new
ExpectedFortuneExportDTO
();
dto
.
setExpectedFortuneBizId
(
expectedFortune
.
getExpectedFortuneBizId
());
dto
.
setPayableNo
(
expectedFortune
.
getPayableNo
());
dto
.
setFortuneBizType
(
"R"
.
equals
(
expectedFortune
.
getFortuneBizType
())
?
"关联保单应付款"
:
"非关联保单应付款"
);
dto
.
setPolicyNo
(
expectedFortune
.
getPolicyNo
());
dto
.
setPremium
(
expectedFortune
.
getPremium
());
dto
.
setFortunePeriod
(
expectedFortune
.
getFortunePeriod
());
dto
.
setFortuneTotalPeriod
(
expectedFortune
.
getFortuneTotalPeriod
());
dto
.
setBroker
(
expectedFortune
.
getBroker
());
dto
.
setTeam
(
expectedFortune
.
getTeam
());
dto
.
setFortuneName
(
expectedFortune
.
getFortuneName
());
dto
.
setBrokerRatio
(
expectedFortune
.
getBrokerRatio
());
dto
.
setAmount
(
expectedFortune
.
getAmount
());
dto
.
setCurrency
(
expectedFortune
.
getCurrency
());
dto
.
setStatus
(
getStatusText
(
expectedFortune
.
getStatus
()));
dto
.
setStatusDesc
(
expectedFortune
.
getStatusDesc
());
dto
.
setPayoutDate
(
Convert
.
toDate
(
expectedFortune
.
getPayoutDate
()));
dto
.
setActualPayoutDate
(
Convert
.
toDate
(
expectedFortune
.
getActualPayoutDate
()));
dto
.
setPaidAmount
(
expectedFortune
.
getPaidAmount
());
dto
.
setUnpaidAmount
(
expectedFortune
.
getUnpaidAmount
());
dto
.
setPaidRatio
(
expectedFortune
.
getPaidRatio
());
dto
.
setRemark
(
expectedFortune
.
getRemark
());
dto
.
setCreateTime
(
expectedFortune
.
getCreateTime
());
dto
.
setUpdateTime
(
expectedFortune
.
getUpdateTime
());
return
dto
;
}
/**
* 获取状态文本
*/
public
static
String
getStatusText
(
String
status
)
{
if
(
status
==
null
)
return
"未知"
;
for
(
FortuneStatusEnum
enumItem
:
FortuneStatusEnum
.
values
())
{
if
(
enumItem
.
getItemValue
().
equals
(
status
))
{
return
enumItem
.
getItemLabel
();
}
}
return
"未知"
;
}
}
\ No newline at end of file
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