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
69d67a28
Commit
69d67a28
authored
Jun 08, 2026
by
zhangxingmin
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
push
parent
c4db7e50
Hide whitespace changes
Inline
Side-by-side
Showing
3 changed files
with
147 additions
and
6 deletions
+147
-6
yd-csf-api/src/main/java/com/yd/csf/api/controller/ApiCommissionExpectedController.java
+46
-0
yd-csf-service/src/main/java/com/yd/csf/service/dao/CommissionExpectedMapper.java
+6
-6
yd-csf-service/src/main/resources/mappers/CommissionExpectedMapper.xml
+95
-0
No files found.
yd-csf-api/src/main/java/com/yd/csf/api/controller/ApiCommissionExpectedController.java
View file @
69d67a28
...
...
@@ -401,6 +401,52 @@ public class ApiCommissionExpectedController {
// return Result.success(response);
// }
@PostMapping
(
"/receivable_report/statistics"
)
@Operation
(
summary
=
"应收款报表统计"
)
public
Result
<
ReceivableReportResponse
>
receivableReportStatistics
(
@RequestBody
CommissionExpectedQueryRequest
commissionExpectedQueryRequest
)
{
//保單持有人(中/英、繁简/大小写)、签单人、转介人名称(主)、受保人(中/英、繁简/大小写)、查询保单号列表
List
<
String
>
queryPolicyNoList
=
new
ArrayList
<>();
Boolean
queryFlag
=
false
;
if
(
StringUtils
.
isNotBlank
(
commissionExpectedQueryRequest
.
getPolicyHolder
())
||
StringUtils
.
isNotBlank
(
commissionExpectedQueryRequest
.
getSigner
())
||
StringUtils
.
isNotBlank
(
commissionExpectedQueryRequest
.
getBrokerName
())
||
StringUtils
.
isNotBlank
(
commissionExpectedQueryRequest
.
getInsured
())
){
queryPolicyNoList
=
policyFollowService
.
queryPolicyNoList
(
commissionExpectedQueryRequest
.
getPolicyHolder
(),
commissionExpectedQueryRequest
.
getSigner
(),
commissionExpectedQueryRequest
.
getBrokerName
(),
commissionExpectedQueryRequest
.
getInsured
());
queryFlag
=
true
;
}
log
.
info
(
"应收款报表=>receivableReport=>queryPolicyNoList:{}"
,
JSON
.
toJSONString
(
queryPolicyNoList
));
// 构建查询条件
commissionExpectedQueryRequest
.
setPolicyNoList
(
queryPolicyNoList
);
commissionExpectedQueryRequest
.
setQueryFlag
(
queryFlag
);
QueryWrapper
<
CommissionExpected
>
queryWrapper
=
commissionExpectedService
.
getQueryWrapper
(
commissionExpectedQueryRequest
);
// 先查询所有符合条件的记录ID(用于统计)
List
<
CommissionExpected
>
allCommissionExpectedList
=
commissionExpectedService
.
list
(
queryWrapper
);
// 查询统计数据(基于所有符合条件的记录)
CommissionExpectedStatisticsVO
statisticsVO
=
commissionExpectedService
.
getExpectedStatisticsNew
(
allCommissionExpectedList
);
// 应收款报表分页查询 - 按保单号和期数维度统计
// 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);
// }
// enrichReceivableReportWithCompanyName(receivableReportPage);
// receivableReportPage = convertReceivableReport(receivableReportPage);
// 组装返回结果
ReceivableReportResponse
response
=
new
ReceivableReportResponse
();
response
.
setStatisticsVO
(
statisticsVO
);
// response.setPage(receivableReportPage);
return
Result
.
success
(
response
);
}
@PostMapping
(
"/receivable_report"
)
@Operation
(
summary
=
"应收款报表"
)
public
Result
<
ReceivableReportResponse
>
receivableReport
(
@RequestBody
CommissionExpectedQueryRequest
request
)
{
...
...
yd-csf-service/src/main/java/com/yd/csf/service/dao/CommissionExpectedMapper.java
View file @
69d67a28
...
...
@@ -23,12 +23,12 @@ public interface CommissionExpectedMapper extends BaseMapper<CommissionExpected>
CommissionExpectedStatisticsVO
getExpectedStatistics
(
@Param
(
"expectedIds"
)
List
<
Long
>
expectedIds
);
/**
* 应收款报表 - 按保单号和期数维度统计(分页)
* @param page 分页参数
* @param expectedIds 预计来佣ID列表
* @return 应收款报表VO分页列表
*/
//
/**
//
* 应收款报表 - 按保单号和期数维度统计(分页)
//
* @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/resources/mappers/CommissionExpectedMapper.xml
View file @
69d67a28
...
...
@@ -221,4 +221,99 @@
<!-- 可根据需要添加更多条件,如 statusList 等 -->
</sql>
<!-- <select id="receivableReportPage" resultType="com.yd.csf.service.vo.ReceivableReportVO">
select
null as receivableNo,
ce.policy_no as policyNo,
(select pp.name from policy_policyholder pp where pp.policy_biz_id = p.policy_biz_id limit 1) as policyHolder,
(select pp.name_en from policy_policyholder pp where pp.policy_biz_id = p.policy_biz_id limit 1) as policyHolderEn,
(select pi.name from policy_insurant pi where pi.policy_biz_id = p.policy_biz_id limit 1) as insured,
(select pi.name_en from policy_insurant pi where pi.policy_biz_id = p.policy_biz_id limit 1) as insuredEn,
ce.manual_remark as manualRemark,
MAX(ce.reconciliation_company) as reconciliationCompany,
MAX(ce.reconciliation_company_biz_id) as reconciliationCompanyBizId,
ce.commission_period as commissionPeriod,
MAX(ce.total_period) as totalPeriod,
MAX(ce.commission_date) as commissionDate,
ifnull(sum(ce.commission_ratio), 0) as commissionRatio,
ifnull(sum(ce.paid_ratio), 0) as paid,
ifnull(sum(ce.amount), 0) as amount,
MAX(ce.currency) as currency,
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,
MAX(ce.default_exchange_rate) as exchangeRate,
MAX(p.insurance_company) as insuranceCompany,
MAX(p.product_name) as productName,
ifnull(avg(ce.premium), 0) as premium,
MAX(p.currency) as policyCurrency
from commission_expected ce
left join policy p on ce.policy_no = p.policy_no
<where>
ce.commission_biz_type = 'R'
<if test="expectedIds != null and expectedIds.size > 0">
and 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
union all
select
ce.receivable_no as receivableNo,
ce.policy_no as policyNo,
(select pp.name from policy_policyholder pp where pp.policy_biz_id = p.policy_biz_id limit 1) as policyHolder,
(select pp.name_en from policy_policyholder pp where pp.policy_biz_id = p.policy_biz_id limit 1) as policyHolderEn,
(select pi.name from policy_insurant pi where pi.policy_biz_id = p.policy_biz_id limit 1) as insured,
(select pi.name_en from policy_insurant pi where pi.policy_biz_id = p.policy_biz_id limit 1) as insuredEn,
ce.manual_remark as manualRemark,
ce.reconciliation_company as reconciliationCompany,
ce.reconciliation_company_biz_id as reconciliationCompanyBizId,
ce.commission_period as commissionPeriod,
ce.total_period as totalPeriod,
ce.commission_date as commissionDate,
null as commissionRatio,
null as paid,
ifnull(ce.amount, 0) as amount,
ce.currency as currency,
ifnull(ce.expected_amount, 0) as hkdAmount,
ifnull(ce.paid_amount, 0) as paidAmount,
ifnull(ce.expected_amount - ce.paid_amount, 0) as unpaidAmount,
case when ifnull(ce.expected_amount, 0) > 0
then round(ifnull(ce.paid_amount, 0) / ifnull(ce.expected_amount, 0) * 100, 2)
else 0
end as paidRatio,
case when ifnull(ce.expected_amount, 0) > 0
then round((ifnull(ce.expected_amount, 0) - ifnull(ce.paid_amount, 0)) / ifnull(ce.expected_amount, 0) * 100, 2)
else 0
end as unpaidRatio,
ce.default_exchange_rate as exchangeRate,
p.insurance_company as insuranceCompany,
p.product_name as productName,
ifnull(ce.premium, 0) as premium,
null as policyCurrency
from commission_expected ce
left join policy p on ce.policy_no = p.policy_no
<where>
ce.commission_biz_type = 'U'
<if test="expectedIds != null and expectedIds.size > 0">
and ce.id in
<foreach collection="expectedIds" item="item" open="(" close=")" separator=",">
#{item}
</foreach>
</if>
and ce.is_deleted = 0
</where>
</select>-->
</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