package com.ruoyi.web.controller.bussiness;
|
|
import com.alibaba.excel.EasyExcelFactory;
|
import com.alibaba.excel.write.builder.ExcelWriterBuilder;
|
import com.ruoyi.bussiness.domain.Placement;
|
import com.ruoyi.bussiness.domain.PlacementBatchHousehold;
|
import com.ruoyi.bussiness.object.request.placement.PlacementIdRequest;
|
import com.ruoyi.bussiness.object.request.placement.PlacementImportRequest;
|
import com.ruoyi.bussiness.object.request.placement.PlacementPageRequest;
|
import com.ruoyi.bussiness.object.response.placement.GetHouseHistoryRequest;
|
import com.ruoyi.bussiness.object.response.placement.PlacementPageResponse;
|
import com.ruoyi.bussiness.service.PlacementBatchHouseholdService;
|
import com.ruoyi.bussiness.service.PlacementService;
|
import com.ruoyi.common.annotation.RepeatSubmit;
|
import com.ruoyi.common.core.domain.BaseResult;
|
import com.ruoyi.common.core.domain.ResponseUtils;
|
import com.ruoyi.common.core.domain.entity.SysDictData;
|
import com.ruoyi.common.easyExcel.MultiDropdownWriteHandler;
|
import com.ruoyi.common.exception.GlobalException;
|
import com.ruoyi.common.utils.file.FileUtils;
|
import com.ruoyi.system.service.ISysDictTypeService;
|
import com.ruoyi.bussiness.enums.TemplateFileTypeEnum;
|
import io.swagger.annotations.Api;
|
import io.swagger.annotations.ApiOperation;
|
import org.springframework.beans.factory.annotation.Autowired;
|
import org.springframework.http.MediaType;
|
import org.springframework.validation.annotation.Validated;
|
import org.springframework.web.bind.annotation.PostMapping;
|
import org.springframework.web.bind.annotation.RequestBody;
|
import org.springframework.web.bind.annotation.RequestMapping;
|
import org.springframework.web.bind.annotation.RestController;
|
|
import javax.servlet.http.HttpServletResponse;
|
import java.io.IOException;
|
import java.lang.reflect.Method;
|
import java.util.Collections;
|
import java.util.List;
|
import java.util.Objects;
|
|
@Validated
|
@Api(value = "待安置人员库",tags = "待安置人员库")
|
@RestController
|
@RequestMapping(value = "/placement")
|
public class PlacementController {
|
|
@Autowired
|
private PlacementService placementService;
|
@Autowired
|
private ISysDictTypeService dictTypeService;
|
|
@ApiOperation(value = "列表", notes = "列表")
|
@PostMapping(value = "/page")
|
public BaseResult<PlacementPageResponse> page(@RequestBody PlacementPageRequest request) {
|
PlacementPageResponse response = placementService.page(request);
|
return ResponseUtils.successResponse(response);
|
}
|
|
@ApiOperation(value = "查询安置购房信息", notes = "查询安置购房信息")
|
@PostMapping(value = "/get-house-history")
|
public BaseResult<List<PlacementBatchHousehold>> getHouseHistory(@RequestBody GetHouseHistoryRequest request){
|
// List<PlacementBatchHousehold> households = placementBatchHouseholdService.getHouseHistory(request);
|
// return ResponseUtils.successResponse(households);
|
return ResponseUtils.successResponse(null);
|
}
|
|
@RepeatSubmit
|
@ApiOperation(value = "新增", notes = "新增")
|
@PostMapping(value = "/add")
|
public BaseResult<Object> add(@RequestBody Placement placement) {
|
placementService.add(placement);
|
return ResponseUtils.successResponse();
|
}
|
|
@ApiOperation(value = "编辑", notes = "编辑")
|
@PostMapping(value = "/edit")
|
public BaseResult<Object> edit(@RequestBody Placement placement) {
|
placementService.update(placement);
|
return ResponseUtils.successResponse();
|
}
|
|
@ApiOperation(value = "详情", notes = "详情")
|
@PostMapping(value = "/detail")
|
public BaseResult<Placement> detail(@RequestBody PlacementIdRequest request) {
|
Placement placement = placementService.detail(request);
|
return ResponseUtils.successResponse(placement);
|
}
|
|
@ApiOperation(value = "删除", notes = "删除")
|
@PostMapping(value = "/del")
|
public BaseResult<Object> del(@RequestBody PlacementIdRequest request) {
|
placementService.del(request);
|
return ResponseUtils.successResponse();
|
}
|
|
@ApiOperation(value = "下载模版", notes = "下载模版")
|
@PostMapping(value = "/download-template")
|
public void downloadTemplate(HttpServletResponse response) throws IOException {
|
try {
|
//街道
|
List<SysDictData> street = dictTypeService.selectDictDataByType("street");
|
List<SysDictData> relation = dictTypeService.selectDictDataByType("relation");
|
TemplateFileTypeEnum pathByFileType = TemplateFileTypeEnum.getEnumByFileType(1);
|
Method generateExampleDataMethod = pathByFileType.getClazz().getMethod("generateExampleData");
|
Method generateHeaderDataMethod = pathByFileType.getClazz().getMethod("generateHeaderData",List.class,List.class);
|
Object exampleData = generateExampleDataMethod.invoke(null);
|
Object headerData = generateHeaderDataMethod.invoke(null,street,relation);
|
|
FileUtils.setExcelResponseHeader(response, pathByFileType.getFileName());
|
ExcelWriterBuilder write = EasyExcelFactory.write(response.getOutputStream(), pathByFileType.getClazz());
|
if (Objects.nonNull(headerData)) {
|
write.registerWriteHandler((MultiDropdownWriteHandler) headerData);
|
}
|
write.sheet("sheet")
|
.doWrite(Collections.singletonList(exampleData));
|
response.setContentType(MediaType.APPLICATION_OCTET_STREAM_VALUE);
|
} catch (Exception e) {
|
throw new GlobalException("导出模版失败");
|
}
|
}
|
|
@ApiOperation(value = "导入", notes = "导入")
|
@PostMapping(value = "/imports")
|
public BaseResult<Object> imports(PlacementImportRequest request) {
|
placementService.imports(request);
|
return ResponseUtils.successResponse();
|
}
|
|
|
}
|