mitao
2025-01-15 da8bd34ef4e721b9d6255f983c68ef3975d0962d
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
package com.zzg.web.controller.state.householdQuery;
 
import cn.hutool.core.util.ObjectUtil;
import com.alibaba.fastjson2.JSONObject;
import com.baomidou.mybatisplus.core.toolkit.StringUtils;
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import com.zzg.common.constant.state.UrlConstants;
import com.zzg.common.core.domain.AjaxResult;
import com.zzg.common.core.domain.entity.state.StateHouseholdOwner;
import com.zzg.common.core.domain.entity.state.StateProjectCompensateStandard;
import com.zzg.common.enums.HelpTypeEnum;
import com.zzg.system.domain.bo.CalculateCompensationBO;
import com.zzg.system.domain.bo.StateHouseholdOwnerBO;
import com.zzg.system.domain.vo.CalculateCompensationVO;
import com.zzg.system.service.state.StateHouseholdOwnerService;
import io.swagger.annotations.ApiOperation;
import lombok.RequiredArgsConstructor;
import org.springframework.web.bind.annotation.*;
 
import java.util.List;
import java.util.Map;
import java.util.Objects;
import java.util.stream.Collectors;
 
@RestController
@RequiredArgsConstructor
public class StateHouseholdOwnerController {
 
    private final StateHouseholdOwnerService householdOwnerService;
 
    //查询权利人
    @GetMapping(UrlConstants.STATE_HOUSEHOLD_OWNER_LIST_BY_SATE_HOUSEHOLD_ID)
    public AjaxResult<Object> listPersons(@RequestParam String stateHouseholdId) {
        JSONObject jsonObject = householdOwnerService.getPersonsInfo(stateHouseholdId);
        return AjaxResult.success(jsonObject);
    }
    //新增权利人
    @PostMapping(UrlConstants.STATE_HOUSEHOLD_OWNER_SAVE)
    public AjaxResult<Boolean> savePerson(@RequestBody StateHouseholdOwnerBO person) {
        List<StateHouseholdOwner> ownerBOList = person.getOwnerBOList();
        ownerBOList.forEach(e -> {
                    //修改当对象重新修改为不是救助对象时删除救助类型
                    e.setHelpType(person.getHelpType());
                    if (Objects.equals(person.getIsHelp(), HelpTypeEnum.NOT_HELP_PERSON.getValue())) {
                        e.setHelpType("");
                    }
                    e.setIsHelp(person.getIsHelp());
                    e.setCompensationType(person.getCompensationType());
                    e.setAppendData(person.getAppendData());
                }
        );
        return AjaxResult.success(householdOwnerService.saveOrUpdateBatch(ownerBOList));
    }
    //修改权利人信息
    @PostMapping(UrlConstants.STATE_HOUSEHOLD_OWNER_UPDATE)
    public AjaxResult<Boolean> updatePerson(@RequestBody StateHouseholdOwner stateHouseholdOwner) {
        //查询当前项目下所有的
        List<StateHouseholdOwner> list = householdOwnerService.list(Wrappers.<StateHouseholdOwner>lambdaQuery()
                .eq(StateHouseholdOwner::getStateHouseholdId, stateHouseholdOwner.getStateHouseholdId()));
        if (ObjectUtil.isNotEmpty(list)) {
            list.forEach(e -> {
                        //修改当对象重新修改为不是救助对象时删除救助类型
                        e.setHelpType(stateHouseholdOwner.getHelpType());
                        if (Objects.equals(stateHouseholdOwner.getIsHelp(), HelpTypeEnum.NOT_HELP_PERSON.getValue())) {
                            e.setHelpType(null);
                        }
                        e.setIsHelp(stateHouseholdOwner.getIsHelp());
                        e.setCompensationType(stateHouseholdOwner.getCompensationType());
                        e.setAppendData(stateHouseholdOwner.getAppendData());
                    }
            );
            householdOwnerService.saveOrUpdateBatch(list);
        }
        householdOwnerService.saveOrUpdate(stateHouseholdOwner);
        return AjaxResult.success();
    }
    //删除权利人
    @GetMapping(UrlConstants.STATE_HOUSEHOLD_OWNER_DELETE)
    public AjaxResult<Boolean> deletePerson(@RequestParam String stateHouseholdOwnerId) {
        return AjaxResult.success(householdOwnerService.removeById(stateHouseholdOwnerId));
    }
    //计算入户补偿的预估数据
    @PostMapping(UrlConstants.STATE_HOUSEHOLD_OWNER_CALCULATE_COMPENSATION)
    @ApiOperation(value = "计算入户补偿的预估数据", notes = "计算入户补偿的预估数据")
    public AjaxResult<CalculateCompensationVO> calculateCompensation(@RequestBody CalculateCompensationBO calculateCompensationBO) {
        calculateCompensationBO.setIsFirst(true);
        return AjaxResult.success(householdOwnerService.calculateCompensation(calculateCompensationBO));
    }
 
    @GetMapping(UrlConstants.STATE_HOUSEHOLD_OWNER_GET_CALCULATE_COMPENSATION)
    @ApiOperation(value = "获取计算入户补偿的标准", notes = "获取计算入户补偿的标准")
    public AjaxResult<List<StateProjectCompensateStandard>> getCalculateCompensation(@RequestParam(required = false) String projectId) {
 
        if (StringUtils.isBlank(projectId)) {
            return AjaxResult.success();
        }
 
        return AjaxResult.success(householdOwnerService.getCalculateCompensation(projectId));
    }
 
    @GetMapping(UrlConstants.STATE_HOUSEHOLD_OWNER_GET_CALCULATE_COMPENSATION_WEB)
    @ApiOperation(value = "web获取计算入户补偿的标准", notes = "获取计算入户补偿的标准")
    public AjaxResult<Map<String, List<StateProjectCompensateStandard>>> getWebCalculateCompensation(@RequestParam String projectId) {
        List<StateProjectCompensateStandard> calculateCompensation = householdOwnerService.getCalculateCompensation(projectId);
        // 使用 groupingBy 并将键转换为 String
        Map<String, List<StateProjectCompensateStandard>> collect = calculateCompensation.stream()
                .collect(Collectors.groupingBy(
                        standard -> String.valueOf(standard.getCategory())
                ));
        return AjaxResult.success(collect);
    }
 
}