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
92d7f787
Commit
92d7f787
authored
May 14, 2026
by
jianan
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
出账检核-增加币种53
parent
72070e82
Hide whitespace changes
Inline
Side-by-side
Showing
4 changed files
with
55 additions
and
30 deletions
+55
-30
yd-csf-api/src/main/java/com/yd/csf/api/service/impl/ApiExpectedFortuneServiceImpl.java
+51
-14
yd-csf-api/src/main/resources/bootstrap.yml
+1
-1
yd-csf-service/src/main/java/com/yd/csf/service/service/impl/FortuneServiceImpl.java
+1
-0
yd-csf-service/src/main/resources/mappers/ExpectedFortuneMapper.xml
+2
-15
No files found.
yd-csf-api/src/main/java/com/yd/csf/api/service/impl/ApiExpectedFortuneServiceImpl.java
View file @
92d7f787
package
com
.
yd
.
csf
.
api
.
service
.
impl
;
import
cn.hutool.core.bean.BeanUtil
;
import
cn.hutool.core.collection.CollUtil
;
import
com.alibaba.excel.EasyExcel
;
import
com.alibaba.excel.ExcelWriter
;
import
com.alibaba.excel.write.metadata.WriteSheet
;
import
com.alibaba.fastjson.JSON
;
import
com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper
;
import
com.baomidou.mybatisplus.core.conditions.query.QueryWrapper
;
import
com.baomidou.mybatisplus.core.metadata.IPage
;
import
com.baomidou.mybatisplus.extension.plugins.pagination.Page
;
...
...
@@ -33,7 +33,6 @@ import com.yd.csf.service.dto.QueryPolicyBrokerDto;
import
com.yd.csf.service.dto.UserGradeDto
;
import
com.yd.csf.service.enums.CurrencyEnum
;
import
com.yd.csf.service.enums.FortuneStatusEnum
;
import
com.yd.csf.service.enums.FortuneTypeEnum
;
import
com.yd.csf.service.helper.FeignResultHelper
;
import
com.yd.csf.service.model.*
;
import
com.yd.csf.service.service.*
;
...
...
@@ -71,8 +70,8 @@ import java.time.LocalDate;
import
java.time.LocalDateTime
;
import
java.time.ZoneId
;
import
java.util.*
;
import
java.util.function.Function
;
import
java.util.stream.Collectors
;
import
static
com
.
ibm
.
icu
.
impl
.
ValidIdentifiers
.
Datatype
.
currency
;
@Slf4j
...
...
@@ -1017,8 +1016,12 @@ public class ApiExpectedFortuneServiceImpl implements ApiExpectedFortuneService
if
(
CollectionUtils
.
isEmpty
(
fortuneAddRequestList
))
{
return
true
;
}
// 校验参数
validateAdd
(
fortuneAddRequestList
);
// 根据保单号、期数、项目类型查询已存在的记录
validIsExist
(
fortuneAddRequestList
);
// 查询保单信息
Set
<
String
>
policyNoSet
=
fortuneAddRequestList
.
stream
()
.
map
(
ExpectedFortuneAddRequest:
:
getPolicyNo
)
...
...
@@ -1100,6 +1103,39 @@ public class ApiExpectedFortuneServiceImpl implements ApiExpectedFortuneService
return
true
;
}
private
void
validIsExist
(
List
<
ExpectedFortuneAddRequest
>
fortuneAddRequestList
)
{
Set
<
String
>
policyNoSet
=
new
HashSet
<>();
Set
<
Integer
>
fortunePeriodSet
=
new
HashSet
<>();
Set
<
String
>
fortuneBizTypeSet
=
new
HashSet
<>();
for
(
ExpectedFortuneAddRequest
request
:
fortuneAddRequestList
)
{
policyNoSet
.
add
(
request
.
getPolicyNo
());
fortunePeriodSet
.
add
(
request
.
getFortunePeriod
());
fortuneBizTypeSet
.
add
(
request
.
getFortuneBizType
());
}
List
<
ExpectedFortune
>
existingRecords
=
iExpectedFortuneService
.
lambdaQuery
()
.
in
(
ExpectedFortune:
:
getPolicyNo
,
policyNoSet
)
.
in
(
ExpectedFortune:
:
getFortunePeriod
,
fortunePeriodSet
)
.
in
(
ExpectedFortune:
:
getFortuneBizType
,
fortuneBizTypeSet
)
.
list
();
// 转换为 Map
Map
<
String
,
ExpectedFortune
>
existingRecordsMap
=
new
HashMap
<>();
for
(
ExpectedFortune
item
:
existingRecords
)
{
String
key
=
String
.
format
(
"%s_%s_%s"
,
item
.
getPolicyNo
(),
item
.
getFortunePeriod
(),
item
.
getFortuneBizType
());
existingRecordsMap
.
put
(
key
,
item
);
}
// 校验是否存在
for
(
ExpectedFortuneAddRequest
request
:
fortuneAddRequestList
)
{
String
key
=
String
.
format
(
"%s_%s_%s"
,
request
.
getPolicyNo
(),
request
.
getFortunePeriod
(),
request
.
getFortuneBizType
());
if
(
existingRecordsMap
.
containsKey
(
key
))
{
throw
new
BusinessException
(
ResultCode
.
PARAM_CHECK_ERROR
.
getCode
(),
"当前期数已存在: "
+
request
.
getFortuneName
());
}
}
}
private
String
queryByDict
(
String
fortuneType
)
{
Result
<
List
<
GetDictItemListByDictTypeResponse
>>
result
=
apiSysDictFeignClient
.
getDictItemListByDictType
(
"csf_fortune_type"
);
if
(
ObjectUtils
.
isNotEmpty
(
result
.
getData
()))
{
...
...
@@ -1383,12 +1419,6 @@ public class ApiExpectedFortuneServiceImpl implements ApiExpectedFortuneService
throw
new
BusinessException
(
ResultCode
.
FAIL
.
getCode
(),
"当前应付款已有出账金额,不能修改"
);
}
// 查询保单数据
Policy
policy
=
null
;
if
(
StringUtils
.
isNotBlank
(
request
.
getPolicyNo
()))
{
policy
=
policyService
.
getOne
(
new
QueryWrapper
<
Policy
>().
eq
(
"policy_no"
,
request
.
getPolicyNo
()));
}
// 根据保单号、期数查询关联 fortune 数据,重新计算:已出帐金额、待出帐金额、已出帐比例、待出帐比例
List
<
Fortune
>
fortuneList
=
fortuneService
.
lambdaQuery
()
.
eq
(
Fortune:
:
getPolicyNo
,
request
.
getPolicyNo
())
...
...
@@ -1420,11 +1450,18 @@ public class ApiExpectedFortuneServiceImpl implements ApiExpectedFortuneService
updateExpectedFortune
.
setId
(
expectedFortune
.
getId
());
// 设置 policy 关联字段
if
(
policy
!=
null
)
{
updateExpectedFortune
.
setInsuranceCompanyBizId
(
policy
.
getInsuranceCompanyBizId
());
updateExpectedFortune
.
setProductLaunchBizId
(
policy
.
getProductLaunchBizId
());
updateExpectedFortune
.
setPremium
(
policy
.
getPaymentPremium
());
updateExpectedFortune
.
setPolicyCurrency
(
policy
.
getCurrency
());
if
(!
expectedFortune
.
getPolicyNo
().
equals
(
updateExpectedFortune
.
getPolicyNo
()))
{
// 查询保单数据
Policy
policy
=
null
;
if
(
StringUtils
.
isNotBlank
(
request
.
getPolicyNo
()))
{
policy
=
policyService
.
getOne
(
new
QueryWrapper
<
Policy
>().
eq
(
"policy_no"
,
request
.
getPolicyNo
()));
}
if
(
policy
!=
null
)
{
updateExpectedFortune
.
setInsuranceCompanyBizId
(
policy
.
getInsuranceCompanyBizId
());
updateExpectedFortune
.
setProductLaunchBizId
(
policy
.
getProductLaunchBizId
());
updateExpectedFortune
.
setPremium
(
policy
.
getPaymentPremium
());
updateExpectedFortune
.
setPolicyCurrency
(
policy
.
getCurrency
());
}
}
// 处理出账年月字段
...
...
yd-csf-api/src/main/resources/bootstrap.yml
View file @
92d7f787
...
...
@@ -44,7 +44,7 @@ spring:
# 配置中心
config
:
# 命名空间id(此处不用public,因public初始化的空间, id为空)
namespace
:
b3b01715-eb85-4242-992a-5aff03d864d4
namespace
:
9486683f-2bc3-41b0-a60f-7d49b85d1ff0
# nacos的ip地址和端口
server-addr
:
139.224.145.34:8848
# 这个就表示 在我们nacos命名空间id为 dev中 有一个data-id 为 demo-service.yml 的配置文件 读取这个里面的配置
...
...
yd-csf-service/src/main/java/com/yd/csf/service/service/impl/FortuneServiceImpl.java
View file @
92d7f787
...
...
@@ -807,6 +807,7 @@ public class FortuneServiceImpl extends ServiceImpl<FortuneMapper, Fortune>
throw
new
BusinessException
(
ResultCode
.
FAIL
.
getCode
(),
fortuneAddRequest
.
getFortuneName
()
+
" 已存在应付记录,请在应付款管理页面修改金额"
);
}
fortune
.
setPayableNo
(
expectedFortune
.
getPayableNo
());
fortune
.
setExpectedFortuneBizId
(
expectedFortune
.
getExpectedFortuneBizId
());
fortune
.
setPolicyCurrency
(
expectedFortune
.
getPolicyCurrency
());
fortune
.
setCurrentPaymentRatio
(
BigDecimal
.
valueOf
(
100
));
...
...
yd-csf-service/src/main/resources/mappers/ExpectedFortuneMapper.xml
View file @
92d7f787
...
...
@@ -79,24 +79,11 @@
then round(100 - (ifnull(sum(ef.paid_amount), 0) / ifnull(sum(ef.hkd_amount), 0) * 100), 2)
else 100
end as unpaidRatio,
MAX(
first_broker.broker_name
) as broker,
MAX(
first_broker
.broker_biz_id) as brokerBizId,
MAX(
ef.broker
) as broker,
MAX(
ef
.broker_biz_id) as brokerBizId,
DATE_ADD(DATE_ADD(MAX(p.effective_date), INTERVAL 2 MONTH), INTERVAL (ef.fortune_period - 1) YEAR) as payoutDate
from expected_fortune ef
left join policy p on ef.policy_no = p.policy_no
left join (
SELECT pb1.policy_no, pb1.broker_name,pb1.broker_biz_id
FROM policy_broker pb1
WHERE pb1.id = (
SELECT pb2.id
FROM policy_broker pb2
WHERE pb2.policy_no = pb1.policy_no
AND pb2.is_deleted = 0
ORDER BY pb2.id ASC
LIMIT 1
)
AND pb1.is_deleted = 0
) first_broker on ef.policy_no = first_broker.policy_no
<where>
ef.fortune_biz_type = 'R'
<if
test=
"expectedFortuneIds != null and expectedFortuneIds.size > 0"
>
...
...
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