Commit c2da0370 by jianan

应付款结算币种、结算汇率、港币金额

parent ca3f439e
...@@ -2,6 +2,7 @@ package com.yd.csf.api.service.impl; ...@@ -2,6 +2,7 @@ package com.yd.csf.api.service.impl;
import cn.hutool.core.bean.BeanUtil; import cn.hutool.core.bean.BeanUtil;
import cn.hutool.core.collection.CollUtil; import cn.hutool.core.collection.CollUtil;
import cn.hutool.core.convert.Converter;
import com.alibaba.excel.EasyExcel; import com.alibaba.excel.EasyExcel;
import com.alibaba.excel.ExcelWriter; import com.alibaba.excel.ExcelWriter;
import com.alibaba.excel.write.metadata.WriteSheet; import com.alibaba.excel.write.metadata.WriteSheet;
...@@ -35,6 +36,9 @@ import com.yd.csf.service.service.*; ...@@ -35,6 +36,9 @@ import com.yd.csf.service.service.*;
import com.yd.csf.service.vo.ExpectedFortuneExportDTO; import com.yd.csf.service.vo.ExpectedFortuneExportDTO;
import com.yd.csf.service.vo.ExpectedFortuneStatisticsVO; import com.yd.csf.service.vo.ExpectedFortuneStatisticsVO;
import com.yd.csf.service.vo.PayableReportVO; 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.product.feign.response.expectedspecies.ApiExpectedSpeciesListResponse;
import com.yd.user.feign.client.clientuser.ApiClientUserFeignClient; import com.yd.user.feign.client.clientuser.ApiClientUserFeignClient;
import com.yd.user.feign.client.sysdict.ApiSysDictFeignClient; import com.yd.user.feign.client.sysdict.ApiSysDictFeignClient;
...@@ -58,10 +62,13 @@ import java.math.BigDecimal; ...@@ -58,10 +62,13 @@ import java.math.BigDecimal;
import java.math.RoundingMode; import java.math.RoundingMode;
import java.time.LocalDate; import java.time.LocalDate;
import java.time.LocalDateTime; import java.time.LocalDateTime;
import java.time.ZoneId;
import java.util.*; import java.util.*;
import java.util.function.Function; import java.util.function.Function;
import java.util.stream.Collectors; import java.util.stream.Collectors;
import static com.ibm.icu.impl.ValidIdentifiers.Datatype.currency;
@Slf4j @Slf4j
@Service @Service
public class ApiExpectedFortuneServiceImpl implements ApiExpectedFortuneService { public class ApiExpectedFortuneServiceImpl implements ApiExpectedFortuneService {
...@@ -97,6 +104,8 @@ public class ApiExpectedFortuneServiceImpl implements ApiExpectedFortuneService ...@@ -97,6 +104,8 @@ public class ApiExpectedFortuneServiceImpl implements ApiExpectedFortuneService
private ApiExchangeRateFeignClient apiExchangeRateFeignClient; private ApiExchangeRateFeignClient apiExchangeRateFeignClient;
@Resource @Resource
private CommissionExpectedService commissionExpectedService; private CommissionExpectedService commissionExpectedService;
@Resource
private ApiAnnouncementCommissionRatioFeignClient apiAnnouncementCommissionRatioFeignClient;
/** /**
* 生成预计发佣 * 生成预计发佣
...@@ -314,8 +323,8 @@ public class ApiExpectedFortuneServiceImpl implements ApiExpectedFortuneService ...@@ -314,8 +323,8 @@ public class ApiExpectedFortuneServiceImpl implements ApiExpectedFortuneService
//默认结算汇率、港币金额 //默认结算汇率、港币金额
if (ObjectUtils.isNotEmpty(queryPolicyAndBrokerDtoList)) { if (ObjectUtils.isNotEmpty(queryPolicyAndBrokerDtoList)) {
String productLaunchBizId = queryPolicyAndBrokerDtoList.get(0).getPlanBizId(); QueryPolicyAndBrokerDto queryPolicyAndBrokerDto = queryPolicyAndBrokerDtoList.get(0);
updateHkdAmountBatch(expectedFortuneList, productLaunchBizId); updateHkdAmountBatch(expectedFortuneList, queryPolicyAndBrokerDto);
} }
//执行成功完毕,也要销毁redis缓存 //执行成功完毕,也要销毁redis缓存
...@@ -345,23 +354,44 @@ public class ApiExpectedFortuneServiceImpl implements ApiExpectedFortuneService ...@@ -345,23 +354,44 @@ 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)) { 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));
//设置转介人职级比例 //设置转介人职级比例
//设置发佣率 = 基础公告佣率 * 转介人职级比例 //设置发佣率 = 基础公告佣率 * 转介人职级比例
} }
} 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 { ...@@ -137,6 +137,12 @@ public class ExpectedFortune implements Serializable {
private String brokerRatio; private String brokerRatio;
/** /**
* 转介人职级比例
*/
@TableField("broker_level_ratio")
private BigDecimal brokerLevelRatio;
/**
* 标准发佣金额 * 标准发佣金额
*/ */
@TableField("standard_amount") @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