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);
|
}
|
|
}
|