package com.ruoyi.web.controller.bussiness;
|
|
import com.alibaba.excel.EasyExcelFactory;
|
import com.alibaba.excel.write.builder.ExcelWriterBuilder;
|
import com.ruoyi.bussiness.domain.PlacementApplyRecord;
|
import com.ruoyi.bussiness.object.request.placementApply.*;
|
import com.ruoyi.bussiness.object.response.placementApply.PlacementApplyPageResponse;
|
import com.ruoyi.bussiness.object.response.placementApply.PlacementApplyRecordIdRequest;
|
import com.ruoyi.bussiness.object.response.placementApply.PlacementApplyRecordPageResponse;
|
import com.ruoyi.bussiness.service.PlacementApplyService;
|
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 javax.validation.Valid;
|
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-apply")
|
public class PlacementApplyController {
|
|
@Autowired
|
private PlacementApplyService placementApplyService;
|
@Autowired
|
private ISysDictTypeService dictTypeService;
|
|
@ApiOperation(value = "自主购房安置申请批次表-列表", notes = "自主购房安置申请批次表-列表")
|
@PostMapping(value = "/page")
|
public BaseResult<PlacementApplyPageResponse> page(@RequestBody PlacementApplyPageRequest request) {
|
PlacementApplyPageResponse response = placementApplyService.page(request);
|
return ResponseUtils.successResponse(response);
|
}
|
|
@ApiOperation(value = "自主购房安置申请批次表-详情", notes = "自主购房安置申请批次表-详情")
|
@PostMapping(value = "/detail")
|
public BaseResult<PlacementApplyRecordPageResponse> detail(@Valid @RequestBody PlacementApplyRecordPageRequest request) {
|
PlacementApplyRecordPageResponse response = placementApplyService.detail(request);
|
return ResponseUtils.successResponse(response);
|
}
|
|
@ApiOperation(value = "自主购房安置申请批次表-删除", notes = "自主购房安置申请批次表-删除")
|
@PostMapping(value = "/del")
|
public BaseResult<Object> del(@RequestBody PlacementApplyIdRequest request) {
|
placementApplyService.del(request);
|
return ResponseUtils.successResponse();
|
}
|
|
@RepeatSubmit
|
@ApiOperation(value = "数据审核", notes = "数据审核")
|
@PostMapping(value = "/data-approve")
|
public BaseResult<Object> dataApprove(@RequestBody PlacementApplyIdRequest request){
|
placementApplyService.dataApprove(request);
|
return ResponseUtils.successResponse();
|
}
|
|
@RepeatSubmit
|
@ApiOperation(value = "数据核对", notes = "数据核对")
|
@PostMapping(value = "/record-check")
|
public BaseResult<Object> recordCheck(@Valid @RequestBody PlacementApplyRecordIdRequest request){
|
placementApplyService.recordCheck(request);
|
return ResponseUtils.successResponse();
|
}
|
|
|
@RepeatSubmit
|
@ApiOperation(value = "自主购房安置申请批次表-审核", notes = "自主购房安置申请批次表-审核")
|
@PostMapping(value = "/approve")
|
public BaseResult<Object> approve(@Valid @RequestBody PlacementApplyApproveRequest request) {
|
placementApplyService.approve(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");
|
TemplateFileTypeEnum pathByFileType = TemplateFileTypeEnum.getEnumByFileType(2);
|
Method generateExampleDataMethod = pathByFileType.getClazz().getMethod("generateExampleData");
|
Method generateHeaderDataMethod = pathByFileType.getClazz().getMethod("generateHeaderData", List.class);
|
Object exampleData = generateExampleDataMethod.invoke(null);
|
Object headerData = generateHeaderDataMethod.invoke(null, street);
|
|
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("导出模版失败");
|
}
|
}
|
|
/**
|
* 1.最外面的导入:没有申请表id的情况,需要汇总数据到申请汇总表,需要新建申请表
|
* 2.详情里面的导入:有申请表id的情况,直接追加数据到现有的申请表
|
* @return
|
*/
|
@ApiOperation(value = "导入自主购房申请批次表", notes = "导入自主购房申请批次表")
|
@PostMapping(value = "/imports")
|
public BaseResult<Object> imports(PlacementImportsRequest request) throws IOException {
|
placementApplyService.imports(request);
|
return ResponseUtils.successResponse();
|
}
|
|
@ApiOperation(value = "自主购房申请批次表-记录添加")
|
@PostMapping(value = "/record-add")
|
public BaseResult<Object> recordAdd(@RequestBody PlacementApplyRecord placementApplyRecord){
|
placementApplyService.recordAdd(placementApplyRecord);
|
return ResponseUtils.successResponse();
|
}
|
|
@ApiOperation(value = "自主购房申请批次表-记录编辑")
|
@PostMapping(value = "/record-detail")
|
public BaseResult<PlacementApplyRecord> recordDetail(@Valid @RequestBody PlacementApplyIdRequest placementApplyRecord) {
|
PlacementApplyRecord record = placementApplyService.recordDetail(placementApplyRecord);
|
return ResponseUtils.successResponse(record);
|
}
|
|
@ApiOperation(value = "自主购房申请批次表-记录删除")
|
@PostMapping(value = "/record-del")
|
public BaseResult<Object> recordDel(@RequestBody PlacementApplyRecordIdRequest request){
|
placementApplyService.recordDel(request);
|
return ResponseUtils.successResponse();
|
}
|
|
@ApiOperation(value = "自主购房申请批次表-记录编辑")
|
@PostMapping(value = "/record-edit")
|
public BaseResult<Object> recordEdit(@RequestBody PlacementApplyRecord placementApplyRecord){
|
placementApplyService.recordEdit(placementApplyRecord);
|
return ResponseUtils.successResponse();
|
}
|
|
@ApiOperation(value = "自主购房申请批次表-问题数据导出")
|
@PostMapping(value = "/problem-export")
|
public void problemExport(@RequestBody ApplyProblemExportRequest request, HttpServletResponse response) throws IOException {
|
placementApplyService.problemExport(request,response);
|
}
|
|
@ApiOperation(value = "自主购房申请批次表-全部数据导出")
|
@PostMapping(value = "/exports")
|
public void exports(@RequestBody ApplyAllExportRequest request, HttpServletResponse response) throws IOException {
|
placementApplyService.allExport(request,response);
|
}
|
|
}
|