Commit e0a896ec by zhangxingmin

Merge remote-tracking branch 'origin/dev' into prod

parents 3dc14da4 e0d2344b
...@@ -117,7 +117,7 @@ public class ApiAppointmentFileController implements ApiAppointmentFileFeignClie ...@@ -117,7 +117,7 @@ public class ApiAppointmentFileController implements ApiAppointmentFileFeignClie
} }
/** /**
* Excel导入-预约信息 * Excel导入-解析Excel预约信息
* @return * @return
*/ */
@Override @Override
......
...@@ -32,7 +32,7 @@ public interface ApiPremiumReconciliationService { ...@@ -32,7 +32,7 @@ public interface ApiPremiumReconciliationService {
Result editResult(ApiPremiumReconciliationResultEditRequest request); Result editResult(ApiPremiumReconciliationResultEditRequest request);
@Async("commonAsyncExecutor") @Async("commonAsyncExecutor")
void execute(ChangePolicyFollowStatusRequest changePolicyFollowStatusRequest); void execute(ChangePolicyFollowStatusRequest changePolicyFollowStatusRequest,String token);
Result<Boolean> checkReconciliationComplete(String policyNo); Result<Boolean> checkReconciliationComplete(String policyNo);
......
...@@ -6,6 +6,9 @@ import com.baomidou.mybatisplus.extension.plugins.pagination.Page; ...@@ -6,6 +6,9 @@ import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.google.gson.reflect.TypeToken; import com.google.gson.reflect.TypeToken;
import com.yd.auth.core.dto.AuthUserDto; import com.yd.auth.core.dto.AuthUserDto;
import com.yd.auth.core.utils.SecurityUtil; import com.yd.auth.core.utils.SecurityUtil;
import com.yd.base.feign.client.relobjectcertificate.ApiRelObjectCertificateFeignClient;
import com.yd.base.feign.dto.ApiCertificateDto;
import com.yd.base.feign.request.relobjectcertificate.ApiRelObjectCertificateListAddRequest;
import com.yd.common.constant.CodeGeneratorConstants; import com.yd.common.constant.CodeGeneratorConstants;
import com.yd.common.enums.CommonEnum; import com.yd.common.enums.CommonEnum;
import com.yd.common.enums.ResultCode; import com.yd.common.enums.ResultCode;
...@@ -43,6 +46,7 @@ import org.springframework.transaction.annotation.Transactional; ...@@ -43,6 +46,7 @@ import org.springframework.transaction.annotation.Transactional;
import org.springframework.util.CollectionUtils; import org.springframework.util.CollectionUtils;
import javax.annotation.Resource; import javax.annotation.Resource;
import javax.validation.constraints.NotBlank;
import java.time.ZoneId; import java.time.ZoneId;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.Date; import java.util.Date;
...@@ -1156,6 +1160,30 @@ public class ApiAppointmentServiceImpl implements ApiAppointmentService { ...@@ -1156,6 +1160,30 @@ public class ApiAppointmentServiceImpl implements ApiAppointmentService {
appointment.setStatus(AppointmentStatusEnum.YQX.getItemValue()); appointment.setStatus(AppointmentStatusEnum.YQX.getItemValue());
} }
iAppointmentService.saveOrUpdate(appointment); iAppointmentService.saveOrUpdate(appointment);
//取消预约-更新新单跟进状态为:取消预约
if (2 == request.getOprType()) {
//取消预约-更新新单跟进状态为取消预约
editFollowStatus(request.getAppointmentBizId());
}
return Result.success();
}
/**
* 取消预约-更新新单跟进状态为取消预约
* @return
*/
public Result editFollowStatus(String appointmentBizId) {
List<PolicyFollow> followList = policyFollowService.queryListByAppointmentBizId(appointmentBizId);
if (!CollectionUtils.isEmpty(followList)) {
//更新当前预约ID绑定新单记录更新新单状态为取消预约。
followList = followList.stream().map(dto -> {
//取消预约
dto.setStatus("QX_YY");
return dto;
}).collect(Collectors.toList());
policyFollowService.saveOrUpdateBatch(followList);
}
return Result.success(); return Result.success();
} }
......
package com.yd.csf.api.service.impl; package com.yd.csf.api.service.impl;
import com.yd.base.feign.client.relobjectcertificate.ApiRelObjectCertificateFeignClient;
import com.yd.base.feign.dto.ApiCertificateDto;
import com.yd.base.feign.request.relobjectcertificate.ApiRelObjectCertificateListAddRequest;
import com.yd.base.feign.request.relobjectcertificate.ApiRelObjectCertificateListRequest;
import com.yd.base.feign.response.relobjectcertificate.ApiRelObjectCertificateListResponse;
import com.yd.common.enums.CommonEnum; import com.yd.common.enums.CommonEnum;
import com.yd.common.enums.ResultCode; import com.yd.common.enums.ResultCode;
import com.yd.common.exception.BusinessException; import com.yd.common.exception.BusinessException;
...@@ -25,6 +30,7 @@ import org.springframework.beans.factory.annotation.Autowired; ...@@ -25,6 +30,7 @@ import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import org.springframework.util.CollectionUtils; import org.springframework.util.CollectionUtils;
import java.util.ArrayList;
import java.util.List; import java.util.List;
import java.util.Objects; import java.util.Objects;
import java.util.stream.Collectors; import java.util.stream.Collectors;
...@@ -48,6 +54,9 @@ public class ApiInsurantServiceImpl implements ApiInsurantService { ...@@ -48,6 +54,9 @@ public class ApiInsurantServiceImpl implements ApiInsurantService {
@Autowired @Autowired
private ApiTaxationService apiTaxationService; private ApiTaxationService apiTaxationService;
@Autowired
private ApiRelObjectCertificateFeignClient apiRelObjectCertificateFeignClient;
/** /**
* 受保人信息详情 * 受保人信息详情
* @param appointmentBizId 预约信息主表唯一业务ID * @param appointmentBizId 预约信息主表唯一业务ID
...@@ -63,11 +72,34 @@ public class ApiInsurantServiceImpl implements ApiInsurantService { ...@@ -63,11 +72,34 @@ public class ApiInsurantServiceImpl implements ApiInsurantService {
BeanUtils.copyProperties(insurant,dto); BeanUtils.copyProperties(insurant,dto);
//地址列表 //地址列表
dto.setAddressList(CommonUtil.getAddressList(insurant.getAddressList())); dto.setAddressList(CommonUtil.getAddressList(insurant.getAddressList()));
//查询证件列表信息
dto.setApiCertificateDtoList(apiCertificateDtoList(insurant.getInsurantBizId()));
} }
return Result.success(dto); return Result.success(dto);
} }
/** /**
* 查询证件列表信息
* @param insurantBizId
* @return
*/
public List<ApiCertificateDto> apiCertificateDtoList(String insurantBizId) {
List<ApiCertificateDto> apiCertificateDtoList = new ArrayList<>();
//查询受保人证件列表信息
Result<List<ApiRelObjectCertificateListResponse>> result = apiRelObjectCertificateFeignClient.list(ApiRelObjectCertificateListRequest.builder()
.objectBizId(insurantBizId)
.build());
if (!CollectionUtils.isEmpty(result.getData())) {
apiCertificateDtoList = result.getData().stream().map(dto -> {
ApiCertificateDto apiCertificateDto = new ApiCertificateDto();
BeanUtils.copyProperties(dto,apiCertificateDto);
return apiCertificateDto;
}).collect(Collectors.toList());
}
return apiCertificateDtoList;
}
/**
* 编辑受保人信息 * 编辑受保人信息
* @param apiInsurantInfoDto * @param apiInsurantInfoDto
* @return * @return
...@@ -124,6 +156,25 @@ public class ApiInsurantServiceImpl implements ApiInsurantService { ...@@ -124,6 +156,25 @@ public class ApiInsurantServiceImpl implements ApiInsurantService {
.apiTaxationDtoList(apiTaxationDtoList) .apiTaxationDtoList(apiTaxationDtoList)
.build()); .build());
} }
//查询投保人证件列表信息
Result<List<ApiRelObjectCertificateListResponse>> certificateListResult = apiRelObjectCertificateFeignClient.list(ApiRelObjectCertificateListRequest.builder().objectBizId(policyholder.getPolicyholderBizId()).build());
if (!CollectionUtils.isEmpty(certificateListResult.getData())) {
List<ApiCertificateDto> apiCertificateDtoList = certificateListResult.getData()
.stream().map(d -> {
ApiCertificateDto apiCertificateDto = new ApiCertificateDto();
BeanUtils.copyProperties(d,apiCertificateDto);
return apiCertificateDto;
}).collect(Collectors.toList());
//添加受保人证件列表信息
apiRelObjectCertificateFeignClient.addRelObjectCertificateList(ApiRelObjectCertificateListAddRequest.builder()
.objectBizId(insurant.getInsurantBizId())
.objectName(CommonEnum.UID_TYPE_INSURANT.getName())
.objectTableName(CommonEnum.UID_TYPE_INSURANT.getCode())
.objectType(CommonEnum.UID_TYPE_INSURANT.getCode())
.apiCertificateDtoList(apiCertificateDtoList)
.build());
}
return Result.success(insurant); return Result.success(insurant);
} }
} }
...@@ -148,6 +199,17 @@ public class ApiInsurantServiceImpl implements ApiInsurantService { ...@@ -148,6 +199,17 @@ public class ApiInsurantServiceImpl implements ApiInsurantService {
.apiTaxationDtoList(dto.getApiTaxationDtoList()) .apiTaxationDtoList(dto.getApiTaxationDtoList())
.build()); .build());
} }
//添加受保人证件列表信息
if (!CollectionUtils.isEmpty(dto.getApiCertificateDtoList())) {
apiRelObjectCertificateFeignClient.addRelObjectCertificateList(ApiRelObjectCertificateListAddRequest.builder()
.objectBizId(insurant.getInsurantBizId())
.objectName(CommonEnum.UID_TYPE_INSURANT.getName())
.objectTableName(CommonEnum.UID_TYPE_INSURANT.getCode())
.objectType(CommonEnum.UID_TYPE_INSURANT.getCode())
.apiCertificateDtoList(dto.getApiCertificateDtoList())
.build());
}
return Result.success(insurant); return Result.success(insurant);
} }
...@@ -197,6 +259,25 @@ public class ApiInsurantServiceImpl implements ApiInsurantService { ...@@ -197,6 +259,25 @@ public class ApiInsurantServiceImpl implements ApiInsurantService {
.apiTaxationDtoList(apiTaxationDtoList) .apiTaxationDtoList(apiTaxationDtoList)
.build()); .build());
} }
//查询投保人证件列表信息
Result<List<ApiRelObjectCertificateListResponse>> certificateListResult = apiRelObjectCertificateFeignClient.list(ApiRelObjectCertificateListRequest.builder().objectBizId(policyholder.getPolicyholderBizId()).build());
if (!CollectionUtils.isEmpty(certificateListResult.getData())) {
List<ApiCertificateDto> apiCertificateDtoList = certificateListResult.getData()
.stream().map(d -> {
ApiCertificateDto apiCertificateDto = new ApiCertificateDto();
BeanUtils.copyProperties(d,apiCertificateDto);
return apiCertificateDto;
}).collect(Collectors.toList());
//添加受保人证件列表信息
apiRelObjectCertificateFeignClient.addRelObjectCertificateList(ApiRelObjectCertificateListAddRequest.builder()
.objectBizId(insurant.getInsurantBizId())
.objectName(CommonEnum.UID_TYPE_INSURANT.getName())
.objectTableName(CommonEnum.UID_TYPE_INSURANT.getCode())
.objectType(CommonEnum.UID_TYPE_INSURANT.getCode())
.apiCertificateDtoList(apiCertificateDtoList)
.build());
}
return Result.success(insurant); return Result.success(insurant);
} }
} }
...@@ -218,6 +299,17 @@ public class ApiInsurantServiceImpl implements ApiInsurantService { ...@@ -218,6 +299,17 @@ public class ApiInsurantServiceImpl implements ApiInsurantService {
.apiTaxationDtoList(dto.getApiTaxationDtoList()) .apiTaxationDtoList(dto.getApiTaxationDtoList())
.build()); .build());
} }
//添加受保人证件列表信息
if (!CollectionUtils.isEmpty(dto.getApiCertificateDtoList())) {
apiRelObjectCertificateFeignClient.addRelObjectCertificateList(ApiRelObjectCertificateListAddRequest.builder()
.objectBizId(insurant.getInsurantBizId())
.objectName(CommonEnum.UID_TYPE_INSURANT.getName())
.objectTableName(CommonEnum.UID_TYPE_INSURANT.getCode())
.objectType(CommonEnum.UID_TYPE_INSURANT.getCode())
.apiCertificateDtoList(dto.getApiCertificateDtoList())
.build());
}
return Result.success(insurant); return Result.success(insurant);
} }
......
package com.yd.csf.api.service.impl; package com.yd.csf.api.service.impl;
import com.yd.base.feign.client.relobjectcertificate.ApiRelObjectCertificateFeignClient;
import com.yd.base.feign.dto.ApiCertificateDto;
import com.yd.base.feign.request.relobjectcertificate.ApiRelObjectCertificateListAddRequest;
import com.yd.base.feign.request.relobjectcertificate.ApiRelObjectCertificateListRequest;
import com.yd.base.feign.response.relobjectcertificate.ApiRelObjectCertificateListResponse;
import com.yd.common.enums.CommonEnum; import com.yd.common.enums.CommonEnum;
import com.yd.common.enums.ResultCode; import com.yd.common.enums.ResultCode;
import com.yd.common.exception.BusinessException; import com.yd.common.exception.BusinessException;
...@@ -20,7 +25,10 @@ import org.springframework.beans.factory.annotation.Autowired; ...@@ -20,7 +25,10 @@ import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import org.springframework.util.CollectionUtils; import org.springframework.util.CollectionUtils;
import java.util.ArrayList;
import java.util.List;
import java.util.Objects; import java.util.Objects;
import java.util.stream.Collectors;
/** /**
* 投保人信息业务实现类 * 投保人信息业务实现类
...@@ -38,6 +46,9 @@ public class ApiPolicyholderServiceImpl implements ApiPolicyholderService { ...@@ -38,6 +46,9 @@ public class ApiPolicyholderServiceImpl implements ApiPolicyholderService {
@Autowired @Autowired
private ApiTaxationService apiTaxationService; private ApiTaxationService apiTaxationService;
@Autowired
private ApiRelObjectCertificateFeignClient apiRelObjectCertificateFeignClient;
/** /**
* 投保人信息详情 * 投保人信息详情
* @param appointmentBizId 预约信息主表唯一业务ID * @param appointmentBizId 预约信息主表唯一业务ID
...@@ -54,11 +65,34 @@ public class ApiPolicyholderServiceImpl implements ApiPolicyholderService { ...@@ -54,11 +65,34 @@ public class ApiPolicyholderServiceImpl implements ApiPolicyholderService {
BeanUtils.copyProperties(policyholder,dto); BeanUtils.copyProperties(policyholder,dto);
//地址列表 //地址列表
dto.setAddressList(CommonUtil.getAddressList(policyholder.getAddressList())); dto.setAddressList(CommonUtil.getAddressList(policyholder.getAddressList()));
dto.setApiCertificateDtoList(apiCertificateDtoList(policyholder.getPolicyholderBizId()));
} }
return Result.success(dto); return Result.success(dto);
} }
/** /**
* 查询证件列表信息
* @param policyholderBizId
* @return
*/
public List<ApiCertificateDto> apiCertificateDtoList(String policyholderBizId) {
List<ApiCertificateDto> apiCertificateDtoList = new ArrayList<>();
//查询投保人证件列表信息
Result<List<ApiRelObjectCertificateListResponse>> result = apiRelObjectCertificateFeignClient.list(ApiRelObjectCertificateListRequest.builder()
.objectBizId(policyholderBizId)
.build());
if (!CollectionUtils.isEmpty(result.getData())) {
apiCertificateDtoList = result.getData().stream().map(dto -> {
ApiCertificateDto apiCertificateDto = new ApiCertificateDto();
BeanUtils.copyProperties(dto,apiCertificateDto);
return apiCertificateDto;
}).collect(Collectors.toList());
}
return apiCertificateDtoList;
}
/**
* 编辑投保人信息 * 编辑投保人信息
* @param apiPolicyholderInfoDto * @param apiPolicyholderInfoDto
* @return * @return
...@@ -105,10 +139,44 @@ public class ApiPolicyholderServiceImpl implements ApiPolicyholderService { ...@@ -105,10 +139,44 @@ public class ApiPolicyholderServiceImpl implements ApiPolicyholderService {
.apiTaxationDtoList(dto.getApiTaxationDtoList()) .apiTaxationDtoList(dto.getApiTaxationDtoList())
.build()); .build());
} }
//添加投保人证件列表信息
if (!CollectionUtils.isEmpty(dto.getApiCertificateDtoList())) {
//新增对象证件关系信息
addRelObjectCertificateList(policyholder.getPolicyholderBizId(),
CommonEnum.UID_TYPE_POLICYHOLDER.getCode(),
CommonEnum.UID_TYPE_POLICYHOLDER.getCode(),
CommonEnum.UID_TYPE_POLICYHOLDER.getName(),
dto.getApiCertificateDtoList()
);
}
return Result.success(policyholder); return Result.success(policyholder);
} }
/** /**
* 新增对象证件关系信息
* @param objectBizId
* @param objectType
* @param objectTableName
* @param objectName
* @param apiCertificateDtoList
* @return
*/
public Result addRelObjectCertificateList(String objectBizId,
String objectType,
String objectTableName,
String objectName,
List<ApiCertificateDto> apiCertificateDtoList) {
ApiRelObjectCertificateListAddRequest addRequest = new ApiRelObjectCertificateListAddRequest();
addRequest.setObjectBizId(objectBizId);
addRequest.setObjectName(objectName);
addRequest.setObjectTableName(objectTableName);
addRequest.setObjectType(objectType);
addRequest.setApiCertificateDtoList(apiCertificateDtoList);
apiRelObjectCertificateFeignClient.addRelObjectCertificateList(addRequest);
return Result.success();
}
/**
* 编辑投保人信息表数据 * 编辑投保人信息表数据
* @param dto * @param dto
* @param appointmentBizId * @param appointmentBizId
...@@ -143,6 +211,16 @@ public class ApiPolicyholderServiceImpl implements ApiPolicyholderService { ...@@ -143,6 +211,16 @@ public class ApiPolicyholderServiceImpl implements ApiPolicyholderService {
.apiTaxationDtoList(dto.getApiTaxationDtoList()) .apiTaxationDtoList(dto.getApiTaxationDtoList())
.build()); .build());
} }
//添加投保人证件列表信息
if (!CollectionUtils.isEmpty(dto.getApiCertificateDtoList())) {
//新增对象证件关系信息
addRelObjectCertificateList(policyholder.getPolicyholderBizId(),
CommonEnum.UID_TYPE_POLICYHOLDER.getCode(),
CommonEnum.UID_TYPE_POLICYHOLDER.getCode(),
CommonEnum.UID_TYPE_POLICYHOLDER.getName(),
dto.getApiCertificateDtoList()
);
}
return Result.success(policyholder); return Result.success(policyholder);
} }
......
...@@ -1084,6 +1084,11 @@ public class ApiPremiumReconciliationServiceImpl implements ApiPremiumReconcilia ...@@ -1084,6 +1084,11 @@ public class ApiPremiumReconciliationServiceImpl implements ApiPremiumReconcilia
@Override @Override
@Transactional(rollbackFor = Exception.class) @Transactional(rollbackFor = Exception.class)
public Result editResult(ApiPremiumReconciliationResultEditRequest request) { public Result editResult(ApiPremiumReconciliationResultEditRequest request) {
// 通过 RequestContextHolder 获取 HttpServletRequest
HttpServletRequest httpServletRequest = ((ServletRequestAttributes)
RequestContextHolder.currentRequestAttributes()).getRequest();
// 获取Token
String token = httpServletRequest.getHeader("Authorization");
//校验保费对账记录信息是否存在 //校验保费对账记录信息是否存在
Result<PremiumReconciliation> result = checkPremiumReconciliationIsExist(request.getPremiumReconciliationBizId()); Result<PremiumReconciliation> result = checkPremiumReconciliationIsExist(request.getPremiumReconciliationBizId());
PremiumReconciliation premiumReconciliation = result.getData(); PremiumReconciliation premiumReconciliation = result.getData();
...@@ -1115,8 +1120,8 @@ public class ApiPremiumReconciliationServiceImpl implements ApiPremiumReconcilia ...@@ -1115,8 +1120,8 @@ public class ApiPremiumReconciliationServiceImpl implements ApiPremiumReconcilia
statusRequest.setStatus("TAKE_EFFECT"); statusRequest.setStatus("TAKE_EFFECT");
//遍历保单转介人列表信息 -> 调用基本法算出预计发佣列表 //遍历保单转介人列表信息 -> 调用基本法算出预计发佣列表
// 通过代理对象调用 // 通过代理对象调用
getSelf().execute(statusRequest); // getSelf().execute(statusRequest,token);
Result<Boolean> result1 = changePolicyFollowStatus(statusRequest); Result<Boolean> result1 = changePolicyFollowStatus(statusRequest,token);
if (result1.getCode() != 200) { if (result1.getCode() != 200) {
throw new BusinessException(result1.getMsg()); throw new BusinessException(result1.getMsg());
} }
...@@ -1135,8 +1140,8 @@ public class ApiPremiumReconciliationServiceImpl implements ApiPremiumReconcilia ...@@ -1135,8 +1140,8 @@ public class ApiPremiumReconciliationServiceImpl implements ApiPremiumReconcilia
@Override @Override
@Async("commonAsyncExecutor") @Async("commonAsyncExecutor")
public void execute(ChangePolicyFollowStatusRequest changePolicyFollowStatusRequest) { public void execute(ChangePolicyFollowStatusRequest changePolicyFollowStatusRequest,String token) {
changePolicyFollowStatus(changePolicyFollowStatusRequest); changePolicyFollowStatus(changePolicyFollowStatusRequest,token);
} }
/** /**
...@@ -1146,10 +1151,11 @@ public class ApiPremiumReconciliationServiceImpl implements ApiPremiumReconcilia ...@@ -1146,10 +1151,11 @@ public class ApiPremiumReconciliationServiceImpl implements ApiPremiumReconcilia
* @return * @return
*/ */
@Transactional(rollbackFor = Exception.class) @Transactional(rollbackFor = Exception.class)
public Result<Boolean> changePolicyFollowStatus(ChangePolicyFollowStatusRequest changePolicyFollowStatusRequest) { public Result<Boolean> changePolicyFollowStatus(ChangePolicyFollowStatusRequest changePolicyFollowStatusRequest,String token) {
// 通过 RequestContextHolder 获取 HttpServletRequest
HttpServletRequest request = ((ServletRequestAttributes) // 设置ThreadLocal Token
RequestContextHolder.currentRequestAttributes()).getRequest(); FeignTokenInterceptor.setThreadLocalToken(token);
if (changePolicyFollowStatusRequest == null || StringUtils.isBlank(changePolicyFollowStatusRequest.getPolicyBizId())) { if (changePolicyFollowStatusRequest == null || StringUtils.isBlank(changePolicyFollowStatusRequest.getPolicyBizId())) {
return Result.fail(ResultCode.PARAMS_ERROR.getCode(), "policyBizId不能为空"); return Result.fail(ResultCode.PARAMS_ERROR.getCode(), "policyBizId不能为空");
} }
...@@ -1190,8 +1196,6 @@ public class ApiPremiumReconciliationServiceImpl implements ApiPremiumReconcilia ...@@ -1190,8 +1196,6 @@ public class ApiPremiumReconciliationServiceImpl implements ApiPremiumReconcilia
// 修改为生效时需要同步预计发佣 // 修改为生效时需要同步预计发佣
if (PolicyFollowStatusEnum.EFFECTIVE.equals(currentStatusEnum)) { if (PolicyFollowStatusEnum.EFFECTIVE.equals(currentStatusEnum)) {
// 获取Token
String token = request.getHeader("Authorization");
log.info("修改跟进状态获取token:{}", token); log.info("修改跟进状态获取token:{}", token);
// 同步:根据保单生成预计出账记录 // 同步:根据保单生成预计出账记录
generateExpectedFortuneSync(token, policyFollow.getPolicyNo()); generateExpectedFortuneSync(token, policyFollow.getPolicyNo());
...@@ -1206,9 +1210,6 @@ public class ApiPremiumReconciliationServiceImpl implements ApiPremiumReconcilia ...@@ -1206,9 +1210,6 @@ public class ApiPremiumReconciliationServiceImpl implements ApiPremiumReconcilia
* @param policyNo 保单号 * @param policyNo 保单号
*/ */
private void generateExpectedFortuneSync(String token, String policyNo) { private void generateExpectedFortuneSync(String token, String policyNo) {
// 设置ThreadLocal Token
FeignTokenInterceptor.setThreadLocalToken(token);
// 调用 ApiExpectedFortuneService 的 generateSyncWithLogAndRedis(同步版本,包含日志和Redis处理) // 调用 ApiExpectedFortuneService 的 generateSyncWithLogAndRedis(同步版本,包含日志和Redis处理)
ApiGenerateExpectedFortuneRequest generateExpectedFortuneRequest = new ApiGenerateExpectedFortuneRequest(); ApiGenerateExpectedFortuneRequest generateExpectedFortuneRequest = new ApiGenerateExpectedFortuneRequest();
generateExpectedFortuneRequest.setPolicyNo(policyNo); generateExpectedFortuneRequest.setPolicyNo(policyNo);
......
...@@ -87,7 +87,7 @@ public interface ApiAppointmentFileFeignClient { ...@@ -87,7 +87,7 @@ public interface ApiAppointmentFileFeignClient {
Result<ApiAppointmentExportExcelResponse> appointmentExportExcel(@NotBlank(message = "预约信息主表唯一业务ID不能为空") @RequestParam(value = "appointmentBizId") String appointmentBizId); Result<ApiAppointmentExportExcelResponse> appointmentExportExcel(@NotBlank(message = "预约信息主表唯一业务ID不能为空") @RequestParam(value = "appointmentBizId") String appointmentBizId);
/** /**
* Excel导入-预约信息 * Excel导入-解析Excel预约信息
* @return * @return
*/ */
@PostMapping(value = "/excel/import/appointment") @PostMapping(value = "/excel/import/appointment")
......
...@@ -106,7 +106,7 @@ public class ApiAppointmentInfoDto { ...@@ -106,7 +106,7 @@ public class ApiAppointmentInfoDto {
/** /**
* 是否开户: 0-否, 1-是(字典) * 是否开户: 0-否, 1-是(字典)
*/ */
private Integer isOpenAccount; private Integer isOpenAccount = 0;
/** /**
* 开户行名称 * 开户行名称
...@@ -153,12 +153,12 @@ public class ApiAppointmentInfoDto { ...@@ -153,12 +153,12 @@ public class ApiAppointmentInfoDto {
/** /**
* 是否体检: 0-否, 1-是(字典) * 是否体检: 0-否, 1-是(字典)
*/ */
private Integer isTj; private Integer isTj = 0;
/** /**
* 是否购买过香港保险: 0-否, 1-是(字典) * 是否购买过香港保险: 0-否, 1-是(字典)
*/ */
private Integer isBuy; private Integer isBuy = 0;
/** /**
* 转保声明选项: 0-否, 1-是 2-尚未決定(字典) * 转保声明选项: 0-否, 1-是 2-尚未決定(字典)
...@@ -168,17 +168,17 @@ public class ApiAppointmentInfoDto { ...@@ -168,17 +168,17 @@ public class ApiAppointmentInfoDto {
/** /**
* 是否有用车服务:0-否, 1-是(字典) * 是否有用车服务:0-否, 1-是(字典)
*/ */
private Integer isUseCar; private Integer isUseCar = 0;
/** /**
* 是否有第二持有人 * 是否有第二持有人
*/ */
private Integer isSecond; private Integer isSecond = 0;
/** /**
* 转介人是否陪同 * 转介人是否陪同
*/ */
private Integer isReferrerAccompany; private Integer isReferrerAccompany = 0;
/** /**
* 创建人用户名 * 创建人用户名
......
...@@ -13,7 +13,7 @@ public class ApiBeneficiaryInfoFzDto { ...@@ -13,7 +13,7 @@ public class ApiBeneficiaryInfoFzDto {
* 是否法定受益人 * 是否法定受益人
*/ */
@NotNull(message = "受益人-是否法定受益人不能为空") @NotNull(message = "受益人-是否法定受益人不能为空")
private Integer isLegalBeneficiary; private Integer isLegalBeneficiary = 0;
/** /**
* 受益人列表信息 * 受益人列表信息
......
package com.yd.csf.feign.dto.appointment; package com.yd.csf.feign.dto.appointment;
import com.fasterxml.jackson.annotation.JsonFormat; import com.fasterxml.jackson.annotation.JsonFormat;
import com.yd.base.feign.dto.ApiCertificateDto;
import com.yd.csf.feign.dto.AddressDto; import com.yd.csf.feign.dto.AddressDto;
import com.yd.csf.feign.dto.taxation.ApiTaxationDto; import com.yd.csf.feign.dto.taxation.ApiTaxationDto;
import com.yd.csf.feign.enums.RelTypeEnum; import com.yd.csf.feign.enums.RelTypeEnum;
...@@ -114,7 +115,7 @@ public class ApiInsurantInfoDto { ...@@ -114,7 +115,7 @@ public class ApiInsurantInfoDto {
/** /**
* 是否拥有其他国家公民身份(如美国、日本等): 0-否, 1-是(字典) * 是否拥有其他国家公民身份(如美国、日本等): 0-否, 1-是(字典)
*/ */
private Integer isOtherCountry; private Integer isOtherCountry = 0;
/** /**
* 吸烟情况(字典) * 吸烟情况(字典)
...@@ -125,20 +126,20 @@ public class ApiInsurantInfoDto { ...@@ -125,20 +126,20 @@ public class ApiInsurantInfoDto {
/** /**
* 婚姻情况(字典) * 婚姻情况(字典)
*/ */
@NotBlank(message = "受保人-婚姻情况不能为空", groups = GroupValid.NotSelf.class) // @NotBlank(message = "受保人-婚姻情况不能为空", groups = GroupValid.NotSelf.class)
private String maritalStatus; private String maritalStatus;
/** /**
* 教育程度(字典) * 教育程度(字典)
*/ */
@NotBlank(message = "受保人-教育程度不能为空", groups = GroupValid.NotSelf.class) // @NotBlank(message = "受保人-教育程度不能为空", groups = GroupValid.NotSelf.class)
private String educationLevel; private String educationLevel;
/** /**
* 是否退休(字典) * 是否退休(字典)
*/ */
@NotNull(message = "受保人-是否退休不能为空", groups = GroupValid.NotSelf.class) // @NotNull(message = "受保人-是否退休不能为空", groups = GroupValid.NotSelf.class)
private Integer isRetirement; private Integer isRetirement = 0;
/** /**
* 退休年龄(如已退休,再显示) * 退休年龄(如已退休,再显示)
...@@ -168,7 +169,7 @@ public class ApiInsurantInfoDto { ...@@ -168,7 +169,7 @@ public class ApiInsurantInfoDto {
/** /**
* 受供养人数目(通过FNA带入) * 受供养人数目(通过FNA带入)
*/ */
private Integer dependentsNum; private Integer dependentsNum = 0;
//-- 以下是联系信息 //-- 以下是联系信息
/** /**
...@@ -211,7 +212,7 @@ public class ApiInsurantInfoDto { ...@@ -211,7 +212,7 @@ public class ApiInsurantInfoDto {
/** /**
* 证件地址 * 证件地址
*/ */
@NotBlank(message = "受保人-证件地址不能为空", groups = GroupValid.NotSelf.class) // @NotBlank(message = "受保人-证件地址不能为空", groups = GroupValid.NotSelf.class)
private String certificateAddress; private String certificateAddress;
/** /**
...@@ -342,6 +343,11 @@ public class ApiInsurantInfoDto { ...@@ -342,6 +343,11 @@ public class ApiInsurantInfoDto {
*/ */
private List<ApiTaxationDto> apiTaxationDtoList; private List<ApiTaxationDto> apiTaxationDtoList;
/**
* 证件信息列表
*/
private List<ApiCertificateDto> apiCertificateDtoList;
// 判断与投保人关系是否为本人关系 // 判断与投保人关系是否为本人关系
public boolean isSelf() { public boolean isSelf() {
return RelTypeEnum.MYSELF.getItemValue().equals(policyholderRel); return RelTypeEnum.MYSELF.getItemValue().equals(policyholderRel);
......
package com.yd.csf.feign.dto.appointment; package com.yd.csf.feign.dto.appointment;
import com.fasterxml.jackson.annotation.JsonFormat; import com.fasterxml.jackson.annotation.JsonFormat;
import com.yd.base.feign.dto.ApiCertificateDto;
import com.yd.csf.feign.dto.AddressDto; import com.yd.csf.feign.dto.AddressDto;
import com.yd.csf.feign.dto.taxation.ApiTaxationDto; import com.yd.csf.feign.dto.taxation.ApiTaxationDto;
import lombok.Data; import lombok.Data;
...@@ -107,7 +108,7 @@ public class ApiPolicyholderInfoDto { ...@@ -107,7 +108,7 @@ public class ApiPolicyholderInfoDto {
/** /**
* 是否拥有其他国家公民身份(如美国、日本等): 0-否, 1-是(字典) * 是否拥有其他国家公民身份(如美国、日本等): 0-否, 1-是(字典)
*/ */
private Integer isOtherCountry; private Integer isOtherCountry = 0;
/** /**
* 吸烟情况(字典) * 吸烟情况(字典)
...@@ -118,20 +119,20 @@ public class ApiPolicyholderInfoDto { ...@@ -118,20 +119,20 @@ public class ApiPolicyholderInfoDto {
/** /**
* 婚姻情况(字典) * 婚姻情况(字典)
*/ */
@NotBlank(message = "投保人-婚姻情况不能为空") // @NotBlank(message = "投保人-婚姻情况不能为空")
private String maritalStatus; private String maritalStatus;
/** /**
* 教育程度(字典) * 教育程度(字典)
*/ */
@NotBlank(message = "投保人-教育程度不能为空") // @NotBlank(message = "投保人-教育程度不能为空")
private String educationLevel; private String educationLevel;
/** /**
* 是否退休(字典) * 是否退休(字典)
*/ */
@NotNull(message = "投保人-是否退休不能为空") // @NotNull(message = "投保人-是否退休不能为空")
private Integer isRetirement; private Integer isRetirement = 0;
/** /**
* 退休年龄(如已退休,再显示) * 退休年龄(如已退休,再显示)
...@@ -161,7 +162,7 @@ public class ApiPolicyholderInfoDto { ...@@ -161,7 +162,7 @@ public class ApiPolicyholderInfoDto {
/** /**
* 受供养人数目(通过FNA带入) * 受供养人数目(通过FNA带入)
*/ */
private Integer dependentsNum; private Integer dependentsNum = 0;
//-- 以下是联系信息 //-- 以下是联系信息
/** /**
...@@ -204,7 +205,7 @@ public class ApiPolicyholderInfoDto { ...@@ -204,7 +205,7 @@ public class ApiPolicyholderInfoDto {
/** /**
* 证件地址 * 证件地址
*/ */
@NotBlank(message = "投保人-证件地址不能为空") // @NotBlank(message = "投保人-证件地址不能为空")
private String certificateAddress; private String certificateAddress;
/** /**
...@@ -334,4 +335,9 @@ public class ApiPolicyholderInfoDto { ...@@ -334,4 +335,9 @@ public class ApiPolicyholderInfoDto {
* 税务信息列表 * 税务信息列表
*/ */
private List<ApiTaxationDto> apiTaxationDtoList; private List<ApiTaxationDto> apiTaxationDtoList;
/**
* 证件信息列表
*/
private List<ApiCertificateDto> apiCertificateDtoList;
} }
...@@ -28,6 +28,16 @@ public class ApiProductPlanMainInfoDto { ...@@ -28,6 +28,16 @@ public class ApiProductPlanMainInfoDto {
private String companyName; private String companyName;
/** /**
* 出单经纪公司(对账公司)ID
*/
private String reconciliationCompanyId;
/**
* 出单经纪公司(对账公司)名称
*/
private String reconciliationCompanyName;
/**
* 保险险种ID(产品上架信息绑定的保险险种参数) * 保险险种ID(产品上架信息绑定的保险险种参数)
*/ */
private String insuranceTypeId; private String insuranceTypeId;
...@@ -97,12 +107,17 @@ public class ApiProductPlanMainInfoDto { ...@@ -97,12 +107,17 @@ public class ApiProductPlanMainInfoDto {
/** /**
* 是否预缴保费: 0-否, 1-是(字典) * 是否预缴保费: 0-否, 1-是(字典)
*/ */
private Integer isPrepay; private Integer isPrepay = 0;
/**
* 预缴年期
*/
private Integer prepaymentPeriod = 0;
/** /**
* 是否追溯: 0-否, 1-是(字典) * 是否追溯: 0-否, 1-是(字典)
*/ */
private Integer isTraceable; private Integer isTraceable = 0;
/** /**
* 回溯日期 * 回溯日期
...@@ -113,7 +128,7 @@ public class ApiProductPlanMainInfoDto { ...@@ -113,7 +128,7 @@ public class ApiProductPlanMainInfoDto {
/** /**
* 是否参加递增保障权益: 0-否, 1-是(字典) * 是否参加递增保障权益: 0-否, 1-是(字典)
*/ */
private Integer isJoin; private Integer isJoin = 0;
/** /**
* 红利分配方式(字典) * 红利分配方式(字典)
......
package com.yd.csf.feign.dto.excel;
import lombok.Data;
import java.util.List;
@Data
public class ApiConvertExcelPlanNameDto {
/**
* 主产品计划名称
*/
private String mainPlanName;
/**
* 主产品计划名称集合(主产品计划名称,繁转简,简转繁两个名称)
*/
private List<String> mainPlanNameList;
/**
* 主产品计划ID
*/
private String mainPlanId;
/**
* 附加产品计划1名称
*/
private String addPlanName1;
/**
* 附加产品计划1名称集合(附加产品计划1名称,繁转简,简转繁两个名称)
*/
private List<String> addPlanName1List;
/**
* 附加产品计划1 ID
*/
private String addPlanId1;
/**
* 附加产品计划2名称
*/
private String addPlanName2;
/**
* 附加产品计划2名称集合(附加产品计划2名称,繁转简,简转繁两个名称)
*/
private List<String> addPlanName2List;
/**
* 附加产品计划2 ID
*/
private String addPlanId2;
}
package com.yd.csf.feign.response.appointmentfile; package com.yd.csf.feign.response.appointmentfile;
import com.yd.csf.feign.dto.appointment.*;
import lombok.Data; import lombok.Data;
@Data @Data
public class ApiAppointmentImportExcelResponse { public class ApiAppointmentImportExcelResponse {
/**
* 预约信息(包含签约信息)
*/
private ApiAppointmentInfoDto apiAppointmentInfoDto;
/**
* 产品计划信息
*/
private ApiProductPlanInfoDto apiProductPlanInfoDto;
/**
* 投保人信息
*/
private ApiPolicyholderInfoDto apiPolicyholderInfoDto;
/**
* 受保人信息
*/
private ApiInsurantInfoDto apiInsurantInfoDto;
/**
* 受益人封装对象
*/
private ApiBeneficiaryInfoFzDto apiBeneficiaryInfoFzDto;
/**
* 第二持有人信息
*/
private ApiSecondHolderInfoDto apiSecondHolderInfoDto;
} }
...@@ -75,7 +75,7 @@ public class CommissionAddRequest implements Serializable { ...@@ -75,7 +75,7 @@ public class CommissionAddRequest implements Serializable {
private String currency; private String currency;
/** /**
* 结算汇率 * 页面输入的结算汇率:保费币种对实际结算币种的汇率
*/ */
@Schema(description = "结算汇率", requiredMode = Schema.RequiredMode.REQUIRED) @Schema(description = "结算汇率", requiredMode = Schema.RequiredMode.REQUIRED)
private BigDecimal exchangeRate; private BigDecimal exchangeRate;
......
...@@ -17,6 +17,7 @@ public enum PolicyFollowStatusEnum { ...@@ -17,6 +17,7 @@ public enum PolicyFollowStatusEnum {
DELAYED_UNDERWRITING("延缓承保", "DELAY_UNDERWRITING"), DELAYED_UNDERWRITING("延缓承保", "DELAY_UNDERWRITING"),
LAPSED("失效", "FAILURE"), LAPSED("失效", "FAILURE"),
CLOSED("关闭", "CLOSE"), CLOSED("关闭", "CLOSE"),
QX_YY("取消预约", "QX_YY"),
; ;
//字典项标签(名称) //字典项标签(名称)
......
...@@ -131,7 +131,7 @@ public class CommissionExpected implements Serializable { ...@@ -131,7 +131,7 @@ public class CommissionExpected implements Serializable {
private String statusDesc; private String statusDesc;
/** /**
* 默认结算汇率 * 保单币种对结算币种的汇率
*/ */
private BigDecimal defaultExchangeRate; private BigDecimal defaultExchangeRate;
......
...@@ -57,6 +57,18 @@ public class ProductPlan implements Serializable { ...@@ -57,6 +57,18 @@ public class ProductPlan implements Serializable {
private String companyName; private String companyName;
/** /**
* 出单经纪公司(对账公司)ID
*/
@TableField("reconciliation_company_id")
private String reconciliationCompanyId;
/**
* 出单经纪公司(对账公司)名称
*/
@TableField("reconciliation_company_name")
private String reconciliationCompanyName;
/**
* 保险险种ID(产品上架信息绑定的保险险种参数) * 保险险种ID(产品上架信息绑定的保险险种参数)
*/ */
@TableField("insurance_type_id") @TableField("insurance_type_id")
...@@ -141,6 +153,12 @@ public class ProductPlan implements Serializable { ...@@ -141,6 +153,12 @@ public class ProductPlan implements Serializable {
private Integer isPrepay; private Integer isPrepay;
/** /**
* 预缴年期
*/
@TableField("prepayment_period")
private Integer prepaymentPeriod;
/**
* 是否追溯: 0-否, 1-是(字典) * 是否追溯: 0-否, 1-是(字典)
*/ */
@TableField("is_traceable") @TableField("is_traceable")
......
...@@ -88,4 +88,6 @@ public interface PolicyFollowService extends IService<PolicyFollow> { ...@@ -88,4 +88,6 @@ public interface PolicyFollowService extends IService<PolicyFollow> {
Page<PolicyNumberResponseVO> queryPolicyNumbers(PolicyNosQueryRequest policyNosQueryRequest); Page<PolicyNumberResponseVO> queryPolicyNumbers(PolicyNosQueryRequest policyNosQueryRequest);
List<PolicyFollow> queryList(List<String> policyNoList); List<PolicyFollow> queryList(List<String> policyNoList);
List<PolicyFollow> queryListByAppointmentBizId(String appointmentBizId);
} }
...@@ -6,6 +6,7 @@ import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; ...@@ -6,6 +6,7 @@ import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.yd.base.feign.client.exchangerate.ApiExchangeRateFeignClient;
import com.yd.common.constant.CommonConstant; import com.yd.common.constant.CommonConstant;
import com.yd.common.constant.RedisConstants; import com.yd.common.constant.RedisConstants;
import com.yd.common.enums.ResultCode; import com.yd.common.enums.ResultCode;
...@@ -42,6 +43,7 @@ import org.springframework.transaction.annotation.Transactional; ...@@ -42,6 +43,7 @@ import org.springframework.transaction.annotation.Transactional;
import javax.annotation.Resource; import javax.annotation.Resource;
import java.math.BigDecimal; import java.math.BigDecimal;
import java.math.RoundingMode; import java.math.RoundingMode;
import java.time.LocalDate;
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;
...@@ -72,6 +74,8 @@ public class CommissionExpectedServiceImpl extends ServiceImpl<CommissionExpecte ...@@ -72,6 +74,8 @@ public class CommissionExpectedServiceImpl extends ServiceImpl<CommissionExpecte
private ApiAnnouncementCommissionRatioFeignClient apiAnnouncementCommissionRatioFeignClient; private ApiAnnouncementCommissionRatioFeignClient apiAnnouncementCommissionRatioFeignClient;
@Resource @Resource
private RedisUtil redisUtil; private RedisUtil redisUtil;
@Resource
private ApiExchangeRateFeignClient apiExchangeRateFeignClient;
@Override @Override
...@@ -531,13 +535,14 @@ public class CommissionExpectedServiceImpl extends ServiceImpl<CommissionExpecte ...@@ -531,13 +535,14 @@ public class CommissionExpectedServiceImpl extends ServiceImpl<CommissionExpecte
commissionExpected.setCommissionDate(calculateCommissionDate(item.getEndPeriod(), effectiveDate)); commissionExpected.setCommissionDate(calculateCommissionDate(item.getEndPeriod(), effectiveDate));
commissionExpected.setStatus(CommissionExpectedStatusEnum.PENDING.getItemValue()); commissionExpected.setStatus(CommissionExpectedStatusEnum.PENDING.getItemValue());
commissionExpected.setStatusDesc(null); commissionExpected.setStatusDesc(null);
commissionExpected.setDefaultExchangeRate(queryDefaultExchangeRate(item.getCurrency())); commissionExpected.setDefaultExchangeRate(queryExchangeRateByFeign(policy.getCurrency(), item.getCurrency()));
commissionExpected.setExpectedAmount(calculateExpectedAmount( commissionExpected.setExpectedAmount(calculateExpectedAmount(
paymentPremium, paymentPremium,
item.getCommissionRate(), item.getCommissionRate(),
"R", "R",
null, null,
item.getCurrency(), item.getCurrency(),
policy.getCurrency(),
commissionExpected.getDefaultExchangeRate())); commissionExpected.getDefaultExchangeRate()));
commissionExpected.setPaidAmount(BigDecimal.ZERO); commissionExpected.setPaidAmount(BigDecimal.ZERO);
commissionExpected.setPaidRatio(BigDecimal.ZERO); commissionExpected.setPaidRatio(BigDecimal.ZERO);
...@@ -579,17 +584,31 @@ public class CommissionExpectedServiceImpl extends ServiceImpl<CommissionExpecte ...@@ -579,17 +584,31 @@ public class CommissionExpectedServiceImpl extends ServiceImpl<CommissionExpecte
return false; return false;
} }
/**
* 计算预计来佣港币金额
* @param premium 保费
* @param commissionRatio 佣金比例
* @param commissionBizType 佣金业务类型
* @param amount 金额
* @param currency 预计来佣的结算币种=产品绑定的来佣结算币种
* @param policyCurrency 保单币种
* @param defaultExchangeRate 默认结算汇率
* @return 预计来佣金额
*/
private BigDecimal calculateExpectedAmount(BigDecimal premium, BigDecimal commissionRatio, String commissionBizType, private BigDecimal calculateExpectedAmount(BigDecimal premium, BigDecimal commissionRatio, String commissionBizType,
BigDecimal amount, String currency, BigDecimal defaultExchangeRate) { BigDecimal amount, String currency, String policyCurrency, BigDecimal defaultExchangeRate) {
if ("R".equals(commissionBizType)) { if ("R".equals(commissionBizType)) {
// 关联保单应收单:保费 × 佣金比例 × 默认结算汇率 ÷ 100 // 关联保单应收单:保费 × 佣金比例 × 默认结算汇率 ÷ 100
BigDecimal exchangeRate = defaultExchangeRate; BigDecimal exchangeRate = defaultExchangeRate;
BigDecimal exchangeRateHkd = queryDefaultExchangeRate(currency);
if (exchangeRate == null) { if (exchangeRate == null) {
exchangeRate = queryDefaultExchangeRate(currency); // 这里获取保单币种对预计来佣的结算币种的默认汇率
exchangeRate = queryExchangeRateByFeign(policyCurrency, currency);
} }
return premium return premium
.multiply(commissionRatio) .multiply(commissionRatio)
.multiply(exchangeRate) .multiply(exchangeRate)
.multiply(exchangeRateHkd)
.divide(BigDecimal.valueOf(100), 4, RoundingMode.HALF_UP); .divide(BigDecimal.valueOf(100), 4, RoundingMode.HALF_UP);
} else { } else {
// 非关联保单应收单:金额 × 默认结算汇率 // 非关联保单应收单:金额 × 默认结算汇率
...@@ -602,6 +621,21 @@ public class CommissionExpectedServiceImpl extends ServiceImpl<CommissionExpecte ...@@ -602,6 +621,21 @@ public class CommissionExpectedServiceImpl extends ServiceImpl<CommissionExpecte
} }
/** /**
* 保单币种对预计来佣的结算币种的默认汇率
* @param policyCurrency 保单币种
* @param currency 预计来佣的结算币种
* @return 汇率
*/
private BigDecimal queryExchangeRateByFeign(String policyCurrency, String currency) {
// 调用Feign客户端查询汇率
Result<BigDecimal> result = apiExchangeRateFeignClient.getExchangeRate(policyCurrency, currency, "");
if (result != null && result.getData() != null) {
return result.getData();
}
return null;
}
/**
* 根据保单生效日期和佣金期数计算预计来佣日期,首期为保单生效日次月,后续期数为首期的次年 * 根据保单生效日期和佣金期数计算预计来佣日期,首期为保单生效日次月,后续期数为首期的次年
* @param endPeriod 佣金期数 * @param endPeriod 佣金期数
* @param effectiveDate 保单生效日期 * @param effectiveDate 保单生效日期
......
...@@ -859,6 +859,14 @@ public class PolicyFollowServiceImpl extends ServiceImpl<PolicyFollowMapper, Pol ...@@ -859,6 +859,14 @@ public class PolicyFollowServiceImpl extends ServiceImpl<PolicyFollowMapper, Pol
return list; return list;
} }
@Override
public List<PolicyFollow> queryListByAppointmentBizId(String appointmentBizId) {
List<PolicyFollow> list = baseMapper.selectList(new LambdaQueryWrapper<PolicyFollow>()
.eq(StringUtils.isNotBlank(appointmentBizId), PolicyFollow::getAppointmentBizId, appointmentBizId)
);
return list;
}
/** /**
* 转换为保单号查询响应视图 * 转换为保单号查询响应视图
* *
......
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