平台件-列表
This commit is contained in:
+13
-3
@@ -6,15 +6,17 @@ package com.jero.common.constant.enums;
|
||||
* @auth zhn
|
||||
*/
|
||||
public enum YesOrNoEnum {
|
||||
NO("否","0"),
|
||||
YES("是","1");
|
||||
NO("否","NO","0"),
|
||||
YES("是","YES","1");
|
||||
|
||||
|
||||
String name;
|
||||
String nameEn;
|
||||
String value;
|
||||
|
||||
private YesOrNoEnum(String name, String value) {
|
||||
private YesOrNoEnum(String name,String nameEn, String value) {
|
||||
this.name = name;
|
||||
this.nameEn = nameEn;
|
||||
this.value = value;
|
||||
}
|
||||
|
||||
@@ -33,4 +35,12 @@ public enum YesOrNoEnum {
|
||||
public void setValue(String value) {
|
||||
this.value = value;
|
||||
}
|
||||
|
||||
public String getNameEn() {
|
||||
return nameEn;
|
||||
}
|
||||
|
||||
public void setNameEn(String nameEn) {
|
||||
this.nameEn = nameEn;
|
||||
}
|
||||
}
|
||||
|
||||
+37
-147
@@ -9,6 +9,7 @@ import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
||||
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
||||
import com.jero.common.api.vo.Result;
|
||||
import com.jero.common.constant.enums.CutEnum;
|
||||
import com.jero.common.constant.enums.YesOrNoEnum;
|
||||
import com.jero.common.exception.JeroBootException;
|
||||
import com.jero.common.system.vo.DictModel;
|
||||
import com.jero.common.system.vo.LoginUser;
|
||||
@@ -25,8 +26,8 @@ import com.jero.modules.feishu.enums.TemplateInfoEnum2;
|
||||
import com.jero.modules.ota.service.impl.OtaManageApplyEOServiceImpl;
|
||||
import com.jero.modules.platform.mapper.PlatformProjectLawsInventoryEOMapper;
|
||||
import com.jero.modules.platform.mapper.PlatformProjectLibraryBaseMapper;
|
||||
import com.jero.modules.platform.service.IPlatformProjectLibraryBaseService;
|
||||
import com.jero.modules.platform.service.IPlatformProjectCertificationInventoryEOService;
|
||||
import com.jero.modules.platform.service.IPlatformProjectLibraryBaseService;
|
||||
import com.jero.modules.project.entity.ProjectCertificationInventoryEO;
|
||||
import com.jero.modules.project.entity.ProjectLawsInventoryEO;
|
||||
import com.jero.modules.project.entity.ProjectLawsInventoryLogEO;
|
||||
@@ -64,6 +65,7 @@ import com.jero.modules.project.vo.TimeNodeVO;
|
||||
import com.jero.modules.system.entity.SysDictItem;
|
||||
import com.jero.modules.system.entity.SysUser;
|
||||
import com.jero.modules.system.enums.DicCodeEnum;
|
||||
import com.jero.modules.system.mapper.SysDictItemMapper;
|
||||
import com.jero.modules.system.mapper.SysRoleMapper;
|
||||
import com.jero.modules.system.mapper.SysUserMapper;
|
||||
import com.jero.modules.system.service.IProjectUserBrandService;
|
||||
@@ -106,12 +108,10 @@ import java.util.Collections;
|
||||
import java.util.Comparator;
|
||||
import java.util.Date;
|
||||
import java.util.HashMap;
|
||||
import java.util.HashSet;
|
||||
import java.util.LinkedList;
|
||||
import java.util.List;
|
||||
import java.util.Locale;
|
||||
import java.util.Map;
|
||||
import java.util.Set;
|
||||
import java.util.UUID;
|
||||
import java.util.stream.Collectors;
|
||||
|
||||
@@ -192,6 +192,8 @@ public class PlatformProjectLibraryBaseServiceImpl extends ServiceImpl<PlatformP
|
||||
private IProjectLibraryStatisticsService projectLibraryStatisticsService;
|
||||
@Autowired
|
||||
private OtaManageApplyEOServiceImpl otaManageApplyEOService;
|
||||
@Autowired
|
||||
private SysDictItemMapper sysDictItemMapper;
|
||||
|
||||
private static final SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
|
||||
private static DecimalFormat df = new DecimalFormat("#.00");
|
||||
@@ -206,6 +208,7 @@ public class PlatformProjectLibraryBaseServiceImpl extends ServiceImpl<PlatformP
|
||||
@Override
|
||||
@Transactional
|
||||
public void add(ProjectLibraryBase projectLibraryBase) throws ParseException {
|
||||
projectLibraryBase.setPlatform(YesOrNoEnum.YES.getNameEn());
|
||||
Date now = new Date();
|
||||
|
||||
projectLibraryBase.setCreateTime(now);
|
||||
@@ -450,6 +453,7 @@ public class PlatformProjectLibraryBaseServiceImpl extends ServiceImpl<PlatformP
|
||||
*/
|
||||
@Override
|
||||
public void editById(ProjectLibraryBase projectLibraryBase) {
|
||||
projectLibraryBase.setPlatform(YesOrNoEnum.YES.getNameEn());
|
||||
Date now = new Date();
|
||||
projectLibraryBase.setUpdateTime(now);
|
||||
LoginUser sysUser = (LoginUser) SecurityUtils.getSubject().getPrincipal();
|
||||
@@ -1034,30 +1038,27 @@ public class PlatformProjectLibraryBaseServiceImpl extends ServiceImpl<PlatformP
|
||||
*/
|
||||
@Override
|
||||
public List<ProjectLibraryBase> queryPageList(Map<String,Object> params) {
|
||||
LoginUser loginUser = (LoginUser) SecurityUtils.getSubject().getPrincipal();
|
||||
Integer isViewer = sysRoleMapper.queryUserRoleByCode(ProjectRoleEnum.VIEWER.getName(), loginUser.getId());
|
||||
Set<String> projectIds = new HashSet<>();
|
||||
//根据项目用户权限表筛选有权访问的项目
|
||||
Set<String> permissionProjectIds = projectUserPermissionMapper.queryProjectIdsByUserId(loginUser.getId());
|
||||
if (ObjectUtils.isNotEmpty(permissionProjectIds)) {
|
||||
projectIds.addAll(permissionProjectIds);
|
||||
String cut = (String) params.get("cut");
|
||||
String projectNameId = (String) params.get("projectNameId");//项目名称
|
||||
String brand = (String) params.get("brand");//品牌
|
||||
String ipdInfo = (String) params.get("ipdInfo");//配置信息
|
||||
LambdaQueryWrapper<ProjectLibraryBase> queryWrapper = new LambdaQueryWrapper<>();
|
||||
queryWrapper.eq(ProjectLibraryBase::getPlatform,YesOrNoEnum.YES.getNameEn());
|
||||
queryWrapper.orderByDesc(ProjectLibraryBase::getCreateTime);
|
||||
if(StringUtils.isNotBlank(projectNameId)){
|
||||
queryWrapper.like(ProjectLibraryBase::getProjectNameId,projectNameId);
|
||||
}
|
||||
if (isViewer > 0) {
|
||||
//如果是Viewer,根据配置的品牌筛选可访问的项目
|
||||
List<String> brandTypes = projectUserBrandService.queryBrandByUserId(loginUser.getId());
|
||||
if (ObjectUtils.isNotEmpty(brandTypes)) {
|
||||
QueryWrapper<ProjectLibraryBase> queryWrapper = new QueryWrapper<>();
|
||||
queryWrapper.in("brand",brandTypes);
|
||||
if (ObjectUtils.isNotEmpty(list(queryWrapper))) {
|
||||
projectIds.addAll(list(queryWrapper).stream().map(ProjectLibraryBase::getId).collect(Collectors.toSet()));
|
||||
}
|
||||
}
|
||||
if(StringUtils.isNotBlank(brand)){
|
||||
queryWrapper.eq(ProjectLibraryBase::getBrand,brand);
|
||||
}
|
||||
if(StringUtils.isNotBlank(ipdInfo)){
|
||||
queryWrapper.like(ProjectLibraryBase::getIpdInfo,ipdInfo);
|
||||
}
|
||||
|
||||
List<ProjectLibraryBase> result = platformProjectLibraryBaseMapper.queryPageList(params);
|
||||
disposeData(result,"",false);
|
||||
//目标市场
|
||||
List<DictModel> targetMarketList = sysDictService.queryDictItemsByCode(DicCodeEnum.REGION.getCode());
|
||||
List<ProjectLibraryBase> result = this.list(queryWrapper);
|
||||
LoginUser loginUser = (LoginUser) SecurityUtils.getSubject().getPrincipal();
|
||||
|
||||
List<SysDictItem> dictItemList = sysDictItemMapper.selectItemsByDictCode(DictCodeEnum.BRAND.getValue());
|
||||
|
||||
//置顶
|
||||
List<String> idList = result.stream().map(ProjectLibraryBase::getId).collect(Collectors.toList());
|
||||
@@ -1067,8 +1068,17 @@ public class PlatformProjectLibraryBaseServiceImpl extends ServiceImpl<PlatformP
|
||||
wrapper.in(TopProjectEO::getCreateBy,loginUser.getUsername()).in(TopProjectEO::getProjectLibraryBaseId,idList).orderByDesc(TopProjectEO::getSort);
|
||||
topProjectEOList = iTopProjectEOService.list(wrapper);
|
||||
}
|
||||
|
||||
for(ProjectLibraryBase projectLibraryBase: result){
|
||||
//处理品牌
|
||||
List<SysDictItem> sysDictItemList = dictItemList.stream()
|
||||
.filter(e -> e.getItemValue().equals(projectLibraryBase.getBrand())).collect(Collectors.toList());
|
||||
if(!sysDictItemList.isEmpty()){
|
||||
if (CutEnum.CN.getValue().equals(cut)) {
|
||||
projectLibraryBase.setBrandText(sysDictItemList.get(0).getItemText() );
|
||||
} else {
|
||||
projectLibraryBase.setBrandText(sysDictItemList.get(0).getEnName());
|
||||
}
|
||||
}
|
||||
//置顶处理
|
||||
if(ObjectUtils.isNotEmpty(topProjectEOList)){
|
||||
List<TopProjectEO> collect = topProjectEOList.stream()
|
||||
@@ -1084,21 +1094,6 @@ public class PlatformProjectLibraryBaseServiceImpl extends ServiceImpl<PlatformP
|
||||
}else{
|
||||
projectLibraryBase.setSort("0");
|
||||
}
|
||||
//目标市场
|
||||
String targetMarket = getMarket(params, targetMarketList, projectLibraryBase);
|
||||
//主项目的版本号
|
||||
String projectVersion = "";
|
||||
if(StringUtils.isBlank(projectLibraryBase.getParentId())){
|
||||
projectVersion = "00";
|
||||
}else{
|
||||
projectVersion = projectLibraryBase.getProjectVersion();
|
||||
}
|
||||
if(StringUtils.isNotBlank(projectLibraryBase.getYearName())){
|
||||
projectLibraryBase.setProjectName(projectLibraryBase.getProjectName()
|
||||
+ "-" + projectLibraryBase.getYearName()
|
||||
+ "-" + targetMarket
|
||||
+ "-" + projectVersion);
|
||||
}
|
||||
}
|
||||
|
||||
if(ObjectUtils.isEmpty(params.get("orderByField"))){
|
||||
@@ -1109,114 +1104,9 @@ public class PlatformProjectLibraryBaseServiceImpl extends ServiceImpl<PlatformP
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
//所有主项目
|
||||
List<ProjectLibraryBase> projectLibraryBaseListParent = platformProjectLibraryBaseMapper.queryMaimList();
|
||||
disposeData(projectLibraryBaseListParent,"",false);
|
||||
for(ProjectLibraryBase projectLibraryBase: projectLibraryBaseListParent){
|
||||
//目标市场
|
||||
String targetMarket = getMarket(params, targetMarketList, projectLibraryBase);
|
||||
//主项目的版本号
|
||||
String projectVersion = "";
|
||||
if(StringUtils.isBlank(projectLibraryBase.getParentId())){
|
||||
projectVersion = "00";
|
||||
}else{
|
||||
projectVersion = projectLibraryBase.getProjectVersion();
|
||||
}
|
||||
if(StringUtils.isNotBlank(projectLibraryBase.getYearName())){
|
||||
projectLibraryBase.setProjectName(projectLibraryBase.getProjectName()
|
||||
+ "-" + projectLibraryBase.getYearName()
|
||||
+ "-" + targetMarket
|
||||
+ "-" + projectVersion);
|
||||
}
|
||||
}
|
||||
|
||||
//项目名称模糊查询特殊处理(因为项目名称是多字段拼接的)
|
||||
if(ObjectUtils.isNotEmpty(params.get("projectName"))){
|
||||
result = result.stream().filter(e->e.getProjectName().toLowerCase().contains(String.valueOf(params.get("projectName")).toLowerCase())).collect(Collectors.toList());
|
||||
}
|
||||
List<ProjectLibraryBase> projectLibraryBaseParentList = result.stream().filter(e -> StringUtils.isBlank(e.getParentId())).distinct().collect(Collectors.toList());
|
||||
//处理搜索版本号,(因为列表展示数据是以主项目为主并绑定子项目, 所以搜索的时候只有子项目这种情况需要特殊处理)
|
||||
List<ProjectLibraryBase> resultNew = getProjectLibraryBases(result, projectLibraryBaseListParent);
|
||||
disposeData(resultNew,"",false);
|
||||
|
||||
|
||||
//数据组装
|
||||
// List<ProjectLibraryBase> resultTemp = new LinkedList<>();
|
||||
// for (ProjectLibraryBase projectLibraryBase : result) {
|
||||
// if(StringUtils.isBlank(projectLibraryBase.getParentId())){
|
||||
// resultTemp.add(projectLibraryBase);
|
||||
// }
|
||||
// }
|
||||
|
||||
for (ProjectLibraryBase projectLibraryBase : projectLibraryBaseParentList) {
|
||||
//子项目
|
||||
List<ProjectLibraryBase> children = result.stream()
|
||||
.filter(e -> StringUtils.isNotBlank(e.getParentId()) && projectLibraryBase.getId().equals(e.getParentId())).collect(Collectors.toList());
|
||||
if(children.size() != 0){
|
||||
//子项目的基础上添加的子项目
|
||||
List<String> childrenIdList = children.stream().map(ProjectLibraryBase::getId).distinct().collect(Collectors.toList());
|
||||
List<ProjectLibraryBase> childrenList = result.stream()
|
||||
.filter(e -> StringUtils.isNotBlank(e.getParentId()) && childrenIdList.contains(e.getParentId())).collect(Collectors.toList());
|
||||
children.addAll(childrenList);
|
||||
|
||||
//按版本排序
|
||||
Collections.sort(children);
|
||||
projectLibraryBase.setChildren(children);
|
||||
//最后一个版本号(主项目和主项目都需要设置)
|
||||
String versionLast = children.get(children.size() - 1).getProjectVersion();
|
||||
//主版本设置最后一个版本号(用于项目扩展中的版本号)
|
||||
projectLibraryBase.setVersionLast(versionLast);
|
||||
for (ProjectLibraryBase child : children) {
|
||||
//每个子版本版本设置最后一个版本号(用于项目扩展中的版本号)
|
||||
child.setVersionLast(versionLast);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
List<ProjectLibraryBase> resultLast = new ArrayList<>();
|
||||
//权限筛选
|
||||
if (sysUserService.isAdministrator()) {
|
||||
//管理员查看全部
|
||||
if(ObjectUtils.isNotEmpty(projectLibraryBaseParentList)){
|
||||
resultLast = projectLibraryBaseParentList;
|
||||
}else{
|
||||
resultLast = resultNew;
|
||||
}
|
||||
} else {
|
||||
for (ProjectLibraryBase projectLibraryBase : projectLibraryBaseParentList) {
|
||||
//判断父项目是否有权限
|
||||
if (!projectIds.contains(projectLibraryBase.getId())) {
|
||||
//判断子项目是否有权限
|
||||
List<ProjectLibraryBase> children = projectLibraryBase.getChildren();
|
||||
if (ObjectUtils.isNotEmpty(children)) {
|
||||
for (ProjectLibraryBase child : children) {
|
||||
//将有权限的放入最后返回的集合中
|
||||
if (projectIds.contains(child.getId())) {
|
||||
resultLast.add(child);
|
||||
}
|
||||
}
|
||||
}
|
||||
} else {
|
||||
List<ProjectLibraryBase> children = projectLibraryBase.getChildren();
|
||||
if (ObjectUtils.isNotEmpty(children)) {
|
||||
List<ProjectLibraryBase> lastChild = new ArrayList<>();
|
||||
//判断子项目是否有权限
|
||||
for (ProjectLibraryBase child : children) {
|
||||
if (projectIds.contains(child.getId())) {
|
||||
lastChild.add(child);
|
||||
}
|
||||
}
|
||||
projectLibraryBase.setChildren(lastChild);
|
||||
}
|
||||
resultLast.add(projectLibraryBase);
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
//表头排序
|
||||
hearSort(params, resultLast);
|
||||
return resultLast;
|
||||
hearSort(params, result);
|
||||
return result;
|
||||
}
|
||||
|
||||
private void hearSort(Map<String, Object> params, List<ProjectLibraryBase> resultLast) {
|
||||
|
||||
+3
@@ -161,6 +161,9 @@ public class ProjectLibraryBase implements Comparable<ProjectLibraryBase> {
|
||||
@TableField(exist = false)
|
||||
private String projectNameCn;
|
||||
|
||||
@ApiModelProperty(value = "平台件数据标识,platform = YES,为平台件数据,platform为空是项目库数据")
|
||||
private String platform;
|
||||
|
||||
@Override
|
||||
public int compareTo(ProjectLibraryBase o) {
|
||||
if (!this.getProjectName().equals(o.getProjectName())) {
|
||||
|
||||
Reference in New Issue
Block a user