Commit 94b4b63b by jianan

前端对接问题修复91

parent 0702f6a1
...@@ -19,6 +19,12 @@ public class CommissionExpectedUpdateRequest implements Serializable { ...@@ -19,6 +19,12 @@ public class CommissionExpectedUpdateRequest implements Serializable {
private String commissionExpectedBizId; private String commissionExpectedBizId;
/** /**
* 佣金业务类型
*/
@Schema(description = "佣金业务类型")
private String commissionBizType;
/**
* 入账状态 * 入账状态
*/ */
@Schema(description = "入账状态 字典值: csf_expected_commission_status") @Schema(description = "入账状态 字典值: csf_expected_commission_status")
......
...@@ -115,6 +115,9 @@ public class CommissionExpectedServiceImpl extends ServiceImpl<CommissionExpecte ...@@ -115,6 +115,9 @@ public class CommissionExpectedServiceImpl extends ServiceImpl<CommissionExpecte
if (ObjectUtils.isEmpty(commissionBizType)) { if (ObjectUtils.isEmpty(commissionBizType)) {
throw new BusinessException(ResultCode.PARAMS_ERROR.getCode(), "应收款类型不能为空"); throw new BusinessException(ResultCode.PARAMS_ERROR.getCode(), "应收款类型不能为空");
} }
if (ObjectUtils.isEmpty(commissionExpected.getCommissionName())) {
throw new BusinessException(ResultCode.PARAMS_ERROR.getCode(), "应收款名称不能为空");
}
if ("R".equals(commissionBizType)) { if ("R".equals(commissionBizType)) {
// 关联保单应收单,保单号不能为空 // 关联保单应收单,保单号不能为空
String policyNo = commissionExpected.getPolicyNo(); String policyNo = commissionExpected.getPolicyNo();
...@@ -129,6 +132,9 @@ public class CommissionExpectedServiceImpl extends ServiceImpl<CommissionExpecte ...@@ -129,6 +132,9 @@ public class CommissionExpectedServiceImpl extends ServiceImpl<CommissionExpecte
if (ObjectUtils.isEmpty(commissionRatio)) { if (ObjectUtils.isEmpty(commissionRatio)) {
throw new BusinessException(ResultCode.PARAMS_ERROR.getCode(), "入账比例不能为空"); throw new BusinessException(ResultCode.PARAMS_ERROR.getCode(), "入账比例不能为空");
} }
if (StringUtils.isBlank(commissionExpected.getCurrency())) {
throw new BusinessException(ResultCode.PARAMS_ERROR.getCode(), "入账币种不能为空");
}
Integer commissionPeriod = commissionExpected.getCommissionPeriod(); Integer commissionPeriod = commissionExpected.getCommissionPeriod();
if (ObjectUtils.isEmpty(commissionPeriod)) { if (ObjectUtils.isEmpty(commissionPeriod)) {
throw new BusinessException(ResultCode.PARAMS_ERROR.getCode(), "佣金期数不能为空"); throw new BusinessException(ResultCode.PARAMS_ERROR.getCode(), "佣金期数不能为空");
...@@ -268,10 +274,9 @@ public class CommissionExpectedServiceImpl extends ServiceImpl<CommissionExpecte ...@@ -268,10 +274,9 @@ public class CommissionExpectedServiceImpl extends ServiceImpl<CommissionExpecte
validCommissionExpected(commissionExpected, true); validCommissionExpected(commissionExpected, true);
// 结算汇率初始值为 1 // 结算汇率初始值为 1
commissionExpected.setDefaultExchangeRate(BigDecimal.valueOf(1)); commissionExpected.setDefaultExchangeRate(BigDecimal.valueOf(1));
// 如果币种不是港币,查询默认结算汇率 // 查询默认结算汇率
if (!StringUtils.equalsIgnoreCase(addDto.getCurrency(), "HKD")) { commissionExpected.setDefaultExchangeRate(queryDefaultExchangeRate(addDto.getCurrency()));
commissionExpected.setDefaultExchangeRate(queryDefaultExchangeRate(addDto.getCurrency()));
}
// 预计总金额 // 预计总金额
if ("R".equals(addDto.getCommissionBizType())) { if ("R".equals(addDto.getCommissionBizType())) {
Policy policy = policyMap.get(addDto.getPolicyNo()); Policy policy = policyMap.get(addDto.getPolicyNo());
...@@ -289,8 +294,7 @@ public class CommissionExpectedServiceImpl extends ServiceImpl<CommissionExpecte ...@@ -289,8 +294,7 @@ public class CommissionExpectedServiceImpl extends ServiceImpl<CommissionExpecte
commissionExpected.setProductLaunchBizId(policy.getProductLaunchBizId()); commissionExpected.setProductLaunchBizId(policy.getProductLaunchBizId());
} else { } else {
BigDecimal expectedAmount = addDto.getAmount() BigDecimal expectedAmount = addDto.getAmount()
.multiply(commissionExpected.getDefaultExchangeRate()) .multiply(commissionExpected.getDefaultExchangeRate());
.divide(BigDecimal.valueOf(100), 4, RoundingMode.HALF_UP);
commissionExpected.setExpectedAmount(expectedAmount); commissionExpected.setExpectedAmount(expectedAmount);
} }
...@@ -383,26 +387,39 @@ public class CommissionExpectedServiceImpl extends ServiceImpl<CommissionExpecte ...@@ -383,26 +387,39 @@ public class CommissionExpectedServiceImpl extends ServiceImpl<CommissionExpecte
if (commissionExpected == null) { if (commissionExpected == null) {
throw new BusinessException(ResultCode.NULL_ERROR.getCode(), "预计入账不存在"); throw new BusinessException(ResultCode.NULL_ERROR.getCode(), "预计入账不存在");
} }
if (commissionExpected.getCommissionRatio() == null) {
commissionExpected.setCommissionRatio(commissionExpectedUpdateRequest.getCommissionRatio());
}
// 校验数据 // 校验数据
validCommissionExpected(commissionExpected, false); validCommissionExpected(commissionExpected, false);
// 转换为实体类 // 转换为实体类
BeanUtils.copyProperties(commissionExpectedUpdateRequest, commissionExpected); BeanUtils.copyProperties(commissionExpectedUpdateRequest, commissionExpected, "id", "commissionBizId");
// 如果修改了币种,需要更新默认结算汇率、预计入账金额 // 更新默认结算汇率
if (StringUtils.isNotBlank(commissionExpectedUpdateRequest.getCurrency()) && !StringUtils.equalsIgnoreCase(commissionExpectedUpdateRequest.getCurrency(), commissionExpected.getCurrency())) { commissionExpected.setDefaultExchangeRate(queryDefaultExchangeRate(commissionExpectedUpdateRequest.getCurrency()));
commissionExpected.setDefaultExchangeRate(queryDefaultExchangeRate(commissionExpectedUpdateRequest.getCurrency())); // 更新预计入账金额
commissionExpected.setExpectedAmount(commissionExpectedUpdateRequest.getAmount().multiply(commissionExpected.getDefaultExchangeRate())); if ("R".equals(commissionExpectedUpdateRequest.getCommissionBizType())) {
} // 查询保单
// 如果修改了金额,需要更新预计入账金额 Policy policy = policyService.queryOne(commissionExpected.getPolicyNo());
if (ObjectUtils.isNotEmpty(commissionExpectedUpdateRequest.getAmount()) && ObjectUtils.notEqual(commissionExpectedUpdateRequest.getAmount(), commissionExpected.getAmount())) { if (policy == null) {
commissionExpected.setExpectedAmount(commissionExpectedUpdateRequest.getAmount().multiply(commissionExpected.getDefaultExchangeRate())); throw new BusinessException(ResultCode.NULL_ERROR.getCode(), "保单不存在");
}
commissionExpected.setExpectedAmount(
policy.getPaymentPremium()
.multiply(commissionExpectedUpdateRequest.getCommissionRatio())
.multiply(commissionExpected.getDefaultExchangeRate())
.divide(BigDecimal.valueOf(100), 4, RoundingMode.HALF_UP)
);
} else {
commissionExpected.setExpectedAmount(
commissionExpectedUpdateRequest.getAmount()
.multiply(commissionExpected.getDefaultExchangeRate())
);
} }
// 如果修改了默认结算汇率,需要更新预计入账金额 if (StringUtils.isBlank(commissionExpected.getReceivableNo())) {
if (ObjectUtils.isNotEmpty(commissionExpectedUpdateRequest.getDefaultExchangeRate()) && ObjectUtils.notEqual(commissionExpectedUpdateRequest.getDefaultExchangeRate(), commissionExpected.getDefaultExchangeRate())) { commissionExpected.setReceivableNo(receivableService.generateReceivableNo(
commissionExpected.setExpectedAmount(commissionExpectedUpdateRequest.getAmount().multiply(commissionExpected.getDefaultExchangeRate())); commissionExpected.getCommissionBizType(),
commissionExpected.getReconciliationCompanyCode(),
commissionExpected.getReconciliationCompany()));
} }
commissionExpected.setUpdateTime(new Date()); commissionExpected.setUpdateTime(new Date());
// 更新预计入账 // 更新预计入账
return this.updateById(commissionExpected); return this.updateById(commissionExpected);
......
...@@ -403,15 +403,18 @@ public class CommissionServiceImpl extends ServiceImpl<CommissionMapper, Commiss ...@@ -403,15 +403,18 @@ public class CommissionServiceImpl extends ServiceImpl<CommissionMapper, Commiss
public void validateCommissionUpdateRequest(CommissionUpdateRequest commissionUpdateRequest) { public void validateCommissionUpdateRequest(CommissionUpdateRequest commissionUpdateRequest) {
// 校验入参 // 校验入参
if (ObjectUtils.isEmpty(commissionUpdateRequest.getCommissionBizId())) { if (ObjectUtils.isEmpty(commissionUpdateRequest.getCommissionBizId())) {
log.error("来佣业务id不能为空:{}", commissionUpdateRequest.getCommissionBizId());
throw new BusinessException(ResultCode.NULL_ERROR.getCode(), "来佣业务id不能为空"); throw new BusinessException(ResultCode.NULL_ERROR.getCode(), "来佣业务id不能为空");
} }
if (ObjectUtils.isEmpty(commissionUpdateRequest.getCommissionName())) {
throw new BusinessException(ResultCode.NULL_ERROR.getCode(), "来佣名称不能为空");
}
if (ObjectUtils.isEmpty(commissionUpdateRequest.getCommissionType())) {
throw new BusinessException(ResultCode.NULL_ERROR.getCode(), "来佣类型不能为空");
}
if (ObjectUtils.isEmpty(commissionUpdateRequest.getAmount())) { if (ObjectUtils.isEmpty(commissionUpdateRequest.getAmount())) {
log.error("当前入账金额不能为空,来佣业务id:{}", commissionUpdateRequest.getCommissionBizId());
throw new BusinessException(ResultCode.NULL_ERROR.getCode(), "入账金额不能为空"); throw new BusinessException(ResultCode.NULL_ERROR.getCode(), "入账金额不能为空");
} }
if (ObjectUtils.isEmpty(commissionUpdateRequest.getExchangeRate())) { if (ObjectUtils.isEmpty(commissionUpdateRequest.getExchangeRate())) {
log.error("当前结算汇率不能为空,来佣业务id:{}", commissionUpdateRequest.getCommissionBizId());
throw new BusinessException(ResultCode.NULL_ERROR.getCode(), "结算汇率不能为空"); throw new BusinessException(ResultCode.NULL_ERROR.getCode(), "结算汇率不能为空");
} }
} }
......
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