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
e48bcbd0
Commit
e48bcbd0
authored
Dec 24, 2025
by
zhangxingmin
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
预约-v1版本
parent
14476af8
Show whitespace changes
Inline
Side-by-side
Showing
8 changed files
with
148 additions
and
139 deletions
+148
-139
yd-csf-api/src/main/java/com/yd/csf/api/service/impl/ApiAdditionalServiceImpl.java
+7
-47
yd-csf-api/src/main/java/com/yd/csf/api/service/impl/ApiAppointmentCheckServiceImpl.java
+43
-43
yd-csf-feign/src/main/java/com/yd/csf/feign/dto/appointment/ApiProductPlanAdditionalInfoDto.java
+36
-24
yd-csf-feign/src/main/java/com/yd/csf/feign/dto/excel/ApiExcelImportAppointmentDto.java
+2
-2
yd-csf-service/src/main/java/com/yd/csf/service/model/Additional.java
+47
-22
yd-csf-service/src/main/java/com/yd/csf/service/service/IAdditionalService.java
+2
-0
yd-csf-service/src/main/java/com/yd/csf/service/service/impl/AdditionalServiceImpl.java
+10
-0
yd-csf-service/src/main/java/com/yd/csf/service/utils/MyBatisPlusCodeGenerator.java
+1
-1
No files found.
yd-csf-api/src/main/java/com/yd/csf/api/service/impl/ApiAdditionalServiceImpl.java
View file @
e48bcbd0
...
...
@@ -89,7 +89,7 @@ public class ApiAdditionalServiceImpl implements ApiAdditionalService {
ApiProductPlanInfoDto
productPlanInfoDto
=
new
ApiProductPlanInfoDto
();
productPlanInfoDto
.
setApiProductPlanAdditionalInfoDtoList
(
list
);
//批量添加产品计划-附加险信息表数据
batchAddAdditionalData
(
productPlanInfoDto
,
apiProductPlanAdditionalInfoDto
.
getPlanBizId
());
//
batchAddAdditionalData(productPlanInfoDto,apiProductPlanAdditionalInfoDto.getPlanBizId());
return
Result
.
success
();
}
...
...
@@ -108,7 +108,7 @@ public class ApiAdditionalServiceImpl implements ApiAdditionalService {
ApiProductPlanInfoDto
productPlanInfoDto
=
new
ApiProductPlanInfoDto
();
productPlanInfoDto
.
setApiProductPlanAdditionalInfoDtoList
(
apiProductPlanAdditionalInfoDtoList
);
//批量编辑产品计划-附加险信息表数据
batchEditAdditionalData
(
productPlanInfoDto
,
apiProductPlanAdditionalInfoDto
.
getPlanBizId
());
//
batchEditAdditionalData(productPlanInfoDto,apiProductPlanAdditionalInfoDto.getPlanBizId());
return
Result
.
success
();
}
...
...
@@ -188,58 +188,18 @@ public class ApiAdditionalServiceImpl implements ApiAdditionalService {
//为空放行
return
Result
.
success
();
}
//先删后新增
iAdditionalService
.
delByPlanBizId
(
planBizId
);
//入参的附加险列表信息
List
<
ApiProductPlanAdditionalInfoDto
>
list
=
productPlanInfoDto
.
getApiProductPlanAdditionalInfoDtoList
();
//获取不为空的附加险信息表唯一业务ID列表
List
<
String
>
additionalBizIdList
=
list
.
stream
()
.
filter
(
dto
->
StringUtils
.
isNotBlank
(
dto
.
getAdditionalBizId
()))
.
map
(
ApiProductPlanAdditionalInfoDto:
:
getAdditionalBizId
)
.
collect
(
Collectors
.
toList
());
if
(!
CollectionUtils
.
isEmpty
(
additionalBizIdList
))
{
//入参的附加险业务id列表至少一个不为空就走表数据校验,全部为空是全部新增操作,不走表数据校验
//根据附加险信息表唯一业务ID列表查询表里面的列表信息
List
<
Additional
>
additionals
=
iAdditionalService
.
queryList
(
AdditionalDto
.
builder
()
.
additionalBizIdList
(
additionalBizIdList
).
build
());
//过滤入参的附加险列表信息在表里不存在的集合,然后抛出这些不存在的列表信息
// 提取 existingAdditionalBizIds:从 additionals 中获取所有已存在的 additionalBizId 集合
Set
<
String
>
existingAdditionalBizIds
=
additionals
.
stream
()
.
map
(
Additional:
:
getAdditionalBizId
)
.
collect
(
Collectors
.
toSet
());
// 过滤 list:保留 additionalBizId 不在 existingAdditionalBizIds 中的对象
List
<
ApiProductPlanAdditionalInfoDto
>
filteredList
=
list
.
stream
()
.
filter
(
dto
->
StringUtils
.
isNotBlank
(
dto
.
getAdditionalBizId
())
&&
!
existingAdditionalBizIds
.
contains
(
dto
.
getAdditionalBizId
()))
.
collect
(
Collectors
.
toList
());
if
(!
CollectionUtils
.
isEmpty
(
filteredList
))
{
//入参对象列表中有传值的业务id在库中不存在的对象,提示
List
<
String
>
additionalProductNameList
=
filteredList
.
stream
()
.
map
(
ApiProductPlanAdditionalInfoDto:
:
getAddProductName
)
.
collect
(
Collectors
.
toList
());
throw
new
BusinessException
(
"以下是在库里不存在的附加险数据的附加产品名称:"
+
String
.
join
(
" ;"
,
additionalProductNameList
));
}
}
//构造需要新增或者更新数据的对象集合
List
<
Additional
>
updateList
=
list
.
stream
().
map
(
dto
->
{
//新增
List
<
Additional
>
saveList
=
productPlanInfoDto
.
getApiProductPlanAdditionalInfoDtoList
().
stream
().
map
(
dto
->
{
Additional
additional
=
new
Additional
();
BeanUtils
.
copyProperties
(
dto
,
additional
);
additional
.
setPlanBizId
(
planBizId
);
if
(
StringUtils
.
isBlank
(
dto
.
getAdditionalBizId
()))
{
//为空表示新增数据
//生成附加险信息表唯一业务ID
additional
.
setAdditionalBizId
(
RandomStringGenerator
.
generateBizId16
(
CommonEnum
.
UID_TYPE_ADDITIONAL
.
getCode
()));
}
return
additional
;
}).
collect
(
Collectors
.
toList
());
//批量新增或者更新
iAdditionalService
.
saveOrUpdateBatch
(
updateList
);
iAdditionalService
.
saveOrUpdateBatch
(
saveList
);
return
Result
.
success
();
}
...
...
yd-csf-api/src/main/java/com/yd/csf/api/service/impl/ApiAppointmentCheckServiceImpl.java
View file @
e48bcbd0
...
...
@@ -304,33 +304,33 @@ public class ApiAppointmentCheckServiceImpl implements ApiAppointmentCheckServic
String
tipStr
=
"产品计划-产品附加险-"
;
//列表下标标记位
int
i
=
1
;
for
(
ApiProductPlanAdditionalInfoDto
dto
:
list
)
{
if
(!
Objects
.
isNull
(
dto
.
getId
()))
{
throw
new
BusinessException
(
tipStr
+
"第"
+
i
+
"项的产品计划-附加险信息表主键id不传值"
);
}
if
(
StringUtils
.
isNotBlank
(
dto
.
getAdditionalBizId
()))
{
throw
new
BusinessException
(
tipStr
+
"第"
+
i
+
"项的附加险信息表唯一业务ID不传值"
);
}
// if (StringUtils.isBlank(dto.getPlanBizId())) {
// throw new BusinessException(tipStr+"第"+i+"项的产品计划信息表唯一业务ID不能为空");
// for (ApiProductPlanAdditionalInfoDto dto : list) {
// if (!Objects.isNull(dto.getId())) {
// throw new BusinessException(tipStr+"第"+i+"项的产品计划-附加险信息表主键id不传值");
// }
if
(
StringUtils
.
isBlank
(
dto
.
getAdditionalProductBizId
()))
{
throw
new
BusinessException
(
tipStr
+
"第"
+
i
+
"项的保险附加产品名称不能为空"
);
}
if
(
StringUtils
.
isBlank
(
dto
.
getAddProductName
()))
{
throw
new
BusinessException
(
tipStr
+
"第"
+
i
+
"项的保险附加产品名称不能为空"
);
}
if
(
StringUtils
.
isBlank
(
dto
.
getCurrency
()))
{
throw
new
BusinessException
(
tipStr
+
"第"
+
i
+
"项的货币不能为空"
);
}
if
(
Objects
.
isNull
(
dto
.
getPremium
()))
{
throw
new
BusinessException
(
tipStr
+
"第"
+
i
+
"项的保费不能为空"
);
}
// if (Objects.isNull(dto.getSumInsured())) {
// throw new BusinessException(tipStr+"第"+i+"项的保额不能为空");
// if (StringUtils.isNotBlank(dto.getAdditionalBizId())) {
// throw new BusinessException(tipStr+"第"+i+"项的附加险信息表唯一业务ID不传值");
// }
//// if (StringUtils.isBlank(dto.getPlanBizId())) {
//// throw new BusinessException(tipStr+"第"+i+"项的产品计划信息表唯一业务ID不能为空");
//// }
// if (StringUtils.isBlank(dto.getAdditionalProductBizId())) {
// throw new BusinessException(tipStr+"第"+i+"项的保险附加产品名称不能为空");
// }
// if (StringUtils.isBlank(dto.getAddProductName())) {
// throw new BusinessException(tipStr+"第"+i+"项的保险附加产品名称不能为空");
// }
// if (StringUtils.isBlank(dto.getCurrency())) {
// throw new BusinessException(tipStr+"第"+i+"项的货币不能为空");
// }
// if (Objects.isNull(dto.getPremium())) {
// throw new BusinessException(tipStr+"第"+i+"项的保费不能为空");
// }
//// if (Objects.isNull(dto.getSumInsured())) {
//// throw new BusinessException(tipStr+"第"+i+"项的保额不能为空");
//// }
// i++;
// }
i
++;
}
return
Result
.
success
();
}
...
...
@@ -344,24 +344,24 @@ public class ApiAppointmentCheckServiceImpl implements ApiAppointmentCheckServic
if
(
Objects
.
isNull
(
dto
))
{
throw
new
BusinessException
(
tipStr
+
"产品计划-附加险信息对象不能为空"
);
}
if
(
Objects
.
isNull
(
dto
.
getId
()))
{
throw
new
BusinessException
(
tipStr
+
"产品计划-附加险信息表主键id不能为空"
);
}
if
(
StringUtils
.
isBlank
(
dto
.
getAdditionalBizId
()))
{
throw
new
BusinessException
(
tipStr
+
"附加险信息表唯一业务ID不能为空"
);
}
if
(
StringUtils
.
isBlank
(
dto
.
getPlanBizId
()))
{
throw
new
BusinessException
(
tipStr
+
"产品计划信息表唯一业务ID不能为空"
);
}
if
(
StringUtils
.
isBlank
(
dto
.
getAdditionalProductBizId
()))
{
throw
new
BusinessException
(
tipStr
+
"保险附加产品唯一业务ID不能为空"
);
}
if
(
StringUtils
.
isBlank
(
dto
.
getCurrency
()))
{
throw
new
BusinessException
(
tipStr
+
"货币不能为空"
);
}
if
(
Objects
.
isNull
(
dto
.
getPremium
()))
{
throw
new
BusinessException
(
tipStr
+
"保费不能为空"
);
}
//
if (Objects.isNull(dto.getId())) {
//
throw new BusinessException(tipStr+"产品计划-附加险信息表主键id不能为空");
//
}
//
if (StringUtils.isBlank(dto.getAdditionalBizId())) {
//
throw new BusinessException(tipStr+"附加险信息表唯一业务ID不能为空");
//
}
//
if (StringUtils.isBlank(dto.getPlanBizId())) {
//
throw new BusinessException(tipStr+"产品计划信息表唯一业务ID不能为空");
//
}
//
if (StringUtils.isBlank(dto.getAdditionalProductBizId())) {
//
throw new BusinessException(tipStr+"保险附加产品唯一业务ID不能为空");
//
}
//
if (StringUtils.isBlank(dto.getCurrency())) {
//
throw new BusinessException(tipStr+"货币不能为空");
//
}
//
if (Objects.isNull(dto.getPremium())) {
//
throw new BusinessException(tipStr+"保费不能为空");
//
}
// if (Objects.isNull(dto.getSumInsured())) {
// throw new BusinessException(tipStr+"保额不能为空");
// }
...
...
yd-csf-feign/src/main/java/com/yd/csf/feign/dto/appointment/ApiProductPlanAdditionalInfoDto.java
View file @
e48bcbd0
...
...
@@ -3,6 +3,7 @@ package com.yd.csf.feign.dto.appointment;
import
lombok.Data
;
import
java.math.BigDecimal
;
import
java.time.LocalDateTime
;
/**
* 产品计划-附加险列表
...
...
@@ -11,59 +12,64 @@ import java.math.BigDecimal;
public
class
ApiProductPlanAdditionalInfoDto
{
/**
*
产品计划-附加险信息表主键id(新增不需要传值,编辑需要传值)
*
附加险信息表唯一业务ID
*/
private
Long
i
d
;
private
String
additionalBizI
d
;
/**
*
附加险信息表唯一业务ID(新增不需要传值,编辑需要传值)
*
产品计划信息表唯一业务ID
*/
private
String
additional
BizId
;
private
String
plan
BizId
;
/**
* 产品
计划信息表唯一业务ID(新增不需要传值,编辑需要传值)
* 产品
上架信息表唯一业务ID
*/
private
String
p
lan
BizId
;
private
String
p
roductLaunch
BizId
;
/**
*
保险附加产品唯一业务ID(中台保险附加产品业务id,冗余
)
*
产品上架信息表名称(标题
)
*/
// @NotBlank(message = "保险附加产品唯一业务ID不能为空")
private
String
additionalProductBizId
;
private
String
productLaunchName
;
/**
*
保险附加产品名称(中台保险附加产品名称,冗余
)
*
付款频率(字典
)
*/
// @NotBlank(message = "保险附加产品名称不能为空")
private
String
addProductName
;
private
String
paymentFrequency
;
/**
*
货币(字典)
*
供款期数
*/
// @NotBlank(message = "货币不能为空")
private
String
currency
;
private
String
issueNumber
;
/**
* 保
费
* 保
障年期
*/
// @NotNull(message = "保费不能为空")
private
BigDecimal
premium
;
private
String
guaranteePeriod
;
/**
* 保额
* 保单币种
*/
private
String
policyCurrency
;
/**
* 保单额度(重疾)
*/
// @NotNull(message = "保额不能为空")
private
BigDecimal
sumInsured
;
/**
*
保障地区(字典)
*
每期保费
*/
private
String
guaranteeRegion
;
private
BigDecimal
eachIssuePremium
;
/**
*
等级(字典)
*
保障级别
*/
private
String
level
;
private
String
protectionLevel
;
/**
* 保障地区(字典)
*/
private
String
guaranteeRegion
;
/**
* 自付额(字典)
...
...
@@ -74,4 +80,10 @@ public class ApiProductPlanAdditionalInfoDto {
* 附加保障(json串)
*/
private
String
additionalSafeguards
;
/**
* 保单征费
*/
private
BigDecimal
policyLevy
;
}
yd-csf-feign/src/main/java/com/yd/csf/feign/dto/excel/ApiExcelImportAppointmentDto.java
View file @
e48bcbd0
...
...
@@ -760,9 +760,9 @@ public class ApiExcelImportAppointmentDto {
infoDto
.
setAdditionalBizId
(
RandomStringGenerator
.
generateBizId16
(
CommonEnum
.
UID_TYPE_ADDITIONAL
.
getCode
()));
infoDto
.
setPlanBizId
(
planBizId
);
//保险附加产品名称
infoDto
.
set
AddProduct
Name
(
dto
.
getAddProductName
());
infoDto
.
set
ProductLaunch
Name
(
dto
.
getAddProductName
());
//保费
infoDto
.
setPremium
(
dto
.
getAddPremium
());
infoDto
.
set
EachIssue
Premium
(
dto
.
getAddPremium
());
return
infoDto
;
}).
collect
(
Collectors
.
toList
());
}
...
...
yd-csf-service/src/main/java/com/yd/csf/service/model/Additional.java
View file @
e48bcbd0
...
...
@@ -4,11 +4,12 @@ import com.baomidou.mybatisplus.annotation.IdType;
import
com.baomidou.mybatisplus.annotation.TableField
;
import
com.baomidou.mybatisplus.annotation.TableId
;
import
com.baomidou.mybatisplus.annotation.TableName
;
import
lombok.Getter
;
import
lombok.Setter
;
import
java.io.Serializable
;
import
java.math.BigDecimal
;
import
java.time.LocalDateTime
;
import
lombok.Getter
;
import
lombok.Setter
;
/**
* <p>
...
...
@@ -16,7 +17,7 @@ import lombok.Setter;
* </p>
*
* @author zxm
* @since 2025-
09-01
* @since 2025-
12-24
*/
@Getter
@Setter
...
...
@@ -41,46 +42,64 @@ public class Additional implements Serializable {
private
String
planBizId
;
/**
* 保险附加产品唯一业务ID(中台保险附加产品业务id,冗余)
* 产品上架信息表唯一业务ID
*/
@TableField
(
"product_launch_biz_id"
)
private
String
productLaunchBizId
;
/**
* 产品上架信息表名称(标题)
*/
@TableField
(
"product_launch_name"
)
private
String
productLaunchName
;
/**
* 付款频率(字典)
*/
@TableField
(
"
additional_product_biz_id
"
)
private
String
additionalProductBizId
;
@TableField
(
"
payment_frequency
"
)
private
String
paymentFrequency
;
/**
*
保险附加产品名称(中台保险附加产品名称,冗余)
*
供款期数
*/
@TableField
(
"
add_product_name
"
)
private
String
addProductName
;
@TableField
(
"
issue_number
"
)
private
String
issueNumber
;
/**
*
货币(字典)
*
保障年期
*/
@TableField
(
"
currency
"
)
private
String
currency
;
@TableField
(
"
guarantee_period
"
)
private
String
guaranteePeriod
;
/**
* 保
费
* 保
单币种
*/
@TableField
(
"p
remium
"
)
private
BigDecimal
premium
;
@TableField
(
"p
olicy_currency
"
)
private
String
policyCurrency
;
/**
* 保
额
* 保
单额度(重疾)
*/
@TableField
(
"sum_insured"
)
private
BigDecimal
sumInsured
;
/**
*
保障地区(字典)
*
每期保费
*/
@TableField
(
"
guarantee_region
"
)
private
String
guaranteeRegion
;
@TableField
(
"
each_issue_premium
"
)
private
BigDecimal
eachIssuePremium
;
/**
*
等级(字典)
*
保障级别
*/
@TableField
(
"level"
)
private
String
level
;
@TableField
(
"protection_level"
)
private
String
protectionLevel
;
/**
* 保障地区(字典)
*/
@TableField
(
"guarantee_region"
)
private
String
guaranteeRegion
;
/**
* 自付额(字典)
...
...
@@ -95,6 +114,12 @@ public class Additional implements Serializable {
private
String
additionalSafeguards
;
/**
* 保单征费
*/
@TableField
(
"policy_levy"
)
private
BigDecimal
policyLevy
;
/**
* 通用备注
*/
@TableField
(
"remark"
)
...
...
yd-csf-service/src/main/java/com/yd/csf/service/service/IAdditionalService.java
View file @
e48bcbd0
...
...
@@ -26,4 +26,6 @@ public interface IAdditionalService extends IService<Additional> {
List
<
Additional
>
queryList
(
AdditionalDto
dto
);
Additional
queryOne
(
String
additionalBizId
);
Boolean
delByPlanBizId
(
String
planBizId
);
}
yd-csf-service/src/main/java/com/yd/csf/service/service/impl/AdditionalServiceImpl.java
View file @
e48bcbd0
...
...
@@ -66,4 +66,14 @@ public class AdditionalServiceImpl extends ServiceImpl<AdditionalMapper, Additio
return
this
.
getOne
(
new
LambdaQueryWrapper
<
Additional
>().
eq
(
Additional:
:
getAdditionalBizId
,
additionalBizId
));
}
/**
* 根据计划ID删除
* @param planBizId
* @return
*/
@Override
public
Boolean
delByPlanBizId
(
String
planBizId
)
{
return
this
.
remove
(
new
LambdaQueryWrapper
<
Additional
>().
eq
(
Additional:
:
getPlanBizId
,
planBizId
));
}
}
yd-csf-service/src/main/java/com/yd/csf/service/utils/MyBatisPlusCodeGenerator.java
View file @
e48bcbd0
...
...
@@ -21,7 +21,7 @@ public class MyBatisPlusCodeGenerator {
})
.
strategyConfig
(
builder
->
{
builder
.
addInclude
(
"
second_holder
"
"
additional
"
)
.
entityBuilder
()
...
...
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