| | |
| | | //计算最上面顶部统计数据 |
| | | @Override |
| | | public ProjectAnalysisSumVO projectSumCount(String location, Integer projectStatus, Date projectStartTime) { |
| | | //封装搜索条件 |
| | | LambdaQueryWrapper<StateProject> stateProjectQueryWrapper = new LambdaQueryWrapper<>(); |
| | | stateProjectQueryWrapper.ne(StateProject::getStatus,StateProjectStatusEnum.CANCELLATION.getKey()); |
| | | stateProjectQueryWrapper.eq(StateProject::getDelFlag,DeleteFlagEnum.NOT_DELETED.getKey()); |
| | |
| | | if (Objects.nonNull(projectStartTime)) { |
| | | stateProjectQueryWrapper.eq(StateProject::getStartTime, projectStartTime); |
| | | } |
| | | //查询项目列表 |
| | | List<StateProject> stateProjects = stateProjectService.list(stateProjectQueryWrapper); |
| | | if (CollectionUtils.isEmpty(stateProjects)) { |
| | | return new ProjectAnalysisSumVO(); |
| | | } |
| | | |
| | | //封装返回对象 |
| | | ProjectAnalysisSumVO result = new ProjectAnalysisSumVO(); |
| | | List<String> projectIdList = stateProjects.stream().map(StateProject::getId).collect(Collectors.toList()); |
| | | |
| | |
| | | * 对于模拟协议的人员计算 需要判断他是否只签订了模拟协议 ,因为正式协议有可能是模拟协议转过去的 需要排除这种情况 但是对于正式协议人员 只需要判断正式协议否存在即可 |
| | | * 此处是根据houseId进行分类 所以没有去重处理 |
| | | */ |
| | | |
| | | //废弃代码开始 |
| | | for (String houseId : agreementMap.keySet()) { |
| | | List<StateAgreement> agreements = agreementMap.get(houseId); |
| | | Map<Integer, StateAgreement> agreementTypeMap = agreements.stream().collect(Collectors.toMap(StateAgreement::getAgreementFileType, Function.identity())); |
| | |
| | | } else if (agreementTypeMap.containsKey(AgreementTypeEnum.STATE_AGREEMENT.getValue())) { |
| | | } |
| | | } |
| | | |
| | | //废弃代码结束 |
| | | // HOUSE(0,"入户调查","house"), |
| | | // SIMULATE(1,"模拟征收", "simulate"), |
| | | // SIGNED(2,"正式征收", "signed"), |
| | |
| | | @Override |
| | | public PageInfo<ProjectStatusExpiredVO> expiredProjectStatus(ProjectStatisticsBO projectStatisticsBO) { |
| | | |
| | | //这里前端对于全部的阶段类型而言 传的 |
| | | //这里前端对于全部的阶段类型而言 传的 只统计模拟阶段的项目 |
| | | if (Objects.nonNull(projectStatisticsBO.getProjectStatus()) && !Objects.equals(projectStatisticsBO.getProjectStatus(), StateProjectStatusEnum.SIMULATE.getKey())) { |
| | | return new PageInfo<>(); |
| | | } |
| | |
| | | * 获取数据中心安置情况模块 中间的饼图 |
| | | * @param projectStreet |
| | | * @param projectStartTime |
| | | * @param type |
| | | * @param type 没有用到 |
| | | * @return |
| | | */ |
| | | @Override |
| | | public PlacementStatisticsVO placementStatistics(String projectStreet, Date projectStartTime, Integer type) { |
| | | |
| | | //查询项目信息 |
| | | List<StateProject> list = appendQueryWrapper(projectStreet, projectStartTime); |
| | | if (CollectionUtils.isEmpty(list)) { |
| | | return new PlacementStatisticsVO(); |
| | |
| | | */ |
| | | @Override |
| | | public PageInfo<TransitionPageVO> placementStatisticsPage(PlacementStatisticsBO placementStatisticsBO) { |
| | | |
| | | //封装项目查询条件 |
| | | LambdaQueryWrapper<StateProject> projectLambdaQueryWrapper = new LambdaQueryWrapper<>(); |
| | | if (org.apache.commons.lang3.StringUtils.isNotBlank(placementStatisticsBO.getProjectStreet())) { |
| | | projectLambdaQueryWrapper.like(StateProject::getStreet, placementStatisticsBO.getProjectStreet()); |
| | |
| | | projectLambdaQueryWrapper.eq(StateProject::getStartTime, new Timestamp(placementStatisticsBO.getProjectStartTime().getTime())); |
| | | } |
| | | projectLambdaQueryWrapper.eq(StateProject::getStatus, StateProjectStatusEnum.LEVY.getKey()); |
| | | //查询项目 |
| | | List<StateProject> list = stateProjectService.list(projectLambdaQueryWrapper); |
| | | if (CollectionUtils.isEmpty(list)) { |
| | | return new PageInfo<>(); |
| | |
| | | |
| | | LambdaQueryWrapper<StateHouseholdOwner> stateHouseholdOwnerLambdaQueryWrapper = new LambdaQueryWrapper<>(); |
| | | stateHouseholdOwnerLambdaQueryWrapper.in(StateHouseholdOwner::getStateHouseholdId, houseIdList); |
| | | |
| | | //查询房产权利人 |
| | | List<StateHouseholdOwner> stateHouseholdOwners = stateHouseholdOwnerService.list(stateHouseholdOwnerLambdaQueryWrapper); |
| | | |
| | | Map<String, List<StateHouseholdOwner>> ownerMap = stateHouseholdOwners.stream().collect(Collectors.groupingBy(StateHouseholdOwner::getStateHouseholdId)); |
| | |
| | | StateProject stateProject = projectMap.get(householdVO.getStateProjectId()); |
| | | transitionPageVO.setProjectStreet(householdVO.getBelongingStreetTown()); |
| | | transitionPageVO.setProjectName(stateProject.getProjectName()); |
| | | |
| | | //多个权利人使用“|”分隔 |
| | | List<StateHouseholdOwner> owners = ownerMap.get(householdVO.getId()); |
| | | if (!CollectionUtils.isEmpty(owners)) { |
| | | String ownerName = owners.stream().map(StateHouseholdOwner::getOwnerName) |
| | |
| | | householdVO.getSignAt() |
| | | : null); |
| | | } |
| | | |
| | | //过度时长=正式合同签约时间与当前时间比较 |
| | | if (Objects.nonNull(transitionPageVO.getSignAt())) { |
| | | long daysBetween = DateUtil.getDaysBetween(transitionPageVO.getSignAt(), DateUtils.getNowDate()); |
| | | transitionPageVO.setTransitionDay(daysBetween); |
| | |
| | | projectLambdaQueryWrapper.ge(StateProject::getFinishedTime, cn.hutool.core.date.DateUtil.beginOfDay(stateTime)); |
| | | projectLambdaQueryWrapper.le(StateProject::getFinishedTime, cn.hutool.core.date.DateUtil.endOfDay(stateTime)); |
| | | } |
| | | //查询项目 |
| | | List<StateProject> list = stateProjectService.list(projectLambdaQueryWrapper); |
| | | if (CollectionUtils.isEmpty(list)) { |
| | | return new AssetMoneyVO(); |
| | |
| | | //合同金额 |
| | | LambdaQueryWrapper<StateAgreement> stateAgreementLambdaQueryWrapper = new LambdaQueryWrapper<>(); |
| | | stateAgreementLambdaQueryWrapper.in(StateAgreement::getStateHouseholdId, stateHouseholdIds); |
| | | //只统计正式合同 |
| | | stateAgreementLambdaQueryWrapper.eq(StateAgreement::getAgreementFileType, AgreementTypeEnum.STATE_AGREEMENT.getValue()); |
| | | stateAgreementLambdaQueryWrapper.eq(StateAgreement::getDelFlag, DeleteFlagEnum.NOT_DELETED.getKey()); |
| | | stateAgreementLambdaQueryWrapper.isNotNull(StateAgreement::getAgreementNumber); |
| | |
| | | agreementMoney = stateAgreementList.stream().mapToDouble(StateAgreement::getMoney).sum(); |
| | | } |
| | | |
| | | //产全置换合同金额 |
| | | //产权置换合同金额 |
| | | double cqzhagreementMoney = 0; |
| | | List<StateHousehold> cqzhHourse = stateHouseholdList.stream().filter(data -> data.getCompensationType().equals(CompensationCategoryEnum.PROPERTY_SWAP_2.getCode())).collect(Collectors.toList()); |
| | | if (ObjectUtil.isNotEmpty(cqzhHourse)) { |
| | |
| | | public PlacementStreetVO sumPlacementStreet(String street, Date stateTime) { |
| | | String houseStreet = street; |
| | | street = ""; |
| | | //过滤房产 |
| | | //查询项目列表 |
| | | List<StateProject> stateProjectList = appendQueryWrapper(street, stateTime); |
| | | if (CollectionUtils.isEmpty(stateProjectList)) { |
| | | return new PlacementStreetVO(); |
| | |
| | | |
| | | //查询房产信息 |
| | | List<String> projectIdList = stateProjectList.stream().map(StateProject::getId).collect(Collectors.toList()); |
| | | //封装房产查询条件 |
| | | LambdaQueryWrapper<StateHousehold> stateHouseholdLambdaQueryWrapper = new LambdaQueryWrapper<>(); |
| | | stateHouseholdLambdaQueryWrapper.in(StateHousehold::getStateProjectId, projectIdList); |
| | | if (ObjectUtil.isNotEmpty(houseStreet)) { |
| | | stateHouseholdLambdaQueryWrapper.like(StateHousehold::getBelongingStreetTown, houseStreet); |
| | | } |
| | | //查询房产列表 |
| | | List<StateHousehold> stateHouseholdList = stateHouseholdService.list(stateHouseholdLambdaQueryWrapper); |
| | | |
| | | if (CollectionUtils.isEmpty(stateHouseholdList)) { |
| | | return new PlacementStreetVO(); |
| | | } |
| | | |
| | | //房产id列表 |
| | | List<String> houseIdList = stateHouseholdList.stream().filter(Objects::nonNull).map(StateHousehold::getId).collect(Collectors.toList()); |
| | | |
| | | //查询安置信息 |
| | | LambdaQueryWrapper<StateSettlement> stateSettlementLambdaQueryWrapper = new LambdaQueryWrapper<>(); |
| | | //TODO in问题 |
| | | stateSettlementLambdaQueryWrapper.in(StateSettlement::getStateHouseholdId, houseIdList); |
| | | stateSettlementLambdaQueryWrapper.eq(StateSettlement::getAuditStatus, SubmitStatusEnum.ACCEPT.getValue()); |
| | | List<StateSettlement> stateSettlementList = stateSettlementService.list(stateSettlementLambdaQueryWrapper); |
| | | if (CollectionUtils.isEmpty(stateSettlementList)) { |
| | | return new PlacementStreetVO(); |
| | | } |
| | | |
| | | //根据房产id分组 |
| | | Map<String, StateSettlement> settlementMap = stateSettlementList.stream().collect(Collectors.toMap(StateSettlement::getStateHouseholdId, Function.identity())); |
| | | |
| | | //去除数据 只要安置审核已接受的数据 |
| | |
| | | |
| | | //查询协议 |
| | | LambdaQueryWrapper<StateAgreement> agreementLambdaQueryWrapper = new LambdaQueryWrapper<>(); |
| | | //TODO in问题 |
| | | agreementLambdaQueryWrapper.in(StateAgreement::getStateHouseholdId, settleIdList); |
| | | agreementLambdaQueryWrapper.eq(StateAgreement::getAgreementFileType, 1); |
| | | List<StateAgreement> agreementList = agreementService.list(agreementLambdaQueryWrapper); |
| | |
| | | |
| | | //面积 |
| | | double beforeExchangeArea = 0; |
| | | //安置后面积 |
| | | double afterExchangeArea = 0; |
| | | //面积差 |
| | | double areaDelta = 0; |
| | | |
| | | //金额 |
| | | //合同金额 |
| | | double beforeExchangeMoney = 0; |
| | | //结算金额(安置后的金额) |
| | | double afterExchangeMoney = 0; |
| | | //价值差 |
| | | double moneyDelta = 0; |
| | | |
| | | //获取该街道产权置换的安置前数据 |
| | |
| | | for (String housId : involvedHouseList) { |
| | | List<StateAgreement> stateAgreementList = stateAgreement.get(housId); |
| | | if (ObjectUtil.isNotEmpty(stateAgreementList)) { |
| | | |
| | | beforeExchangeMoney += stateAgreementList.stream().map(StateAgreement::getMoney).mapToDouble(item -> ObjectUtil.isNotEmpty(item) ? item : 0).sum(); |
| | | } |
| | | } |
| | |
| | | beforeExchangeMoney += stateAgreementList.stream().map(StateAgreement::getMoney).mapToDouble(item -> ObjectUtil.isNotEmpty(item) ? item : 0).sum(); |
| | | } |
| | | } |
| | | afterExchangeMoney += involvedHouseList.stream().filter(house -> Objects.nonNull(settlementMap.get(house))).map(settlementMap::get).mapToDouble(settlement -> Objects.nonNull(settlement.getSettlementMoney()) ? settlement.getSettlementMoney() : 0).sum(); |
| | | afterExchangeMoney += involvedHouseList.stream().filter(house -> Objects.nonNull(settlementMap.get(house))).map(settlementMap::get) |
| | | .mapToDouble(settlement -> Objects.nonNull(settlement.getSettlementMoney()) ? settlement.getSettlementMoney() : 0).sum(); |
| | | |
| | | beforeExchangeArea += involvedHouseList.stream().filter(house -> Objects.nonNull(settlementMap.get(house))).map(settlementMap::get).mapToDouble(settlement -> Objects.nonNull(settlement.getSettlementArea()) ? settlement.getSettlementArea() : 0).sum(); |
| | | beforeExchangeArea += involvedHouseList.stream().filter(house -> Objects.nonNull(settlementMap.get(house))).map(settlementMap::get) |
| | | .mapToDouble(settlement -> Objects.nonNull(settlement.getSettlementArea()) ? settlement.getSettlementArea() : 0).sum(); |
| | | } |
| | | |
| | | //计算差额 |
| | |
| | | } |
| | | List<ProjectDataCenterTypeVO> projectDataCenterTypeVOList = new ArrayList<>(); |
| | | List<StateProjectInfo> typeProjectList = stateProjects.stream().filter(data -> Objects.nonNull(data.getProjectType())).collect(Collectors.toList()); |
| | | |
| | | //根据项目类型分组 |
| | | Map<String, List<StateProjectInfo>> projectTypeMap = typeProjectList.stream().collect(Collectors.groupingBy(StateProjectInfo::getProjectType)); |
| | | |
| | | List<SysDictData> data = dictTypeService.selectDictDataByType("project_type"); |