@@ -0,0 +1,22 @@ | |||||
package com.ningdatech.pmapi.common.model; | |||||
import lombok.Data; | |||||
/** | |||||
* @author liuxinxin | |||||
* @date 2022/8/4 上午11:19 | |||||
*/ | |||||
@Data | |||||
public class CommonPageReq { | |||||
private static final long serialVersionUID = 1L; | |||||
private int pageSize; | |||||
private int pageNumber; | |||||
public int getOffset() { | |||||
return (this.getPageNumber() - 1) * this.getPageSize(); | |||||
} | |||||
public int getLimit() { | |||||
return this.getPageSize(); | |||||
} | |||||
} |
@@ -0,0 +1,50 @@ | |||||
package com.ningdatech.pmapi.expert.constant; | |||||
import lombok.AllArgsConstructor; | |||||
import lombok.Getter; | |||||
import org.apache.commons.lang3.StringUtils; | |||||
/** | |||||
* @author liuxinxin | |||||
* @date 2022/7/26 下午1:40 | |||||
* 专家 申请类型用于前端筛选时入参展示 | |||||
*/ | |||||
@AllArgsConstructor | |||||
@Getter | |||||
public enum ExpertApplyTypeQueryEnum { | |||||
// 专家入库 | |||||
EXPERT_STORAGE("expert_storage"), | |||||
// 专家出库 | |||||
EXPERT_DELIVERY("expert_delivery"), | |||||
// 专家履职意变更 | |||||
EXPERT_INTENTION_CHANGE("expert_intention_change"), | |||||
// 长期请假申请 | |||||
LONG_TERM_LEAVE("long_term_leave"), | |||||
// 专家信息修改申请 | |||||
EXPERT_INFO_MODIFY("expert_info_modify"); | |||||
private final String key; | |||||
public static boolean contains(String key) { | |||||
if (StringUtils.isBlank(key)) { | |||||
return false; | |||||
} | |||||
for (ExpertApplyTypeQueryEnum typeEnum : ExpertApplyTypeQueryEnum.values()) { | |||||
if (typeEnum.key.equals(key)) { | |||||
return true; | |||||
} | |||||
} | |||||
return false; | |||||
} | |||||
public static ExpertApplyTypeQueryEnum of(String key) { | |||||
for (ExpertApplyTypeQueryEnum typeEnum : ExpertApplyTypeQueryEnum.values()) { | |||||
if (typeEnum.key.equals(key)) { | |||||
return typeEnum; | |||||
} | |||||
} | |||||
throw new IllegalArgumentException(String.format("ExpertApplyTypeQueryEnum = %s", key)); | |||||
} | |||||
} |
@@ -1,10 +1,19 @@ | |||||
package com.ningdatech.pmapi.expert.controller; | package com.ningdatech.pmapi.expert.controller; | ||||
import com.ningdatech.basic.model.PageVo; | |||||
import com.ningdatech.pmapi.expert.manage.ExpertMetaApplyManage; | |||||
import com.ningdatech.pmapi.expert.model.cmd.MetaApplyListQuery; | |||||
import com.ningdatech.pmapi.expert.model.req.MetaApplyResultRequest; | |||||
import com.ningdatech.pmapi.expert.model.vo.ExpertApplyMetaVO; | |||||
import com.ningdatech.pmapi.expert.model.vo.MetaApplyResultVo; | |||||
import io.swagger.annotations.Api; | import io.swagger.annotations.Api; | ||||
import io.swagger.annotations.ApiOperation; | |||||
import lombok.RequiredArgsConstructor; | import lombok.RequiredArgsConstructor; | ||||
import org.springframework.web.bind.annotation.RequestMapping; | |||||
import org.springframework.web.bind.annotation.RestController; | |||||
import org.springframework.validation.annotation.Validated; | |||||
import org.springframework.web.bind.annotation.*; | |||||
import javax.validation.Valid; | |||||
/** | /** | ||||
* <p> | * <p> | ||||
@@ -15,10 +24,39 @@ import org.springframework.web.bind.annotation.RestController; | |||||
* @since 2023-03-01 | * @since 2023-03-01 | ||||
*/ | */ | ||||
@RestController | @RestController | ||||
@Api(tags = "专家相关审核") | |||||
@RequestMapping("/api/v1/expert-meta-apply") | |||||
@RequestMapping("/api/v1/apply/meta/") | |||||
@Validated | |||||
@RequiredArgsConstructor | @RequiredArgsConstructor | ||||
@Api(value = "ExpertMetaApplyController", tags = "专家申请管理相关接口") | |||||
public class ExpertMetaApplyController { | public class ExpertMetaApplyController { | ||||
private final ExpertMetaApplyManage expertMetaApplyManage; | |||||
@PostMapping("/list") | |||||
@ApiOperation(value = "审核列表筛选") | |||||
public PageVo<ExpertApplyMetaVO> metaApplyListQuery(@RequestBody @Valid MetaApplyListQuery metaApplyListQuery) { | |||||
// ExpertMetaApplyValidator.metaApplyListQueryValidate(metaApplyListQuery); | |||||
return expertMetaApplyManage.metaApplyListQuery(metaApplyListQuery); | |||||
} | |||||
@PostMapping("/result") | |||||
@ApiOperation(value = "审核结果处理") | |||||
public void metaApplyResult(@RequestBody @Valid MetaApplyResultRequest applyResultRequest) { | |||||
expertMetaApplyManage.metaApplyResult(applyResultRequest); | |||||
} | |||||
@PostMapping("/revoke/{applyId}") | |||||
@ApiOperation(value = "申请撤销") | |||||
public void metaApplyRevoke(@PathVariable Long applyId) { | |||||
expertMetaApplyManage.metaApplyRevoke(applyId); | |||||
} | |||||
@ApiOperation("申请审核详情") | |||||
@GetMapping("/detail/{applyId}") | |||||
public MetaApplyResultVo applyAuditDetail(@PathVariable Long applyId) { | |||||
return expertMetaApplyManage.metaApplyResult(applyId); | |||||
} | |||||
} | } |
@@ -0,0 +1,387 @@ | |||||
package com.ningdatech.pmapi.expert.manage; | |||||
import cn.hutool.core.collection.CollUtil; | |||||
import cn.hutool.core.collection.CollectionUtil; | |||||
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; | |||||
import com.baomidou.mybatisplus.core.toolkit.CollectionUtils; | |||||
import com.baomidou.mybatisplus.core.toolkit.Wrappers; | |||||
import com.baomidou.mybatisplus.extension.plugins.pagination.Page; | |||||
import com.ningdatech.basic.exception.BizException; | |||||
import com.ningdatech.basic.model.PageVo; | |||||
import com.ningdatech.basic.util.CollUtils; | |||||
import com.ningdatech.pmapi.common.constant.BoolDisplayEnum; | |||||
import com.ningdatech.pmapi.common.util.BizUtils; | |||||
import com.ningdatech.pmapi.expert.constant.ExpertApplyStatusEnum; | |||||
import com.ningdatech.pmapi.expert.constant.ExpertApplyTypeEnum; | |||||
import com.ningdatech.pmapi.expert.constant.ExpertApplyTypeQueryEnum; | |||||
import com.ningdatech.pmapi.expert.entity.ExpertMetaApply; | |||||
import com.ningdatech.pmapi.expert.entity.ExpertUserFullInfo; | |||||
import com.ningdatech.pmapi.expert.model.DictionaryFieldInfo; | |||||
import com.ningdatech.pmapi.expert.model.cmd.ExpertAdminExpertManageQueryCmd; | |||||
import com.ningdatech.pmapi.expert.model.cmd.MetaApplyListQuery; | |||||
import com.ningdatech.pmapi.expert.model.query.ExpertDictionaryQuery; | |||||
import com.ningdatech.pmapi.expert.model.req.MetaApplyResultRequest; | |||||
import com.ningdatech.pmapi.expert.model.vo.ExpertApplyMetaVO; | |||||
import com.ningdatech.pmapi.expert.model.vo.MetaApplyResultVo; | |||||
import com.ningdatech.pmapi.expert.service.IExpertMetaApplyService; | |||||
import com.ningdatech.pmapi.expert.service.IExpertUserFullInfoService; | |||||
import com.ningdatech.pmapi.meta.constant.DictExpertInfoTypeEnum; | |||||
import com.ningdatech.pmapi.meta.helper.DictionaryCache; | |||||
import com.ningdatech.pmapi.meta.model.ExpertRegionInfo; | |||||
import com.ningdatech.pmapi.meta.model.bo.RegionContainsBO; | |||||
import com.ningdatech.pmapi.meta.model.dto.DictionaryDTO; | |||||
import com.ningdatech.pmapi.meta.model.entity.ExpertDictionary; | |||||
import com.ningdatech.pmapi.meta.service.IExpertDictionaryService; | |||||
import com.ningdatech.pmapi.user.util.LoginUserUtil; | |||||
import lombok.RequiredArgsConstructor; | |||||
import org.apache.commons.lang3.StringUtils; | |||||
import org.springframework.stereotype.Component; | |||||
import java.time.LocalDateTime; | |||||
import java.util.ArrayList; | |||||
import java.util.List; | |||||
import java.util.Map; | |||||
import java.util.Objects; | |||||
import java.util.stream.Collectors; | |||||
/** | |||||
* @author liuxinxin | |||||
* @date 2023/3/1 上午10:38 | |||||
*/ | |||||
@Component | |||||
@RequiredArgsConstructor | |||||
public class ExpertMetaApplyManage { | |||||
private final IExpertMetaApplyService iMetaApplyService; | |||||
private final IExpertDictionaryService expertDictionaryService; | |||||
// private final IExpertAdminManageService ExpertAdminManageService; | |||||
private final IExpertUserFullInfoService userFullInfoService; | |||||
private final DictionaryCache dictionaryCache; | |||||
public PageVo<ExpertApplyMetaVO> metaApplyListQuery(MetaApplyListQuery req) { | |||||
Long expertAdminUserId = LoginUserUtil.getUserId(); | |||||
// 查找符合专家条件的用户id | |||||
// TODO | |||||
// List<RegionContainsBO> viewRegions = regionLimitHelper.getExpertAdminContainsRegion(expertAdminUserId); | |||||
List<RegionContainsBO> viewRegions = new ArrayList<>(); | |||||
ExpertAdminExpertManageQueryCmd queryCmd = buildExpertAdminExpertManageQueryCmd(req, viewRegions); | |||||
// TODO | |||||
// List<Long> filterExpertUserIdList = expertAdminManageService.filterExpertUserIdList(queryCmd); | |||||
List<Long> filterExpertUserIdList = new ArrayList<>(); | |||||
if (CollUtil.isEmpty(filterExpertUserIdList)) { | |||||
return PageVo.empty(); | |||||
} | |||||
LambdaQueryWrapper<ExpertMetaApply> expertMetaApplyListQuery = | |||||
buildMetaApplyListQueryWrapper(req, filterExpertUserIdList, viewRegions); | |||||
// RegionWrapperAssembler.expertMetaApplyRegionContainsWrapperAssembler(expertMetaApplyListQuery, viewRegions); | |||||
Page<ExpertMetaApply> pageResult = iMetaApplyService.page(req.page(), expertMetaApplyListQuery); | |||||
PageVo<ExpertApplyMetaVO> result = new PageVo<>(); | |||||
result.setTotal(pageResult.getTotal()); | |||||
BizUtils.notEmpty(pageResult.getRecords(), records -> { | |||||
List<Long> expertIds = CollUtils.fieldList(records, ExpertMetaApply::getUserId); | |||||
// 根据用户id 获取专家基本信息 | |||||
List<ExpertUserFullInfo> expertList = userFullInfoService.listByUserIds(expertIds); | |||||
Map<Long, ExpertUserFullInfo> expertMap = CollUtils.listToMap(expertList, ExpertUserFullInfo::getUserId); | |||||
List<ExpertDictionary> expertDictList = expertDictionaryService.listByUserId(expertIds, DictExpertInfoTypeEnum.TITLE_LEVEL); | |||||
Map<Long, List<ExpertDictionary>> dictMap = CollUtils.group(expertDictList, ExpertDictionary::getUserId); | |||||
result.setRecords(buildExpertApplyMetaVOList(records, expertMap, dictMap)); | |||||
}); | |||||
return result; | |||||
} | |||||
public void metaApplyResult(MetaApplyResultRequest applyResultRequest) { | |||||
} | |||||
public MetaApplyResultVo metaApplyResult(Long applyId) { | |||||
ExpertMetaApply metaApply = iMetaApplyService.getById(applyId); | |||||
if (Objects.isNull(metaApply)) { | |||||
throw BizException.wrap("当前审核不存在"); | |||||
} | |||||
MetaApplyResultVo metaApplyResultVo = MetaApplyResultVo.builder() | |||||
.applyTime(metaApply.getCreateOn()) | |||||
.auditor(metaApply.getApprover()) | |||||
.expertUserId(metaApply.getUserId()) | |||||
.auditOption(metaApply.getAuditOpinion()) | |||||
.auditStatus(metaApply.getApplyStatus()) | |||||
.auditTime(metaApply.getReviewTime()) | |||||
.build(); | |||||
String extraMaterialStr = metaApply.getExtraMaterial(); | |||||
// if (StringUtils.isNotBlank(extraMaterialStr)) { | |||||
// ExtraMaterialDO extraMaterialDO = JSONObject.parseObject(extraMaterialStr, ExtraMaterialDO.class); | |||||
// ModifyApplyExtraInfo modifyApplyExtraInfo = new ModifyApplyExtraInfo(); | |||||
// BizUtils.notEmpty(extraMaterialDO.getEvidenceList(), list -> { | |||||
// List<Long> fileIdList = CollUtils.fieldList(list, FileBasicInfo::getFileId); | |||||
// List<AttachFileVo> attachFiles = fileService.getByIds(fileIdList); | |||||
// List<FileBasicInfo> tempList = attachFiles.stream().map(r -> { | |||||
// FileBasicInfo fileBasicInfo = new FileBasicInfo(); | |||||
// fileBasicInfo.setFileId(r.getFileId()); | |||||
// fileBasicInfo.setFileName(r.getOriginalFileName()); | |||||
// return fileBasicInfo; | |||||
// }).collect(Collectors.toList()); | |||||
// modifyApplyExtraInfo.setEvidenceList(tempList); | |||||
// }); | |||||
// modifyApplyExtraInfo.setFactSheet(extraMaterialDO.getFactSheet()); | |||||
// metaApplyResultVo.setModifyApplyExtraInfo(modifyApplyExtraInfo); | |||||
// } | |||||
String applyType = metaApply.getApplyType(); | |||||
ExpertApplyTypeEnum applyTypeEnum = ExpertApplyTypeEnum.of(applyType); | |||||
switch (applyTypeEnum) { | |||||
// case EXPERT_INFO_MODIFY: | |||||
// buildInfoModifyApplyDisplayVO(metaApplyResultVo, metaApply); | |||||
// break; | |||||
case EXPERT_INTENTION_JOIN: | |||||
case EXPERT_INTENTION_LEAVE: | |||||
buildIntentionApplyDisplayVO(metaApplyResultVo, metaApply, applyTypeEnum); | |||||
break; | |||||
case EXPERT_DELIVERY: | |||||
case LONG_TERM_LEAVE: | |||||
case EXPERT_STORAGE: | |||||
default: | |||||
break; | |||||
} | |||||
metaApplyResultVo.setApplyType(applyTypeTrans(applyTypeEnum)); | |||||
return metaApplyResultVo; | |||||
} | |||||
public void metaApplyRevoke(Long applyId) { | |||||
} | |||||
private void buildIntentionApplyDisplayVO(MetaApplyResultVo metaApplyResultVo, ExpertMetaApply metaApply, ExpertApplyTypeEnum applyTypeEnum) { | |||||
String regionCode = metaApply.getRegionCode(); | |||||
Integer regionLevel = metaApply.getRegionLevel(); | |||||
// String unionPathStr = regionCache.getUnionPathStr(regionCode, regionLevel); | |||||
MetaApplyResultVo.IntentionApplyDisplayVO intentionApplyDisplayVO = new MetaApplyResultVo.IntentionApplyDisplayVO(); | |||||
intentionApplyDisplayVO.setExpertApplyId(metaApply.getId()); | |||||
ExpertRegionInfo expertRegionInfo = new ExpertRegionInfo(); | |||||
expertRegionInfo.setRegionCode(regionCode); | |||||
expertRegionInfo.setRegionLevel(regionLevel); | |||||
// expertRegionInfo.setRegionName(unionPathStr); | |||||
switch (applyTypeEnum) { | |||||
case EXPERT_INTENTION_LEAVE: { | |||||
intentionApplyDisplayVO.setReduceExpertRegion(expertRegionInfo); | |||||
} | |||||
break; | |||||
case EXPERT_INTENTION_JOIN: { | |||||
intentionApplyDisplayVO.setAddExpertRegion(expertRegionInfo); | |||||
} | |||||
break; | |||||
default: | |||||
break; | |||||
} | |||||
metaApplyResultVo.setIntentionApplyDisplayVo(intentionApplyDisplayVO); | |||||
} | |||||
// private void buildInfoModifyApplyDisplayVO(MetaApplyResultVo metaApplyResultVo, ExpertMetaApply infoModifyApply) { | |||||
// InfoModifyApplyDisplayVO infoModifyApplyDisplayVo = new InfoModifyApplyDisplayVO(); | |||||
// if (Objects.nonNull(infoModifyApply)) { | |||||
// Long metaApplyId = infoModifyApply.getId(); | |||||
// LambdaQueryWrapper<ExpertSensitiveInfoModifyDetailRecord> eq = Wrappers.lambdaQuery(ExpertSensitiveInfoModifyDetailRecord.class) | |||||
// .eq(ExpertSensitiveInfoModifyDetailRecord::getMetaApplyId, metaApplyId); | |||||
// ExpertSensitiveInfoModifyDetailRecord one = iExpertSensitiveInfoModifyDetailRecordService.getOne(eq); | |||||
// String originalJson = null; | |||||
// if (StringUtils.isNotBlank(one.getOriginalJson())) { | |||||
// originalJson = GzipUtils.uncompress(one.getOriginalJson()); | |||||
// } | |||||
// List<SensitiveModifySegment> sensitiveModifySegments = JSONUtils.parseArray(originalJson, SensitiveModifySegment.class); | |||||
// | |||||
// infoModifyApplyDisplayVo.setExpertApplyId(metaApplyId); | |||||
// List<InfoModifyApplyDisplayVO.InfoModifyApplyDisplayValue> displayValueList = new ArrayList<>(); | |||||
// for (SensitiveModifySegment segment : sensitiveModifySegments) { | |||||
// InfoModifyApplyDisplayVO.InfoModifyApplyDisplayValue displayValue = sensitiveModifySegmentParser.getDisplayValue(segment); | |||||
// displayValueList.add(displayValue); | |||||
// } | |||||
// infoModifyApplyDisplayVo.setInfoModifyApplyDisplayValueList(displayValueList); | |||||
// metaApplyResultVo.setInfoModifyApplyDisplayVo(infoModifyApplyDisplayVo); | |||||
// } | |||||
// } | |||||
private String applyTypeTrans(ExpertApplyTypeEnum applyTypeEnum) { | |||||
switch (applyTypeEnum) { | |||||
case EXPERT_INTENTION_JOIN: | |||||
case EXPERT_INTENTION_LEAVE: { | |||||
return ExpertApplyTypeQueryEnum.EXPERT_INTENTION_CHANGE.getKey(); | |||||
} | |||||
case EXPERT_INFO_MODIFY: { | |||||
return ExpertApplyTypeQueryEnum.EXPERT_INFO_MODIFY.getKey(); | |||||
} | |||||
case LONG_TERM_LEAVE: { | |||||
return ExpertApplyTypeQueryEnum.LONG_TERM_LEAVE.getKey(); | |||||
} | |||||
case EXPERT_DELIVERY: { | |||||
return ExpertApplyTypeQueryEnum.EXPERT_DELIVERY.getKey(); | |||||
} | |||||
case EXPERT_STORAGE: { | |||||
return ExpertApplyTypeQueryEnum.EXPERT_STORAGE.getKey(); | |||||
} | |||||
default: | |||||
return null; | |||||
} | |||||
} | |||||
private List<String> applyTypeTrans(ExpertApplyTypeQueryEnum applyTypeQueryEnum) { | |||||
List<String> applyTypeList = new ArrayList<>(); | |||||
switch (applyTypeQueryEnum) { | |||||
case EXPERT_INTENTION_CHANGE: { | |||||
applyTypeList.add(ExpertApplyTypeEnum.EXPERT_INTENTION_JOIN.getKey()); | |||||
applyTypeList.add(ExpertApplyTypeEnum.EXPERT_INTENTION_LEAVE.getKey()); | |||||
} | |||||
break; | |||||
case EXPERT_INFO_MODIFY: { | |||||
applyTypeList.add(ExpertApplyTypeEnum.EXPERT_INFO_MODIFY.getKey()); | |||||
} | |||||
break; | |||||
case LONG_TERM_LEAVE: { | |||||
applyTypeList.add(ExpertApplyTypeEnum.LONG_TERM_LEAVE.getKey()); | |||||
} | |||||
break; | |||||
case EXPERT_DELIVERY: { | |||||
applyTypeList.add(ExpertApplyTypeEnum.EXPERT_DELIVERY.getKey()); | |||||
} | |||||
break; | |||||
case EXPERT_STORAGE: { | |||||
applyTypeList.add(ExpertApplyTypeEnum.EXPERT_STORAGE.getKey()); | |||||
} | |||||
break; | |||||
default: | |||||
break; | |||||
} | |||||
return applyTypeList; | |||||
} | |||||
private ExpertAdminExpertManageQueryCmd buildExpertAdminExpertManageQueryCmd(MetaApplyListQuery query, List<RegionContainsBO> expertAdminContainsRegionList) { | |||||
ExpertAdminExpertManageQueryCmd expertAdminExpertManageQueryCmd = new ExpertAdminExpertManageQueryCmd(); | |||||
expertAdminExpertManageQueryCmd.setPageNumber(query.getPageNumber()); | |||||
expertAdminExpertManageQueryCmd.setPageSize(query.getPageSize()); | |||||
if (StringUtils.isNotBlank(query.getExpertName())) { | |||||
expertAdminExpertManageQueryCmd.setExpertName(query.getExpertName()); | |||||
} | |||||
if (StringUtils.isNotBlank(query.getCompanyName())) { | |||||
expertAdminExpertManageQueryCmd.setCompany(query.getCompanyName()); | |||||
} | |||||
List<ExpertDictionaryQuery> expertDictionaryQueryList = new ArrayList<>(); | |||||
if (StringUtils.isNotBlank(query.getTitleLevelDictionaryCode())) { | |||||
ExpertDictionaryQuery expertDictionaryQuery = new ExpertDictionaryQuery(); | |||||
expertDictionaryQuery.setExpertInfoField(DictExpertInfoTypeEnum.TITLE_LEVEL.getKey()); | |||||
expertDictionaryQuery.setDictionaryCodeList(CollectionUtil.toList(query.getTitleLevelDictionaryCode())); | |||||
expertDictionaryQueryList.add(expertDictionaryQuery); | |||||
} | |||||
// List<RegionContainsBO> containsRegion; | |||||
// if (Objects.nonNull(query.getExpertRegion())) { | |||||
// RegionContainsBO containsRegionBo = regionLimitHelper.getContainsRegionBo(query.getExpertRegion().getRegionLevel() | |||||
// , query.getExpertRegion().getRegionCode()); | |||||
// containsRegion = regionLimitHelper.queryContainsRegionAssembler(containsRegionBo, expertAdminContainsRegionList); | |||||
// } else { | |||||
// containsRegion = expertAdminContainsRegionList; | |||||
// } | |||||
expertAdminExpertManageQueryCmd.setExpertDictionaryQueryList(expertDictionaryQueryList); | |||||
// expertAdminExpertManageQueryCmd.setRegionContainsList(containsRegion); | |||||
expertAdminExpertManageQueryCmd.setPageSize(query.getPageSize()); | |||||
expertAdminExpertManageQueryCmd.setPageNumber(query.getPageNumber()); | |||||
return expertAdminExpertManageQueryCmd; | |||||
} | |||||
/** | |||||
* 装配 专家审核列表筛选返回VO | |||||
* | |||||
* @param expertMetaApplyList / | |||||
* @param expertUserFullInfoMap / | |||||
* @param expertDictionaryListMap / | |||||
* @return / | |||||
*/ | |||||
private List<ExpertApplyMetaVO> buildExpertApplyMetaVOList(List<ExpertMetaApply> expertMetaApplyList | |||||
, Map<Long, ExpertUserFullInfo> expertUserFullInfoMap | |||||
, Map<Long, List<ExpertDictionary>> expertDictionaryListMap) { | |||||
List<ExpertApplyMetaVO> expertApplyMetaVOList = new ArrayList<>(); | |||||
for (ExpertMetaApply expertMetaApply : expertMetaApplyList) { | |||||
ExpertApplyMetaVO expertApplyMetaVO = new ExpertApplyMetaVO(); | |||||
Long userId = expertMetaApply.getUserId(); | |||||
ExpertUserFullInfo expertUserFullInfo = expertUserFullInfoMap.get(userId); | |||||
expertApplyMetaVO.setId(expertMetaApply.getId()); | |||||
expertApplyMetaVO.setUserId(userId); | |||||
expertApplyMetaVO.setApplyStatus(expertMetaApply.getApplyStatus()); | |||||
String applyType = expertMetaApply.getApplyType(); | |||||
if (Objects.nonNull(applyType)) { | |||||
expertApplyMetaVO.setApplyType(applyTypeTrans(ExpertApplyTypeEnum.of(applyType))); | |||||
} | |||||
expertApplyMetaVO.setName(expertUserFullInfo.getExpertName()); | |||||
// RegionDTO regionDTO = regionCache.getByCodeAndLevel(expertUserFullInfo.getRegionCode(), expertUserFullInfo.getRegionLevel()); | |||||
ExpertRegionInfo expertRegionInfo = new ExpertRegionInfo(); | |||||
expertRegionInfo.setRegionCode(expertUserFullInfo.getRegionCode()); | |||||
expertRegionInfo.setRegionLevel(expertUserFullInfo.getRegionLevel()); | |||||
// expertRegionInfo.setRegionName(regionDTO.getRegionName()); | |||||
expertApplyMetaVO.setExpertRegionInfo(expertRegionInfo); | |||||
List<ExpertDictionary> expertDictionaryList = expertDictionaryListMap.get(userId); | |||||
if (CollectionUtils.isNotEmpty(expertDictionaryList)) { | |||||
expertApplyMetaVO.setTitleLevel(expertDictionaryList.stream().map(r -> { | |||||
DictionaryDTO dictionaryDTO = dictionaryCache.getByCode(r.getDictionaryCode()); | |||||
DictionaryFieldInfo dictionaryFieldInfo = new DictionaryFieldInfo(); | |||||
dictionaryFieldInfo.setDictionaryCode(r.getDictionaryCode()); | |||||
dictionaryFieldInfo.setDictionaryFieldName(r.getExpertInfoField()); | |||||
if (Objects.nonNull(dictionaryDTO)) { | |||||
dictionaryFieldInfo.setDictionaryName(dictionaryDTO.getName()); | |||||
} | |||||
return dictionaryFieldInfo; | |||||
}).collect(Collectors.toList())); | |||||
} | |||||
expertApplyMetaVO.setCompany(expertUserFullInfo.getCompany()); | |||||
expertApplyMetaVO.setPhoneNo(expertUserFullInfo.getPhoneNo()); | |||||
expertApplyMetaVO.setApplyTime(expertMetaApply.getCreateOn()); | |||||
expertApplyMetaVOList.add(expertApplyMetaVO); | |||||
} | |||||
return expertApplyMetaVOList; | |||||
} | |||||
private LambdaQueryWrapper<ExpertMetaApply> buildMetaApplyListQueryWrapper(MetaApplyListQuery applyListReq, | |||||
List<Long> expertIdList, | |||||
List<RegionContainsBO> viewRegions) { | |||||
// 审核类型 | |||||
List<String> applyTypeList = new ArrayList<>(); | |||||
if (CollUtil.isNotEmpty(applyListReq.getApplyTypeList())) { | |||||
List<ExpertApplyTypeQueryEnum> applyTypeQueryEnumList = applyListReq.getApplyTypeList(); | |||||
for (ExpertApplyTypeQueryEnum applyTypeQueryEnum : applyTypeQueryEnumList) { | |||||
applyTypeList.addAll(applyTypeTrans(applyTypeQueryEnum)); | |||||
} | |||||
} | |||||
// 审核结果 | |||||
List<String> applyStatusList = new ArrayList<>(); | |||||
if (CollUtil.isNotEmpty(applyListReq.getApplyStatusList())) { | |||||
applyStatusList = CollUtils.fieldList(applyListReq.getApplyStatusList(), ExpertApplyStatusEnum::getKey); | |||||
; | |||||
} | |||||
LocalDateTime applyStartTime = applyListReq.getApplyStartTime(); | |||||
LocalDateTime applyEndTime = applyListReq.getApplyEndTime(); | |||||
// 不展示撤回的申请记录 | |||||
LambdaQueryWrapper<ExpertMetaApply> expertMetaApplyListQuery = Wrappers.lambdaQuery(ExpertMetaApply.class) | |||||
.in(CollectionUtils.isNotEmpty(applyTypeList), ExpertMetaApply::getApplyType, applyTypeList) | |||||
.in(CollectionUtils.isNotEmpty(applyStatusList), ExpertMetaApply::getApplyStatus, applyStatusList) | |||||
.in(ExpertMetaApply::getDisplayEnable, BoolDisplayEnum.Y.name()) | |||||
.in(CollectionUtils.isNotEmpty(expertIdList), ExpertMetaApply::getUserId, expertIdList) | |||||
.gt(Objects.nonNull(applyStartTime), ExpertMetaApply::getCreateOn, applyStartTime) | |||||
.lt(Objects.nonNull(applyEndTime), ExpertMetaApply::getCreateOn, applyEndTime) | |||||
.ne(ExpertMetaApply::getApplyStatus, ExpertApplyStatusEnum.REVOKED.getKey()) | |||||
.orderByDesc(ExpertMetaApply::getCreateOn); | |||||
// RegionWrapperAssembler.expertMetaApplyRegionContainsWrapperAssembler(expertMetaApplyListQuery, viewRegions); | |||||
return expertMetaApplyListQuery; | |||||
} | |||||
} |
@@ -0,0 +1,29 @@ | |||||
package com.ningdatech.pmapi.expert.model; | |||||
import io.swagger.annotations.ApiModel; | |||||
import io.swagger.annotations.ApiModelProperty; | |||||
import lombok.Data; | |||||
import java.util.List; | |||||
/** | |||||
* @author liuxinxin | |||||
* @date 2022/7/27 下午4:18 | |||||
* 提交修改申请额外信息 | |||||
*/ | |||||
@Data | |||||
@ApiModel("提交修改申请额外信息,保存于expert_meta_apply表的 extra_material 字段") | |||||
public class ExtraMaterialDO { | |||||
/** | |||||
* 情况说明 | |||||
*/ | |||||
@ApiModelProperty("申请说明") | |||||
private String factSheet; | |||||
/** | |||||
* 证明材料 | |||||
*/ | |||||
@ApiModelProperty("证明材料") | |||||
private List<FileBasicInfo> evidenceList; | |||||
} |
@@ -1,61 +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; | |||||
// | |||||
//} | |||||
package com.ningdatech.pmapi.expert.model.cmd; | |||||
import com.ningdatech.pmapi.common.model.CommonPageReq; | |||||
import com.ningdatech.pmapi.expert.constant.ExpertAccountStatusEnum; | |||||
import com.ningdatech.pmapi.expert.model.query.ExpertDictionaryQuery; | |||||
import com.ningdatech.pmapi.expert.model.query.ExpertTagQuery; | |||||
import com.ningdatech.pmapi.meta.model.bo.RegionContainsBO; | |||||
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,46 @@ | |||||
package com.ningdatech.pmapi.expert.model.cmd; | |||||
import com.ningdatech.basic.model.PagePo; | |||||
import com.ningdatech.pmapi.expert.constant.ExpertApplyStatusEnum; | |||||
import com.ningdatech.pmapi.expert.constant.ExpertApplyTypeQueryEnum; | |||||
import com.ningdatech.pmapi.meta.model.ExpertRegionInfo; | |||||
import io.swagger.annotations.ApiModel; | |||||
import io.swagger.annotations.ApiModelProperty; | |||||
import lombok.Data; | |||||
import java.time.LocalDateTime; | |||||
import java.util.List; | |||||
/** | |||||
* @author liuxinxin | |||||
* @date 2022/7/26 下午2:35 | |||||
*/ | |||||
@Data | |||||
@ApiModel("申请列表查询请求") | |||||
public class MetaApplyListQuery extends PagePo { | |||||
@ApiModelProperty("审核类型") | |||||
private List<ExpertApplyTypeQueryEnum> applyTypeList; | |||||
@ApiModelProperty("审核结果") | |||||
private List<ExpertApplyStatusEnum> applyStatusList; | |||||
@ApiModelProperty("工作单位") | |||||
private String companyName; | |||||
@ApiModelProperty("专家姓名") | |||||
private String expertName; | |||||
@ApiModelProperty("职称级别字典编码") | |||||
private String titleLevelDictionaryCode; | |||||
@ApiModelProperty("专家层级") | |||||
private ExpertRegionInfo expertRegion; | |||||
@ApiModelProperty("筛选开始时间") | |||||
private LocalDateTime applyStartTime; | |||||
@ApiModelProperty("筛选结束时间") | |||||
private LocalDateTime applyEndTime; | |||||
} |
@@ -0,0 +1,17 @@ | |||||
package com.ningdatech.pmapi.expert.model.query; | |||||
import lombok.Data; | |||||
import java.util.List; | |||||
/** | |||||
* @author liuxinxin | |||||
* @date 2022/8/5 上午11:16 | |||||
*/ | |||||
@Data | |||||
public class ExpertDictionaryQuery { | |||||
private String expertInfoField; | |||||
private List<String> dictionaryCodeList; | |||||
} |
@@ -0,0 +1,17 @@ | |||||
package com.ningdatech.pmapi.expert.model.query; | |||||
import lombok.Data; | |||||
import java.util.List; | |||||
/** | |||||
* @author liuxinxin | |||||
* @date 2022/8/5 上午11:16 | |||||
*/ | |||||
@Data | |||||
public class ExpertTagQuery { | |||||
private String expertInfoField; | |||||
private List<String> tagCodeList; | |||||
} |
@@ -0,0 +1,59 @@ | |||||
package com.ningdatech.pmapi.expert.model.query; | |||||
import com.ningdatech.pmapi.meta.model.bo.RegionContainsBO; | |||||
import lombok.Data; | |||||
import java.util.List; | |||||
/** | |||||
* @author liuxinxin | |||||
* @date 2022/8/5 上午10:52 | |||||
*/ | |||||
@Data | |||||
public class ListExpertQuery { | |||||
private Integer limit; | |||||
private Integer offset; | |||||
/** | |||||
* 专家姓名(精准匹配) | |||||
*/ | |||||
private String expertName; | |||||
/** | |||||
* 工作单位(模糊匹配) | |||||
*/ | |||||
private String company; | |||||
/** | |||||
* 专家账号状态 | |||||
*/ | |||||
private List<String> expertAccountStatusList; | |||||
/** | |||||
* 区域编码 | |||||
*/ | |||||
private String regionCode; | |||||
/** | |||||
* 区域级别 | |||||
*/ | |||||
private Integer regionLevel; | |||||
/** | |||||
* 专家管理区域范围 | |||||
*/ | |||||
List<RegionContainsBO> regionContainsList; | |||||
/** | |||||
* 专家字典信息 | |||||
*/ | |||||
private List<ExpertDictionaryQuery> expertDictionaryQueryList; | |||||
/** | |||||
* 专家标签信息 | |||||
*/ | |||||
private List<ExpertTagQuery> expertTagQueryList; | |||||
private Boolean isDingUser; | |||||
} |
@@ -0,0 +1,49 @@ | |||||
package com.ningdatech.pmapi.expert.model.req; | |||||
import com.ningdatech.pmapi.expert.model.DictionaryFieldInfo; | |||||
import com.ningdatech.pmapi.expert.model.TagFieldInfo; | |||||
import io.swagger.annotations.ApiModel; | |||||
import io.swagger.annotations.ApiModelProperty; | |||||
import lombok.Data; | |||||
import org.springframework.validation.annotation.Validated; | |||||
import javax.validation.constraints.NotNull; | |||||
import java.util.List; | |||||
/** | |||||
* @author liuxinxin | |||||
* @date 2022/7/26 下午4:20 | |||||
* 申请结果请求基类 | |||||
*/ | |||||
@Data | |||||
@Validated | |||||
public class MetaApplyResultRequest { | |||||
@NotNull | |||||
@ApiModelProperty("申请id") | |||||
private Long applyId; | |||||
@NotNull | |||||
@ApiModelProperty("审核结果") | |||||
private Boolean applyResult; | |||||
@ApiModelProperty("审核意见") | |||||
private String auditOpinion; | |||||
@ApiModelProperty("入库审核额外参数,只有入库审核结果审批才需要填写") | |||||
private StorageApplyResultExtraInfo storageApplyResultExtraInfo; | |||||
@Data | |||||
@ApiModel("入库审核额外参数") | |||||
public static class StorageApplyResultExtraInfo { | |||||
@ApiModelProperty("专家类型-内外围") | |||||
private List<DictionaryFieldInfo> expertType; | |||||
@ApiModelProperty("其他标签(标签code)") | |||||
private List<TagFieldInfo> other; | |||||
@ApiModelProperty("备注") | |||||
private String remark; | |||||
} | |||||
} |
@@ -0,0 +1,76 @@ | |||||
package com.ningdatech.pmapi.expert.model.vo; | |||||
import com.ningdatech.pmapi.expert.model.DictionaryFieldInfo; | |||||
import com.ningdatech.pmapi.meta.model.ExpertRegionInfo; | |||||
import io.swagger.annotations.ApiModel; | |||||
import io.swagger.annotations.ApiModelProperty; | |||||
import lombok.Data; | |||||
import java.time.LocalDateTime; | |||||
import java.util.List; | |||||
/** | |||||
* @author liuxinxin | |||||
* @date 2022/7/26 上午11:17 | |||||
* 专家审核列表展示VO基础类 | |||||
*/ | |||||
@Data | |||||
@ApiModel("审核列表展示VO") | |||||
public class ExpertApplyMetaVO { | |||||
@ApiModelProperty("id") | |||||
private Long id; | |||||
@ApiModelProperty("用户id") | |||||
private Long userId; | |||||
/** | |||||
* 审核结果 | |||||
*/ | |||||
@ApiModelProperty("审核结果") | |||||
private String applyStatus; | |||||
/** | |||||
* 审核类型 | |||||
*/ | |||||
@ApiModelProperty("审核类型") | |||||
private String applyType; | |||||
/** | |||||
* 专家姓名 | |||||
*/ | |||||
@ApiModelProperty("专家姓名") | |||||
private String name; | |||||
/** | |||||
* 专家层级 | |||||
*/ | |||||
@ApiModelProperty("专家层级") | |||||
private ExpertRegionInfo expertRegionInfo; | |||||
/** | |||||
* 职称级别 | |||||
*/ | |||||
@ApiModelProperty("职称级别") | |||||
private List<DictionaryFieldInfo> titleLevel; | |||||
/** | |||||
* 工作单位 | |||||
*/ | |||||
@ApiModelProperty("工作单位") | |||||
private String company; | |||||
/** | |||||
* 手机号 | |||||
*/ | |||||
@ApiModelProperty("手机号") | |||||
private String phoneNo; | |||||
/** | |||||
* 申请时间 | |||||
*/ | |||||
@ApiModelProperty("申请时间") | |||||
private LocalDateTime applyTime; | |||||
} |
@@ -0,0 +1,70 @@ | |||||
package com.ningdatech.pmapi.expert.model.vo; | |||||
import com.ningdatech.pmapi.meta.model.ExpertRegionInfo; | |||||
import io.swagger.annotations.ApiModel; | |||||
import io.swagger.annotations.ApiModelProperty; | |||||
import lombok.Builder; | |||||
import lombok.Data; | |||||
import java.time.LocalDateTime; | |||||
/** | |||||
* <p> | |||||
* LeaveAuditInfoVo | |||||
* </p> | |||||
* | |||||
* @author WendyYang | |||||
* @since 13:46 2022/8/12 | |||||
*/ | |||||
@Data | |||||
@Builder | |||||
@ApiModel("审核详情返回参数") | |||||
public class MetaApplyResultVo { | |||||
@ApiModelProperty("审核人") | |||||
private String auditor; | |||||
@ApiModelProperty("审核时间") | |||||
private LocalDateTime auditTime; | |||||
@ApiModelProperty("审核意见") | |||||
private String auditOption; | |||||
@ApiModelProperty("审核状态") | |||||
private String auditStatus; | |||||
@ApiModelProperty("申请时间") | |||||
private LocalDateTime applyTime; | |||||
@ApiModelProperty("申请类型") | |||||
private String applyType; | |||||
@ApiModelProperty("专家用户userId") | |||||
private Long expertUserId; | |||||
// @ApiModelProperty("额外的材料") | |||||
// private ModifyApplyExtraInfo modifyApplyExtraInfo; | |||||
// | |||||
// @ApiModelProperty("信息修改申请展示列表-只有审核类型为信息变更审核时才有值") | |||||
// private InfoModifyApplyDisplayVO infoModifyApplyDisplayVo; | |||||
@ApiModelProperty("履职意向修改申请展示列表-只有审核类型为履职意向变更时才会有值") | |||||
private IntentionApplyDisplayVO intentionApplyDisplayVo; | |||||
@Data | |||||
@ApiModel("履职意向修改申请展示列表") | |||||
public static class IntentionApplyDisplayVO { | |||||
@ApiModelProperty("审核申请id") | |||||
private Long expertApplyId; | |||||
@ApiModelProperty("履职意向增加") | |||||
private ExpertRegionInfo addExpertRegion; | |||||
@ApiModelProperty("履职意向减少") | |||||
private ExpertRegionInfo reduceExpertRegion; | |||||
} | |||||
} |
@@ -1,11 +1,11 @@ | |||||
package com.ningdatech.pmapi.expert.service; | package com.ningdatech.pmapi.expert.service; | ||||
import com.ningdatech.pmapi.expert.entity.ExpertMetaApply; | |||||
import com.baomidou.mybatisplus.extension.service.IService; | import com.baomidou.mybatisplus.extension.service.IService; | ||||
import com.ningdatech.pmapi.expert.entity.ExpertMetaApply; | |||||
/** | /** | ||||
* <p> | * <p> | ||||
* 服务类 | |||||
* 服务类 | |||||
* </p> | * </p> | ||||
* | * | ||||
* @author Liuxinxin | * @author Liuxinxin | ||||
@@ -32,4 +32,14 @@ public interface IExpertUserFullInfoService extends IService<ExpertUserFullInfo> | |||||
**/ | **/ | ||||
List<ExpertUserFullInfo> listByUserId(List<Long> userId); | List<ExpertUserFullInfo> listByUserId(List<Long> userId); | ||||
/** | |||||
* 批量查询专家用户信息 | |||||
* | |||||
* @param userIds 用户ID | |||||
* @return / | |||||
*/ | |||||
List<ExpertUserFullInfo> listByUserIds(List<Long> userIds); | |||||
} | } |
@@ -33,4 +33,9 @@ public class ExpertUserFullInfoServiceImpl extends ServiceImpl<NdExpertUserFullI | |||||
return list(Wrappers.<ExpertUserFullInfo>lambdaQuery().in(ExpertUserFullInfo::getUserId, userIds)); | return list(Wrappers.<ExpertUserFullInfo>lambdaQuery().in(ExpertUserFullInfo::getUserId, userIds)); | ||||
} | } | ||||
@Override | |||||
public List<ExpertUserFullInfo> listByUserIds(List<Long> userIds) { | |||||
return list(Wrappers.<ExpertUserFullInfo>lambdaQuery().in(ExpertUserFullInfo::getUserId, userIds)); | |||||
} | |||||
} | } |
@@ -1,8 +1,12 @@ | |||||
package com.ningdatech.pmapi.meta.service; | package com.ningdatech.pmapi.meta.service; | ||||
import com.ningdatech.pmapi.meta.constant.DictExpertInfoTypeEnum; | |||||
import com.ningdatech.pmapi.meta.model.entity.ExpertDictionary; | import com.ningdatech.pmapi.meta.model.entity.ExpertDictionary; | ||||
import com.baomidou.mybatisplus.extension.service.IService; | import com.baomidou.mybatisplus.extension.service.IService; | ||||
import java.util.Collection; | |||||
import java.util.List; | |||||
/** | /** | ||||
* <p> | * <p> | ||||
* 服务类 | * 服务类 | ||||
@@ -13,4 +17,15 @@ import com.baomidou.mybatisplus.extension.service.IService; | |||||
*/ | */ | ||||
public interface IExpertDictionaryService extends IService<ExpertDictionary> { | public interface IExpertDictionaryService extends IService<ExpertDictionary> { | ||||
/** | |||||
* 根据专家ID批量查询专家字典信息 | |||||
* | |||||
* @param userIds 专家ID | |||||
* @param dictType 专家字典类型 | |||||
* @return / | |||||
* @author WendyYang | |||||
**/ | |||||
List<ExpertDictionary> listByUserId(Collection<Long> userIds, DictExpertInfoTypeEnum dictType); | |||||
} | } |
@@ -1,11 +1,17 @@ | |||||
package com.ningdatech.pmapi.meta.service.impl; | package com.ningdatech.pmapi.meta.service.impl; | ||||
import com.ningdatech.pmapi.meta.model.entity.ExpertDictionary; | |||||
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; | |||||
import com.baomidou.mybatisplus.core.toolkit.Wrappers; | |||||
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; | |||||
import com.ningdatech.pmapi.meta.constant.DictExpertInfoTypeEnum; | |||||
import com.ningdatech.pmapi.meta.mapper.ExpertDictionaryMapper; | import com.ningdatech.pmapi.meta.mapper.ExpertDictionaryMapper; | ||||
import com.ningdatech.pmapi.meta.model.entity.ExpertDictionary; | |||||
import com.ningdatech.pmapi.meta.service.IExpertDictionaryService; | import com.ningdatech.pmapi.meta.service.IExpertDictionaryService; | ||||
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; | |||||
import org.springframework.stereotype.Service; | import org.springframework.stereotype.Service; | ||||
import java.util.Collection; | |||||
import java.util.List; | |||||
/** | /** | ||||
* <p> | * <p> | ||||
* 服务实现类 | * 服务实现类 | ||||
@@ -17,4 +23,13 @@ import org.springframework.stereotype.Service; | |||||
@Service | @Service | ||||
public class ExpertDictionaryServiceImpl extends ServiceImpl<ExpertDictionaryMapper, ExpertDictionary> implements IExpertDictionaryService { | public class ExpertDictionaryServiceImpl extends ServiceImpl<ExpertDictionaryMapper, ExpertDictionary> implements IExpertDictionaryService { | ||||
@Override | |||||
public List<ExpertDictionary> listByUserId(Collection<Long> userIds, DictExpertInfoTypeEnum dictType) { | |||||
// 获取专家职称 | |||||
LambdaQueryWrapper<ExpertDictionary> query = Wrappers.lambdaQuery(ExpertDictionary.class) | |||||
.in(ExpertDictionary::getUserId, userIds) | |||||
.eq(ExpertDictionary::getExpertInfoField, dictType.getKey()); | |||||
return list(query); | |||||
} | |||||
} | } |