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
96d09920
Commit
96d09920
authored
May 06, 2026
by
zhangxingmin
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
push
parent
3ccd3df1
Hide whitespace changes
Inline
Side-by-side
Showing
4 changed files
with
352 additions
and
2 deletions
+352
-2
yd-csf-api/src/main/java/com/yd/csf/api/controller/ApiCommissionExpectedController.java
+18
-2
yd-csf-api/src/main/java/com/yd/csf/api/service/ApiCommissionExpectedService.java
+10
-0
yd-csf-api/src/main/java/com/yd/csf/api/service/impl/ApiCommissionExpectedServiceImpl.java
+85
-0
yd-csf-service/src/main/java/com/yd/csf/service/vo/CommissionExpectedExportNewDTO.java
+239
-0
No files found.
yd-csf-api/src/main/java/com/yd/csf/api/controller/ApiCommissionExpectedController.java
View file @
96d09920
...
...
@@ -13,6 +13,7 @@ import com.yd.common.result.Result;
import
com.yd.csf.api.dto.QueryCommissionExpectedByPageNewResponse
;
import
com.yd.csf.api.dto.QueryCommissionExpectedByPageResponse
;
import
com.yd.csf.api.dto.ReceivableReportResponse
;
import
com.yd.csf.api.service.ApiCommissionExpectedService
;
import
com.yd.csf.service.common.ErrorCode
;
import
com.yd.csf.service.dto.*
;
import
com.yd.csf.service.model.CommissionExpected
;
...
...
@@ -32,6 +33,7 @@ import org.apache.commons.collections4.CollectionUtils;
import
org.apache.commons.lang3.ObjectUtils
;
import
org.apache.commons.lang3.StringUtils
;
import
org.springframework.beans.BeanUtils
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.web.bind.annotation.*
;
import
javax.annotation.Resource
;
...
...
@@ -68,6 +70,8 @@ public class ApiCommissionExpectedController {
private
PolicyFollowService
policyFollowService
;
@Resource
private
ApiInsuranceReconciliationCompanyFeignClient
companyFeignClient
;
@Autowired
private
ApiCommissionExpectedService
apiCommissionExpectedService
;
/**
* 批量新增预计入账
...
...
@@ -249,12 +253,12 @@ public class ApiCommissionExpectedController {
}
/**
* 应收款导出
* 应收款导出
(旧)
*
* @param commissionExpectedQueryRequest
* @return
*/
@PostMapping
(
"/export"
)
@PostMapping
(
"/export
/old
"
)
@Operation
(
summary
=
"应收款导出"
)
public
void
exportCommissionExpected
(
@RequestBody
CommissionExpectedQueryRequest
commissionExpectedQueryRequest
,
HttpServletResponse
response
)
throws
UnsupportedEncodingException
{
if
(
commissionExpectedQueryRequest
==
null
)
{
...
...
@@ -287,6 +291,18 @@ public class ApiCommissionExpectedController {
}
/**
* 应收款导出(新)
*
* @param commissionExpectedQueryRequest
* @return
*/
@PostMapping
(
"/export"
)
@Operation
(
summary
=
"应收款导出"
)
public
void
exportCommissionExpectedNew
(
@RequestBody
CommissionExpectedQueryRequest
commissionExpectedQueryRequest
,
HttpServletResponse
response
)
throws
UnsupportedEncodingException
{
apiCommissionExpectedService
.
exportCommissionExpectedNew
(
commissionExpectedQueryRequest
,
response
);
}
/**
* 获取保单应收款
*/
@PostMapping
(
"/getExpectedCommissionByProductlaunchId"
)
...
...
yd-csf-api/src/main/java/com/yd/csf/api/service/ApiCommissionExpectedService.java
0 → 100644
View file @
96d09920
package
com
.
yd
.
csf
.
api
.
service
;
import
com.yd.csf.service.dto.CommissionExpectedQueryRequest
;
import
javax.servlet.http.HttpServletResponse
;
import
java.io.UnsupportedEncodingException
;
public
interface
ApiCommissionExpectedService
{
void
exportCommissionExpectedNew
(
CommissionExpectedQueryRequest
commissionExpectedQueryRequest
,
HttpServletResponse
response
)
throws
UnsupportedEncodingException
;
}
yd-csf-api/src/main/java/com/yd/csf/api/service/impl/ApiCommissionExpectedServiceImpl.java
0 → 100644
View file @
96d09920
package
com
.
yd
.
csf
.
api
.
service
.
impl
;
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.extension.plugins.pagination.Page
;
import
com.yd.common.exception.BusinessException
;
import
com.yd.csf.api.service.ApiCommissionExpectedService
;
import
com.yd.csf.service.dto.CommissionExpectedQueryRequest
;
import
com.yd.csf.service.model.CommissionExpected
;
import
com.yd.csf.service.service.CommissionExpectedService
;
import
com.yd.csf.service.service.PolicyFollowService
;
import
com.yd.csf.service.vo.CommissionExpectedExportDTO
;
import
com.yd.csf.service.vo.CommissionExpectedExportNewDTO
;
import
com.yd.csf.service.vo.CommissionExpectedNewVO
;
import
lombok.extern.slf4j.Slf4j
;
import
org.apache.commons.collections4.CollectionUtils
;
import
org.springframework.stereotype.Service
;
import
org.springframework.web.bind.annotation.RequestBody
;
import
javax.annotation.Resource
;
import
javax.servlet.http.HttpServletResponse
;
import
java.io.UnsupportedEncodingException
;
import
java.net.URLEncoder
;
import
java.util.List
;
import
java.util.stream.Collectors
;
@Slf4j
@Service
public
class
ApiCommissionExpectedServiceImpl
implements
ApiCommissionExpectedService
{
@Resource
private
PolicyFollowService
policyFollowService
;
@Resource
private
CommissionExpectedService
commissionExpectedService
;
/**
* 应收款导出(新)
*
* @param commissionExpectedQueryRequest
* @return
*/
@Override
public
void
exportCommissionExpectedNew
(
CommissionExpectedQueryRequest
commissionExpectedQueryRequest
,
HttpServletResponse
response
)
throws
UnsupportedEncodingException
{
if
(
commissionExpectedQueryRequest
==
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"
);
//保單持有人(中/英、繁简/大小写)、签单人、转介人名称(主)、受保人(中/英、繁简/大小写)、查询保单号列表
List
<
String
>
queryPolicyNoList
=
policyFollowService
.
queryPolicyNoList
(
commissionExpectedQueryRequest
.
getPolicyHolder
(),
commissionExpectedQueryRequest
.
getSigner
(),
commissionExpectedQueryRequest
.
getBrokerName
(),
commissionExpectedQueryRequest
.
getInsured
());
// 构建查询条件
commissionExpectedQueryRequest
.
setPolicyNoList
(
queryPolicyNoList
);
QueryWrapper
<
CommissionExpected
>
queryWrapper
=
commissionExpectedService
.
getQueryWrapper
(
commissionExpectedQueryRequest
);
// 先查询所有符合条件的记录列表
List
<
CommissionExpected
>
allCommissionExpectedList
=
commissionExpectedService
.
list
(
queryWrapper
);
if
(
CollectionUtils
.
isEmpty
(
allCommissionExpectedList
))
{
throw
new
BusinessException
(
"无导出数据"
);
}
commissionExpectedQueryRequest
.
setPageNo
(
1
);
commissionExpectedQueryRequest
.
setPageSize
(
99999999
);
Page
<
CommissionExpectedNewVO
>
page
=
commissionExpectedService
.
getCommissionExpectedVONewPage
(
commissionExpectedQueryRequest
,
allCommissionExpectedList
);
// 转换为导出DTO
List
<
CommissionExpectedExportNewDTO
>
exportDataList
=
page
.
getRecords
().
stream
()
.
map
(
CommissionExpectedExportNewDTO:
:
convertToExportDTO
)
.
collect
(
Collectors
.
toList
());
// 使用EasyExcel导出
try
(
ExcelWriter
excelWriter
=
EasyExcel
.
write
(
response
.
getOutputStream
(),
CommissionExpectedExportDTO
.
class
).
build
())
{
WriteSheet
writeSheet
=
EasyExcel
.
writerSheet
(
"应收款数据"
).
build
();
excelWriter
.
write
(
exportDataList
,
writeSheet
);
}
catch
(
Exception
e
)
{
throw
new
RuntimeException
(
"导出应收款数据失败"
,
e
);
}
}
}
yd-csf-service/src/main/java/com/yd/csf/service/vo/CommissionExpectedExportNewDTO.java
0 → 100644
View file @
96d09920
package
com
.
yd
.
csf
.
service
.
vo
;
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.fasterxml.jackson.annotation.JsonFormat
;
import
com.yd.csf.service.model.CommissionExpected
;
import
lombok.Data
;
import
org.apache.commons.lang3.ObjectUtils
;
import
org.springframework.beans.BeanUtils
;
import
java.math.BigDecimal
;
import
java.util.Date
;
@Data
@ContentRowHeight
(
15
)
@HeadRowHeight
(
20
)
@ColumnWidth
(
20
)
public
class
CommissionExpectedExportNewDTO
{
/**
* 是否实收:1-预计(预计来佣记录) 2-实收(保单来佣表记录)*
*/
@ExcelProperty
(
"是否实收"
)
private
String
typeName
;
/**
* 应收款类型 R=关联保单应收单 U=非关联保单应收单
*/
@ExcelProperty
(
"应收单类型"
)
private
String
commissionBizType
;
/**
* 组编号(应收单编号)*
*/
@ExcelProperty
(
"应收单编号"
)
private
String
no
;
/**
* 预计来佣-保单号
*/
@ExcelProperty
(
"保单号"
)
private
String
policyNo
;
/**
* 预计来佣-对账公司
*/
@ExcelProperty
(
"对账公司"
)
private
String
reconciliationCompany
;
/**
* 预计来佣-入账状态 0=待入账 1=完成入账 2=部分入账 3=已失效
*/
@ExcelProperty
(
"入账状态"
)
private
String
status
;
/**
* 预计来佣-佣金期数(1=第一年; 2=第二年; 3=第三年; 4=第四年; 5=第五年)
*/
@ExcelProperty
(
"入账期数"
)
private
Integer
commissionPeriod
;
/**
* 预计来佣-总来佣期数
*/
@ExcelProperty
(
"入账总期数"
)
private
Integer
totalPeriod
;
/**
* 预计来佣-来佣名称(1:销售拥金;2:销售奖金;3:销售津贴;4:续期佣金;5:服务津贴;等等)
*/
@ExcelProperty
(
"入账项目"
)
private
String
commissionName
;
/**
* 预计来佣-入账年月(估) * (预计来佣日期)
*/
@ExcelProperty
(
"入账年月(估)"
)
@DateTimeFormat
(
"yyyyMM"
)
private
Date
commissionDateMonth
;
/**
* 入账检核记录-入账年月实(来佣日期 yyyyMM)
*/
@ExcelProperty
(
"入账年月(实)"
)
@DateTimeFormat
(
"yyyyMM"
)
private
Date
commissionDate
;
/**
* 预计来佣-已入账来佣比例 (%) ( 累积已入账比例 = 预计来佣实佣率realRate/产品对应来佣率)
*/
@ExcelProperty
(
"累积已入账比例"
)
private
BigDecimal
totalRevenueRatio
;
/**
* 预计来佣-预计入账比例 (%)(产品对应来佣率)
*/
@ExcelProperty
(
"产品对应来佣率"
)
private
BigDecimal
commissionRatio
;
/**
* 入账检核记录-实佣率(入账金额/结算汇率/期交保费) *
* 如果这里是否实收是预计:realRate统计当前预计下面的实际来拥记录的实佣率累加和
* 如果这里是否实收是实收:realRate取realCurrentCommissionRatio赋值
*/
@ExcelProperty
(
"实佣率"
)
private
BigDecimal
realRate
;
/**
* 达成率缺口(1-实佣率/产品对应来佣率)*
*/
@ExcelProperty
(
"达成率缺口"
)
private
BigDecimal
gapRate
;
/**
* 入账检核记录-当前结算汇率(结算汇率(实))
*/
@ExcelProperty
(
"结算汇率实"
)
private
BigDecimal
realExchangeRate
;
/**
* 入账检核记录-来佣金额(已入账金额)(预计类型需要统计累计和值)
*/
@ExcelProperty
(
"已入账金额"
)
private
BigDecimal
realAmount
;
/**
* 入账检核记录-入账检核年月 yyyyMM(检核年月)
*/
@ExcelProperty
(
"检核年月"
)
private
String
realReconciliationYearMonth
;
/**
* 入账检核记录-本次入账比例(实佣率/产品对应来佣率)
*/
@ExcelProperty
(
"本次入账比例"
)
private
BigDecimal
revenueRatio
;
/**
* 预计来佣-待入账金额
*/
@ExcelProperty
(
"待入账金额"
)
private
BigDecimal
pendingAmount
;
/**
* 预计来佣-预计入账金额(HKD)
*/
@ExcelProperty
(
"预计入账金额"
)
private
BigDecimal
expectedAmount
;
/**
* 预计来佣-结算汇率(估)
*/
@ExcelProperty
(
"结算汇率估"
)
private
BigDecimal
defaultExchangeRate
;
/**
* 预计来佣-保险公司
*/
@ExcelProperty
(
"保险公司"
)
private
String
insuranceCompany
;
/**
* 预计来佣-产品计划名称
*/
@ExcelProperty
(
"产品计划"
)
private
String
productName
;
/**
* 年期(供款年期)
*/
@ExcelProperty
(
"年期"
)
private
Integer
issueNumber
;
/**
* 预计来佣-保单币种
*/
@ExcelProperty
(
"保单币种"
)
private
String
policyCurrency
;
/**
* 预计来佣-期交保费
*/
@ExcelProperty
(
"期交保费"
)
private
Object
premium
;
/**
* 入账检核记录-通用备注
*/
@ExcelProperty
(
"备注"
)
private
String
realRemark
;
/**
* 入账检核记录-更新人名称
*/
@ExcelProperty
(
"操作人"
)
private
String
realUpdaterName
;
/**
* 入账检核记录-更新时间
*/
@ExcelProperty
(
"操作时间"
)
@DateTimeFormat
(
"yyyy-MM-dd HH:mm:ss"
)
@ColumnWidth
(
20
)
private
Date
realUpdateTime
;
/**
* 将对象转换为导出DTO
*/
public
static
CommissionExpectedExportNewDTO
convertToExportDTO
(
CommissionExpectedNewVO
vo
)
{
CommissionExpectedExportNewDTO
dto
=
new
CommissionExpectedExportNewDTO
();
BeanUtils
.
copyProperties
(
vo
,
dto
);
dto
.
setTypeName
(
vo
.
getType
()
==
1
?
"预计"
:
"实收"
);
dto
.
setCommissionBizType
(
"R"
.
equals
(
vo
.
getCommissionBizType
())
?
"关联保单应收单"
:
"非关联保单应收单"
);
dto
.
setStatus
(
getStatusText
(
vo
.
getStatus
()));
return
dto
;
}
/**
* 获取状态文本
*/
public
static
String
getStatusText
(
String
status
)
{
if
(
status
==
null
)
return
"未知"
;
switch
(
status
)
{
case
"0"
:
return
"待入账"
;
case
"1"
:
return
"完成入账"
;
case
"2"
:
return
"部分入账"
;
case
"3"
:
return
"已失效"
;
default
:
return
"未知"
;
}
}
}
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