Commit 54b2ac5e authored by fangxinjiang's avatar fangxinjiang

见费出单+是BPO项目+未启用BPO结算模式的预估、实缴、差额处理-fxj

parent ffd29a44
...@@ -639,6 +639,11 @@ public class DoJointInsuranceTask { ...@@ -639,6 +639,11 @@ public class DoJointInsuranceTask {
//4、针对非提前缴费的预估模式的未启用BPO结算模式的项目,商险存在预估费用,预估费用中应收有值为按照规则计算得出的,应支为0;存在实缴费用,实缴费用应收为“实缴费用的应支-预估数据的应收”的差值,应支等于导入的实缴金额;不存在差额费用——检查了系统中所有的项目维度,商险都是全量未结算,结算月份为空,因此不会存在实缴结算了应收差额,预估未收的情况——按照现有的模式执行 //4、针对非提前缴费的预估模式的未启用BPO结算模式的项目,商险存在预估费用,预估费用中应收有值为按照规则计算得出的,应支为0;存在实缴费用,实缴费用应收为“实缴费用的应支-预估数据的应收”的差值,应支等于导入的实缴金额;不存在差额费用——检查了系统中所有的项目维度,商险都是全量未结算,结算月份为空,因此不会存在实缴结算了应收差额,预估未收的情况——按照现有的模式执行
//应收 //应收
double ys = 0L; double ys = 0L;
//是BPO但是未启用BPO结算模式
boolean updateFlag = false;
if ("是".equals(deptInfoVo.getIsBpo()) && "否".equals(deptInfoVo.getBpoSettle())){
updateFlag = true;
}
//2、针对启用BPO结算模式的,无论是否为预估模式是否需提前缴费,都不会产生商险的预估数据,商险只存在实缴费用,实缴费用中,应收为0,应支等于导入的实缴金额——此类费用无需收可正常支出,支出计成本; //2、针对启用BPO结算模式的,无论是否为预估模式是否需提前缴费,都不会产生商险的预估数据,商险只存在实缴费用,实缴费用中,应收为0,应支等于导入的实缴金额——此类费用无需收可正常支出,支出计成本;
if ("是".equals(deptInfoVo.getBpoSettle())) { if ("是".equals(deptInfoVo.getBpoSettle())) {
if (InsurancesConstants.ACTUAL_SETTLE_BILL.equals(param.getSettleType())){ if (InsurancesConstants.ACTUAL_SETTLE_BILL.equals(param.getSettleType())){
...@@ -680,9 +685,20 @@ public class DoJointInsuranceTask { ...@@ -680,9 +685,20 @@ public class DoJointInsuranceTask {
// 则说明少收了,差额下期要结算回来,若<0,则说明多收了,为负数,下期结算的时候,会结算负数,相当于在下一期的结算中可以少收这部分钱;若=0,则不生成差额数据), // 则说明少收了,差额下期要结算回来,若<0,则说明多收了,为负数,下期结算的时候,会结算负数,相当于在下一期的结算中可以少收这部分钱;若=0,则不生成差额数据),
// 派单id前缀,同之前的预估和实缴明细的id一致,“是否全部结算”为“是”,收款结算单拉取商险明细数据的时候,默认带出,必须跟着一起结算)。 // 派单id前缀,同之前的预估和实缴明细的id一致,“是否全部结算”为“是”,收款结算单拉取商险明细数据的时候,默认带出,必须跟着一起结算)。
if (InsurancesConstants.ESTIMATE_SETTLE_BILL.equals(param.getSettleType())){ if (InsurancesConstants.ESTIMATE_SETTLE_BILL.equals(param.getSettleType())){
ys = null==param.getEstimatePremium()? 0.00:param.getEstimatePremium().doubleValue(); if (updateFlag){
//应支=0 //针对提前缴费的是BPO但是未启用BPO结算模式的项目的商险费用明细数据——数据进行如下调整
pushParam.setFd_3adfe6e3911ffe(0.00); //预估数据:应收为0、应支为预估数据
//实缴数据:应收为0,应支为实缴数据
//差额数据:应收为0,应支为实缴的应支-预估的应支
ys = 0.00;
//应支=0
pushParam.setFd_3adfe6e3911ffe(null==param.getEstimatePremium()? 0.00:param.getEstimatePremium().doubleValue());
}else {
ys = null==param.getEstimatePremium()? 0.00:param.getEstimatePremium().doubleValue();
//应支=0
pushParam.setFd_3adfe6e3911ffe(0.00);
}
pushParam.setFd_3adfe6af71a1cc("预估"); pushParam.setFd_3adfe6af71a1cc("预估");
//实际结算月份 //实际结算月份
...@@ -693,13 +709,25 @@ public class DoJointInsuranceTask { ...@@ -693,13 +709,25 @@ public class DoJointInsuranceTask {
} }
if (InsurancesConstants.ACTUAL_SETTLE_BILL.equals(param.getSettleType())){ if (InsurancesConstants.ACTUAL_SETTLE_BILL.equals(param.getSettleType())){
ys = 0L; ys = 0L;
if (updateFlag){
//应支=0
pushParam.setFd_3adfe6e3911ffe(null==param.getActualPremium()? 0.00:param.getActualPremium().doubleValue());
}
} }
//差额 //差额
if (InsurancesConstants.BALANCE_SETTLE_BILL.equals(param.getSettleType())){ if (InsurancesConstants.BALANCE_SETTLE_BILL.equals(param.getSettleType())){
//应收=实缴的应支-预估的应收 if (updateFlag){
ys = BigDecimalUtils.subtractAllowNegative(param.getActualPremium(),param.getEstimatePremium()).doubleValue(); //应收=实缴的应支-预估的应收
//应支=0 ys = 0.00;
pushParam.setFd_3adfe6e3911ffe(0.00); //应支=0
pushParam.setFd_3adfe6e3911ffe(BigDecimalUtils.subtractAllowNegative(param.getActualPremium(),param.getEstimatePremium()).doubleValue());
}else {
//应收=实缴的应支-预估的应收
ys = BigDecimalUtils.subtractAllowNegative(param.getActualPremium(),param.getEstimatePremium()).doubleValue();
//应支=0
pushParam.setFd_3adfe6e3911ffe(0.00);
}
//实际保费设置为0.0 //实际保费设置为0.0
pushParam.setFd_3adfe6610c0d2c(null == param.getActualPremium()?0.00:param.getActualPremium().doubleValue()); pushParam.setFd_3adfe6610c0d2c(null == param.getActualPremium()?0.00:param.getActualPremium().doubleValue());
//实际结算月份 //实际结算月份
......
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