From 2d40c42d5d9055d70f89c5047f91dc4923c52dbe Mon Sep 17 00:00:00 2001 From: CD <1103614279@qq.com> Date: Thu, 17 Nov 2022 14:37:16 +0800 Subject: [PATCH] =?UTF-8?q?=E6=B3=95=E8=A7=84=E6=8A=80=E6=9C=AF=E8=AF=84?= =?UTF-8?q?=E4=BC=B0=E3=80=81=E6=B3=95=E8=A7=84=E6=84=8F=E8=A7=81=E6=94=B6?= =?UTF-8?q?=E9=9B=86=E6=B7=BB=E5=8A=A0=E5=93=81=E7=89=8C=E5=AD=97=E6=AE=B5?= =?UTF-8?q?=EF=BC=8C=E6=A0=B9=E6=8D=AEviewer=E8=A7=92=E8=89=B2=E8=B7=9F?= =?UTF-8?q?=E5=93=81=E7=89=8C=E5=AD=97=E6=AE=B5=E8=BF=9B=E8=A1=8C=E7=AD=9B?= =?UTF-8?q?=E9=80=89?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../system/mapper/SysDictItemMapper.java | 3 + .../LawsOpinionGatherEOController.java | 56 ++++++++++- .../entity/LawsOpinionGatherEO.java | 8 ++ .../mapper/xml/LawsOpinionGatherEOMapper.xml | 3 +- .../impl/LawsOpinionGatherEOServiceImpl.java | 19 ++++ .../LawsTechnologyEvaluationEOController.java | 51 +++++++++- .../entity/LawsTechnologyEvaluationEO.java | 7 ++ .../xml/LawsTechnologyEvaluationEOMapper.xml | 3 +- ...LawsTechnologyEvaluationEOServiceImpl.java | 17 ++++ .../impl/ProjectLibraryBaseServiceImpl.java | 94 ++++++++++--------- .../collectionOfRegulatoryOpinions/index.vue | 4 +- .../technologyAssessment/index.vue | 4 +- .../src/views/system/modules/UserModal.vue | 4 + 13 files changed, 220 insertions(+), 53 deletions(-) diff --git a/jero-boot/jero-boot-module-system/src/main/java/com/jero/modules/system/mapper/SysDictItemMapper.java b/jero-boot/jero-boot-module-system/src/main/java/com/jero/modules/system/mapper/SysDictItemMapper.java index 98adef3ef..e3eade81d 100644 --- a/jero-boot/jero-boot-module-system/src/main/java/com/jero/modules/system/mapper/SysDictItemMapper.java +++ b/jero-boot/jero-boot-module-system/src/main/java/com/jero/modules/system/mapper/SysDictItemMapper.java @@ -49,4 +49,7 @@ public interface SysDictItemMapper extends BaseMapper { @Select("select * from sys_dict_item where item_text=#{itemText} and dict_id=#{dictId}") List selctItemByName(String itemText,String dictId); + + @Select("select * from sys_dict_item item LEFT JOIN sys_dict dict on item.dict_id = dict.id WHERE dict.dict_code = #{dictCode} and item.item_value = #{itemValue}") + List queryItemByValue(@Param("dictCode") String dictCode,@Param("itemValue") String itemValue); } diff --git a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/lawsOpinionGather/controller/LawsOpinionGatherEOController.java b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/lawsOpinionGather/controller/LawsOpinionGatherEOController.java index 69864ff66..e5f5475b8 100644 --- a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/lawsOpinionGather/controller/LawsOpinionGatherEOController.java +++ b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/lawsOpinionGather/controller/LawsOpinionGatherEOController.java @@ -1,7 +1,10 @@ package com.jero.modules.lawsOpinionGather.controller; import java.util.Arrays; +import java.util.Collection; import java.util.List; +import java.util.stream.Collectors; +import java.util.stream.Stream; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; @@ -14,9 +17,13 @@ import com.jero.modules.lawsOpinionGather.service.ILawsOpinionGatherEOService; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.jero.modules.project.entity.ProjectLawsInventoryEO; +import com.jero.modules.system.service.IProjectUserBrandService; import com.jero.modules.system.service.ISysUserService; import lombok.extern.slf4j.Slf4j; import com.jero.common.system.base.controller.JeroController; +import org.apache.commons.lang3.ObjectUtils; +import org.apache.commons.lang3.StringUtils; import org.apache.shiro.SecurityUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.validation.annotation.Validated; @@ -42,6 +49,8 @@ public class LawsOpinionGatherEOController extends JeroController queryWrapper = QueryGenerator.initQueryWrapper(lawsOpinionGatherEO, req.getParameterMap()); queryWrapper.orderByDesc("start_time"); /** * 创建查询数据权限,超级管理员可以看到所有的数据,并且能删除,其它用户只能看到自己创建、或自己为评估人的数据。 */ boolean administrator = this.sysUserService.isAdministrator(); + LoginUser currentUser = (LoginUser) SecurityUtils.getSubject().getPrincipal(); if(!administrator){ - LoginUser currentUser = (LoginUser) SecurityUtils.getSubject().getPrincipal(); //如果不是超级管理员,获取自己所有参与过的法规意见收集 queryWrapper.and(query -> { query.eq("create_by",currentUser.getUsername()); query.or().like("evaluator_ids",currentUser.getId()); }); } + if (ObjectUtils.isNotEmpty(brandSelect)) { + //根据品牌搜索 + queryWrapper.and(query -> { + query.lambda().like(LawsOpinionGatherEO::getBrand, brandSelect); + if(StringUtils.contains(brandSelect,",")){ + for (String brand : brandSelect.split(",")) { + query.or(q -> { + q.like("brand",brand); + }); + } + } + }); + } Page page = new Page(pageNo, pageSize); IPage pageList = lawsOpinionGatherEOService.page(page, queryWrapper); - this.lawsOpinionGatherEOService.disposeData(pageList.getRecords(),cut); + List records = pageList.getRecords(); + //如果是Viewer,根据品牌进行筛选 + List ownedBrandList = projectUserBrandService.queryBrandByUserId(currentUser.getId()); + if (ObjectUtils.isNotEmpty(ownedBrandList)) { + QueryWrapper brandWrapper = new QueryWrapper<>(); + if (ObjectUtils.isNotEmpty(brandSelect)) { + //取交集 + ownedBrandList = Arrays.asList(brandSelect.split(",")).stream().filter(ownedBrandList::contains).collect(Collectors.toList()); + } + for (int i= 0; i + - \ No newline at end of file + diff --git a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/lawsOpinionGather/service/impl/LawsOpinionGatherEOServiceImpl.java b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/lawsOpinionGather/service/impl/LawsOpinionGatherEOServiceImpl.java index 021c749ed..b0355b6e8 100644 --- a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/lawsOpinionGather/service/impl/LawsOpinionGatherEOServiceImpl.java +++ b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/lawsOpinionGather/service/impl/LawsOpinionGatherEOServiceImpl.java @@ -12,6 +12,7 @@ import com.jero.common.exception.JeroBootException; import com.jero.common.system.vo.LoginUser; import com.jero.modules.document.entity.BussDocumentLibraryEO; import com.jero.modules.document.service.IBussDocumentLibraryEOService; +import com.jero.modules.enums.DictCodeEnum; import com.jero.modules.feishu.service.IFeishuService; import com.jero.modules.feishu.vo.FeishuMsg2Vo; import com.jero.modules.feishu.vo.FeishuMsgVo; @@ -33,7 +34,10 @@ import com.jero.modules.project.enums.OperatorTypeEnum; import com.jero.modules.project.enums.RequestSourceEnum; import com.jero.modules.project.util.SendMessageUtils; import com.jero.modules.system.entity.SysCategory; +import com.jero.modules.system.entity.SysDictItem; import com.jero.modules.system.entity.SysUser; +import com.jero.modules.system.mapper.SysDictItemMapper; +import com.jero.modules.system.service.ISysDictItemService; import com.jero.modules.system.service.ISysUserService; import com.jero.modules.system.service.impl.SysCategoryServiceImpl; import com.jero.modules.todoCenter.entity.ProcessInfoEO; @@ -89,6 +93,8 @@ public class LawsOpinionGatherEOServiceImpl extends ServiceImpl opinionArchiveFileList = iOSSFileService.getFileInfosByConnectId(StringUtils.join(lawsOpinionGather.getOpinionArchiveId(), ",")); lawsOpinionGather.setOpinionArchiveFileList(opinionArchiveFileList); } + if (StringUtils.isNotEmpty(lawsOpinionGather.getBrand())) { + StringBuilder builder = new StringBuilder(); + for (String brandValue : lawsOpinionGather.getBrand().split(",")) { + List sysDictItem = sysDictItemMapper.queryItemByValue(DictCodeEnum.BRAND.getValue(), brandValue); + if (CutEnum.CN.getValue().equals(cut)) { + builder.append(sysDictItem.get(0).getItemText() + ","); + } else { + builder.append(sysDictItem.get(0).getEnName()+ ","); + } + } + String brandText = builder.toString().substring(0, builder.toString().length() - 1); + lawsOpinionGather.setBrand_text(brandText); + } //如果当前用户是超级管理员,或是这条数据的创建人,给删除权限。 if(StringUtils.equals(lawsOpinionGather.getCreateBy(),currentUser.getUsername()) || administrator){ lawsOpinionGather.setDeleteFlag(true); diff --git a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/lawsTechnologyEvaluation/controller/LawsTechnologyEvaluationEOController.java b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/lawsTechnologyEvaluation/controller/LawsTechnologyEvaluationEOController.java index eb3ec59fd..7776b4887 100644 --- a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/lawsTechnologyEvaluation/controller/LawsTechnologyEvaluationEOController.java +++ b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/lawsTechnologyEvaluation/controller/LawsTechnologyEvaluationEOController.java @@ -1,9 +1,11 @@ package com.jero.modules.lawsTechnologyEvaluation.controller; import java.util.Arrays; +import java.util.Collection; import java.util.List; import java.util.Map; import java.util.stream.Collectors; +import java.util.stream.Stream; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; @@ -11,6 +13,7 @@ import com.alibaba.fastjson.JSONObject; import com.jero.common.api.vo.Result; import com.jero.common.system.query.QueryGenerator; import com.jero.common.system.vo.LoginUser; +import com.jero.modules.lawsOpinionGather.entity.LawsOpinionGatherEO; import com.jero.modules.lawsTechnologyEvaluation.entity.LawsTechnologyEvaluationEO; import com.jero.modules.lawsTechnologyEvaluation.entity.LawsTechnologyEvaluationFlowDetailEO; import com.jero.modules.lawsTechnologyEvaluation.service.ILawsTechnologyEvaluationEOService; @@ -18,10 +21,13 @@ import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.jero.modules.lawsTechnologyEvaluation.service.ILawsTechnologyEvaluationFlowDetailEOService; +import com.jero.modules.system.service.IProjectUserBrandService; import com.jero.modules.system.service.ISysUserService; import lombok.extern.slf4j.Slf4j; import com.jero.common.system.base.controller.JeroController; import org.apache.commons.collections4.CollectionUtils; +import org.apache.commons.lang3.ObjectUtils; +import org.apache.commons.lang3.StringUtils; import org.apache.shiro.SecurityUtils; import org.apache.shiro.authz.annotation.RequiresPermissions; import org.springframework.beans.factory.annotation.Autowired; @@ -51,6 +57,8 @@ public class LawsTechnologyEvaluationEOController extends JeroController queryWrapper = QueryGenerator.initQueryWrapper(lawsTechnologyEvaluationEO, req.getParameterMap()); queryWrapper.orderByDesc("start_time"); boolean administrator = this.sysUserService.isAdministrator(); + LoginUser currentUser = (LoginUser) SecurityUtils.getSubject().getPrincipal(); if(!administrator){ this.lawsTechnologyEvaluationEOService.createQueryPermission(queryWrapper,lawsTechnologyEvaluationEO,administrator); } + if (ObjectUtils.isNotEmpty(brandSelect)) { + //根据品牌搜索 + queryWrapper.and(query -> { + query.lambda().like(LawsTechnologyEvaluationEO::getBrand, brandSelect); + if(StringUtils.contains(brandSelect,",")){ + for (String brand : brandSelect.split(",")) { + query.or(q -> { + q.like("brand",brand); + }); + } + } + }); + } Page page = new Page(pageNo, pageSize); IPage pageList = lawsTechnologyEvaluationEOService.page(page, queryWrapper); - this.lawsTechnologyEvaluationEOService.disposeData(pageList.getRecords(),cut); + List records = pageList.getRecords(); + //如果是Viewer,根据品牌进行筛选 + List ownedBrandList = projectUserBrandService.queryBrandByUserId(currentUser.getId()); + if (ObjectUtils.isNotEmpty(ownedBrandList)) { + QueryWrapper brandWrapper = new QueryWrapper<>(); + if (ObjectUtils.isNotEmpty(brandSelect)) { + //取交集 + ownedBrandList = Arrays.asList(brandSelect.split(",")).stream().filter(ownedBrandList::contains).collect(Collectors.toList()); + } + for (int i= 0; i + - \ No newline at end of file + diff --git a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/lawsTechnologyEvaluation/service/impl/LawsTechnologyEvaluationEOServiceImpl.java b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/lawsTechnologyEvaluation/service/impl/LawsTechnologyEvaluationEOServiceImpl.java index 8c0810429..11670d2d7 100644 --- a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/lawsTechnologyEvaluation/service/impl/LawsTechnologyEvaluationEOServiceImpl.java +++ b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/lawsTechnologyEvaluation/service/impl/LawsTechnologyEvaluationEOServiceImpl.java @@ -15,6 +15,7 @@ import com.jero.modules.document.entity.BussDocumentLibraryEO; import com.jero.modules.document.enums.FieldTypeEnum; import com.jero.modules.document.mapper.BussDocumentLibraryEOMapper; import com.jero.modules.document.service.impl.BussDocumentLibraryEOServiceImpl; +import com.jero.modules.enums.DictCodeEnum; import com.jero.modules.feishu.service.IFeishuService; import com.jero.modules.feishu.vo.FeishuMsg2Vo; import com.jero.modules.lawsOpinionGather.enums.GatherResultEnum; @@ -33,6 +34,7 @@ import com.jero.modules.split.service.ISarFileSplitInfoService; import com.jero.modules.system.entity.SysCategory; import com.jero.modules.system.entity.SysDictItem; import com.jero.modules.system.entity.SysUser; +import com.jero.modules.system.mapper.SysDictItemMapper; import com.jero.modules.system.service.ISysUserService; import com.jero.modules.system.service.impl.SysCategoryServiceImpl; import com.jero.modules.system.service.impl.SysDictItemServiceImpl; @@ -114,6 +116,8 @@ public class LawsTechnologyEvaluationEOServiceImpl extends ServiceImpl sysDictItem = sysDictItemMapper.queryItemByValue(DictCodeEnum.BRAND.getValue(), brandValue); + if (CutEnum.CN.getValue().equals(cut)) { + builder.append(sysDictItem.get(0).getItemText() + ","); + } else { + builder.append(sysDictItem.get(0).getEnName() + ","); + } + } + String brandText = builder.toString().substring(0, builder.toString().length() - 1); + data.setBrand_text(brandText); + } if(administrator || StringUtils.equals(data.getCreateBy(),currentUser.getUsername())){ data.setDeleteFlag(true); } diff --git a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/project/service/impl/ProjectLibraryBaseServiceImpl.java b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/project/service/impl/ProjectLibraryBaseServiceImpl.java index c7ebc0e55..ec917c1b2 100644 --- a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/project/service/impl/ProjectLibraryBaseServiceImpl.java +++ b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/project/service/impl/ProjectLibraryBaseServiceImpl.java @@ -721,23 +721,26 @@ public class ProjectLibraryBaseServiceImpl 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); - } - if (sysRoleMapper.queryUserRoleByCode(ProjectRoleEnum.VIEWER.getName(), loginUser.getId()) > 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 (isViewer == 0) { + //如果不是viewer,根据项目用户权限表筛选有权访问的项目 + Set permissionProjectIds = projectUserPermissionMapper.queryProjectIdsByUserId(loginUser.getId()); + if (ObjectUtils.isNotEmpty(permissionProjectIds)) { + projectIds.addAll(permissionProjectIds); } } + //if (sysRoleMapper.queryUserRoleByCode(ProjectRoleEnum.VIEWER.getName(), loginUser.getId()) > 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())); + // } + // } + //} List result = projectLibraryBaseMapper.queryPageList(params); disposeData(result,"",false); @@ -825,38 +828,41 @@ public class ProjectLibraryBaseServiceImpl extends ServiceImpl resultLast = new ArrayList<>(); - for (ProjectLibraryBase projectLibraryBase : resultNew) { - //判断父项目是否有权限 - 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); + if (isViewer != 0) { + return resultNew; + } else { + List resultLast = new ArrayList<>(); + for (ProjectLibraryBase projectLibraryBase : resultNew) { + //判断父项目是否有权限 + 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); + } + } - + return resultLast; } - - return resultLast; } @NotNull diff --git a/jero-web/src/views/businessSupport/collectionOfRegulatoryOpinions/index.vue b/jero-web/src/views/businessSupport/collectionOfRegulatoryOpinions/index.vue index e46e0071b..0294a5e7f 100644 --- a/jero-web/src/views/businessSupport/collectionOfRegulatoryOpinions/index.vue +++ b/jero-web/src/views/businessSupport/collectionOfRegulatoryOpinions/index.vue @@ -64,7 +64,7 @@
{{$t('brand')}}
- @@ -216,7 +216,7 @@ align: 'center', ellipsis: true, width: 140, - dataIndex: 'brand' + dataIndex: 'brand_text' }, { title: this.$t('dateOfInitiation'), diff --git a/jero-web/src/views/businessSupport/technologyAssessment/index.vue b/jero-web/src/views/businessSupport/technologyAssessment/index.vue index 8d9f5c322..bee186910 100644 --- a/jero-web/src/views/businessSupport/technologyAssessment/index.vue +++ b/jero-web/src/views/businessSupport/technologyAssessment/index.vue @@ -65,7 +65,7 @@
{{$t('brand')}}
- @@ -285,7 +285,7 @@ align: 'center', ellipsis: true, width: 140, - dataIndex: 'brand' + dataIndex: 'brand_text' }, { title: this.$t('dateOfInitiation'), diff --git a/jero-web/src/views/system/modules/UserModal.vue b/jero-web/src/views/system/modules/UserModal.vue index fe86a585c..9cf300277 100644 --- a/jero-web/src/views/system/modules/UserModal.vue +++ b/jero-web/src/views/system/modules/UserModal.vue @@ -384,8 +384,12 @@ }, loadUserduty(userid) { queryViewerInfo({ userId: userid }).then((res) => { + if(res.dutyTerritoryList){ this.dutyTerritories = res.dutyTerritoryList.join(',') + } + if(res.brandList){ this.brands = res.brandList.join(',') + } }) }, selectChange(value){