Commit 0dffcb18 by zhangxingmin

push

parent dfa57c5e
......@@ -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("保单和转介人信息不存在");
}
......@@ -1069,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<>();
......@@ -1087,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);
}
}
......@@ -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