From 1f7d5728cee970301d78c23a11f09778aa473d14 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=9B=B9=E9=B9=8F=E9=A3=9E?= Date: Tue, 24 Jun 2025 17:29:02 +0800 Subject: [PATCH] =?UTF-8?q?feat:=20bug-369=20=E6=B7=BB=E5=8A=A0=E5=AF=B9?= =?UTF-8?q?=E4=BA=A7=E5=93=81=E7=BA=BF=E5=92=8C=E6=95=B0=E6=8D=AE=E6=9D=83?= =?UTF-8?q?=E9=99=90=E7=9A=84=E6=94=AF=E6=8C=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../admin/controller/DataRoleController.java | 16 ++++ .../controller/DeviceComponentController.java | 10 ++- .../common/constant/Constant.java | 11 +++ .../pojo/request/DataRoleItemRequest.java | 6 ++ .../product/controller/DataController.java | 80 ------------------- .../repository/mapper/AdminUserMapper.java | 3 + .../mapper/AnonymousTicketMapper.java | 4 +- .../repository/mapper/DeviceMapper.java | 6 +- .../repository/mapper/TicketMapper.java | 10 +-- .../repository/service/IAdminUserService.java | 2 + .../repository/service/IDeviceService.java | 2 + .../service/impl/AdminUserServiceImpl.java | 32 ++++++++ .../impl/AnonymousTicketServiceImpl.java | 8 +- .../service/impl/DeviceServiceImpl.java | 33 +++++--- .../service/impl/TicketServiceImpl.java | 16 ++-- .../main/resources/mapper/AdminUserMapper.xml | 7 ++ .../mapper/AnonymousTicketMapper.xml | 6 ++ .../main/resources/mapper/DeviceMapper.xml | 26 +++++- .../main/resources/mapper/TicketMapper.xml | 14 ++++ 19 files changed, 184 insertions(+), 108 deletions(-) delete mode 100644 nflg-mobilebroken-product/src/main/java/com/nflg/mobilebroken/product/controller/DataController.java diff --git a/nflg-mobilebroken-admin/src/main/java/com/nflg/mobilebroken/admin/controller/DataRoleController.java b/nflg-mobilebroken-admin/src/main/java/com/nflg/mobilebroken/admin/controller/DataRoleController.java index 7822d697..3310e9b8 100644 --- a/nflg-mobilebroken-admin/src/main/java/com/nflg/mobilebroken/admin/controller/DataRoleController.java +++ b/nflg-mobilebroken-admin/src/main/java/com/nflg/mobilebroken/admin/controller/DataRoleController.java @@ -1,6 +1,7 @@ package com.nflg.mobilebroken.admin.controller; import com.nflg.mobilebroken.admin.annotation.ApiMark; +import com.nflg.mobilebroken.common.constant.Constant; import com.nflg.mobilebroken.common.pojo.ApiResult; import com.nflg.mobilebroken.common.pojo.PageData; import com.nflg.mobilebroken.common.pojo.request.DataRoleAddRequest; @@ -9,7 +10,9 @@ import com.nflg.mobilebroken.common.pojo.request.EnableRoleRequest; import com.nflg.mobilebroken.common.pojo.request.RoleSearchRequest; import com.nflg.mobilebroken.common.pojo.vo.DataRoleVO; import com.nflg.mobilebroken.common.pojo.vo.SimpleVO; +import com.nflg.mobilebroken.repository.entity.DictionaryItem; import com.nflg.mobilebroken.repository.service.IDataRoleService; +import com.nflg.mobilebroken.repository.service.IDictionaryItemService; import com.nflg.mobilebroken.starter.annotation.MethodInfoMark; import org.springframework.web.bind.annotation.*; @@ -29,6 +32,19 @@ public class DataRoleController { @Resource private IDataRoleService dataRoleService; + @Resource + private IDictionaryItemService dictionaryItemService; + + /** + * 获取数据权限模块列表 + * @return 模块列表 + */ + @GetMapping("getModules") + @ApiMark(moduleName = "数据权限角色管理", apiName = "获取数据权限模块列表",isPublic = true) + private ApiResult> getModules(){ + return ApiResult.success(dictionaryItemService.getListByDictionaryCode(Constant.DICTIONARY_DATAPERMISSION)); + } + /** * 新增角色 * @param request 请求参数 diff --git a/nflg-mobilebroken-admin/src/main/java/com/nflg/mobilebroken/admin/controller/DeviceComponentController.java b/nflg-mobilebroken-admin/src/main/java/com/nflg/mobilebroken/admin/controller/DeviceComponentController.java index ca9f3ab7..70cc499e 100644 --- a/nflg-mobilebroken-admin/src/main/java/com/nflg/mobilebroken/admin/controller/DeviceComponentController.java +++ b/nflg-mobilebroken-admin/src/main/java/com/nflg/mobilebroken/admin/controller/DeviceComponentController.java @@ -72,6 +72,12 @@ public class DeviceComponentController extends ControllerBase { @PostMapping("getList") @ApiMark(moduleName = "机型部件管理", apiName = "获取设备机型列表") public ApiResult> getList(@RequestBody DeviceComponentQuery query){ + List modelNos = deviceService.getModelNoPermission(AdminUserUtil.getUserId()); + if (StrUtil.isNotBlank(query.getModelNo())){ + if (!modelNos.contains(query.getModelNo())){ + return ApiResult.success(new PageData<>()); + } + } List deviceComponents=deviceComponentService.getWithDeviceType(query.getModelNo(),query.getComponentSort()); Map> mps=deviceComponents.stream().collect(Collectors.groupingBy(DeviceComponent1VO::getDeviceType)); AtomicInteger index= new AtomicInteger(); @@ -83,7 +89,9 @@ public class DeviceComponentController extends ControllerBase { if (index.get() >= first && index.get() < last) { DeviceTypeVO vo=new DeviceTypeVO(); vo.setDeviceType(k); - vo.setItems(v.stream().map(d -> new DeviceComponentVO() + vo.setItems(v.stream() + .filter(it->modelNos.contains(it.getModelNo())) + .map(d -> new DeviceComponentVO() .setId(d.getId()) .setModelNo(d.getModelNo()) .setPartList(deviceComponentDetailService.getByModelNo(d.getModelNo()))).collect(Collectors.toList()) diff --git a/nflg-mobilebroken-common/src/main/java/com/nflg/mobilebroken/common/constant/Constant.java b/nflg-mobilebroken-common/src/main/java/com/nflg/mobilebroken/common/constant/Constant.java index 93dd096b..3a52d430 100644 --- a/nflg-mobilebroken-common/src/main/java/com/nflg/mobilebroken/common/constant/Constant.java +++ b/nflg-mobilebroken-common/src/main/java/com/nflg/mobilebroken/common/constant/Constant.java @@ -126,5 +126,16 @@ public class Constant { public static final String DICTIONARY_AD_TYPE ="AdvertisementType"; public static final String DICTIONARY_AD_POSITION ="AdvertisementPosition"; + public static final String DICTIONARY_SERVICE = "SystemService"; + + public static String PERMISSION_DEVICE_SEARCH="设备查询"; + + public static String PERMISSION_DEVICE_MANAGE="设备管理"; + + public static String PERMISSION_TICKET_MANAGE="工单管理"; + + public static String PERMISSION_MODEL_MANAGE="机型管理"; + + public static String DICTIONARY_DATAPERMISSION="DataPermissionModule"; } diff --git a/nflg-mobilebroken-common/src/main/java/com/nflg/mobilebroken/common/pojo/request/DataRoleItemRequest.java b/nflg-mobilebroken-common/src/main/java/com/nflg/mobilebroken/common/pojo/request/DataRoleItemRequest.java index d37f8bdf..e80d0bd7 100644 --- a/nflg-mobilebroken-common/src/main/java/com/nflg/mobilebroken/common/pojo/request/DataRoleItemRequest.java +++ b/nflg-mobilebroken-common/src/main/java/com/nflg/mobilebroken/common/pojo/request/DataRoleItemRequest.java @@ -4,6 +4,7 @@ import com.nflg.mobilebroken.common.constant.ProductionLinePermissionType; import lombok.Data; import javax.validation.constraints.NotNull; +import java.util.List; @Data public class DataRoleItemRequest { @@ -19,4 +20,9 @@ public class DataRoleItemRequest { */ @NotNull private ProductionLinePermissionType type; + + /** + * 产品线ID列表 + */ + private List productionLineIds; } diff --git a/nflg-mobilebroken-product/src/main/java/com/nflg/mobilebroken/product/controller/DataController.java b/nflg-mobilebroken-product/src/main/java/com/nflg/mobilebroken/product/controller/DataController.java deleted file mode 100644 index cf252f64..00000000 --- a/nflg-mobilebroken-product/src/main/java/com/nflg/mobilebroken/product/controller/DataController.java +++ /dev/null @@ -1,80 +0,0 @@ -package com.nflg.mobilebroken.product.controller; - -import com.nflg.mobilebroken.common.pojo.ApiResult; -import com.nflg.mobilebroken.common.pojo.vo.*; -import com.nflg.mobilebroken.common.util.MultilingualUtil; -import com.nflg.mobilebroken.repository.service.IProductModelService; -import com.nflg.mobilebroken.repository.service.IProductSeriesService; -import com.nflg.mobilebroken.repository.service.IProductTypeService; -import lombok.extern.slf4j.Slf4j; -import org.springframework.web.bind.annotation.GetMapping; -import org.springframework.web.bind.annotation.RequestMapping; -import org.springframework.web.bind.annotation.RequestParam; -import org.springframework.web.bind.annotation.RestController; - -import javax.annotation.Resource; -import javax.validation.Valid; -import javax.validation.constraints.NotNull; -import java.util.List; - -/** - * 系列 - */ -@Slf4j -@RestController -@RequestMapping("/data") -public class DataController extends BaseController{ - - @Resource - private IProductSeriesService productSeriesService; - - @Resource - private IProductTypeService productTypeService; - - @Resource - private IProductModelService productModelService; - - /** - * 获取产品系列列表 - */ - @GetMapping("/getSeries") - public ApiResult> getSeries(){ - return ApiResult.success(productSeriesService.get(MultilingualUtil.getLanguage())); - } - - /** - * 获取产品类型列表 - * @param seriesId 产品系列id - */ - @GetMapping("/getType") - public ApiResult> getType(@Valid @RequestParam @NotNull Integer seriesId){ - return ApiResult.success(productTypeService.get(seriesId,MultilingualUtil.getLanguage())); - } - - /** - * 获取产品机型列表 - * @param typeId 产品类型id - */ - @GetMapping("/getModel") - public ApiResult> getModel(@Valid @RequestParam @NotNull Integer typeId){ - return ApiResult.success(productModelService.get(typeId,MultilingualUtil.getLanguage())); - } - - /** - * 获取产品机型详情 - * @param modelId 产品机型id - */ - @GetMapping("/getModelInfo") - public ApiResult getModelInfo(@Valid @RequestParam @NotNull Integer modelId){ - return ApiResult.success(productModelService.getInfo(modelId,MultilingualUtil.getLanguage())); - } - - /** - * 获取产品机型参数列表 - * @param modelId 产品机型id - */ - @GetMapping("/getModelParams") - public ApiResult getModelParams(@Valid @RequestParam @NotNull Integer modelId){ - return ApiResult.success(productModelService.getParams(modelId,MultilingualUtil.getLanguage())); - } -} diff --git a/nflg-mobilebroken-repository/src/main/java/com/nflg/mobilebroken/repository/mapper/AdminUserMapper.java b/nflg-mobilebroken-repository/src/main/java/com/nflg/mobilebroken/repository/mapper/AdminUserMapper.java index 82180517..d4857554 100644 --- a/nflg-mobilebroken-repository/src/main/java/com/nflg/mobilebroken/repository/mapper/AdminUserMapper.java +++ b/nflg-mobilebroken-repository/src/main/java/com/nflg/mobilebroken/repository/mapper/AdminUserMapper.java @@ -3,6 +3,7 @@ package com.nflg.mobilebroken.repository.mapper; import com.baomidou.mybatisplus.core.mapper.BaseMapper; import com.nflg.mobilebroken.common.pojo.vo.AdminUserSimpleVO; import com.nflg.mobilebroken.repository.entity.AdminUser; +import com.nflg.mobilebroken.repository.entity.DataRole; import java.util.List; @@ -21,4 +22,6 @@ public interface AdminUserMapper extends BaseMapper { List getSimples(List userIds); List getTickerMangagers(List titleCodes); + + DataRole getDataPermission(Integer userId); } diff --git a/nflg-mobilebroken-repository/src/main/java/com/nflg/mobilebroken/repository/mapper/AnonymousTicketMapper.java b/nflg-mobilebroken-repository/src/main/java/com/nflg/mobilebroken/repository/mapper/AnonymousTicketMapper.java index 6d30da0c..b54108bc 100644 --- a/nflg-mobilebroken-repository/src/main/java/com/nflg/mobilebroken/repository/mapper/AnonymousTicketMapper.java +++ b/nflg-mobilebroken-repository/src/main/java/com/nflg/mobilebroken/repository/mapper/AnonymousTicketMapper.java @@ -6,6 +6,8 @@ import com.nflg.mobilebroken.common.pojo.request.AnonymousTicketSearchRequest; import com.nflg.mobilebroken.common.pojo.vo.AnonymousTicketSearchVO; import com.nflg.mobilebroken.repository.entity.AnonymousTicket; +import java.util.List; + /** *

* Mapper 接口 @@ -16,5 +18,5 @@ import com.nflg.mobilebroken.repository.entity.AnonymousTicket; */ public interface AnonymousTicketMapper extends BaseMapper { - IPage search(AnonymousTicketSearchRequest request, IPage objectPage); + IPage search(AnonymousTicketSearchRequest request, List productionLines, IPage objectPage); } diff --git a/nflg-mobilebroken-repository/src/main/java/com/nflg/mobilebroken/repository/mapper/DeviceMapper.java b/nflg-mobilebroken-repository/src/main/java/com/nflg/mobilebroken/repository/mapper/DeviceMapper.java index fb640ab8..dc6ab448 100644 --- a/nflg-mobilebroken-repository/src/main/java/com/nflg/mobilebroken/repository/mapper/DeviceMapper.java +++ b/nflg-mobilebroken-repository/src/main/java/com/nflg/mobilebroken/repository/mapper/DeviceMapper.java @@ -31,11 +31,11 @@ public interface DeviceMapper extends BaseMapper { * @param query * @return */ - Page getList(@Param("page") Page page, PageBaseQuery query); + Page getList(@Param("page") Page page, PageBaseQuery query,List productionLines); void batchDelByIds(@Param("ids")List ids); - Page searchDevice(SearchDeviceRequest request, List companyIds,String language, Page page); + Page searchDevice(SearchDeviceRequest request, List companyIds,List productionLines,String language, Page page); void taskWarrantyStateNotStarted(); @@ -46,4 +46,6 @@ public interface DeviceMapper extends BaseMapper { List getComponents(Integer componentId,String language); List getAgents(); + + List getModelNoPermission(List productionLines); } diff --git a/nflg-mobilebroken-repository/src/main/java/com/nflg/mobilebroken/repository/mapper/TicketMapper.java b/nflg-mobilebroken-repository/src/main/java/com/nflg/mobilebroken/repository/mapper/TicketMapper.java index 441bed69..1c45ae81 100644 --- a/nflg-mobilebroken-repository/src/main/java/com/nflg/mobilebroken/repository/mapper/TicketMapper.java +++ b/nflg-mobilebroken-repository/src/main/java/com/nflg/mobilebroken/repository/mapper/TicketMapper.java @@ -27,17 +27,17 @@ public interface TicketMapper extends BaseMapper { IPage searchArea(IPage page, TicketSearchRequest request, String companyId, Integer userId,String language,Boolean isPrimary,String companyCode); - IPage searchFromAdmin(AdminTicketSearchRequest request, Integer userId, IPage page); + IPage searchFromAdmin(AdminTicketSearchRequest request, Integer userId,List productionLines, IPage page); // void completeTicket(List ids, Integer userId); - List searchAllFromAdmin(AdminTicketSearchRequest request, Integer userId); + List searchAllFromAdmin(AdminTicketSearchRequest request, Integer userId,List productionLines); - IPage searchFromAdminAndFollow(AdminTicketSearchRequest request, Integer userId, IPage page); + IPage searchFromAdminAndFollow(AdminTicketSearchRequest request, Integer userId,List productionLines, IPage page); - List searchAllFromAdminAndFollow(AdminTicketSearchRequest request, Integer userId); + List searchAllFromAdminAndFollow(AdminTicketSearchRequest request, Integer userId,List productionLines); List getAdminFavorites(Integer userId,Integer favoritesId); - IPage searchByFavouritesId(Integer userId, Integer favouritesId, Page page); + IPage searchByFavouritesId(Integer userId, Integer favouritesId,List productionLines, Page page); } diff --git a/nflg-mobilebroken-repository/src/main/java/com/nflg/mobilebroken/repository/service/IAdminUserService.java b/nflg-mobilebroken-repository/src/main/java/com/nflg/mobilebroken/repository/service/IAdminUserService.java index c73930c2..9baa6c6e 100644 --- a/nflg-mobilebroken-repository/src/main/java/com/nflg/mobilebroken/repository/service/IAdminUserService.java +++ b/nflg-mobilebroken-repository/src/main/java/com/nflg/mobilebroken/repository/service/IAdminUserService.java @@ -54,4 +54,6 @@ public interface IAdminUserService extends IService { List getTickerMangagers(); List getCQMIds(); + + List getDataPermission(Integer userId,String moduleName); } diff --git a/nflg-mobilebroken-repository/src/main/java/com/nflg/mobilebroken/repository/service/IDeviceService.java b/nflg-mobilebroken-repository/src/main/java/com/nflg/mobilebroken/repository/service/IDeviceService.java index 4eb4cfed..f0cbcded 100644 --- a/nflg-mobilebroken-repository/src/main/java/com/nflg/mobilebroken/repository/service/IDeviceService.java +++ b/nflg-mobilebroken-repository/src/main/java/com/nflg/mobilebroken/repository/service/IDeviceService.java @@ -38,4 +38,6 @@ public interface IDeviceService extends IService { void taskWarrantyStateNotOutsideWithinWarranty(); List getAgents(); + + List getModelNoPermission(Integer userId); } diff --git a/nflg-mobilebroken-repository/src/main/java/com/nflg/mobilebroken/repository/service/impl/AdminUserServiceImpl.java b/nflg-mobilebroken-repository/src/main/java/com/nflg/mobilebroken/repository/service/impl/AdminUserServiceImpl.java index 4138346d..63e5ae1f 100644 --- a/nflg-mobilebroken-repository/src/main/java/com/nflg/mobilebroken/repository/service/impl/AdminUserServiceImpl.java +++ b/nflg-mobilebroken-repository/src/main/java/com/nflg/mobilebroken/repository/service/impl/AdminUserServiceImpl.java @@ -3,11 +3,13 @@ package com.nflg.mobilebroken.repository.service.impl; import cn.hutool.core.collection.CollectionUtil; import cn.hutool.core.collection.ListUtil; import cn.hutool.core.util.StrUtil; +import cn.hutool.json.JSONUtil; 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.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.nflg.mobilebroken.common.constant.Constant; +import com.nflg.mobilebroken.common.constant.ProductionLinePermissionType; import com.nflg.mobilebroken.common.constant.STATE; import com.nflg.mobilebroken.common.constant.UserState; import com.nflg.mobilebroken.common.exception.NflgException; @@ -70,6 +72,9 @@ public class AdminUserServiceImpl extends ServiceImpl getDataPermission(Integer userId,String moduleName) { + AdminUser adminUser=getById(userId); + List defaultProductionLineIds = Collections.singletonList(adminUser.getProductionLineId()); + DataRole dr = baseMapper.getDataPermission(userId); + if (Objects.isNull(dr)) { + return defaultProductionLineIds; + } + List items = dictionaryItemService.getListByDictionaryCode(Constant.DICTIONARY_DATAPERMISSION); + DictionaryItem item = items.stream().filter(it -> Objects.equals(it.getName(), moduleName)).findFirst().orElse(null); + if (Objects.isNull(item)){ + return defaultProductionLineIds; + } + List configs = JSONUtil.toList(dr.getConfig(), DataRoleItemRequest.class); + DataRoleItemRequest cfg=configs.stream().filter(c -> Objects.equals(c.getModuleId(), item.getId())).findFirst().orElse(null); + if (Objects.isNull(cfg)){ + return defaultProductionLineIds; + }else if (Objects.equals(cfg.getType().getType(), ProductionLinePermissionType.ShowMe.getType())){ + return null; + }else if (Objects.equals(cfg.getType().getType(), ProductionLinePermissionType.ShowOwned.getType())){ + return defaultProductionLineIds; + }else if (Objects.equals(cfg.getType().getType(), ProductionLinePermissionType.Customize.getType())){ + return cfg.getProductionLineIds(); + } + return defaultProductionLineIds; + } + private String getDepartmentName(Long departmentId) { TBaseDepartment department = departmentService.lambdaQuery() .eq(TBaseDepartment::getId, departmentId) diff --git a/nflg-mobilebroken-repository/src/main/java/com/nflg/mobilebroken/repository/service/impl/AnonymousTicketServiceImpl.java b/nflg-mobilebroken-repository/src/main/java/com/nflg/mobilebroken/repository/service/impl/AnonymousTicketServiceImpl.java index 16d04114..c4852fb0 100644 --- a/nflg-mobilebroken-repository/src/main/java/com/nflg/mobilebroken/repository/service/impl/AnonymousTicketServiceImpl.java +++ b/nflg-mobilebroken-repository/src/main/java/com/nflg/mobilebroken/repository/service/impl/AnonymousTicketServiceImpl.java @@ -5,12 +5,14 @@ import cn.hutool.core.util.StrUtil; import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.nflg.mobilebroken.common.constant.Constant; import com.nflg.mobilebroken.common.pojo.request.AnonymousTicketAddRequest; import com.nflg.mobilebroken.common.pojo.request.AnonymousTicketSearchRequest; import com.nflg.mobilebroken.common.pojo.vo.AnonymousTicketInfoVO; import com.nflg.mobilebroken.common.pojo.vo.AnonymousTicketSearchVO; import com.nflg.mobilebroken.common.pojo.vo.DeviceInfoVO; import com.nflg.mobilebroken.common.pojo.vo.FileUploadVO; +import com.nflg.mobilebroken.common.util.AdminUserUtil; import com.nflg.mobilebroken.common.util.MultilingualUtil; import com.nflg.mobilebroken.common.util.TicketUtil; import com.nflg.mobilebroken.common.util.VUtils; @@ -54,6 +56,9 @@ public class AnonymousTicketServiceImpl extends ServiceImpl(request.getPage(), request.getPageSize())); + List productionLines = adminUserService.getDataPermission(AdminUserUtil.getUserId(), Constant.PERMISSION_TICKET_MANAGE); + return baseMapper.search(request,productionLines, new Page<>(request.getPage(), request.getPageSize())); } @Override diff --git a/nflg-mobilebroken-repository/src/main/java/com/nflg/mobilebroken/repository/service/impl/DeviceServiceImpl.java b/nflg-mobilebroken-repository/src/main/java/com/nflg/mobilebroken/repository/service/impl/DeviceServiceImpl.java index fa14b7a9..1cf78775 100644 --- a/nflg-mobilebroken-repository/src/main/java/com/nflg/mobilebroken/repository/service/impl/DeviceServiceImpl.java +++ b/nflg-mobilebroken-repository/src/main/java/com/nflg/mobilebroken/repository/service/impl/DeviceServiceImpl.java @@ -1,20 +1,25 @@ package com.nflg.mobilebroken.repository.service.impl; +import cn.hutool.core.util.StrUtil; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.nflg.mobilebroken.common.constant.Constant; import com.nflg.mobilebroken.common.pojo.query.PageBaseQuery; import com.nflg.mobilebroken.common.pojo.request.SearchDeviceRequest; import com.nflg.mobilebroken.common.pojo.vo.DeviceAgentVO; import com.nflg.mobilebroken.common.pojo.vo.DeviceInfoVO; import com.nflg.mobilebroken.common.pojo.vo.DeviceVO; +import com.nflg.mobilebroken.common.util.AdminUserUtil; import com.nflg.mobilebroken.common.util.AppUserUtil; import com.nflg.mobilebroken.common.util.MultilingualUtil; import com.nflg.mobilebroken.repository.entity.Device; import com.nflg.mobilebroken.repository.mapper.DeviceMapper; +import com.nflg.mobilebroken.repository.service.IAdminUserService; import com.nflg.mobilebroken.repository.service.IDeviceService; import org.apache.ibatis.annotations.Param; import org.springframework.stereotype.Service; +import javax.annotation.Resource; import java.util.List; import java.util.Objects; import java.util.Optional; @@ -30,6 +35,9 @@ import java.util.Optional; @Service public class DeviceServiceImpl extends ServiceImpl implements IDeviceService { + @Resource + private IAdminUserService adminUserService; + @Override public DeviceInfoVO getByDeviceNo(String deviceNo) { DeviceInfoVO vo = baseMapper.getByDeviceNo(deviceNo); @@ -41,7 +49,8 @@ public class DeviceServiceImpl extends ServiceImpl impleme public Page getList(@Param("page") Page page, PageBaseQuery query){ - return this.getBaseMapper().getList(page,query); + List productionLines = adminUserService.getDataPermission(AdminUserUtil.getUserId(),Constant.PERMISSION_DEVICE_MANAGE); + return this.getBaseMapper().getList(page,query,productionLines); } public void batchDelByIds(@Param("ids") List ids){ @@ -49,15 +58,13 @@ public class DeviceServiceImpl extends ServiceImpl impleme } @Override - public Page searchDevice(SearchDeviceRequest request,String language) { -// IPage page = lambdaQuery() -// .like(StrUtil.isNotBlank(request.getDeviceNo()), Device::getDeviceNo, request.getDeviceNo()) -// .like(StrUtil.isNotBlank(request.getModelNo()), Device::getModelNo, request.getModelNo()) -// .between(Objects.nonNull(request.getStartTime()), Device::getShipmentDate, request.getStartTime(), request.getEndTime()) -// .page(new Page<>(request.getPage(), request.getPageSize())); -// return PageUtil.convert(page, d -> Convert.convert(DeviceVO.class, d)); + public Page searchDevice(SearchDeviceRequest request, String language) { + List productionLines = null; + if (StrUtil.equals(Constant.FROM_ADMIN, AppUserUtil.getFrom())) { + productionLines = adminUserService.getDataPermission(AppUserUtil.getUserId(), Constant.PERMISSION_DEVICE_SEARCH); + } List companyIds = AppUserUtil.getCompanyIds(); - return baseMapper.searchDevice(request, companyIds,language ,new Page<>(request.getPage(), request.getPageSize())); + return baseMapper.searchDevice(request, companyIds, productionLines, language, new Page<>(request.getPage(), request.getPageSize())); } public void taskWarrantyStateNotStarted(){ @@ -76,4 +83,10 @@ public class DeviceServiceImpl extends ServiceImpl impleme public List getAgents() { return baseMapper.getAgents(); } -} + + @Override + public List getModelNoPermission(Integer userId) { + List productionLines = adminUserService.getDataPermission(AdminUserUtil.getUserId(),Constant.PERMISSION_MODEL_MANAGE); + return baseMapper.getModelNoPermission(productionLines); + } +} \ No newline at end of file diff --git a/nflg-mobilebroken-repository/src/main/java/com/nflg/mobilebroken/repository/service/impl/TicketServiceImpl.java b/nflg-mobilebroken-repository/src/main/java/com/nflg/mobilebroken/repository/service/impl/TicketServiceImpl.java index cd7e500a..1c5d7f68 100644 --- a/nflg-mobilebroken-repository/src/main/java/com/nflg/mobilebroken/repository/service/impl/TicketServiceImpl.java +++ b/nflg-mobilebroken-repository/src/main/java/com/nflg/mobilebroken/repository/service/impl/TicketServiceImpl.java @@ -156,18 +156,19 @@ public class TicketServiceImpl extends ServiceImpl impleme @Override public IPage searchPage(AdminTicketSearchRequest request) { Integer userId = AdminUserUtil.getUserId(); - if (Objects.nonNull(request.getFavouritesId())){ - return baseMapper.searchByFavouritesId(userId,request.getFavouritesId(), new Page<>(request.getPage(), request.getPageSize())); - }else { + List productionLines = adminUserService.getDataPermission(AdminUserUtil.getUserId(), Constant.PERMISSION_TICKET_MANAGE); + if (Objects.nonNull(request.getFavouritesId())) { + return baseMapper.searchByFavouritesId(userId, request.getFavouritesId(), productionLines, new Page<>(request.getPage(), request.getPageSize())); + } else { if (Objects.nonNull(request.getEndTime())) { request.setEndTime(request.getEndTime().plusDays(1)); } List tickerMangagers = adminUserService.getTickerMangagers(); request.setTicketManager(tickerMangagers.stream().anyMatch(uid -> Objects.equals(uid, userId))); if (request.getType() == 2) { - return baseMapper.searchFromAdminAndFollow(request, userId, new Page<>(request.getPage(), request.getPageSize())); + return baseMapper.searchFromAdminAndFollow(request, userId,productionLines, new Page<>(request.getPage(), request.getPageSize())); } else if (request.getType() == 4) { - return baseMapper.searchFromAdmin(request, userId, new Page<>(request.getPage(), request.getPageSize())); + return baseMapper.searchFromAdmin(request, userId,productionLines, new Page<>(request.getPage(), request.getPageSize())); } return new Page<>(request.getPage(), request.getPageSize(), 0); } @@ -269,13 +270,14 @@ public class TicketServiceImpl extends ServiceImpl impleme @Override public List exportSearch(AdminTicketSearchRequest request) { + List productionLines = adminUserService.getDataPermission(AdminUserUtil.getUserId(), Constant.PERMISSION_TICKET_MANAGE); if (request.getType() == 2) { - return baseMapper.searchAllFromAdminAndFollow(request, AdminUserUtil.getUserId()); + return baseMapper.searchAllFromAdminAndFollow(request, AdminUserUtil.getUserId(),productionLines); } else if (request.getType() == 4) { Integer userId=AdminUserUtil.getUserId(); List tickerMangagers=adminUserService.getTickerMangagers(); request.setTicketManager(tickerMangagers.stream().anyMatch(uid -> Objects.equals(uid, userId))); - return baseMapper.searchAllFromAdmin(request, userId); + return baseMapper.searchAllFromAdmin(request, userId,productionLines); } return Collections.emptyList(); } diff --git a/nflg-mobilebroken-repository/src/main/resources/mapper/AdminUserMapper.xml b/nflg-mobilebroken-repository/src/main/resources/mapper/AdminUserMapper.xml index 9cd0f769..6aa8b8cf 100644 --- a/nflg-mobilebroken-repository/src/main/resources/mapper/AdminUserMapper.xml +++ b/nflg-mobilebroken-repository/src/main/resources/mapper/AdminUserMapper.xml @@ -33,4 +33,11 @@ #{titleCode} + + diff --git a/nflg-mobilebroken-repository/src/main/resources/mapper/AnonymousTicketMapper.xml b/nflg-mobilebroken-repository/src/main/resources/mapper/AnonymousTicketMapper.xml index 894695c5..eef37f2a 100644 --- a/nflg-mobilebroken-repository/src/main/resources/mapper/AnonymousTicketMapper.xml +++ b/nflg-mobilebroken-repository/src/main/resources/mapper/AnonymousTicketMapper.xml @@ -14,6 +14,12 @@ LEFT JOIN t_base_part p ON t.component_id=p.id LEFT JOIN t_base_customer c ON c.agency_company_code=d.agent_code + + AND d.production_line_id IN + + #{plId} + + AND t.component=#{request.component} diff --git a/nflg-mobilebroken-repository/src/main/resources/mapper/DeviceMapper.xml b/nflg-mobilebroken-repository/src/main/resources/mapper/DeviceMapper.xml index 730cc4ab..0768dada 100644 --- a/nflg-mobilebroken-repository/src/main/resources/mapper/DeviceMapper.xml +++ b/nflg-mobilebroken-repository/src/main/resources/mapper/DeviceMapper.xml @@ -48,8 +48,13 @@ select a.id, device_no, device_name, device_type, device_type_sub, model_no, customer_id, customer_name, device_state, agent_code, agent_name, shipment_date, warranty_state, start_warranty_date, warranty_month, data_valid_state, source_from, create_by, create_time, update_by, update_time, remark ,b.area_code ,b.area_name from device a left join t_base_customer b on a.agent_code=b.agency_company_code where data_valid_state=1 + + AND a.production_line_id in + + #{plId} + + - @@ -71,6 +76,12 @@ #{companyId} + + AND d.production_line_id in + + #{plId} + + and d.device_no LIKE concat('%', #{request.deviceNo}, '%') @@ -118,4 +129,17 @@ FROM device WHERE LENGTH(agent_code)>0 + + diff --git a/nflg-mobilebroken-repository/src/main/resources/mapper/TicketMapper.xml b/nflg-mobilebroken-repository/src/main/resources/mapper/TicketMapper.xml index e8564263..4ba23ab1 100644 --- a/nflg-mobilebroken-repository/src/main/resources/mapper/TicketMapper.xml +++ b/nflg-mobilebroken-repository/src/main/resources/mapper/TicketMapper.xml @@ -38,6 +38,12 @@ t.state!=4 + + AND d.production_line_id in + + #{plId} + + AND (FIND_IN_SET(#{userId},t.handle)>0 OR fun_inAduit(t.id,#{userId})=1) @@ -255,6 +261,14 @@ LEFT JOIN admin_user auc ON t.cqm=auc.id LEFT JOIN admin_user auh ON t.current_handle=auh.id LEFT JOIN t_base_part p ON t.component_id=p.id + + + AND d.production_line_id in + + #{plId} + + + ORDER BY t.state,t.id DESC