@@ -384,7 +384,7 @@ public class ExpertUserInfoAssembler { | |||||
} | } | ||||
expertUserFullInfoDTO.setRetiredAt(expertUserFullInfo.getRetiredAt()); | expertUserFullInfoDTO.setRetiredAt(expertUserFullInfo.getRetiredAt()); | ||||
expertUserFullInfoDTO.setCompany(expertUserFullInfo.getCompany()); | expertUserFullInfoDTO.setCompany(expertUserFullInfo.getCompany()); | ||||
// expertUserFullInfoDTO.setCompanyUniqCode(expertUserFullInfo.getCompanyUniqCode()); | |||||
expertUserFullInfoDTO.setCompanyUniqCode(expertUserFullInfo.getCompanyUniqCode()); | |||||
expertUserFullInfoDTO.setLegalEntityCode(expertUserFullInfo.getLegalEntityCode()); | expertUserFullInfoDTO.setLegalEntityCode(expertUserFullInfo.getLegalEntityCode()); | ||||
expertUserFullInfoDTO.setAdministrativeDuties(expertUserFullInfo.getAdministrativeDuties()); | expertUserFullInfoDTO.setAdministrativeDuties(expertUserFullInfo.getAdministrativeDuties()); | ||||
expertUserFullInfoDTO.setStartWorkAt(expertUserFullInfo.getStartWorkAt()); | expertUserFullInfoDTO.setStartWorkAt(expertUserFullInfo.getStartWorkAt()); | ||||
@@ -7,9 +7,11 @@ import com.ningdatech.pmapi.expert.manage.ExpertManage; | |||||
import com.ningdatech.pmapi.expert.model.ExpertAdminExpertManageQuery; | import com.ningdatech.pmapi.expert.model.ExpertAdminExpertManageQuery; | ||||
import com.ningdatech.pmapi.expert.model.req.AdminExpertBasicInfoModifyRequest; | import com.ningdatech.pmapi.expert.model.req.AdminExpertBasicInfoModifyRequest; | ||||
import com.ningdatech.pmapi.expert.model.req.ExpertUserBasicInfoSubmitRequest; | import com.ningdatech.pmapi.expert.model.req.ExpertUserBasicInfoSubmitRequest; | ||||
import com.ningdatech.pmapi.expert.model.req.GetZzdInfoRequest; | |||||
import com.ningdatech.pmapi.expert.model.vo.ExpertAdminExpertManageListVO; | import com.ningdatech.pmapi.expert.model.vo.ExpertAdminExpertManageListVO; | ||||
import com.ningdatech.pmapi.expert.model.vo.ExpertBasicInfoModifyResultVO; | import com.ningdatech.pmapi.expert.model.vo.ExpertBasicInfoModifyResultVO; | ||||
import com.ningdatech.pmapi.expert.model.vo.ExpertFullInfoVO; | import com.ningdatech.pmapi.expert.model.vo.ExpertFullInfoVO; | ||||
import com.ningdatech.pmapi.expert.model.vo.ZzdInfoByMobileVO; | |||||
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; | ||||
@@ -67,4 +69,10 @@ public class ExpertController { | |||||
// ExpertUserInfoValidator.expertBasicInfoModifyRequestValidate(request); | // ExpertUserInfoValidator.expertBasicInfoModifyRequestValidate(request); | ||||
return expertAdminManage.adminModifyExpertBasicInfo(request); | return expertAdminManage.adminModifyExpertBasicInfo(request); | ||||
} | } | ||||
@PostMapping("/get-zzd-info") | |||||
@ApiOperation("获取浙政钉用户信息") | |||||
public ZzdInfoByMobileVO getZzdInfo(@Valid @RequestBody GetZzdInfoRequest request) { | |||||
return expertAdminManage.getZzdInfo(request); | |||||
} | |||||
} | } |
@@ -71,6 +71,8 @@ public class ExpertUserFullInfo implements Serializable { | |||||
private String company; | private String company; | ||||
private String companyUniqCode; | |||||
private String legalEntityCode; | private String legalEntityCode; | ||||
private String administrativeDuties; | private String administrativeDuties; | ||||
@@ -4,6 +4,7 @@ import cn.hutool.core.collection.CollectionUtil; | |||||
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.basic.exception.BizException; | import com.ningdatech.basic.exception.BizException; | ||||
import com.ningdatech.basic.model.GenericResult; | |||||
import com.ningdatech.basic.model.PageVo; | import com.ningdatech.basic.model.PageVo; | ||||
import com.ningdatech.pmapi.common.enumeration.BoolDisplayEnum; | import com.ningdatech.pmapi.common.enumeration.BoolDisplayEnum; | ||||
import com.ningdatech.pmapi.common.helper.RegionLimitHelper; | import com.ningdatech.pmapi.common.helper.RegionLimitHelper; | ||||
@@ -25,9 +26,11 @@ import com.ningdatech.pmapi.expert.model.dto.ExpertAdminExpertManageListDTO; | |||||
import com.ningdatech.pmapi.expert.model.query.ExpertDictionaryQuery; | import com.ningdatech.pmapi.expert.model.query.ExpertDictionaryQuery; | ||||
import com.ningdatech.pmapi.expert.model.query.ExpertTagQuery; | import com.ningdatech.pmapi.expert.model.query.ExpertTagQuery; | ||||
import com.ningdatech.pmapi.expert.model.req.AdminExpertBasicInfoModifyRequest; | import com.ningdatech.pmapi.expert.model.req.AdminExpertBasicInfoModifyRequest; | ||||
import com.ningdatech.pmapi.expert.model.req.GetZzdInfoRequest; | |||||
import com.ningdatech.pmapi.expert.model.req.MetaApplyResultRequest; | import com.ningdatech.pmapi.expert.model.req.MetaApplyResultRequest; | ||||
import com.ningdatech.pmapi.expert.model.vo.ExpertAdminExpertManageListVO; | import com.ningdatech.pmapi.expert.model.vo.ExpertAdminExpertManageListVO; | ||||
import com.ningdatech.pmapi.expert.model.vo.ExpertBasicInfoModifyResultVO; | import com.ningdatech.pmapi.expert.model.vo.ExpertBasicInfoModifyResultVO; | ||||
import com.ningdatech.pmapi.expert.model.vo.ZzdInfoByMobileVO; | |||||
import com.ningdatech.pmapi.expert.service.ExpertAdminManageService; | import com.ningdatech.pmapi.expert.service.ExpertAdminManageService; | ||||
import com.ningdatech.pmapi.expert.service.ExpertInfoService; | import com.ningdatech.pmapi.expert.service.ExpertInfoService; | ||||
import com.ningdatech.pmapi.expert.service.IExpertMetaApplyService; | import com.ningdatech.pmapi.expert.service.IExpertMetaApplyService; | ||||
@@ -35,7 +38,13 @@ import com.ningdatech.pmapi.meta.constant.DictExpertInfoTypeEnum; | |||||
import com.ningdatech.pmapi.meta.constant.ExpertTagEnum; | import com.ningdatech.pmapi.meta.constant.ExpertTagEnum; | ||||
import com.ningdatech.pmapi.meta.model.bo.RegionContainsBO; | import com.ningdatech.pmapi.meta.model.bo.RegionContainsBO; | ||||
import com.ningdatech.pmapi.user.util.LoginUserUtil; | import com.ningdatech.pmapi.user.util.LoginUserUtil; | ||||
import com.ningdatech.zwdd.client.ZwddClient; | |||||
import com.ningdatech.zwdd.model.dto.DingInfoByMobileDTO; | |||||
import com.ningdatech.zwdd.model.dto.DingOrgInfoDTO; | |||||
import com.ningdatech.zwdd.model.dto.EmployeeInfoDTO; | |||||
import com.ningdatech.zwdd.model.dto.EmployeePositionsDTO; | |||||
import lombok.RequiredArgsConstructor; | import lombok.RequiredArgsConstructor; | ||||
import org.apache.commons.collections4.CollectionUtils; | |||||
import org.apache.commons.lang3.StringUtils; | import org.apache.commons.lang3.StringUtils; | ||||
import org.springframework.stereotype.Component; | import org.springframework.stereotype.Component; | ||||
@@ -60,6 +69,7 @@ public class ExpertAdminManage { | |||||
private final ExpertMetaApplyManage expertMetaApplyManage; | private final ExpertMetaApplyManage expertMetaApplyManage; | ||||
private final ExpertAdminManageService expertAdminManageService; | private final ExpertAdminManageService expertAdminManageService; | ||||
private final ExpertAdminExpertManageAssembler expertAdminExpertManageAssembler; | private final ExpertAdminExpertManageAssembler expertAdminExpertManageAssembler; | ||||
private final ZwddClient zwddClient; | |||||
/** | /** | ||||
* 专家管理员使用 专家库列表查询 | * 专家管理员使用 专家库列表查询 | ||||
@@ -218,4 +228,37 @@ public class ExpertAdminManage { | |||||
} | } | ||||
return new ExpertBasicInfoModifyResultVO(false); | return new ExpertBasicInfoModifyResultVO(false); | ||||
} | } | ||||
public ZzdInfoByMobileVO getZzdInfo(GetZzdInfoRequest request) { | |||||
ZzdInfoByMobileVO zzdInfoByMobileVO = new ZzdInfoByMobileVO(); | |||||
String phoneNo = request.getPhoneNo(); | |||||
zzdInfoByMobileVO.setPhoneNo(phoneNo); | |||||
GenericResult<DingInfoByMobileDTO> dingInfoByMobile = zwddClient.getDingInfoByMobile(phoneNo); | |||||
DingInfoByMobileDTO dingInfo = dingInfoByMobile.getData(); | |||||
if (Objects.nonNull(dingInfo) && StringUtils.isNotBlank(dingInfo.getEmployeeCode())) { | |||||
zzdInfoByMobileVO.setIsDingUser(true); | |||||
String employeeCode = dingInfo.getEmployeeCode(); | |||||
GenericResult<List<EmployeePositionsDTO>> listGenericResult = zwddClient.listEmployeePositionsByEmployeeCode(employeeCode); | |||||
List<EmployeePositionsDTO> employeePositionsDTOS = listGenericResult.getData(); | |||||
if (CollectionUtils.isNotEmpty(employeePositionsDTOS)) { | |||||
EmployeePositionsDTO employeePositionsDTO = employeePositionsDTOS.get(0); | |||||
String organizationCode = employeePositionsDTO.getOrganizationCode(); | |||||
GenericResult<DingOrgInfoDTO> dingOrgInfoDTOGenericResult = zwddClient.getOrganizationByCode(organizationCode); | |||||
DingOrgInfoDTO organizationByCode = dingOrgInfoDTOGenericResult.getData(); | |||||
String organizationName = organizationByCode.getOrganizationName(); | |||||
zzdInfoByMobileVO.setCompanyName(organizationName); | |||||
} | |||||
GenericResult<EmployeeInfoDTO> infoDTOGenericResult = zwddClient.getEmployeeByCode(employeeCode); | |||||
EmployeeInfoDTO employeeInfoDTO = infoDTOGenericResult.getData(); | |||||
if (Objects.nonNull(employeeInfoDTO)) { | |||||
String employeeName = employeeInfoDTO.getEmployeeName(); | |||||
zzdInfoByMobileVO.setName(employeeName); | |||||
} | |||||
} else { | |||||
zzdInfoByMobileVO.setIsDingUser(false); | |||||
} | |||||
return zzdInfoByMobileVO; | |||||
} | |||||
} | } |
@@ -17,6 +17,7 @@ import com.ningdatech.pmapi.expert.model.cmd.ExpertRecommendProofSaveCmd; | |||||
import com.ningdatech.pmapi.expert.model.dto.ExpertDictionaryDTO; | import com.ningdatech.pmapi.expert.model.dto.ExpertDictionaryDTO; | ||||
import com.ningdatech.pmapi.expert.model.dto.ExpertFullInfoAllDTO; | import com.ningdatech.pmapi.expert.model.dto.ExpertFullInfoAllDTO; | ||||
import com.ningdatech.pmapi.expert.model.req.ExpertUserBasicInfoSubmitRequest; | import com.ningdatech.pmapi.expert.model.req.ExpertUserBasicInfoSubmitRequest; | ||||
import com.ningdatech.pmapi.expert.model.req.MetaApplyResultRequest; | |||||
import com.ningdatech.pmapi.expert.model.vo.ExpertFullInfoVO; | 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; | ||||
@@ -53,6 +54,7 @@ public class ExpertManage { | |||||
private final FileService fileService; | private final FileService fileService; | ||||
private final ExpertUserInfoAssembler expertUserInfoAssembler; | private final ExpertUserInfoAssembler expertUserInfoAssembler; | ||||
private final IUserInfoService iUserInfoService; | private final IUserInfoService iUserInfoService; | ||||
private final ExpertMetaApplyManage expertMetaApplyManage; | |||||
/** | /** | ||||
@@ -98,12 +100,19 @@ public class ExpertManage { | |||||
List<DictionaryFieldInfo> recommendedWay = recommendInfo.getRecommendedWay(); | List<DictionaryFieldInfo> recommendedWay = recommendInfo.getRecommendedWay(); | ||||
// 推荐方式 | // 推荐方式 | ||||
List<FileBasicInfo> recommendProofFile = recommendInfo.getRecommendationProofFile(); | List<FileBasicInfo> recommendProofFile = recommendInfo.getRecommendationProofFile(); | ||||
expertRecommendProofSubmit(recommendedWay, recommendProofFile, userId); | |||||
Long applyId = expertRecommendProofSubmit(recommendedWay, recommendProofFile, userId); | |||||
// 批量通过专家管理员审核 | |||||
MetaApplyResultRequest applyResult = new MetaApplyResultRequest(); | |||||
applyResult.setApplyId(applyId); | |||||
applyResult.setAuditOpinion("同意"); | |||||
applyResult.setApplyResult(true); | |||||
expertMetaApplyManage.metaApplyResult(applyResult); | |||||
} | } | ||||
@Transactional(rollbackFor = Exception.class) | @Transactional(rollbackFor = Exception.class) | ||||
public void expertRecommendProofSubmit(List<DictionaryFieldInfo> recommendedWay, List<FileBasicInfo> recommendProofFile, Long expertUserId) { | |||||
public Long expertRecommendProofSubmit(List<DictionaryFieldInfo> recommendedWay, List<FileBasicInfo> recommendProofFile, Long expertUserId) { | |||||
// 用户id | // 用户id | ||||
ExpertUserFullInfo expertUserFullInfo = iExpertUserFullInfoService.getByUserId(expertUserId); | ExpertUserFullInfo expertUserFullInfo = iExpertUserFullInfoService.getByUserId(expertUserId); | ||||
// 判断专家状态,是否可以进行证明材料提交 | // 判断专家状态,是否可以进行证明材料提交 | ||||
@@ -129,7 +138,8 @@ public class ExpertManage { | |||||
} | } | ||||
expertRecommendProofSaveCmd.setRecommendedWay(recommendedWayDictionaryDTOList); | expertRecommendProofSaveCmd.setRecommendedWay(recommendedWayDictionaryDTOList); | ||||
expertRecommendProofSaveCmd.setUserId(expertUserId); | expertRecommendProofSaveCmd.setUserId(expertUserId); | ||||
expertInfoService.expertRecommendProofSave(expertRecommendProofSaveCmd); | |||||
Long applyId = expertInfoService.expertRecommendProofSave(expertRecommendProofSaveCmd); | |||||
return applyId; | |||||
} | } | ||||
public ExpertFullInfoVO getExpertFullInfoDetail(Long expertUserId) { | public ExpertFullInfoVO getExpertFullInfoDetail(Long expertUserId) { | ||||
@@ -0,0 +1,20 @@ | |||||
package com.ningdatech.pmapi.expert.model.req; | |||||
import io.swagger.annotations.ApiModel; | |||||
import io.swagger.annotations.ApiModelProperty; | |||||
import lombok.Data; | |||||
import javax.validation.constraints.NotBlank; | |||||
/** | |||||
* @author liuxinxin | |||||
* @date 2022/8/29 下午2:54 | |||||
*/ | |||||
@Data | |||||
@ApiModel(description = "通过手机号获取浙政钉信息请求") | |||||
public class GetZzdInfoRequest { | |||||
@NotBlank | |||||
@ApiModelProperty("手机号") | |||||
private String phoneNo; | |||||
} |
@@ -0,0 +1,26 @@ | |||||
package com.ningdatech.pmapi.expert.model.vo; | |||||
import io.swagger.annotations.ApiModel; | |||||
import io.swagger.annotations.ApiModelProperty; | |||||
import lombok.Data; | |||||
/** | |||||
* @author liuxinxin | |||||
* @date 2022/8/29 下午3:21 | |||||
*/ | |||||
@Data | |||||
@ApiModel("通过浙政钉获取手机号数据展示VO") | |||||
public class ZzdInfoByMobileVO { | |||||
@ApiModelProperty("手机号") | |||||
private String phoneNo; | |||||
@ApiModelProperty("公司名") | |||||
private String companyName; | |||||
@ApiModelProperty("姓名") | |||||
private String name; | |||||
@ApiModelProperty("是否是浙政钉用户") | |||||
private Boolean isDingUser; | |||||
} |
@@ -19,7 +19,7 @@ public interface ExpertInfoService { | |||||
* | * | ||||
* @param expertRecommendProofSaveCmd | * @param expertRecommendProofSaveCmd | ||||
*/ | */ | ||||
void expertRecommendProofSave(ExpertRecommendProofSaveCmd expertRecommendProofSaveCmd); | |||||
Long expertRecommendProofSave(ExpertRecommendProofSaveCmd expertRecommendProofSaveCmd); | |||||
void expertIntentionApplyDeal(ExpertIntentionApplyDealCmd expertIntentionApplyDealCmd); | void expertIntentionApplyDeal(ExpertIntentionApplyDealCmd expertIntentionApplyDealCmd); | ||||
@@ -179,6 +179,7 @@ public class ExpertInfoServiceImpl implements ExpertInfoService { | |||||
expertUserFullInfo.setRecommendationProofFileIdList(JSONObject.toJSONString(expertUserInfoDTO.getRecommendationProofFileIdList())); | expertUserFullInfo.setRecommendationProofFileIdList(JSONObject.toJSONString(expertUserInfoDTO.getRecommendationProofFileIdList())); | ||||
} | } | ||||
expertUserFullInfo.setRemark(expertUserInfoDTO.getRemark()); | expertUserFullInfo.setRemark(expertUserInfoDTO.getRemark()); | ||||
expertUserFullInfo.setCompanyUniqCode(expertUserFullInfo.getCompanyUniqCode()); | |||||
return expertUserFullInfo; | return expertUserFullInfo; | ||||
} | } | ||||
@@ -231,7 +232,7 @@ public class ExpertInfoServiceImpl implements ExpertInfoService { | |||||
@Override | @Override | ||||
@Transactional(rollbackFor = Exception.class) | @Transactional(rollbackFor = Exception.class) | ||||
public void expertRecommendProofSave(ExpertRecommendProofSaveCmd cmd) { | |||||
public Long expertRecommendProofSave(ExpertRecommendProofSaveCmd cmd) { | |||||
// 保存专家证明材料 | // 保存专家证明材料 | ||||
Long userId = cmd.getUserId(); | Long userId = cmd.getUserId(); | ||||
ExpertUserFullInfo expertUserFullInfo = iExpertUserFullInfoService.getByUserId(userId); | ExpertUserFullInfo expertUserFullInfo = iExpertUserFullInfoService.getByUserId(userId); | ||||
@@ -263,6 +264,8 @@ public class ExpertInfoServiceImpl implements ExpertInfoService { | |||||
expertRegionApply.setUserId(userId); | expertRegionApply.setUserId(userId); | ||||
expertRegionApply.setDisplayEnable(BoolDisplayEnum.Y.name()); | expertRegionApply.setDisplayEnable(BoolDisplayEnum.Y.name()); | ||||
iExpertMetaApplyService.save(expertRegionApply); | iExpertMetaApplyService.save(expertRegionApply); | ||||
return expertRegionApply.getId(); | |||||
} | } | ||||
@Override | @Override | ||||
@@ -158,11 +158,11 @@ public class UserInfoManage { | |||||
* @param userRoleList | * @param userRoleList | ||||
*/ | */ | ||||
private List<String> getRoleCompliantEmployeeCodeList(List<UserRoleVO> userRoleList) { | private List<String> getRoleCompliantEmployeeCodeList(List<UserRoleVO> userRoleList) { | ||||
userRoleList = userRoleList.stream().filter(r -> Objects.nonNull(r.getId())).collect(Collectors.toList()); | |||||
if (CollUtil.isEmpty(userRoleList)) { | if (CollUtil.isEmpty(userRoleList)) { | ||||
return null; | return null; | ||||
} | } | ||||
List<Long> roleIdList = iUserRoleService.list() | |||||
.stream().map(UserRole::getRoleId).collect(Collectors.toList()); | |||||
List<Long> roleIdList = userRoleList.stream().map(UserRoleVO::getId).collect(Collectors.toList()); | |||||
List<Long> compliantUserIdList = iUserRoleService.list(Wrappers.lambdaQuery(UserRole.class) | List<Long> compliantUserIdList = iUserRoleService.list(Wrappers.lambdaQuery(UserRole.class) | ||||
.in(UserRole::getRoleId, roleIdList)).stream().map(UserRole::getUserId).distinct().collect(Collectors.toList()); | .in(UserRole::getRoleId, roleIdList)).stream().map(UserRole::getUserId).distinct().collect(Collectors.toList()); | ||||