package com.zzg.web.controller.state.householdQuery;
|
|
|
import com.alibaba.excel.EasyExcelFactory;
|
import com.alibaba.fastjson2.JSON;
|
import com.alibaba.fastjson2.JSONObject;
|
import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
|
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
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.StateHousehold;
|
import com.zzg.common.enums.HouseMoveEnum;
|
import com.zzg.common.enums.HouseUsingTypeEnum;
|
import com.zzg.common.enums.StateHouseholdStageEnums;
|
import com.zzg.common.exception.GlobalException;
|
import com.zzg.common.utils.file.FileUtils;
|
import com.zzg.system.convert.StateProjectConvert;
|
import com.zzg.system.domain.bo.CalculateCompensationBO;
|
import com.zzg.system.domain.bo.HouseQueryBO;
|
import com.zzg.system.domain.bo.HouseholdBO;
|
import com.zzg.system.domain.bo.StateHouseholdBO;
|
import com.zzg.system.domain.vo.HouseQueryVO;
|
import com.zzg.system.domain.vo.HouseUsingTypeVO;
|
import com.zzg.system.domain.vo.HouseholdDetailVO;
|
import com.zzg.system.domain.vo.HouseholdVO;
|
import com.zzg.system.domain.vo.StateHouseholdExportVO;
|
import com.zzg.system.domain.vo.StateHouseholdVO;
|
import com.zzg.system.service.state.StateHouseholdService;
|
import lombok.RequiredArgsConstructor;
|
import org.apache.commons.lang3.StringUtils;
|
import org.springframework.http.MediaType;
|
import org.springframework.web.bind.annotation.GetMapping;
|
import org.springframework.web.bind.annotation.PostMapping;
|
import org.springframework.web.bind.annotation.RequestBody;
|
import org.springframework.web.bind.annotation.RequestParam;
|
import org.springframework.web.bind.annotation.RestController;
|
import org.springframework.web.multipart.MultipartFile;
|
|
import javax.servlet.http.HttpServletResponse;
|
import java.io.IOException;
|
import java.util.ArrayList;
|
import java.util.EnumSet;
|
import java.util.List;
|
import java.util.Objects;
|
import java.util.Set;
|
|
@RestController
|
@RequiredArgsConstructor
|
public class StateHouseholdController {
|
|
private final StateHouseholdService stateHouseholdService;
|
|
// 分页查询
|
@GetMapping(UrlConstants.STATA_HOUSEHOLD_PAGE)
|
public AjaxResult<Page<StateHousehold>> page(@RequestParam int currentPage, @RequestParam int pageSize) {
|
return AjaxResult.success(stateHouseholdService.page(new Page<>(currentPage, pageSize)));
|
}
|
//入户调查 - 入户调查列表数据查询页面
|
@PostMapping(UrlConstants.STATE_HOUSEHOLD_LIST_BY_CONDITION)
|
public AjaxResult<HouseholdDetailVO> list(@RequestBody(required = false) HouseholdBO householdBOBody) {
|
return AjaxResult.success(stateHouseholdService.queryList(householdBOBody));
|
}
|
//国有入户调查
|
@PostMapping(UrlConstants.STATE_HOUSEHOLD_QUERY)
|
public AjaxResult<PageInfo<HouseQueryVO>> houseQuery(@RequestBody HouseQueryBO houseQueryBO) {
|
return AjaxResult.success(stateHouseholdService.queryData(houseQueryBO));
|
}
|
|
//入户调查列表页面-导出
|
@PostMapping(UrlConstants.STATE_HOUSEHOLD_LIST_EXPORT)
|
public AjaxResult<HouseholdDetailVO> export(@RequestBody(required = false) HouseholdBO householdBOBody, HttpServletResponse response) throws IOException {
|
householdBOBody.setPageNum(1);
|
householdBOBody.setPageSize(5000);
|
HouseholdDetailVO householdDetailVO = stateHouseholdService.queryList(householdBOBody);
|
PageInfo<HouseholdVO> householdVOS = householdDetailVO.getHouseholdVOS();
|
if (Objects.isNull(householdVOS)) {
|
throw new GlobalException("当前项目没有房产数据");
|
}
|
List<HouseholdVO> list = householdVOS.getList();
|
List<StateHouseholdExportVO> exportVOList = StateProjectConvert.INSTANCE.toStateHouseholdExportVO(list);
|
for (int i = 0; i < exportVOList.size(); i++) {
|
StateHouseholdExportVO e = exportVOList.get(i);
|
e.setIndex(String.valueOf(i + 1));
|
e.setHouseUsingTypeStr(HouseUsingTypeEnum.getText(e.getHouseUsingType()));
|
if (Objects.nonNull(e.getAgreeMove())) {
|
e.setAgreeMoveStr(HouseMoveEnum.getText(e.getAgreeMove()));
|
if (e.getAgreeMoveStr().contains("同意")) {
|
e.setAgreeMoveStr("是");
|
} else if (e.getAgreeMoveStr().contains("拒绝")) {
|
e.setAgreeMoveStr("否");
|
}
|
} else {
|
e.setAgreeMoveStr("-");
|
}
|
}
|
|
FileUtils.setExcelResponseHeader(response, "房产导出.xlsx");
|
|
EasyExcelFactory.write(response.getOutputStream(), StateHouseholdExportVO.class)
|
.sheet("sheet")
|
.doWrite(exportVOList);
|
response.setContentType(MediaType.APPLICATION_OCTET_STREAM_VALUE);
|
return AjaxResult.success();
|
}
|
//入户调查页面-导入
|
@PostMapping(UrlConstants.STATE_HOUSEHOLD_LIST_IMPORT)
|
public AjaxResult<Boolean> importStateHousehold(@RequestParam("file") MultipartFile file, String projectId) {
|
|
return AjaxResult.success(stateHouseholdService.importStateHousehold(file, projectId));
|
}
|
|
//展示房屋用途
|
@GetMapping(UrlConstants.STATE_HOUSEHOLD_USING_TYPE_LIST)
|
public AjaxResult<List<HouseUsingTypeVO>> usingTypeList() {
|
Set<HouseUsingTypeEnum> houseTypeSet = EnumSet.allOf(HouseUsingTypeEnum.class);
|
List<HouseUsingTypeVO> houseUsingTypeVOS = new ArrayList<>();
|
houseTypeSet.forEach(data -> {
|
HouseUsingTypeVO houseUsingTypeVO = new HouseUsingTypeVO();
|
houseUsingTypeVO.setName(data.getText());
|
houseUsingTypeVO.setValue(data.getValue());
|
houseUsingTypeVOS.add(houseUsingTypeVO);
|
});
|
return AjaxResult.success(houseUsingTypeVOS);
|
}
|
|
// 根据ID查询项目
|
@GetMapping(UrlConstants.STATE_HOUSEHOLD_GET_BY_ID)
|
public AjaxResult<StateHouseholdVO> getById(@RequestParam String id) {
|
return AjaxResult.success(stateHouseholdService.getStateHouseholdInfo(id));
|
}
|
|
// 创建项目
|
@PostMapping(UrlConstants.STATE_HOUSEHOLD_CREATE)
|
public AjaxResult<StateHouseholdBO> create(@RequestBody StateHouseholdBO household) {
|
|
return AjaxResult.success(stateHouseholdService.createAndUpdateHouse(household));
|
}
|
|
|
// 删除房屋
|
@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);
|
return AjaxResult.success();
|
}
|
|
//协议提交审核 修改房产状态
|
@GetMapping(UrlConstants.STATE_HOUSEHOLD_WORKFLOW_SUBMIT)
|
public AjaxResult<Boolean> submit(@RequestParam String projectId, @RequestParam Integer category) {
|
stateHouseholdService.submitHouseHoldAudit(projectId, category);
|
return AjaxResult.success();
|
}
|
|
//项目资金情况 街道标签 - 查询该项目所有的街道
|
@GetMapping(UrlConstants.STATE_HOUSEHOLD_STREET_LIST)
|
public AjaxResult<List<JSONObject>> listHouseStreet(@RequestParam String projectId) {
|
return AjaxResult.success(stateHouseholdService.listStreet(projectId));
|
}
|
//入户调查 - 点击完成提交
|
@GetMapping(UrlConstants.STATE_HOUSEHOLD_COMPLETE_SEARCH)
|
public AjaxResult<Boolean> completeSearch(@RequestParam String houseId,
|
@RequestParam Integer searchStatus) {
|
StateHousehold stateHousehold = stateHouseholdService.getById(houseId);
|
if (Objects.isNull(stateHousehold)) {
|
throw new GlobalException("该房产数据不存在");
|
}
|
stateHousehold.setSearchStatus(searchStatus);
|
if (Objects.equals(stateHousehold.getStage(), StateHouseholdStageEnums.SIMULATE.getValue())) {
|
stateHousehold.setStage(StateHouseholdStageEnums.SIMULATE_SUCCESS.getValue());
|
}
|
//撤回
|
if(searchStatus == 0){
|
CalculateCompensationBO calculateCompensationBO = new CalculateCompensationBO();
|
if (Objects.nonNull(stateHousehold.getAppendData()) && StringUtils.isNotBlank(stateHousehold.getAppendData())) {
|
calculateCompensationBO = JSON.parseObject(stateHousehold.getAppendData(), CalculateCompensationBO.class);
|
if (Objects.nonNull(calculateCompensationBO.getSurveyResultRegistrationBO())) {
|
calculateCompensationBO.getSurveyResultRegistrationBO().setIsAgree(null);
|
calculateCompensationBO.getSurveyResultRegistrationBO().setIsConfirm(null);
|
}
|
}
|
LambdaUpdateWrapper<StateHousehold> stateHouseholdUpdateWrapper = new LambdaUpdateWrapper<>();
|
stateHouseholdUpdateWrapper.eq(StateHousehold::getId, houseId);
|
stateHouseholdUpdateWrapper.set(StateHousehold::getAgreeMove, null);
|
stateHouseholdUpdateWrapper.set(StateHousehold::getAppendData, JSON.toJSONString(calculateCompensationBO));
|
stateHouseholdService.update(stateHouseholdUpdateWrapper);
|
stateHousehold = stateHouseholdService.getById(houseId);
|
stateHousehold.setSearchStatus(searchStatus);
|
}
|
return AjaxResult.success(stateHouseholdService.saveOrUpdate(stateHousehold));
|
}
|
//撤回按钮
|
@GetMapping(UrlConstants.STATE_HOUSEHOLD_MOBILE_BACK)
|
public AjaxResult<Boolean> mobileBack(@RequestParam String houseId) {
|
return AjaxResult.success(stateHouseholdService.mobileBack(houseId));
|
}
|
|
}
|