Commit e888a128 authored by fangxinjiang's avatar fangxinjiang

见费出单逻辑-fxj

parent d0a94b0e
...@@ -439,6 +439,12 @@ public class TInsuranceDetail extends BaseEntity { ...@@ -439,6 +439,12 @@ public class TInsuranceDetail extends BaseEntity {
@JsonFormat(shape = JsonFormat.Shape.STRING, pattern="yyyy-MM-dd") @JsonFormat(shape = JsonFormat.Shape.STRING, pattern="yyyy-MM-dd")
private LocalDate preHandleTime; private LocalDate preHandleTime;
/**
* 差额settleId
*/
@TableField(exist = false)
@Schema(description = "差额settleId")
private String balanceId;
private static final long serialVersionUID = 1L; private static final long serialVersionUID = 1L;
} }
\ No newline at end of file
...@@ -196,4 +196,10 @@ public class EkpInteractiveParam implements Serializable { ...@@ -196,4 +196,10 @@ public class EkpInteractiveParam implements Serializable {
*/ */
@Schema(description = "是否见费出单") @Schema(description = "是否见费出单")
private String isJfcd; private String isJfcd;
/**
* 差额settleId
*/
@Schema(description = "差额settleId")
private String balanceId;
} }
...@@ -2038,7 +2038,8 @@ public class TInsuranceDetailServiceImpl extends ServiceImpl<TInsuranceDetailMap ...@@ -2038,7 +2038,8 @@ public class TInsuranceDetailServiceImpl extends ServiceImpl<TInsuranceDetailMap
} }
//根据结算类型判断是否需要计算预估保费 //根据结算类型判断是否需要计算预估保费
//预估 (是否见费出单为的不用生成预估,因为之前已经生成了) //预估 (是否见费出单为的不用生成预估,因为之前已经生成了)
if (detail.getSettleType() == CommonConstants.ZERO_INT && CommonConstants.ONE_STRING.equals(detail.getIsJfcd())){ if (detail.getSettleType() == CommonConstants.ZERO_INT ){
if (CommonConstants.ONE_STRING.equals(detail.getIsJfcd())){
if (CommonConstants.ONE_INT == detail.getBillingType()){ if (CommonConstants.ONE_INT == detail.getBillingType()){
// 按月查费率 // 按月查费率
// 预估保费 = 费率 * 购买标准 + 5元 // 预估保费 = 费率 * 购买标准 + 5元
...@@ -2119,6 +2120,18 @@ public class TInsuranceDetailServiceImpl extends ServiceImpl<TInsuranceDetailMap ...@@ -2119,6 +2120,18 @@ public class TInsuranceDetailServiceImpl extends ServiceImpl<TInsuranceDetailMap
//生成收入数据 //生成收入数据
createInsuranceInfo(detail,settleDomain); createInsuranceInfo(detail,settleDomain);
} }
}else if (CommonConstants.ZERO_STRING.equals(detail.getIsJfcd())){
//记录状态均置为「已投保」
detail.setBuyHandleStatus(CommonConstants.THREE_INT);
detail.setSignFlag(CommonConstants.ONE_INT);
//记录的有效状态,置为「有效」
detail.setIsEffect(CommonConstants.ZERO_INT);
detail.setIsOverdue(CommonConstants.ZERO_INT);
detail.setIsUse(CommonConstants.ZERO_INT);
detail.setUpdateTime(LocalDateTime.now());
detail.setUpdateBy(user.getId());
successTwo.add(detail);
}
} }
//实缴 //实缴
if(detail.getSettleType() == CommonConstants.ONE_INT){ if(detail.getSettleType() == CommonConstants.ONE_INT){
...@@ -2433,7 +2446,7 @@ public class TInsuranceDetailServiceImpl extends ServiceImpl<TInsuranceDetailMap ...@@ -2433,7 +2446,7 @@ public class TInsuranceDetailServiceImpl extends ServiceImpl<TInsuranceDetailMap
if(StringUtils.isNotBlank(detail.getDefaultSettleId()) && detail.getSettleType() == CommonConstants.ZERO_INT){ if(StringUtils.isNotBlank(detail.getDefaultSettleId()) && detail.getSettleType() == CommonConstants.ZERO_INT){
settle = tInsuranceSettleService.getById(detail.getDefaultSettleId()); settle = tInsuranceSettleService.getById(detail.getDefaultSettleId());
//如果未推送则推送预估新增 //如果未推送则推送预估新增
if(CommonConstants.ZERO_INT == settle.getIsEstimatePush()){ if(null != settle && CommonConstants.ZERO_INT == settle.getIsEstimatePush()){
doJointInsuranceTask.asynchronousEkpInfo(detail,settle,CommonConstants.ONE_INT); doJointInsuranceTask.asynchronousEkpInfo(detail,settle,CommonConstants.ONE_INT);
} }
} }
...@@ -2538,11 +2551,12 @@ public class TInsuranceDetailServiceImpl extends ServiceImpl<TInsuranceDetailMap ...@@ -2538,11 +2551,12 @@ public class TInsuranceDetailServiceImpl extends ServiceImpl<TInsuranceDetailMap
settleNew.setEstimatePremium(detail.getEstimatePremium()); settleNew.setEstimatePremium(detail.getEstimatePremium());
//调完ekp接口才会是1 //调完ekp接口才会是1
settleNew.setCreateTime(LocalDateTime.now()); settleNew.setCreateTime(LocalDateTime.now());
if (bigDecimalAct.compareTo(detail.getEstimatePremium()) != 0){
tInsuranceSettleService.save(settleNew); tInsuranceSettleService.save(settleNew);
//调EKP新增实际保费 detail.setBalanceId(settleNew.getId());
detail.setActualPremium(bigDecimalAct);
doJointInsuranceTask.asynchronousEkpInfo(detail,settleNew,CommonConstants.SEVEN_INT); doJointInsuranceTask.asynchronousEkpInfo(detail,settleNew,CommonConstants.SEVEN_INT);
} }
}
} }
//如果当前保费为空,且保单号或发票号不一样 //如果当前保费为空,且保单号或发票号不一样
......
...@@ -639,7 +639,7 @@ public class DoJointInsuranceTask { ...@@ -639,7 +639,7 @@ public class DoJointInsuranceTask {
ys = 0L; ys = 0L;
} }
}else { }else {
if (!"".equals(param.getIsJfcd())){ if (!"0".equals(param.getIsJfcd())){
//1、针对非提前缴费也非预估模式也未启用BPO结算模式的项目下,商险只存在实缴费用,实缴费用中应收等于应支——此类费用“实缴费用”需已收才能支出 //1、针对非提前缴费也非预估模式也未启用BPO结算模式的项目下,商险只存在实缴费用,实缴费用中应收等于应支——此类费用“实缴费用”需已收才能支出
if (InsurancesConstants.ACTUAL_SETTLE_BILL.equals(param.getSettleType()) if (InsurancesConstants.ACTUAL_SETTLE_BILL.equals(param.getSettleType())
&& "无".equals(pushParam.getFd_3af9d1441ef7b6())){ && "无".equals(pushParam.getFd_3af9d1441ef7b6())){
...@@ -659,7 +659,7 @@ public class DoJointInsuranceTask { ...@@ -659,7 +659,7 @@ public class DoJointInsuranceTask {
ys = BigDecimalUtils.safeSubtract(param.getActualPremium(),param.getEstimatePremium()).doubleValue(); ys = BigDecimalUtils.safeSubtract(param.getActualPremium(),param.getEstimatePremium()).doubleValue();
} }
} }
} else if ("".equals(param.getIsJfcd())){ } else if ("0".equals(param.getIsJfcd())){
//3、针对提前缴费的项目,无论是否为预估模式,商险存在预估费用,预估费用中应收有值为按照规则计算得出的,应支为0;存在实缴费用,实缴费用应收为0,应支等于导入的实缴金额; //3、针对提前缴费的项目,无论是否为预估模式,商险存在预估费用,预估费用中应收有值为按照规则计算得出的,应支为0;存在实缴费用,实缴费用应收为0,应支等于导入的实缴金额;
// 存在差额费用,差额费用应收有值,等于“实缴的应支金额-预估的应收金额——此类实缴支出会判断是否存在提前缴费的标识,若存在,则支出可以选择的到, // 存在差额费用,差额费用应收有值,等于“实缴的应支金额-预估的应收金额——此类实缴支出会判断是否存在提前缴费的标识,若存在,则支出可以选择的到,
// 选择后即可支出(差额明细逻辑:导入后根据预估明细和实缴明细,生成“单据类型”为“差额”的商险明细数据(只有应收金额没有应支,应收金额=实缴的应支-预估的应收,若>0, // 选择后即可支出(差额明细逻辑:导入后根据预估明细和实缴明细,生成“单据类型”为“差额”的商险明细数据(只有应收金额没有应支,应收金额=实缴的应支-预估的应收,若>0,
...@@ -681,6 +681,9 @@ public class DoJointInsuranceTask { ...@@ -681,6 +681,9 @@ public class DoJointInsuranceTask {
pushParam.setFd_3adfe6e3911ffe(0.00); pushParam.setFd_3adfe6e3911ffe(0.00);
//是否全部结算 //是否全部结算
pushParam.setFd_3b13b2ecc164aa("是"); pushParam.setFd_3b13b2ecc164aa("是");
//实际保费设置为0.0
pushParam.setFd_3adfe6610c0d2c(0.00);
} }
} }
...@@ -952,8 +955,12 @@ public class DoJointInsuranceTask { ...@@ -952,8 +955,12 @@ public class DoJointInsuranceTask {
if (null != param.getDetailId() && null != param.getDefaultSettleId()) { if (null != param.getDetailId() && null != param.getDefaultSettleId()) {
pushParam.setFd_3b0a5743acab7e(param.getDetailId() + CommonConstants.DOWN_LINE_STRING + param.getDefaultSettleId()); pushParam.setFd_3b0a5743acab7e(param.getDetailId() + CommonConstants.DOWN_LINE_STRING + param.getDefaultSettleId());
} else { } else {
if (InsurancesConstants.BALANCE_SETTLE_BILL.equals(param.getSettleType())){
pushParam.setFd_3b0a5743acab7e(param.getDetailId() + CommonConstants.DOWN_LINE_STRING + (null==param.getBalanceId()?"":param.getBalanceId()));
}else {
pushParam.setFd_3b0a5743acab7e(CommonConstants.EMPTY_STRING); pushParam.setFd_3b0a5743acab7e(CommonConstants.EMPTY_STRING);
} }
}
//单据类型 //单据类型
pushParam.setFd_3adfe6af71a1cc(null != param.getSettleType() ? param.getSettleType() : CommonConstants.EMPTY_STRING); pushParam.setFd_3adfe6af71a1cc(null != param.getSettleType() ? param.getSettleType() : CommonConstants.EMPTY_STRING);
//项目编码 //项目编码
......
...@@ -107,11 +107,11 @@ ...@@ -107,11 +107,11 @@
</delete> </delete>
<delete id="deleteEkpInsuranceDetailAsso"> <delete id="deleteEkpInsuranceDetailAsso">
delete from ekp_insurances_info where fd_3b0a5743acab7e like concat(#{id},'%') and fd_jfcd='是' and (fd_3adfe6af71a1cc = '差额' or fd_3adfe6af71a1cc = '实缴') delete from ekp_insurances_info where fd_3b0a5743acab7e like CONCAT(#{id},'%') and fd_jfcd='是' and (fd_3adfe6af71a1cc = '差额' or fd_3adfe6af71a1cc = '实缴')
</delete> </delete>
<delete id="callBackBalance"> <delete id="callBackBalance">
delete from ekp_insurances_info where fd_3b0a5743acab7e like concat(#{id},'%') and fd_jfcd='是' and fd_3adfe6af71a1cc = '差额' delete from ekp_insurances_info where fd_3b0a5743acab7e like CONCAT(#{id},'%') and fd_jfcd='是' and fd_3adfe6af71a1cc = '差额'
</delete> </delete>
<select id="getDeptSettle" resultMap="BaseDeptResultMap"> <select id="getDeptSettle" resultMap="BaseDeptResultMap">
select select
......
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