package com.ruoyi.web; import com.google.common.collect.Lists; import com.ruoyi.common.annotation.Log; import com.ruoyi.common.core.controller.BaseController; import com.ruoyi.common.core.domain.R; import com.ruoyi.common.core.page.TableDataInfo; import com.ruoyi.common.enums.BusinessType; import com.ruoyi.common.exception.ServiceException; import com.ruoyi.common.utils.poi.ExcelUtil; import com.ruoyi.domain.ReviewEnterpriseArchive; import com.ruoyi.domain.vo.EnterpriseImportFileVO; import com.ruoyi.domain.vo.ReviewEnterpriseArchiveViewVO; import com.ruoyi.service.ReviewEnterpriseArchiveService; import com.ruoyi.web.request.*; import com.ruoyi.web.response.TaskFindResponse; import com.ruoyi.web.response.TaskGetInfoResponse; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; import org.apache.skywalking.apm.toolkit.trace.Tag; import org.apache.skywalking.apm.toolkit.trace.Tags; import org.apache.skywalking.apm.toolkit.trace.Trace; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.validation.annotation.Validated; import org.springframework.web.bind.annotation.RequestBody; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestMethod; 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.Date; import java.util.List; @Api(tags = "车企文件") @RestController @RequestMapping("/review/enterprise/archive") public class ReviewEnterpriseArchiveController extends BaseController { @Autowired private ReviewEnterpriseArchiveService reviewEnterpriseArchiveService; @ApiOperation("分页查询车企文件") @Trace @Tags({@Tag(key = "param", value = "arg[0]"), @Tag(key = "result", value = "returnedObj")}) @RequestMapping(method = RequestMethod.POST, value = "/findEnterpriseArchive") public TableDataInfo findEnterpriseArchive(@Validated @RequestBody ReviewEnterpriseArchiveFindRequest request) { startPage(request); return getDataTable(reviewEnterpriseArchiveService.findEnterpriseArchive(request)); } @ApiOperation("根据任务id分页查询车企文件") @Trace @Tags({@Tag(key = "param", value = "arg[0]"), @Tag(key = "result", value = "returnedObj")}) @RequestMapping(method = RequestMethod.POST, value = "/findEnterpriseArchiveByTaskId") public TableDataInfo findEnterpriseArchiveByTaskId(@Validated @RequestBody ReviewEnterpriseArchiveFindByTaskIdRequest request) { startPage(request); return getDataTable(reviewEnterpriseArchiveService.findEnterpriseArchiveByTaskId(request)); } @ApiOperation("根据id查询") @Trace @Tags({@Tag(key = "param", value = "arg[0]"), @Tag(key = "result", value = "returnedObj")}) @RequestMapping(method = RequestMethod.POST, value = "/getById") public R getInfo(@Validated @RequestBody ReviewEnterpriseArchiveGetInfoRequest request) { ReviewEnterpriseArchive reviewEnterpriseArchive = reviewEnterpriseArchiveService.getInfo(request); return R.ok(reviewEnterpriseArchive); } @ApiOperation("查询车企文件列表") @Trace @Tags({@Tag(key = "param", value = "arg[0]"), @Tag(key = "result", value = "returnedObj")}) @RequestMapping(method = RequestMethod.POST, value = "/findList") public TableDataInfo findList(@Validated @RequestBody ReviewEnterpriseArchiveFindFileNameListRequest request) { return getDataTable(reviewEnterpriseArchiveService.findList(request)); } @ApiOperation("新增车企文件") @Trace @Tags({@Tag(key = "param", value = "arg[0]"), @Tag(key = "result", value = "returnedObj")}) @Log(title = "车企文件", businessType = BusinessType.INSERT) @RequestMapping(method = RequestMethod.POST, value = "/add") public R addEnterpriseArchive(@Validated @RequestBody ReviewEnterpriseArchive reviewEnterpriseArchive) { reviewEnterpriseArchiveService.addEnterpriseArchive(reviewEnterpriseArchive); return R.ok(reviewEnterpriseArchive.getId().toString()); } @ApiOperation("编辑车企文件") @Trace @Tags({@Tag(key = "param", value = "arg[0]"), @Tag(key = "result", value = "returnedObj")}) @Log(title = "编辑车企文件", businessType = BusinessType.UPDATE) @RequestMapping(method = RequestMethod.POST, value = "/edit") public R editEnterpriseArchive(@Validated @RequestBody ReviewEnterpriseArchive reviewEnterpriseArchive) { reviewEnterpriseArchiveService.editEnterpriseArchive(reviewEnterpriseArchive); return R.ok(); } @ApiOperation("预览企业留档文件") @Trace @Tags({@Tag(key = "param", value = "arg[0]"), @Tag(key = "result", value = "returnedObj")}) @RequestMapping(method = RequestMethod.POST, value = "/preview") public TableDataInfo preview(@Validated @RequestBody ReviewEnterpriseArchivePreviewRequest request) { return getDataTable(reviewEnterpriseArchiveService.view(request.getTaskId())); } @ApiOperation("车企文件导入模板下载") @RequestMapping(method = RequestMethod.POST, value = "/importDownload") public void EnterpriseFileDownload(HttpServletResponse response) throws Exception { ExcelUtil util = new ExcelUtil<>(EnterpriseImportFileVO.class); ExcelUtil.setCombo(EnterpriseImportFileVO.class, "status", Lists.newArrayList("现行有效", "已失效")); util.importTemplateExcel(response, "车企文件导入模板"); } @ApiOperation("车企文件导入") @RequestMapping(method = RequestMethod.POST, value = "/importExcel") public R importEnterprise(HttpServletResponse response,ImportEnterpriseRequest request) throws IOException { try{ ExcelUtil util = new ExcelUtil<>(EnterpriseImportFileVO.class); List list = util.importExcel(request.getFile().getInputStream()); reviewEnterpriseArchiveService.importEnterprise(list, request.getTaskId(),response); return R.ok(); }catch (Exception e){ throw new ServiceException("文件有误请重新上传!"); } } }