Commit 9b54f8b0 authored by fangxinjiang's avatar fangxinjiang

见费出单逻辑-fxj

parent a57601a5
...@@ -522,36 +522,37 @@ public class TInsuranceDetailServiceImpl extends ServiceImpl<TInsuranceDetailMap ...@@ -522,36 +522,37 @@ public class TInsuranceDetailServiceImpl extends ServiceImpl<TInsuranceDetailMap
LocalDate buyStartDate; LocalDate buyStartDate;
//计算预计办理日期:若派单当日为工作日3点20之前,则预计办理日期为派单日期,若为3点20之后或派单日为非工作日,则预计办理日期为派单日后最近的一个工作日 //计算预计办理日期:若派单当日为工作日3点20之前,则预计办理日期为派单日期,若为3点20之后或派单日为非工作日,则预计办理日期为派单日后最近的一个工作日
detail.setPreHandleTime(LocalDateUtil.parseLocalDate(DateUtil.formatDate(preDispatchDate))); detail.setPreHandleTime(LocalDateUtil.parseLocalDate(DateUtil.formatDate(preDispatchDate)));
if (CommonConstants.ZERO_STRING.equals(detail.getIsJfcd())){
//计算参保开始日期:新增\批增\替换的参保开始日期=MAX("保单开始时间"、"预计办理日期+1日"); //计算参保开始日期:新增\批增\替换的参保开始日期=MAX("保单开始时间"、"预计办理日期+1日");
if (detail.getPolicyStart().isAfter(detail.getPreHandleTime().plusDays(1))){ if (detail.getPolicyStart().isAfter(detail.getPreHandleTime().plusDays(1))){
buyStartDate = detail.getPolicyStart(); buyStartDate = detail.getPolicyStart();
}else { }else {
buyStartDate = detail.getPreHandleTime().plusDays(1); buyStartDate = detail.getPreHandleTime().plusDays(1);
} }
if (null != detail.getPolicyEnd() && null != buyStartDate){ if (null != detail.getPolicyEnd() && null != buyStartDate){
purchaseCycle = LocalDateUtil.betweenMonth(buyStartDate.toString(),detail.getPolicyEnd().toString()); purchaseCycle = LocalDateUtil.betweenMonth(buyStartDate.toString(),detail.getPolicyEnd().toString());
} }
//计算购买周期:购买周期=保单结束日期-参保开始日期+1(天数);购买周期=保单结束日期-参保开始日期+1(天数)推算出月数; //计算购买周期:购买周期=保单结束日期-参保开始日期+1(天数);购买周期=保单结束日期-参保开始日期+1(天数)推算出月数;
//按天计费方式
if (null != detail.getBillingType() && CommonConstants.ZERO_INT == detail.getBillingType().intValue()){
//计算预计保费:根据计费方式、购买标准、购买天数/月数等计算:
//“计费方式”为“按天”的,预估保费=购买周期天数/365*购买标准+5元;
//“计费方式”为“按月”的,预估保费=购买周期月数对应的费率*购买标准+5元
//按天计费方式 //按天计费方式
if (null != detail.getBillingType() && CommonConstants.ZERO_INT == detail.getBillingType().intValue()){ detail.setEstimatePremium(new BigDecimal(detail.getBuyStandard())
//计算预计保费:根据计费方式、购买标准、购买天数/月数等计算: .multiply(new BigDecimal(purchaseCycle))
//“计费方式”为“按天”的,预估保费=购买周期天数/365*购买标准+5元; .divide(new BigDecimal("365"), 2, RoundingMode.HALF_UP)
//“计费方式”为“按月”的,预估保费=购买周期月数对应的费率*购买标准+5元 .add(new BigDecimal("5.00")));
//按天计费方式 //按月计费方式
detail.setEstimatePremium(new BigDecimal(detail.getBuyStandard()) }else if (null != detail.getBillingType() && CommonConstants.ONE_INT == detail.getBillingType().intValue()){
.multiply(new BigDecimal(purchaseCycle)) detail.setEstimatePremium(new BigDecimal(detail.getBuyStandard())
.divide(new BigDecimal("365"), 2, RoundingMode.HALF_UP) .multiply(null== detail.getRate()?BigDecimal.ZERO: detail.getRate())
.add(new BigDecimal("5.00"))); .add(new BigDecimal("5.00")));
//按月计费方式 }
}else if (null != detail.getBillingType() && CommonConstants.ONE_INT == detail.getBillingType().intValue()){ long day = LocalDateUtil.betweenDay(buyStartDate.toString(),detail.getPolicyEnd().toString());
detail.setEstimatePremium(new BigDecimal(detail.getBuyStandard()) //购买周期
.multiply(null== detail.getRate()?BigDecimal.ZERO: detail.getRate()) detail.setPurchaseCycle(purchaseCycle+"个月/"+day+"天");
.add(new BigDecimal("5.00"))); if (CommonConstants.ZERO_STRING.equals(detail.getIsJfcd())){
}
long day = LocalDateUtil.betweenDay(buyStartDate.toString().toString(),detail.getPolicyEnd().toString());
//购买周期
detail.setPurchaseCycle(purchaseCycle+"个月/"+day+"天");
//预估缴费状态 0待缴费、1已缴费 //预估缴费状态 0待缴费、1已缴费
detail.setPaymentStatus(CommonConstants.ZERO_STRING); detail.setPaymentStatus(CommonConstants.ZERO_STRING);
detail.setBuyHandleStatus(CommonConstants.SIX_INT); detail.setBuyHandleStatus(CommonConstants.SIX_INT);
......
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