Commit 161128bb by zhangxingmin

Merge branch 'dev' into prod

parents 4c6de5d8 b7accbd9
......@@ -38,6 +38,11 @@ public class ExecuteBillingDto {
private Integer issueNumber;
/**
* 出账总期数(实际出账期数)
*/
private Integer paymentTerm;
/**
* 保单和转介人信息
*/
private QueryPolicyAndBrokerDto policyAndBrokerDto;
......
......@@ -29,6 +29,7 @@ import com.yd.csf.feign.response.expectedfortune.ApiGenerateExpectedFortuneRespo
import com.yd.csf.service.dto.CommissionRuleBindingDto;
import com.yd.csf.service.dto.QueryPolicyAndBrokerDto;
import com.yd.csf.service.dto.QueryPolicyBrokerDto;
import com.yd.csf.service.dto.UserGradeDto;
import com.yd.csf.service.enums.CurrencyEnum;
import com.yd.csf.service.enums.FortuneStatusEnum;
import com.yd.csf.service.helper.FeignResultHelper;
......@@ -116,6 +117,8 @@ public class ApiExpectedFortuneServiceImpl implements ApiExpectedFortuneService
@Autowired
private ApiCommissionConditionService apiCommissionConditionService;
@Autowired
private IAgentAccumulatedFycService iAgentAccumulatedFycService;
/**
* 生成预计发佣
......@@ -207,6 +210,7 @@ public class ApiExpectedFortuneServiceImpl implements ApiExpectedFortuneService
}
//根据保单号查询保单和转介人列表信息
List<QueryPolicyAndBrokerDto> queryPolicyAndBrokerDtoList = policyService.queryPolicyBrokerList(request.getPolicyNo());
log.info("根据保单号查询保单和转介人列表信息======>,{}",JSON.toJSONString(queryPolicyAndBrokerDtoList));
if (CollectionUtils.isEmpty(queryPolicyAndBrokerDtoList)) {
throw new BusinessException("保单和转介人信息不存在");
}
......@@ -533,6 +537,7 @@ public class ApiExpectedFortuneServiceImpl implements ApiExpectedFortuneService
.name(brokerDto.getBrokerName())
.policyAndBrokerDto(brokerDto)
.issueNumber(i)
.paymentTerm(paymentTerm)
.build());
if (!CollectionUtils.isEmpty(commissionRuleBindingList)) {
......@@ -542,6 +547,7 @@ public class ApiExpectedFortuneServiceImpl implements ApiExpectedFortuneService
.name(binding.getTargetName())
.policyAndBrokerDto(brokerDto)
.issueNumber(i)
.paymentTerm(paymentTerm)
.build());
}
}
......@@ -674,7 +680,8 @@ public class ApiExpectedFortuneServiceImpl implements ApiExpectedFortuneService
//发佣期数
.fortunePeriod(dto.getIssueNumber())
//发佣总期数
.fortuneTotalPeriod(brokerDto.getPaymentTerm())
// .fortuneTotalPeriod(brokerDto.getPaymentTerm())
.fortuneTotalPeriod(dto.getPaymentTerm())
//发佣类型 TODO
// .fortuneType()
//发佣日期 保单生效日期 + 3个月
......@@ -749,7 +756,8 @@ public class ApiExpectedFortuneServiceImpl implements ApiExpectedFortuneService
//发佣期数
.fortunePeriod(dto.getIssueNumber())
//发佣总期数
.fortuneTotalPeriod(brokerDto.getPaymentTerm())
// .fortuneTotalPeriod(brokerDto.getPaymentTerm())
.fortuneTotalPeriod(dto.getPaymentTerm())
//发佣类型 TODO
// .fortuneType()
//发佣日期
......@@ -1065,6 +1073,14 @@ public class ApiExpectedFortuneServiceImpl implements ApiExpectedFortuneService
public IPage<PayableReportVO> convertPayableReportVO(IPage<PayableReportVO> payableReportPage) {
if (!CollectionUtils.isEmpty(payableReportPage.getRecords())) {
List<String> brokerBizIdList = payableReportPage.getRecords().stream().map(PayableReportVO::getBrokerBizId).collect(Collectors.toList());
List<UserGradeDto> userGradeDtoList = new ArrayList<>();
if (!CollectionUtils.isEmpty(brokerBizIdList)) {
userGradeDtoList = iAgentAccumulatedFycService.queryUserGradeList(brokerBizIdList);
}
Map<String, UserGradeDto> userGradeMap = userGradeDtoList.stream()
.collect(Collectors.toMap(UserGradeDto::getClientUserBizId, Function.identity()));
List<String> policyNoList = payableReportPage.getRecords().stream().map(PayableReportVO::getPolicyNo).collect(Collectors.toList());
List<Policy> policyList = new ArrayList<>();
List<PolicyFollow> policyFollowList = new ArrayList<>();
......@@ -1083,8 +1099,12 @@ public class ApiExpectedFortuneServiceImpl implements ApiExpectedFortuneService
List<PayableReportVO> voList = payableReportPage.getRecords().stream().map(vo -> {
Policy policy = policyMap.get(vo.getPolicyNo());
PolicyFollow policyFollow= policyFollowMap.get(vo.getPolicyNo());
UserGradeDto userGradeDto= userGradeMap.get(vo.getBrokerBizId());
vo.setCurrency(CurrencyEnum.toLabel(vo.getCurrency()));
if (userGradeDto != null) {
vo.setBrokerGradeName(userGradeDto.getGradeName());
}
if (policy != null) {
vo.setPolicyCurrency(CurrencyEnum.toLabel(policy.getCurrency()));
}
......
package com.yd.csf.service.dao;
import com.yd.csf.service.dto.UserGradeDto;
import com.yd.csf.service.model.AgentAccumulatedFyc;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import org.apache.ibatis.annotations.Param;
import java.util.List;
/**
* <p>
......@@ -13,4 +17,5 @@ import com.baomidou.mybatisplus.core.mapper.BaseMapper;
*/
public interface AgentAccumulatedFycMapper extends BaseMapper<AgentAccumulatedFyc> {
List<UserGradeDto> queryUserGradeList(@Param("userBizIdList") List<String> userBizIdList);
}
package com.yd.csf.service.dto;
import lombok.Data;
@Data
public class UserGradeDto {
/**
* 客户端用户表唯一业务ID
*/
private String clientUserBizId;
/**
* 等级
*/
private String gradeCode;
/**
* 等级名称
*/
private String gradeName;
}
package com.yd.csf.service.service;
import com.yd.csf.service.dto.UserGradeDto;
import com.yd.csf.service.model.AgentAccumulatedFyc;
import com.baomidou.mybatisplus.extension.service.IService;
import java.util.List;
/**
* <p>
* 业务员累计积分表 - 存储业务员的累计FYC积分和当前等级信息 服务类
......@@ -14,4 +17,6 @@ import com.baomidou.mybatisplus.extension.service.IService;
public interface IAgentAccumulatedFycService extends IService<AgentAccumulatedFyc> {
AgentAccumulatedFyc queryOne(String agentId);
List<UserGradeDto> queryUserGradeList(List<String> userBizIdList);
}
package com.yd.csf.service.service.impl;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.yd.csf.service.dto.UserGradeDto;
import com.yd.csf.service.model.AgentAccumulatedFyc;
import com.yd.csf.service.dao.AgentAccumulatedFycMapper;
import com.yd.csf.service.service.IAgentAccumulatedFycService;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import org.springframework.stereotype.Service;
import java.util.List;
/**
* <p>
* 业务员累计积分表 - 存储业务员的累计FYC积分和当前等级信息 服务实现类
......@@ -28,4 +31,13 @@ public class AgentAccumulatedFycServiceImpl extends ServiceImpl<AgentAccumulated
return this.getOne(new LambdaQueryWrapper<AgentAccumulatedFyc>().eq(AgentAccumulatedFyc::getAgentId,agentId).last("limit 1"));
}
/**
* 根据客户端用户业务ID列表查询对应的等级列表
* @return
*/
@Override
public List<UserGradeDto> queryUserGradeList(List<String> userBizIdList) {
return this.baseMapper.queryUserGradeList(userBizIdList);
}
}
......@@ -748,6 +748,7 @@ public class CommissionExpectedServiceImpl extends ServiceImpl<CommissionExpecte
// 1. 生效日期独立验证(第一步)
Date effectiveDate = policy.getEffectiveDate();
List<ApiExpectedSpeciesListResponse> validDateList = filterAndCheck(
expectedSpeciesList,
i -> isEffective(i.getEffectiveStart(), i.getEffectiveEnd(), effectiveDate),
......@@ -758,8 +759,16 @@ public class CommissionExpectedServiceImpl extends ServiceImpl<CommissionExpecte
return new MatchResult(Collections.emptyList(), unmatchedConditions);
}
if (validDateList.isEmpty()) {
return new MatchResult(Collections.emptyList(), Collections.emptyList());
// 1. 出单经纪公司独立验证
String reconciliationCompanyBizId = policy.getReconciliationCompanyBizId();
validDateList = filterAndCheck(
validDateList,
i -> i.getReconciliationCompany().equals(reconciliationCompanyBizId),
unmatchedConditions,
"出单经纪公司[" + policy.getReconciliationCompany() + "]");
if (!unmatchedConditions.isEmpty()) {
return new MatchResult(Collections.emptyList(), unmatchedConditions);
}
// 2. 获取第一个规格的条件模板
......@@ -900,12 +909,12 @@ public class CommissionExpectedServiceImpl extends ServiceImpl<CommissionExpecte
ApiExpectedSpeciesListRequest apiExpectedSpeciesListRequest = new ApiExpectedSpeciesListRequest();
apiExpectedSpeciesListRequest.setProductLaunchBizId(productLaunchBizId);
Result<List<ApiExpectedSpeciesListResponse>> result = apiExpectedSpeciesFeignClient.list(apiExpectedSpeciesListRequest);
log.info("查询预计佣规格queryExpectedSpeciesByFeign==========>,{}",JSON.toJSONString(result));
log.info("查询预计佣规格queryExpectedSpeciesByFeign==========>,{}",JSON.toJSONString(result));
if (result != null && result.getCode() == 200) {
return result.getData();
} else {
log.error("查询预计佣规格失败: productLaunchBizId={}", productLaunchBizId);
throw new BusinessException(ResultCode.FAIL.getCode(), "查询预计佣规格失败");
log.error("查询预计佣规格失败: productLaunchBizId={}", productLaunchBizId);
throw new BusinessException(ResultCode.FAIL.getCode(), "查询预计佣规格失败");
}
}
......
......@@ -3,7 +3,6 @@ package com.yd.csf.service.vo;
import com.fasterxml.jackson.annotation.JsonFormat;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;
import java.math.BigDecimal;
import java.time.LocalDate;
......@@ -28,6 +27,18 @@ public class PayableReportVO {
private String broker;
/**
* 转介人业务ID
*/
@Schema(description = "转介人业务ID")
private String brokerBizId;
/**
* 转介人等级名称
*/
@Schema(description = "转介人等级名称")
private String brokerGradeName;
/**
* 出账期数(1=第一年; 2=第二年; 3=第三年; 4=第四年; 5=第五年)
*/
@Schema(description = "出账期数")
......
......@@ -2,4 +2,21 @@
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.yd.csf.service.dao.AgentAccumulatedFycMapper">
<select id="queryUserGradeList" resultType="com.yd.csf.service.dto.UserGradeDto">
select
aaf.agent_id as clientUserBizId,
mgc.grade_code as gradeCode,
mgc.grade_name as gradeName
from agent_accumulated_fyc aaf
left join member_grade_config mgc on aaf.current_grade_code = mgc.grade_code and mgc.is_deleted = 0
<where>
<if test="userBizIdList != null and userBizIdList.size > 0">
aaf.agent_id in
<foreach collection="userBizIdList" item="item" open="(" close=")" separator=",">
#{item}
</foreach>
</if>
and aaf.is_deleted = 0
</where>
</select>
</mapper>
......@@ -76,11 +76,12 @@
else 100
end as unpaidRatio,
MAX(first_broker.broker_name) as broker,
MAX(first_broker.broker_biz_id) as brokerBizId,
DATE_ADD(DATE_ADD(MAX(p.effective_date), INTERVAL 2 MONTH), INTERVAL (ef.fortune_period - 1) YEAR) as payoutDate
from expected_fortune ef
left join policy p on ef.policy_no = p.policy_no
left join (
SELECT pb1.policy_no, pb1.broker_name
SELECT pb1.policy_no, pb1.broker_name,pb1.broker_biz_id
FROM policy_broker pb1
WHERE pb1.id = (
SELECT pb2.id
......@@ -128,6 +129,7 @@
else 100
end as unpaidRatio,
ef.broker as broker,
ef.broker_biz_id as brokerBizId,
ef.payout_date as payoutDate
from expected_fortune ef
left join policy p on ef.policy_no = p.policy_no
......
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