Commit d3b3d2b9 by jianan

入账检核-入账币种问题

parent c2f8da32
......@@ -34,7 +34,6 @@ import com.yd.csf.service.vo.PolicyFollowDetailVO;
import com.yd.csf.service.vo.PolicyFollowRecordVO;
import com.yd.csf.service.vo.PolicyFollowVO;
import com.yd.csf.service.vo.PolicyNumberResponseVO;
import com.yd.feign.config.FeignTokenInterceptor;
import com.yd.insurance.base.feign.client.insurancereconciliationcompany.ApiInsuranceReconciliationCompanyFeignClient;
import com.yd.insurance.base.feign.request.insurancereconciliationcompany.ApiInsuranceReconciliationCompanyPageRequest;
import com.yd.product.feign.response.expectedspecies.ApiExpectedSpeciesListResponse;
......@@ -46,7 +45,6 @@ import org.apache.commons.lang3.StringUtils;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.BeanUtils;
import org.springframework.scheduling.annotation.Async;
import org.springframework.transaction.annotation.Transactional;
import org.springframework.web.bind.annotation.*;
import org.springframework.web.multipart.MultipartFile;
......
......@@ -51,6 +51,11 @@ public class CommissionExpected implements Serializable {
private BigDecimal premium;
/**
* 保单币种
*/
private String policyCurrency;
/**
* 保险公司业务id
*/
private String insuranceCompanyBizId;
......
......@@ -630,6 +630,7 @@ public class CommissionExpectedServiceImpl extends ServiceImpl<CommissionExpecte
commissionExpected.setCommissionBizType("R");
commissionExpected.setPolicyNo(policyNo);
commissionExpected.setPremium(paymentPremium);
commissionExpected.setPolicyCurrency(policy.getCurrency());
commissionExpected.setInsuranceCompanyBizId(insuranceCompanyBizId);
commissionExpected.setProductLaunchBizId(productLaunchBizId);
commissionExpected.setReconciliationCompany(reconciliationCompany);
......
......@@ -272,7 +272,6 @@ public class CommissionServiceImpl extends ServiceImpl<CommissionMapper, Commiss
if (policy != null) {
// 填充保费、产品名称、保险公司、对账公司
commission.setPremium(String.valueOf(policy.getPaymentPremium()));
commission.setCurrency(policy.getCurrency());
commission.setPolicyCurrency(policy.getCurrency());
commission.setProductLaunchBizId(policy.getProductLaunchBizId());
commission.setInsuranceCompanyBizId(policy.getInsuranceCompanyBizId());
......@@ -299,7 +298,7 @@ public class CommissionServiceImpl extends ServiceImpl<CommissionMapper, Commiss
}
// 计算来佣金额(港币)
commission.setHkdAmount(calculateHKDAmount(commission.getAmount(), commission.getExchangeRate(), commission.getCurrency()));
commission.setHkdAmount(calculateHKDAmount(commission.getAmount(), commission.getCurrency()));
}
}
......@@ -378,11 +377,13 @@ public class CommissionServiceImpl extends ServiceImpl<CommissionMapper, Commiss
if (commission == null) {
throw new BusinessException(ResultCode.NULL_ERROR.getCode(), "未找到该来佣记录");
}
Policy policy = null;
if (StringUtils.isNotBlank(commission.getPolicyNo())) {
Policy policy = policyService.lambdaQuery().eq(Policy::getPolicyNo, commission.getPolicyNo()).one();
policy = policyService.lambdaQuery().eq(Policy::getPolicyNo, commission.getPolicyNo()).one();
if (policy == null) {
throw new BusinessException(ResultCode.NULL_ERROR.getCode(), "保单不存在:" + commission.getPolicyNo());
}
commission.setPolicyCurrency(policy.getCurrency());
}
BigDecimal requestAmount = commissionUpdateRequest.getAmount();
......@@ -401,10 +402,7 @@ public class CommissionServiceImpl extends ServiceImpl<CommissionMapper, Commiss
}
}
// 计算来佣金额(港币)
commission.setHkdAmount(calculateHKDAmount(
requestAmount,
commissionUpdateRequest.getExchangeRate(),
commissionUpdateRequest.getCurrency()));
commission.setHkdAmount(calculateHKDAmount(requestAmount, commissionUpdateRequest.getCurrency()));
// 获取当前登录用户
AuthUserDto currentLoginUser = SecurityUtil.getCurrentLoginUser();
......@@ -442,10 +440,14 @@ public class CommissionServiceImpl extends ServiceImpl<CommissionMapper, Commiss
return true;
}
private BigDecimal calculateHKDAmount(BigDecimal requestAmount, BigDecimal exchangeRate, String currency) {
private BigDecimal calculateHKDAmount(BigDecimal requestAmount, String currency) {
if ("HKD".equalsIgnoreCase(currency)) {
return requestAmount;
}
// 查询入账币种到港币的汇率
BigDecimal exchangeRate = queryExchangeRateByFeign(currency, "HKD");
return requestAmount.multiply(exchangeRate);
}
......@@ -721,7 +723,7 @@ public class CommissionServiceImpl extends ServiceImpl<CommissionMapper, Commiss
if (result != null && result.getData() != null) {
return result.getData();
}
return null;
return BigDecimal.ONE;
}
/**
......@@ -748,7 +750,7 @@ public class CommissionServiceImpl extends ServiceImpl<CommissionMapper, Commiss
throw new BusinessException(ResultCode.NULL_ERROR.getCode(), "当前结算汇率不能为空");
}
// 获取保单币种
String currency = commissionExpected.getCurrency();
String currency = commissionExpected.getPolicyCurrency();
// 如果当前入账币种等于保单币种,直接计算来佣比例
if (StringUtils.equalsIgnoreCase(currentCurrency, currency)) {
......@@ -824,8 +826,9 @@ public class CommissionServiceImpl extends ServiceImpl<CommissionMapper, Commiss
for (CommissionAddRequest request : customerAddRequestList) {
Commission commission = new Commission();
BeanUtils.copyProperties(request, commission);
// 计算来佣金额(港币)
commission.setHkdAmount(calculateHKDAmount(request.getAmount(), request.getExchangeRate(), request.getCurrency()));
commission.setHkdAmount(calculateHKDAmount(request.getAmount(), request.getCurrency()));
// 入账业务id
commission.setCommissionBizId(RandomStringGenerator.generateBizId16(CommonEnum.UID_TYPE_COMMISSION.getCode()));
// 关联业务id
......@@ -838,7 +841,6 @@ public class CommissionServiceImpl extends ServiceImpl<CommissionMapper, Commiss
commission.setProductLaunchBizId(policy.getProductLaunchBizId());
commission.setInsuranceCompanyBizId(policy.getInsuranceCompanyBizId());
commission.setPremium(Convert.toStr(policy.getPaymentPremium()));
commission.setCurrency(policy.getCurrency());
commission.setPolicyCurrency(policy.getCurrency());
} else {
throw new BusinessException(ResultCode.PARAMS_ERROR.getCode(), "保单不存在, policyNo: " + request.getPolicyNo());
......
......@@ -11,6 +11,7 @@
<result property="commissionBizType" column="commission_biz_type" />
<result property="policyNo" column="policy_no" />
<result property="premium" column="premium" />
<result property="policyCurrency" column="policy_currency" />
<result property="insuranceCompanyBizId" column="insurance_company_biz_id" />
<result property="productLaunchBizId" column="product_launch_biz_id" />
<result property="reconciliationCompany" column="reconciliation_company" />
......@@ -41,7 +42,7 @@
<sql id="Base_Column_List">
id,commission_expected_biz_id,receivable_no,commission_biz_type,
policy_no,premium,insurance_company_biz_id,product_launch_biz_id,
policy_no,premium,policy_currency,insurance_company_biz_id,product_launch_biz_id,
reconciliation_company,reconciliation_company_code,reconciliation_company_biz_id,commission_period,
total_period,commission_name,commission_type,commission_ratio,amount,currency,default_exchange_rate,expected_amount,
commission_date,status,status_desc,paid_amount,paid_ratio,remark,is_deleted,creator_id,
......
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