|
@@ -46,8 +46,9 @@ public class FundInfoService {
|
|
|
private final PerformanceFactory factory;
|
|
|
private final BaseInfoService baseInfoService;
|
|
|
private final BaseIndicatorServiceV2 baseIndicatorServiceV2;
|
|
|
- private static final Map<String, String> ACCRUED_FREQUENCY = MapUtil.newHashMap();
|
|
|
- private static final Map<String, String> ACCRUED_METHOD = MapUtil.newHashMap();
|
|
|
+ private static final Map<String, String> ACCRUED_FREQUENCY = MapUtil.newHashMap(5);
|
|
|
+ private static final Map<String, String> ACCRUED_METHOD = MapUtil.newHashMap(3);
|
|
|
+ private static final Map<Integer, String> EDUCATION_NAME_MAP = MapUtil.newHashMap(8);
|
|
|
|
|
|
public FundInfoService(NavService navService, PerformanceFactory factory,
|
|
|
BaseInfoService baseInfoService, BaseIndicatorServiceV2 baseIndicatorServiceV2) {
|
|
@@ -66,6 +67,14 @@ public class FundInfoService {
|
|
|
ACCRUED_METHOD.put("1", "高水位");
|
|
|
ACCRUED_METHOD.put("2", "高水位+赎回时补充");
|
|
|
ACCRUED_METHOD.put("3", "单客户高水位");
|
|
|
+ EDUCATION_NAME_MAP.put(1,"小学");
|
|
|
+ EDUCATION_NAME_MAP.put(2,"中学");
|
|
|
+ EDUCATION_NAME_MAP.put(3,"大专");
|
|
|
+ EDUCATION_NAME_MAP.put(4,"本科");
|
|
|
+ EDUCATION_NAME_MAP.put(5,"硕士");
|
|
|
+ EDUCATION_NAME_MAP.put(6,"博士");
|
|
|
+ EDUCATION_NAME_MAP.put(7,"博士后");
|
|
|
+ EDUCATION_NAME_MAP.put(-1,"其他");
|
|
|
}
|
|
|
|
|
|
public PrivatelyFundHeadInfoVO headInfo(HeadInfoReq params) {
|
|
@@ -372,4 +381,42 @@ public class FundInfoService {
|
|
|
return this.handleFee(dataList, type, function).stream().findFirst().orElse(null);
|
|
|
}
|
|
|
|
|
|
+ public List<FundManagerInfoVo> getHFManagerInfo(String refId) {
|
|
|
+ List<FundManagerInfoVo> resultList = ListUtil.list(true);
|
|
|
+ List<PersonnelInformationDo> managerInfoList = this.baseInfoService.getFundManagerInfo(refId);
|
|
|
+ if (CollUtil.isEmpty(managerInfoList)) {
|
|
|
+ return resultList;
|
|
|
+ }
|
|
|
+ List<String> managerIdList = managerInfoList.stream().map(PersonnelInformationDo::getPersonnelId).collect(Collectors.toList());
|
|
|
+ List<PersonnelWorkExperienceDo> workExperienceList = this.baseInfoService.listPersonnelWorkExperience(managerIdList);
|
|
|
+ //过滤掉任职开始日期和任职结束日期为空的数据
|
|
|
+ if (CollUtil.isNotEmpty(workExperienceList)) {
|
|
|
+ workExperienceList = workExperienceList.stream()
|
|
|
+ .filter(e -> !(StrUtil.isEmpty(e.getStartDate()) && StrUtil.isEmpty(e.getEndDate()))).collect(Collectors.toList());
|
|
|
+ }
|
|
|
+ if (CollUtil.isNotEmpty(workExperienceList)) {
|
|
|
+ Map<String, List<PersonnelWorkExperienceDo>> personnelIdWorkExperienceMap = workExperienceList.stream()
|
|
|
+ .collect(Collectors.groupingBy(PersonnelWorkExperienceDo::getPersonnelId));
|
|
|
+ for (PersonnelInformationDo fundManagerInfo : managerInfoList) {
|
|
|
+ FundManagerInfoVo result = new FundManagerInfoVo();
|
|
|
+ result.setManagerId(fundManagerInfo.getPersonnelId());
|
|
|
+ result.setManagerName(fundManagerInfo.getPersonnelName());
|
|
|
+ result.setAvatar(fundManagerInfo.getAvatar());
|
|
|
+ result.setAvatar2(fundManagerInfo.getAvatar2());
|
|
|
+ result.setEducation(EDUCATION_NAME_MAP.get(fundManagerInfo.getEducation()));
|
|
|
+ result.setProfile(fundManagerInfo.getProfile());
|
|
|
+ List<PersonnelWorkExperienceDo> workExperienceDoList = personnelIdWorkExperienceMap.get(fundManagerInfo.getPersonnelId());
|
|
|
+ if (CollUtil.isNotEmpty(workExperienceDoList)) {
|
|
|
+ String latestPosition = workExperienceDoList.stream().filter(e -> e.getEndDate() == null)
|
|
|
+ .sorted(Comparator.comparing(PersonnelWorkExperienceDo::getStartDate).reversed())
|
|
|
+ .map(PersonnelWorkExperienceDo::getPosition).findFirst().orElse(null);
|
|
|
+ result.setManagerWorkExperienceList(workExperienceDoList);
|
|
|
+ result.setLatestPosition(latestPosition);
|
|
|
+ }
|
|
|
+ resultList.add(result);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ return resultList;
|
|
|
+ }
|
|
|
+
|
|
|
}
|