Commit d3b3d2b9 by jianan

入账检核-入账币种问题

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