From 586b24afe3f0cc8739f50f3e80f3c3d7aace54cb Mon Sep 17 00:00:00 2001 From: mitao <2763622819@qq.com> Date: 星期四, 16 一月 2025 18:25:43 +0800 Subject: [PATCH] 添加接口备注及问题信息 --- land-system/src/main/java/com/zzg/system/service/state/impl/StateHouseholdOwnerServiceImpl.java | 64 ++++++++++++++++++++++++++----- 1 files changed, 53 insertions(+), 11 deletions(-) diff --git a/land-system/src/main/java/com/zzg/system/service/state/impl/StateHouseholdOwnerServiceImpl.java b/land-system/src/main/java/com/zzg/system/service/state/impl/StateHouseholdOwnerServiceImpl.java index fe9ef89..233c9b9 100644 --- a/land-system/src/main/java/com/zzg/system/service/state/impl/StateHouseholdOwnerServiceImpl.java +++ b/land-system/src/main/java/com/zzg/system/service/state/impl/StateHouseholdOwnerServiceImpl.java @@ -2,7 +2,6 @@ import com.alibaba.fastjson2.JSON; import com.alibaba.fastjson2.JSONObject; -import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.toolkit.Wrappers; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.github.pagehelper.PageInfo; @@ -11,12 +10,21 @@ import com.zzg.common.core.domain.entity.state.StateProjectCompensateStandard; import com.zzg.common.core.domain.entity.state.StateProjectCompensation; import com.zzg.common.core.domain.entity.system.SysDictData; -import com.zzg.common.enums.*; +import com.zzg.common.enums.CompensateTypeEnum; +import com.zzg.common.enums.CompensationCategoryEnum; +import com.zzg.common.enums.DeleteFlagEnum; +import com.zzg.common.enums.HouseOwnerTyeEnum; +import com.zzg.common.enums.HouseUsingTypeEnum; import com.zzg.common.exception.GlobalException; import com.zzg.common.utils.RoundingUtil; import com.zzg.common.utils.StringUtils; import com.zzg.system.convert.StateProjectConvert; -import com.zzg.system.domain.bo.*; +import com.zzg.system.domain.bo.AwardBO; +import com.zzg.system.domain.bo.CalculateCompensationBO; +import com.zzg.system.domain.bo.HomeCompensationBO; +import com.zzg.system.domain.bo.PolicyCompensationBO; +import com.zzg.system.domain.bo.PolicySubsidyBO; +import com.zzg.system.domain.bo.PolicySupplementBO; import com.zzg.system.domain.vo.CalculateCompensationVO; import com.zzg.system.domain.vo.OtherCompensationBO; import com.zzg.system.domain.vo.StateHouseholdOwnerVO; @@ -30,7 +38,12 @@ import org.springframework.stereotype.Service; import org.springframework.util.CollectionUtils; -import java.util.*; +import java.util.ArrayList; +import java.util.Arrays; +import java.util.HashMap; +import java.util.List; +import java.util.Map; +import java.util.Objects; import java.util.function.Function; import java.util.stream.Collectors; @@ -88,17 +101,19 @@ //如果不是区间 就直接计算 @Override public CalculateCompensationVO calculateCompensation(CalculateCompensationBO calculateCompensationBO) { - + //获取对应房产信息 StateHousehold household = stateHouseholdService.getById(calculateCompensationBO.getStateHouseholdId()); if (Objects.isNull(household)) { throw new GlobalException("未找到对应的房产"); } String stateProjectId = household.getStateProjectId(); + //获取项目补偿标准信息 StateProjectCompensation compensation = stateProjectCompensationService.getById(stateProjectId); if (Objects.isNull(compensation)) { throw new GlobalException("项目没有设置标准"); } + //通过标准类型名称查询对应的标准信息 List<String> compensationNameList = new ArrayList<>(); compensationNameList.add(compensation.getPolicyCompensationType()); compensationNameList.add(compensation.getPolicySubsidy()); @@ -110,7 +125,8 @@ throw new GlobalException("未找到开启的标准"); } enableCompensateStandard = enableCompensateStandard.stream().filter(e -> Objects.nonNull(e.getSubType())).collect(Collectors.toList()); - Map<Integer, Map<Integer, List<StateProjectCompensateStandard>>> enableCompensateStandardMap = enableCompensateStandard.stream().collect(Collectors.groupingBy(StateProjectCompensateStandard::getCompensateType, Collectors.groupingBy(StateProjectCompensateStandard::getCategory))); + Map<Integer, Map<Integer, List<StateProjectCompensateStandard>>> enableCompensateStandardMap = enableCompensateStandard.stream() + .collect(Collectors.groupingBy(StateProjectCompensateStandard::getCompensateType, Collectors.groupingBy(StateProjectCompensateStandard::getCategory))); //征收房屋补偿费 Double homeAmount = null; @@ -121,7 +137,7 @@ Integer houseUsingType = household.getHouseUsingType(); HomeCompensationBO homeCompensationBO = calculateCompensationBO.getHomeCompensationBO(); - + // 货币补偿 if (Objects.nonNull(homeCompensationBO) && CompensationCategoryEnum.MONEY_COMPENSATION_1.getCode() == homeCompensationBO.getHomeCompensationType()) { Map<Integer, List<StateProjectCompensateStandard>> integerListMap = enableCompensateStandardMap.get(CompensateTypeEnum.HOUSE_ACQUISITION_COMPENSATION_FEE.getCode()); if (!CollectionUtils.isEmpty(integerListMap)) { @@ -162,12 +178,15 @@ } } } + //产权置换 } else if (Objects.nonNull(homeCompensationBO)) { Map<Integer, List<StateProjectCompensateStandard>> integerListMap = enableCompensateStandardMap.get(CompensateTypeEnum.HOUSE_ACQUISITION_COMPENSATION_FEE.getCode()); if (!CollectionUtils.isEmpty(integerListMap)) { + //产权置换标准 List<StateProjectCompensateStandard> stateProjectCompensateStandards = integerListMap.get(CompensationCategoryEnum.PROPERTY_SWAP.getCode()); if (!CollectionUtils.isEmpty(stateProjectCompensateStandards)) { StateProjectCompensateStandard stateProjectCompensateStandard; + //根据房屋类型获取标准 if (HouseUsingTypeEnum.PERSONAL_HOUSE.getValue().equals(houseUsingType)) { stateProjectCompensateStandard = stateProjectCompensateStandards.stream().filter(e -> e.getSpecification().equals("住宅")).findFirst().get(); } else { @@ -215,6 +234,7 @@ compensationVO.getHomeCompensationBO().setTotalAmount(homeAmount); } //政策性补偿费 + //补偿费总金额 Double policyAmount = 0.0; PolicyCompensationBO policyCompensationBO = calculateCompensationBO.getPolicyCompensationBO(); Map<Integer, List<StateProjectCompensateStandard>> integerListMap = enableCompensateStandardMap.get(CompensateTypeEnum.POLICY_COMPENSATION_FEE.getCode()); @@ -227,6 +247,7 @@ } else { stateProjectCompensateStandard = stateProjectCompensateStandards.stream().filter(e -> e.getSpecification().equals("非住宅")).findFirst().get(); } + //电话移机费用 Double telephoneRelocationAmount = 0.0; if (!checkCompensateStandard(stateProjectCompensateStandard)) { // Skip further calculations or set default values to avoid computation @@ -255,10 +276,11 @@ ; } } - + // 有线电视迁装 if (Objects.nonNull(policyCompensationBO.getCableTVRelocation()) && Objects.nonNull(integerListMap.get(CompensationCategoryEnum.CABLE_TV_RELOCATION.getCode()))) { List<StateProjectCompensateStandard> stateProjectCompensateStandards = integerListMap.get(CompensationCategoryEnum.CABLE_TV_RELOCATION.getCode()); StateProjectCompensateStandard stateProjectCompensateStandard = stateProjectCompensateStandards.stream().findFirst().get(); + // 有线电视迁装金额 Double cableTVRelocationAmount = 0.0; if (!checkCompensateStandard(stateProjectCompensateStandard)) { // Skip further calculations or set default values to avoid computation @@ -287,9 +309,11 @@ ; } } + // 宽带迁装 if (Objects.nonNull(policyCompensationBO.getBroadbandRelocation()) && Objects.nonNull(integerListMap.get(CompensationCategoryEnum.BROADBAND_RELOCATION.getCode()))) { List<StateProjectCompensateStandard> stateProjectCompensateStandards = integerListMap.get(CompensationCategoryEnum.BROADBAND_RELOCATION.getCode()); StateProjectCompensateStandard stateProjectCompensateStandard = stateProjectCompensateStandards.stream().findFirst().get(); + // 宽带迁装金额 Double broadbandRelocationAmount = 0.0; if (!checkCompensateStandard(stateProjectCompensateStandard)) { // Skip further calculations or set default values to avoid computation @@ -318,10 +342,11 @@ ; } } - + // 空调移机 if (Objects.nonNull(policyCompensationBO.getAirConditionerRelocation()) && Objects.nonNull(integerListMap.get(CompensationCategoryEnum.AIR_CONDITIONER_RELOCATION.getCode()))) { List<StateProjectCompensateStandard> stateProjectCompensateStandards = integerListMap.get(CompensationCategoryEnum.AIR_CONDITIONER_RELOCATION.getCode()); StateProjectCompensateStandard stateProjectCompensateStandard = stateProjectCompensateStandards.stream().findFirst().get(); + // 空调移机金额 Double airConditionerRelocationAmount = 0.0; if (!checkCompensateStandard(stateProjectCompensateStandard)) { // Skip further calculations or set default values to avoid computation @@ -350,9 +375,11 @@ ; } } + // 一户一表 if (Objects.nonNull(policyCompensationBO.getIndividualMeterInstallation()) && Objects.nonNull(integerListMap.get(CompensationCategoryEnum.ONE_HOUSE_ONE_METER.getCode()))) { List<StateProjectCompensateStandard> stateProjectCompensateStandards = integerListMap.get(CompensationCategoryEnum.ONE_HOUSE_ONE_METER.getCode()); StateProjectCompensateStandard stateProjectCompensateStandard = stateProjectCompensateStandards.stream().findFirst().get(); + // 一户一表金额 Double individualMeterInstallationAmount = 0.0; if (!checkCompensateStandard(stateProjectCompensateStandard)) { // Skip further calculations or set default values to avoid computation @@ -382,6 +409,7 @@ ; } } + // 天然气初装 if (Objects.nonNull(policyCompensationBO.getGasInitialInstallation()) && Objects.nonNull(integerListMap.get(CompensationCategoryEnum.GAS_INITIAL_INSTALLATION.getCode()))) { List<StateProjectCompensateStandard> stateProjectCompensateStandards = integerListMap.get(CompensationCategoryEnum.GAS_INITIAL_INSTALLATION.getCode()); StateProjectCompensateStandard stateProjectCompensateStandard = stateProjectCompensateStandards.stream().findFirst().get(); @@ -416,13 +444,18 @@ } compensationVO.getPolicyCompensationBO().calculateTotalAmount(); //政策性补助费 + // 住宅临时安置补助费 Double policySubsidyAmount = null; + //非住宅停产,停业经济损失补偿费 Double nonResidentialEconomicLossAllowanceAmount = null; + // 搬家补助费 Double movingAllowanceAmount = null; PolicySubsidyBO policySubsidyBO = calculateCompensationBO.getPolicySubsidyBO(); + //货币补偿 if (Objects.nonNull(policySubsidyBO) && CompensationCategoryEnum.MONEY_COMPENSATION_1.getCode() == policySubsidyBO.getCompensationType()) { Map<Integer, List<StateProjectCompensateStandard>> policySubsidyMap = enableCompensateStandardMap.get(CompensateTypeEnum.POLICY_SUBSIDY_FEE.getCode()); if (!CollectionUtils.isEmpty(policySubsidyMap)) { + // 住宅临时安置补助费 List<StateProjectCompensateStandard> stateProjectCompensateStandards = policySubsidyMap.get(CompensationCategoryEnum.TEMPORARY_HOUSING_ALLOWANCE.getCode()); if (!CollectionUtils.isEmpty(stateProjectCompensateStandards)) { StateProjectCompensateStandard stateProjectCompensateStandard = stateProjectCompensateStandards.stream().findFirst().get(); @@ -454,6 +487,7 @@ } } } + // 非住宅停产、停业经济损失补助费 List<StateProjectCompensateStandard> nonResidentialEconomicLossAllowance = policySubsidyMap.get(CompensationCategoryEnum.NON_RESIDENTIAL_ECONOMIC_LOSS_ALLOWANCE.getCode()); if (!CollectionUtils.isEmpty(nonResidentialEconomicLossAllowance)) { StateProjectCompensateStandard stateProjectCompensateStandard = nonResidentialEconomicLossAllowance.stream().findFirst().get(); @@ -480,6 +514,7 @@ } } } + // 搬家补助费 List<StateProjectCompensateStandard> movingAllowance = policySubsidyMap.get(CompensationCategoryEnum.MOVING_ALLOWANCE.getCode()); if (!CollectionUtils.isEmpty(movingAllowance)) { StateProjectCompensateStandard stateProjectCompensateStandard = movingAllowance.stream().findFirst().get(); @@ -507,9 +542,10 @@ } } } - } else if (Objects.nonNull(policySubsidyBO)) { + } else if (Objects.nonNull(policySubsidyBO)) { //产权置换 Map<Integer, List<StateProjectCompensateStandard>> policySubsidyMap = enableCompensateStandardMap.get(CompensateTypeEnum.POLICY_SUBSIDY_FEE.getCode()); if (!CollectionUtils.isEmpty(policySubsidyMap)) { + // 住宅临时安置补助费 List<StateProjectCompensateStandard> stateProjectCompensateStandards = policySubsidyMap.get(CompensationCategoryEnum.TEMPORARY_HOUSING_ALLOWANCE.getCode()); if (!CollectionUtils.isEmpty(stateProjectCompensateStandards)) { StateProjectCompensateStandard stateProjectCompensateStandard = stateProjectCompensateStandards.stream().findFirst().get(); @@ -542,6 +578,7 @@ } } } + // 非住宅停产、停业经济损失补助费 List<StateProjectCompensateStandard> nonResidentialEconomicLossAllowance = policySubsidyMap.get(CompensationCategoryEnum.NON_RESIDENTIAL_ECONOMIC_LOSS_ALLOWANCE.getCode()); if (!CollectionUtils.isEmpty(nonResidentialEconomicLossAllowance)) { StateProjectCompensateStandard stateProjectCompensateStandard = nonResidentialEconomicLossAllowance.stream().findFirst().get(); @@ -570,6 +607,7 @@ } } } + // 搬家补助费 List<StateProjectCompensateStandard> movingAllowance = policySubsidyMap.get(CompensationCategoryEnum.MOVING_ALLOWANCE.getCode()); if (!CollectionUtils.isEmpty(movingAllowance)) { StateProjectCompensateStandard stateProjectCompensateStandard = movingAllowance.stream().findFirst().get(); @@ -602,7 +640,9 @@ } //政策性补贴 + //购房补贴 Double propertyManagementSubsidyAmount = null; + //物管费补贴 Double housingSubsidyAmount = null; PolicySupplementBO policySupplementBO = calculateCompensationBO.getPolicySupplementBO(); if (Objects.isNull(calculateCompensationBO.getPolicySupplementBO())) { @@ -612,6 +652,7 @@ } Map<Integer, List<StateProjectCompensateStandard>> policyAllowanceMap = enableCompensateStandardMap.get(CompensateTypeEnum.POLICY_ALLOWANCE.getCode()); if (!CollectionUtils.isEmpty(policyAllowanceMap)) { + // 物管费补贴 if (Objects.nonNull(policyAllowanceMap.get(CompensationCategoryEnum.PROPERTY_MANAGEMENT_SUBSIDY.getCode()))) { List<StateProjectCompensateStandard> stateProjectCompensateStandards = policyAllowanceMap.get(CompensationCategoryEnum.PROPERTY_MANAGEMENT_SUBSIDY.getCode()); StateProjectCompensateStandard stateProjectCompensateStandard; @@ -656,6 +697,7 @@ compensationVO.getPolicySupplementBO().setPropertyManagementSubsidy(propertyManagementSubsidyAmount); } } + // 购房补贴 if (Objects.nonNull(policyAllowanceMap.get(CompensationCategoryEnum.HOUSE_PURCHASE_SUBSIDY.getCode()))) { List<StateProjectCompensateStandard> stateProjectCompensateStandards = policyAllowanceMap.get(CompensationCategoryEnum.HOUSE_PURCHASE_SUBSIDY.getCode()); StateProjectCompensateStandard stateProjectCompensateStandard; @@ -693,7 +735,7 @@ } } - + // 提前搬迁奖励 Double earlyRelocationRewardAmount = null; AwardBO awardBO = compensationVO.getAwardBO(); Map<Integer, List<StateProjectCompensateStandard>> earlyRelocationRewardMap = enableCompensateStandardMap.get(CompensateTypeEnum.EARLY_RELOCATION_REWARD.getCode()); -- Gitblit v1.7.1