@@ -13,6 +13,7 @@ import com.ningdatech.pmapi.sys.mapper.RoleMapper; | |||||
import com.ningdatech.pmapi.sys.model.entity.Role; | import com.ningdatech.pmapi.sys.model.entity.Role; | ||||
import com.ningdatech.pmapi.sys.model.entity.UserRole; | import com.ningdatech.pmapi.sys.model.entity.UserRole; | ||||
import com.ningdatech.pmapi.sys.service.IUserRoleService; | import com.ningdatech.pmapi.sys.service.IUserRoleService; | ||||
import com.ningdatech.pmapi.user.constant.UserAvailableEnum; | |||||
import com.ningdatech.pmapi.user.entity.UserInfo; | import com.ningdatech.pmapi.user.entity.UserInfo; | ||||
import com.ningdatech.pmapi.user.entity.enumeration.RoleEnum; | import com.ningdatech.pmapi.user.entity.enumeration.RoleEnum; | ||||
import com.ningdatech.pmapi.user.security.auth.model.UserFullInfoDTO; | import com.ningdatech.pmapi.user.security.auth.model.UserFullInfoDTO; | ||||
@@ -118,6 +119,11 @@ public class UserInfoHelperImpl implements UserInfoHelper { | |||||
userFullInfo.setUsername(userInfo.getRealName()); | userFullInfo.setUsername(userInfo.getRealName()); | ||||
userFullInfo.setMobile(userInfo.getMobile()); | userFullInfo.setMobile(userInfo.getMobile()); | ||||
userFullInfo.setAccountId(userInfo.getAccountId()); | userFullInfo.setAccountId(userInfo.getAccountId()); | ||||
String available = userInfo.getAvailable(); | |||||
if (StringUtils.isNotBlank(available)) { | |||||
userFullInfo.setAvailable(UserAvailableEnum.valueOf(available)); | |||||
} | |||||
return userFullInfo; | return userFullInfo; | ||||
} | } | ||||
@@ -6,6 +6,7 @@ import com.ningdatech.pmapi.expert.manage.ExpertAdminManage; | |||||
import com.ningdatech.pmapi.expert.manage.ExpertManage; | 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.ExpertRegistrationRequest; | |||||
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.req.GetZzdInfoRequest; | ||||
import com.ningdatech.pmapi.expert.model.vo.ExpertAdminExpertManageListVO; | import com.ningdatech.pmapi.expert.model.vo.ExpertAdminExpertManageListVO; | ||||
@@ -37,11 +38,11 @@ public class ExpertController { | |||||
private final ExpertManage expertManage; | private final ExpertManage expertManage; | ||||
private final ExpertAdminManage expertAdminManage; | private final ExpertAdminManage expertAdminManage; | ||||
// @PostMapping("/basic-info-submit") | |||||
// @ApiOperation("专家管理员新增专家)") | |||||
// public void expertBasicInfoSubmit(@Valid @RequestBody ExpertUserBasicInfoSubmitRequest request) { | |||||
// expertManage.expertBasicInfoSubmit(request); | |||||
// } | |||||
@PostMapping("/registration") | |||||
@ApiOperation("社会专家报名") | |||||
public void expertRegistration(@Valid @RequestBody ExpertRegistrationRequest request) { | |||||
expertManage.expertRegistration(request); | |||||
} | |||||
@PostMapping("/basic-info-submit") | @PostMapping("/basic-info-submit") | ||||
@ApiOperation("专家管理员新增专家)") | @ApiOperation("专家管理员新增专家)") | ||||
@@ -17,13 +17,15 @@ import com.ningdatech.pmapi.expert.model.cmd.ExpertFullInfoSaveCmd; | |||||
import com.ningdatech.pmapi.expert.model.cmd.ExpertRecommendProofSaveCmd; | 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.ExpertRegistrationRequest; | |||||
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; | ||||
import com.ningdatech.pmapi.meta.constant.DictExpertInfoTypeEnum; | 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.sms.constant.VerificationCodeType; | |||||
import com.ningdatech.pmapi.sms.helper.VerifyCodeCheckHelper; | |||||
import com.ningdatech.pmapi.sys.model.entity.Role; | import com.ningdatech.pmapi.sys.model.entity.Role; | ||||
import com.ningdatech.pmapi.sys.model.entity.UserRole; | import com.ningdatech.pmapi.sys.model.entity.UserRole; | ||||
import com.ningdatech.pmapi.sys.service.IRoleService; | import com.ningdatech.pmapi.sys.service.IRoleService; | ||||
@@ -63,62 +65,20 @@ public class ExpertManage { | |||||
private final ExpertMetaApplyManage expertMetaApplyManage; | private final ExpertMetaApplyManage expertMetaApplyManage; | ||||
private final IUserRoleService iUserRoleService; | private final IUserRoleService iUserRoleService; | ||||
private final IRoleService iRoleService; | private final IRoleService iRoleService; | ||||
private final VerifyCodeCheckHelper verifyCodeCheckHelper; | |||||
/** | /** | ||||
* 填写基本信息,只有专家自己可用 | |||||
* 专家管理员新增专家 | |||||
* | * | ||||
* @param req / | * @param req / | ||||
*/ | */ | ||||
@Transactional(rollbackFor = Exception.class) | @Transactional(rollbackFor = Exception.class) | ||||
public void expertBasicInfoSubmit(ExpertUserBasicInfoSubmitRequest req) { | public void expertBasicInfoSubmit(ExpertUserBasicInfoSubmitRequest req) { | ||||
// 用户id | // 用户id | ||||
ExpertBasicInfo basicInfo = req.getBasicInfo(); | |||||
Long userId = generateOrGetUserId(basicInfo); | |||||
// 校验区域编码合法性 校验履职意向编码合法性 | |||||
ExpertRegionInfo expertRegionInfo = basicInfo.getExpertRegionInfo(); | |||||
expertManageHelper.expertRegionInfoCheck(expertRegionInfo); | |||||
List<ExpertRegionInfo> expertIntentionWorkRegions = basicInfo.getExpertIntentionWorkRegions(); | |||||
for (ExpertRegionInfo expertIntentionWorkRegion : expertIntentionWorkRegions) { | |||||
expertManageHelper.expertRegionInfoCheck(expertIntentionWorkRegion); | |||||
} | |||||
ExpertEduInfo eduInfo = req.getEduInfo(); | |||||
ExpertJobInfo jobInfo = req.getJobInfo(); | |||||
ExpertProfessionalInfo professionalInfo = req.getProfessionalInfo(); | |||||
// 校验标签字段 | |||||
expertManageHelper.tagFieldCheck(professionalInfo, basicInfo); | |||||
// 校验字典字段 | |||||
expertManageHelper.dictionaryFieldCheck(basicInfo, eduInfo, jobInfo); | |||||
// 判断专家提交状态,判断是否可以进行此操作 | |||||
ExpertUserFullInfo expertUserFullInfo = iExpertUserFullInfoService.getByUserId(userId); | |||||
boolean submitBasicInfoStatusEnable = Objects.isNull(expertUserFullInfo) | |||||
|| (ExpertAccountStatusEnum.APPLYING.getKey().equals(expertUserFullInfo.getExpertAccountStatus()) | |||||
&& !ExpertUserInfoStepEnum.EVIDENCE_HAS_BEEN_SUBMITTED.getKey().equals(expertUserFullInfo.getUserInfoStep())); | |||||
if (submitBasicInfoStatusEnable) { | |||||
// 新建 保存 | |||||
ExpertFullInfoSaveCmd expertFullInfoSaveCmd = ExpertInfoCmdAssembler | |||||
.buildExpertFullInfoSaveCmd(userId, basicInfo, eduInfo, jobInfo, professionalInfo); | |||||
expertInfoService.saveExpertInfo(expertFullInfoSaveCmd); | |||||
} | |||||
ExpertRecommendInfo recommendInfo = req.getRecommendInfo(); | |||||
// 推荐证明材料 | |||||
List<DictionaryFieldInfo> recommendedWay = recommendInfo.getRecommendedWay(); | |||||
// 推荐方式 | |||||
List<FileBasicInfo> recommendProofFile = recommendInfo.getRecommendationProofFile(); | |||||
Long applyId = expertRecommendProofSubmit(recommendedWay, recommendProofFile, userId); | |||||
// 批量通过专家管理员审核 | |||||
MetaApplyResultRequest applyResult = new MetaApplyResultRequest(); | |||||
applyResult.setApplyId(applyId); | |||||
applyResult.setAuditOpinion("同意"); | |||||
applyResult.setApplyResult(true); | |||||
expertMetaApplyManage.metaApplyResult(applyResult); | |||||
// 批量通过专家履职意向审核 | |||||
expertMetaApplyManage.autoPassExpertIntentionApply(userId); | |||||
Long userId = assemblerAndGenerateExpert(req); | |||||
// 批量通过专家入库审核/专家履职意向审核 | |||||
expertMetaApplyManage.autoPassExpertApply(userId); | |||||
// 增加用户专家角色 | // 增加用户专家角色 | ||||
Role expertRole = iRoleService.getOne(Wrappers.lambdaQuery(Role.class).eq(Role::getCode, RoleEnum.EXPERT.name())); | Role expertRole = iRoleService.getOne(Wrappers.lambdaQuery(Role.class).eq(Role::getCode, RoleEnum.EXPERT.name())); | ||||
@@ -205,4 +165,63 @@ public class ExpertManage { | |||||
} | } | ||||
return userInfo.getId(); | return userInfo.getId(); | ||||
} | } | ||||
/** | |||||
* 社会专家报名 需要校验手机号 | |||||
* | |||||
* @param request | |||||
*/ | |||||
@Transactional(rollbackFor = Exception.class) | |||||
public void expertRegistration(ExpertRegistrationRequest request) { | |||||
String verificationCode = request.getVerificationCode(); | |||||
String phoneNo = request.getBasicInfo().getPhoneNo(); | |||||
//校验 专家验证码 | |||||
if (false) { | |||||
verifyCodeCheckHelper.verification(VerificationCodeType.EXPERT_REGISTER, phoneNo, verificationCode); | |||||
} | |||||
assemblerAndGenerateExpert(request); | |||||
} | |||||
@Transactional(rollbackFor = Exception.class) | |||||
public Long assemblerAndGenerateExpert(ExpertUserBasicInfoSubmitRequest req) { | |||||
ExpertBasicInfo basicInfo = req.getBasicInfo(); | |||||
Long userId = generateOrGetUserId(basicInfo); | |||||
// 校验区域编码合法性 校验履职意向编码合法性 | |||||
ExpertRegionInfo expertRegionInfo = basicInfo.getExpertRegionInfo(); | |||||
expertManageHelper.expertRegionInfoCheck(expertRegionInfo); | |||||
List<ExpertRegionInfo> expertIntentionWorkRegions = basicInfo.getExpertIntentionWorkRegions(); | |||||
for (ExpertRegionInfo expertIntentionWorkRegion : expertIntentionWorkRegions) { | |||||
expertManageHelper.expertRegionInfoCheck(expertIntentionWorkRegion); | |||||
} | |||||
ExpertEduInfo eduInfo = req.getEduInfo(); | |||||
ExpertJobInfo jobInfo = req.getJobInfo(); | |||||
ExpertProfessionalInfo professionalInfo = req.getProfessionalInfo(); | |||||
// 校验标签字段 | |||||
expertManageHelper.tagFieldCheck(professionalInfo, basicInfo); | |||||
// 校验字典字段 | |||||
expertManageHelper.dictionaryFieldCheck(basicInfo, eduInfo, jobInfo); | |||||
// 判断专家提交状态,判断是否可以进行此操作 | |||||
ExpertUserFullInfo expertUserFullInfo = iExpertUserFullInfoService.getByUserId(userId); | |||||
boolean submitBasicInfoStatusEnable = Objects.isNull(expertUserFullInfo) | |||||
|| (ExpertAccountStatusEnum.APPLYING.getKey().equals(expertUserFullInfo.getExpertAccountStatus()) | |||||
&& !ExpertUserInfoStepEnum.EVIDENCE_HAS_BEEN_SUBMITTED.getKey().equals(expertUserFullInfo.getUserInfoStep())); | |||||
if (submitBasicInfoStatusEnable) { | |||||
// 新建 保存 | |||||
ExpertFullInfoSaveCmd expertFullInfoSaveCmd = ExpertInfoCmdAssembler | |||||
.buildExpertFullInfoSaveCmd(userId, basicInfo, eduInfo, jobInfo, professionalInfo); | |||||
expertInfoService.saveExpertInfo(expertFullInfoSaveCmd); | |||||
} | |||||
ExpertRecommendInfo recommendInfo = req.getRecommendInfo(); | |||||
// 推荐证明材料 | |||||
List<DictionaryFieldInfo> recommendedWay = recommendInfo.getRecommendedWay(); | |||||
// 推荐方式 | |||||
List<FileBasicInfo> recommendProofFile = recommendInfo.getRecommendationProofFile(); | |||||
expertRecommendProofSubmit(recommendedWay, recommendProofFile, userId); | |||||
return userId; | |||||
} | |||||
} | } |
@@ -591,11 +591,16 @@ public class ExpertMetaApplyManage { | |||||
return expertIntentionApplyDealCmd; | return expertIntentionApplyDealCmd; | ||||
} | } | ||||
public void autoPassExpertIntentionApply(Long expertUserId) { | |||||
/** | |||||
* 专家管理员 新增专家使用使用 | |||||
* @param expertUserId | |||||
*/ | |||||
@Transactional(rollbackFor = Exception.class) | |||||
public void autoPassExpertApply(Long expertUserId) { | |||||
List<ExpertMetaApply> expertIntentionJoinApplyList = iMetaApplyService.list(Wrappers | List<ExpertMetaApply> expertIntentionJoinApplyList = iMetaApplyService.list(Wrappers | ||||
.lambdaQuery(ExpertMetaApply.class) | .lambdaQuery(ExpertMetaApply.class) | ||||
.eq(ExpertMetaApply::getUserId, expertUserId) | .eq(ExpertMetaApply::getUserId, expertUserId) | ||||
.eq(ExpertMetaApply::getApplyType, ExpertApplyTypeEnum.EXPERT_INTENTION_JOIN.getKey()) | |||||
.in(ExpertMetaApply::getApplyType, ExpertApplyTypeEnum.EXPERT_INTENTION_JOIN.getKey(), ExpertApplyTypeEnum.EXPERT_STORAGE.getKey()) | |||||
.eq(ExpertMetaApply::getApplyStatus, ExpertApplyStatusEnum.PENDING_REVIEW.getKey())); | .eq(ExpertMetaApply::getApplyStatus, ExpertApplyStatusEnum.PENDING_REVIEW.getKey())); | ||||
for (ExpertMetaApply expertMetaApply : expertIntentionJoinApplyList) { | for (ExpertMetaApply expertMetaApply : expertIntentionJoinApplyList) { | ||||
@@ -0,0 +1,21 @@ | |||||
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/7/25 下午2:21 | |||||
*/ | |||||
@Data | |||||
@ApiModel(value = "ExpertUserBasicInfoSubmitRequest", description = "社会专家报名接口") | |||||
public class ExpertRegistrationRequest extends ExpertUserBasicInfoSubmitRequest { | |||||
@NotBlank(message = "手机验证码不能为空") | |||||
@ApiModelProperty("手机验证码") | |||||
private String verificationCode; | |||||
} |
@@ -17,6 +17,7 @@ import com.ningdatech.pmapi.projectlib.model.dto.ProjectDTO; | |||||
import com.ningdatech.pmapi.projectlib.model.entity.Project; | import com.ningdatech.pmapi.projectlib.model.entity.Project; | ||||
import com.ningdatech.pmapi.projectlib.service.IProjectService; | import com.ningdatech.pmapi.projectlib.service.IProjectService; | ||||
import com.ningdatech.pmapi.user.security.auth.model.UserFullInfoDTO; | import com.ningdatech.pmapi.user.security.auth.model.UserFullInfoDTO; | ||||
import com.ningdatech.pmapi.user.security.auth.model.UserInfoDetails; | |||||
import com.ningdatech.pmapi.user.util.LoginUserUtil; | import com.ningdatech.pmapi.user.util.LoginUserUtil; | ||||
import com.wflow.bean.entity.WflowModels; | import com.wflow.bean.entity.WflowModels; | ||||
import com.wflow.bean.entity.WflowOrgModels; | import com.wflow.bean.entity.WflowOrgModels; | ||||
@@ -216,15 +217,13 @@ public class DefaultDeclaredProjectManage { | |||||
} | } | ||||
//根据提交者的单位 | //根据提交者的单位 | ||||
public DeclaredProjectStatisticsPO declaredProjectOrgStatistics(Integer year){ | |||||
UserFullInfoDTO user = userInfoHelper.getUserFullInfo(LoginUserUtil.getUserId()); | |||||
public DeclaredProjectStatisticsPO declaredProjectOrgStatistics(Integer year, UserFullInfoDTO user){ | |||||
//查此人建设单位的项目 | //查此人建设单位的项目 | ||||
return statisticsService.getOrgStatistics(user.getEmpPosUnitCode(),year); | return statisticsService.getOrgStatistics(user.getEmpPosUnitCode(),year); | ||||
} | } | ||||
//根据提交者的区域 他是区管或者超管 | //根据提交者的区域 他是区管或者超管 | ||||
public DeclaredProjectStatisticsPO declaredProjectRegionStatistics(Integer year){ | |||||
UserFullInfoDTO user = userInfoHelper.getUserFullInfo(LoginUserUtil.getUserId()); | |||||
public DeclaredProjectStatisticsPO declaredProjectRegionStatistics(Integer year, UserFullInfoDTO user){ | |||||
//查此人建设单位的项目 | //查此人建设单位的项目 | ||||
return statisticsService.getRegionStatistics(user.getRegionCode(),year); | return statisticsService.getRegionStatistics(user.getRegionCode(),year); | ||||
} | } | ||||
@@ -1,10 +1,13 @@ | |||||
package com.ningdatech.pmapi.projectlib.controller; | package com.ningdatech.pmapi.projectlib.controller; | ||||
import com.ningdatech.basic.model.PageVo; | import com.ningdatech.basic.model.PageVo; | ||||
import com.ningdatech.pmapi.common.helper.UserInfoHelper; | |||||
import com.ningdatech.pmapi.projectlib.manage.ProjectLibManage; | import com.ningdatech.pmapi.projectlib.manage.ProjectLibManage; | ||||
import com.ningdatech.pmapi.projectlib.model.req.ProjectListReq; | import com.ningdatech.pmapi.projectlib.model.req.ProjectListReq; | ||||
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.user.security.auth.model.UserFullInfoDTO; | |||||
import com.ningdatech.pmapi.user.util.LoginUserUtil; | |||||
import com.wflow.workflow.bean.vo.ProcessDetailVO; | import com.wflow.workflow.bean.vo.ProcessDetailVO; | ||||
import io.swagger.annotations.Api; | import io.swagger.annotations.Api; | ||||
import io.swagger.annotations.ApiOperation; | import io.swagger.annotations.ApiOperation; | ||||
@@ -31,10 +34,13 @@ public class ProjectLibController { | |||||
private final ProjectLibManage projectLibManage; | private final ProjectLibManage projectLibManage; | ||||
private final UserInfoHelper userInfoHelper; | |||||
@GetMapping("/list") | @GetMapping("/list") | ||||
@ApiOperation("项目库列表") | @ApiOperation("项目库列表") | ||||
public PageVo<ProjectLibListItemVO> projectLibList(ProjectListReq req) { | public PageVo<ProjectLibListItemVO> projectLibList(ProjectListReq req) { | ||||
return projectLibManage.projectLibListWithPermission(req); | |||||
UserFullInfoDTO user = userInfoHelper.getUserFullInfo(LoginUserUtil.getUserId()); | |||||
return projectLibManage.projectLibListWithPermission(req,user); | |||||
} | } | ||||
@GetMapping("/{id}") | @GetMapping("/{id}") | ||||
@@ -108,9 +108,9 @@ public class ProjectLibManage { | |||||
return PageVo.of(records, total); | return PageVo.of(records, total); | ||||
} | } | ||||
public PageVo<ProjectLibListItemVO> projectLibListWithPermission(ProjectListReq req) { | |||||
public PageVo<ProjectLibListItemVO> projectLibListWithPermission(ProjectListReq req,UserFullInfoDTO user) { | |||||
LambdaQueryWrapper<Project> query = ProjectHelper.projectQuery(req); | LambdaQueryWrapper<Project> query = ProjectHelper.projectQuery(req); | ||||
UserFullInfoDTO user = buildProjectLibPermission(query); | |||||
user = buildProjectLibPermission(query,user); | |||||
//项目查最新 | //项目查最新 | ||||
query.eq(Project::getNewest,Boolean.TRUE); | query.eq(Project::getNewest,Boolean.TRUE); | ||||
Page<Project> page = projectService.page(req.page(), query); | Page<Project> page = projectService.page(req.page(), query); | ||||
@@ -118,6 +118,7 @@ public class ProjectLibManage { | |||||
if ((total = page.getTotal()) == 0) { | if ((total = page.getTotal()) == 0) { | ||||
return PageVo.empty(); | return PageVo.empty(); | ||||
} | } | ||||
UserFullInfoDTO finalUser = user; | |||||
List<ProjectLibListItemVO> records = CollUtils.convert(page.getRecords(), w -> { | List<ProjectLibListItemVO> records = CollUtils.convert(page.getRecords(), w -> { | ||||
ProjectLibListItemVO item = new ProjectLibListItemVO(); | ProjectLibListItemVO item = new ProjectLibListItemVO(); | ||||
item.setId(w.getId()); | item.setId(w.getId()); | ||||
@@ -133,10 +134,10 @@ public class ProjectLibManage { | |||||
item.setProcessStatus(w.getProcessStatus()); | item.setProcessStatus(w.getProcessStatus()); | ||||
item.setInstCode(w.getInstCode()); | item.setInstCode(w.getInstCode()); | ||||
item.setIsHigherSuperOrg(w.getIsHigherSuperOrg()); | item.setIsHigherSuperOrg(w.getIsHigherSuperOrg()); | ||||
if (user.getIsOrgAdmin() && | |||||
if (finalUser.getIsOrgAdmin() && | |||||
ProjectStatusEnum.PENDING_PREQUALIFICATION.getCode().equals(item.getStatus()) | ProjectStatusEnum.PENDING_PREQUALIFICATION.getCode().equals(item.getStatus()) | ||||
&& StringUtils.isNotBlank(w.getSuperOrgCode()) && StringUtils.isNotBlank(user.getEmpPosUnitCode()) | |||||
&& w.getSuperOrgCode().equals(user.getEmpPosUnitCode())) { | |||||
&& StringUtils.isNotBlank(w.getSuperOrgCode()) && StringUtils.isNotBlank(finalUser.getEmpPosUnitCode()) | |||||
&& w.getSuperOrgCode().equals(finalUser.getEmpPosUnitCode())) { | |||||
item.setCanPreDeclared(Boolean.TRUE); | item.setCanPreDeclared(Boolean.TRUE); | ||||
} | } | ||||
return item; | return item; | ||||
@@ -522,8 +523,7 @@ public class ProjectLibManage { | |||||
* | * | ||||
* @param query | * @param query | ||||
*/ | */ | ||||
public UserFullInfoDTO buildProjectLibPermission(LambdaQueryWrapper<Project> query) { | |||||
UserFullInfoDTO user = userInfoHelper.getUserFullInfo(LoginUserUtil.getUserId()); | |||||
public UserFullInfoDTO buildProjectLibPermission(LambdaQueryWrapper<Project> query,UserFullInfoDTO user) { | |||||
Optional<DataScopeDTO> currentUserDataScope = DataScopeUtil.getCurrentUserDataScope(user); | Optional<DataScopeDTO> currentUserDataScope = DataScopeUtil.getCurrentUserDataScope(user); | ||||
if (!currentUserDataScope.isPresent()) { | if (!currentUserDataScope.isPresent()) { | ||||
log.warn("没有取到权限信息 当前查询 没有权限条件"); | log.warn("没有取到权限信息 当前查询 没有权限条件"); | ||||
@@ -20,9 +20,14 @@ import java.util.stream.Stream; | |||||
public enum VerificationCodeType { | public enum VerificationCodeType { | ||||
/** | /** | ||||
* 用户注册 | |||||
* 用户登陆 | |||||
*/ | */ | ||||
LOGIN("用户登录", 1, 5, 10); | |||||
LOGIN("用户登录", 1, 5, 10), | |||||
/** | |||||
* 社会专家注册 | |||||
*/ | |||||
EXPERT_REGISTER("社会专家注册", 1, 5, 10); | |||||
@ApiModelProperty(value = "描述") | @ApiModelProperty(value = "描述") | ||||
private String desc; | private String desc; | ||||
@@ -13,7 +13,12 @@ public interface VoiceSmsTemplateConst { | |||||
/** | /** | ||||
* 短信登陆验证码 | * 短信登陆验证码 | ||||
*/ | */ | ||||
String SMS_LOGIN_TEMPLATE = "验证码:%s(有效期为%s分钟),请勿泄露给他人,如非本人操作,请忽略此信息。"; | |||||
String SMS_COMMON_TEMPLATE = "验证码:%s(有效期为%s分钟),请勿泄露给他人,如非本人操作,请忽略此信息。"; | |||||
/** | |||||
* 社会专家报名 | |||||
*/ | |||||
String EXPERT_REGISTER = "专家报名验证码:%s(有效期为%s分钟),请勿泄露给他人,如非本人操作,请忽略此信息。"; | |||||
/** | /** | ||||
* 专家电话通知语音模版 | * 专家电话通知语音模版 | ||||
@@ -66,16 +66,26 @@ public class SmsManage { | |||||
// 创建短信内容 | // 创建短信内容 | ||||
SendSmsCmd sendSmsCmd = new SendSmsCmd(); | SendSmsCmd sendSmsCmd = new SendSmsCmd(); | ||||
switch (verificationCodeTypeEnum) { | switch (verificationCodeTypeEnum) { | ||||
case LOGIN: | |||||
case LOGIN: { | |||||
SendSmsCmd.SendSmsContext sendSmsContext = new SendSmsCmd.SendSmsContext(); | SendSmsCmd.SendSmsContext sendSmsContext = new SendSmsCmd.SendSmsContext(); | ||||
sendSmsContext.setReceiveNumber(request.getMobile()); | sendSmsContext.setReceiveNumber(request.getMobile()); | ||||
sendSmsContext.setContent(String.format(VoiceSmsTemplateConst.SMS_LOGIN_TEMPLATE, code, verificationCodeTypeEnum.getExpireTime())); | |||||
sendSmsContext.setContent(String.format(VoiceSmsTemplateConst.SMS_COMMON_TEMPLATE, code, verificationCodeTypeEnum.getExpireTime())); | |||||
sendSmsCmd.setContextList(Collections.singletonList(sendSmsContext)); | sendSmsCmd.setContextList(Collections.singletonList(sendSmsContext)); | ||||
sendSmsCmd.setSmsSignEnum(YxtSmsSignEnum.ZJS_ELECTRONIC_EXPERT_LIB); | sendSmsCmd.setSmsSignEnum(YxtSmsSignEnum.ZJS_ELECTRONIC_EXPERT_LIB); | ||||
break; | |||||
} | |||||
break; | |||||
case EXPERT_REGISTER: { | |||||
SendSmsCmd.SendSmsContext sendSmsContext = new SendSmsCmd.SendSmsContext(); | |||||
sendSmsContext.setReceiveNumber(request.getMobile()); | |||||
sendSmsContext.setContent(String.format(VoiceSmsTemplateConst.EXPERT_REGISTER, code, verificationCodeTypeEnum.getExpireTime())); | |||||
sendSmsCmd.setContextList(Collections.singletonList(sendSmsContext)); | |||||
sendSmsCmd.setSmsSignEnum(YxtSmsSignEnum.ZJS_ELECTRONIC_EXPERT_LIB); | |||||
} | |||||
break; | |||||
default: | default: | ||||
throw new IllegalArgumentException("非法的短信发送类型"); | throw new IllegalArgumentException("非法的短信发送类型"); | ||||
} | } | ||||
// 发送 短信 | // 发送 短信 | ||||
yxtClient.submitSmsTask(sendSmsCmd); | yxtClient.submitSmsTask(sendSmsCmd); | ||||
log.info("send verificationCode mobile = {},code = {}", request.getMobile(), code); | log.info("send verificationCode mobile = {},code = {}", request.getMobile(), code); | ||||
@@ -26,6 +26,7 @@ public class WorkNoticeFlowMapUtil { | |||||
* 扫描的间隔越来越长 秒数 | * 扫描的间隔越来越长 秒数 | ||||
*/ | */ | ||||
public WorkNoticeFlowMapUtil(){ | public WorkNoticeFlowMapUtil(){ | ||||
intervalTimeMap.put(0,60); | |||||
intervalTimeMap.put(1,60 * 2); | intervalTimeMap.put(1,60 * 2); | ||||
intervalTimeMap.put(2,60 * 6); | intervalTimeMap.put(2,60 * 6); | ||||
intervalTimeMap.put(3,60 * 15); | intervalTimeMap.put(3,60 * 15); | ||||
@@ -122,11 +122,7 @@ public class TodoCenterManage { | |||||
private final RuntimeService runtimeService; | private final RuntimeService runtimeService; | ||||
private final IProjectService projectService; | private final IProjectService projectService; | ||||
private final ProjectLibManage projectLibManage; | private final ProjectLibManage projectLibManage; | ||||
private final StateMachineUtils stateMachineUtils; | |||||
private final IDingEmployeeInfoService dingEmployeeInfoService; | |||||
private final IDingOrganizationService dingOrganizationService; | |||||
private final ProcessInstanceService processInstanceService; | private final ProcessInstanceService processInstanceService; | ||||
private final INdWorkNoticeStagingService workNoticeStagingService; | |||||
private final DefaultDeclaredProjectManage defaultDeclaredProjectManage; | private final DefaultDeclaredProjectManage defaultDeclaredProjectManage; | ||||
private final IProjectApplicationService projectApplicationService; | private final IProjectApplicationService projectApplicationService; | ||||
private final UserInfoHelper userInfoHelper; | private final UserInfoHelper userInfoHelper; | ||||
@@ -152,12 +148,15 @@ public class TodoCenterManage { | |||||
* @since 2023/02/18 | * @since 2023/02/18 | ||||
*/ | */ | ||||
public PageVo<ResToBeProcessedVO> todoProjectList(ToBeProcessedReq param) { | public PageVo<ResToBeProcessedVO> todoProjectList(ToBeProcessedReq param) { | ||||
// 获取登录用户ID | |||||
Long userId = LoginUserUtil.getUserId(); | |||||
// 获取登录用户全量信息 | |||||
UserFullInfoDTO userFullInfo = userInfoHelper.getUserFullInfo(userId); | |||||
// 获取员工浙政钉code | |||||
String employeeCode = userFullInfo.getEmployeeCode(); | |||||
String employeeCode = param.getEmployeeCode(); | |||||
if(StringUtils.isBlank(employeeCode)){ | |||||
// 获取登录用户ID | |||||
Long userId = LoginUserUtil.getUserId(); | |||||
// 获取登录用户全量信息 | |||||
UserFullInfoDTO userFullInfo = userInfoHelper.getUserFullInfo(userId); | |||||
// 获取员工浙政钉code | |||||
employeeCode = userFullInfo.getEmployeeCode(); | |||||
} | |||||
// 查出项目库项目 | // 查出项目库项目 | ||||
ProjectListReq projectListReq = new ProjectListReq(); | ProjectListReq projectListReq = new ProjectListReq(); | ||||
@@ -184,7 +183,6 @@ public class TodoCenterManage { | |||||
Integer pageNumber = param.getPageNumber(); | Integer pageNumber = param.getPageNumber(); | ||||
Integer pageSize = param.getPageSize(); | Integer pageSize = param.getPageSize(); | ||||
req.setProcessDefId(param.getProcessDefId()); | req.setProcessDefId(param.getProcessDefId()); | ||||
req.setUserId(String.valueOf(userId)); | |||||
req.setEmployeeCode(employeeCode); | req.setEmployeeCode(employeeCode); | ||||
//有待办节点的(不包含退回) | //有待办节点的(不包含退回) | ||||
List<ProcessTaskVo> todoList = processTaskService.getUserTodoList(req); | List<ProcessTaskVo> todoList = processTaskService.getUserTodoList(req); | ||||
@@ -1136,13 +1134,7 @@ public class TodoCenterManage { | |||||
} | } | ||||
//获取当前登录人的 待办中心统计数据 | //获取当前登录人的 待办中心统计数据 | ||||
public TodoCenterStatisticsVO todoCenterStatistics(){ | |||||
Long userId = LoginUserUtil.getUserId(); | |||||
// 获取登录用户全量信息 | |||||
UserFullInfoDTO userFullInfo = userInfoHelper.getUserFullInfo(userId); | |||||
// 获取登录用户浙政钉code | |||||
String employeeCode = userFullInfo.getEmployeeCode(); | |||||
public TodoCenterStatisticsVO todoCenterStatistics(String employeeCode){ | |||||
//为了查询效率 还是自己去写统计接口 | //为了查询效率 还是自己去写统计接口 | ||||
TodoCenterStatisticsPO statistics = statisticsService.getStatistics(employeeCode); | TodoCenterStatisticsPO statistics = statisticsService.getStatistics(employeeCode); | ||||
TodoCenterStatisticsVO statisticsVO = BeanUtil.copyProperties(statistics,TodoCenterStatisticsVO.class); | TodoCenterStatisticsVO statisticsVO = BeanUtil.copyProperties(statistics,TodoCenterStatisticsVO.class); | ||||
@@ -45,4 +45,7 @@ public class ToBeProcessedReq extends PagePo implements Serializable { | |||||
@ApiModelProperty("流程配置ID") | @ApiModelProperty("流程配置ID") | ||||
private String processDefId; | private String processDefId; | ||||
@ApiModelProperty("登录人员工号") | |||||
private String employeeCode; | |||||
} | } |
@@ -3,7 +3,10 @@ package com.ningdatech.pmapi.todocenter.service.impl; | |||||
import com.ningdatech.pmapi.todocenter.mapper.StatisticsMapper; | import com.ningdatech.pmapi.todocenter.mapper.StatisticsMapper; | ||||
import com.ningdatech.pmapi.todocenter.model.po.TodoCenterStatisticsPO; | import com.ningdatech.pmapi.todocenter.model.po.TodoCenterStatisticsPO; | ||||
import com.ningdatech.pmapi.todocenter.service.StatisticsService; | import com.ningdatech.pmapi.todocenter.service.StatisticsService; | ||||
import com.wflow.workflow.bean.dto.TodoCenterListReqDTO; | |||||
import com.wflow.workflow.service.ProcessTaskService; | |||||
import lombok.AllArgsConstructor; | import lombok.AllArgsConstructor; | ||||
import org.flowable.engine.TaskService; | |||||
import org.springframework.stereotype.Service; | import org.springframework.stereotype.Service; | ||||
import java.util.Objects; | import java.util.Objects; | ||||
@@ -20,18 +23,22 @@ public class StatisticsServiceImpl implements StatisticsService { | |||||
private final StatisticsMapper mapper; | private final StatisticsMapper mapper; | ||||
private final ProcessTaskService processTaskService; | |||||
private final TaskService taskService; | |||||
@Override | @Override | ||||
public TodoCenterStatisticsPO getStatistics(String employeeCode) { | public TodoCenterStatisticsPO getStatistics(String employeeCode) { | ||||
TodoCenterStatisticsPO res = new TodoCenterStatisticsPO(); | TodoCenterStatisticsPO res = new TodoCenterStatisticsPO(); | ||||
TodoCenterStatisticsPO todo = mapper.getTodoOrIdo(employeeCode); | |||||
if(Objects.nonNull(todo)){ | |||||
res.setTodoNum(todo.getTodoNum()); | |||||
} | |||||
TodoCenterStatisticsPO ido = mapper.getIdo(employeeCode); | |||||
if(Objects.nonNull(ido)){ | |||||
res.setIdoNum(ido.getIdoNum()); | |||||
} | |||||
TodoCenterListReqDTO req = new TodoCenterListReqDTO(); | |||||
req.setEmployeeCode(employeeCode); | |||||
Integer todoCount = processTaskService.getTodoCount(req); | |||||
res.setTodoNum(todoCount); | |||||
Integer idoCount = processTaskService.getUserIdoCount(req); | |||||
res.setIdoNum(idoCount); | |||||
TodoCenterStatisticsPO submit = mapper.mysubmitNum(employeeCode); | TodoCenterStatisticsPO submit = mapper.mysubmitNum(employeeCode); | ||||
if(Objects.nonNull(submit)){ | if(Objects.nonNull(submit)){ | ||||
res.setMysubmitNum(submit.getMysubmitNum()); | res.setMysubmitNum(submit.getMysubmitNum()); | ||||
@@ -2,8 +2,10 @@ package com.ningdatech.pmapi.user.security.auth.agent; | |||||
import com.ningdatech.pmapi.common.helper.UserInfoHelper; | import com.ningdatech.pmapi.common.helper.UserInfoHelper; | ||||
import com.ningdatech.pmapi.user.constant.UserAvailableEnum; | |||||
import com.ningdatech.pmapi.user.security.auth.model.UserFullInfoDTO; | import com.ningdatech.pmapi.user.security.auth.model.UserFullInfoDTO; | ||||
import com.ningdatech.pmapi.user.security.auth.model.UserInfoDetails; | import com.ningdatech.pmapi.user.security.auth.model.UserInfoDetails; | ||||
import com.ningdatech.pmapi.user.security.auth.validate.CommonLoginException; | |||||
import lombok.RequiredArgsConstructor; | import lombok.RequiredArgsConstructor; | ||||
import org.springframework.security.core.userdetails.UserDetailsService; | import org.springframework.security.core.userdetails.UserDetailsService; | ||||
import org.springframework.security.core.userdetails.UsernameNotFoundException; | import org.springframework.security.core.userdetails.UsernameNotFoundException; | ||||
@@ -32,6 +34,10 @@ public class AgentLoginUserDetailService implements UserDetailsService { | |||||
if (Objects.isNull(userFullInfoDTO)) { | if (Objects.isNull(userFullInfoDTO)) { | ||||
throw new UsernameNotFoundException(String.format("%s user not exist", username)); | throw new UsernameNotFoundException(String.format("%s user not exist", username)); | ||||
} | } | ||||
if (UserAvailableEnum.DISABLE.equals(userFullInfoDTO.getAvailable())) { | |||||
throw new CommonLoginException("该账号已被禁用"); | |||||
} | |||||
UserInfoDetails userInfoDetails = new UserInfoDetails(); | UserInfoDetails userInfoDetails = new UserInfoDetails(); | ||||
userInfoDetails.setUserId(userFullInfoDTO.getUserId()); | userInfoDetails.setUserId(userFullInfoDTO.getUserId()); | ||||
userInfoDetails.setUsername(userFullInfoDTO.getUsername()); | userInfoDetails.setUsername(userFullInfoDTO.getUsername()); | ||||
@@ -1,9 +1,11 @@ | |||||
package com.ningdatech.pmapi.user.security.auth.common; | package com.ningdatech.pmapi.user.security.auth.common; | ||||
import com.ningdatech.pmapi.user.constant.UserAvailableEnum; | |||||
import com.ningdatech.pmapi.user.manage.UserInfoManage; | import com.ningdatech.pmapi.user.manage.UserInfoManage; | ||||
import com.ningdatech.pmapi.user.security.auth.model.UserFullInfoDTO; | import com.ningdatech.pmapi.user.security.auth.model.UserFullInfoDTO; | ||||
import com.ningdatech.pmapi.user.security.auth.model.UserInfoDetails; | import com.ningdatech.pmapi.user.security.auth.model.UserInfoDetails; | ||||
import com.ningdatech.pmapi.user.security.auth.validate.CommonLoginException; | |||||
import lombok.RequiredArgsConstructor; | import lombok.RequiredArgsConstructor; | ||||
import org.springframework.security.core.userdetails.UserDetailsService; | import org.springframework.security.core.userdetails.UserDetailsService; | ||||
import org.springframework.security.core.userdetails.UsernameNotFoundException; | import org.springframework.security.core.userdetails.UsernameNotFoundException; | ||||
@@ -30,6 +32,9 @@ public class CommonLoginUserDetailService implements UserDetailsService { | |||||
if (Objects.isNull(userFullInfoDTO)) { | if (Objects.isNull(userFullInfoDTO)) { | ||||
throw new UsernameNotFoundException(String.format("%s user not exist", username)); | throw new UsernameNotFoundException(String.format("%s user not exist", username)); | ||||
} | } | ||||
if (UserAvailableEnum.DISABLE.equals(userFullInfoDTO.getAvailable())) { | |||||
throw new CommonLoginException("该账号已被禁用"); | |||||
} | |||||
UserInfoDetails userInfoDetails = new UserInfoDetails(); | UserInfoDetails userInfoDetails = new UserInfoDetails(); | ||||
userInfoDetails.setUserId(userFullInfoDTO.getUserId()); | userInfoDetails.setUserId(userFullInfoDTO.getUserId()); | ||||
userInfoDetails.setUsername(userFullInfoDTO.getUsername()); | userInfoDetails.setUsername(userFullInfoDTO.getUsername()); | ||||
@@ -2,6 +2,7 @@ package com.ningdatech.pmapi.user.security.auth.credential; | |||||
import com.ningdatech.pmapi.user.constant.LoginTypeEnum; | import com.ningdatech.pmapi.user.constant.LoginTypeEnum; | ||||
import com.ningdatech.pmapi.user.constant.UserAvailableEnum; | |||||
import com.ningdatech.pmapi.user.convert.UserInfoConvertor; | import com.ningdatech.pmapi.user.convert.UserInfoConvertor; | ||||
import com.ningdatech.pmapi.user.manage.UserInfoManage; | import com.ningdatech.pmapi.user.manage.UserInfoManage; | ||||
import com.ningdatech.pmapi.user.security.auth.constants.UserDeatilsServiceConstant; | import com.ningdatech.pmapi.user.security.auth.constants.UserDeatilsServiceConstant; | ||||
@@ -60,6 +61,10 @@ public class CredentialLoginUserDetailService implements UserDetailsService { | |||||
throw new UsernameNotFoundException(String.format("%s user not exist", username)); | throw new UsernameNotFoundException(String.format("%s user not exist", username)); | ||||
} | } | ||||
} | } | ||||
if (UserAvailableEnum.DISABLE.equals(userFullInfo.getAvailable())) { | |||||
throw new CommonLoginException("该账号已被禁用"); | |||||
} | |||||
return UserInfoConvertor.toUserInfoDetails(userFullInfo); | return UserInfoConvertor.toUserInfoDetails(userFullInfo); | ||||
} | } | ||||
} | } |
@@ -2,6 +2,7 @@ package com.ningdatech.pmapi.user.security.auth.model; | |||||
import cn.hutool.core.collection.CollUtil; | import cn.hutool.core.collection.CollUtil; | ||||
import com.ningdatech.pmapi.sys.model.entity.Role; | import com.ningdatech.pmapi.sys.model.entity.Role; | ||||
import com.ningdatech.pmapi.user.constant.UserAvailableEnum; | |||||
import com.ningdatech.pmapi.user.entity.enumeration.RoleEnum; | import com.ningdatech.pmapi.user.entity.enumeration.RoleEnum; | ||||
import lombok.Data; | import lombok.Data; | ||||
@@ -74,6 +75,12 @@ public class UserFullInfoDTO { | |||||
private Long accountId; | private Long accountId; | ||||
/** | /** | ||||
* 用户是否可用 | |||||
*/ | |||||
private UserAvailableEnum available; | |||||
/** | |||||
* 取最高的权限 | * 取最高的权限 | ||||
* | * | ||||
* @return | * @return | ||||
@@ -1,22 +1,15 @@ | |||||
package com.ningdatech.pmapi.workbench.manage; | package com.ningdatech.pmapi.workbench.manage; | ||||
import cn.hutool.core.bean.BeanUtil; | |||||
import com.ningdatech.basic.model.PageVo; | |||||
import com.ningdatech.pmapi.common.helper.UserInfoHelper; | import com.ningdatech.pmapi.common.helper.UserInfoHelper; | ||||
import com.ningdatech.pmapi.projectdeclared.manage.DeclaredProjectManage; | import com.ningdatech.pmapi.projectdeclared.manage.DeclaredProjectManage; | ||||
import com.ningdatech.pmapi.projectdeclared.manage.DefaultDeclaredProjectManage; | import com.ningdatech.pmapi.projectdeclared.manage.DefaultDeclaredProjectManage; | ||||
import com.ningdatech.pmapi.projectdeclared.model.po.DeclaredProjectStatisticsPO; | |||||
import com.ningdatech.pmapi.projectlib.manage.ProjectLibManage; | import com.ningdatech.pmapi.projectlib.manage.ProjectLibManage; | ||||
import com.ningdatech.pmapi.projectlib.model.req.ProjectListReq; | import com.ningdatech.pmapi.projectlib.model.req.ProjectListReq; | ||||
import com.ningdatech.pmapi.sys.enumeration.NoticeTypeEnum; | |||||
import com.ningdatech.pmapi.sys.manage.NoticeManage; | import com.ningdatech.pmapi.sys.manage.NoticeManage; | ||||
import com.ningdatech.pmapi.sys.model.req.NoticeListReq; | import com.ningdatech.pmapi.sys.model.req.NoticeListReq; | ||||
import com.ningdatech.pmapi.sys.model.vo.NoticeListItemVO; | |||||
import com.ningdatech.pmapi.todocenter.manage.TodoCenterManage; | import com.ningdatech.pmapi.todocenter.manage.TodoCenterManage; | ||||
import com.ningdatech.pmapi.todocenter.model.req.ToBeProcessedReq; | import com.ningdatech.pmapi.todocenter.model.req.ToBeProcessedReq; | ||||
import com.ningdatech.pmapi.todocenter.model.vo.ResToBeProcessedVO; | |||||
import com.ningdatech.pmapi.todocenter.model.vo.TodoCenterStatisticsVO; | import com.ningdatech.pmapi.todocenter.model.vo.TodoCenterStatisticsVO; | ||||
import com.ningdatech.pmapi.todocenter.model.vo.TodoVO; | |||||
import com.ningdatech.pmapi.user.security.auth.model.UserFullInfoDTO; | import com.ningdatech.pmapi.user.security.auth.model.UserFullInfoDTO; | ||||
import com.ningdatech.pmapi.user.security.auth.model.UserInfoDetails; | import com.ningdatech.pmapi.user.security.auth.model.UserInfoDetails; | ||||
import com.ningdatech.pmapi.user.util.LoginUserUtil; | import com.ningdatech.pmapi.user.util.LoginUserUtil; | ||||
@@ -24,7 +17,8 @@ import com.ningdatech.pmapi.workbench.converter.WorkbenchConverter; | |||||
import com.ningdatech.pmapi.workbench.model.vo.WorkbenchVO; | import com.ningdatech.pmapi.workbench.model.vo.WorkbenchVO; | ||||
import lombok.AllArgsConstructor; | import lombok.AllArgsConstructor; | ||||
import org.springframework.stereotype.Component; | import org.springframework.stereotype.Component; | ||||
import java.util.concurrent.CompletableFuture; | |||||
import java.util.concurrent.ForkJoinPool; | |||||
import java.util.stream.Collectors; | import java.util.stream.Collectors; | ||||
/** | /** | ||||
@@ -51,34 +45,43 @@ public class WorkbenchManage { | |||||
public WorkbenchVO getWorkbenchData(Integer year){ | public WorkbenchVO getWorkbenchData(Integer year){ | ||||
WorkbenchVO res = new WorkbenchVO(); | WorkbenchVO res = new WorkbenchVO(); | ||||
UserInfoDetails user = LoginUserUtil.loginUserDetail(); | |||||
UserFullInfoDTO user = userInfoHelper.getUserFullInfo(LoginUserUtil.getUserId()); | |||||
//1.待办中心数据 | |||||
TodoCenterStatisticsVO statisticsVO = todoCenterManage.todoCenterStatistics(); | |||||
ToBeProcessedReq toBeProcessedReq = new ToBeProcessedReq(); | |||||
toBeProcessedReq.setPageNumber(1); | |||||
toBeProcessedReq.setPageSize(5); | |||||
statisticsVO.setTodoList(todoCenterManage.todoProjectList(toBeProcessedReq).getRecords() | |||||
.stream().map(v -> WorkbenchConverter.convert(v)).collect(Collectors.toList())); | |||||
res.setTodoCerter(statisticsVO); | |||||
CompletableFuture.allOf( | |||||
CompletableFuture.runAsync(()-> { | |||||
//1.待办中心数据 | |||||
TodoCenterStatisticsVO statisticsVO = todoCenterManage.todoCenterStatistics(user.getEmployeeCode()); | |||||
ToBeProcessedReq toBeProcessedReq = new ToBeProcessedReq(); | |||||
toBeProcessedReq.setPageNumber(1); | |||||
toBeProcessedReq.setPageSize(5); | |||||
toBeProcessedReq.setEmployeeCode(user.getEmployeeCode()); | |||||
statisticsVO.setTodoList(todoCenterManage.todoProjectList(toBeProcessedReq).getRecords() | |||||
.stream().map(v -> WorkbenchConverter.convert(v)).collect(Collectors.toList())); | |||||
res.setTodoCerter(statisticsVO); | |||||
}, ForkJoinPool.commonPool()), | |||||
CompletableFuture.runAsync(()-> { | |||||
//2.项目统计数据 | |||||
res.setOrgDeclared(WorkbenchConverter.convert(defaultDeclaredProjectManage.declaredProjectOrgStatistics(year,user))); | |||||
if(userInfoHelper.isSuperOrRegionAdmin(user.getUserId())){ | |||||
res.setRegionDeclared(WorkbenchConverter.convert(defaultDeclaredProjectManage.declaredProjectRegionStatistics(year,user))); | |||||
} | |||||
}, ForkJoinPool.commonPool()), | |||||
CompletableFuture.runAsync(()-> { | |||||
//3.所有公告按类型分 | |||||
NoticeListReq noticeListReq = new NoticeListReq(); | |||||
noticeListReq.setPageNumber(1); | |||||
noticeListReq.setPageSize(1000); | |||||
res.setNoticeList(noticeManage.listToMapByManager(noticeListReq)); | |||||
}, ForkJoinPool.commonPool()) | |||||
).join(); | |||||
//2.项目统计数据 | |||||
res.setOrgDeclared(WorkbenchConverter.convert(defaultDeclaredProjectManage.declaredProjectOrgStatistics(year))); | |||||
if(userInfoHelper.isSuperOrRegionAdmin(LoginUserUtil.getUserId())){ | |||||
res.setRegionDeclared(WorkbenchConverter.convert(defaultDeclaredProjectManage.declaredProjectRegionStatistics(year))); | |||||
} | |||||
//这个不能放入子线程 | |||||
ProjectListReq projectListReq = new ProjectListReq(); | ProjectListReq projectListReq = new ProjectListReq(); | ||||
projectListReq.setPageNumber(1); | projectListReq.setPageNumber(1); | ||||
projectListReq.setPageSize(5); | projectListReq.setPageSize(5); | ||||
projectListReq.setProjectYear(year); | projectListReq.setProjectYear(year); | ||||
projectListReq.setBuildOrgCode(user.getEmpPosUnitCode()); | projectListReq.setBuildOrgCode(user.getEmpPosUnitCode()); | ||||
res.setProjects(projectLibManage.projectLibListWithPermission(projectListReq).getRecords().stream().collect(Collectors.toList())); | |||||
//3.所有公告按类型分 | |||||
NoticeListReq noticeListReq = new NoticeListReq(); | |||||
noticeListReq.setPageNumber(1); | |||||
noticeListReq.setPageSize(1000); | |||||
res.setNoticeList(noticeManage.listToMapByManager(noticeListReq)); | |||||
res.setProjects(projectLibManage.projectLibListWithPermission(projectListReq,user).getRecords().stream().collect(Collectors.toList())); | |||||
return res; | return res; | ||||
} | } | ||||
@@ -25,6 +25,7 @@ security: | |||||
- /wflow/** | - /wflow/** | ||||
- /sys/** | - /sys/** | ||||
- /api/v1/verification/** | - /api/v1/verification/** | ||||
- /api/v1/expert/registration | |||||
ignore-csrf-urls: | ignore-csrf-urls: | ||||
- /api/v1/user/auth/** | - /api/v1/user/auth/** | ||||
- /v2/api-docs | - /v2/api-docs | ||||
@@ -42,6 +43,7 @@ security: | |||||
- /wflow/** | - /wflow/** | ||||
- /sys/** | - /sys/** | ||||
- /api/v1/verification/** | - /api/v1/verification/** | ||||
- /api/v1/expert/registration | |||||
role-map: | role-map: | ||||
"engineer": | "engineer": | ||||
"project_manager": | "project_manager": | ||||