Commit c8d34103 by zhangxingmin

Merge remote-tracking branch 'origin/test' into test

parents fbd31c8a 0f79c2d5
......@@ -2,6 +2,7 @@ package com.yd.csf.api.service.impl;
import cn.hutool.core.bean.BeanUtil;
import cn.hutool.core.collection.CollUtil;
import cn.hutool.core.convert.Converter;
import com.alibaba.excel.EasyExcel;
import com.alibaba.excel.ExcelWriter;
import com.alibaba.excel.write.metadata.WriteSheet;
......@@ -35,6 +36,9 @@ import com.yd.csf.service.service.*;
import com.yd.csf.service.vo.ExpectedFortuneExportDTO;
import com.yd.csf.service.vo.ExpectedFortuneStatisticsVO;
import com.yd.csf.service.vo.PayableReportVO;
import com.yd.product.feign.client.announcementcommissionratio.ApiAnnouncementCommissionRatioFeignClient;
import com.yd.product.feign.request.announcementcommissionratio.ApiAnnouncementCommissionRatioListRequest;
import com.yd.product.feign.response.announcementcommissionratio.ApiAnnouncementCommissionRatioListResponse;
import com.yd.product.feign.response.expectedspecies.ApiExpectedSpeciesListResponse;
import com.yd.user.feign.client.clientuser.ApiClientUserFeignClient;
import com.yd.user.feign.client.sysdict.ApiSysDictFeignClient;
......@@ -58,10 +62,13 @@ import java.math.BigDecimal;
import java.math.RoundingMode;
import java.time.LocalDate;
import java.time.LocalDateTime;
import java.time.ZoneId;
import java.util.*;
import java.util.function.Function;
import java.util.stream.Collectors;
import static com.ibm.icu.impl.ValidIdentifiers.Datatype.currency;
@Slf4j
@Service
public class ApiExpectedFortuneServiceImpl implements ApiExpectedFortuneService {
......@@ -97,6 +104,8 @@ public class ApiExpectedFortuneServiceImpl implements ApiExpectedFortuneService
private ApiExchangeRateFeignClient apiExchangeRateFeignClient;
@Resource
private CommissionExpectedService commissionExpectedService;
@Resource
private ApiAnnouncementCommissionRatioFeignClient apiAnnouncementCommissionRatioFeignClient;
/**
* 生成预计发佣
......@@ -314,8 +323,8 @@ public class ApiExpectedFortuneServiceImpl implements ApiExpectedFortuneService
//默认结算汇率、港币金额
if (ObjectUtils.isNotEmpty(queryPolicyAndBrokerDtoList)) {
String productLaunchBizId = queryPolicyAndBrokerDtoList.get(0).getPlanBizId();
updateHkdAmountBatch(expectedFortuneList, productLaunchBizId);
QueryPolicyAndBrokerDto queryPolicyAndBrokerDto = queryPolicyAndBrokerDtoList.get(0);
updateHkdAmountBatch(expectedFortuneList, queryPolicyAndBrokerDto);
}
//执行成功完毕,也要销毁redis缓存
......@@ -345,22 +354,48 @@ public class ApiExpectedFortuneServiceImpl implements ApiExpectedFortuneService
});
}
private void updateHkdAmountBatch(List<ExpectedFortune> expectedFortuneList, String productLaunchBizId) {
private void updateHkdAmountBatch(List<ExpectedFortune> expectedFortuneList, QueryPolicyAndBrokerDto queryPolicyAndBrokerDto) {
if (ObjectUtils.isNotEmpty(expectedFortuneList)) {
//查询结算币种
List<ApiExpectedSpeciesListResponse> expectedSpeciesList = commissionExpectedService.queryExpectedSpeciesByFeign(productLaunchBizId);
//查询转介人职级比例
// queryExchangeRateByFeign()
//查询结算币种
ApiAnnouncementCommissionRatioListRequest request = new ApiAnnouncementCommissionRatioListRequest();
request.setProductLaunchBizId(queryPolicyAndBrokerDto.getPlanBizId());
//localDate转换为Date
request.setEffectiveDate(Date.from(queryPolicyAndBrokerDto.getEffectiveDate().atStartOfDay(ZoneId.systemDefault()).toInstant()));
request.setPaymentTerm(String.valueOf(queryPolicyAndBrokerDto.getPaymentTerm()));
Result<List<ApiAnnouncementCommissionRatioListResponse>> result = apiAnnouncementCommissionRatioFeignClient.list(request);
if (result.getCode() == 200 && ObjectUtils.isNotEmpty(result.getData())) {
List<ApiAnnouncementCommissionRatioListResponse> announcementRatioList = result.getData();
//查询默认结算汇率
if (ObjectUtils.isNotEmpty(announcementRatioList)) {
ApiAnnouncementCommissionRatioListResponse announcementRatio = announcementRatioList.get(0);
String currency = announcementRatio.getCurrency();
BigDecimal exchangeRate = queryExchangeRateByFeign(queryPolicyAndBrokerDto.getCurrency(), currency);
for (ExpectedFortune expectedFortune : expectedFortuneList) {
//设置结算货币
expectedFortune.setCurrency(currency);
//设置默认结算汇率
// expectedFortune.setDefaultExchangeRate(defaultExchangeRate);
expectedFortune.setDefaultExchangeRate(exchangeRate);
//设置港币金额(标准发佣金额 * 默认结算汇率)
// expectedFortune.setHkdAmount(expectedFortune.getAmount().multiply(defaultExchangeRate));
expectedFortune.setHkdAmount(expectedFortune.getAmount().multiply(exchangeRate));
//设置转介人职级比例
//设置发佣率 = 基础公告佣率 * 转介人职级比例
iExpectedFortuneService.lambdaUpdate()
.set(ExpectedFortune::getCurrency, currency)
.set(ExpectedFortune::getDefaultExchangeRate, exchangeRate)
.set(ExpectedFortune::getHkdAmount, expectedFortune.getHkdAmount())
.eq(ExpectedFortune::getId, expectedFortune.getId());
}
} else {
log.error("查询结算币种失败,未查询到默认结算汇率->入参request:{},出参result:{}", JSON.toJSONString(request), JSON.toJSONString(result));
}
} else {
log.error("查询结算币种失败,入参request:{},出参result:{}", JSON.toJSONString(request), JSON.toJSONString(result));
}
}
}
......
......@@ -137,6 +137,12 @@ public class ExpectedFortune implements Serializable {
private String brokerRatio;
/**
* 转介人职级比例
*/
@TableField("broker_level_ratio")
private BigDecimal brokerLevelRatio;
/**
* 标准发佣金额
*/
@TableField("standard_amount")
......
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