@@ -0,0 +1,476 @@ | |||||
package com.ningdatech.pmapi.expert.assembler; | |||||
//import com.ningdatech.emapi.common.enumeration.BoolDisplayEnum; | |||||
//import com.ningdatech.emapi.common.helper.RegionCache; | |||||
//import com.ningdatech.emapi.common.utils.JSONObject; | |||||
//import com.ningdatech.emapi.expert.constants.DictExpertInfoTypeEnum; | |||||
//import com.ningdatech.emapi.expert.constants.ExpertApplyTypeEnum; | |||||
//import com.ningdatech.emapi.expert.constants.ExpertTagEnum; | |||||
//import com.ningdatech.emapi.expert.entity.*; | |||||
//import com.ningdatech.emapi.expert.entity.domain.*; | |||||
//import com.ningdatech.emapi.expert.entity.dto.*; | |||||
//import com.ningdatech.emapi.expert.entity.vo.ExpertFullInfoVO; | |||||
//import com.ningdatech.emapi.sys.file.entity.FileBasicInfo; | |||||
//import com.ningdatech.emapi.sys.file.entity.vo.result.AttachFileVo; | |||||
//import com.ningdatech.emapi.sys.meta.entity.RegionDtoMapKey; | |||||
//import com.ningdatech.emapi.sys.meta.entity.dto.DictionaryDTO; | |||||
//import com.ningdatech.emapi.sys.meta.entity.dto.TagDTO; | |||||
//import com.ningdatech.emapi.sys.meta.helper.DictionaryCache; | |||||
//import com.ningdatech.emapi.sys.meta.helper.TagCache; | |||||
import com.alibaba.fastjson.JSONObject; | |||||
import com.ningdatech.file.entity.vo.result.AttachFileVo; | |||||
import com.ningdatech.pmapi.common.constant.BoolDisplayEnum; | |||||
import com.ningdatech.pmapi.expert.entity.ExpertAvoidCompany; | |||||
import com.ningdatech.pmapi.expert.entity.ExpertIntentionWorkRegion; | |||||
import com.ningdatech.pmapi.expert.entity.ExpertUserFullInfo; | |||||
import com.ningdatech.pmapi.expert.model.*; | |||||
import com.ningdatech.pmapi.expert.model.dto.*; | |||||
import com.ningdatech.pmapi.expert.model.vo.ExpertFullInfoVO; | |||||
import com.ningdatech.pmapi.meta.constant.DictExpertInfoTypeEnum; | |||||
import com.ningdatech.pmapi.meta.constant.ExpertTagEnum; | |||||
import com.ningdatech.pmapi.meta.helper.DictionaryCache; | |||||
import com.ningdatech.pmapi.meta.helper.TagCache; | |||||
import com.ningdatech.pmapi.meta.model.ExpertRegionInfo; | |||||
import com.ningdatech.pmapi.meta.model.dto.DictionaryDTO; | |||||
import com.ningdatech.pmapi.meta.model.dto.TagDTO; | |||||
import com.ningdatech.pmapi.meta.model.entity.ExpertDictionary; | |||||
import com.ningdatech.pmapi.meta.model.entity.ExpertTag; | |||||
import lombok.RequiredArgsConstructor; | |||||
import org.apache.commons.collections4.CollectionUtils; | |||||
import org.apache.commons.lang3.StringUtils; | |||||
import org.springframework.stereotype.Component; | |||||
import java.util.ArrayList; | |||||
import java.util.List; | |||||
import java.util.Map; | |||||
import java.util.Objects; | |||||
import java.util.function.Function; | |||||
import java.util.stream.Collectors; | |||||
/** | |||||
* @author liuxinxin | |||||
* @date 2022/7/27 上午10:46 | |||||
*/ | |||||
@Component | |||||
@RequiredArgsConstructor | |||||
public class ExpertUserInfoAssembler { | |||||
private final TagCache tagCache; | |||||
private final DictionaryCache dictionaryCache; | |||||
// private final RegionCache regionCache; | |||||
public ExpertFullInfoVO buildExpertFullInfoVO(List<AttachFileVo> attachFiles | |||||
, ExpertFullInfoAllDTO expertUserFullInfoAll) { | |||||
ExpertUserFullInfoDTO expertUserInfoDTO = expertUserFullInfoAll.getExpertUserInfoDTO(); | |||||
// 字典字典段map | |||||
Map<String, List<DictionaryFieldInfo>> dictionaryFieldInfoMap = | |||||
buildDictionaryFieldInfoMap(expertUserFullInfoAll.getExpertDictionaryList()); | |||||
// 专家文件资料map | |||||
Map<Long, FileBasicInfo> fileBasicInfoMap = buildFileBasicInfoMap(attachFiles); | |||||
// 专家标签字段map | |||||
Map<String, List<TagFieldInfo>> tagFieldInfoMap = buildTagFieldInfoMap(expertUserFullInfoAll.getExpertTagList()); | |||||
// 专家履职意向地 | |||||
List<ExpertRegionDTO> expertIntentionWorkRegionInfo = | |||||
expertUserFullInfoAll.getExpertIntentionWorkRegionInfo(); | |||||
// 专家回避单位列表 | |||||
List<ExpertAvoidCompanyDTO> expertAvoidCompanyList = expertUserFullInfoAll.getExpertAvoidCompanyList(); | |||||
// 基本信息 | |||||
ExpertBasicInfo basicInfo = buildExpertBasicInfo(expertUserInfoDTO, dictionaryFieldInfoMap, tagFieldInfoMap, expertIntentionWorkRegionInfo, fileBasicInfoMap); | |||||
// 学历信息 | |||||
ExpertEduInfo eduInfo = buildExpertEduInfo(expertUserInfoDTO, dictionaryFieldInfoMap, fileBasicInfoMap); | |||||
// 职业信息 | |||||
ExpertJobInfo jobInfo = buildExpertJobInfo(expertUserInfoDTO, dictionaryFieldInfoMap); | |||||
// 专业信息 | |||||
ExpertProfessionalInfo professionalInfo = | |||||
buildExpertProfessionalInfo(expertUserInfoDTO, dictionaryFieldInfoMap, tagFieldInfoMap | |||||
, fileBasicInfoMap, expertAvoidCompanyList); | |||||
// 推荐信息 | |||||
ExpertRecommendInfo recommendInfo = new ExpertRecommendInfo(); | |||||
recommendInfo.setRecommendedWay(dictionaryFieldInfoMap.get(DictExpertInfoTypeEnum.RECOMMENDED_WAY.getKey())); | |||||
recommendInfo.setRecommendationProofFile( | |||||
getFileBasicInfoList(fileBasicInfoMap, expertUserInfoDTO.getRecommendationProofFileIdList())); | |||||
// 其他信息 | |||||
ExpertOtherInfo otherInfo = new ExpertOtherInfo(); | |||||
otherInfo.setOther(tagFieldInfoMap.get(ExpertTagEnum.OTHER.getKey())); | |||||
otherInfo.setRemark(expertUserInfoDTO.getRemark()); | |||||
// 专家申请履职意向展示列表 | |||||
List<ExpertRegionInfo> expertApplyIntentionWorkRegions = expertUserFullInfoAll.getExpertApplyIntentionWorkRegionInfo().stream().map(r -> { | |||||
ExpertRegionInfo expertApplyIntentionWorkRegion = new ExpertRegionInfo(); | |||||
expertApplyIntentionWorkRegion.setRegionLevel(r.getRegionLevel()); | |||||
expertApplyIntentionWorkRegion.setRegionCode(r.getRegionCode()); | |||||
// expertApplyIntentionWorkRegion.setRegionName(regionCache.getUnionPathStr(r.getRegionCode(), r.getRegionLevel())); | |||||
return expertApplyIntentionWorkRegion; | |||||
}).collect(Collectors.toList()); | |||||
ExpertFullInfoVO expertFullInfoVO = new ExpertFullInfoVO(); | |||||
expertFullInfoVO.setUserId(expertUserInfoDTO.getUserId()); | |||||
expertFullInfoVO.setBasicInfo(basicInfo); | |||||
expertFullInfoVO.setEduInfo(eduInfo); | |||||
expertFullInfoVO.setJobInfo(jobInfo); | |||||
expertFullInfoVO.setProfessionalInfo(professionalInfo); | |||||
expertFullInfoVO.setRecommendInfo(recommendInfo); | |||||
expertFullInfoVO.setExpertOtherInfo(otherInfo); | |||||
expertFullInfoVO.setExpertApplyIntentionWorkRegions(expertApplyIntentionWorkRegions); | |||||
return expertFullInfoVO; | |||||
} | |||||
public static Map<Long, FileBasicInfo> buildFileBasicInfoMap(List<AttachFileVo> attachFiles) { | |||||
return attachFiles.stream().map(r -> { | |||||
FileBasicInfo fileBasicInfo = new FileBasicInfo(); | |||||
fileBasicInfo.setFileId(r.getFileId()); | |||||
fileBasicInfo.setFileName(r.getOriginalFileName()); | |||||
return fileBasicInfo; | |||||
}).collect(Collectors.toMap(FileBasicInfo::getFileId, Function.identity())); | |||||
} | |||||
public Map<String, List<TagFieldInfo>> buildTagFieldInfoMap(List<ExpertTagDTO> expertTagList) { | |||||
return expertTagList.stream().map(r -> { | |||||
TagFieldInfo tagFieldInfo = new TagFieldInfo(); | |||||
tagFieldInfo.setTagCode(r.getTagCode()); | |||||
tagFieldInfo.setTagFieldName(r.getExpertInfoField()); | |||||
TagDTO tagDTO = tagCache.getByTagCode(r.getTagCode()); | |||||
if (Objects.nonNull(tagDTO)) { | |||||
tagFieldInfo.setTagName(tagDTO.getTagName()); | |||||
} | |||||
return tagFieldInfo; | |||||
}).collect(Collectors.groupingBy(TagFieldInfo::getTagFieldName)); | |||||
} | |||||
public Map<String, List<DictionaryFieldInfo>> buildDictionaryFieldInfoMap(List<ExpertDictionaryDTO> expertDictionaryList) { | |||||
return expertDictionaryList.stream().map(r -> { | |||||
DictionaryFieldInfo dictionaryFieldInfo = new DictionaryFieldInfo(); | |||||
dictionaryFieldInfo.setDictionaryFieldName(r.getExpertInfoField()); | |||||
dictionaryFieldInfo.setDictionaryCode(r.getDictionaryCode()); | |||||
DictionaryDTO dictionaryDTO = dictionaryCache.getByCode(r.getDictionaryCode()); | |||||
if (Objects.nonNull(dictionaryDTO)) { | |||||
dictionaryFieldInfo.setDictionaryName(dictionaryDTO.getName()); | |||||
} | |||||
return dictionaryFieldInfo; | |||||
}).collect(Collectors.groupingBy(DictionaryFieldInfo::getDictionaryFieldName)); | |||||
} | |||||
public static ExpertProfessionalInfo buildExpertProfessionalInfo(ExpertUserFullInfoDTO expertUserInfoDTO | |||||
, Map<String, List<DictionaryFieldInfo>> dictionaryFieldInfoMap, Map<String, List<TagFieldInfo>> tagFieldInfoMap | |||||
, Map<Long, FileBasicInfo> fileBasicInfoMap, List<ExpertAvoidCompanyDTO> expertAvoidCompanyList) { | |||||
ExpertProfessionalInfo professionalInfo = new ExpertProfessionalInfo(); | |||||
professionalInfo.setTechnicalTitles(expertUserInfoDTO.getTechnicalTitles()); | |||||
professionalInfo.setTitleLevel(dictionaryFieldInfoMap.get(DictExpertInfoTypeEnum.TITLE_LEVEL.getKey())); | |||||
professionalInfo.setTitleCertificateFile(getFileBasicInfoList(fileBasicInfoMap, expertUserInfoDTO.getTitleCertificateFileIdList())); | |||||
professionalInfo.setGoodAt(tagFieldInfoMap.get(ExpertTagEnum.GOOD_AT.getKey())); | |||||
professionalInfo.setTechnicalExpertise(tagFieldInfoMap.get(ExpertTagEnum.TECHNICAL_EXPERTISE.getKey())); | |||||
professionalInfo.setAwards(expertUserInfoDTO.getAwards()); | |||||
professionalInfo.setIndustrySector(tagFieldInfoMap.get(ExpertTagEnum.INDUSTRY_SECTOR.getKey())); | |||||
professionalInfo.setRecognitionReward(expertUserInfoDTO.getRecognitionReward()); | |||||
professionalInfo.setAvoidCompanyList(expertAvoidCompanyList.stream().map(r -> { | |||||
ExpertAvoidCompanyInfo expertAvoidCompanyInfo = new ExpertAvoidCompanyInfo(); | |||||
expertAvoidCompanyInfo.setCompanyName(r.getCompanyName()); | |||||
expertAvoidCompanyInfo.setCompanyUniqCode(r.getCompanyUniqCode()); | |||||
return expertAvoidCompanyInfo; | |||||
}).collect(Collectors.toList())); | |||||
return professionalInfo; | |||||
} | |||||
public static ExpertJobInfo buildExpertJobInfo(ExpertUserFullInfoDTO expertUserInfoDTO | |||||
, Map<String, List<DictionaryFieldInfo>> dictionaryFieldInfoMap) { | |||||
ExpertJobInfo jobInfo = new ExpertJobInfo(); | |||||
jobInfo.setJobStatus(dictionaryFieldInfoMap.get(DictExpertInfoTypeEnum.JOB_STATUS.getKey())); | |||||
jobInfo.setRetiredAt(expertUserInfoDTO.getRetiredAt()); | |||||
jobInfo.setCompany(expertUserInfoDTO.getCompany()); | |||||
jobInfo.setCompanyUniqCode(expertUserInfoDTO.getCompanyUniqCode()); | |||||
jobInfo.setLegalEntityCode(expertUserInfoDTO.getLegalEntityCode()); | |||||
jobInfo.setAdministrativeDuties(expertUserInfoDTO.getAdministrativeDuties()); | |||||
jobInfo.setStartWorkAt(expertUserInfoDTO.getStartWorkAt()); | |||||
jobInfo.setAdministrativeRank(dictionaryFieldInfoMap.get(DictExpertInfoTypeEnum.ADMINISTRATIVE_RANK.getKey())); | |||||
jobInfo.setCompanyAttribute(dictionaryFieldInfoMap.get(DictExpertInfoTypeEnum.COMPANY_ATTRIBUTE.getKey())); | |||||
jobInfo.setAddress(expertUserInfoDTO.getAddress()); | |||||
jobInfo.setExperience(expertUserInfoDTO.getExperience()); | |||||
return jobInfo; | |||||
} | |||||
public static ExpertEduInfo buildExpertEduInfo(ExpertUserFullInfoDTO expertUserInfoDTO | |||||
, Map<String, List<DictionaryFieldInfo>> dictionaryFieldInfoMap, Map<Long, FileBasicInfo> fileBasicInfoMap) { | |||||
// 学历信息 | |||||
ExpertEduInfo eduInfo = new ExpertEduInfo(); | |||||
eduInfo.setSchool(expertUserInfoDTO.getSchool()); | |||||
eduInfo.setGraduatedAt(expertUserInfoDTO.getGraduatedAt()); | |||||
eduInfo.setAcademicTitle(expertUserInfoDTO.getAcademicTitle()); | |||||
eduInfo.setEdu(dictionaryFieldInfoMap.get(DictExpertInfoTypeEnum.EDU.getKey())); | |||||
eduInfo.setGraduationCertificateFile(getFileBasicInfoList(fileBasicInfoMap | |||||
, expertUserInfoDTO.getGraduationCertificateFileIdList())); | |||||
eduInfo.setDegree(dictionaryFieldInfoMap.get(DictExpertInfoTypeEnum.DEGREE.getKey())); | |||||
eduInfo.setDegreeCertificateFile(getFileBasicInfoList(fileBasicInfoMap, expertUserInfoDTO.getDegreeCertificateFileIdList())); | |||||
return eduInfo; | |||||
} | |||||
public static List<FileBasicInfo> getFileBasicInfoList(Map<Long, FileBasicInfo> fileBasicInfoMap, List<Long> fileIdList) { | |||||
if (CollectionUtils.isEmpty(fileIdList)) { | |||||
return new ArrayList<>(); | |||||
} | |||||
List<FileBasicInfo> fileBasicInfoList = new ArrayList<>(); | |||||
for (Long fileId : fileIdList) { | |||||
FileBasicInfo fileBasicInfo = fileBasicInfoMap.get(fileId); | |||||
if (Objects.nonNull(fileBasicInfo)) { | |||||
fileBasicInfoList.add(fileBasicInfo); | |||||
} | |||||
} | |||||
return fileBasicInfoList; | |||||
} | |||||
public static FileBasicInfo getFileBasicInfo(Map<Long, FileBasicInfo> fileBasicInfoMap, Long fileId) { | |||||
if (Objects.isNull(fileId)) { | |||||
return null; | |||||
} | |||||
FileBasicInfo fileBasicInfo = fileBasicInfoMap.get(fileId); | |||||
return fileBasicInfo; | |||||
} | |||||
public ExpertBasicInfo buildExpertBasicInfo(ExpertUserFullInfoDTO expertUserInfoDTO | |||||
, Map<String, List<DictionaryFieldInfo>> dictionaryFieldInfoMap | |||||
, Map<String, List<TagFieldInfo>> tagFieldInfoMap | |||||
, List<ExpertRegionDTO> expertIntentionWorkRegionInfo | |||||
, Map<Long, FileBasicInfo> fileBasicInfoMap) { | |||||
//专家层级 | |||||
ExpertRegionInfo expertRegionInfo = new ExpertRegionInfo(); | |||||
expertRegionInfo.setRegionLevel(expertUserInfoDTO.getRegionLevel()); | |||||
expertRegionInfo.setRegionCode(expertUserInfoDTO.getRegionCode()); | |||||
// 基本信息 | |||||
ExpertBasicInfo basicInfo = new ExpertBasicInfo(); | |||||
basicInfo.setIsDingUser(expertUserInfoDTO.getIsDingUser()); | |||||
basicInfo.setPhoneNo(expertUserInfoDTO.getPhoneNo()); | |||||
basicInfo.setName(expertUserInfoDTO.getName()); | |||||
basicInfo.setAvatarFile(getFileBasicInfo(fileBasicInfoMap, expertUserInfoDTO.getAvatarFileId())); | |||||
basicInfo.setGender(expertUserInfoDTO.getGender()); | |||||
basicInfo.setPolitical(dictionaryFieldInfoMap.get(DictExpertInfoTypeEnum.POLITICAL.getKey())); | |||||
basicInfo.setIdCard(expertUserInfoDTO.getIdCard()); | |||||
basicInfo.setOfficePhone(expertUserInfoDTO.getPhoneNo()); | |||||
basicInfo.setBirth(expertUserInfoDTO.getBirth()); | |||||
basicInfo.setBank(expertUserInfoDTO.getBank()); | |||||
basicInfo.setBankNo(expertUserInfoDTO.getBankNo()); | |||||
basicInfo.setEmail(expertUserInfoDTO.getEmail()); | |||||
basicInfo.setHometown(expertUserInfoDTO.getHometown()); | |||||
basicInfo.setNationality(expertUserInfoDTO.getNationality()); | |||||
basicInfo.setExpertSource(tagFieldInfoMap.get(ExpertTagEnum.EXPERT_SOURCE.getKey())); | |||||
if (Objects.nonNull(expertRegionInfo)) { | |||||
// expertRegionInfo.setRegionName(regionCache.getUnionPathStr(expertRegionInfo.getRegionCode(), expertRegionInfo.getRegionLevel())); | |||||
basicInfo.setExpertRegionInfo(expertRegionInfo); | |||||
} | |||||
basicInfo.setExpertIntentionWorkRegions(expertIntentionWorkRegionInfo.stream().map(r -> { | |||||
ExpertRegionInfo expertIntentionWorkRegion = new ExpertRegionInfo(); | |||||
expertIntentionWorkRegion.setRegionCode(r.getRegionCode()); | |||||
expertIntentionWorkRegion.setRegionLevel(r.getRegionLevel()); | |||||
// expertIntentionWorkRegion.setRegionName(regionCache.getUnionPathStr(r.getRegionCode(), r.getRegionLevel())); | |||||
return expertIntentionWorkRegion; | |||||
}).collect(Collectors.toList())); | |||||
basicInfo.setExpertType(dictionaryFieldInfoMap.get(DictExpertInfoTypeEnum.EXPERT_TYPE.getKey())); | |||||
return basicInfo; | |||||
} | |||||
public static ExpertFullInfoAllDTO buildExpertFullInfoAllDTO(ExpertUserFullInfo expertUserFullInfo | |||||
, List<ExpertTag> expertTagList | |||||
, List<ExpertDictionary> expertDictionaryList | |||||
, List<ExpertIntentionWorkRegion> expertIntentionWorkRegionList | |||||
// , List<ExpertMetaApply> expertMetaApplyList | |||||
, List<ExpertAvoidCompany> expertAvoidCompanyList) { | |||||
ExpertUserFullInfoDTO expertUserFullInfoDTO = buildExpertUserFullInfoDTO(expertUserFullInfo); | |||||
List<ExpertDictionaryDTO> expertDictionaryDTOList = buildExpertDictionaryDTOList(expertDictionaryList); | |||||
List<ExpertTagDTO> expertTagDTOList = buildExpertTagDTOList(expertTagList); | |||||
List<ExpertRegionDTO> expertIntentionWorkRegionInfo = buildExpertIntentionWorkRegionInfo(expertIntentionWorkRegionList); | |||||
// 专家申请履职意向展示列表 | |||||
// List<ExpertRegionDTO> expertApplyIntentionWorkRegionInfo = buildExpertApplyIntentionWorkRegionInfo(expertIntentionWorkRegionList, expertMetaApplyList); | |||||
List<ExpertAvoidCompanyDTO> expertAvoidCompanyDTOList = buildExpertAvoidCompanyDTOList(expertAvoidCompanyList); | |||||
ExpertFullInfoAllDTO expertFullInfoAllDTO = new ExpertFullInfoAllDTO(); | |||||
expertFullInfoAllDTO.setUserId(expertUserFullInfo.getUserId()); | |||||
expertFullInfoAllDTO.setExpertUserInfoDTO(expertUserFullInfoDTO); | |||||
expertFullInfoAllDTO.setExpertDictionaryList(expertDictionaryDTOList); | |||||
expertFullInfoAllDTO.setExpertTagList(expertTagDTOList); | |||||
expertFullInfoAllDTO.setExpertIntentionWorkRegionInfo(expertIntentionWorkRegionInfo); | |||||
// expertFullInfoAllDTO.setExpertApplyIntentionWorkRegionInfo(expertApplyIntentionWorkRegionInfo); | |||||
expertFullInfoAllDTO.setExpertAvoidCompanyList(expertAvoidCompanyDTOList); | |||||
return expertFullInfoAllDTO; | |||||
} | |||||
// | |||||
// private static List<ExpertRegionDTO> buildExpertApplyIntentionWorkRegionInfo(List<ExpertIntentionWorkRegion> expertIntentionWorkRegionList | |||||
// , List<ExpertMetaApply> expertMetaApplyList) { | |||||
// HashSet<RegionDtoMapKey> set = new HashSet(); | |||||
// for (ExpertIntentionWorkRegion expertIntentionWorkRegion : expertIntentionWorkRegionList) { | |||||
// RegionDtoMapKey regionDtoMapKey = new RegionDtoMapKey(); | |||||
// regionDtoMapKey.setRegionCode(expertIntentionWorkRegion.getRegionCode()); | |||||
// regionDtoMapKey.setRegionLevel(expertIntentionWorkRegion.getRegionLevel()); | |||||
// set.add(regionDtoMapKey); | |||||
// } | |||||
// | |||||
// for (ExpertMetaApply expertMetaApply : expertMetaApplyList) { | |||||
// String applyType = expertMetaApply.getApplyType(); | |||||
// RegionDtoMapKey regionDtoMapKey = new RegionDtoMapKey(); | |||||
// regionDtoMapKey.setRegionCode(expertMetaApply.getRegionCode()); | |||||
// regionDtoMapKey.setRegionLevel(expertMetaApply.getRegionLevel()); | |||||
// ExpertApplyTypeEnum typeEnum = ExpertApplyTypeEnum.of(applyType); | |||||
// switch (typeEnum) { | |||||
// case EXPERT_INTENTION_LEAVE: { | |||||
// set.remove(regionDtoMapKey); | |||||
// } | |||||
// break; | |||||
// case EXPERT_INTENTION_JOIN: { | |||||
// set.add(regionDtoMapKey); | |||||
// } | |||||
// break; | |||||
// default: | |||||
// break; | |||||
// } | |||||
// } | |||||
// return set.stream().map(r -> { | |||||
// ExpertRegionDTO expertRegionDTO = new ExpertRegionDTO(); | |||||
// expertRegionDTO.setRegionCode(r.getRegionCode()); | |||||
// expertRegionDTO.setRegionLevel(r.getRegionLevel()); | |||||
// return expertRegionDTO; | |||||
// }).collect(Collectors.toList()); | |||||
// } | |||||
private static List<ExpertAvoidCompanyDTO> buildExpertAvoidCompanyDTOList(List<ExpertAvoidCompany> expertAvoidCompanyList) { | |||||
return expertAvoidCompanyList.stream().map(r -> { | |||||
ExpertAvoidCompanyDTO expertAvoidCompanyDTO = new ExpertAvoidCompanyDTO(); | |||||
expertAvoidCompanyDTO.setCompanyUniqCode(r.getCompanyUniqCode()); | |||||
expertAvoidCompanyDTO.setCompanyName(r.getCompanyName()); | |||||
return expertAvoidCompanyDTO; | |||||
}).collect(Collectors.toList()); | |||||
} | |||||
private static List<ExpertRegionDTO> buildExpertIntentionWorkRegionInfo(List<ExpertIntentionWorkRegion> expertIntentionWorkRegionList) { | |||||
return expertIntentionWorkRegionList.stream().map(r -> { | |||||
ExpertRegionDTO expertRegionDTO = new ExpertRegionDTO(); | |||||
expertRegionDTO.setRegionLevel(r.getRegionLevel()); | |||||
expertRegionDTO.setRegionCode(r.getRegionCode()); | |||||
return expertRegionDTO; | |||||
}).collect(Collectors.toList()); | |||||
} | |||||
private static List<ExpertTagDTO> buildExpertTagDTOList(List<ExpertTag> expertTagList) { | |||||
return expertTagList.stream().map(r -> { | |||||
ExpertTagDTO expertTagDTO = new ExpertTagDTO(); | |||||
expertTagDTO.setExpertInfoField(r.getExpertInfoField()); | |||||
expertTagDTO.setTagCode(r.getTagCode()); | |||||
return expertTagDTO; | |||||
}).collect(Collectors.toList()); | |||||
} | |||||
private static List<ExpertDictionaryDTO> buildExpertDictionaryDTOList(List<ExpertDictionary> expertDictionaryList) { | |||||
return expertDictionaryList.stream().map(r -> { | |||||
ExpertDictionaryDTO expertDictionaryDTO = new ExpertDictionaryDTO(); | |||||
expertDictionaryDTO.setExpertInfoField(r.getExpertInfoField()); | |||||
expertDictionaryDTO.setDictionaryCode(r.getDictionaryCode()); | |||||
return expertDictionaryDTO; | |||||
}).collect(Collectors.toList()); | |||||
} | |||||
public static ExpertUserFullInfoDTO buildExpertUserFullInfoDTO(ExpertUserFullInfo expertUserFullInfo) { | |||||
ExpertUserFullInfoDTO expertUserFullInfoDTO = new ExpertUserFullInfoDTO(); | |||||
expertUserFullInfoDTO.setIsDingUser(BoolDisplayEnum.judgeBoolean(expertUserFullInfo.getIsDingUser())); | |||||
expertUserFullInfoDTO.setPhoneNo(expertUserFullInfo.getPhoneNo()); | |||||
expertUserFullInfoDTO.setGender(expertUserFullInfo.getGender()); | |||||
expertUserFullInfoDTO.setName(expertUserFullInfo.getExpertName()); | |||||
expertUserFullInfoDTO.setAvatarFileId(expertUserFullInfo.getAvatarFileId()); | |||||
expertUserFullInfoDTO.setIdCard(expertUserFullInfo.getIdCard()); | |||||
expertUserFullInfoDTO.setOfficePhone(expertUserFullInfo.getOfficePhone()); | |||||
expertUserFullInfoDTO.setBirth(expertUserFullInfo.getBirth()); | |||||
expertUserFullInfoDTO.setBankNo(expertUserFullInfo.getBankNo()); | |||||
expertUserFullInfoDTO.setBank(expertUserFullInfo.getBank()); | |||||
expertUserFullInfoDTO.setEmail(expertUserFullInfo.getEmail()); | |||||
expertUserFullInfoDTO.setHometown(expertUserFullInfo.getHometown()); | |||||
expertUserFullInfoDTO.setNationality(expertUserFullInfo.getNationality()); | |||||
expertUserFullInfoDTO.setSchool(expertUserFullInfo.getSchool()); | |||||
expertUserFullInfoDTO.setGraduatedAt(expertUserFullInfo.getGraduatedAt()); | |||||
expertUserFullInfoDTO.setAcademicTitle(expertUserFullInfo.getAcademicTitle()); | |||||
if (StringUtils.isNotBlank(expertUserFullInfo.getGraduationCertificateFileIdList())) { | |||||
expertUserFullInfoDTO.setGraduationCertificateFileIdList(JSONObject.parseArray(expertUserFullInfo.getGraduationCertificateFileIdList(), Long.class)); | |||||
} | |||||
if (StringUtils.isNotBlank(expertUserFullInfo.getDegreeCertificateFileIdList())) { | |||||
expertUserFullInfoDTO.setDegreeCertificateFileIdList(JSONObject.parseArray(expertUserFullInfo.getDegreeCertificateFileIdList(), Long.class)); | |||||
} | |||||
expertUserFullInfoDTO.setRetiredAt(expertUserFullInfo.getRetiredAt()); | |||||
expertUserFullInfoDTO.setCompany(expertUserFullInfo.getCompany()); | |||||
// expertUserFullInfoDTO.setCompanyUniqCode(expertUserFullInfo.getCompanyUniqCode()); | |||||
expertUserFullInfoDTO.setLegalEntityCode(expertUserFullInfo.getLegalEntityCode()); | |||||
expertUserFullInfoDTO.setAdministrativeDuties(expertUserFullInfo.getAdministrativeDuties()); | |||||
expertUserFullInfoDTO.setStartWorkAt(expertUserFullInfo.getStartWorkAt()); | |||||
expertUserFullInfoDTO.setAddress(expertUserFullInfo.getAddress()); | |||||
expertUserFullInfoDTO.setExperience(expertUserFullInfo.getExperience()); | |||||
expertUserFullInfoDTO.setTechnicalTitles(expertUserFullInfo.getTechnicalTitles()); | |||||
if (StringUtils.isNotBlank(expertUserFullInfo.getTitleCertificateFileIdList())) { | |||||
expertUserFullInfoDTO.setTitleCertificateFileIdList(JSONObject.parseArray(expertUserFullInfo.getTitleCertificateFileIdList(), Long.class)); | |||||
} | |||||
expertUserFullInfoDTO.setAwards(expertUserFullInfo.getAwards()); | |||||
expertUserFullInfoDTO.setRecognitionReward(expertUserFullInfo.getRecognitionReward()); | |||||
expertUserFullInfoDTO.setRegionCode(expertUserFullInfo.getRegionCode()); | |||||
expertUserFullInfoDTO.setRegionLevel(expertUserFullInfo.getRegionLevel()); | |||||
if (StringUtils.isNotBlank(expertUserFullInfo.getRecommendationProofFileIdList())) { | |||||
expertUserFullInfoDTO.setRecommendationProofFileIdList(JSONObject.parseArray(expertUserFullInfo.getRecommendationProofFileIdList(), Long.class)); | |||||
} | |||||
expertUserFullInfoDTO.setRemark(expertUserFullInfo.getRemark()); | |||||
return expertUserFullInfoDTO; | |||||
} | |||||
// public static ExpertAdminExpertManageListDTO buildExpertAdminExpertManageListDTO(ExpertUserFullInfo expertUserFullInfo | |||||
// , Map<Long, List<ExpertDictionary>> expertDictionaryMap, Map<Long, List<ExpertTag>> expertTagMap) { | |||||
// Long userId = expertUserFullInfo.getUserId(); | |||||
// ExpertAdminExpertManageListDTO expertAdminExpertManageListDTO = new ExpertAdminExpertManageListDTO(); | |||||
// expertAdminExpertManageListDTO.setUserId(expertUserFullInfo.getUserId()); | |||||
// expertAdminExpertManageListDTO.setExpertName(expertUserFullInfo.getName()); | |||||
// expertAdminExpertManageListDTO.setPhoneNo(expertUserFullInfo.getPhoneNo()); | |||||
// expertAdminExpertManageListDTO.setIsDingUser(BoolDisplayEnum.judgeBoolean(expertUserFullInfo.getIsDingUser())); | |||||
// expertAdminExpertManageListDTO.setCompany(expertUserFullInfo.getCompany()); | |||||
// expertAdminExpertManageListDTO.setLegalEntityCode(expertUserFullInfo.getLegalEntityCode()); | |||||
// expertAdminExpertManageListDTO.setExpertAccountStatus(expertUserFullInfo.getExpertAccountStatus()); | |||||
// | |||||
// // 装配字典数据 | |||||
// List<ExpertDictionary> userExpertDictionaryList = Objects.isNull(expertDictionaryMap.get(userId)) ? new ArrayList<>() : expertDictionaryMap.get(userId); | |||||
// Map<String, List<ExpertDictionary>> fieldExpertDictionaryMap = userExpertDictionaryList.stream().collect(Collectors.groupingBy(ExpertDictionary::getExpertInfoField)); | |||||
// expertAdminExpertManageListDTO.setExpertType( | |||||
// DictionaryAssembler.toDictionaryFieldInfoList(fieldExpertDictionaryMap.get(DictExpertInfoTypeEnum.EXPERT_TYPE.getKey()))); | |||||
// expertAdminExpertManageListDTO.setCompanyAttribute( | |||||
// DictionaryAssembler.toDictionaryFieldInfoList(fieldExpertDictionaryMap.get(DictExpertInfoTypeEnum.COMPANY_ATTRIBUTE.getKey()))); | |||||
// expertAdminExpertManageListDTO.setTitleLevel( | |||||
// DictionaryAssembler.toDictionaryFieldInfoList(fieldExpertDictionaryMap.get(DictExpertInfoTypeEnum.TITLE_LEVEL.getKey()))); | |||||
// // 装配标签数据 | |||||
// List<ExpertTag> expertTagList = Objects.isNull(expertTagMap.get(userId)) ? new ArrayList<>() : expertTagMap.get(userId); | |||||
// Map<String, List<ExpertTag>> fieldExpertTagMap = expertTagList.stream().collect(Collectors.groupingBy(ExpertTag::getExpertInfoField)); | |||||
// expertAdminExpertManageListDTO.setExpertSource( | |||||
// TagAssembler.toTagFieldInfoList(fieldExpertTagMap.get(ExpertTagEnum.EXPERT_SOURCE.getKey()))); | |||||
// | |||||
// if (StringUtils.isNotBlank(expertUserFullInfo.getRegionCode()) && Objects.nonNull(expertUserFullInfo.getRegionLevel())) { | |||||
// ExpertRegionInfo expertRegionInfo = new ExpertRegionInfo(); | |||||
// expertRegionInfo.setRegionLevel(expertUserFullInfo.getRegionLevel()); | |||||
// expertRegionInfo.setRegionCode(expertUserFullInfo.getRegionCode()); | |||||
// expertAdminExpertManageListDTO.setExpertRegionInfo(expertRegionInfo); | |||||
// } | |||||
// | |||||
// // 以下数据为专家excel导出使用 | |||||
// expertAdminExpertManageListDTO.setGender(expertUserFullInfo.getGender()); | |||||
// expertAdminExpertManageListDTO.setBirth(expertUserFullInfo.getBirth()); | |||||
// expertAdminExpertManageListDTO.setHometown(expertUserFullInfo.getHometown()); | |||||
// expertAdminExpertManageListDTO.setNationality(expertUserFullInfo.getNationality()); | |||||
// expertAdminExpertManageListDTO.setPolitical( | |||||
// DictionaryAssembler.toDictionaryFieldInfoList(fieldExpertDictionaryMap.get(DictExpertInfoTypeEnum.POLITICAL.getKey()))); | |||||
// expertAdminExpertManageListDTO.setIdCard(expertUserFullInfo.getIdCard()); | |||||
// expertAdminExpertManageListDTO.setBankNo(expertUserFullInfo.getBankNo()); | |||||
// expertAdminExpertManageListDTO.setEdu( | |||||
// DictionaryAssembler.toDictionaryFieldInfoList(fieldExpertDictionaryMap.get(DictExpertInfoTypeEnum.EDU.getKey()))); | |||||
// expertAdminExpertManageListDTO.setRecommendedWay( | |||||
// DictionaryAssembler.toDictionaryFieldInfoList(fieldExpertDictionaryMap.get(DictExpertInfoTypeEnum.RECOMMENDED_WAY.getKey()))); | |||||
// return expertAdminExpertManageListDTO; | |||||
// | |||||
// } | |||||
} |
@@ -1,19 +0,0 @@ | |||||
package com.ningdatech.pmapi.expert.controller; | |||||
import org.springframework.stereotype.Controller; | |||||
import org.springframework.web.bind.annotation.RequestMapping; | |||||
/** | |||||
* <p> | |||||
* 前端控制器 | |||||
* </p> | |||||
* | |||||
* @author Liuxinxin | |||||
* @since 2023-02-23 | |||||
*/ | |||||
@Controller | |||||
@RequestMapping("/pmapi.expert/expert-avoid-company") | |||||
public class ExpertAvoidCompanyController { | |||||
} |
@@ -2,14 +2,13 @@ package com.ningdatech.pmapi.expert.controller; | |||||
import com.ningdatech.pmapi.expert.manage.ExpertManage; | import com.ningdatech.pmapi.expert.manage.ExpertManage; | ||||
import com.ningdatech.pmapi.expert.model.req.ExpertRecommendProofSubmitRequest; | |||||
import com.ningdatech.pmapi.expert.model.req.ExpertUserBasicInfoSubmitRequest; | import com.ningdatech.pmapi.expert.model.req.ExpertUserBasicInfoSubmitRequest; | ||||
import com.ningdatech.pmapi.expert.model.vo.ExpertFullInfoVO; | |||||
import io.swagger.annotations.Api; | import io.swagger.annotations.Api; | ||||
import io.swagger.annotations.ApiOperation; | import io.swagger.annotations.ApiOperation; | ||||
import lombok.RequiredArgsConstructor; | import lombok.RequiredArgsConstructor; | ||||
import org.springframework.web.bind.annotation.PostMapping; | |||||
import org.springframework.web.bind.annotation.RequestBody; | |||||
import org.springframework.web.bind.annotation.RequestMapping; | |||||
import org.springframework.web.bind.annotation.RestController; | |||||
import org.springframework.web.bind.annotation.*; | |||||
import javax.validation.Valid; | import javax.validation.Valid; | ||||
@@ -36,5 +35,17 @@ public class ExpertController { | |||||
expertManage.expertBasicInfoSubmit(request); | expertManage.expertBasicInfoSubmit(request); | ||||
} | } | ||||
@PostMapping("/recommend-proof-submit") | |||||
@ApiOperation("推荐证明提交接口(专家报名使用)") | |||||
public void expertRecommendProofSubmit(@Valid @RequestBody ExpertRecommendProofSubmitRequest request) { | |||||
expertManage.expertRecommendProofSubmit(request); | |||||
} | |||||
@GetMapping("/detail") | |||||
@ApiOperation("专家获取专家详细信息") | |||||
public ExpertFullInfoVO getExpertFullInfoDetail() { | |||||
return expertManage.getExpertFullInfoDetail(null); | |||||
} | |||||
} | } |
@@ -0,0 +1,46 @@ | |||||
package com.ningdatech.pmapi.expert.helper; | |||||
import com.ningdatech.pmapi.expert.model.dto.ExpertFullInfoAllDTO; | |||||
import com.ningdatech.pmapi.expert.model.dto.ExpertUserFullInfoDTO; | |||||
import org.apache.commons.collections4.CollectionUtils; | |||||
import org.springframework.stereotype.Component; | |||||
import java.util.ArrayList; | |||||
import java.util.List; | |||||
import java.util.Objects; | |||||
/** | |||||
* @author liuxinxin | |||||
* @date 2022/7/28 上午10:18 | |||||
*/ | |||||
@Component | |||||
public class ExpertInfoCommonHelper { | |||||
/** | |||||
* 获取专家的所有文件id | |||||
* 头像,学位证书,毕业证书,推荐证明材料,职称证明 | |||||
* | |||||
* @param expertUserFullInfoAll | |||||
* @return | |||||
*/ | |||||
public List<Long> getExpertFileIdList(ExpertFullInfoAllDTO expertUserFullInfoAll) { | |||||
ExpertUserFullInfoDTO expertUserInfoDTO = expertUserFullInfoAll.getExpertUserInfoDTO(); | |||||
List<Long> fileIdList = new ArrayList<>(); | |||||
if (Objects.nonNull(expertUserInfoDTO.getAvatarFileId())) { | |||||
fileIdList.add(expertUserInfoDTO.getAvatarFileId()); | |||||
} | |||||
if (CollectionUtils.isNotEmpty(expertUserInfoDTO.getDegreeCertificateFileIdList())) { | |||||
fileIdList.addAll(expertUserInfoDTO.getDegreeCertificateFileIdList()); | |||||
} | |||||
if (CollectionUtils.isNotEmpty(expertUserInfoDTO.getGraduationCertificateFileIdList())) { | |||||
fileIdList.addAll(expertUserInfoDTO.getGraduationCertificateFileIdList()); | |||||
} | |||||
if (CollectionUtils.isNotEmpty(expertUserInfoDTO.getRecommendationProofFileIdList())) { | |||||
fileIdList.addAll(expertUserInfoDTO.getRecommendationProofFileIdList()); | |||||
} | |||||
if (CollectionUtils.isNotEmpty(expertUserInfoDTO.getTitleCertificateFileIdList())) { | |||||
fileIdList.addAll(expertUserInfoDTO.getTitleCertificateFileIdList()); | |||||
} | |||||
return fileIdList; | |||||
} | |||||
} |
@@ -1,25 +1,36 @@ | |||||
package com.ningdatech.pmapi.expert.manage; | package com.ningdatech.pmapi.expert.manage; | ||||
import com.ningdatech.basic.exception.BizException; | |||||
import com.ningdatech.file.entity.vo.result.AttachFileVo; | |||||
import com.ningdatech.file.service.FileService; | |||||
import com.ningdatech.pmapi.expert.assembler.ExpertInfoCmdAssembler; | import com.ningdatech.pmapi.expert.assembler.ExpertInfoCmdAssembler; | ||||
import com.ningdatech.pmapi.expert.assembler.ExpertUserInfoAssembler; | |||||
import com.ningdatech.pmapi.expert.constant.ExpertAccountStatusEnum; | import com.ningdatech.pmapi.expert.constant.ExpertAccountStatusEnum; | ||||
import com.ningdatech.pmapi.expert.constant.ExpertUserInfoStepEnum; | import com.ningdatech.pmapi.expert.constant.ExpertUserInfoStepEnum; | ||||
import com.ningdatech.pmapi.expert.entity.ExpertUserFullInfo; | import com.ningdatech.pmapi.expert.entity.ExpertUserFullInfo; | ||||
import com.ningdatech.pmapi.expert.helper.ExpertInfoCommonHelper; | |||||
import com.ningdatech.pmapi.expert.helper.ExpertManageHelper; | import com.ningdatech.pmapi.expert.helper.ExpertManageHelper; | ||||
import com.ningdatech.pmapi.expert.model.ExpertBasicInfo; | |||||
import com.ningdatech.pmapi.expert.model.ExpertEduInfo; | |||||
import com.ningdatech.pmapi.expert.model.ExpertJobInfo; | |||||
import com.ningdatech.pmapi.expert.model.ExpertProfessionalInfo; | |||||
import com.ningdatech.pmapi.expert.model.*; | |||||
import com.ningdatech.pmapi.expert.model.cmd.ExpertFullInfoSaveCmd; | import com.ningdatech.pmapi.expert.model.cmd.ExpertFullInfoSaveCmd; | ||||
import com.ningdatech.pmapi.expert.model.cmd.ExpertRecommendProofSaveCmd; | |||||
import com.ningdatech.pmapi.expert.model.dto.ExpertDictionaryDTO; | |||||
import com.ningdatech.pmapi.expert.model.dto.ExpertFullInfoAllDTO; | |||||
import com.ningdatech.pmapi.expert.model.req.ExpertRecommendProofSubmitRequest; | |||||
import com.ningdatech.pmapi.expert.model.req.ExpertUserBasicInfoSubmitRequest; | import com.ningdatech.pmapi.expert.model.req.ExpertUserBasicInfoSubmitRequest; | ||||
import com.ningdatech.pmapi.expert.model.vo.ExpertFullInfoVO; | |||||
import com.ningdatech.pmapi.expert.service.ExpertInfoService; | import com.ningdatech.pmapi.expert.service.ExpertInfoService; | ||||
import com.ningdatech.pmapi.expert.service.IExpertUserFullInfoService; | import com.ningdatech.pmapi.expert.service.IExpertUserFullInfoService; | ||||
import com.ningdatech.pmapi.meta.constant.DictExpertInfoTypeEnum; | |||||
import com.ningdatech.pmapi.meta.model.ExpertRegionInfo; | import com.ningdatech.pmapi.meta.model.ExpertRegionInfo; | ||||
import com.ningdatech.pmapi.user.util.LoginUserUtil; | import com.ningdatech.pmapi.user.util.LoginUserUtil; | ||||
import lombok.RequiredArgsConstructor; | import lombok.RequiredArgsConstructor; | ||||
import org.apache.commons.collections4.CollectionUtils; | |||||
import org.springframework.stereotype.Component; | import org.springframework.stereotype.Component; | ||||
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; | |||||
/** | /** | ||||
* @author liuxinxin | * @author liuxinxin | ||||
@@ -31,10 +42,11 @@ import java.util.Objects; | |||||
public class ExpertManage { | public class ExpertManage { | ||||
private final ExpertManageHelper expertManageHelper; | private final ExpertManageHelper expertManageHelper; | ||||
private final IExpertUserFullInfoService iExpertUserFullInfoService; | private final IExpertUserFullInfoService iExpertUserFullInfoService; | ||||
private final ExpertInfoService expertInfoService; | private final ExpertInfoService expertInfoService; | ||||
private final ExpertInfoCommonHelper expertInfoCommonHelper; | |||||
private final FileService fileService; | |||||
private final ExpertUserInfoAssembler expertUserInfoAssembler; | |||||
/** | /** | ||||
@@ -75,4 +87,51 @@ public class ExpertManage { | |||||
} | } | ||||
public void expertRecommendProofSubmit(ExpertRecommendProofSubmitRequest request) { | |||||
// 用户id | |||||
Long expertUserId = LoginUserUtil.getUserId(); | |||||
ExpertUserFullInfo expertUserFullInfo = iExpertUserFullInfoService.getByUserId(expertUserId); | |||||
// 判断专家状态,是否可以进行证明材料提交 | |||||
if (Objects.isNull(expertUserFullInfo) | |||||
|| !ExpertAccountStatusEnum.APPLYING.getKey().equals(expertUserFullInfo.getExpertAccountStatus()) | |||||
|| ExpertUserInfoStepEnum.EVIDENCE_HAS_BEEN_SUBMITTED.getKey().equals(expertUserFullInfo.getUserInfoStep())) { | |||||
throw new BizException("当前状态无法提交证明材料"); | |||||
} | |||||
// 根据用户id 获取用户信息,获取手机号校验 验证码是否正确 | |||||
String phoneNo = expertUserFullInfo.getPhoneNo(); | |||||
String verificationCode = request.getVerificationCode(); | |||||
// 证明材料提交 | |||||
List<FileBasicInfo> recommendProofFile = request.getRecommendProofFile(); | |||||
List<DictionaryFieldInfo> recommendedWayList = request.getRecommendedWay(); | |||||
ExpertRecommendProofSaveCmd expertRecommendProofSaveCmd = new ExpertRecommendProofSaveCmd(); | |||||
if (CollectionUtils.isNotEmpty(recommendProofFile)) { | |||||
expertRecommendProofSaveCmd.setRecommendationProofFileIdList(recommendProofFile.stream().map(FileBasicInfo::getFileId).collect(Collectors.toList())); | |||||
} | |||||
List<ExpertDictionaryDTO> recommendedWayDictionaryDTOList = new ArrayList<>(); | |||||
if (CollectionUtils.isNotEmpty(recommendedWayList)) { | |||||
recommendedWayDictionaryDTOList = recommendedWayList.stream().map(r -> { | |||||
ExpertDictionaryDTO expertDictionaryDTO = new ExpertDictionaryDTO(); | |||||
expertDictionaryDTO.setDictionaryCode(r.getDictionaryCode()); | |||||
expertDictionaryDTO.setExpertInfoField(DictExpertInfoTypeEnum.RECOMMENDED_WAY.getKey()); | |||||
return expertDictionaryDTO; | |||||
}).collect(Collectors.toList()); | |||||
} | |||||
expertRecommendProofSaveCmd.setRecommendedWay(recommendedWayDictionaryDTOList); | |||||
expertRecommendProofSaveCmd.setUserId(expertUserId); | |||||
expertInfoService.expertRecommendProofSave(expertRecommendProofSaveCmd); | |||||
} | |||||
public ExpertFullInfoVO getExpertFullInfoDetail(Long expertUserId) { | |||||
Long currentUserId = LoginUserUtil.getUserId(); | |||||
if (Objects.isNull(expertUserId)) { | |||||
expertUserId = currentUserId; | |||||
} | |||||
ExpertFullInfoAllDTO expertUserFullInfoAll = expertInfoService.getExpertUserFullInfoAll(expertUserId); | |||||
if (Objects.isNull(expertUserFullInfoAll)) { | |||||
return null; | |||||
} | |||||
List<Long> fileIdList = expertInfoCommonHelper.getExpertFileIdList(expertUserFullInfoAll); | |||||
List<AttachFileVo> attachFiles = fileService.getByIds(fileIdList); | |||||
return expertUserInfoAssembler.buildExpertFullInfoVO(attachFiles, expertUserFullInfoAll); } | |||||
} | } |
@@ -0,0 +1,37 @@ | |||||
//package com.ningdatech.pmapi.expert.model.cmd; | |||||
// | |||||
//import com.ningdatech.emapi.expert.entity.bo.ExpertInfoSensitiveFieldCheckBO; | |||||
//import com.ningdatech.emapi.expert.entity.dto.*; | |||||
//import lombok.Data; | |||||
// | |||||
//import java.util.List; | |||||
// | |||||
///** | |||||
// * @author liuxinxin | |||||
// * @date 2022/7/28 下午2:43 | |||||
// */ | |||||
//@Data | |||||
//public class AdminModifyExpertInfoCmd { | |||||
// | |||||
// private Long userId; | |||||
// | |||||
// private ExpertUserFullInfoDTO expertUserInfoDTO; | |||||
// | |||||
// private List<ExpertDictionaryDTO> expertDictionaryList; | |||||
// | |||||
// private List<ExpertTagDTO> expertTagList; | |||||
// | |||||
// /** | |||||
// * 专家履职意向(区域编码) | |||||
// */ | |||||
// private List<ExpertRegionDTO> expertIntentionWorkRegionInfo; | |||||
// | |||||
// /** | |||||
// * 回避单位列表 | |||||
// */ | |||||
// private List<ExpertAvoidCompanyDTO> expertAvoidCompanyList; | |||||
// | |||||
// private ExpertInfoSensitiveFieldCheckBO expertInfoSensitiveFieldCheckBO; | |||||
// | |||||
// private ModifyApplyExtraInfoDTO modifyApplyExtraInfo; | |||||
//} |
@@ -0,0 +1,61 @@ | |||||
//package com.ningdatech.pmapi.expert.model.cmd; | |||||
// | |||||
//import com.ningdatech.emapi.common.model.CommonPageReq; | |||||
//import com.ningdatech.emapi.expert.constants.ExpertAccountStatusEnum; | |||||
//import com.ningdatech.emapi.expert.entity.bo.RegionContainsBO; | |||||
//import com.ningdatech.emapi.expert.entity.query.ExpertDictionaryQuery; | |||||
//import com.ningdatech.emapi.expert.entity.query.ExpertTagQuery; | |||||
//import io.swagger.annotations.ApiModelProperty; | |||||
//import lombok.Data; | |||||
// | |||||
//import java.util.List; | |||||
// | |||||
///** | |||||
// * @author liuxinxin | |||||
// * @date 2022/8/4 上午11:11 | |||||
// */ | |||||
//@Data | |||||
//public class ExpertAdminExpertManageQueryCmd extends CommonPageReq { | |||||
// | |||||
// @ApiModelProperty("专家姓名(精准匹配)") | |||||
// private String expertName; | |||||
// | |||||
// @ApiModelProperty("工作单位(模糊匹配)") | |||||
// private String company; | |||||
// | |||||
// @ApiModelProperty("专家账号状态") | |||||
// private List<ExpertAccountStatusEnum> expertAccountStatusList; | |||||
// | |||||
// /** | |||||
// * 区域编码 | |||||
// */ | |||||
// @ApiModelProperty("区域编码") | |||||
// private String regionCode; | |||||
// | |||||
// /** | |||||
// * 区域级别 | |||||
// */ | |||||
// @ApiModelProperty("区域级别") | |||||
// private Integer regionLevel; | |||||
// | |||||
// /** | |||||
// * 专家管理区域范围 | |||||
// */ | |||||
// List<RegionContainsBO> regionContainsList; | |||||
// | |||||
// /** | |||||
// * 专家字典信息 | |||||
// */ | |||||
// private List<ExpertDictionaryQuery> expertDictionaryQueryList; | |||||
// | |||||
// /** | |||||
// * 专家标签信息 | |||||
// */ | |||||
// private List<ExpertTagQuery> expertTagQueryList; | |||||
// | |||||
// /** | |||||
// * 是否为钉用户 | |||||
// */ | |||||
// private Boolean isDingUser; | |||||
// | |||||
//} |
@@ -0,0 +1,16 @@ | |||||
package com.ningdatech.pmapi.expert.model.cmd; | |||||
import lombok.Data; | |||||
/** | |||||
* @author liuxinxin | |||||
* @date 2022/7/26 下午6:28 | |||||
* 专家出库审核处理cmd | |||||
*/ | |||||
@Data | |||||
public class ExpertDeliveryDealCmd { | |||||
private Long expertUserId; | |||||
private Boolean applyResult; | |||||
} |
@@ -0,0 +1,18 @@ | |||||
package com.ningdatech.pmapi.expert.model.cmd; | |||||
import lombok.Data; | |||||
/** | |||||
* @author liuxinxin | |||||
* @date 2022/7/28 下午5:35 | |||||
*/ | |||||
@Data | |||||
public class ExpertInfoModifyApplyDealCmd { | |||||
private Long expertUserId; | |||||
private Boolean applyResult; | |||||
private Long applyId; | |||||
} |
@@ -0,0 +1,37 @@ | |||||
//package com.ningdatech.pmapi.expert.model.cmd; | |||||
// | |||||
//import com.ningdatech.emapi.expert.entity.bo.ExpertInfoSensitiveFieldCheckBO; | |||||
//import com.ningdatech.emapi.expert.entity.dto.*; | |||||
//import lombok.Data; | |||||
// | |||||
//import java.util.List; | |||||
// | |||||
///** | |||||
// * @author liuxinxin | |||||
// * @date 2022/7/28 下午2:43 | |||||
// */ | |||||
//@Data | |||||
//public class ExpertInfoModifyCmd { | |||||
// | |||||
// private Long userId; | |||||
// | |||||
// private ExpertUserFullInfoDTO expertUserInfoDTO; | |||||
// | |||||
// private List<ExpertDictionaryDTO> expertDictionaryList; | |||||
// | |||||
// private List<ExpertTagDTO> expertTagList; | |||||
// | |||||
// /** | |||||
// * 专家履职意向(区域编码) | |||||
// */ | |||||
// private List<ExpertRegionDTO> expertIntentionWorkRegionInfo; | |||||
// | |||||
// /** | |||||
// * 回避单位列表 | |||||
// */ | |||||
// private List<ExpertAvoidCompanyDTO> expertAvoidCompanyList; | |||||
// | |||||
// private ExpertInfoSensitiveFieldCheckBO expertInfoSensitiveFieldCheckBO; | |||||
// | |||||
// private ModifyApplyExtraInfoDTO modifyApplyExtraInfo; | |||||
//} |
@@ -0,0 +1,22 @@ | |||||
//package com.ningdatech.pmapi.expert.model.cmd; | |||||
// | |||||
//import com.ningdatech.emapi.expert.constants.ExpertApplyTypeEnum; | |||||
//import lombok.Data; | |||||
// | |||||
///** | |||||
// * @author liuxinxin | |||||
// * @date 2022/7/27 上午9:06 | |||||
// */ | |||||
//@Data | |||||
//public class ExpertIntentionApplyDealCmd { | |||||
// | |||||
// private Long expertUserId; | |||||
// | |||||
// private Boolean applyResult; | |||||
// | |||||
// ExpertApplyTypeEnum applyTypeEnum; | |||||
// | |||||
// private String expertRegionCode; | |||||
// | |||||
// private Integer expertRegionLevel; | |||||
//} |
@@ -0,0 +1,22 @@ | |||||
package com.ningdatech.pmapi.expert.model.cmd; | |||||
import com.ningdatech.pmapi.expert.model.dto.ExpertDictionaryDTO; | |||||
import lombok.Data; | |||||
import java.util.List; | |||||
/** | |||||
* @author liuxinxin | |||||
* @date 2022/7/25 下午4:59 | |||||
*/ | |||||
@Data | |||||
public class ExpertRecommendProofSaveCmd { | |||||
private Long userId; | |||||
private List<Long> recommendationProofFileIdList; | |||||
private List<ExpertDictionaryDTO> recommendedWay; | |||||
} |
@@ -0,0 +1,35 @@ | |||||
//package com.ningdatech.pmapi.expert.model.cmd; | |||||
// | |||||
//import com.ningdatech.emapi.expert.entity.dto.ExpertDictionaryDTO; | |||||
//import com.ningdatech.emapi.expert.entity.dto.ExpertTagDTO; | |||||
//import lombok.Data; | |||||
// | |||||
//import java.util.List; | |||||
// | |||||
///** | |||||
// * @author liuxinxin | |||||
// * @date 2022/7/26 下午5:40 | |||||
// */ | |||||
//@Data | |||||
//public class ExpertStorageDealCmd { | |||||
// | |||||
// private Long expertUserId; | |||||
// | |||||
// private Boolean applyResult; | |||||
// | |||||
// private String joinRegionCode; | |||||
// | |||||
// private Integer joinRegionLevel; | |||||
// | |||||
// /** | |||||
// * 专家类型(内外围) | |||||
// */ | |||||
// private List<ExpertDictionaryDTO> expertType; | |||||
// | |||||
// /** | |||||
// * 其他标签(标签code) | |||||
// */ | |||||
// private List<ExpertTagDTO> other; | |||||
// | |||||
// private String remark; | |||||
//} |
@@ -0,0 +1,60 @@ | |||||
//package com.ningdatech.pmapi.expert.model.cmd; | |||||
// | |||||
//import com.ningdatech.emapi.expert.entity.dto.ExpertAdminRegionDTO; | |||||
//import lombok.Data; | |||||
// | |||||
//import java.util.List; | |||||
// | |||||
///** | |||||
// * @author liuxinxin | |||||
// * @date 2022/8/1 上午10:54 | |||||
// */ | |||||
//@Data | |||||
//public class SaveExpertAdminCmd { | |||||
// | |||||
// /** | |||||
// * 用户id | |||||
// */ | |||||
// private Long userId; | |||||
// | |||||
// /** | |||||
// * 是否浙政钉用户Y/N | |||||
// */ | |||||
// private Boolean isDingUser; | |||||
// | |||||
// /** | |||||
// * 手机号 | |||||
// */ | |||||
// private String phoneNo; | |||||
// | |||||
// /** | |||||
// * 用户名称 | |||||
// */ | |||||
// private String name; | |||||
// | |||||
// /** | |||||
// * 工作单位 | |||||
// */ | |||||
// private String company; | |||||
// | |||||
// /** | |||||
// * 公司唯一标识 | |||||
// */ | |||||
// private String companyUniqCode; | |||||
// | |||||
// /** | |||||
// * 层级 | |||||
// */ | |||||
// private List<ExpertAdminRegionDTO> regionInfoList; | |||||
// | |||||
// /** | |||||
// * 用户状态(启用/关闭) | |||||
// */ | |||||
// private Boolean isEnable; | |||||
// | |||||
// /** | |||||
// * 操作者id | |||||
// */ | |||||
// private Long operatorId; | |||||
// | |||||
//} |
@@ -0,0 +1,39 @@ | |||||
package com.ningdatech.pmapi.expert.model.dto; | |||||
import lombok.Data; | |||||
import java.util.List; | |||||
/** | |||||
* @author liuxinxin | |||||
* @date 2022/7/27 上午10:22 | |||||
* 专家全量信息表,包含履职意向,专家字典信息,专家标签信息,回避单位信息 | |||||
*/ | |||||
@Data | |||||
public class ExpertFullInfoAllDTO { | |||||
private Long userId; | |||||
private ExpertUserFullInfoDTO expertUserInfoDTO; | |||||
private List<ExpertDictionaryDTO> expertDictionaryList; | |||||
private List<ExpertTagDTO> expertTagList; | |||||
/** | |||||
* 专家履职意向(区域编码) | |||||
*/ | |||||
private List<ExpertRegionDTO> expertIntentionWorkRegionInfo; | |||||
/** | |||||
* 专家申请履职意向展示列表 | |||||
*/ | |||||
private List<ExpertRegionDTO> expertApplyIntentionWorkRegionInfo; | |||||
/** | |||||
* 回避单位列表 | |||||
*/ | |||||
private List<ExpertAvoidCompanyDTO> expertAvoidCompanyList; | |||||
} |
@@ -0,0 +1,31 @@ | |||||
package com.ningdatech.pmapi.expert.model.req; | |||||
import com.ningdatech.pmapi.expert.model.DictionaryFieldInfo; | |||||
import com.ningdatech.pmapi.expert.model.FileBasicInfo; | |||||
import io.swagger.annotations.ApiModel; | |||||
import io.swagger.annotations.ApiModelProperty; | |||||
import lombok.Data; | |||||
import javax.validation.constraints.NotBlank; | |||||
import javax.validation.constraints.NotEmpty; | |||||
import java.util.List; | |||||
/** | |||||
* @author liuxinxin | |||||
* @date 2022/7/22 下午5:49 | |||||
*/ | |||||
@Data | |||||
@ApiModel("专家证明材料提交Request") | |||||
public class ExpertRecommendProofSubmitRequest { | |||||
@NotEmpty | |||||
@ApiModelProperty("推荐方式") | |||||
private List<DictionaryFieldInfo> recommendedWay; | |||||
@ApiModelProperty("推荐证明材料") | |||||
private List<FileBasicInfo> recommendProofFile; | |||||
@NotBlank | |||||
@ApiModelProperty("短信验证码") | |||||
private String verificationCode; | |||||
} |
@@ -0,0 +1,45 @@ | |||||
package com.ningdatech.pmapi.expert.model.vo; | |||||
import com.ningdatech.pmapi.expert.model.*; | |||||
import com.ningdatech.pmapi.meta.model.ExpertRegionInfo; | |||||
import io.swagger.annotations.ApiModel; | |||||
import io.swagger.annotations.ApiModelProperty; | |||||
import lombok.Data; | |||||
import javax.validation.constraints.NotEmpty; | |||||
import java.util.List; | |||||
/** | |||||
* @author liuxinxin | |||||
* @date 2022/7/25 下午1:43 | |||||
*/ | |||||
@Data | |||||
@ApiModel("专家全量信息") | |||||
public class ExpertFullInfoVO { | |||||
@ApiModelProperty("专家用户id") | |||||
private Long userId; | |||||
@ApiModelProperty("基本信息") | |||||
private ExpertBasicInfo basicInfo; | |||||
@ApiModelProperty("学历信息") | |||||
private ExpertEduInfo eduInfo; | |||||
@ApiModelProperty("职业信息") | |||||
private ExpertJobInfo jobInfo; | |||||
@ApiModelProperty("专业信息") | |||||
private ExpertProfessionalInfo professionalInfo; | |||||
@ApiModelProperty("推荐信息") | |||||
private ExpertRecommendInfo recommendInfo; | |||||
@ApiModelProperty("其他信息") | |||||
private ExpertOtherInfo expertOtherInfo; | |||||
@NotEmpty | |||||
@ApiModelProperty("专家申请履职意向展示列表") | |||||
private List<ExpertRegionInfo> expertApplyIntentionWorkRegions; | |||||
} |
@@ -1,6 +1,8 @@ | |||||
package com.ningdatech.pmapi.expert.service; | package com.ningdatech.pmapi.expert.service; | ||||
import com.ningdatech.pmapi.expert.model.cmd.ExpertFullInfoSaveCmd; | import com.ningdatech.pmapi.expert.model.cmd.ExpertFullInfoSaveCmd; | ||||
import com.ningdatech.pmapi.expert.model.cmd.ExpertRecommendProofSaveCmd; | |||||
import com.ningdatech.pmapi.expert.model.dto.ExpertFullInfoAllDTO; | |||||
/** | /** | ||||
* @author liuxinxin | * @author liuxinxin | ||||
@@ -11,4 +13,18 @@ public interface ExpertInfoService { | |||||
void saveExpertInfo(ExpertFullInfoSaveCmd cmd); | void saveExpertInfo(ExpertFullInfoSaveCmd cmd); | ||||
/** | |||||
* 专家报名提交 推荐证明材料 | |||||
* | |||||
* @param expertRecommendProofSaveCmd | |||||
*/ | |||||
void expertRecommendProofSave(ExpertRecommendProofSaveCmd expertRecommendProofSaveCmd); | |||||
/** | |||||
* 根据user_id 获取用户全量信息 | |||||
* | |||||
* @param userId | |||||
* @return | |||||
*/ | |||||
ExpertFullInfoAllDTO getExpertUserFullInfoAll(Long userId); | |||||
} | } |
@@ -4,14 +4,18 @@ import com.alibaba.fastjson.JSONObject; | |||||
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; | import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; | ||||
import com.baomidou.mybatisplus.core.toolkit.Wrappers; | import com.baomidou.mybatisplus.core.toolkit.Wrappers; | ||||
import com.ningdatech.pmapi.common.constant.BoolDisplayEnum; | import com.ningdatech.pmapi.common.constant.BoolDisplayEnum; | ||||
import com.ningdatech.pmapi.expert.assembler.ExpertUserInfoAssembler; | |||||
import com.ningdatech.pmapi.expert.constant.ExpertAccountStatusEnum; | import com.ningdatech.pmapi.expert.constant.ExpertAccountStatusEnum; | ||||
import com.ningdatech.pmapi.expert.constant.ExpertUserInfoStepEnum; | import com.ningdatech.pmapi.expert.constant.ExpertUserInfoStepEnum; | ||||
import com.ningdatech.pmapi.expert.entity.ExpertAvoidCompany; | import com.ningdatech.pmapi.expert.entity.ExpertAvoidCompany; | ||||
import com.ningdatech.pmapi.expert.entity.ExpertIntentionWorkRegion; | |||||
import com.ningdatech.pmapi.expert.entity.ExpertUserFullInfo; | import com.ningdatech.pmapi.expert.entity.ExpertUserFullInfo; | ||||
import com.ningdatech.pmapi.expert.model.cmd.ExpertFullInfoSaveCmd; | import com.ningdatech.pmapi.expert.model.cmd.ExpertFullInfoSaveCmd; | ||||
import com.ningdatech.pmapi.expert.model.cmd.ExpertRecommendProofSaveCmd; | |||||
import com.ningdatech.pmapi.expert.model.dto.*; | import com.ningdatech.pmapi.expert.model.dto.*; | ||||
import com.ningdatech.pmapi.expert.service.ExpertInfoService; | import com.ningdatech.pmapi.expert.service.ExpertInfoService; | ||||
import com.ningdatech.pmapi.expert.service.IExpertAvoidCompanyService; | import com.ningdatech.pmapi.expert.service.IExpertAvoidCompanyService; | ||||
import com.ningdatech.pmapi.expert.service.IExpertIntentionWorkRegionService; | |||||
import com.ningdatech.pmapi.expert.service.IExpertUserFullInfoService; | import com.ningdatech.pmapi.expert.service.IExpertUserFullInfoService; | ||||
import com.ningdatech.pmapi.meta.model.entity.ExpertDictionary; | import com.ningdatech.pmapi.meta.model.entity.ExpertDictionary; | ||||
import com.ningdatech.pmapi.meta.model.entity.ExpertTag; | import com.ningdatech.pmapi.meta.model.entity.ExpertTag; | ||||
@@ -44,6 +48,8 @@ public class ExpertInfoServiceImpl implements ExpertInfoService { | |||||
private final IExpertAvoidCompanyService iExpertAvoidCompanyService; | private final IExpertAvoidCompanyService iExpertAvoidCompanyService; | ||||
private final IExpertIntentionWorkRegionService iExpertIntentionWorkRegionService; | |||||
/** | /** | ||||
* 用户第一次申请修改,仅在专家用户状态为applying 状态时调用 | * 用户第一次申请修改,仅在专家用户状态为applying 状态时调用 | ||||
@@ -216,4 +222,70 @@ public class ExpertInfoServiceImpl implements ExpertInfoService { | |||||
}).collect(Collectors.toList()); | }).collect(Collectors.toList()); | ||||
} | } | ||||
@Override | |||||
@Transactional(rollbackFor = Exception.class) | |||||
public void expertRecommendProofSave(ExpertRecommendProofSaveCmd cmd) { | |||||
// 保存专家证明材料 | |||||
Long userId = cmd.getUserId(); | |||||
ExpertUserFullInfo expertUserFullInfo = iExpertUserFullInfoService.getByUserId(userId); | |||||
expertUserFullInfo.setRecommendationProofFileIdList(JSONObject.toJSONString(cmd.getRecommendationProofFileIdList())); | |||||
expertUserFullInfo.setUpdateOn(LocalDateTime.now()); | |||||
expertUserFullInfo.setUserInfoStep(ExpertUserInfoStepEnum.EVIDENCE_HAS_BEEN_SUBMITTED.getKey()); | |||||
iExpertUserFullInfoService.saveOrUpdate(expertUserFullInfo); | |||||
List<ExpertDictionaryDTO> recommendedWayList = cmd.getRecommendedWay(); | |||||
if (CollectionUtils.isNotEmpty(recommendedWayList)) { | |||||
List<ExpertDictionary> saveExpertDictionaryList = recommendedWayList.stream().map(r -> { | |||||
ExpertDictionary expertDictionary = new ExpertDictionary(); | |||||
expertDictionary.setUserId(userId); | |||||
expertDictionary.setExpertInfoField(r.getExpertInfoField()); | |||||
expertDictionary.setDictionaryCode(r.getDictionaryCode()); | |||||
expertDictionary.setUpdateOn(LocalDateTime.now()); | |||||
expertDictionary.setCreateOn(LocalDateTime.now()); | |||||
return expertDictionary; | |||||
}).collect(Collectors.toList()); | |||||
iExpertDictionaryService.saveBatch(saveExpertDictionaryList); | |||||
} | |||||
// // 创建入库申请 | |||||
// ExpertMetaApply expertRegionApply = new ExpertMetaApply(); | |||||
// expertRegionApply.setApplyType(ExpertApplyTypeEnum.EXPERT_STORAGE.getKey()); | |||||
// expertRegionApply.setApplyStatus(ExpertApplyStatusEnum.PENDING_REVIEW.getKey()); | |||||
// expertRegionApply.setRegionCode(expertUserFullInfo.getRegionCode()); | |||||
// expertRegionApply.setRegionLevel(expertUserFullInfo.getRegionLevel()); | |||||
// expertRegionApply.setUserId(userId); | |||||
// expertRegionApply.setDisplayEnable(BoolDisplayEnum.Y.name()); | |||||
// iExpertMetaApplyService.save(expertRegionApply); | |||||
} | |||||
@Override | |||||
public ExpertFullInfoAllDTO getExpertUserFullInfoAll(Long userId) { | |||||
ExpertUserFullInfo expertUserFullInfo = iExpertUserFullInfoService.getByUserId(userId); | |||||
if (Objects.isNull(expertUserFullInfo)) { | |||||
return null; | |||||
} | |||||
// 所有专家标签字段 | |||||
List<ExpertTag> expertTagList = iExpertTagService | |||||
.list(Wrappers.lambdaQuery(ExpertTag.class).eq(ExpertTag::getUserId, userId)); | |||||
// 所有专家字典字段 | |||||
List<ExpertDictionary> expertDictionaryList = iExpertDictionaryService | |||||
.list(Wrappers.lambdaQuery(ExpertDictionary.class).eq(ExpertDictionary::getUserId, userId)); | |||||
// 专家履职意向列表 | |||||
List<ExpertIntentionWorkRegion> expertIntentionWorkRegionList = iExpertIntentionWorkRegionService | |||||
.list(Wrappers.lambdaQuery(ExpertIntentionWorkRegion.class).eq(ExpertIntentionWorkRegion::getUserId, userId)); | |||||
// // 专家履职意向申请列表 | |||||
// List<ExpertMetaApply> expertMetaApplyList = iExpertMetaApplyService.list(Wrappers.lambdaQuery(ExpertMetaApply.class) | |||||
// .eq(ExpertMetaApply::getUserId, userId) | |||||
// .eq(ExpertMetaApply::getApplyStatus, ExpertApplyStatusEnum.PENDING_REVIEW.getKey()) | |||||
// .in(ExpertMetaApply::getApplyType, ExpertApplyTypeEnum.EXPERT_INTENTION_JOIN.getKey(), ExpertApplyTypeEnum.EXPERT_INTENTION_LEAVE.getKey())); | |||||
// 所有专家回避单位 | |||||
List<ExpertAvoidCompany> expertAvoidCompanyList = iExpertAvoidCompanyService | |||||
.list(Wrappers.lambdaQuery(ExpertAvoidCompany.class).eq(ExpertAvoidCompany::getUserId, userId)); | |||||
// return ExpertUserInfoAssembler.buildExpertFullInfoAllDTO(expertUserFullInfo, expertTagList, expertDictionaryList | |||||
// , expertIntentionWorkRegionList, expertMetaApplyList, expertAvoidCompanyList); | |||||
return ExpertUserInfoAssembler.buildExpertFullInfoAllDTO(expertUserFullInfo, expertTagList, expertDictionaryList | |||||
, expertIntentionWorkRegionList, expertAvoidCompanyList); | |||||
} | |||||
} | } |
@@ -2,13 +2,10 @@ package com.ningdatech.pmapi.projectlib.controller; | |||||
import com.ningdatech.basic.model.PageVo; | import com.ningdatech.basic.model.PageVo; | ||||
import com.ningdatech.pmapi.projectlib.manage.ProjectLibManage; | import com.ningdatech.pmapi.projectlib.manage.ProjectLibManage; | ||||
import com.ningdatech.pmapi.projectlib.model.entity.Project; | |||||
import com.ningdatech.pmapi.projectlib.model.req.ProjectListReq; | import com.ningdatech.pmapi.projectlib.model.req.ProjectListReq; | ||||
import com.ningdatech.pmapi.projectlib.model.vo.ProcessDetailVO; | import com.ningdatech.pmapi.projectlib.model.vo.ProcessDetailVO; | ||||
import com.ningdatech.pmapi.projectlib.model.vo.ProjectDetailVO; | import com.ningdatech.pmapi.projectlib.model.vo.ProjectDetailVO; | ||||
import com.ningdatech.pmapi.projectlib.model.vo.ProjectLibListItemVO; | import com.ningdatech.pmapi.projectlib.model.vo.ProjectLibListItemVO; | ||||
import com.ningdatech.pmapi.todocenter.model.dto.req.ToBeProcessedExportReq; | |||||
import io.swagger.annotations.Api; | import io.swagger.annotations.Api; | ||||
import io.swagger.annotations.ApiOperation; | import io.swagger.annotations.ApiOperation; | ||||
import lombok.AllArgsConstructor; | import lombok.AllArgsConstructor; | ||||
@@ -23,13 +23,15 @@ import com.ningdatech.pmapi.projectlib.model.vo.ProjectLibListItemVO; | |||||
import com.ningdatech.pmapi.projectlib.service.IProjectApplicationService; | import com.ningdatech.pmapi.projectlib.service.IProjectApplicationService; | ||||
import com.ningdatech.pmapi.projectlib.service.IProjectRenewalFundDeclarationService; | import com.ningdatech.pmapi.projectlib.service.IProjectRenewalFundDeclarationService; | ||||
import com.ningdatech.pmapi.projectlib.service.IProjectService; | import com.ningdatech.pmapi.projectlib.service.IProjectService; | ||||
import com.ningdatech.pmapi.todocenter.enumeration.IsAppendProjectEnum; | |||||
import lombok.RequiredArgsConstructor; | import lombok.RequiredArgsConstructor; | ||||
import org.springframework.beans.BeanUtils; | import org.springframework.beans.BeanUtils; | ||||
import org.springframework.stereotype.Component; | import org.springframework.stereotype.Component; | ||||
import javax.servlet.http.HttpServletResponse; | import javax.servlet.http.HttpServletResponse; | ||||
import java.util.*; | |||||
import java.util.ArrayList; | |||||
import java.util.List; | |||||
import java.util.Objects; | |||||
import java.util.Optional; | |||||
/** | /** | ||||
* <p> | * <p> | ||||
@@ -80,7 +82,6 @@ public class ProjectLibManage { | |||||
} | } | ||||
/** | /** | ||||
* | |||||
* @param projectId 项目详情 | * @param projectId 项目详情 | ||||
* @return com.ningdatech.pmapi.projectlib.model.entity.vo.ProjectDetailVO | * @return com.ningdatech.pmapi.projectlib.model.entity.vo.ProjectDetailVO | ||||
* @author ZPF | * @author ZPF | ||||
@@ -89,7 +90,7 @@ public class ProjectLibManage { | |||||
public ProjectDetailVO getProjectDetail(Long projectId) { | public ProjectDetailVO getProjectDetail(Long projectId) { | ||||
// 查询项目申报信息 | // 查询项目申报信息 | ||||
Project projectInfo = projectService.getById(projectId); | Project projectInfo = projectService.getById(projectId); | ||||
if(Objects.isNull(projectInfo)){ | |||||
if (Objects.isNull(projectInfo)) { | |||||
return null; | return null; | ||||
} | } | ||||
ProjectDetailVO vo = new ProjectDetailVO(); | ProjectDetailVO vo = new ProjectDetailVO(); | ||||
@@ -101,28 +102,28 @@ public class ProjectLibManage { | |||||
Optional.ofNullable(applications).ifPresent(apps -> | Optional.ofNullable(applications).ifPresent(apps -> | ||||
vo.setProjectApplications(CollUtils.convert(apps, | vo.setProjectApplications(CollUtils.convert(apps, | ||||
ProjectHelper::convertVO) | ProjectHelper::convertVO) | ||||
)); | |||||
)); | |||||
//查询年度投资金额 要是已验收的项目 | //查询年度投资金额 要是已验收的项目 | ||||
if(ProjectStatusEnum.ACCEPTED.getCode().equals(projectInfo.getStatus())){ | |||||
if (ProjectStatusEnum.ACCEPTED.getCode().equals(projectInfo.getStatus())) { | |||||
List<AnnualAmountVO> annualAmounts = Lists.newArrayList(); | List<AnnualAmountVO> annualAmounts = Lists.newArrayList(); | ||||
annualAmounts.add(AnnualAmountVO.builder() | annualAmounts.add(AnnualAmountVO.builder() | ||||
.projectId(projectInfo.getId()) | |||||
.projectYear(projectInfo.getProjectYear()) | |||||
.annualAmount(projectInfo.getAnnualPlanAmount()) | |||||
.build()); | |||||
.projectId(projectInfo.getId()) | |||||
.projectYear(projectInfo.getProjectYear()) | |||||
.annualAmount(projectInfo.getAnnualPlanAmount()) | |||||
.build()); | |||||
List<ProjectRenewalFundDeclaration> renewalDeclarations = renewalFundDeclarationService.list(Wrappers.lambdaQuery(ProjectRenewalFundDeclaration.class) | List<ProjectRenewalFundDeclaration> renewalDeclarations = renewalFundDeclarationService.list(Wrappers.lambdaQuery(ProjectRenewalFundDeclaration.class) | ||||
.eq(ProjectRenewalFundDeclaration::getProjectId, vo.getId()) | .eq(ProjectRenewalFundDeclaration::getProjectId, vo.getId()) | ||||
.orderByAsc(ProjectRenewalFundDeclaration::getProjectYear)); | .orderByAsc(ProjectRenewalFundDeclaration::getProjectYear)); | ||||
Optional.ofNullable(renewalDeclarations).ifPresent(declarations -> | Optional.ofNullable(renewalDeclarations).ifPresent(declarations -> | ||||
declarations.forEach(declaration -> { | |||||
annualAmounts.add(AnnualAmountVO.builder() | |||||
.projectId(projectInfo.getId()) | |||||
.projectYear(declaration.getProjectYear()) | |||||
.annualAmount(declaration.getAnnualPaymentAmount()) | |||||
.build()); | |||||
}) | |||||
); | |||||
declarations.forEach(declaration -> { | |||||
annualAmounts.add(AnnualAmountVO.builder() | |||||
.projectId(projectInfo.getId()) | |||||
.projectYear(declaration.getProjectYear()) | |||||
.annualAmount(declaration.getAnnualPaymentAmount()) | |||||
.build()); | |||||
}) | |||||
); | |||||
vo.setAnnualAccumulateAmountList(annualAmounts); | vo.setAnnualAccumulateAmountList(annualAmounts); | ||||
} | } | ||||
return vo; | return vo; | ||||
@@ -134,7 +135,6 @@ public class ProjectLibManage { | |||||
} | } | ||||
public void exportList(ProjectListReq param, HttpServletResponse response) { | public void exportList(ProjectListReq param, HttpServletResponse response) { | ||||
param.setPageNumber(CommonConstant.EXPORT_PAGE_NUMBER); | param.setPageNumber(CommonConstant.EXPORT_PAGE_NUMBER); | ||||
param.setPageSize(CommonConstant.EXPORT_PAGE_SIZE); | param.setPageSize(CommonConstant.EXPORT_PAGE_SIZE); | ||||
LambdaQueryWrapper<Project> query = ProjectHelper.projectQuery(param); | LambdaQueryWrapper<Project> query = ProjectHelper.projectQuery(param); | ||||