Commit 55e1f09d by jianan

新单跟进新增字段,保单类型、邮寄物品,预计来佣和预计发佣日期计算逻辑修改

parent 605d0992
...@@ -235,7 +235,9 @@ public class ApiCustomerController { ...@@ -235,7 +235,9 @@ public class ApiCustomerController {
Page<Customer> customerPage = customerService.page(new Page<>(current, size), Page<Customer> customerPage = customerService.page(new Page<>(current, size),
customerService.getQueryWrapper(customerQueryRequest)); customerService.getQueryWrapper(customerQueryRequest));
// 获取封装类 // 获取封装类
return Result.success(customerService.getCustomerVOPage(customerPage)); Page<CustomerVO> customerVOPage = customerService.getCustomerVOPage(customerPage);
return Result.success(customerVOPage);
} }
} }
...@@ -78,8 +78,6 @@ public class ApiPolicyFollowController { ...@@ -78,8 +78,6 @@ public class ApiPolicyFollowController {
@Resource @Resource
private CustomerService customerService; private CustomerService customerService;
@Resource @Resource
private ReconciliationCompanyService reconciliationCompanyService;
@Resource
private PolicyFollowRecordService policyFollowRecordService; private PolicyFollowRecordService policyFollowRecordService;
@Resource @Resource
private PolicyFollowFileService policyFollowFileService; private PolicyFollowFileService policyFollowFileService;
...@@ -168,40 +166,6 @@ public class ApiPolicyFollowController { ...@@ -168,40 +166,6 @@ public class ApiPolicyFollowController {
return Result.success(true); return Result.success(true);
} }
private List<ReconciliationCompany> saveReconciliationCompany(Set<String> reconciliationCompanyNames) {
List<ReconciliationCompany> reconciliationCompanyList = new ArrayList<>();
// 查询已存在的对账公司
List<ReconciliationCompany> existingCompanies = reconciliationCompanyService.lambdaQuery()
.in(ReconciliationCompany::getCompanyName, reconciliationCompanyNames)
.list();
Set<String> existingCompanyNames = existingCompanies.stream()
.map(ReconciliationCompany::getCompanyName)
.collect(Collectors.toSet());
// 过滤掉已存在的公司名称
Set<String> newCompanyNames = reconciliationCompanyNames.stream()
.filter(name -> !existingCompanyNames.contains(name))
.collect(Collectors.toSet());
// 只保存新的对账公司
for (String reconciliationCompanyName : newCompanyNames) {
ReconciliationCompany reconciliationCompany = new ReconciliationCompany();
reconciliationCompany.setReconciliationCompanyBizId(RandomStringGenerator.generateBizId16("reconciliation_company"));
reconciliationCompany.setCompanyName(reconciliationCompanyName);
reconciliationCompanyList.add(reconciliationCompany);
}
if (!reconciliationCompanyList.isEmpty()) {
reconciliationCompanyService.saveBatch(reconciliationCompanyList);
}
// 返回所有对账公司(包括已存在的和新建的)
List<ReconciliationCompany> allCompanies = new ArrayList<>(existingCompanies);
allCompanies.addAll(reconciliationCompanyList);
return allCompanies;
}
private String validatePolicyNo(List<PolicyExcelDTO> dtoList) { private String validatePolicyNo(List<PolicyExcelDTO> dtoList) {
String validateMsg = ""; String validateMsg = "";
// 校验保单号是否为空 // 校验保单号是否为空
......
...@@ -610,6 +610,7 @@ public class ApiAppointmentServiceImpl implements ApiAppointmentService { ...@@ -610,6 +610,7 @@ public class ApiAppointmentServiceImpl implements ApiAppointmentService {
ApiInsurantInfoDto apiInsurantInfoDto = null; ApiInsurantInfoDto apiInsurantInfoDto = null;
List<ApiBeneficiaryInfoDto> apiBeneficiaryInfoDtoList = null; List<ApiBeneficiaryInfoDto> apiBeneficiaryInfoDtoList = null;
ApiSecondHolderInfoDto apiSecondHolderInfoDto = null; ApiSecondHolderInfoDto apiSecondHolderInfoDto = null;
List<ApiAppointmentFileDto> apiAppointmentFileDtoList = null;
String policyTransfer = null; String policyTransfer = null;
if (!Objects.isNull(response) if (!Objects.isNull(response)
&& !Objects.isNull(response.getApiProductPlanInfoDto()) && !Objects.isNull(response.getApiProductPlanInfoDto())
...@@ -627,6 +628,8 @@ public class ApiAppointmentServiceImpl implements ApiAppointmentService { ...@@ -627,6 +628,8 @@ public class ApiAppointmentServiceImpl implements ApiAppointmentService {
apiBeneficiaryInfoDtoList = response.getApiBeneficiaryInfoFzDto().getApiBeneficiaryInfoDtoList(); apiBeneficiaryInfoDtoList = response.getApiBeneficiaryInfoFzDto().getApiBeneficiaryInfoDtoList();
// 第二持有人 // 第二持有人
apiSecondHolderInfoDto = response.getApiSecondHolderInfoDto(); apiSecondHolderInfoDto = response.getApiSecondHolderInfoDto();
// 预约附件信息列表
apiAppointmentFileDtoList = response.getApiAppointmentFileDtoList();
} }
if (!Objects.isNull(response) if (!Objects.isNull(response)
&& !Objects.isNull(response.getApiInsurantInfoDto())) { && !Objects.isNull(response.getApiInsurantInfoDto())) {
...@@ -763,20 +766,33 @@ public class ApiAppointmentServiceImpl implements ApiAppointmentService { ...@@ -763,20 +766,33 @@ public class ApiAppointmentServiceImpl implements ApiAppointmentService {
// // 同步保存保单(产品计划) // // 同步保存保单(产品计划)
// savePolicy(productPlan, apiPolicyholderInfoDto, apiInsurantInfoDto, apiProductPlanMainInfoDto, policyBizId, policyTransfer); // savePolicy(productPlan, apiPolicyholderInfoDto, apiInsurantInfoDto, apiProductPlanMainInfoDto, policyBizId, policyTransfer);
// // 同步保存保单投保人
// savePolicyPolicyholder(apiPolicyholderInfoDto, policyBizId); // 同步保存保单投保人
// // 同步保存保单受保人 savePolicyPolicyholder(apiPolicyholderInfoDto, policyBizId);
// savePolicyInsurant(apiInsurantInfoDto, policyBizId); // 同步保存保单受保人
// // 同步保存保单受益人 savePolicyInsurant(apiInsurantInfoDto, policyBizId);
// savePolicyBeneficiary(apiBeneficiaryInfoDtoList, policyBizId); // 同步保存保单受益人
// // 同步保存保单第二持有人 savePolicyBeneficiary(apiBeneficiaryInfoDtoList, policyBizId);
// savePolicySecondHolder(apiSecondHolderInfoDto, policyBizId); // 同步保存保单第二持有人
savePolicySecondHolder(apiSecondHolderInfoDto, policyBizId);
// 同步保存预约附件
savePolicyAppointmentAttachment(apiAppointmentFileDtoList, policyBizId);
// // 同步问卷信息 // // 同步问卷信息
// savePolicyQuestionnaire(appointment.getAppointmentBizId(), policyBizId); // savePolicyQuestionnaire(appointment.getAppointmentBizId(), policyBizId);
return Result.success(); return Result.success();
} }
private void savePolicyAppointmentAttachment(List<ApiAppointmentFileDto> apiAppointmentFileDtoList, String policyBizId) {
if (ObjectUtils.isNotEmpty(apiAppointmentFileDtoList)) {
apiAppointmentFileDtoList.forEach(apiAppointmentFileDto -> {
// apiAppointmentFileDto.setPolicyBizId(policyBizId);
});
// policyAppointmentFileService.saveOrUpdateBatch(apiAppointmentFileDtoList);
}
}
private void savePolicyBroker(String fnaBizId, String policyBizId) { private void savePolicyBroker(String fnaBizId, String policyBizId) {
log.info("同步保存保单转介人, fnaBizId: {}, policyBizId: {}", fnaBizId, policyBizId); log.info("同步保存保单转介人, fnaBizId: {}, policyBizId: {}", fnaBizId, policyBizId);
......
...@@ -497,8 +497,8 @@ public class ApiExpectedFortuneServiceImpl implements ApiExpectedFortuneService ...@@ -497,8 +497,8 @@ public class ApiExpectedFortuneServiceImpl implements ApiExpectedFortuneService
return Result.success(); return Result.success();
} }
private static LocalDate calculateExpectedPayoutDate(LocalDate effectiveDate, Integer issueNumber) { private static LocalDate calculateExpectedPayoutDate(LocalDate coolingOffEndDate, Integer issueNumber) {
return effectiveDate.plusMonths(3).plusYears(issueNumber - 1); return coolingOffEndDate.plusMonths(2).plusYears(issueNumber - 1);
} }
/** /**
...@@ -550,7 +550,7 @@ public class ApiExpectedFortuneServiceImpl implements ApiExpectedFortuneService ...@@ -550,7 +550,7 @@ public class ApiExpectedFortuneServiceImpl implements ApiExpectedFortuneService
//发佣类型 TODO //发佣类型 TODO
// .fortuneType() // .fortuneType()
//发佣日期 //发佣日期
.payoutDate(calculateExpectedPayoutDate(brokerDto.getEffectiveDate(), dto.getIssueNumber())) .payoutDate(calculateExpectedPayoutDate(brokerDto.getCoolingOffEndDate(), dto.getIssueNumber()))
//保单号 //保单号
.policyNo(brokerDto.getPolicyNo()) .policyNo(brokerDto.getPolicyNo())
//佣金发放状态 0=待出账 1=可出账 2=已出账 //佣金发放状态 0=待出账 1=可出账 2=已出账
......
...@@ -31,4 +31,7 @@ public class MailingInfoSaveRequest implements Serializable { ...@@ -31,4 +31,7 @@ public class MailingInfoSaveRequest implements Serializable {
@Schema(description = "客户签收日期", format = "yyyy-MM-dd") @Schema(description = "客户签收日期", format = "yyyy-MM-dd")
@JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8") @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
private Date customerSignDate; private Date customerSignDate;
@Schema(description = "邮寄物品")
private String mailingItem;
} }
...@@ -233,4 +233,7 @@ public class PolicyFollowDto implements Serializable { ...@@ -233,4 +233,7 @@ public class PolicyFollowDto implements Serializable {
@Schema(description = "转介人列表") @Schema(description = "转介人列表")
private List<PolicyBrokerDto> brokerList; private List<PolicyBrokerDto> brokerList;
@Schema(description = "保单类型: 1-电子, 2-纸质")
private String policyType;
} }
...@@ -50,6 +50,11 @@ public class QueryPolicyAndBrokerDto { ...@@ -50,6 +50,11 @@ public class QueryPolicyAndBrokerDto {
private LocalDate effectiveDate; private LocalDate effectiveDate;
/** /**
* 冷静期到期日
*/
private LocalDate coolingOffEndDate;
/**
* 期交保费 * 期交保费
*/ */
private BigDecimal paymentPremium; private BigDecimal paymentPremium;
......
...@@ -346,6 +346,11 @@ public class PolicyFollow implements Serializable { ...@@ -346,6 +346,11 @@ public class PolicyFollow implements Serializable {
private String deliveryNo; private String deliveryNo;
/** /**
* 邮寄物品
*/
private String mailingItem;
/**
* 保单征费 * 保单征费
*/ */
private String policyLevy; private String policyLevy;
...@@ -405,6 +410,11 @@ public class PolicyFollow implements Serializable { ...@@ -405,6 +410,11 @@ public class PolicyFollow implements Serializable {
*/ */
private Date updateTime; private Date updateTime;
/**
* 保单类型: 1-电子, 2-纸质
*/
private String policyType;
@TableField(exist = false) @TableField(exist = false)
private static final long serialVersionUID = 1L; private static final long serialVersionUID = 1L;
} }
\ No newline at end of file
...@@ -485,6 +485,10 @@ public class CommissionExpectedServiceImpl extends ServiceImpl<CommissionExpecte ...@@ -485,6 +485,10 @@ public class CommissionExpectedServiceImpl extends ServiceImpl<CommissionExpecte
if (effectiveDate == null) { if (effectiveDate == null) {
throw new BusinessException("保单生效日期不能为空"); throw new BusinessException("保单生效日期不能为空");
} }
Date coolingOffEndDate = policy.getCoolingOffEndDate();
if (coolingOffEndDate == null) {
throw new BusinessException("保单冷静期到期日不能为空");
}
String paymentTerm = Convert.toStr(policy.getPaymentTerm()); String paymentTerm = Convert.toStr(policy.getPaymentTerm());
if (paymentTerm == null) { if (paymentTerm == null) {
throw new BusinessException("保单供款年期不能为空"); throw new BusinessException("保单供款年期不能为空");
...@@ -532,7 +536,7 @@ public class CommissionExpectedServiceImpl extends ServiceImpl<CommissionExpecte ...@@ -532,7 +536,7 @@ public class CommissionExpectedServiceImpl extends ServiceImpl<CommissionExpecte
commissionExpected.setCommissionRatio(item.getCommissionRate()); commissionExpected.setCommissionRatio(item.getCommissionRate());
commissionExpected.setAmount(null); commissionExpected.setAmount(null);
commissionExpected.setCurrency(item.getCurrency()); commissionExpected.setCurrency(item.getCurrency());
commissionExpected.setCommissionDate(calculateCommissionDate(item.getEndPeriod(), effectiveDate)); commissionExpected.setCommissionDate(calculateCommissionDate(item.getEndPeriod(), coolingOffEndDate));
commissionExpected.setStatus(CommissionExpectedStatusEnum.PENDING.getItemValue()); commissionExpected.setStatus(CommissionExpectedStatusEnum.PENDING.getItemValue());
commissionExpected.setStatusDesc(null); commissionExpected.setStatusDesc(null);
commissionExpected.setDefaultExchangeRate(queryExchangeRateByFeign(policy.getCurrency(), item.getCurrency())); commissionExpected.setDefaultExchangeRate(queryExchangeRateByFeign(policy.getCurrency(), item.getCurrency()));
...@@ -636,20 +640,20 @@ public class CommissionExpectedServiceImpl extends ServiceImpl<CommissionExpecte ...@@ -636,20 +640,20 @@ public class CommissionExpectedServiceImpl extends ServiceImpl<CommissionExpecte
} }
/** /**
* 根据保单生效日期和佣金期数计算预计来佣日期,首期为保单生效日次月,后续期数为首期的次年 * 根据保单冷静期到期日和佣金期数计算预计来佣日期,首期为冷静期到期日的2个月,后续期数为首期的次年
* @param endPeriod 佣金期数 * @param endPeriod 佣金期数
* @param effectiveDate 保单生效日期 * @param coolingOffEndDate 保单冷静期到期日
* @return 预计来佣日期 * @return 预计来佣日期
*/ */
private Date calculateCommissionDate(String endPeriod, Date effectiveDate) { private Date calculateCommissionDate(String endPeriod, Date coolingOffEndDate) {
if (effectiveDate == null || StringUtils.isBlank(endPeriod)) { if (coolingOffEndDate == null || StringUtils.isBlank(endPeriod)) {
return null; return null;
} }
Calendar cal = Calendar.getInstance(); Calendar cal = Calendar.getInstance();
cal.setTime(effectiveDate); cal.setTime(coolingOffEndDate);
// 首期:保单生效日次 // 首期:保单冷静期到期日的2个
cal.add(Calendar.MONTH, 1); cal.add(Calendar.MONTH, 2);
Integer period = Convert.toInt(endPeriod); Integer period = Convert.toInt(endPeriod);
if (period == null || period <= 0) { if (period == null || period <= 0) {
......
...@@ -760,17 +760,17 @@ public class PolicyFollowServiceImpl extends ServiceImpl<PolicyFollowMapper, Pol ...@@ -760,17 +760,17 @@ public class PolicyFollowServiceImpl extends ServiceImpl<PolicyFollowMapper, Pol
String loginUserId = currentLoginUser.getId().toString(); String loginUserId = currentLoginUser.getId().toString();
// 更新邮寄信息相关字段 // 更新邮寄信息相关字段
boolean result = this.lambdaUpdate()
return this.lambdaUpdate()
.eq(PolicyFollow::getPolicyBizId, policyBizId) .eq(PolicyFollow::getPolicyBizId, policyBizId)
.set(mailingInfoSaveRequest.getMailingMethod() != null, PolicyFollow::getMailingMethod, mailingInfoSaveRequest.getMailingMethod()) .set(mailingInfoSaveRequest.getMailingMethod() != null, PolicyFollow::getMailingMethod, mailingInfoSaveRequest.getMailingMethod())
.set(mailingInfoSaveRequest.getDeliveryNo() != null, PolicyFollow::getDeliveryNo, mailingInfoSaveRequest.getDeliveryNo()) .set(mailingInfoSaveRequest.getDeliveryNo() != null, PolicyFollow::getDeliveryNo, mailingInfoSaveRequest.getDeliveryNo())
.set(mailingInfoSaveRequest.getBrokerSignDate() != null, PolicyFollow::getBrokerSignDate, mailingInfoSaveRequest.getBrokerSignDate()) .set(mailingInfoSaveRequest.getBrokerSignDate() != null, PolicyFollow::getBrokerSignDate, mailingInfoSaveRequest.getBrokerSignDate())
.set(mailingInfoSaveRequest.getCustomerSignDate() != null, PolicyFollow::getCustomerSignDate, mailingInfoSaveRequest.getCustomerSignDate()) .set(mailingInfoSaveRequest.getCustomerSignDate() != null, PolicyFollow::getCustomerSignDate, mailingInfoSaveRequest.getCustomerSignDate())
.set(mailingInfoSaveRequest.getMailingItem() != null, PolicyFollow::getMailingItem, mailingInfoSaveRequest.getMailingItem())
.set(PolicyFollow::getUpdaterId, loginUserId) .set(PolicyFollow::getUpdaterId, loginUserId)
.set(PolicyFollow::getUpdateTime, new Date()) .set(PolicyFollow::getUpdateTime, new Date())
.update(); .update();
return result;
} }
@Override @Override
......
...@@ -414,6 +414,12 @@ public class PolicyFollowDetailVO implements Serializable { ...@@ -414,6 +414,12 @@ public class PolicyFollowDetailVO implements Serializable {
private String deliveryNo; private String deliveryNo;
/** /**
* 邮寄物品
*/
@Schema(description = "邮寄物品")
private String mailingItem;
/**
* 保单征费 * 保单征费
*/ */
@Schema(description = "保单征费") @Schema(description = "保单征费")
...@@ -501,6 +507,12 @@ public class PolicyFollowDetailVO implements Serializable { ...@@ -501,6 +507,12 @@ public class PolicyFollowDetailVO implements Serializable {
@Schema(description = "更新时间") @Schema(description = "更新时间")
private Date updateTime; private Date updateTime;
/**
* 保单类型: 1-电子, 2-纸质
*/
@Schema(description = "保单类型: 1-电子, 2-纸质")
private String policyType;
@TableField(exist = false) @TableField(exist = false)
private static final long serialVersionUID = 1L; private static final long serialVersionUID = 1L;
......
...@@ -135,6 +135,18 @@ public class PolicyFollowVO implements Serializable { ...@@ -135,6 +135,18 @@ public class PolicyFollowVO implements Serializable {
private String insuranceCompanyBizId; private String insuranceCompanyBizId;
/** /**
* 保单类型: 1-电子, 2-纸质
*/
@Schema(description = "保单类型: 1-电子, 2-纸质")
private String policyType;
/**
* 邮寄物品
*/
@Schema(description = "邮寄物品")
private String mailingItem;
/**
* 对象转封装类 * 对象转封装类
* *
* @param policyFollow * @param policyFollow
......
...@@ -65,7 +65,10 @@ ...@@ -65,7 +65,10 @@
<select id="queryPolicyBrokerList" <select id="queryPolicyBrokerList"
resultType="com.yd.csf.service.dto.QueryPolicyAndBrokerDto"> resultType="com.yd.csf.service.dto.QueryPolicyAndBrokerDto">
select p.*,pb.*,p.product_launch_biz_id as planBizId select p.*,
pb.*,
p.product_launch_biz_id as planBizId,
p.cooling_off_end_date as coolingOffEndDate
from policy p from policy p
left join policy_broker pb on pb.policy_no = p.policy_no and pb.is_deleted = 0 left join policy_broker pb on pb.policy_no = p.policy_no and pb.is_deleted = 0
<where> <where>
......
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