@@ -384,7 +384,7 @@ public class ExpertUserInfoAssembler { | |||
} | |||
expertUserFullInfoDTO.setRetiredAt(expertUserFullInfo.getRetiredAt()); | |||
expertUserFullInfoDTO.setCompany(expertUserFullInfo.getCompany()); | |||
// expertUserFullInfoDTO.setCompanyUniqCode(expertUserFullInfo.getCompanyUniqCode()); | |||
expertUserFullInfoDTO.setCompanyUniqCode(expertUserFullInfo.getCompanyUniqCode()); | |||
expertUserFullInfoDTO.setLegalEntityCode(expertUserFullInfo.getLegalEntityCode()); | |||
expertUserFullInfoDTO.setAdministrativeDuties(expertUserFullInfo.getAdministrativeDuties()); | |||
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.req.AdminExpertBasicInfoModifyRequest; | |||
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.ExpertBasicInfoModifyResultVO; | |||
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.ApiOperation; | |||
import lombok.RequiredArgsConstructor; | |||
@@ -67,4 +69,10 @@ public class ExpertController { | |||
// ExpertUserInfoValidator.expertBasicInfoModifyRequestValidate(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 companyUniqCode; | |||
private String legalEntityCode; | |||
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.toolkit.Wrappers; | |||
import com.ningdatech.basic.exception.BizException; | |||
import com.ningdatech.basic.model.GenericResult; | |||
import com.ningdatech.basic.model.PageVo; | |||
import com.ningdatech.pmapi.common.enumeration.BoolDisplayEnum; | |||
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.ExpertTagQuery; | |||
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.vo.ExpertAdminExpertManageListVO; | |||
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.ExpertInfoService; | |||
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.model.bo.RegionContainsBO; | |||
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 org.apache.commons.collections4.CollectionUtils; | |||
import org.apache.commons.lang3.StringUtils; | |||
import org.springframework.stereotype.Component; | |||
@@ -60,6 +69,7 @@ public class ExpertAdminManage { | |||
private final ExpertMetaApplyManage expertMetaApplyManage; | |||
private final ExpertAdminManageService expertAdminManageService; | |||
private final ExpertAdminExpertManageAssembler expertAdminExpertManageAssembler; | |||
private final ZwddClient zwddClient; | |||
/** | |||
* 专家管理员使用 专家库列表查询 | |||
@@ -218,4 +228,37 @@ public class ExpertAdminManage { | |||
} | |||
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.ExpertFullInfoAllDTO; | |||
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.service.ExpertInfoService; | |||
import com.ningdatech.pmapi.expert.service.IExpertUserFullInfoService; | |||
@@ -53,6 +54,7 @@ public class ExpertManage { | |||
private final FileService fileService; | |||
private final ExpertUserInfoAssembler expertUserInfoAssembler; | |||
private final IUserInfoService iUserInfoService; | |||
private final ExpertMetaApplyManage expertMetaApplyManage; | |||
/** | |||
@@ -98,12 +100,19 @@ public class ExpertManage { | |||
List<DictionaryFieldInfo> recommendedWay = recommendInfo.getRecommendedWay(); | |||
// 推荐方式 | |||
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) | |||
public void expertRecommendProofSubmit(List<DictionaryFieldInfo> recommendedWay, List<FileBasicInfo> recommendProofFile, Long expertUserId) { | |||
public Long expertRecommendProofSubmit(List<DictionaryFieldInfo> recommendedWay, List<FileBasicInfo> recommendProofFile, Long expertUserId) { | |||
// 用户id | |||
ExpertUserFullInfo expertUserFullInfo = iExpertUserFullInfoService.getByUserId(expertUserId); | |||
// 判断专家状态,是否可以进行证明材料提交 | |||
@@ -129,7 +138,8 @@ public class ExpertManage { | |||
} | |||
expertRecommendProofSaveCmd.setRecommendedWay(recommendedWayDictionaryDTOList); | |||
expertRecommendProofSaveCmd.setUserId(expertUserId); | |||
expertInfoService.expertRecommendProofSave(expertRecommendProofSaveCmd); | |||
Long applyId = expertInfoService.expertRecommendProofSave(expertRecommendProofSaveCmd); | |||
return applyId; | |||
} | |||
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 | |||
*/ | |||
void expertRecommendProofSave(ExpertRecommendProofSaveCmd expertRecommendProofSaveCmd); | |||
Long expertRecommendProofSave(ExpertRecommendProofSaveCmd expertRecommendProofSaveCmd); | |||
void expertIntentionApplyDeal(ExpertIntentionApplyDealCmd expertIntentionApplyDealCmd); | |||
@@ -179,6 +179,7 @@ public class ExpertInfoServiceImpl implements ExpertInfoService { | |||
expertUserFullInfo.setRecommendationProofFileIdList(JSONObject.toJSONString(expertUserInfoDTO.getRecommendationProofFileIdList())); | |||
} | |||
expertUserFullInfo.setRemark(expertUserInfoDTO.getRemark()); | |||
expertUserFullInfo.setCompanyUniqCode(expertUserFullInfo.getCompanyUniqCode()); | |||
return expertUserFullInfo; | |||
} | |||
@@ -231,7 +232,7 @@ public class ExpertInfoServiceImpl implements ExpertInfoService { | |||
@Override | |||
@Transactional(rollbackFor = Exception.class) | |||
public void expertRecommendProofSave(ExpertRecommendProofSaveCmd cmd) { | |||
public Long expertRecommendProofSave(ExpertRecommendProofSaveCmd cmd) { | |||
// 保存专家证明材料 | |||
Long userId = cmd.getUserId(); | |||
ExpertUserFullInfo expertUserFullInfo = iExpertUserFullInfoService.getByUserId(userId); | |||
@@ -263,6 +264,8 @@ public class ExpertInfoServiceImpl implements ExpertInfoService { | |||
expertRegionApply.setUserId(userId); | |||
expertRegionApply.setDisplayEnable(BoolDisplayEnum.Y.name()); | |||
iExpertMetaApplyService.save(expertRegionApply); | |||
return expertRegionApply.getId(); | |||
} | |||
@Override | |||
@@ -158,11 +158,11 @@ public class UserInfoManage { | |||
* @param userRoleList | |||
*/ | |||
private List<String> getRoleCompliantEmployeeCodeList(List<UserRoleVO> userRoleList) { | |||
userRoleList = userRoleList.stream().filter(r -> Objects.nonNull(r.getId())).collect(Collectors.toList()); | |||
if (CollUtil.isEmpty(userRoleList)) { | |||
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) | |||
.in(UserRole::getRoleId, roleIdList)).stream().map(UserRole::getUserId).distinct().collect(Collectors.toList()); | |||