PoffyZhang пре 1 година
родитељ
комит
887a8ff7e0
1 измењених фајлова са 25 додато и 7 уклоњено
  1. +25
    -7
      pmapi/src/main/java/com/ningdatech/pmapi/irs/manage/IrsProjectManage.java

+ 25
- 7
pmapi/src/main/java/com/ningdatech/pmapi/irs/manage/IrsProjectManage.java Прегледај датотеку

@@ -1,23 +1,24 @@
package com.ningdatech.pmapi.irs.manage;

import cn.hutool.core.bean.BeanUtil;
import cn.hutool.core.collection.CollUtil;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.google.common.collect.Lists;
import com.ningdatech.basic.model.PageVo;
import com.ningdatech.pmapi.dashboard.model.vo.ProtraitProjectOutputVO;
import com.ningdatech.pmapi.projectlib.enumeration.ProjectStatusEnum;
import com.ningdatech.pmapi.projectlib.model.entity.Project;
import com.ningdatech.pmapi.projectlib.model.req.ProjectListReq;
import com.ningdatech.pmapi.projectlib.model.vo.ProjectLibListItemVO;
import com.ningdatech.pmapi.projectlib.service.IProjectService;
import com.ningdatech.pmapi.user.security.auth.model.UserInfoDetails;
import com.ningdatech.pmapi.user.util.LoginUserUtil;
import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.lang3.StringUtils;
import org.springframework.stereotype.Component;

import java.util.List;
import java.util.Objects;
import java.util.stream.Collectors;

/**
@@ -40,25 +41,42 @@ public class IrsProjectManage {
*/
public PageVo<ProjectLibListItemVO> list(ProjectListReq req) {
Page<Project> page = req.page();
UserInfoDetails user = LoginUserUtil.loginUserDetail();
LambdaQueryWrapper<Project> wrapper = Wrappers.lambdaQuery(Project.class)
.eq(StringUtils.isNotBlank(req.getAreaCode()),Project::getAreaCode,req.getAreaCode())
.eq(StringUtils.isNotBlank(req.getRegionCode()),Project::getAreaCode,req.getRegionCode())
.eq(StringUtils.isNotBlank(req.getProjectType()),Project::getProjectType,req.getProjectType())
.eq(Objects.nonNull(req.getStatus()),Project::getStatus,req.getStatus())
.eq(Objects.nonNull(req.getStage()),Project::getStage,req.getStage())
.ge(Objects.nonNull(req.getApproveAmountMin()),Project::getApprovalAmount,req.getApproveAmountMin())
.le(Objects.nonNull(req.getApproveAmountMax()),Project::getApprovalAmount,req.getApproveAmountMax())
.eq(Objects.nonNull(req.getProjectYear()),Project::getProjectYear,req.getProjectYear())
.ge(Objects.nonNull(req.getCreateOnMin()),Project::getCreateOn,req.getCreateOnMin())
.le(Objects.nonNull(req.getCreateOnMax()),Project::getCreateOn,req.getCreateOnMax())
.like(StringUtils.isNotBlank(req.getProjectName()),Project::getProjectName,req.getProjectName())
.like(StringUtils.isNotBlank(req.getBuildOrgName()),Project::getBuildOrgName,req.getBuildOrgName())
.gt(Project::getStatus, ProjectStatusEnum.UNDER_CONSTRUCTION.getCode())
.orderByDesc(Project::getUpdateOn);
buildPermission(wrapper,user);
projectService.page(page,wrapper);

if(CollUtil.isEmpty(page.getRecords())){
return PageVo.empty();
}
List<ProjectLibListItemVO> res = page.getRecords().stream().map(p -> {
ProjectLibListItemVO vo = new ProjectLibListItemVO();
vo.setId(p.getId());
vo.setProjectName(p.getProjectName());
vo.setProjectCode(p.getProjectCode());
ProjectLibListItemVO vo = BeanUtil.copyProperties(p,ProjectLibListItemVO.class);
return vo;
}).collect(Collectors.toList());
return PageVo.of(res,page.getTotal());
}

private void buildPermission(LambdaQueryWrapper<Project> wrapper, UserInfoDetails user) {
if(user.getSuperAdmin()){
log.info("超管 都可看 项目档案列表");
}else if(user.getRegionAdmin()){
wrapper.eq(Project::getAreaCode,user.getRegionCode());
}else{
wrapper.eq(Project::getBuildOrgCode,user.getEmpPosUnitCode());
}
}
}

Loading…
Откажи
Сачувај