mitao
2025-01-20 5c74a002166e3ddeeac54bb07d4bce221c0bec9b
添加接口备注
1个文件已修改
51 ■■■■■ 已修改文件
land-system/src/main/java/com/zzg/system/service/state/impl/StateDataCenterServiceImpl.java 51 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
land-system/src/main/java/com/zzg/system/service/state/impl/StateDataCenterServiceImpl.java
@@ -88,6 +88,7 @@
    //计算最上面顶部统计数据
    @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());
@@ -100,11 +101,12 @@
        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());
@@ -186,7 +188,7 @@
         * 对于模拟协议的人员计算 需要判断他是否只签订了模拟协议 ,因为正式协议有可能是模拟协议转过去的 需要排除这种情况 但是对于正式协议人员 只需要判断正式协议否存在即可
         * 此处是根据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()));
@@ -194,7 +196,7 @@
            } else if (agreementTypeMap.containsKey(AgreementTypeEnum.STATE_AGREEMENT.getValue())) {
            }
        }
        //废弃代码结束
        //  HOUSE(0,"入户调查","house"),
        //    SIMULATE(1,"模拟征收", "simulate"),
        //    SIGNED(2,"正式征收", "signed"),
@@ -217,7 +219,7 @@
    @Override
    public PageInfo<ProjectStatusExpiredVO> expiredProjectStatus(ProjectStatisticsBO projectStatisticsBO) {
        //这里前端对于全部的阶段类型而言 传的
        //这里前端对于全部的阶段类型而言 传的 只统计模拟阶段的项目
        if (Objects.nonNull(projectStatisticsBO.getProjectStatus()) && !Objects.equals(projectStatisticsBO.getProjectStatus(), StateProjectStatusEnum.SIMULATE.getKey())) {
            return new PageInfo<>();
        }
@@ -236,12 +238,12 @@
     * 获取数据中心安置情况模块 中间的饼图
     * @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();
@@ -342,7 +344,7 @@
     */
    @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());
@@ -351,6 +353,7 @@
            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<>();
@@ -369,7 +372,7 @@
        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));
@@ -378,7 +381,7 @@
            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)
@@ -392,7 +395,7 @@
                        householdVO.getSignAt()
                        : null);
            }
            //过度时长=正式合同签约时间与当前时间比较
            if (Objects.nonNull(transitionPageVO.getSignAt())) {
                long daysBetween = DateUtil.getDaysBetween(transitionPageVO.getSignAt(), DateUtils.getNowDate());
                transitionPageVO.setTransitionDay(daysBetween);
@@ -420,6 +423,7 @@
            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();
@@ -461,6 +465,7 @@
            //合同金额
            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);
@@ -470,7 +475,7 @@
                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)) {
@@ -654,7 +659,7 @@
    public PlacementStreetVO sumPlacementStreet(String street, Date stateTime) {
        String houseStreet = street;
        street = "";
        //过滤房产
        //查询项目列表
        List<StateProject> stateProjectList = appendQueryWrapper(street, stateTime);
        if (CollectionUtils.isEmpty(stateProjectList)) {
            return new PlacementStreetVO();
@@ -662,28 +667,31 @@
        //查询房产信息
        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()));
        //去除数据 只要安置审核已接受的数据
@@ -694,6 +702,7 @@
        //查询协议
        LambdaQueryWrapper<StateAgreement> agreementLambdaQueryWrapper = new LambdaQueryWrapper<>();
        //TODO in问题
        agreementLambdaQueryWrapper.in(StateAgreement::getStateHouseholdId, settleIdList);
        agreementLambdaQueryWrapper.eq(StateAgreement::getAgreementFileType, 1);
        List<StateAgreement> agreementList = agreementService.list(agreementLambdaQueryWrapper);
@@ -717,12 +726,17 @@
            //面积
            double beforeExchangeArea = 0;
            //安置后面积
            double afterExchangeArea = 0;
            //面积差
            double areaDelta = 0;
            //金额
            //合同金额
            double beforeExchangeMoney = 0;
            //结算金额(安置后的金额)
            double afterExchangeMoney = 0;
            //价值差
            double moneyDelta = 0;
            //获取该街道产权置换的安置前数据
@@ -736,6 +750,7 @@
                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();
                    }
                }
@@ -752,9 +767,11 @@
                        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();
            }
            //计算差额
@@ -844,7 +861,7 @@
        }
        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");