Commit 557e35d4 by jianan

Merge branch 'refs/heads/test' into dev

# Conflicts:
#	yd-csf-service/src/main/java/com/yd/csf/service/service/impl/CommissionServiceImpl.java
parents bcd2540e b81c107f
...@@ -398,13 +398,13 @@ public class ApiFortuneController { ...@@ -398,13 +398,13 @@ public class ApiFortuneController {
} }
/** /**
* 更新保单发佣(检核操作) * 更新
* *
* @param fortuneUpdateRequest * @param fortuneUpdateRequest
* @return * @return
*/ */
@PostMapping("/update") @PostMapping("/update")
@Operation(summary = "更新保单发佣信息(检核操作)") @Operation(summary = "更新")
public Result<Boolean> updateFortune(@RequestBody FortuneUpdateRequest fortuneUpdateRequest) { public Result<Boolean> updateFortune(@RequestBody FortuneUpdateRequest fortuneUpdateRequest) {
if (fortuneUpdateRequest == null || fortuneUpdateRequest.getFortuneBizId() == null) { if (fortuneUpdateRequest == null || fortuneUpdateRequest.getFortuneBizId() == null) {
return Result.fail(ErrorCode.PARAMS_ERROR.getCode(), "fortuneBizId不能为空"); return Result.fail(ErrorCode.PARAMS_ERROR.getCode(), "fortuneBizId不能为空");
......
...@@ -668,7 +668,7 @@ public class ApiExpectedFortuneServiceImpl implements ApiExpectedFortuneService ...@@ -668,7 +668,7 @@ public class ApiExpectedFortuneServiceImpl implements ApiExpectedFortuneService
//原币种 //原币种
updateObj.setOriginalCurrency(policyCurrency); updateObj.setOriginalCurrency(policyCurrency);
//原币种金额 //原币种金额
BigDecimal ruleAmount = expectedFortune.getRuleAmount(); BigDecimal ruleAmount = expectedFortune.getRuleAmount().setScale(4, RoundingMode.HALF_UP);
updateObj.setOriginalAmount(ruleAmount); updateObj.setOriginalAmount(ruleAmount);
//原币种 -> 港币汇率 //原币种 -> 港币汇率
updateObj.setOriginalToHkdRate(originalToHkdRate); updateObj.setOriginalToHkdRate(originalToHkdRate);
...@@ -676,22 +676,22 @@ public class ApiExpectedFortuneServiceImpl implements ApiExpectedFortuneService ...@@ -676,22 +676,22 @@ public class ApiExpectedFortuneServiceImpl implements ApiExpectedFortuneService
updateObj.setRuleCurrency(policyCurrency); updateObj.setRuleCurrency(policyCurrency);
//默认保单币种 -> 港币汇率 //默认保单币种 -> 港币汇率
updateObj.setDefaultExchangeRate(originalToHkdRate); updateObj.setDefaultExchangeRate(originalToHkdRate);
//应发港币金额(估)(标准发佣金额 * 默认保单币种 -> 港币汇率) //应发港币金额(估)(标准发佣金额 * 默认保单币种 -> 港币汇率);出的钱保留整数
BigDecimal hkdAmount = ruleAmount.multiply(originalToHkdRate); BigDecimal hkdAmount = ruleAmount.multiply(originalToHkdRate);
updateObj.setHkdAmount(hkdAmount); updateObj.setHkdAmount(hkdAmount.setScale(0, RoundingMode.HALF_UP));
//发放币种 //发放币种
updateObj.setPayoutCurrency(currency); updateObj.setPayoutCurrency(currency);
//发放币种金额 //发放币种金额;出的钱保留整数
updateObj.setPayoutAmount(hkdAmount.multiply(hkdToPayoutRate)); updateObj.setPayoutAmount(hkdAmount.multiply(hkdToPayoutRate).setScale(0, RoundingMode.HALF_UP));
//港币 -> 发放币种汇率 //港币 -> 发放币种汇率
updateObj.setHkdToPayoutRate(hkdToPayoutRate); updateObj.setHkdToPayoutRate(hkdToPayoutRate);
//默认值 //默认值
updateObj.setPaidRuleAmount(BigDecimal.ZERO); updateObj.setPaidRuleAmount(BigDecimal.ZERO);
updateObj.setUnpaidRuleAmount(ruleAmount); updateObj.setUnpaidRuleAmount(ruleAmount);
updateObj.setUnpaidRuleAmountHkd(hkdAmount); updateObj.setUnpaidRuleAmountHkd(hkdAmount.setScale(0, RoundingMode.HALF_UP));
updateObj.setPaidAmount(BigDecimal.ZERO); updateObj.setPaidAmount(BigDecimal.ZERO);
updateObj.setPaidRatio(BigDecimal.ZERO); updateObj.setPaidRatio(BigDecimal.ZERO);
updateObj.setUnpaidAmount(expectedFortune.getHkdAmount()); updateObj.setUnpaidAmount(hkdAmount.setScale(0, RoundingMode.HALF_UP));
updateObj.setUnpaidRatio(BigDecimal.valueOf(100)); updateObj.setUnpaidRatio(BigDecimal.valueOf(100));
} }
......
...@@ -44,7 +44,7 @@ public class XxlJobConfig { ...@@ -44,7 +44,7 @@ public class XxlJobConfig {
@Value("${xxl.job.executor.logretentiondays:30}") @Value("${xxl.job.executor.logretentiondays:30}")
private int logRetentionDays; private int logRetentionDays;
@Bean(initMethod = "start", destroyMethod = "destroy") @Bean
public XxlJobSpringExecutor xxlJobExecutor() { public XxlJobSpringExecutor xxlJobExecutor() {
log.info(">>>>>>>>>>> xxl-job config init. adminAddresses={}, appname={}, ip={}, port={}", log.info(">>>>>>>>>>> xxl-job config init. adminAddresses={}, appname={}, ip={}, port={}",
adminAddresses, appname, StringUtils.defaultIfBlank(ip, "auto"), port); adminAddresses, appname, StringUtils.defaultIfBlank(ip, "auto"), port);
......
...@@ -482,7 +482,8 @@ public class CommissionServiceImpl extends ServiceImpl<CommissionMapper, Commiss ...@@ -482,7 +482,8 @@ public class CommissionServiceImpl extends ServiceImpl<CommissionMapper, Commiss
// 查询入账币种到港币的汇率 // 查询入账币种到港币的汇率
BigDecimal exchangeRate = queryExchangeRateByFeign(currency, "HKD"); BigDecimal exchangeRate = queryExchangeRateByFeign(currency, "HKD");
return requestAmount.multiply(exchangeRate); // 来的钱(入账/来佣)保留2位小数
return requestAmount.multiply(exchangeRate).setScale(2, RoundingMode.HALF_UP);
} }
private CommissionExpected getCommissionExpectedBizId(Commission commission) { private CommissionExpected getCommissionExpectedBizId(Commission commission) {
...@@ -811,19 +812,21 @@ public class CommissionServiceImpl extends ServiceImpl<CommissionMapper, Commiss ...@@ -811,19 +812,21 @@ public class CommissionServiceImpl extends ServiceImpl<CommissionMapper, Commiss
// 入账检核汇率 — 仅审计追溯,始终写入 // 入账检核汇率 — 仅审计追溯,始终写入
fortune.setExchangeRate(exchangeRate); fortune.setExchangeRate(exchangeRate);
// 判断 入账币种-fortune.currency 是否等于 HKD // 判断来佣入账币种-Commission.currency 是否为 HKD
Commission matchedCommission = commissionByPolicyPeriod.get(key); Commission matchedCommission = commissionByPolicyPeriod.get(key);
boolean isAllHkd = matchedCommission != null boolean isAllHkd = matchedCommission != null
&& "HKD".equalsIgnoreCase(matchedCommission.getCurrency()); && "HKD".equalsIgnoreCase(matchedCommission.getCurrency());
if (isAllHkd) { if (isAllHkd) {
// 原币种 = HKD 时,exchangeRate = 保单币种 → 港币,可安全使用 // 入账币种 = HKD 时,exchangeRate = 保单币种 → 港币
fortune.setOriginalToHkdRate(exchangeRate); fortune.setOriginalToHkdRate(exchangeRate);
BigDecimal hkdAmount = fortune.getRuleAmount().multiply(exchangeRate); BigDecimal hkdAmount = fortune.getRuleAmount()
.multiply(exchangeRate).setScale(0, RoundingMode.HALF_UP);
fortune.setHkdAmount(hkdAmount); fortune.setHkdAmount(hkdAmount);
fortune.setCurrentPaymentAmount(fortune.getRuleAmount()); fortune.setCurrentPaymentAmount(fortune.getRuleAmount());
fortune.setCurrentPaymentHkdAmount(hkdAmount); fortune.setCurrentPaymentHkdAmount(hkdAmount);
BigDecimal payoutAmount = hkdAmount.multiply(expectedFortune.getHkdToPayoutRate()); BigDecimal payoutAmount = hkdAmount
.multiply(expectedFortune.getHkdToPayoutRate()).setScale(0, RoundingMode.HALF_UP);
fortune.setPayoutAmount(payoutAmount); fortune.setPayoutAmount(payoutAmount);
ExpectedFortune update = new ExpectedFortune(); ExpectedFortune update = new ExpectedFortune();
......
...@@ -500,14 +500,16 @@ public class FortuneAccountServiceImpl extends ServiceImpl<FortuneAccountMapper, ...@@ -500,14 +500,16 @@ public class FortuneAccountServiceImpl extends ServiceImpl<FortuneAccountMapper,
BigDecimal paidRule = paidRuleMap.getOrDefault(ef.getExpectedFortuneBizId(), BigDecimal.ZERO); BigDecimal paidRule = paidRuleMap.getOrDefault(ef.getExpectedFortuneBizId(), BigDecimal.ZERO);
BigDecimal unpaidRule = ef.getRuleAmount().subtract(paidRule); BigDecimal unpaidRule = ef.getRuleAmount().subtract(paidRule);
// 剩余发放折合港币金额 // 剩余发放折合港币金额;出的钱保留整数
BigDecimal unpaidRuleAmountHkd = unpaidRule.multiply(ef.getDefaultExchangeRate()); BigDecimal unpaidRuleAmountHkd = unpaidRule.multiply(ef.getDefaultExchangeRate())
.setScale(0, RoundingMode.HALF_UP);
// 应发港币金额(估) // 应发港币金额(估)
BigDecimal hkdAmount = hkdAmountMap.getOrDefault(ef.getExpectedFortuneBizId(), BigDecimal.ZERO); BigDecimal hkdAmount = hkdAmountMap.getOrDefault(ef.getExpectedFortuneBizId(), BigDecimal.ZERO);
BigDecimal expectedHKD = hkdAmount.add(unpaidRuleAmountHkd); BigDecimal expectedHKD = hkdAmount.add(unpaidRuleAmountHkd);
// 发放币种金额 = 港币 × 港币兑发放币种汇率 // 发放币种金额 = 港币 × 港币兑发放币种汇率;出的钱保留整数
BigDecimal expectedPayout = expectedHKD.multiply(ef.getHkdToPayoutRate()); BigDecimal expectedPayout = expectedHKD.multiply(ef.getHkdToPayoutRate())
.setScale(0, RoundingMode.HALF_UP);
// 累计出账港币金额 // 累计出账港币金额
BigDecimal paid = paidMap.getOrDefault(ef.getExpectedFortuneBizId(), BigDecimal.ZERO); BigDecimal paid = paidMap.getOrDefault(ef.getExpectedFortuneBizId(), BigDecimal.ZERO);
......
...@@ -84,8 +84,20 @@ ...@@ -84,8 +84,20 @@
<if test="request.policyStatus != null and request.policyStatus != ''"> <if test="request.policyStatus != null and request.policyStatus != ''">
AND p.status = #{request.policyStatus} AND p.status = #{request.policyStatus}
</if> </if>
<!-- 对账类型:表里 reconciliation_type 没数据,用 current_issue_number 判断 -->
<!-- SQ_BF_DZ=首期,current_issue_number=1;XQ_BF_DZ=续期,current_issue_number>1 -->
<if test="request.reconciliationType != null and request.reconciliationType != ''"> <if test="request.reconciliationType != null and request.reconciliationType != ''">
AND pr.reconciliation_type = #{request.reconciliationType} <choose>
<when test="request.reconciliationType == 'SQ_BF_DZ'">
AND CAST(pr.current_issue_number AS UNSIGNED) = 1
</when>
<when test="request.reconciliationType == 'XQ_BF_DZ'">
AND CAST(pr.current_issue_number AS UNSIGNED) &gt; 1
</when>
<otherwise>
AND pr.reconciliation_type = #{request.reconciliationType}
</otherwise>
</choose>
</if> </if>
<!-- 投保人查询:支持中文繁/简体和英文大小写 --> <!-- 投保人查询:支持中文繁/简体和英文大小写 -->
<if test="request.policyHolderNameSc != null and request.policyHolderNameSc != '' <if test="request.policyHolderNameSc != null and request.policyHolderNameSc != ''
...@@ -121,4 +133,4 @@ ...@@ -121,4 +133,4 @@
</if> </if>
ORDER BY pr.create_time DESC ORDER BY pr.create_time DESC
</select> </select>
</mapper> </mapper>
\ No newline at end of file
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