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
266c74cd
Commit
266c74cd
authored
Jan 12, 2026
by
jianan
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
前端对接问题修复108
parent
527cdcf1
Hide whitespace changes
Inline
Side-by-side
Showing
8 changed files
with
247 additions
and
3 deletions
+247
-3
yd-csf-api/src/main/java/com/yd/csf/api/controller/ApiCommissionExpectedController.java
+37
-0
yd-csf-api/src/main/java/com/yd/csf/api/dto/ReceivableReportResponse.java
+21
-0
yd-csf-api/src/main/java/com/yd/csf/api/service/impl/ApiExpectedFortuneServiceImpl.java
+3
-3
yd-csf-service/src/main/java/com/yd/csf/service/dao/CommissionExpectedMapper.java
+12
-0
yd-csf-service/src/main/java/com/yd/csf/service/service/CommissionExpectedService.java
+10
-0
yd-csf-service/src/main/java/com/yd/csf/service/service/impl/CommissionExpectedServiceImpl.java
+7
-0
yd-csf-service/src/main/java/com/yd/csf/service/vo/ReceivableReportVO.java
+117
-0
yd-csf-service/src/main/resources/mappers/CommissionExpectedMapper.xml
+40
-0
No files found.
yd-csf-api/src/main/java/com/yd/csf/api/controller/ApiCommissionExpectedController.java
View file @
266c74cd
...
@@ -4,10 +4,12 @@ import com.alibaba.excel.EasyExcel;
...
@@ -4,10 +4,12 @@ import com.alibaba.excel.EasyExcel;
import
com.alibaba.excel.ExcelWriter
;
import
com.alibaba.excel.ExcelWriter
;
import
com.alibaba.excel.write.metadata.WriteSheet
;
import
com.alibaba.excel.write.metadata.WriteSheet
;
import
com.baomidou.mybatisplus.core.conditions.query.QueryWrapper
;
import
com.baomidou.mybatisplus.core.conditions.query.QueryWrapper
;
import
com.baomidou.mybatisplus.core.metadata.IPage
;
import
com.baomidou.mybatisplus.extension.plugins.pagination.Page
;
import
com.baomidou.mybatisplus.extension.plugins.pagination.Page
;
import
com.yd.common.enums.ResultCode
;
import
com.yd.common.enums.ResultCode
;
import
com.yd.common.result.Result
;
import
com.yd.common.result.Result
;
import
com.yd.csf.api.dto.QueryCommissionExpectedByPageResponse
;
import
com.yd.csf.api.dto.QueryCommissionExpectedByPageResponse
;
import
com.yd.csf.api.dto.ReceivableReportResponse
;
import
com.yd.csf.service.common.ErrorCode
;
import
com.yd.csf.service.common.ErrorCode
;
import
com.yd.csf.service.dto.*
;
import
com.yd.csf.service.dto.*
;
import
com.yd.csf.service.model.CommissionExpected
;
import
com.yd.csf.service.model.CommissionExpected
;
...
@@ -15,8 +17,10 @@ import com.yd.csf.service.service.CommissionExpectedService;
...
@@ -15,8 +17,10 @@ import com.yd.csf.service.service.CommissionExpectedService;
import
com.yd.csf.service.vo.CommissionExpectedExportDTO
;
import
com.yd.csf.service.vo.CommissionExpectedExportDTO
;
import
com.yd.csf.service.vo.CommissionExpectedStatisticsVO
;
import
com.yd.csf.service.vo.CommissionExpectedStatisticsVO
;
import
com.yd.csf.service.vo.CommissionExpectedVO
;
import
com.yd.csf.service.vo.CommissionExpectedVO
;
import
com.yd.csf.service.vo.ReceivableReportVO
;
import
io.swagger.v3.oas.annotations.Operation
;
import
io.swagger.v3.oas.annotations.Operation
;
import
io.swagger.v3.oas.annotations.tags.Tag
;
import
io.swagger.v3.oas.annotations.tags.Tag
;
import
org.apache.commons.collections4.CollectionUtils
;
import
org.apache.commons.lang3.StringUtils
;
import
org.apache.commons.lang3.StringUtils
;
import
org.springframework.web.bind.annotation.*
;
import
org.springframework.web.bind.annotation.*
;
...
@@ -231,4 +235,37 @@ public class ApiCommissionExpectedController {
...
@@ -231,4 +235,37 @@ public class ApiCommissionExpectedController {
return
Result
.
success
(
true
);
return
Result
.
success
(
true
);
}
}
/**
* 应收款报表
*
* @param commissionExpectedQueryRequest
* @return
*/
@PostMapping
(
"/receivable_report"
)
@Operation
(
summary
=
"应收款报表"
)
public
Result
<
ReceivableReportResponse
>
receivableReport
(
@RequestBody
CommissionExpectedQueryRequest
commissionExpectedQueryRequest
)
{
// 构建查询条件
QueryWrapper
<
CommissionExpected
>
queryWrapper
=
commissionExpectedService
.
getQueryWrapper
(
commissionExpectedQueryRequest
);
// 先查询所有符合条件的记录ID(用于统计)
List
<
CommissionExpected
>
allCommissionExpectedList
=
commissionExpectedService
.
list
(
queryWrapper
);
List
<
Long
>
allExpectedIdList
=
allCommissionExpectedList
.
stream
().
map
(
CommissionExpected:
:
getId
).
collect
(
Collectors
.
toList
());
// 查询统计数据(基于所有符合条件的记录)
CommissionExpectedStatisticsVO
statisticsVO
=
commissionExpectedService
.
getExpectedStatistics
(
allExpectedIdList
);
// 应收款报表分页查询 - 按保单号和期数维度统计
Page
<
ReceivableReportVO
>
reportPage
=
new
Page
<>(
commissionExpectedQueryRequest
.
getPageNo
(),
commissionExpectedQueryRequest
.
getPageSize
());
IPage
<
ReceivableReportVO
>
receivableReportPage
=
new
Page
<>(
commissionExpectedQueryRequest
.
getPageNo
(),
commissionExpectedQueryRequest
.
getPageSize
());
if
(!
CollectionUtils
.
isEmpty
(
allExpectedIdList
))
{
receivableReportPage
=
commissionExpectedService
.
receivableReportPage
(
reportPage
,
allExpectedIdList
);
}
// 组装返回结果
ReceivableReportResponse
response
=
new
ReceivableReportResponse
();
response
.
setStatisticsVO
(
statisticsVO
);
response
.
setPage
(
receivableReportPage
);
return
Result
.
success
(
response
);
}
}
}
yd-csf-api/src/main/java/com/yd/csf/api/dto/ReceivableReportResponse.java
0 → 100644
View file @
266c74cd
package
com
.
yd
.
csf
.
api
.
dto
;
import
com.baomidou.mybatisplus.core.metadata.IPage
;
import
com.yd.csf.service.vo.CommissionExpectedStatisticsVO
;
import
com.yd.csf.service.vo.ReceivableReportVO
;
import
io.swagger.v3.oas.annotations.media.Schema
;
import
lombok.Data
;
/**
* 应收款报表响应
*/
@Data
@Schema
(
description
=
"应收款报表响应"
)
public
class
ReceivableReportResponse
{
@Schema
(
description
=
"应收款统计信息"
)
private
CommissionExpectedStatisticsVO
statisticsVO
;
@Schema
(
description
=
"应收款报表分页列表 - 按保单号和期数维度统计"
)
private
IPage
<
ReceivableReportVO
>
page
;
}
yd-csf-api/src/main/java/com/yd/csf/api/service/impl/ApiExpectedFortuneServiceImpl.java
View file @
266c74cd
...
@@ -550,9 +550,9 @@ public class ApiExpectedFortuneServiceImpl implements ApiExpectedFortuneService
...
@@ -550,9 +550,9 @@ public class ApiExpectedFortuneServiceImpl implements ApiExpectedFortuneService
ExpectedFortuneStatisticsVO
statisticsVO
=
this
.
getStatistics
(
allFortuneIdList
);
ExpectedFortuneStatisticsVO
statisticsVO
=
this
.
getStatistics
(
allFortuneIdList
);
// 应付款报表分页查询 - 按保单号和期数维度统计
// 应付款报表分页查询 - 按保单号和期数维度统计
Page
<
com
.
yd
.
csf
.
service
.
vo
.
PayableReportVO
>
reportPage
=
new
Page
<>(
request
.
getPageNo
(),
request
.
getPageSize
());
Page
<
PayableReportVO
>
reportPage
=
new
Page
<>(
request
.
getPageNo
(),
request
.
getPageSize
());
IPage
<
com
.
yd
.
csf
.
service
.
vo
.
PayableReportVO
>
payableReportPage
=
null
;
IPage
<
PayableReportVO
>
payableReportPage
=
new
Page
<>(
request
.
getPageNo
(),
request
.
getPageSize
())
;
if
(
!
CollectionUtils
.
isEmpty
(
allFortuneIdList
))
{
if
(
CollectionUtils
.
isEmpty
(
allFortuneIdList
))
{
payableReportPage
=
iExpectedFortuneService
.
payableReportPage
(
reportPage
,
allFortuneIdList
);
payableReportPage
=
iExpectedFortuneService
.
payableReportPage
(
reportPage
,
allFortuneIdList
);
}
}
...
...
yd-csf-service/src/main/java/com/yd/csf/service/dao/CommissionExpectedMapper.java
View file @
266c74cd
package
com
.
yd
.
csf
.
service
.
dao
;
package
com
.
yd
.
csf
.
service
.
dao
;
import
com.baomidou.mybatisplus.core.metadata.IPage
;
import
com.baomidou.mybatisplus.extension.plugins.pagination.Page
;
import
com.yd.csf.service.model.CommissionExpected
;
import
com.yd.csf.service.model.CommissionExpected
;
import
com.baomidou.mybatisplus.core.mapper.BaseMapper
;
import
com.baomidou.mybatisplus.core.mapper.BaseMapper
;
import
com.yd.csf.service.vo.CommissionExpectedStatisticsVO
;
import
com.yd.csf.service.vo.CommissionExpectedStatisticsVO
;
import
com.yd.csf.service.vo.ReceivableReportVO
;
import
org.apache.ibatis.annotations.Param
;
import
org.apache.ibatis.annotations.Param
;
import
java.util.List
;
import
java.util.List
;
...
@@ -16,6 +19,15 @@ import java.util.List;
...
@@ -16,6 +19,15 @@ import java.util.List;
public
interface
CommissionExpectedMapper
extends
BaseMapper
<
CommissionExpected
>
{
public
interface
CommissionExpectedMapper
extends
BaseMapper
<
CommissionExpected
>
{
CommissionExpectedStatisticsVO
getExpectedStatistics
(
@Param
(
"expectedIds"
)
List
<
Long
>
expectedIds
);
CommissionExpectedStatisticsVO
getExpectedStatistics
(
@Param
(
"expectedIds"
)
List
<
Long
>
expectedIds
);
/**
* 应收款报表 - 按保单号和期数维度统计(分页)
* @param page 分页参数
* @param expectedIds 预计来佣ID列表
* @return 应收款报表VO分页列表
*/
IPage
<
ReceivableReportVO
>
receivableReportPage
(
@Param
(
"page"
)
Page
<
ReceivableReportVO
>
page
,
@Param
(
"expectedIds"
)
List
<
Long
>
expectedIds
);
}
}
...
...
yd-csf-service/src/main/java/com/yd/csf/service/service/CommissionExpectedService.java
View file @
266c74cd
package
com
.
yd
.
csf
.
service
.
service
;
package
com
.
yd
.
csf
.
service
.
service
;
import
com.baomidou.mybatisplus.core.conditions.query.QueryWrapper
;
import
com.baomidou.mybatisplus.core.conditions.query.QueryWrapper
;
import
com.baomidou.mybatisplus.core.metadata.IPage
;
import
com.baomidou.mybatisplus.extension.plugins.pagination.Page
;
import
com.baomidou.mybatisplus.extension.plugins.pagination.Page
;
import
com.yd.csf.service.dto.CommissionExpectedAddRequest
;
import
com.yd.csf.service.dto.CommissionExpectedAddRequest
;
import
com.yd.csf.service.dto.CommissionExpectedQueryRequest
;
import
com.yd.csf.service.dto.CommissionExpectedQueryRequest
;
...
@@ -9,6 +10,7 @@ import com.yd.csf.service.model.CommissionExpected;
...
@@ -9,6 +10,7 @@ import com.yd.csf.service.model.CommissionExpected;
import
com.baomidou.mybatisplus.extension.service.IService
;
import
com.baomidou.mybatisplus.extension.service.IService
;
import
com.yd.csf.service.vo.CommissionExpectedStatisticsVO
;
import
com.yd.csf.service.vo.CommissionExpectedStatisticsVO
;
import
com.yd.csf.service.vo.CommissionExpectedVO
;
import
com.yd.csf.service.vo.CommissionExpectedVO
;
import
com.yd.csf.service.vo.ReceivableReportVO
;
import
javax.servlet.http.HttpServletRequest
;
import
javax.servlet.http.HttpServletRequest
;
import
java.util.List
;
import
java.util.List
;
...
@@ -58,4 +60,12 @@ public interface CommissionExpectedService extends IService<CommissionExpected>
...
@@ -58,4 +60,12 @@ public interface CommissionExpectedService extends IService<CommissionExpected>
CommissionExpected
getByBizId
(
String
commissionExpectedBizId
);
CommissionExpected
getByBizId
(
String
commissionExpectedBizId
);
void
getExpectedCommissionByProductlaunchId
(
String
policyNo
,
String
productLaunchBizId
,
String
insuranceCompanyBizId
,
String
reconciliationCompany
,
String
reconciliationCompanyCode
,
String
reconciliationCompanyBizId
);
void
getExpectedCommissionByProductlaunchId
(
String
policyNo
,
String
productLaunchBizId
,
String
insuranceCompanyBizId
,
String
reconciliationCompany
,
String
reconciliationCompanyCode
,
String
reconciliationCompanyBizId
);
/**
* 应收款报表 - 按保单号和期数维度统计(分页)
* @param page 分页参数
* @param expectedIds 预计来佣ID列表
* @return 应收款报表VO分页列表
*/
IPage
<
ReceivableReportVO
>
receivableReportPage
(
Page
<
ReceivableReportVO
>
page
,
List
<
Long
>
expectedIds
);
}
}
yd-csf-service/src/main/java/com/yd/csf/service/service/impl/CommissionExpectedServiceImpl.java
View file @
266c74cd
...
@@ -3,6 +3,7 @@ package com.yd.csf.service.service.impl;
...
@@ -3,6 +3,7 @@ package com.yd.csf.service.service.impl;
import
cn.hutool.core.collection.CollUtil
;
import
cn.hutool.core.collection.CollUtil
;
import
cn.hutool.core.convert.Convert
;
import
cn.hutool.core.convert.Convert
;
import
com.baomidou.mybatisplus.core.conditions.query.QueryWrapper
;
import
com.baomidou.mybatisplus.core.conditions.query.QueryWrapper
;
import
com.baomidou.mybatisplus.core.metadata.IPage
;
import
com.baomidou.mybatisplus.extension.plugins.pagination.Page
;
import
com.baomidou.mybatisplus.extension.plugins.pagination.Page
;
import
com.baomidou.mybatisplus.extension.service.impl.ServiceImpl
;
import
com.baomidou.mybatisplus.extension.service.impl.ServiceImpl
;
import
com.yd.common.constant.CommonConstant
;
import
com.yd.common.constant.CommonConstant
;
...
@@ -21,6 +22,7 @@ import com.yd.csf.service.service.*;
...
@@ -21,6 +22,7 @@ import com.yd.csf.service.service.*;
import
com.yd.csf.service.dao.CommissionExpectedMapper
;
import
com.yd.csf.service.dao.CommissionExpectedMapper
;
import
com.yd.csf.service.vo.CommissionExpectedStatisticsVO
;
import
com.yd.csf.service.vo.CommissionExpectedStatisticsVO
;
import
com.yd.csf.service.vo.CommissionExpectedVO
;
import
com.yd.csf.service.vo.CommissionExpectedVO
;
import
com.yd.csf.service.vo.ReceivableReportVO
;
import
com.yd.product.feign.client.expectedspecies.ApiExpectedSpeciesFeignClient
;
import
com.yd.product.feign.client.expectedspecies.ApiExpectedSpeciesFeignClient
;
import
com.yd.product.feign.request.expectedspecies.ApiExpectedSpeciesListRequest
;
import
com.yd.product.feign.request.expectedspecies.ApiExpectedSpeciesListRequest
;
import
com.yd.product.feign.response.expectedspecies.ApiExpectedSpeciesListResponse
;
import
com.yd.product.feign.response.expectedspecies.ApiExpectedSpeciesListResponse
;
...
@@ -514,6 +516,11 @@ public class CommissionExpectedServiceImpl extends ServiceImpl<CommissionExpecte
...
@@ -514,6 +516,11 @@ public class CommissionExpectedServiceImpl extends ServiceImpl<CommissionExpecte
}
}
}
}
@Override
public
IPage
<
ReceivableReportVO
>
receivableReportPage
(
Page
<
ReceivableReportVO
>
page
,
List
<
Long
>
expectedIds
)
{
return
baseMapper
.
receivableReportPage
(
page
,
expectedIds
);
}
}
}
...
...
yd-csf-service/src/main/java/com/yd/csf/service/vo/ReceivableReportVO.java
0 → 100644
View file @
266c74cd
package
com
.
yd
.
csf
.
service
.
vo
;
import
com.fasterxml.jackson.annotation.JsonFormat
;
import
io.swagger.v3.oas.annotations.media.Schema
;
import
lombok.Data
;
import
java.math.BigDecimal
;
import
java.time.LocalDate
;
/**
* 应收款报表VO - 按保单号和期数维度统计
*/
@Data
public
class
ReceivableReportVO
{
/**
* 保单号
*/
@Schema
(
description
=
"保单号"
)
private
String
policyNo
;
/**
* 对账公司
*/
@Schema
(
description
=
"对账公司"
)
private
String
reconciliationCompany
;
/**
* 入账期数(1=第一年; 2=第二年; 3=第三年; 4=第四年; 5=第五年)
*/
@Schema
(
description
=
"入账期数"
)
private
Integer
commissionPeriod
;
/**
* 入账总期数
*/
@Schema
(
description
=
"入账总期数"
)
private
Integer
totalPeriod
;
/**
* 入账日(估)
*/
@Schema
(
description
=
"入账日(估)(保单生效日+2个月+(期数-1)年)"
)
@JsonFormat
(
pattern
=
"yyyy-MM-dd"
,
timezone
=
"GMT+8"
)
private
LocalDate
commissionDate
;
/**
* 预计入账比例(%)
*/
@Schema
(
description
=
"预计入账比例(%)"
)
private
BigDecimal
commissionRatio
;
/**
* 预估入账金额(原始币种)
*/
@Schema
(
description
=
"预估入账金额(原始币种)"
)
private
BigDecimal
amount
;
/**
* 预估入账金额(港币)
*/
@Schema
(
description
=
"预估入账金额(港币)"
)
private
BigDecimal
hkdAmount
;
/**
* 已入账金额(港币)
*/
@Schema
(
description
=
"已入账金额(港币)"
)
private
BigDecimal
paidAmount
;
/**
* 待入账金额(港币)
*/
@Schema
(
description
=
"待入账金额(港币)"
)
private
BigDecimal
unpaidAmount
;
/**
* 已入账比例(%)
*/
@Schema
(
description
=
"已入账比例(%)"
)
private
BigDecimal
paidRatio
;
/**
* 待入账比例(%)
*/
@Schema
(
description
=
"待入账比例(%)"
)
private
BigDecimal
unpaidRatio
;
/**
* 结算汇率(估)
*/
@Schema
(
description
=
"结算汇率(估)"
)
private
BigDecimal
exchangeRate
;
/**
* 保险公司
*/
@Schema
(
description
=
"保险公司"
)
private
String
insuranceCompany
;
/**
* 产品计划
*/
@Schema
(
description
=
"产品计划"
)
private
String
productName
;
/**
* 期交保费
*/
@Schema
(
description
=
"期交保费"
)
private
BigDecimal
premium
;
/**
* 保单币种
*/
@Schema
(
description
=
"保单币种"
)
private
String
policyCurrency
;
}
yd-csf-service/src/main/resources/mappers/CommissionExpectedMapper.xml
View file @
266c74cd
...
@@ -64,4 +64,44 @@
...
@@ -64,4 +64,44 @@
</if>
</if>
</where>
</where>
</select>
</select>
<select
id=
"receivableReportPage"
resultType=
"com.yd.csf.service.vo.ReceivableReportVO"
>
select
ce.policy_no as policyNo,
ce.reconciliation_company as reconciliationCompany,
ce.commission_period as commissionPeriod,
ce.total_period as totalPeriod,
DATE_ADD(DATE_ADD(p.effective_date, INTERVAL 2 MONTH), INTERVAL (ce.commission_period - 1) YEAR) as commissionDate,
ifnull(avg(ce.commission_ratio), 0) as commissionRatio,
ifnull(sum(ce.amount), 0) as amount,
ifnull(sum(ce.expected_amount), 0) as hkdAmount,
ifnull(sum(ce.paid_amount), 0) as paidAmount,
ifnull(sum(ce.expected_amount) - sum(ce.paid_amount), 0) as unpaidAmount,
case when ifnull(sum(ce.expected_amount), 0) > 0
then round(ifnull(sum(ce.paid_amount), 0) / ifnull(sum(ce.expected_amount), 0) * 100, 2)
else 0
end as paidRatio,
case when ifnull(sum(ce.expected_amount), 0) > 0
then round((ifnull(sum(ce.expected_amount), 0) - ifnull(sum(ce.paid_amount), 0)) / ifnull(sum(ce.expected_amount), 0) * 100, 2)
else 0
end as unpaidRatio,
ifnull(avg(ce.default_exchange_rate), 0) as exchangeRate,
p.insurance_company as insuranceCompany,
p.product_name as productName,
ifnull(avg(ce.premium), 0) as premium,
p.currency as policyCurrency
from commission_expected ce
left join policy p on ce.policy_no = p.policy_no
<where>
<if
test=
"expectedIds != null and expectedIds.size > 0"
>
ce.id in
<foreach
collection=
"expectedIds"
item=
"item"
open=
"("
close=
")"
separator=
","
>
#{item}
</foreach>
</if>
and ce.is_deleted = 0
</where>
group by ce.policy_no, ce.commission_period
order by ce.policy_no, ce.commission_period
</select>
</mapper>
</mapper>
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