From 039abee6b27058ca46b1e1e82aa0b5407a5dad44 Mon Sep 17 00:00:00 2001 From: liujie <1793218484@qq.com> Date: 星期一, 28 七月 2025 15:25:26 +0800 Subject: [PATCH] 优化 和修改bug --- springcloud_k8s_panzhihuazhihuishequ/service_westcommittee/src/main/java/com/panzhihua/westcommittee/api/AnalyticStatisticsController.java | 186 +++++++++++++--------------------------------- 1 files changed, 53 insertions(+), 133 deletions(-) diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_westcommittee/src/main/java/com/panzhihua/westcommittee/api/AnalyticStatisticsController.java b/springcloud_k8s_panzhihuazhihuishequ/service_westcommittee/src/main/java/com/panzhihua/westcommittee/api/AnalyticStatisticsController.java index 7b9cd24..fa6c45d 100644 --- a/springcloud_k8s_panzhihuazhihuishequ/service_westcommittee/src/main/java/com/panzhihua/westcommittee/api/AnalyticStatisticsController.java +++ b/springcloud_k8s_panzhihuazhihuishequ/service_westcommittee/src/main/java/com/panzhihua/westcommittee/api/AnalyticStatisticsController.java @@ -5,7 +5,7 @@ import com.panzhihua.common.controller.BaseController; import com.panzhihua.common.exceptions.ServiceException; import com.panzhihua.common.model.vos.R; -import com.panzhihua.common.model.vos.sangeshenbian.SystemUserVo; +import com.panzhihua.common.model.vos.west.SystemUserVo; import com.panzhihua.westcommittee.model.entity.*; import com.panzhihua.westcommittee.model.query.AnalyticStatisticsQuery; import com.panzhihua.westcommittee.model.vo.*; @@ -52,50 +52,40 @@ @Resource private IComActService comActService; + @Resource + private ISystemUserService iSystemUserService; + @PostMapping("/data") @ApiOperation(value = "分析统计", tags = {"西区纪委后台-分析统计"}) public R<AnalyticStatisticsDataVo> data(@Valid @RequestBody AnalyticStatisticsQuery query){ - SystemUserVo loginUserInfoSanGeShenBian = getLoginUserInfoWest(); - Integer id = loginUserInfoSanGeShenBian.getId(); - List<SystemUserLevel> listBySystemUsers = systemUserLevelService.getListBySystemUserId(id); - if(listBySystemUsers.size()==0){ - // 没有权限 - return R.ok(new AnalyticStatisticsDataVo()); - } + SystemUserVo loginUserInfo = getLoginUserInfoWest(); + Integer id = loginUserInfo.getId(); + SystemUser systemUser = iSystemUserService.getById(id); + Integer accountLevel = systemUser.getAccountLevel(); LambdaQueryWrapper<Complaint> wrapper = new LambdaQueryWrapper<>(); - SystemUserLevel systemUserLevel = listBySystemUsers.stream().filter(e -> e.getLevel() == 1).findFirst().orElse(null); - if(query.getCityCode()!=null){ - // 判断是否有市级权限 - if(systemUserLevel==null){ - throw new ServiceException("没有市级权限"); - } - wrapper.eq(Complaint::getCityCode, query.getCityCode()); - } if(query.getDistrictCode()!=null){ - // 判断是否有区县权限 - List<SystemUserLevel> systemUserLevels2 = listBySystemUsers.stream().filter(e -> e.getLevel() == 2 && e.getDistrictsCode().equals(query.getDistrictCode().toString())).collect(Collectors.toList()); // 没有市权限 也没有该区权限 - if(systemUserLevels2.size()==0 && systemUserLevel==null){ + if(accountLevel!=2){ throw new ServiceException("没有该区县权限"); } - wrapper.eq(Complaint::getDistrictsCode, query.getDistrictCode()); + wrapper.eq(Complaint::getSuperiorId, query.getDistrictCode()); } - if(query.getStreetId()!=null){ + if(query.getStreetId()!=null && query.getCommunityId()==null){ // 获取街道上一级查看是否有上级权限 ComStreet comStreet = comStreetService.getById(query.getStreetId()); if(comStreet==null){ throw new ServiceException("没有该街道权限"); } - List<SystemUserLevel> systemUserLevels2 = listBySystemUsers.stream().filter(e -> e.getLevel() == 2 && e.getDistrictsCode().equals(comStreet.getAreaCode().toString())).collect(Collectors.toList()); - // 判断是否有街道权限 - List<SystemUserLevel> systemUserLevels3 = listBySystemUsers.stream().filter(e -> e.getLevel() == 3 && e.getStreetId().equals(query.getStreetId().toString())).collect(Collectors.toList()); // 没有市级 上级区县 本级街道权限 - if(systemUserLevels3.size()==0 && systemUserLevel==null && systemUserLevels2.size()==0){ + if(accountLevel==2 || (accountLevel==3 && systemUser.getStreetId().equals(query.getStreetId().toString()))){ + List<Long> collect = comActService.list(new LambdaQueryWrapper<ComAct>().eq(ComAct::getStreetId, comStreet.getStreetId())).stream().map(ComAct::getCommunityId).collect(Collectors.toList()); + wrapper.eq(Complaint::getSuperiorId, query.getStreetId()).or().eq(Complaint::getLastSuperiorId,query.getStreetId()).or(w->w.in(Complaint::getSuperiorId,collect).eq(Complaint::getNowLevel,4)).or(w->w.in(Complaint::getLastSuperiorId,collect).eq(Complaint::getLastLevel,4)); + }else { throw new ServiceException("没有该街道权限"); } - wrapper.eq(Complaint::getStreetId, query.getStreetId()); + } if(query.getCommunityId()!=null){ @@ -103,72 +93,38 @@ if (comAct == null) { throw new ServiceException("没有该社区权限"); } - // 查看是否有上级街道权限 - List<SystemUserLevel> systemUserLevels2 = listBySystemUsers.stream().filter(e -> e.getLevel() == 3 && e.getStreetId().equals(comAct.getStreetId().toString())).collect(Collectors.toList()); - - // 查看是否有上级区权限 - List<SystemUserLevel> systemUserLevels3 = listBySystemUsers.stream().filter(e -> e.getLevel() == 2 && e.getDistrictsCode().equals(comAct.getAreaCode())).collect(Collectors.toList()); - - // 查看是否有本级权限 - List<SystemUserLevel> systemUserLevels4 = listBySystemUsers.stream().filter(e -> e.getLevel() == 4 && e.getCommunityId().equals(query.getCommunityId())).collect(Collectors.toList()); // 判断是否有上面的4个权限 - if(systemUserLevels4.size()==0 && systemUserLevels3.size()==0 && systemUserLevels2.size()==0 && systemUserLevel==null){ + if(accountLevel==2 || (accountLevel==3 && systemUser.getStreetId().equals(comAct.getStreetId().toString()) || accountLevel==4 && systemUser.getCommunityId().equals(comAct.getCommunityId()))){ + wrapper.eq(Complaint::getSuperiorId, query.getCommunityId()); + }else { throw new ServiceException("没有该社区权限"); } - wrapper.eq(Complaint::getCommunityId, query.getCommunityId()); } + // 都为空 查他有的 if(query.getCityCode()==null && query.getDistrictCode()==null && query.getStreetId()==null && query.getCommunityId()==null){ - // 看是否直接是市级账号 - if(systemUserLevel==null){ - List<String> districtsCodes=new ArrayList<>(); - List<String> streetIds=new ArrayList<>(); - List<Long> communityIds=new ArrayList<>(); - // 不是市级 查看是否是区县账号 - List<SystemUserLevel> systemUserLevels2 = listBySystemUsers.stream().filter(e -> e.getLevel() == 2).collect(Collectors.toList()); - if(!systemUserLevels2.isEmpty()){ - // 区县账号 找出code - districtsCodes = systemUserLevels2.stream().map(SystemUserLevel::getDistrictsCode).collect(Collectors.toList()); - }else { - districtsCodes.add("-1"); + if(systemUser.getSystemRoleId()==1 || systemUser.getSystemRoleId()==2){ + if(systemUser.getSystemRoleId()==1){ + wrapper.and(w->w.ne(Complaint::getProblemType,"检举控告").or().isNull(Complaint::getProblemType)); } - - List<SystemUserLevel> systemUserLevels3 = listBySystemUsers.stream().filter(e -> e.getLevel() == 3).collect(Collectors.toList()); - if(!systemUserLevels3.isEmpty()){ - // 街道账号 找出id 且不在上面的区县下的街道 - List<String> finalDistrictsCodes1 = districtsCodes; - streetIds = systemUserLevels3.stream().filter(e -> !finalDistrictsCodes1.contains(e.getDistrictsCode())).map(SystemUserLevel::getStreetId).collect(Collectors.toList()); - if(streetIds.isEmpty()){ - streetIds.add("-1"); - } - }else { - streetIds.add("-1"); + if(accountLevel==3){ + String streetId = systemUser.getStreetId(); + List<Long> ids = comActService.list(new LambdaQueryWrapper<ComAct>().eq(ComAct::getStreetId, streetId)).stream().map(ComAct::getCommunityId).collect(Collectors.toList()); + wrapper.eq(Complaint::getNowLevel,systemUser.getAccountLevel()).eq(Complaint::getSuperiorId,streetId).or(wrapper1 ->wrapper1.in(Complaint::getSuperiorId,ids).eq(Complaint::getNowLevel,4)); } - - List<SystemUserLevel> systemUserLevels4 = listBySystemUsers.stream().filter(e -> e.getLevel() == 4).collect(Collectors.toList()); - if(!systemUserLevels4.isEmpty()){ - // community账号 找出id 且不在上面的街道下的社区 - List<String> finalStreetIds1 = streetIds; - List<String> finalDistrictsCodes2 = districtsCodes; - communityIds = systemUserLevels4.stream().filter(e -> !finalStreetIds1.contains(e.getStreetId()) && !finalDistrictsCodes2.contains(e.getDistrictsCode())).map(SystemUserLevel::getCommunityId).collect(Collectors.toList()); - }else { - communityIds.add(-1L); + if(accountLevel==4){ + wrapper.eq(Complaint::getNowLevel,systemUser.getAccountLevel()).eq(Complaint::getSuperiorId,systemUser.getCommunityId()); } - List<String> finalDistrictsCodes = districtsCodes; - List<String> finalStreetIds = streetIds; - List<Long> finalCommunityIds = communityIds; - wrapper.and(wrapper1 -> { - wrapper1.in(Complaint::getDistrictsCode, finalDistrictsCodes).or().in(Complaint::getStreetId, finalStreetIds).or().in(Complaint::getCommunityId, finalCommunityIds); - }); - + }else { + wrapper.eq(Complaint::getNowLevel,systemUser.getAccountLevel()) + .eq(Complaint::getAssignPersonId,systemUser.getOneDepartmentId()); } } - SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); List<Complaint> complaints =complaintService.list(wrapper); // 第一部分数据 - AnalyticStatisticsOneVo analyticStatisticsOneVo = complaintService.analyticStatisticsOne(query,complaints,simpleDateFormat); + AnalyticStatisticsOneVo analyticStatisticsOneVo = complaintService.analyticStatisticsOne(query,complaints,simpleDateFormat,systemUser.getAccountLevel()); // 第二部分数据 List<AnalyticStatisticsTwoVo> analyticStatisticsTwoVos =complaintService.analyticStatisticsTwo(query.getTime(),complaints,simpleDateFormat); @@ -194,72 +150,36 @@ @GetMapping("/getRegion") @ApiOperation(value = "分析统计--获取市-区县-街道-社区", tags = {"西区纪委后台-分析统计--获取市-区县-街道-社区"}) public R<AnalyticStatisticsRegionVo> getRegion(){ - SystemUserVo loginUserInfoSanGeShenBian = getLoginUserInfoWest(); - Integer id = loginUserInfoSanGeShenBian.getId(); - List<SystemUserLevel> listBySystemUsers = systemUserLevelService.getListBySystemUserId(id); - // 如果有市级权限 展示所有 - SystemUserLevel systemUserLevel = listBySystemUsers.stream().filter(e -> e.getLevel() == 1).findFirst().orElse(null); + SystemUserVo loginUserInfo = getLoginUserInfoWest(); + Integer id = loginUserInfo.getId(); + SystemUser systemUser = iSystemUserService.getById(id); + // 如果有区权限 展示所有 AnalyticStatisticsRegionVo analyticStatisticsRegionVo = new AnalyticStatisticsRegionVo(); - if(systemUserLevel!=null){ + if(systemUser.getAccountLevel()==2){ // 查询所有的县 街道 社区 - List<BcRegion> list = bcRegionService.list(new LambdaQueryWrapper<BcRegion>().eq(BcRegion::getParentId, 510400)); - - List<ComStreet> list1 = comStreetService.list(new LambdaQueryWrapper<ComStreet>().eq(ComStreet::getCityCode, 510400)); - - List<ComAct> list2 = comActService.list(new LambdaQueryWrapper<ComAct>().eq(ComAct::getState,0).eq(ComAct::getCityCode, 510400)); - analyticStatisticsRegionVo.setBcRegions(list); + List<ComStreet> list1 = comStreetService.list(new LambdaQueryWrapper<ComStreet>().eq(ComStreet::getAppId, "wx0cef797390444b75")); + List<ComAct> list2 = comActService.list(new LambdaQueryWrapper<ComAct>().eq(ComAct::getState,0).eq(ComAct::getAppId, "wx0cef797390444b75")); analyticStatisticsRegionVo.setComStreets(list1); analyticStatisticsRegionVo.setComActs(list2); - return R.ok(analyticStatisticsRegionVo); } - // 有区县级权限 - List<SystemUserLevel> systemUserLevels = listBySystemUsers.stream().filter(e -> e.getLevel() == 2).collect(Collectors.toList()); - // 拥有的区县code - List<String> collect = systemUserLevels.stream().map(SystemUserLevel::getDistrictsCode).collect(Collectors.toList()); - if(collect.size()==0){ - collect.add("-1"); - } - // 找出这个区县的 - List<BcRegion> list = bcRegionService.list(new LambdaQueryWrapper<BcRegion>().eq(BcRegion::getParentId, 510400).in(BcRegion::getRegionCode, collect)); - // 区县街道 - List<ComStreet> list1 = comStreetService.list(new LambdaQueryWrapper<ComStreet>().in(ComStreet::getAreaCode, collect)); - - // 区县社区 - List<ComAct> list2 = comActService.list(new LambdaQueryWrapper<ComAct>().in(ComAct::getAreaCode, collect).eq(ComAct::getState,0)); - - // 有街道权限 排除上个查询出来的 - List<SystemUserLevel> systemUserLevels1 = listBySystemUsers.stream().filter(e -> e.getLevel() == 3 && !collect.contains(e.getDistrictsCode())).collect(Collectors.toList()); - List<String> collect1 = systemUserLevels1.stream().map(SystemUserLevel::getStreetId).collect(Collectors.toList()); - if(collect1.size()==0){ - collect1.add("-1"); + if(systemUser.getAccountLevel()==3){ + // 查询所有的县 街道 社区 + List<ComStreet> list1 = comStreetService.list(new LambdaQueryWrapper<ComStreet>().eq(ComStreet::getStreetId, systemUser.getStreetId()).eq(ComStreet::getAppId, "wx0cef797390444b75")); + List<ComAct> list2 = comActService.list(new LambdaQueryWrapper<ComAct>().eq(ComAct::getStreetId, systemUser.getStreetId()).eq(ComAct::getState,0).eq(ComAct::getAppId, "wx0cef797390444b75")); + analyticStatisticsRegionVo.setComStreets(list1); + analyticStatisticsRegionVo.setComActs(list2); + return R.ok(analyticStatisticsRegionVo); } - // 区县街道 - List<ComStreet> list3 = comStreetService.list(new LambdaQueryWrapper<ComStreet>().in(ComStreet::getStreetId, collect1)); - - // 区县社区 - List<ComAct> list4 = comActService.list(new LambdaQueryWrapper<ComAct>().in(ComAct::getStreetId, collect1).eq(ComAct::getState,0)); - - list1.addAll(list3); - list2.addAll(list4); - - // 有社区权限 排除上个查询出来的 - List<SystemUserLevel> systemUserLevels2 = listBySystemUsers.stream().filter(e -> e.getLevel() == 4 && !collect.contains(e.getDistrictsCode()) && !collect1.contains(e.getStreetId())).collect(Collectors.toList()); - List<Long> collect2 = systemUserLevels2.stream().map(SystemUserLevel::getCommunityId).collect(Collectors.toList()); - if(collect2.size()==0){ - collect2.add(-1l); + if(systemUser.getAccountLevel()==4){ + // 查询所有的县 街道 社区 + List<ComAct> list2 = comActService.list(new LambdaQueryWrapper<ComAct>().eq(ComAct::getCommunityId, systemUser.getCommunityId()).eq(ComAct::getState,0).eq(ComAct::getAppId, "wx0cef797390444b75")); + analyticStatisticsRegionVo.setComActs(list2); + return R.ok(analyticStatisticsRegionVo); } - - // 区县社区 - List<ComAct> list6 = comActService.list(new LambdaQueryWrapper<ComAct>().in(ComAct::getCommunityId, collect2).eq(ComAct::getState,0)); - list2.addAll(list6); - - analyticStatisticsRegionVo.setBcRegions(list); - analyticStatisticsRegionVo.setComStreets(list1); - analyticStatisticsRegionVo.setComActs(list2); return R.ok(analyticStatisticsRegionVo); @@ -274,7 +194,7 @@ }) public R<?> getNextRegion(@RequestParam String id, @RequestParam Integer type){ if(type==1){ - List<ComStreet> list3 = comStreetService.list(new LambdaQueryWrapper<ComStreet>().eq(ComStreet::getAreaCode, id)); + List<ComStreet> list3 = comStreetService.list(new LambdaQueryWrapper<ComStreet>().eq(ComStreet::getAppId, "wx0cef797390444b75")); return R.ok(list3); } if(type==2){ -- Gitblit v1.7.1