待办中心-认证参数-列表查询
This commit is contained in:
+4
@@ -4,6 +4,8 @@ import com.baomidou.mybatisplus.core.mapper.BaseMapper;
|
|||||||
import com.baomidou.mybatisplus.core.metadata.IPage;
|
import com.baomidou.mybatisplus.core.metadata.IPage;
|
||||||
import com.jero.modules.cert.collect.entity.ParamsManifestEO;
|
import com.jero.modules.cert.collect.entity.ParamsManifestEO;
|
||||||
import com.jero.modules.cert.collect.vo.ParamsManifestVO;
|
import com.jero.modules.cert.collect.vo.ParamsManifestVO;
|
||||||
|
import com.jero.modules.todoCenter.entity.ParamsManifestTodoCenterEO;
|
||||||
|
import com.jero.modules.todoCenter.vo.ParamsManifestTodoCenterEOPage;
|
||||||
import org.apache.ibatis.annotations.Param;
|
import org.apache.ibatis.annotations.Param;
|
||||||
|
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
@@ -24,6 +26,8 @@ public interface ParamsManifestEOMapper extends BaseMapper<ParamsManifestEO> {
|
|||||||
|
|
||||||
List<ParamsManifestVO> listInfoAll(@Param("idList") List<String> idList);
|
List<ParamsManifestVO> listInfoAll(@Param("idList") List<String> idList);
|
||||||
|
|
||||||
|
List<ParamsManifestTodoCenterEO> listForTodoCenter(ParamsManifestTodoCenterEOPage paramsManifestTodoCenterEOPage);
|
||||||
|
|
||||||
ParamsManifestVO getProjectById(@Param("projectId") String projectId);
|
ParamsManifestVO getProjectById(@Param("projectId") String projectId);
|
||||||
|
|
||||||
List<Map<String, String>> labelListForProjectDetails(@Param("projectId") String projectId);
|
List<Map<String, String>> labelListForProjectDetails(@Param("projectId") String projectId);
|
||||||
|
|||||||
+23
@@ -114,6 +114,29 @@
|
|||||||
|
|
||||||
</select>
|
</select>
|
||||||
|
|
||||||
|
<select id="listForTodoCenter" resultType="com.jero.modules.todoCenter.entity.ParamsManifestTodoCenterEO" parameterType="com.jero.modules.todoCenter.vo.ParamsManifestTodoCenterEOPage">
|
||||||
|
select tmp_tb.* from(
|
||||||
|
select
|
||||||
|
pm.id as id,
|
||||||
|
pm.title as title,
|
||||||
|
pm.state as state,
|
||||||
|
pm.project_id as project_id,
|
||||||
|
pm.create_time as create_time,
|
||||||
|
concat(pni.project_name,'-',pyni.year_name,'-',plb.target_market,'-',pm.version) as project_name
|
||||||
|
from params_manifest pm
|
||||||
|
left join project_library_base as plb on plb.id = pm.project_id
|
||||||
|
left join project_name_info as pni on plb.project_name_id = pni.id
|
||||||
|
left join project_year_name_info as pyni on plb.year_name_id=pyni.id
|
||||||
|
) tmp_tb
|
||||||
|
where 1=1 and state = #{state}
|
||||||
|
<if test="projectName !=null and projectName !=''">
|
||||||
|
AND project_name LIKE CONCAT(CONCAT('%',#{projectName}),'%')
|
||||||
|
</if>
|
||||||
|
<if test="title !=null and title !=''">
|
||||||
|
AND title LIKE CONCAT(CONCAT('%',#{title}),'%')
|
||||||
|
</if>
|
||||||
|
</select>
|
||||||
|
|
||||||
<select id="getProjectById" resultMap="ParamsManifestEOResultMapForCopy">
|
<select id="getProjectById" resultMap="ParamsManifestEOResultMapForCopy">
|
||||||
select tmp_tb.* from(
|
select tmp_tb.* from(
|
||||||
select
|
select
|
||||||
|
|||||||
+20
@@ -1,7 +1,15 @@
|
|||||||
package com.jero.modules.todoCenter.controller;
|
package com.jero.modules.todoCenter.controller;
|
||||||
|
|
||||||
|
import com.baomidou.mybatisplus.core.metadata.IPage;
|
||||||
|
import com.jero.common.api.vo.Result;
|
||||||
|
import com.jero.common.aspect.annotation.AutoLog;
|
||||||
|
import com.jero.modules.todoCenter.service.IParamsManifestTodoCenterService;
|
||||||
|
import com.jero.modules.todoCenter.vo.ParamsManifestTodoCenterEOPage;
|
||||||
import io.swagger.annotations.Api;
|
import io.swagger.annotations.Api;
|
||||||
|
import io.swagger.annotations.ApiOperation;
|
||||||
import lombok.extern.slf4j.Slf4j;
|
import lombok.extern.slf4j.Slf4j;
|
||||||
|
import org.springframework.beans.factory.annotation.Autowired;
|
||||||
|
import org.springframework.web.bind.annotation.GetMapping;
|
||||||
import org.springframework.web.bind.annotation.RequestMapping;
|
import org.springframework.web.bind.annotation.RequestMapping;
|
||||||
import org.springframework.web.bind.annotation.RestController;
|
import org.springframework.web.bind.annotation.RestController;
|
||||||
|
|
||||||
@@ -16,4 +24,16 @@ import org.springframework.web.bind.annotation.RestController;
|
|||||||
@RequestMapping("/todoCenter/params/manifest")
|
@RequestMapping("/todoCenter/params/manifest")
|
||||||
@Slf4j
|
@Slf4j
|
||||||
public class ParamsManifestTodoCenterController {
|
public class ParamsManifestTodoCenterController {
|
||||||
|
|
||||||
|
@Autowired
|
||||||
|
private IParamsManifestTodoCenterService paramsManifestTodoCenterService;
|
||||||
|
|
||||||
|
@AutoLog(value = "分页查询")
|
||||||
|
@ApiOperation(value="分页查询", notes="分页查询")
|
||||||
|
@GetMapping(value = "/page")
|
||||||
|
// @RequiresPermissions("params:collectManifest:list")
|
||||||
|
public Result<?> page(ParamsManifestTodoCenterEOPage pageVO) {
|
||||||
|
IPage page = paramsManifestTodoCenterService.queryPage(pageVO);
|
||||||
|
return Result.OK(page);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
+8
-3
@@ -2,6 +2,8 @@ package com.jero.modules.todoCenter.entity;
|
|||||||
|
|
||||||
import lombok.Data;
|
import lombok.Data;
|
||||||
|
|
||||||
|
import java.util.Date;
|
||||||
|
|
||||||
@Data
|
@Data
|
||||||
public class ParamsManifestTodoCenterEO {
|
public class ParamsManifestTodoCenterEO {
|
||||||
/**
|
/**
|
||||||
@@ -25,18 +27,21 @@ public class ParamsManifestTodoCenterEO {
|
|||||||
private String projectVersion;
|
private String projectVersion;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 待发起数量
|
* 待发起数量 包括状态:待发起收集,变更,工程接口人退回
|
||||||
*/
|
*/
|
||||||
private Integer waitCollectNum;
|
private Integer waitCollectNum;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 待工程接口人处理数量(即待分配)
|
* 待工程接口人处理数量(即待分配) 包括状态:待工程接口人处理,填写人退回
|
||||||
*/
|
*/
|
||||||
private Integer waitSdtNum;
|
private Integer waitSdtNum;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 待填写数量
|
* 待填写数量 包括状态:待填写,认证工程师退回
|
||||||
*/
|
*/
|
||||||
private Integer waitFillNum;
|
private Integer waitFillNum;
|
||||||
|
|
||||||
|
private Date createTime;
|
||||||
|
private String state;
|
||||||
|
private String projectId;
|
||||||
}
|
}
|
||||||
|
|||||||
+6
@@ -1,5 +1,8 @@
|
|||||||
package com.jero.modules.todoCenter.service;
|
package com.jero.modules.todoCenter.service;
|
||||||
|
|
||||||
|
import com.baomidou.mybatisplus.core.metadata.IPage;
|
||||||
|
import com.jero.modules.todoCenter.vo.ParamsManifestTodoCenterEOPage;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @Author: liyawei
|
* @Author: liyawei
|
||||||
* @Description:
|
* @Description:
|
||||||
@@ -7,4 +10,7 @@ package com.jero.modules.todoCenter.service;
|
|||||||
*/
|
*/
|
||||||
|
|
||||||
public interface IParamsManifestTodoCenterService {
|
public interface IParamsManifestTodoCenterService {
|
||||||
|
|
||||||
|
// 分页查询当前登录人待办清单列表
|
||||||
|
IPage queryPage(ParamsManifestTodoCenterEOPage pageVO);
|
||||||
}
|
}
|
||||||
|
|||||||
+296
@@ -1,8 +1,33 @@
|
|||||||
package com.jero.modules.todoCenter.service.impl;
|
package com.jero.modules.todoCenter.service.impl;
|
||||||
|
|
||||||
|
import cn.hutool.core.collection.CollectionUtil;
|
||||||
|
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
||||||
|
import com.baomidou.mybatisplus.core.metadata.IPage;
|
||||||
|
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
||||||
|
import com.jero.common.system.vo.LoginUser;
|
||||||
|
import com.jero.modules.cert.collect.entity.ParamsCollectManifestEO;
|
||||||
|
import com.jero.modules.cert.collect.enums.CollectManifestStateEnum;
|
||||||
|
import com.jero.modules.cert.collect.enums.CollectManifestUserTypeEnum;
|
||||||
|
import com.jero.modules.cert.collect.enums.ManifestStateEnum;
|
||||||
|
import com.jero.modules.cert.collect.mapper.ParamsCollectManifestEOMapper;
|
||||||
|
import com.jero.modules.cert.collect.mapper.ParamsManifestEOMapper;
|
||||||
|
import com.jero.modules.project.entity.ProjectLibraryBase;
|
||||||
|
import com.jero.modules.project.entity.ProjectRelatedPersonnel;
|
||||||
|
import com.jero.modules.project.mapper.ProjectLibraryBaseMapper;
|
||||||
|
import com.jero.modules.project.service.IProjectRelatedPersonnelService;
|
||||||
|
import com.jero.modules.system.entity.SysUser;
|
||||||
|
import com.jero.modules.system.service.ISysUserService;
|
||||||
|
import com.jero.modules.todoCenter.entity.ParamsManifestTodoCenterEO;
|
||||||
import com.jero.modules.todoCenter.service.IParamsManifestTodoCenterService;
|
import com.jero.modules.todoCenter.service.IParamsManifestTodoCenterService;
|
||||||
|
import com.jero.modules.todoCenter.vo.ParamsManifestTodoCenterEOPage;
|
||||||
|
import org.apache.commons.lang3.StringUtils;
|
||||||
|
import org.apache.shiro.SecurityUtils;
|
||||||
|
import org.springframework.beans.factory.annotation.Autowired;
|
||||||
import org.springframework.stereotype.Service;
|
import org.springframework.stereotype.Service;
|
||||||
|
|
||||||
|
import java.util.*;
|
||||||
|
import java.util.stream.Collectors;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @Author: liyawei
|
* @Author: liyawei
|
||||||
* @Description:
|
* @Description:
|
||||||
@@ -10,4 +35,275 @@ import org.springframework.stereotype.Service;
|
|||||||
*/
|
*/
|
||||||
@Service
|
@Service
|
||||||
public class ParamsManifestTodoCenterServiceImpl implements IParamsManifestTodoCenterService {
|
public class ParamsManifestTodoCenterServiceImpl implements IParamsManifestTodoCenterService {
|
||||||
|
@Autowired
|
||||||
|
private ProjectLibraryBaseMapper projectLibraryBaseMapper;
|
||||||
|
|
||||||
|
@Autowired
|
||||||
|
private ISysUserService sysUserService;
|
||||||
|
|
||||||
|
@Autowired
|
||||||
|
private IProjectRelatedPersonnelService projectRelatedPersonnelService;
|
||||||
|
|
||||||
|
@Autowired
|
||||||
|
private ParamsCollectManifestEOMapper paramsCollectManifestEOMapper;
|
||||||
|
|
||||||
|
@Autowired
|
||||||
|
private ParamsManifestEOMapper paramsManifestEOMapper;
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public IPage queryPage(ParamsManifestTodoCenterEOPage pageVO) {
|
||||||
|
|
||||||
|
// 查询所有项目下的 状态为收集中的清单
|
||||||
|
pageVO.setState(ManifestStateEnum.COLLECTING.getValue());
|
||||||
|
List<ParamsManifestTodoCenterEO> paramsManifestEOListAll = paramsManifestEOMapper.listForTodoCenter(pageVO);
|
||||||
|
|
||||||
|
// 筛选出当前登录人能在清单中是homo/sdt/dre角色的清单,并分页
|
||||||
|
LambdaQueryWrapper<ProjectLibraryBase> projectLibraryBaseLambdaQueryWrapper = new LambdaQueryWrapper<>();
|
||||||
|
List<ProjectLibraryBase> projectLibraryBaseListAll = projectLibraryBaseMapper.selectList(projectLibraryBaseLambdaQueryWrapper);
|
||||||
|
|
||||||
|
LoginUser loginUser = (LoginUser) SecurityUtils.getSubject().getPrincipal(); // 获取当前登录用户
|
||||||
|
List<ParamsManifestTodoCenterEO> paramsManifestEOList = new ArrayList<>();
|
||||||
|
List<ProjectLibraryBase> projectLibraryBaseList = new ArrayList<>();
|
||||||
|
Map<String, Boolean> manifestUserTypeOfHomo = new HashMap<>();
|
||||||
|
|
||||||
|
String userType = "";
|
||||||
|
for(ParamsManifestTodoCenterEO paramsManifestEO : paramsManifestEOListAll) {
|
||||||
|
// 判断是不是homo角色
|
||||||
|
projectLibraryBaseList = projectLibraryBaseListAll.stream().filter(e->paramsManifestEO.getProjectId().equals(e.getId())).collect(Collectors.toList());
|
||||||
|
userType = getLoginUserTypeOfHomo(projectLibraryBaseList, loginUser);
|
||||||
|
if(StringUtils.isNotBlank(userType)) {
|
||||||
|
paramsManifestEOList.add(paramsManifestEO);
|
||||||
|
manifestUserTypeOfHomo.put(paramsManifestEO.getId(), true);
|
||||||
|
continue;
|
||||||
|
} else {
|
||||||
|
manifestUserTypeOfHomo.put(paramsManifestEO.getId(), false);
|
||||||
|
}
|
||||||
|
// 查询清单的所有参数项
|
||||||
|
ParamsCollectManifestEO paramsCollectManifestEO = new ParamsCollectManifestEO();
|
||||||
|
paramsCollectManifestEO.setParamsManifestId(paramsManifestEO.getId());
|
||||||
|
List<ParamsCollectManifestEO> pcmList = paramsCollectManifestEOMapper.listInfo(paramsCollectManifestEO);
|
||||||
|
// 判断是不是sdt角色
|
||||||
|
userType = getLoginUserTypeOfSdt(pcmList, loginUser);
|
||||||
|
if(StringUtils.isNotBlank(userType)) {
|
||||||
|
paramsManifestEOList.add(paramsManifestEO);
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
// 判断是不是dre角色
|
||||||
|
userType = getLoginUserTypeOfDre(pcmList, loginUser);
|
||||||
|
if(StringUtils.isNotBlank(userType)) {
|
||||||
|
paramsManifestEOList.add(paramsManifestEO);
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// 分页
|
||||||
|
paramsManifestEOList = paramsManifestEOList.stream()
|
||||||
|
.sorted(Comparator.comparing(ParamsManifestTodoCenterEO::getCreateTime).reversed())
|
||||||
|
.collect(Collectors.toList());
|
||||||
|
List<ParamsManifestTodoCenterEO> result = new ArrayList<>();
|
||||||
|
int pageNo = pageVO.getPageNo();
|
||||||
|
int pageSize = pageVO.getPageSize();
|
||||||
|
IPage page = new Page(pageNo, pageSize);
|
||||||
|
page.setTotal(paramsManifestEOList.size());
|
||||||
|
|
||||||
|
int subSize = pageVO.getPageSize(); // 每页记录数
|
||||||
|
int subCount = paramsManifestEOList.size(); // 总记录数
|
||||||
|
int subPageTotal = (subCount / subSize) + ((subCount % subSize > 0) ? 1 : 0); //总页数
|
||||||
|
// 分页计算
|
||||||
|
int fromIndex = (pageNo-1) * subSize;
|
||||||
|
int toIndex = ((pageNo == subPageTotal) ? subCount : (pageNo * subSize));
|
||||||
|
if( fromIndex <= subCount && toIndex <= subCount) {
|
||||||
|
result = paramsManifestEOList.subList(fromIndex, toIndex);
|
||||||
|
} else {
|
||||||
|
result = new ArrayList();
|
||||||
|
}
|
||||||
|
|
||||||
|
// 统计清单中的待办参数数据
|
||||||
|
List<ParamsManifestTodoCenterEO> records = getStatistics(result, manifestUserTypeOfHomo, loginUser);
|
||||||
|
page.setRecords(records);
|
||||||
|
return page;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
public List<ParamsManifestTodoCenterEO> getStatistics(List<ParamsManifestTodoCenterEO> paramsManifestEOList, Map<String, Boolean> manifestUserTypeOfHomo, LoginUser loginUser) {
|
||||||
|
List<ParamsManifestTodoCenterEO> paramsManifestTodoCenterEOList = new ArrayList<>();
|
||||||
|
|
||||||
|
for(ParamsManifestTodoCenterEO paramsManifestTodoCenterEO : paramsManifestEOList) {
|
||||||
|
// 查询清单的所有参数项
|
||||||
|
ParamsCollectManifestEO paramsCollectManifestEO = new ParamsCollectManifestEO();
|
||||||
|
paramsCollectManifestEO.setParamsManifestId(paramsManifestTodoCenterEO.getId());
|
||||||
|
List<ParamsCollectManifestEO> pcmList = paramsCollectManifestEOMapper.listInfo(paramsCollectManifestEO);
|
||||||
|
int count = 0;
|
||||||
|
// 统计待发起数量 包括状态:待发起收集,变更,工程接口人退回
|
||||||
|
if (manifestUserTypeOfHomo.get(paramsManifestTodoCenterEO.getId())) {
|
||||||
|
count = (int) pcmList.stream().filter(e-> CollectManifestStateEnum.WAIT_COLLECT.getValue().equals(e.getState())
|
||||||
|
|| CollectManifestStateEnum.SDT_BACK.getValue().equals(e.getState())
|
||||||
|
|| CollectManifestStateEnum.CHANGE.getValue().equals(e.getState())).count();
|
||||||
|
if (count > 0) {
|
||||||
|
paramsManifestTodoCenterEO.setWaitCollectNum(count);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// 统计待分配数量 包括状态:待工程接口人处理,填写人退回
|
||||||
|
count = (int) pcmList.stream().filter(e-> (CollectManifestStateEnum.WAIT_SDT.getValue().equals(e.getState())
|
||||||
|
|| CollectManifestStateEnum.DRE_BACK.getValue().equals(e.getState()))
|
||||||
|
&& loginUser.getUsername().equals(e.getSdt())).count();
|
||||||
|
if (count > 0) {
|
||||||
|
paramsManifestTodoCenterEO.setWaitSdtNum(count);
|
||||||
|
}
|
||||||
|
|
||||||
|
// 统计待填写数量 包括状态:待填写,认证工程师退回
|
||||||
|
count = (int) pcmList.stream().filter(e-> (CollectManifestStateEnum.WAIT_FILL.getValue().equals(e.getState())
|
||||||
|
|| CollectManifestStateEnum.CERT_BACK.getValue().equals(e.getState()))
|
||||||
|
&& loginUser.getUsername().equals(e.getDre())).count();
|
||||||
|
if (count > 0) {
|
||||||
|
paramsManifestTodoCenterEO.setWaitFillNum(count);
|
||||||
|
}
|
||||||
|
|
||||||
|
paramsManifestTodoCenterEOList.add(paramsManifestTodoCenterEO);
|
||||||
|
}
|
||||||
|
return paramsManifestTodoCenterEOList;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 根据项目id,清单id查询当前登录人的Homo角色
|
||||||
|
* @param projectId
|
||||||
|
* @param paramsManifestId
|
||||||
|
* @return
|
||||||
|
*/
|
||||||
|
public List<String> getLoginUserTypes(String projectId, String paramsManifestId, LoginUser loginUser) {
|
||||||
|
|
||||||
|
List<String> userTypeList = new ArrayList<>(); // 一个用户可以有多个用户类型
|
||||||
|
// LoginUser loginUser = (LoginUser) SecurityUtils.getSubject().getPrincipal(); // 获取当前登录用户
|
||||||
|
|
||||||
|
// 查询项目下所有责任领域下的 homo人员
|
||||||
|
List<ProjectLibraryBase> projectLibraryBaseList = projectLibraryBaseMapper.queryById(projectId);
|
||||||
|
List<String> homoList = new ArrayList<>();
|
||||||
|
if (CollectionUtil.isNotEmpty(projectLibraryBaseList)) {
|
||||||
|
String homoIdStr = projectLibraryBaseList.get(0).getCertificationEngineer();
|
||||||
|
if (StringUtils.isNotEmpty(homoIdStr)) {
|
||||||
|
List<String> homoIdList = Arrays.asList(homoIdStr.split(",")).stream().distinct().collect(Collectors.toList());
|
||||||
|
homoList = sysUserService.listByIds(homoIdList).stream().map(SysUser::getUsername).collect(Collectors.toList());
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// 查询项目下所有责任领域下的 sdt人员
|
||||||
|
List<String> sdtList = new ArrayList<>();
|
||||||
|
LambdaQueryWrapper<ProjectRelatedPersonnel> queryWrapper = new LambdaQueryWrapper<>();
|
||||||
|
queryWrapper.eq(ProjectRelatedPersonnel::getProjectId, projectId);
|
||||||
|
List<ProjectRelatedPersonnel> prpList = projectRelatedPersonnelService.list(queryWrapper);
|
||||||
|
// String homoIdStr = prpList.stream().map(e -> e.getCertificationEngineer()).collect(Collectors.joining(","));
|
||||||
|
String sdtIdStr = prpList.stream().map(e -> e.getEngineeringInterfacePerson()).collect(Collectors.joining(","));
|
||||||
|
// 项目下有homo-->不一定有sdt
|
||||||
|
if(StringUtils.isNotBlank(sdtIdStr)) {
|
||||||
|
List<String> sdtIdList = Arrays.asList(sdtIdStr.split(",")).stream().distinct().collect(Collectors.toList());
|
||||||
|
sdtList = sysUserService.listByIds(sdtIdList).stream().map(SysUser::getUsername).collect(Collectors.toList());
|
||||||
|
}
|
||||||
|
|
||||||
|
// 查询项目下参数清单下收集参数项中的 sdt,dre人员
|
||||||
|
ParamsCollectManifestEO paramsCollectManifestEO = new ParamsCollectManifestEO();
|
||||||
|
paramsCollectManifestEO.setParamsManifestId(paramsManifestId);
|
||||||
|
List<ParamsCollectManifestEO> pcmList = paramsCollectManifestEOMapper.listInfo(paramsCollectManifestEO);
|
||||||
|
List<String> sdtListOfPCM = pcmList.stream()
|
||||||
|
.filter(e->StringUtils.isNotEmpty(e.getSdt()))
|
||||||
|
.map(ParamsCollectManifestEO::getSdt)
|
||||||
|
.distinct()
|
||||||
|
.collect(Collectors.toList());
|
||||||
|
sdtList.addAll(sdtListOfPCM); // 需要取并集,因为存在参数项开始收集但 人员相关名单中sdt被修改的情况
|
||||||
|
|
||||||
|
List<String> dreListOfPCM = pcmList.stream()
|
||||||
|
.filter(e->StringUtils.isNotEmpty(e.getDre()))
|
||||||
|
.map(ParamsCollectManifestEO::getDre)
|
||||||
|
.distinct()
|
||||||
|
.collect(Collectors.toList());
|
||||||
|
|
||||||
|
String loginUserName = loginUser.getUsername().toLowerCase();
|
||||||
|
|
||||||
|
homoList = toLowerCaseOfList(homoList);
|
||||||
|
sdtList = toLowerCaseOfList(sdtList);
|
||||||
|
dreListOfPCM = toLowerCaseOfList(dreListOfPCM);
|
||||||
|
|
||||||
|
|
||||||
|
if (homoList.contains(loginUserName)) {
|
||||||
|
userTypeList.add(CollectManifestUserTypeEnum.HOMO.getValue());
|
||||||
|
}
|
||||||
|
|
||||||
|
if (sdtList.contains(loginUserName)) {
|
||||||
|
userTypeList.add(CollectManifestUserTypeEnum.SDT.getValue());
|
||||||
|
}
|
||||||
|
|
||||||
|
if (dreListOfPCM.contains(loginUserName)) {
|
||||||
|
userTypeList.add(CollectManifestUserTypeEnum.DRE.getValue());
|
||||||
|
}
|
||||||
|
|
||||||
|
return userTypeList;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getLoginUserTypeOfHomo(List<ProjectLibraryBase> projectLibraryBaseList, LoginUser loginUser) {
|
||||||
|
|
||||||
|
String userType = ""; // 一个用户可以有多个用户类型
|
||||||
|
|
||||||
|
// 查询项目下的 homo人员
|
||||||
|
List<String> homoList = new ArrayList<>();
|
||||||
|
if (CollectionUtil.isNotEmpty(projectLibraryBaseList)) {
|
||||||
|
String homoIdStr = projectLibraryBaseList.get(0).getCertificationEngineer();
|
||||||
|
if (StringUtils.isNotEmpty(homoIdStr)) {
|
||||||
|
List<String> homoIdList = Arrays.asList(homoIdStr.split(",")).stream().distinct().collect(Collectors.toList());
|
||||||
|
homoList = sysUserService.listByIds(homoIdList).stream().map(SysUser::getUsername).collect(Collectors.toList());
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
String loginUserName = loginUser.getUsername().toLowerCase();
|
||||||
|
homoList = toLowerCaseOfList(homoList);
|
||||||
|
if (homoList.contains(loginUserName)) {
|
||||||
|
userType = CollectManifestUserTypeEnum.HOMO.getValue();
|
||||||
|
}
|
||||||
|
return userType;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getLoginUserTypeOfSdt(List<ParamsCollectManifestEO> pcmList, LoginUser loginUser) {
|
||||||
|
|
||||||
|
String userType = ""; // 一个用户可以有多个用户类型
|
||||||
|
|
||||||
|
List<String> sdtListOfPCM = pcmList.stream()
|
||||||
|
.filter(e->StringUtils.isNotEmpty(e.getSdt()))
|
||||||
|
.map(ParamsCollectManifestEO::getSdt)
|
||||||
|
.distinct()
|
||||||
|
.collect(Collectors.toList());
|
||||||
|
|
||||||
|
String loginUserName = loginUser.getUsername().toLowerCase();
|
||||||
|
sdtListOfPCM = toLowerCaseOfList(sdtListOfPCM);
|
||||||
|
if (sdtListOfPCM.contains(loginUserName)) {
|
||||||
|
userType = CollectManifestUserTypeEnum.SDT.getValue();
|
||||||
|
}
|
||||||
|
return userType;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getLoginUserTypeOfDre(List<ParamsCollectManifestEO> pcmList, LoginUser loginUser) {
|
||||||
|
|
||||||
|
String userType = ""; // 一个用户可以有多个用户类型
|
||||||
|
|
||||||
|
List<String> dreListOfPCM = pcmList.stream()
|
||||||
|
.filter(e->StringUtils.isNotEmpty(e.getDre()))
|
||||||
|
.map(ParamsCollectManifestEO::getDre)
|
||||||
|
.distinct()
|
||||||
|
.collect(Collectors.toList());
|
||||||
|
|
||||||
|
String loginUserName = loginUser.getUsername().toLowerCase();
|
||||||
|
dreListOfPCM = toLowerCaseOfList(dreListOfPCM);
|
||||||
|
if (dreListOfPCM.contains(loginUserName)) {
|
||||||
|
userType = CollectManifestUserTypeEnum.DRE.getValue();
|
||||||
|
}
|
||||||
|
return userType;
|
||||||
|
}
|
||||||
|
|
||||||
|
private List<String> toLowerCaseOfList(List<String> list) {
|
||||||
|
List<String> newList = list;
|
||||||
|
if (CollectionUtil.isNotEmpty(list)) {
|
||||||
|
newList = list.stream().map(String::toLowerCase).collect(Collectors.toList());
|
||||||
|
}
|
||||||
|
return newList;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
+45
@@ -0,0 +1,45 @@
|
|||||||
|
package com.jero.modules.todoCenter.vo;
|
||||||
|
|
||||||
|
import lombok.Data;
|
||||||
|
|
||||||
|
@Data
|
||||||
|
public class ParamsManifestTodoCenterEOPage {
|
||||||
|
/**
|
||||||
|
* 参数清单id
|
||||||
|
*/
|
||||||
|
private String id;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 相关项目名称
|
||||||
|
*/
|
||||||
|
private String projectName;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 参数清单标题
|
||||||
|
*/
|
||||||
|
private String title;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 相关项目版本
|
||||||
|
*/
|
||||||
|
private String projectVersion;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 待发起数量 包括状态:待发起收集,变更,工程接口人退回
|
||||||
|
*/
|
||||||
|
private Integer waitCollectNum;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 待工程接口人处理数量(即待分配) 包括状态:待工程接口人处理,填写人退回
|
||||||
|
*/
|
||||||
|
private Integer waitSdtNum;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 待填写数量 包括状态:待填写,认证工程师退回
|
||||||
|
*/
|
||||||
|
private Integer waitFillNum;
|
||||||
|
|
||||||
|
private int pageNo;
|
||||||
|
private int pageSize;
|
||||||
|
private String state;
|
||||||
|
}
|
||||||
Reference in New Issue
Block a user