From ec76c5defdd8018ce4efcc8795508498a84de4b7 Mon Sep 17 00:00:00 2001 From: mitao <2763622819@qq.com> Date: 星期二, 09 四月 2024 19:09:33 +0800 Subject: [PATCH] 平台历史数据 导入导出接口 --- ruoyi-admin/src/main/java/com/ruoyi/web/controller/api/HistoryDataController.java | 113 ++++++++++++++++++++++++++++++++++++++++++++++++-------- 1 files changed, 96 insertions(+), 17 deletions(-) diff --git a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/api/HistoryDataController.java b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/api/HistoryDataController.java index a7b738b..9282397 100644 --- a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/api/HistoryDataController.java +++ b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/api/HistoryDataController.java @@ -1,29 +1,45 @@ package com.ruoyi.web.controller.api; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.ruoyi.common.annotation.HistoryGroup; import com.ruoyi.common.basic.PageDTO; import com.ruoyi.common.core.domain.R; import com.ruoyi.common.enums.ReportingStatusEnum; import com.ruoyi.common.exception.ServiceException; -import com.ruoyi.common.validate.HistoryGroup; import com.ruoyi.system.domain.TbBasicData; import com.ruoyi.system.query.CurrentFieldsQuery; import com.ruoyi.system.query.HistoryDataQuery; +import com.ruoyi.system.query.QuestionQuery; import com.ruoyi.system.query.ScoreCalculateDetailQuery; import com.ruoyi.system.query.ScoreCalculateQuery; import com.ruoyi.system.service.TbBasicDataService; +import com.ruoyi.system.service.TbQuestionService; import com.ruoyi.system.service.TbScoreService; -import com.ruoyi.system.vo.*; +import com.ruoyi.system.vo.BasicDataVO; +import com.ruoyi.system.vo.CurrentFieldsAllVO; +import com.ruoyi.system.vo.CurrentFieldsDetailVO; +import com.ruoyi.system.vo.CurrentFieldsVO; +import com.ruoyi.system.vo.QuestionVO; +import com.ruoyi.system.vo.ScoreCalculateDetailVO; +import com.ruoyi.system.vo.ScoreCalculateVO; import io.swagger.annotations.Api; import io.swagger.annotations.ApiImplicitParam; +import io.swagger.annotations.ApiImplicitParams; import io.swagger.annotations.ApiOperation; +import java.util.Date; +import java.util.List; +import java.util.Objects; import lombok.RequiredArgsConstructor; import lombok.extern.slf4j.Slf4j; import org.springframework.validation.annotation.Validated; -import org.springframework.web.bind.annotation.*; - -import java.util.Date; -import java.util.Objects; +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.RequestMapping; +import org.springframework.web.bind.annotation.RequestParam; +import org.springframework.web.bind.annotation.RequestPart; +import org.springframework.web.bind.annotation.RestController; +import org.springframework.web.multipart.MultipartFile; /** * @author mitao @@ -35,8 +51,10 @@ @RequiredArgsConstructor @Api(tags = "历史数据相关接口") public class HistoryDataController { + private final TbBasicDataService tbBasicDataService; private final TbScoreService tbScoreService; + private final TbQuestionService tbQuestionService; /** * 历史数据分页查询 @@ -50,12 +68,14 @@ Date startTime = dto.getStartTime(); Date endTime = dto.getEndTime(); boolean flag = Objects.nonNull(startTime) && Objects.nonNull(endTime); - Page<TbBasicData> page = tbBasicDataService.lambdaQuery() - .eq(TbBasicData::getStatus, ReportingStatusEnum.FILLED) - .between(flag, TbBasicData::getCreateTime, startTime, endTime) - .groupBy(TbBasicData::getQuarter) - .orderByDesc(TbBasicData::getCreateTime) - .page(new Page<>(dto.getPageNum(), dto.getPageSize())); + Page<TbBasicData> page = + tbBasicDataService + .lambdaQuery() + .eq(TbBasicData::getStatus, ReportingStatusEnum.FILLED) + .between(flag, TbBasicData::getCreateTime, startTime, endTime) + .groupBy(TbBasicData::getQuarter) + .orderByDesc(TbBasicData::getCreateTime) + .page(new Page<>(dto.getPageNum(), dto.getPageSize())); return R.ok(PageDTO.of(page, BasicDataVO.class)); } @@ -66,7 +86,8 @@ */ @ApiOperation(value = "字段统计", notes = "字段统计") @PostMapping("/fields-statics") - public R<PageDTO<CurrentFieldsVO>> historyFieldsStatics(@Validated({HistoryGroup.class}) @RequestBody CurrentFieldsQuery dto) { + public R<PageDTO<CurrentFieldsVO>> historyFieldsStatics( + @Validated({HistoryGroup.class}) @RequestBody CurrentFieldsQuery dto) { try { return tbBasicDataService.historyFieldsStatics(dto); } catch (Exception e) { @@ -83,7 +104,13 @@ */ @GetMapping("/fields-details") @ApiOperation(value = "查看详情", notes = "字段统计") - @ApiImplicitParam(name = "id", value = "基础数据id", required = true, dataType = "int", paramType = "query", dataTypeClass = Long.class) + @ApiImplicitParam( + name = "id", + value = "基础数据id", + required = true, + dataType = "int", + paramType = "query", + dataTypeClass = Long.class) public R<CurrentFieldsDetailVO> fieldsDetails(@RequestParam("id") Long id) { try { return tbBasicDataService.fieldsDetails(id); @@ -103,7 +130,13 @@ */ @GetMapping("/fields-statics-all") @ApiOperation(value = "查看全部", notes = "字段统计") - @ApiImplicitParam(name = "quarter", value = "季度", required = true, dataType = "string", paramType = "query", dataTypeClass = String.class) + @ApiImplicitParam( + name = "quarter", + value = "季度", + required = true, + dataType = "string", + paramType = "query", + dataTypeClass = String.class) public R<CurrentFieldsAllVO> fieldsStaticsAll(@RequestParam("quarter") String quarter) { try { return R.ok(tbBasicDataService.fieldsStaticsAll(quarter)); @@ -124,7 +157,8 @@ */ @PostMapping("/score-calculate") @ApiOperation("得分计算") - public R<PageDTO<ScoreCalculateVO>> scoreCalculate(@Validated({HistoryGroup.class}) @RequestBody ScoreCalculateQuery query) { + public R<PageDTO<ScoreCalculateVO>> scoreCalculate( + @Validated({HistoryGroup.class}) @RequestBody ScoreCalculateQuery query) { return R.ok(tbBasicDataService.scoreCalculatePage(query)); } @@ -136,7 +170,52 @@ */ @PostMapping("/score-calculate-detail") @ApiOperation("得分计算-查看详情") - public R<ScoreCalculateDetailVO> scoreCalculateDetail(@Validated @RequestBody ScoreCalculateDetailQuery query) { + public R<ScoreCalculateDetailVO> scoreCalculateDetail( + @Validated @RequestBody ScoreCalculateDetailQuery query) { return R.ok(tbScoreService.scoreCalculateDetail(query)); } + + /** + * 分页查询问题 + * + * @param dto 发现问题分页数据传输对象 + * @return R<PageDTO < QuestionVO>> + */ + @PostMapping("/page-question") + @ApiOperation(value = "问题查看-分页查询问题", notes = "问题查看") + public R<PageDTO<QuestionVO>> pageQuestion( + @Validated({HistoryGroup.class}) @RequestBody QuestionQuery dto) { + return R.ok(tbQuestionService.pageQuestion(dto)); + } + + @PostMapping("/import") + @ApiOperation("导入历史数据") + @ApiImplicitParams({ + @ApiImplicitParam(name = "file", value = "文件", required = true, dataType = "file", paramType = "form"), + @ApiImplicitParam(name = "quarter", value = "季度 e.g. 2024年一季度", required = true, dataType = "string", paramType = "query", dataTypeClass = String.class) + }) + public R<Void> importData(@RequestPart("file") MultipartFile file, + @RequestParam("quarter") String quarter) { + try { + tbBasicDataService.importData(file, quarter); + } catch (Exception e) { + if (e instanceof ServiceException) { + return R.fail(e.getMessage()); + } + log.error("导入历史数据异常", e); + return R.fail(); + } + return R.ok(); + } + + @PostMapping("/export") + @ApiOperation("导出") + @ApiImplicitParam(name = "quarterList", value = "quarterList", allowMultiple = true, dataTypeClass = List.class, paramType = "query") + public void exportData(@RequestParam("quarterList") List<String> quarterList) { + try { + tbBasicDataService.exportData(quarterList); + } catch (Exception e) { + log.error("导出历史数据异常", e); + } + } } -- Gitblit v1.7.1