package com.ruoyi.web.controller.bussiness; import com.alibaba.excel.EasyExcelFactory; import com.alibaba.excel.write.builder.ExcelWriterBuilder; import com.ruoyi.bussiness.domain.PlacementBatchAsset; import com.ruoyi.bussiness.domain.PlacementBatchHousehold; import com.ruoyi.bussiness.object.request.placementApply.PlacementApplyIdRequest; import com.ruoyi.bussiness.object.request.placementBatch.*; import com.ruoyi.bussiness.object.response.placementBatch.PlacementBatchDetailResponse; import com.ruoyi.bussiness.object.response.placementBatch.PlacementBatchPageResponse; import com.ruoyi.bussiness.service.PlacementBatchService; 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.*; 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-batch") public class PlacementBatchController { @Autowired private PlacementBatchService placementBatchService; @Autowired private ISysDictTypeService dictTypeService; @ApiOperation(value = "安置批次-列表", notes = "安置批次-列表") @PostMapping(value = "/page") public BaseResult page(@RequestBody PlacementBatchPageRequest request) { PlacementBatchPageResponse response = placementBatchService.page(request); return ResponseUtils.successResponse(response); } @ApiOperation(value = "下载安置批次模版(3资金表,4房产表)", notes = "下载安置批次模版(3资金表,4房产表)") @PostMapping(value = "/download-template/{type}") public void downloadTemplate(@PathVariable Integer type, HttpServletResponse response) throws IOException { try { //街道 List street = dictTypeService.selectDictDataByType("street"); TemplateFileTypeEnum pathByFileType = TemplateFileTypeEnum.getEnumByFileType(type); 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("导出模版失败"); } } @RepeatSubmit @ApiOperation(value = "导入", notes = "导入") @PostMapping(value = "/imports") public BaseResult imports(PlacementBatchImportRequest request) { placementBatchService.imports(request); return ResponseUtils.successResponse(); } @ApiOperation(value = "安置批次-详情",notes="安置批次-详情") @PostMapping(value = "/detail") public BaseResult detail(@Valid @RequestBody PlacementBatchDetailRequest request) { PlacementBatchDetailResponse responses = placementBatchService.detail(request); return ResponseUtils.successResponse(responses); } @RepeatSubmit @ApiOperation(value = "数据审核", notes = "数据审核") @PostMapping(value = "/data-approve") public BaseResult dataApprove(@RequestBody PlacementBatchIdRequest request){ placementBatchService.dataApprove(request); return ResponseUtils.successResponse(); } @RepeatSubmit @ApiOperation(value = "资金数据核对", notes = "资金数据核对") @PostMapping(value = "/asset-check") public BaseResult assetCheck(@Valid @RequestBody IdRequest request){ placementBatchService.assetCheck(request); return ResponseUtils.successResponse(); } @RepeatSubmit @ApiOperation(value = "购房数据核对", notes = "资金数据核对") @PostMapping(value = "/household-check") public BaseResult householdCheck(@Valid @RequestBody IdRequest request){ placementBatchService.householdCheck(request); return ResponseUtils.successResponse(); } @ApiOperation(value = "安置批次-删除",notes = "安置批次-删除") @PostMapping(value = "/del") public BaseResult del(@Valid @RequestBody PlacementBatchIdRequest request){ placementBatchService.del(request); return ResponseUtils.successResponse(); } @RepeatSubmit @ApiOperation(value = "安置批次-资金记录编辑",notes="安置批次-资金记录编辑") @PostMapping(value = "/asset-edit") public BaseResult assetEdit(@RequestBody PlacementBatchAsset request){ placementBatchService.assetEdit(request); return ResponseUtils.successResponse(); } @RepeatSubmit @ApiOperation(value = "安置批次-购房记录编辑",notes="安置批次-购房记录编辑") @PostMapping(value = "/household-edit") public BaseResult householdEdit(@RequestBody PlacementBatchHousehold request){ placementBatchService.householdEdit(request); return ResponseUtils.successResponse(); } @RepeatSubmit @ApiOperation(value = "安置批次-资金记录删除",notes="安置批次-资金记录删除") @PostMapping(value = "/asset-del") public BaseResult assetDel(@RequestBody IdRequest request){ placementBatchService.assetDel(request); return ResponseUtils.successResponse(); } @RepeatSubmit @ApiOperation(value = "安置批次-购房记录删除",notes="安置批次-购房记录删除") @PostMapping(value = "/household-del") public BaseResult householdDel(@RequestBody IdRequest request){ placementBatchService.householdDel(request); return ResponseUtils.successResponse(); } @RepeatSubmit @ApiOperation(value = "安置批次-资金记录添加",notes="安置批次-资金记录添加") @PostMapping(value = "/asset-add") public BaseResult assetAdd(@RequestBody PlacementBatchAsset request){ placementBatchService.assetAdd(request); return ResponseUtils.successResponse(); } @RepeatSubmit @ApiOperation(value = "安置批次-购房记录添加",notes="安置批次-购房记录添加") @PostMapping(value = "/household-add") public BaseResult householdAdd(@RequestBody PlacementBatchHousehold request){ placementBatchService.householdAdd(request); return ResponseUtils.successResponse(); } @ApiOperation(value = "安置批次-资金记录详情",notes="安置批次-资金记录详情") @PostMapping(value = "/asset-detail") public BaseResult assetDetail(@RequestBody IdRequest request){ PlacementBatchAsset response = placementBatchService.assetDetail(request); return ResponseUtils.successResponse(response); } @ApiOperation(value = "安置批次-购房记录详情",notes="安置批次-购房记录详情") @PostMapping(value = "/household-detail") public BaseResult householdDetail(@RequestBody IdRequest request){ PlacementBatchHousehold response = placementBatchService.householdDetail(request); return ResponseUtils.successResponse(response); } @RepeatSubmit @ApiOperation(value = "安置批次-审核",notes="安置批次-审核") @PostMapping(value = "/approve") public BaseResult approve(@RequestBody ApproveRequest request){ placementBatchService.approve(request); return ResponseUtils.successResponse(); } @ApiOperation(value = "安置批次-问题数据导出") @PostMapping(value = "/problem-export") public void problemExport(@RequestBody ProblemExportRequest request, HttpServletResponse response) throws IOException { placementBatchService.problemExport(request,response); } @ApiOperation(value = "修复安置库信息") @GetMapping(value = "/fix-settle") public BaseResult fixSettle(){ placementBatchService.fixSettle(); return ResponseUtils.successResponse(); } }