From 8453685bdf6547f1f0ab9256fc6e7ec9ea8ab630 Mon Sep 17 00:00:00 2001 From: zhn <947514737@qq.com> Date: Wed, 13 Sep 2023 17:04:18 +0800 Subject: [PATCH] =?UTF-8?q?=E5=B9=B3=E5=8F=B0=E4=BB=B6-=E5=88=97=E8=A1=A8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../common/constant/enums/YesOrNoEnum.java | 16 +- ...PlatformProjectLibraryBaseServiceImpl.java | 184 ++++-------------- .../project/entity/ProjectLibraryBase.java | 3 + 3 files changed, 53 insertions(+), 150 deletions(-) diff --git a/jero-boot/jero-boot-base/jero-boot-base-core/src/main/java/com/jero/common/constant/enums/YesOrNoEnum.java b/jero-boot/jero-boot-base/jero-boot-base-core/src/main/java/com/jero/common/constant/enums/YesOrNoEnum.java index 62b5bc535..2b56f4dd2 100644 --- a/jero-boot/jero-boot-base/jero-boot-base-core/src/main/java/com/jero/common/constant/enums/YesOrNoEnum.java +++ b/jero-boot/jero-boot-base/jero-boot-base-core/src/main/java/com/jero/common/constant/enums/YesOrNoEnum.java @@ -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; + } } diff --git a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/platform/service/impl/PlatformProjectLibraryBaseServiceImpl.java b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/platform/service/impl/PlatformProjectLibraryBaseServiceImpl.java index ccba9111b..426f3117b 100644 --- a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/platform/service/impl/PlatformProjectLibraryBaseServiceImpl.java +++ b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/platform/service/impl/PlatformProjectLibraryBaseServiceImpl.java @@ -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 queryPageList(Map params) { - LoginUser loginUser = (LoginUser) SecurityUtils.getSubject().getPrincipal(); - Integer isViewer = sysRoleMapper.queryUserRoleByCode(ProjectRoleEnum.VIEWER.getName(), loginUser.getId()); - Set projectIds = new HashSet<>(); - //根据项目用户权限表筛选有权访问的项目 - Set 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 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 brandTypes = projectUserBrandService.queryBrandByUserId(loginUser.getId()); - if (ObjectUtils.isNotEmpty(brandTypes)) { - QueryWrapper 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 result = platformProjectLibraryBaseMapper.queryPageList(params); - disposeData(result,"",false); - //目标市场 - List targetMarketList = sysDictService.queryDictItemsByCode(DicCodeEnum.REGION.getCode()); + List result = this.list(queryWrapper); + LoginUser loginUser = (LoginUser) SecurityUtils.getSubject().getPrincipal(); + + List dictItemList = sysDictItemMapper.selectItemsByDictCode(DictCodeEnum.BRAND.getValue()); //置顶 List idList = result.stream().map(ProjectLibraryBase::getId).collect(Collectors.toList()); @@ -1067,8 +1068,17 @@ public class PlatformProjectLibraryBaseServiceImpl extends ServiceImpl 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 collect = topProjectEOList.stream() @@ -1084,21 +1094,6 @@ public class PlatformProjectLibraryBaseServiceImpl extends ServiceImpl 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 projectLibraryBaseParentList = result.stream().filter(e -> StringUtils.isBlank(e.getParentId())).distinct().collect(Collectors.toList()); - //处理搜索版本号,(因为列表展示数据是以主项目为主并绑定子项目, 所以搜索的时候只有子项目这种情况需要特殊处理) - List resultNew = getProjectLibraryBases(result, projectLibraryBaseListParent); - disposeData(resultNew,"",false); - - - //数据组装 -// List resultTemp = new LinkedList<>(); -// for (ProjectLibraryBase projectLibraryBase : result) { -// if(StringUtils.isBlank(projectLibraryBase.getParentId())){ -// resultTemp.add(projectLibraryBase); -// } -// } - - for (ProjectLibraryBase projectLibraryBase : projectLibraryBaseParentList) { - //子项目 - List children = result.stream() - .filter(e -> StringUtils.isNotBlank(e.getParentId()) && projectLibraryBase.getId().equals(e.getParentId())).collect(Collectors.toList()); - if(children.size() != 0){ - //子项目的基础上添加的子项目 - List childrenIdList = children.stream().map(ProjectLibraryBase::getId).distinct().collect(Collectors.toList()); - List 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 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 children = projectLibraryBase.getChildren(); - if (ObjectUtils.isNotEmpty(children)) { - for (ProjectLibraryBase child : children) { - //将有权限的放入最后返回的集合中 - if (projectIds.contains(child.getId())) { - resultLast.add(child); - } - } - } - } else { - List children = projectLibraryBase.getChildren(); - if (ObjectUtils.isNotEmpty(children)) { - List 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 params, List resultLast) { diff --git a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/project/entity/ProjectLibraryBase.java b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/project/entity/ProjectLibraryBase.java index 2fdadb87a..0b80aafd2 100644 --- a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/project/entity/ProjectLibraryBase.java +++ b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/project/entity/ProjectLibraryBase.java @@ -161,6 +161,9 @@ public class ProjectLibraryBase implements Comparable { @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())) {