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
1df945a4
Commit
1df945a4
authored
May 28, 2026
by
zhangxingmin
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
push
parent
a3efb7ed
Show whitespace changes
Inline
Side-by-side
Showing
5 changed files
with
116 additions
and
101 deletions
+116
-101
yd-csf-api/src/main/java/com/yd/csf/api/controller/ApiCommissionExpectedController.java
+1
-4
yd-csf-service/src/main/java/com/yd/csf/service/dao/CommissionExpectedMapper.java
+3
-1
yd-csf-service/src/main/java/com/yd/csf/service/service/CommissionExpectedService.java
+1
-1
yd-csf-service/src/main/java/com/yd/csf/service/service/impl/CommissionExpectedServiceImpl.java
+2
-2
yd-csf-service/src/main/resources/mappers/CommissionExpectedMapper.xml
+109
-93
No files found.
yd-csf-api/src/main/java/com/yd/csf/api/controller/ApiCommissionExpectedController.java
View file @
1df945a4
...
@@ -384,10 +384,7 @@ public class ApiCommissionExpectedController {
...
@@ -384,10 +384,7 @@ public class ApiCommissionExpectedController {
// 应收款报表分页查询 - 按保单号和期数维度统计
// 应收款报表分页查询 - 按保单号和期数维度统计
Page
<
ReceivableReportVO
>
reportPage
=
new
Page
<>(
commissionExpectedQueryRequest
.
getPageNo
(),
commissionExpectedQueryRequest
.
getPageSize
());
Page
<
ReceivableReportVO
>
reportPage
=
new
Page
<>(
commissionExpectedQueryRequest
.
getPageNo
(),
commissionExpectedQueryRequest
.
getPageSize
());
IPage
<
ReceivableReportVO
>
receivableReportPage
=
new
Page
<>(
commissionExpectedQueryRequest
.
getPageNo
(),
commissionExpectedQueryRequest
.
getPageSize
());
IPage
<
ReceivableReportVO
>
receivableReportPage
=
commissionExpectedService
.
receivableReportPage
(
reportPage
,
queryWrapper
);
if
(!
CollectionUtils
.
isEmpty
(
allExpectedIdList
))
{
receivableReportPage
=
commissionExpectedService
.
receivableReportPage
(
reportPage
,
allExpectedIdList
);
}
// enrichReceivableReportWithCompanyName(receivableReportPage);
// enrichReceivableReportWithCompanyName(receivableReportPage);
receivableReportPage
=
convertReceivableReport
(
receivableReportPage
);
receivableReportPage
=
convertReceivableReport
(
receivableReportPage
);
// 组装返回结果
// 组装返回结果
...
...
yd-csf-service/src/main/java/com/yd/csf/service/dao/CommissionExpectedMapper.java
View file @
1df945a4
package
com
.
yd
.
csf
.
service
.
dao
;
package
com
.
yd
.
csf
.
service
.
dao
;
import
com.baomidou.mybatisplus.core.conditions.query.QueryWrapper
;
import
com.baomidou.mybatisplus.core.metadata.IPage
;
import
com.baomidou.mybatisplus.core.metadata.IPage
;
import
com.baomidou.mybatisplus.core.toolkit.Constants
;
import
com.baomidou.mybatisplus.extension.plugins.pagination.Page
;
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
;
...
@@ -27,7 +29,7 @@ public interface CommissionExpectedMapper extends BaseMapper<CommissionExpected>
...
@@ -27,7 +29,7 @@ public interface CommissionExpectedMapper extends BaseMapper<CommissionExpected>
* @return 应收款报表VO分页列表
* @return 应收款报表VO分页列表
*/
*/
IPage
<
ReceivableReportVO
>
receivableReportPage
(
@Param
(
"page"
)
Page
<
ReceivableReportVO
>
page
,
IPage
<
ReceivableReportVO
>
receivableReportPage
(
@Param
(
"page"
)
Page
<
ReceivableReportVO
>
page
,
@Param
(
"expectedIds"
)
List
<
Long
>
expectedIds
);
@Param
(
Constants
.
WRAPPER
)
QueryWrapper
<
CommissionExpected
>
wrapper
);
}
}
...
...
yd-csf-service/src/main/java/com/yd/csf/service/service/CommissionExpectedService.java
View file @
1df945a4
...
@@ -82,7 +82,7 @@ public interface CommissionExpectedService extends IService<CommissionExpected>
...
@@ -82,7 +82,7 @@ public interface CommissionExpectedService extends IService<CommissionExpected>
* @param expectedIds 预计来佣ID列表
* @param expectedIds 预计来佣ID列表
* @return 应收款报表VO分页列表
* @return 应收款报表VO分页列表
*/
*/
IPage
<
ReceivableReportVO
>
receivableReportPage
(
Page
<
ReceivableReportVO
>
page
,
List
<
Long
>
expectedIds
);
IPage
<
ReceivableReportVO
>
receivableReportPage
(
Page
<
ReceivableReportVO
>
page
,
QueryWrapper
<
CommissionExpected
>
wrapper
);
void
testExpectedCommission
(
String
policyNo
,
String
effectiveDate
,
String
coolingOffEndDate
)
throws
IOException
;
void
testExpectedCommission
(
String
policyNo
,
String
effectiveDate
,
String
coolingOffEndDate
)
throws
IOException
;
...
...
yd-csf-service/src/main/java/com/yd/csf/service/service/impl/CommissionExpectedServiceImpl.java
View file @
1df945a4
...
@@ -1482,8 +1482,8 @@ public class CommissionExpectedServiceImpl extends ServiceImpl<CommissionExpecte
...
@@ -1482,8 +1482,8 @@ public class CommissionExpectedServiceImpl extends ServiceImpl<CommissionExpecte
}
}
@Override
@Override
public
IPage
<
ReceivableReportVO
>
receivableReportPage
(
Page
<
ReceivableReportVO
>
page
,
List
<
Long
>
expectedIds
)
{
public
IPage
<
ReceivableReportVO
>
receivableReportPage
(
Page
<
ReceivableReportVO
>
page
,
QueryWrapper
<
CommissionExpected
>
wrapper
)
{
return
baseMapper
.
receivableReportPage
(
page
,
expectedIds
);
return
baseMapper
.
receivableReportPage
(
page
,
wrapper
);
}
}
@Override
@Override
...
...
yd-csf-service/src/main/resources/mappers/CommissionExpectedMapper.xml
View file @
1df945a4
...
@@ -68,98 +68,114 @@
...
@@ -68,98 +68,114 @@
</where>
</where>
</select>
</select>
<select
id=
"receivableReportPage"
resultType=
"com.yd.csf.service.vo.ReceivableReportVO"
>
<select
id=
"receivableReportPage"
resultType=
"com.yd.csf.service.vo.ReceivableReportVO"
>
select
-- 关联保单应收单 R
null as receivableNo,
SELECT
ce.policy_no as policyNo,
NULL AS receivableNo,
(select pp.name from policy_policyholder pp where pp.policy_biz_id = p.policy_biz_id limit 1) as policyHolder,
ce.policy_no AS policyNo,
(select pp.name_en from policy_policyholder pp where pp.policy_biz_id = p.policy_biz_id limit 1) as policyHolderEn,
COALESCE(pp.name, '') AS policyHolder,
(select pi.name from policy_insurant pi where pi.policy_biz_id = p.policy_biz_id limit 1) as insured,
COALESCE(pp.name_en, '') AS policyHolderEn,
(select pi.name_en from policy_insurant pi where pi.policy_biz_id = p.policy_biz_id limit 1) as insuredEn,
COALESCE(pi.name, '') AS insured,
ce.manual_remark as manualRemark,
COALESCE(pi.name_en, '') AS insuredEn,
MAX(ce.reconciliation_company) as reconciliationCompany,
MAX(ce.manual_remark) AS manualRemark,
MAX(ce.reconciliation_company_biz_id) as reconciliationCompanyBizId,
MAX(ce.reconciliation_company) AS reconciliationCompany,
ce.commission_period as commissionPeriod,
MAX(ce.reconciliation_company_biz_id) AS reconciliationCompanyBizId,
MAX(ce.total_period) as totalPeriod,
ce.commission_period AS commissionPeriod,
MAX(ce.commission_date) as commissionDate,
MAX(ce.total_period) AS totalPeriod,
ifnull(sum(ce.commission_ratio), 0) as commissionRatio,
MAX(ce.commission_date) AS commissionDate,
ifnull(sum(ce.paid_ratio), 0) as paid,
IFNULL(SUM(ce.commission_ratio), 0) AS commissionRatio,
ifnull(sum(ce.amount), 0) as amount,
IFNULL(SUM(ce.paid_ratio), 0) AS paid,
MAX(ce.currency) as currency,
IFNULL(SUM(ce.amount), 0) AS amount,
ifnull(sum(ce.expected_amount), 0) as hkdAmount,
MAX(ce.currency) AS currency,
ifnull(sum(ce.paid_amount), 0) as paidAmount,
IFNULL(SUM(ce.expected_amount), 0) AS hkdAmount,
ifnull(sum(ce.expected_amount) - sum(ce.paid_amount), 0) as unpaidAmount,
IFNULL(SUM(ce.paid_amount), 0) AS paidAmount,
case when ifnull(sum(ce.expected_amount), 0) > 0
IFNULL(SUM(ce.expected_amount) - SUM(ce.paid_amount), 0) AS unpaidAmount,
then round(ifnull(sum(ce.paid_amount), 0) / ifnull(sum(ce.expected_amount), 0) * 100, 2)
CASE WHEN IFNULL(SUM(ce.expected_amount), 0) > 0
else 0
THEN ROUND(IFNULL(SUM(ce.paid_amount), 0) / IFNULL(SUM(ce.expected_amount), 0) * 100, 2)
end as paidRatio,
ELSE 0
case when ifnull(sum(ce.expected_amount), 0) > 0
END AS paidRatio,
then round((ifnull(sum(ce.expected_amount), 0) - ifnull(sum(ce.paid_amount), 0)) / ifnull(sum(ce.expected_amount), 0) * 100, 2)
CASE WHEN IFNULL(SUM(ce.expected_amount), 0) > 0
else 0
THEN ROUND((IFNULL(SUM(ce.expected_amount), 0) - IFNULL(SUM(ce.paid_amount), 0)) / IFNULL(SUM(ce.expected_amount), 0) * 100, 2)
end as unpaidRatio,
ELSE 0
MAX(ce.default_exchange_rate) as exchangeRate,
END AS unpaidRatio,
MAX(p.insurance_company) as insuranceCompany,
MAX(ce.default_exchange_rate) AS exchangeRate,
MAX(p.product_name) as productName,
MAX(p.insurance_company) AS insuranceCompany,
ifnull(avg(ce.premium), 0) as premium,
MAX(p.product_name) AS productName,
MAX(p.currency) as policyCurrency
IFNULL(AVG(ce.premium), 0) AS premium,
from commission_expected ce
MAX(p.currency) AS policyCurrency
left join policy p on ce.policy_no = p.policy_no
FROM commission_expected ce
<where>
LEFT JOIN policy p ON ce.policy_no = p.policy_no
ce.commission_biz_type = 'R'
LEFT JOIN (
<if
test=
"expectedIds != null and expectedIds.size > 0"
>
SELECT policy_biz_id, name, name_en,
and ce.id in
ROW_NUMBER() OVER (PARTITION BY policy_biz_id ORDER BY id) AS rn
<foreach
collection=
"expectedIds"
item=
"item"
open=
"("
close=
")"
separator=
","
>
FROM policy_policyholder
#{item}
WHERE is_deleted = 0
</foreach>
) pp ON p.policy_biz_id = pp.policy_biz_id AND pp.rn = 1
</if>
LEFT JOIN (
and ce.is_deleted = 0
SELECT policy_biz_id, name, name_en,
</where>
ROW_NUMBER() OVER (PARTITION BY policy_biz_id ORDER BY id) AS rn
group by ce.policy_no, ce.commission_period
FROM policy_insurant
union all
WHERE is_deleted = 0
select
) pi ON p.policy_biz_id = pi.policy_biz_id AND pi.rn = 1
ce.receivable_no as receivableNo,
WHERE ce.commission_biz_type = 'R'
ce.policy_no as policyNo,
AND ce.is_deleted = 0
(select pp.name from policy_policyholder pp where pp.policy_biz_id = p.policy_biz_id limit 1) as policyHolder,
${ew.customSqlSegment}
(select pp.name_en from policy_policyholder pp where pp.policy_biz_id = p.policy_biz_id limit 1) as policyHolderEn,
GROUP BY ce.policy_no, ce.commission_period
(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,
UNION ALL
ce.manual_remark as manualRemark,
ce.reconciliation_company as reconciliationCompany,
-- 非关联保单应收单 U
ce.reconciliation_company_biz_id as reconciliationCompanyBizId,
SELECT
ce.commission_period as commissionPeriod,
ce.receivable_no AS receivableNo,
ce.total_period as totalPeriod,
ce.policy_no AS policyNo,
ce.commission_date as commissionDate,
COALESCE(pp.name, '') AS policyHolder,
null as commissionRatio,
COALESCE(pp.name_en, '') AS policyHolderEn,
null as paid,
COALESCE(pi.name, '') AS insured,
ifnull(ce.amount, 0) as amount,
COALESCE(pi.name_en, '') AS insuredEn,
ce.currency as currency,
ce.manual_remark AS manualRemark,
ifnull(ce.expected_amount, 0) as hkdAmount,
ce.reconciliation_company AS reconciliationCompany,
ifnull(ce.paid_amount, 0) as paidAmount,
ce.reconciliation_company_biz_id AS reconciliationCompanyBizId,
ifnull(ce.expected_amount - ce.paid_amount, 0) as unpaidAmount,
ce.commission_period AS commissionPeriod,
case when ifnull(ce.expected_amount, 0) > 0
ce.total_period AS totalPeriod,
then round(ifnull(ce.paid_amount, 0) / ifnull(ce.expected_amount, 0) * 100, 2)
ce.commission_date AS commissionDate,
else 0
NULL AS commissionRatio,
end as paidRatio,
NULL AS paid,
case when ifnull(ce.expected_amount, 0) > 0
IFNULL(ce.amount, 0) AS amount,
then round((ifnull(ce.expected_amount, 0) - ifnull(ce.paid_amount, 0)) / ifnull(ce.expected_amount, 0) * 100, 2)
ce.currency AS currency,
else 0
IFNULL(ce.expected_amount, 0) AS hkdAmount,
end as unpaidRatio,
IFNULL(ce.paid_amount, 0) AS paidAmount,
ce.default_exchange_rate as exchangeRate,
IFNULL(ce.expected_amount - ce.paid_amount, 0) AS unpaidAmount,
p.insurance_company as insuranceCompany,
CASE WHEN IFNULL(ce.expected_amount, 0) > 0
p.product_name as productName,
THEN ROUND(IFNULL(ce.paid_amount, 0) / IFNULL(ce.expected_amount, 0) * 100, 2)
ifnull(ce.premium, 0) as premium,
ELSE 0
null as policyCurrency
END AS paidRatio,
from commission_expected ce
CASE WHEN IFNULL(ce.expected_amount, 0) > 0
left join policy p on ce.policy_no = p.policy_no
THEN ROUND((IFNULL(ce.expected_amount, 0) - IFNULL(ce.paid_amount, 0)) / IFNULL(ce.expected_amount, 0) * 100, 2)
<where>
ELSE 0
ce.commission_biz_type = 'U'
END AS unpaidRatio,
<if
test=
"expectedIds != null and expectedIds.size > 0"
>
ce.default_exchange_rate AS exchangeRate,
and ce.id in
p.insurance_company AS insuranceCompany,
<foreach
collection=
"expectedIds"
item=
"item"
open=
"("
close=
")"
separator=
","
>
p.product_name AS productName,
#{item}
IFNULL(ce.premium, 0) AS premium,
</foreach>
NULL AS policyCurrency
</if>
FROM commission_expected ce
and ce.is_deleted = 0
LEFT JOIN policy p ON ce.policy_no = p.policy_no
</where>
LEFT JOIN (
</select>
SELECT policy_biz_id, name, name_en,
ROW_NUMBER() OVER (PARTITION BY policy_biz_id ORDER BY id) AS rn
FROM policy_policyholder
WHERE is_deleted = 0
) pp ON p.policy_biz_id = pp.policy_biz_id AND pp.rn = 1
LEFT JOIN (
SELECT policy_biz_id, name, name_en,
ROW_NUMBER() OVER (PARTITION BY policy_biz_id ORDER BY id) AS rn
FROM policy_insurant
WHERE is_deleted = 0
) pi ON p.policy_biz_id = pi.policy_biz_id AND pi.rn = 1
WHERE ce.commission_biz_type = 'U'
AND ce.is_deleted = 0
${ew.customSqlSegment}
</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