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
e7f5d876
Commit
e7f5d876
authored
Jan 14, 2026
by
zhangxingmin
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
push
parent
4181eecb
Hide whitespace changes
Inline
Side-by-side
Showing
3 changed files
with
31 additions
and
11 deletions
+31
-11
yd-csf-api/src/main/java/com/yd/csf/api/service/impl/ApiPremiumReconciliationServiceImpl.java
+26
-7
yd-csf-service/src/main/java/com/yd/csf/service/service/IPremiumReconciliationService.java
+1
-1
yd-csf-service/src/main/java/com/yd/csf/service/service/impl/PremiumReconciliationServiceImpl.java
+4
-3
No files found.
yd-csf-api/src/main/java/com/yd/csf/api/service/impl/ApiPremiumReconciliationServiceImpl.java
View file @
e7f5d876
...
...
@@ -82,18 +82,29 @@ public class ApiPremiumReconciliationServiceImpl implements ApiPremiumReconcilia
//保费对账信息
ApiPremiumReconciliationDto
apiPremiumReconciliationDto
=
request
.
getApiPremiumReconciliationDto
();
//校验-保单所有期数的保费对账是否对账完成(全部对账完成就不能新增录入对账信息了)
Result
<
Boolean
>
result
=
checkReconciliationComplete
(
apiPremiumReconciliationDto
.
getPolicyNo
());
if
(!
result
.
getData
())
{
throw
new
BusinessException
(
result
.
getMsg
());
}
//
Result<Boolean> result = checkReconciliationComplete(apiPremiumReconciliationDto.getPolicyNo());
//
if (!result.getData()) {
//
throw new BusinessException(result.getMsg());
//
}
//校验保单信息是否存在
Policy
policy
=
policyService
.
queryOne
(
apiPremiumReconciliationDto
.
getPolicyNo
());
if
(
Objects
.
isNull
(
policy
))
{
throw
new
BusinessException
(
"保单信息不存在"
);
}
PremiumReconciliation
premiumReconciliation
=
new
PremiumReconciliation
();
//计算当前期数
String
currentIssueNumber
=
calculateCurrentIssueNumber
(
policy
.
getPolicyNo
(),
Integer
.
parseInt
(
policy
.
getPaymentTerm
().
toString
()));
PremiumReconciliation
premiumReconciliation
=
new
PremiumReconciliation
();
//根据计算的当前期数和保单号查询最新的记录,如果无记录那么新增的对账记录的待付金额为保单保费的金额,否则为最新记录的待付金额。
PremiumReconciliation
newDto
=
iPremiumReconciliationService
.
queryLatestOneByPolicyNo
(
policy
.
getPolicyNo
(),
currentIssueNumber
);
if
(
Objects
.
isNull
(
newDto
))
{
//无记录那么新增的对账记录的待付金额为保单保费的金额
premiumReconciliation
.
setRemainingUnpaidCurrency
(
policy
.
getCurrency
());
premiumReconciliation
.
setRemainingUnpaidAmount
(
policy
.
getPaymentPremium
());
}
else
{
//否则为最新记录的待付金额。
premiumReconciliation
.
setRemainingUnpaidCurrency
(
newDto
.
getRemainingUnpaidCurrency
());
premiumReconciliation
.
setRemainingUnpaidAmount
(
newDto
.
getRemainingUnpaidAmount
());
}
//申请人
premiumReconciliation
.
setApplicant
(
apiPremiumReconciliationDto
.
getApplicant
());
//当前期数
...
...
@@ -127,10 +138,14 @@ public class ApiPremiumReconciliationServiceImpl implements ApiPremiumReconcilia
//保单号查询对账记录无数据,说明第一期。有数据:1、最新的记录的待付金额大于0,当前期数为最新的记录期数。2、最新的记录的待付金额小于等于0,当前期数 = 最新的记录期数 + 1 <= 保单的供款年期
//保单号查询对账记录无数据,说明第一期
//根据保单号查询最新对账记录
PremiumReconciliation
premiumReconciliation
=
iPremiumReconciliationService
.
queryLatestOneByPolicyNo
(
policyNo
);
PremiumReconciliation
premiumReconciliation
=
iPremiumReconciliationService
.
queryLatestOneByPolicyNo
(
policyNo
,
""
);
if
(
Objects
.
isNull
(
premiumReconciliation
))
{
return
"1"
;
}
if
(
ReconciliationStatusEnum
.
BS_DZZ
.
getItemValue
().
equals
(
premiumReconciliation
.
getReconciliationStatus
()))
{
//当前保单号的记录的对账状态为对账中,请先对账完成再发起新的对账
throw
new
BusinessException
(
"当前保单号的最新的对账记录的对账状态为对账中,请先设置认定结果,再发起新的对账"
);
}
//有数据,最新的记录的待付金额大于0,当前期数为最新的记录期数
if
(
premiumReconciliation
.
getRemainingUnpaidAmount
().
compareTo
(
BigDecimal
.
ZERO
)
>
0
)
{
return
premiumReconciliation
.
getCurrentIssueNumber
();
...
...
@@ -414,11 +429,15 @@ public class ApiPremiumReconciliationServiceImpl implements ApiPremiumReconcilia
//获取保单供款年期
String
paymentTerm
=
String
.
valueOf
(
policy
.
getPaymentTerm
());
//根据保单号查询最新对账记录
PremiumReconciliation
premiumReconciliation
=
iPremiumReconciliationService
.
queryLatestOneByPolicyNo
(
policyNo
);
PremiumReconciliation
premiumReconciliation
=
iPremiumReconciliationService
.
queryLatestOneByPolicyNo
(
policyNo
,
""
);
if
(
Objects
.
isNull
(
premiumReconciliation
))
{
//无数据,说明还没有对账记录,可以对账。
return
Result
.
success
(
true
);
}
if
(
ReconciliationStatusEnum
.
BS_DZZ
.
getItemValue
().
equals
(
premiumReconciliation
.
getReconciliationStatus
()))
{
//当前保单号的记录的对账状态为对账中,请先对账完成再发起新的对账
return
Result
.
success
(
false
,
"当前保单号的最新的对账记录的对账状态为对账中,请先设置认定结果,再发起新的对账"
);
}
//有数据
//校验最新对账记录的待付金额是否小于等于0并且当前期数等于保单的供款年期,如果是说明对账所有期数已经全部完成不能对账了。
if
(
premiumReconciliation
.
getRemainingUnpaidAmount
().
compareTo
(
BigDecimal
.
ZERO
)
<=
0
...
...
yd-csf-service/src/main/java/com/yd/csf/service/service/IPremiumReconciliationService.java
View file @
e7f5d876
...
...
@@ -27,5 +27,5 @@ public interface IPremiumReconciliationService extends IService<PremiumReconcili
List
<
PremiumReconciliation
>
queryList
(
PremiumReconciliationDto
dto
);
PremiumReconciliation
queryLatestOneByPolicyNo
(
String
policyNo
);
PremiumReconciliation
queryLatestOneByPolicyNo
(
String
policyNo
,
String
currentIssueNumber
);
}
yd-csf-service/src/main/java/com/yd/csf/service/service/impl/PremiumReconciliationServiceImpl.java
View file @
e7f5d876
...
...
@@ -50,14 +50,15 @@ public class PremiumReconciliationServiceImpl extends ServiceImpl<PremiumReconci
}
/**
* 根据保单号查询最新创建时间的对账记录
* 根据保单号
或者当前期数
查询最新创建时间的对账记录
* @param policyNo
* @return
*/
@Override
public
PremiumReconciliation
queryLatestOneByPolicyNo
(
String
policyNo
)
{
public
PremiumReconciliation
queryLatestOneByPolicyNo
(
String
policyNo
,
String
currentIssueNumber
)
{
return
this
.
getOne
(
new
LambdaQueryWrapper
<
PremiumReconciliation
>()
.
eq
(
PremiumReconciliation:
:
getPolicyNo
,
policyNo
)
.
eq
(
StringUtils
.
isNotBlank
(
policyNo
),
PremiumReconciliation:
:
getPolicyNo
,
policyNo
)
.
eq
(
StringUtils
.
isNotBlank
(
currentIssueNumber
),
PremiumReconciliation:
:
getCurrentIssueNumber
,
currentIssueNumber
)
.
orderByDesc
(
PremiumReconciliation:
:
getCreateTime
)
.
last
(
" limit 1 "
)
);
...
...
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