| | |
| | | public Object queryPageList(IPage<SgProjectInfoDO> page, ProjectSearchDTO searchDTO) { |
| | | List<String> sgCodeS = getSgCodeByUser(); |
| | | searchDTO.setSgCodeS(sgCodeS); |
| | | // setDeptId(searchDTO); |
| | | Boolean isPage = searchDTO.getIsPage(); |
| | | if (isPage==null) isPage = true; |
| | | if (isPage ){ |
| | |
| | | Map<Long, String> progressMap = projectProgress.stream().filter(s->s.getProjectProgress()!=null).collect(Collectors.toMap(SgProjectInfoDO::getId, SgProjectInfoDO::getProjectProgress)); |
| | | sgProjectInfoDOS.forEach(s->{ |
| | | s.setProjectProgress(progressMap.get(s.getId())); |
| | | // setPercentage(s); |
| | | }); |
| | | } |
| | | return page.setRecords(sgProjectInfoDOS); |
| | |
| | | Map<Long, String> progressMap = projectProgress.stream().filter(s->s.getProjectProgress()!=null).collect(Collectors.toMap(SgProjectInfoDO::getId, SgProjectInfoDO::getProjectProgress)); |
| | | sgProjectInfoDOS.forEach(s->{ |
| | | s.setProjectProgress(progressMap.get(s.getId())); |
| | | // setPercentage(s); |
| | | }); |
| | | } |
| | | sgProjectInfoDOS.forEach(s->{ |
| | |
| | | return sgProjectInfoDOS; |
| | | } |
| | | |
| | | } |
| | | |
| | | /** |
| | | * 设置百分号 |
| | | * @param s |
| | | */ |
| | | private void setPercentage(SgProjectInfoDO s) { |
| | | s.setSurfaceProgress(StringUtils.isNotBlank(s.getSurfaceProgress()) ?null:s.getSurfaceProgress()+"%"); |
| | | s.setVideoProgress(StringUtils.isNotBlank(s.getVideoProgress())?null:s.getVideoProgress()+"%"); |
| | | s.setTransProgress(StringUtils.isNotBlank(s.getTransProgress())?null:s.getTransProgress()+"%"); |
| | | s.setSeepageProgress(StringUtils.isNotBlank(s.getSeepageProgress())?null:s.getSeepageProgress()+"%"); |
| | | s.setProjectAddress(StringUtils.isNotBlank(s.getProjectProgress())?null:s.getProjectProgress()+"%"); |
| | | } |
| | | |
| | | /** |
| | |
| | | */ |
| | | @Override |
| | | public IPage<SgProjectInfoVO> progressPage(IPage<SgProjectInfoVO> page, ProjectSearchDTO searchDTO) { |
| | | // setDeptId(searchDTO); |
| | | List<SgProjectInfoVO> list = new ArrayList<>(); |
| | | if(StringUtils.isNotBlank(searchDTO.getAdCode())){ |
| | | list = sgProjectInfoMapper.progressList1(page, searchDTO); |
| | |
| | | list = sgProjectInfoMapper.progressList(page, searchDTO); |
| | | } |
| | | |
| | | List<Long> ids = list.stream().map(SgProjectInfoVO::getId).collect(Collectors.toList()); |
| | | searchDTO.setProjectIds(ids); |
| | | List<SgProjectInfoDO> projectProgress = new ArrayList<>(); |
| | | if(StringUtils.isNotBlank(searchDTO.getAdCode())){ |
| | | projectProgress = getProjectProgress(sgProjectInfoMapper.queryStepByProject1(searchDTO)); |
| | | }else { |
| | | projectProgress = getProjectProgress(sgProjectInfoMapper.queryStepByProject(searchDTO)); |
| | | } |
| | | // List<Long> ids = list.stream().map(SgProjectInfoVO::getId).collect(Collectors.toList()); |
| | | // searchDTO.setProjectIds(ids); |
| | | // List<SgProjectInfoDO> projectProgress = new ArrayList<>(); |
| | | // if(StringUtils.isNotBlank(searchDTO.getAdCode())){ |
| | | // projectProgress = getProjectProgress(sgProjectInfoMapper.queryStepByProject1(searchDTO)); |
| | | // }else { |
| | | // projectProgress = getProjectProgress(sgProjectInfoMapper.queryStepByProject(searchDTO)); |
| | | // } |
| | | |
| | | if (CollectionUtils.isNotEmpty(projectProgress)){ |
| | | Map<Long, String> progressMap = projectProgress.stream().filter(s->s!=null && s.getProjectProgress() !=null).collect(Collectors.toMap(SgProjectInfoDO::getId, SgProjectInfoDO::getProjectProgress)); |
| | | // if (CollectionUtils.isNotEmpty(projectProgress)){ |
| | | //Map<Long, String> progressMap = projectProgress.stream().filter(s->s!=null && s.getProjectProgress() !=null).collect(Collectors.toMap(SgProjectInfoDO::getId, SgProjectInfoDO::getProjectProgress)); |
| | | list.forEach(s->{ |
| | | s.setProjectProgress(progressMap.get(s.getId())); |
| | | });} |
| | | if (StringUtils.isNotBlank(s.getProjectProgress())){ |
| | | s.setProjectProgress(s.getProjectProgress()+"%"); |
| | | }else { |
| | | s.setProjectProgress("0%"); |
| | | } |
| | | }); |
| | | // } |
| | | return page.setRecords(list); |
| | | } |
| | | |
| | |
| | | public List<SgProjectInfoDO> listAll(ProjectSearchDTO searchDTO) { |
| | | List<String> sgCodeS = getSgCodeByUser(); |
| | | searchDTO.setSgCodeS(sgCodeS); |
| | | return sgProjectInfoMapper.queryPageList(null,searchDTO); |
| | | setDeptId(searchDTO); |
| | | List<SgProjectInfoDO> list = sgProjectInfoMapper.queryPageList(null, searchDTO); |
| | | return list; |
| | | } |
| | | |
| | | /** |
| | | * setDeptId |
| | | * @param searchDTO |
| | | */ |
| | | private void setDeptId(ProjectSearchDTO searchDTO) { |
| | | String deptId = AuthUtil.getDeptId(); |
| | | if (!deptId.equals("420000000000")){ |
| | | searchDTO.setDeptId(deptId); |
| | | } |
| | | } |
| | | |
| | | /** |
| | |
| | | //片区 |
| | | if (ywxtAdDetail == null) { |
| | | sgStatisProVOS = sgProjectInfoMapper.getsgStatisticsZero(code); |
| | | getDeviceTypes(sgStatisProVOS); |
| | | setDeviceTypes(sgStatisProVOS); |
| | | // String getname = sgProjectInfoMapper.getname(code); |
| | | String getname = code; |
| | | updateProjectProgress(sgStatisProVOS, code, getname, "2"); |
| | | } else if (ywxtAdDetail.getAdGrad().equals("1")) {//默认 |
| | | sgStatisProVOS = sgProjectInfoMapper.getsgStatisticsOne(code); |
| | | sgStatisProVOS = getSgStatisProVOS(sgStatisProVOS); |
| | | getDeviceTypes(sgStatisProVOS); |
| | | setDeviceTypes(sgStatisProVOS); |
| | | updateProjectProgress(sgStatisProVOS, ywxtAdDetail.getPAdCode(), ywxtAdDetail.getPAdName(), "0"); |
| | | } else {//区县 |
| | | sgStatisProVOS = sgProjectInfoMapper.getsgStatisticsList(code); |
| | | getDeviceTypes(sgStatisProVOS); |
| | | setDeviceTypes(sgStatisProVOS); |
| | | updateProjectProgress(sgStatisProVOS, ywxtAdDetail.getAdCode(), ywxtAdDetail.getAdName(), "3"); |
| | | } |
| | | return sgStatisProVOS; |
| | | } |
| | | |
| | | /** |
| | | * 统计施工进度 |
| | | * @param sgStatisProVOS |
| | | */ |
| | | private void setDeviceTypes(List<SgStatisProVO> sgStatisProVOS) { |
| | | if (CollectionUtils.isNotEmpty(sgStatisProVOS)){ |
| | | Map<String, SgOperatingRateVO> deviceTypes = getDeviceTypes(sgStatisProVOS.stream().map(SgStatisProVO::getProIds).collect(Collectors.toList())); |
| | | for (SgStatisProVO vo : sgStatisProVOS) { |
| | | SgOperatingRateVO sVo = deviceTypes.get(vo.getProIds()); |
| | | if (Objects.nonNull(sVo)){ |
| | | vo.setSurfaceNum(sVo.getSurfaceNum()); |
| | | vo.setSurfaceProgress(sVo.getSurfaceProgress()); |
| | | vo.setVideoNum(sVo.getVideoNum()); |
| | | vo.setVideoProgress(sVo.getVideoProgress()); |
| | | vo.setTransNum(sVo.getTransNum()); |
| | | vo.setTransProgress(sVo.getTransProgress()); |
| | | vo.setSeepageNum(sVo.getSeepageNum()); |
| | | vo.setSeepageProgress(sVo.getSeepageProgress()); |
| | | } |
| | | } |
| | | } |
| | | } |
| | | |
| | | /** |
| | |
| | | |
| | | /** |
| | | * 统计设备类型开工率 |
| | | * @param sgStatisProVOS |
| | | */ |
| | | private void getDeviceTypes(List<SgStatisProVO> sgStatisProVOS) { |
| | | if (CollectionUtils.isNotEmpty(sgStatisProVOS)){ |
| | | for (SgStatisProVO vo : sgStatisProVOS) { |
| | | String proIds = vo.getProIds(); |
| | | public Map<String,SgOperatingRateVO> getDeviceTypes(List<String> projectIds) { |
| | | Map<String,SgOperatingRateVO> result = new HashMap<>(); |
| | | if (CollectionUtils.isNotEmpty(projectIds)){ |
| | | for (String proIds : projectIds) { |
| | | SgOperatingRateVO sgOperatingRateVO = new SgOperatingRateVO(); |
| | | if (StringUtils.isNotBlank(proIds)){ |
| | | List<SgStatisDeviceVO> deviceVOS = sgProjectInfoMapper.getDeviceTypes("("+proIds+")"); |
| | | if(CollectionUtils.isNotEmpty(deviceVOS)){ |
| | |
| | | if (Objects.nonNull(sg108)){ |
| | | Integer deviceCount = sg108.getDeviceCount(); |
| | | Integer deviceStart = sg108.getDeviceStart(); |
| | | vo.setSurfaceNum(deviceCount); |
| | | sgOperatingRateVO.setSurfaceNum(deviceCount); |
| | | if (deviceCount != 0){ |
| | | BigDecimal divide = BigDecimal.valueOf(deviceStart).divide(BigDecimal.valueOf(deviceCount), 2, BigDecimal.ROUND_UP); |
| | | vo.setSeepageProgress(getBigDecimalPercent(divide)); |
| | | sgOperatingRateVO.setSeepageProgress(getBigDecimalPercent(divide)); |
| | | }else { |
| | | vo.setSeepageProgress("0%"); |
| | | sgOperatingRateVO.setSeepageProgress("0"); |
| | | } |
| | | } |
| | | //视频 |
| | |
| | | if (Objects.nonNull(sg104)){ |
| | | Integer deviceCount = sg104.getDeviceCount(); |
| | | Integer deviceStart = sg104.getDeviceStart(); |
| | | vo.setVideoNum(deviceCount); |
| | | sgOperatingRateVO.setVideoNum(deviceCount); |
| | | if (deviceCount != 0){ |
| | | BigDecimal divide = BigDecimal.valueOf(deviceStart).divide(BigDecimal.valueOf(deviceCount), 2, BigDecimal.ROUND_UP); |
| | | vo.setVideoProgress(getBigDecimalPercent(divide)); |
| | | sgOperatingRateVO.setVideoProgress(getBigDecimalPercent(divide)); |
| | | }else { |
| | | vo.setVideoProgress("0%"); |
| | | sgOperatingRateVO.setVideoProgress("0"); |
| | | } |
| | | } |
| | | //渗压 |
| | |
| | | if (Objects.nonNull(sg101)){ |
| | | Integer deviceCount = sg101.getDeviceCount(); |
| | | Integer deviceStart = sg101.getDeviceStart(); |
| | | vo.setTransNum(deviceCount); |
| | | sgOperatingRateVO.setTransNum(deviceCount); |
| | | if (deviceCount != 0){ |
| | | BigDecimal divide = BigDecimal.valueOf(deviceStart).divide(BigDecimal.valueOf(deviceCount), 2, BigDecimal.ROUND_UP); |
| | | vo.setTransProgress(getBigDecimalPercent(divide)); |
| | | sgOperatingRateVO.setTransProgress(getBigDecimalPercent(divide)); |
| | | }else { |
| | | vo.setTransProgress("0%"); |
| | | sgOperatingRateVO.setTransProgress("0"); |
| | | } |
| | | } |
| | | //渗流 |
| | |
| | | if (Objects.nonNull(sg102)){ |
| | | Integer deviceCount = sg102.getDeviceCount(); |
| | | Integer deviceStart = sg102.getDeviceStart(); |
| | | vo.setSeepageNum(deviceCount); |
| | | sgOperatingRateVO.setSeepageNum(deviceCount); |
| | | if (deviceCount != 0){ |
| | | BigDecimal divide = BigDecimal.valueOf(deviceStart).divide(BigDecimal.valueOf(deviceCount), 2, BigDecimal.ROUND_UP); |
| | | vo.setSeepageProgress(getBigDecimalPercent(divide)); |
| | | sgOperatingRateVO.setSeepageProgress(getBigDecimalPercent(divide)); |
| | | }else { |
| | | vo.setSeepageProgress("0%"); |
| | | sgOperatingRateVO.setSeepageProgress("0"); |
| | | } |
| | | } |
| | | } |
| | | result.put(proIds,sgOperatingRateVO); |
| | | } |
| | | } |
| | | } |
| | | return result; |
| | | } |
| | | |
| | | private void updateProjectProgress(List<SgStatisProVO> sgStatisProVOS, String pcode, String pname, String adGrad) { |
| | |
| | | dto.setSgCodeS(sgCodeS); |
| | | List<SgProjectTreeVO> list = sgProjectInfoMapper.projectTree(dto); |
| | | if (CollectionUtils.isNotEmpty(list)){ |
| | | list.forEach(x->{ |
| | | if (StringUtils.isBlank(x.getCountyNm())){ |
| | | x.setCountyNm(x.getCityNm()); |
| | | } |
| | | if (StringUtils.isBlank(x.getTownNm())){ |
| | | x.setTownNm(x.getCountyNm()); |
| | | } |
| | | }); |
| | | // 按省、片区、市、县、乡镇分组 |
| | | Map<String, Map<String, Map<String, Map<String, Map<String, List<SgProjectTreeVO>>>>>> groupedProjects = list.stream() |
| | | .collect( |