mitao
2025-01-16 586b24afe3f0cc8739f50f3e80f3c3d7aace54cb
添加接口备注及问题信息
12个文件已修改
262 ■■■■ 已修改文件
land-admin/src/main/java/com/zzg/web/controller/state/StateAgreementController.java 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
land-admin/src/main/java/com/zzg/web/controller/state/StateApplyRecordController.java 11 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
land-admin/src/main/java/com/zzg/web/controller/state/StateAssetController.java 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
land-admin/src/main/java/com/zzg/web/controller/state/StateProjectCompensateStandardController.java 14 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
land-admin/src/main/java/com/zzg/web/controller/state/householdQuery/StateHouseholdController.java 5 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
land-common/src/main/java/com/zzg/common/enums/ApplyStatusEnum.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
land-system/src/main/java/com/zzg/system/domain/bo/CalculateCompensationBO.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
land-system/src/main/java/com/zzg/system/service/state/impl/StateAgreementServiceImpl.java 10 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
land-system/src/main/java/com/zzg/system/service/state/impl/StateApplyRecordServiceImpl.java 64 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
land-system/src/main/java/com/zzg/system/service/state/impl/StateAssetServiceImpl.java 65 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
land-system/src/main/java/com/zzg/system/service/state/impl/StateHouseholdOwnerServiceImpl.java 64 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
land-system/src/main/java/com/zzg/system/service/state/impl/StateProjectCompensateStandardServiceImpl.java 23 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
land-admin/src/main/java/com/zzg/web/controller/state/StateAgreementController.java
@@ -187,6 +187,7 @@
            Map<String, Object> variable = new HashMap<>();
            variable.put("stateHouseholdId", stateHousehold.getId());
            processStartBO.setVariable(variable);
            //启动工作流
            stateProcessTemplateService.start(processStartBO);
        }
        return AjaxResult.success(stateAgreementService.saveOrUpdateBatch(agreementList));
land-admin/src/main/java/com/zzg/web/controller/state/StateApplyRecordController.java
@@ -3,8 +3,13 @@
import com.github.pagehelper.PageInfo;
import com.zzg.common.constant.state.UrlConstants;
import com.zzg.common.core.domain.AjaxResult;
import com.zzg.common.core.domain.entity.state.StateApplyRecordItem;
import com.zzg.system.domain.bo.*;
import com.zzg.system.domain.bo.ApplyBO;
import com.zzg.system.domain.bo.ApplyOwnerBO;
import com.zzg.system.domain.bo.GetApplyHouseholdOwnerBO;
import com.zzg.system.domain.bo.ImportApplyRecordBO;
import com.zzg.system.domain.bo.SaveRecordAndItemBO;
import com.zzg.system.domain.bo.StateApplyRecordPageBO;
import com.zzg.system.domain.bo.StateApplyRecordPageInfoLevelBO;
import com.zzg.system.domain.vo.ApplyHouseholdOwnerVO;
import com.zzg.system.domain.vo.StateApplyRecordPageInfoLevelVO;
import com.zzg.system.domain.vo.StateApplyRecordVO;
@@ -51,7 +56,7 @@
    public AjaxResult<ApplyHouseholdOwnerVO> getApplyHouseholdOwner(@RequestBody GetApplyHouseholdOwnerBO getApplyHouseholdOwnerBO) {
        return AjaxResult.success(stateApplyRecordService.getApplyHouseholdOwner(getApplyHouseholdOwnerBO));
    }
    //TODO 接口不清楚
    @PostMapping(UrlConstants.STATE_APPLY_RECORD_GET_OWNER_INFO)
    @ApiOperation(value = "住宅临时安置补助费户详情或者 或者 停产停业补助费详情", notes = "停产停业补助费详情")
    public AjaxResult<PageInfo<ApplyOwnerBO>> getApplyHouseholdOwnerInfo(@RequestBody GetApplyHouseholdOwnerBO getApplyHouseholdOwnerBO) {
land-admin/src/main/java/com/zzg/web/controller/state/StateAssetController.java
@@ -41,6 +41,7 @@
        if (Objects.isNull(asset)) {
            return AjaxResult.error();
        }
        //TODO 审核状态为通过的也可以删除 逻辑删除
        LambdaUpdateWrapper<StateAsset> updateWrapper = new LambdaUpdateWrapper<>();
        updateWrapper.eq(StateAsset::getId, asset.getId());
        updateWrapper.set(StateAsset::getDelFlag, DeleteFlagEnum.DELETED.getKey());
land-admin/src/main/java/com/zzg/web/controller/state/StateProjectCompensateStandardController.java
@@ -18,7 +18,7 @@
public class StateProjectCompensateStandardController {
    private final StateProjectCompensateStandardService stateProjectCompensateStandardService;
    //获取补偿标准列表
    @GetMapping(UrlConstants.STATE_PROJECT_COMPENSATE_STANDARD_LIST)
    public AjaxResult<Map<String, List<StateProjectCompensateStandardVO>>> getAll(
            @RequestParam(required = false) String standardName,
@@ -27,22 +27,22 @@
    ) {
        return AjaxResult.success(stateProjectCompensateStandardService.getCompensateStandardMap(standardName, stopFlag, compensateType));
    }
    //创建补偿标准
    @PostMapping(UrlConstants.STATE_PROJECT_COMPENSATE_STANDARD_ADD)
    public AjaxResult<Boolean> create(@RequestBody StateProjectCompensateStandard stateProjectCompensateStandard) {
        return AjaxResult.success(stateProjectCompensateStandardService.createCompensatesStandard(stateProjectCompensateStandard));
    }
    //修改补偿标准
    @PostMapping(UrlConstants.STATE_PROJECT_COMPENSATE_STANDARD_UPDATE)
    public AjaxResult<Boolean> update(@RequestBody StateProjectCompensateStandard stateProjectCompensateStandard) {
        return AjaxResult.success(stateProjectCompensateStandardService.saveOrUpdate(stateProjectCompensateStandard));
    }
    //修改补偿标准名字(同时更新项目中的标准名称)
    @PostMapping(UrlConstants.STATE_PROJECT_COMPENSATE_STANDARD_UPDATE_NAME)
    public AjaxResult<Boolean> updateName(@RequestBody StateProjectCompensateStandard stateProjectCompensateStandard) {
        return AjaxResult.success(stateProjectCompensateStandardService.updateName(stateProjectCompensateStandard));
    }
    //停用补偿标准
    @PostMapping(UrlConstants.STATE_PROJECT_COMPENSATE_STANDARD_STOP)
    public AjaxResult<Boolean> stop(@RequestParam String standardName, @RequestParam Integer compensateType) {
        LambdaUpdateWrapper<StateProjectCompensateStandard> wrapper = new LambdaUpdateWrapper<>();
@@ -51,7 +51,7 @@
                .set(StateProjectCompensateStandard::getStopFlag, 0);
        return AjaxResult.success(stateProjectCompensateStandardService.update(wrapper));
    }
    //启用补偿标准
    @PostMapping(UrlConstants.STATE_PROJECT_COMPENSATE_STANDARD_START)
    public AjaxResult<Boolean> start(@RequestParam String standardName, @RequestParam Integer compensateType) {
        LambdaUpdateWrapper<StateProjectCompensateStandard> wrapper = new LambdaUpdateWrapper<>();
@@ -60,7 +60,7 @@
                .set(StateProjectCompensateStandard::getStopFlag, 1);
        return AjaxResult.success(stateProjectCompensateStandardService.update(wrapper));
    }
    //导入补偿标准
    @PostMapping(UrlConstants.STATE_PROJECT_COMPENSATE_STANDARD_IMPORT)
    public AjaxResult<Boolean> importExcelFile(@RequestParam("file") MultipartFile file) {
        return AjaxResult.success(stateProjectCompensateStandardService.importByExcel(file));
land-admin/src/main/java/com/zzg/web/controller/state/householdQuery/StateHouseholdController.java
@@ -138,13 +138,14 @@
    }
    // 删除项目
    // 删除房屋
    @GetMapping(UrlConstants.STATE_HOUSEHOLD_DELETE)
    public AjaxResult<Boolean> delete(@RequestParam String id) {
        return AjaxResult.success(stateHouseholdService.removeById(id));
    }
    //安置情况数据统计
    //安置情况数据统计 未使用
    @Deprecated
    @GetMapping(UrlConstants.STATE_HOUSEHOLD_SUM)
    public AjaxResult<Void> sumHouseholdData(@RequestParam String stateProjectId) {
        stateHouseholdService.sumHouseholdData(stateProjectId);
land-common/src/main/java/com/zzg/common/enums/ApplyStatusEnum.java
@@ -5,7 +5,7 @@
@Getter
@AllArgsConstructor
public enum ApplyStatusEnum {
    public enum ApplyStatusEnum {
    PENDING_RECEIPT(1, "待接收"),
    RECEIVED(2, "已接收"),
    RETURNED(3, "被退回"),
land-system/src/main/java/com/zzg/system/domain/bo/CalculateCompensationBO.java
@@ -49,6 +49,6 @@
    @ApiModelProperty(value = "其他补偿信息")
    private OtherCompensationBO otherCompensationBO;
    //表示是否点击重新计算
    private Boolean isFirst;
}
land-system/src/main/java/com/zzg/system/service/state/impl/StateAgreementServiceImpl.java
@@ -153,6 +153,11 @@
        return stateAgreementVOPageInfo;
    }
    /**
     * 协议详情
     * @param householdId
     * @return
     */
    @Override
    public List<AgreementDetailVO> listAgreementDetailByHouseId(String householdId) {
@@ -341,6 +346,11 @@
        return dataMap;
    }
    /**
     * 模拟加征收
     * @param houseId
     * @return
     */
    @Override
    @Transactional
    public Boolean updateStateAgreement(List<String> houseId) {
land-system/src/main/java/com/zzg/system/service/state/impl/StateApplyRecordServiceImpl.java
@@ -55,7 +55,11 @@
    @Resource
    private StateApplyRecordService stateApplyRecordService;
    /**
     * 分页查询
     * @param stateApplyRecordPageBO
     * @return
     */
    @Override
    public PageInfo<StateApplyRecordVO> pageInfo(StateApplyRecordPageBO stateApplyRecordPageBO) {
        PageUtils.startPage();
@@ -86,6 +90,11 @@
        }
    }
    /**
     * 保存请账
     * @param recordAndItemBO
     * @return
     */
    @Override
    @Transactional
    public boolean saveStateApplyRecordAndItem(SaveRecordAndItemBO recordAndItemBO) {
@@ -159,6 +168,7 @@
        variable.put("projectId", stateApplyRecord.getProjectId());
        variable.put("applyType", stateApplyRecord.getApplyType());
        processStartBO.setVariable(variable);
        //开启工作流程
        stateProcessTemplateService.start(processStartBO);
        //保存请款子表
@@ -166,6 +176,11 @@
        return stateApplyRecordItemService.saveOrUpdateBatch(newRecordItem);
    }
    /**
     * 通过项目id查询权利人
     * @param getApplyHouseholdOwnerBO
     * @return
     */
    @Override
    public ApplyHouseholdOwnerVO getApplyHouseholdOwner(GetApplyHouseholdOwnerBO getApplyHouseholdOwnerBO) {
        String projectId = getApplyHouseholdOwnerBO.getProjectId();
@@ -174,6 +189,7 @@
        LambdaQueryWrapper<StateProject> lqwStateProject = new LambdaQueryWrapper<>();
        lqwStateProject.eq(StateProject::getId, projectId);
        //查询项目
        StateProject one = stateProjectService.getOne(lqwStateProject);
        if (Objects.isNull(one)) {
            return new ApplyHouseholdOwnerVO();
@@ -183,6 +199,7 @@
        if (org.apache.commons.lang3.StringUtils.isNotBlank(street)) {
            lqwHousehold.like(StateHousehold::getStreet, street);
        }
        //查询房产
        List<StateHousehold> householdList = stateHouseholdService.list(lqwHousehold);
        if (CollectionUtils.isEmpty(householdList)) {
            return new ApplyHouseholdOwnerVO();
@@ -195,12 +212,13 @@
        if (org.apache.commons.lang3.StringUtils.isNotBlank(ownerName)) {
            lqwHouseholdOwner.like(StateHouseholdOwner::getOwnerName, ownerName);
        }
        //查询权利人
        List<StateHouseholdOwner> ownerList = stateHouseholdOwnerService.list(lqwHouseholdOwner);
        if (CollectionUtils.isEmpty(ownerList)) {
            return new ApplyHouseholdOwnerVO();
        }
        //查询项目关联的补偿标准
        StateProjectCompensation compensation = stateProjectCompensationService.getById(one.getId());
        Map<String, StateHousehold> stateHouseholdMap = householdList.stream().collect(Collectors.toMap(StateHousehold::getId, Function.identity()));
@@ -221,6 +239,7 @@
            lqwCompensateStandard.eq(StateProjectCompensateStandard::getStandardName, compensation.getPolicySubsidy())
                    .eq(StateProjectCompensateStandard::getCategory, status)
                    .eq(StateProjectCompensateStandard::getCompensateType, CompensateTypeEnum.POLICY_SUBSIDY_FEE.getCode());
            //查询项目补偿标准
            List<StateProjectCompensateStandard> list = stateProjectCompensateStandardService.list(lqwCompensateStandard);
            if (!CollectionUtils.isEmpty(list)) {
                StateProjectCompensateStandard stateProjectCompensateStandard = list.stream().findFirst().get();
@@ -255,6 +274,11 @@
        return applyHouseholdOwnerVO;
    }
    /**
     * 分页查询一级台账
     * @param stateApplyRecordPageBO
     * @return
     */
    @Override
    public StateApplyRecordPageInfoLevelVO pageInfoLevel(StateApplyRecordPageInfoLevelBO stateApplyRecordPageBO) {
        List<StateApplyRecordVO> allStateApplyRecordVOList = this.getBaseMapper().selectApplyRecordWithProject(stateApplyRecordPageBO);
@@ -335,9 +359,15 @@
        ));
    }
    /**
     * 住宅临时安置补助费户详情或者 或者 停产停业补助费详情
     * @param getApplyHouseholdOwnerBO
     * @return
     */
    @Override
    public PageInfo<ApplyOwnerBO> getApplyHouseholdOwnerInfo(GetApplyHouseholdOwnerBO getApplyHouseholdOwnerBO) {
        PageUtils.startPage();
        //TODO 查询请款记录
        List<ApplyOwnerBO> applyHouseholdOwnerVOS = this.getBaseMapper().selectApplyRecordWithOwnerDistinctPage(getApplyHouseholdOwnerBO);
        if (CollectionUtils.isEmpty(applyHouseholdOwnerVOS)) {
@@ -345,7 +375,7 @@
        }
        getApplyHouseholdOwnerBO.setStateHouseIdList(applyHouseholdOwnerVOS.stream().map(ApplyOwnerBO::getStateHouseholdId).collect(Collectors.toList()));
        PageInfo<ApplyOwnerBO> applyOwnerBOPageInfo = new PageInfo<>(applyHouseholdOwnerVOS);
        //TODO
        List<ApplyOwnerBO> applyOwnerBOS = this.getBaseMapper().selectApplyRecordWithOwnerPage(getApplyHouseholdOwnerBO);
        applyOwnerBOPageInfo.setList(applyOwnerBOS);
        List<String> projectIdList = applyOwnerBOPageInfo.getList().stream().map(ApplyOwnerBO::getProjectId).collect(Collectors.toList());
@@ -434,6 +464,11 @@
        return applyOwnerBOPageInfo;
    }
    /**
     * 任务中心-请帐详情
     * @param getApplyHouseholdOwnerBO
     * @return
     */
    @Override
    public ApplyBO stateApplyRecordDetail(GetApplyHouseholdOwnerBO getApplyHouseholdOwnerBO) {
        StateApplyRecord stateApplyRecord = this.getById(getApplyHouseholdOwnerBO.getApplyId());
@@ -448,6 +483,11 @@
        return applyBO;
    }
    /**
     * 导入权利人
     * @param importApplyRecordBO
     * @return
     */
    @Override
    public List<ApplyOwnerBO> importOwnerByFile(ImportApplyRecordBO importApplyRecordBO) {
        List<ApplyOwnerVO> dataList;
@@ -475,7 +515,7 @@
        if (Objects.isNull(one)) {
            throw new GlobalException("未查询到相应项目");
        }
        //查询项目下的所有房产
        LambdaQueryWrapper<StateHousehold> lqwHousehold = new LambdaQueryWrapper<>();
        lqwHousehold.eq(StateHousehold::getStateProjectId, one.getId());
@@ -505,7 +545,7 @@
            throw new GlobalException("未查询到相应房产权利人");
        }
        //TODO 废弃代码开始
        StateApplyRecord stateApplyRecord;
        if (org.apache.commons.lang3.StringUtils.isBlank(importApplyRecordBO.getApplyId())) {
            stateApplyRecord = new StateApplyRecord();
@@ -530,21 +570,25 @@
            stateApplyRecord = new StateApplyRecord();
            stateApplyRecord.setId(importApplyRecordBO.getApplyId());
        }
        //废弃代码结束
        List<ApplyOwnerBO> itemList = new ArrayList<>();
        ApplyOwnerBO applyOwnerBO;
        StateApplyRecordItem item;
        List<StateHousehold> stateHouseholds = householdList.stream().filter(e -> dataList.stream().map(ApplyOwnerVO::getRealEstateCertificateNumber).collect(Collectors.toList()).contains(e.getRealEstateCertificateNumber())).collect(Collectors.toList());
        //根据导入数据的不动产权证号筛选出同项目下的房产数据
        List<StateHousehold> stateHouseholds = householdList.stream().filter(e -> dataList.stream().map(ApplyOwnerVO::getRealEstateCertificateNumber)
                .collect(Collectors.toList()).contains(e.getRealEstateCertificateNumber())).collect(Collectors.toList());
        ownerList.sort(Comparator.comparing(BaseEntity::getCreateTime));
        //权利人根据房产id分组
        Map<String, List<StateHouseholdOwner>> ownerMap = ownerList.stream().collect(Collectors.groupingBy(StateHouseholdOwner::getStateHouseholdId));
        //导入数据根据不同不动产权证号分组
        Map<String, List<ApplyOwnerVO>> importMap = dataList.stream().collect(Collectors.groupingBy(ApplyOwnerVO::getRealEstateCertificateNumber));
        DecimalFormat decimalFormat = new DecimalFormat("##0.####");
        for (StateHousehold stateHousehold : stateHouseholds) {
            List<StateHouseholdOwner> owners = ownerMap.get(stateHousehold.getId());
            if (!CollectionUtils.isEmpty(owners)) {
                applyOwnerBO = StateProjectConvert.INSTANCE.toApplyOwnerBO(owners.get(0));
                applyOwnerBO.setOwnerName(owners.stream().map(StateHouseholdOwner::getOwnerName).collect(Collectors.joining("|")));
                applyOwnerBO.setStateHouseholdOwnerId(owners.stream().map(StateHouseholdOwner::getId).collect(Collectors.joining("|")));
                applyOwnerBO = StateProjectConvert.INSTANCE.toApplyOwnerBO(owners.get(0));//TODO
                applyOwnerBO.setOwnerName(owners.stream().map(StateHouseholdOwner::getOwnerName).collect(Collectors.joining("|"))); // 多个权利人用|分割
                applyOwnerBO.setStateHouseholdOwnerId(owners.stream().map(StateHouseholdOwner::getId).collect(Collectors.joining("|"))); //多个权利人id以|分割
                applyOwnerBO.setStreet(stateHousehold.getStreet());
                applyOwnerBO.setRealEstateCertificateNumber(stateHousehold.getRealEstateCertificateNumber());
land-system/src/main/java/com/zzg/system/service/state/impl/StateAssetServiceImpl.java
@@ -8,20 +8,33 @@
import com.baomidou.mybatisplus.core.toolkit.CollectionUtils;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.github.pagehelper.PageInfo;
import com.zzg.common.core.domain.entity.state.*;
import com.zzg.common.core.domain.entity.state.StateAgreement;
import com.zzg.common.core.domain.entity.state.StateAsset;
import com.zzg.common.core.domain.entity.state.StateHousehold;
import com.zzg.common.core.domain.entity.state.StateProject;
import com.zzg.common.core.domain.entity.state.StateSettlement;
import com.zzg.common.core.domain.entity.system.SysDept;
import com.zzg.common.enums.*;
import com.zzg.common.enums.AgreementTypeEnum;
import com.zzg.common.enums.CompensationCategoryEnum;
import com.zzg.common.enums.DeleteFlagEnum;
import com.zzg.common.enums.ProcessCategoryEnum;
import com.zzg.common.enums.StateProjectStatusEnum;
import com.zzg.common.enums.SubmitStatusEnum;
import com.zzg.common.exception.GlobalException;
import com.zzg.common.utils.PageUtils;
import com.zzg.common.utils.SecurityUtils;
import com.zzg.common.utils.StringUtils;
import com.zzg.system.domain.bo.AssetDetailBO;
import com.zzg.system.domain.bo.FileBO;
import com.zzg.system.domain.bo.ProcessStartBO;
import com.zzg.system.domain.bo.StateAssetBO;
import com.zzg.system.domain.vo.StateAssetDetailVO;
import com.zzg.system.mapper.state.StateAssetMapper;
import com.zzg.system.service.state.*;
import com.zzg.system.service.state.StateAgreementService;
import com.zzg.system.service.state.StateAssetService;
import com.zzg.system.service.state.StateHouseholdService;
import com.zzg.system.service.state.StateProcessTemplateService;
import com.zzg.system.service.state.StateProjectService;
import com.zzg.system.service.state.StateSettlementService;
import com.zzg.system.service.system.ISysDeptService;
import lombok.RequiredArgsConstructor;
import org.springframework.context.annotation.Lazy;
@@ -31,7 +44,12 @@
import javax.annotation.Resource;
import java.math.BigDecimal;
import java.math.RoundingMode;
import java.util.*;
import java.util.ArrayList;
import java.util.Collections;
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;
@@ -57,12 +75,19 @@
    @Resource
    private final ISysDeptService deptService;
    /**
     * 项目资金点击上方符号查询
     * @param assetDetailBO
     * @return
     */
    @Override
    public PageInfo<StateAssetDetailVO> listAssetDetail(AssetDetailBO assetDetailBO) {
        //查询项目信息
        StateProject stateProject = stateProjectService.getById(assetDetailBO.getProjectId());
        Integer currentStatus = stateProject.getStatus();
        PageUtils.startPage();
        //查询项目预算资金详情
        List<StateAssetDetailVO> assetDetailVOList = assetMapper.listAssetDetail(assetDetailBO, currentStatus);
        if (CollectionUtils.isEmpty(assetDetailVOList)) {
            return new PageInfo<>();
@@ -78,7 +103,7 @@
            StateAssetDetailVO assetDetailVO = stateAssetDetailVOList.get(0);
            result.add(assetDetailVO);
        }
        //国有项目协议查询条件
        LambdaQueryWrapper<StateAgreement> stateAgreementLambdaQueryWrapper = new LambdaQueryWrapper<>();
        stateAgreementLambdaQueryWrapper.in(StateAgreement::getStateHouseholdId, result.stream().map(StateAssetDetailVO::getHouseId).collect(Collectors.toList()));
        //根据项目状态查询协议 这一个项目状态只有一种 随便取出来即可
@@ -92,6 +117,7 @@
            }
        }
        stateAgreementLambdaQueryWrapper.isNotNull(StateAgreement::getAgreementNumber);
        //查询协议列表
        List<StateAgreement> stateAgreements = agreementService.list(stateAgreementLambdaQueryWrapper);
        if (CollectionUtils.isEmpty(stateAgreements)) {
            stateAssetDetailVOPageInfo.setList(result);
@@ -111,16 +137,19 @@
        LambdaQueryWrapper<StateSettlement> stateSettlementLambdaQueryWrapper = new LambdaQueryWrapper<>();
        stateSettlementLambdaQueryWrapper.in(StateSettlement::getStateHouseholdId,
                result.stream().map(StateAssetDetailVO::getHouseId).collect(Collectors.toList()));
        //查询已结算金额
        List<StateSettlement> stateSettlementList = settlementService.list(stateSettlementLambdaQueryWrapper);
        Map<String, StateSettlement> stateSettlementMap = stateSettlementList.stream()
                .collect(Collectors.toMap(StateSettlement::getStateHouseholdId, Function.identity()));
        //赋值结算金额
        result.forEach(data -> {
            StateSettlement stateSettlement = stateSettlementMap.get(data.getHouseId());
            if (Objects.isNull(stateSettlement)) {
                return;
            }
            //TODO 置换后金额含义
            Double dbSettleMoney = Objects.nonNull(stateSettlement.getSettlementMoney()) ? stateSettlement.getSettlementMoney() : 0;
            Double dbExchangeMoney = Objects.nonNull(stateSettlement.getExchangeMoney()) ? stateSettlement.getExchangeMoney() : 0;
            BigDecimal settleMoney = BigDecimal.valueOf(dbSettleMoney + dbExchangeMoney).setScale(4, RoundingMode.HALF_UP);
@@ -135,12 +164,20 @@
        return stateAssetDetailVOPageInfo;
    }
    /**
     * 项目资金 上方统计数据
     * @param projectId
     * @return
     */
    @Override
    public JSONObject sumAsset(String projectId) {
        JSONObject jsonObject = new JSONObject();
        //查询项目信息
        StateProject stateProject = stateProjectService.getProjectById(projectId);
        // TODO 未将逻辑删除的字段过滤
        LambdaQueryWrapper<StateAsset> stateAssetQueryWrapper = new LambdaQueryWrapper<>();
        stateAssetQueryWrapper.eq(StateAsset::getStateProjectId, projectId);
        //查询项目预算资金
        List<StateAsset> stateAssets = this.list(stateAssetQueryWrapper);
        //预算金额
@@ -155,6 +192,7 @@
        stateHouseholdLambdaQueryWrapper.eq(StateHousehold::getStateProjectId, projectId);
        stateHouseholdLambdaQueryWrapper.eq(StateHousehold::getDelFlag, DeleteFlagEnum.NOT_DELETED.getKey());
        stateHouseholdLambdaQueryWrapper.isNotNull(StateHousehold::getAgreementStatus);
        //根据项目id查询房产数据
        List<StateHousehold> stateHouseholds = stateHouseholdService.list(stateHouseholdLambdaQueryWrapper);
        if (CollectionUtils.isEmpty(stateHouseholds)) {
@@ -178,6 +216,7 @@
        stateAgreementLambdaQueryWrapper.isNotNull(StateAgreement::getAgreementNumber);
        stateAgreementLambdaQueryWrapper.in(StateAgreement::getStateHouseholdId, houseIds);
        //查询协议信息
        List<StateAgreement> stateAgreements = agreementService.list(stateAgreementLambdaQueryWrapper);
        if (CollectionUtils.isNotEmpty(stateAgreements)) {
            Integer projectStatus = stateProject.getStatus();
@@ -189,7 +228,7 @@
                stateAgreementLambdaQueryWrapper.eq(StateAgreement::getAgreementFileType, AgreementTypeEnum.STATE_AGREEMENT.getValue());
                stateAgreements = stateAgreements.stream().filter(e -> e.getAgreementFileType().equals(AgreementTypeEnum.STATE_AGREEMENT.getValue())).collect(Collectors.toList());
            }
            // 协议金额
            double agreementMoney = stateAgreements.stream()
                    .filter(Objects::nonNull)
                    .filter(data -> Objects.nonNull(data.getMoney())).mapToDouble(StateAgreement::getMoney).sum();
@@ -199,14 +238,15 @@
            jsonObject.put("agreementMoney", agreementMoneyBig);
        }
        //将该项目下面的房产数据类型为产权置换的房产id筛选出来
        List<String> componseTypeHouseIds = stateHouseholds.stream().filter(data -> ObjectUtil.isNotEmpty(data.getCompensationType())
                && data.getCompensationType().equals(CompensationCategoryEnum.PROPERTY_SWAP_2.getCode())).map(StateHousehold::getId).collect(Collectors.toList());
        //产权置换下的合金额
        BigDecimal roundedAgreementMoney = BigDecimal.ZERO;
        if (ObjectUtil.isNotEmpty(componseTypeHouseIds)) {
            componseTypeAgreementLambdaQueryWrapper.isNotNull(StateAgreement::getAgreementNumber);
            componseTypeAgreementLambdaQueryWrapper.in(StateAgreement::getStateHouseholdId, componseTypeHouseIds);
            //根据房产id查询协议列表
            List<StateAgreement> stateAgreementsInDb = agreementService.list(componseTypeAgreementLambdaQueryWrapper);
            if (CollectionUtils.isNotEmpty(stateAgreementsInDb)) {
                double agreementMoney = stateAgreementsInDb.stream()
@@ -249,10 +289,16 @@
        return jsonObject;
    }
    /**
     * 新增和修改 项目资金
     * @param asset
     * @return
     */
    @Transactional
    @Override
    public boolean saveAsset(StateAssetBO asset) {
        String deptId = SecurityUtils.getLoginUser().getUser().getDept().getDeptId();
        //根据当前登录人部门id查询部门信息
        Map<String, SysDept> stringSysDeptMap = deptService.selectMapDeptById(Collections.singletonList(deptId));
        asset.setSubmittedBy(stringSysDeptMap.values().stream().map(SysDept::getDeptName).collect(Collectors.joining(",")));
@@ -288,6 +334,7 @@
        variable.put("projectId", asset.getStateProjectId());
        variable.put("street", asset.getStreet());
        processStartBO.setVariable(variable);
        //启动工作流
        stateProcessTemplateService.start(processStartBO);
        return result;
    }
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());
land-system/src/main/java/com/zzg/system/service/state/impl/StateProjectCompensateStandardServiceImpl.java
@@ -35,6 +35,13 @@
    @Resource
    private StateProjectCompensationService stateProjectCompensationService;
    /**
     * 获取补偿标准列表
     * @param standardName
     * @param stopFlag
     * @param compensateType
     * @return
     */
    @Override
    public Map<String, List<StateProjectCompensateStandardVO>> getCompensateStandardMap(String standardName, Integer stopFlag, Integer compensateType) {
        LambdaQueryWrapper<StateProjectCompensateStandard> queryWrapper = new LambdaQueryWrapper<>();
@@ -86,7 +93,7 @@
        } catch (IOException e) {
            throw new GlobalException("读取Excel文件失败");
        }
//TODO 导入未校验标准名称唯一
        StateProjectCompensateStandard po;
        List<StateProjectCompensateStandard> poList = new ArrayList<>();
        for (StateProjectCompensateStandardVO e : dataList) {
@@ -106,6 +113,11 @@
        return saveBatch(poList);
    }
    /**
     * 创建补偿标准
     * @param stateProjectCompensateStandard
     * @return
     */
    @Override
    public Boolean createCompensatesStandard(StateProjectCompensateStandard stateProjectCompensateStandard) {
        String standardName = stateProjectCompensateStandard.getStandardName();
@@ -126,7 +138,7 @@
                    if (isValidCompensationType(typeEnum.getCode(), categoryEnum.getCode())) {
                        StateProjectCompensateStandard compensation = createCompensation(typeEnum, categoryEnum, stateProjectCompensateStandard);
                        // 处理特殊的组合
                        // TODO 处理特殊的组合
                        handleSpecialCases(typeEnum, categoryEnum, compensation, standardList);
                        // 添加最终的 compensation 到标准列表
@@ -138,6 +150,11 @@
        return this.saveOrUpdateBatch(standardList);
    }
    /**
     * 修改补偿标准名字
     * @param stateProjectCompensateStandard
     * @return
     */
    @Override
    public Boolean updateName(StateProjectCompensateStandard stateProjectCompensateStandard) {
@@ -199,7 +216,9 @@
    private void handleSpecialCases(CompensateTypeEnum typeEnum, CompensationCategoryEnum categoryEnum,
                                    StateProjectCompensateStandard compensation, List<StateProjectCompensateStandard> standardList) {
        //政策性补贴
        if (typeEnum.equals(CompensateTypeEnum.POLICY_ALLOWANCE)
                //购房补贴
                && categoryEnum.equals(CompensationCategoryEnum.HOUSE_PURCHASE_SUBSIDY)) {
            addCompensationWithSpecifications(compensation, standardList);
        }