Commit e48bcbd0 by zhangxingmin

预约-v1版本

parent 14476af8
......@@ -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()));
}
additional.setAdditionalBizId(RandomStringGenerator.generateBizId16(CommonEnum.UID_TYPE_ADDITIONAL.getCode()));
return additional;
}).collect(Collectors.toList());
//批量新增或者更新
iAdditionalService.saveOrUpdateBatch(updateList);
iAdditionalService.saveOrUpdateBatch(saveList);
return Result.success();
}
......
......@@ -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不传值");
// }
i++;
}
//// 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++;
// }
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+"保额不能为空");
// }
......
......@@ -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 id;
private String additionalBizId;
/**
* 附加险信息表唯一业务ID(新增不需要传值,编辑需要传值)
* 产品计划信息表唯一业务ID
*/
private String additionalBizId;
private String planBizId;
/**
* 产品计划信息表唯一业务ID(新增不需要传值,编辑需要传值)
* 产品上架信息表唯一业务ID
*/
private String planBizId;
private String productLaunchBizId;
/**
* 保险附加产品唯一业务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;
}
......@@ -760,9 +760,9 @@ public class ApiExcelImportAppointmentDto {
infoDto.setAdditionalBizId(RandomStringGenerator.generateBizId16(CommonEnum.UID_TYPE_ADDITIONAL.getCode()));
infoDto.setPlanBizId(planBizId);
//保险附加产品名称
infoDto.setAddProductName(dto.getAddProductName());
infoDto.setProductLaunchName(dto.getAddProductName());
//保费
infoDto.setPremium(dto.getAddPremium());
infoDto.setEachIssuePremium(dto.getAddPremium());
return infoDto;
}).collect(Collectors.toList());
}
......
......@@ -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("premium")
private BigDecimal premium;
@TableField("policy_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")
......
......@@ -26,4 +26,6 @@ public interface IAdditionalService extends IService<Additional> {
List<Additional> queryList(AdditionalDto dto);
Additional queryOne(String additionalBizId);
Boolean delByPlanBizId(String planBizId);
}
......@@ -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));
}
}
......@@ -21,7 +21,7 @@ public class MyBatisPlusCodeGenerator {
})
.strategyConfig(builder -> {
builder.addInclude(
"second_holder"
"additional"
)
.entityBuilder()
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment