package com.ruoyi.web.controller.api;
|
|
import com.ruoyi.common.basic.PageDTO;
|
import com.ruoyi.common.core.domain.R;
|
import com.ruoyi.common.exception.ServiceException;
|
import com.ruoyi.common.utils.BeanUtils;
|
import com.ruoyi.system.domain.TbQuestion;
|
import com.ruoyi.system.dto.CurrentFieldsQueryDTO;
|
import com.ruoyi.system.dto.QuestionDTO;
|
import com.ruoyi.system.dto.QuestionQueryDTO;
|
import com.ruoyi.system.dto.QuestionUpdDto;
|
import com.ruoyi.system.service.TbBasicDataService;
|
import com.ruoyi.system.service.TbQuestionService;
|
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 io.swagger.annotations.Api;
|
import io.swagger.annotations.ApiImplicitParam;
|
import io.swagger.annotations.ApiOperation;
|
import lombok.RequiredArgsConstructor;
|
import lombok.extern.slf4j.Slf4j;
|
import org.springframework.validation.annotation.Validated;
|
import org.springframework.web.bind.annotation.*;
|
|
/**
|
* @author mitao
|
* @date 2024/3/19
|
*/
|
@Slf4j
|
@RestController
|
@RequestMapping("/current-quarter")
|
@RequiredArgsConstructor
|
@Api(tags = "当前季度数据相关接口")
|
public class CurrentQuarterController {
|
|
private final TbBasicDataService tbBasicDataService;
|
private final TbQuestionService tbQuestionService;
|
|
/**
|
* 获取基础数据填报相关信息
|
*
|
* @return R<BasicDataReportingVO>
|
*/
|
@ApiOperation(value = "字段统计", notes = "字段统计")
|
@PostMapping("/fields-statics")
|
public R<PageDTO<CurrentFieldsVO>> fieldsStatics(@Validated @RequestBody CurrentFieldsQueryDTO dto) {
|
try {
|
return tbBasicDataService.fieldsStatics(dto);
|
} catch (Exception e) {
|
log.error("获取字段统计相关信息异常", e);
|
return R.fail();
|
}
|
}
|
|
/**
|
* 查看详情
|
*
|
* @param id 基础数据id
|
* @return R<CurrentFieldsDetailVO>
|
*/
|
@GetMapping("/fields-details")
|
@ApiOperation(value = "查看详情", notes = "字段统计")
|
@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);
|
} catch (Exception e) {
|
if (e instanceof ServiceException) {
|
return R.fail(e.getMessage());
|
}
|
log.error("保存当前季度数据异常", e);
|
return R.fail();
|
}
|
}
|
|
/**
|
* 查看全部
|
*
|
* @return R<CurrentFieldsAllVO>
|
*/
|
@GetMapping("/fields-statics-all")
|
@ApiOperation(value = "查看全部", notes = "字段统计")
|
public R<CurrentFieldsAllVO> fieldsStaticsAll() {
|
try {
|
return R.ok(tbBasicDataService.fieldsStaticsAll());
|
} catch (Exception e) {
|
if (e instanceof ServiceException) {
|
return R.fail(e.getMessage());
|
}
|
log.error("查看全部异常", e);
|
return R.fail();
|
}
|
}
|
|
/**
|
* 添加问题
|
*
|
* @param dto 发现问题数据传输对象
|
* @return R<Void>
|
*/
|
@PostMapping("add-question")
|
@ApiOperation(value = "添加问题", notes = "发现问题")
|
public R<Void> addQuestion(@Validated @RequestBody QuestionDTO dto) {
|
try {
|
tbQuestionService.addQuestion(dto);
|
return R.ok();
|
} catch (Exception e) {
|
if (e instanceof ServiceException) {
|
return R.fail(e.getMessage());
|
}
|
log.error("添加问题异常", e);
|
return R.fail();
|
}
|
}
|
|
@PostMapping("/edit-question")
|
@ApiOperation(value = "编辑问题", notes = "发现问题")
|
public R<Void> editQuestion(@Validated @RequestBody QuestionUpdDto dto) {
|
try {
|
tbQuestionService.editQuestion(dto);
|
return R.ok();
|
} catch (Exception e) {
|
if (e instanceof ServiceException) {
|
return R.fail(e.getMessage());
|
}
|
log.error("编辑问题异常", e);
|
return R.fail();
|
}
|
}
|
|
/**
|
* 分页查询问题
|
*
|
* @param dto 发现问题分页数据传输对象
|
* @return R<PageDTO < QuestionVO>>
|
*/
|
@PostMapping("/page-question")
|
@ApiOperation(value = "分页查询问题", notes = "发现问题")
|
public R<PageDTO<QuestionVO>> pageQuestion(@RequestBody QuestionQueryDTO dto) {
|
return R.ok(tbQuestionService.pageQuestion(dto));
|
}
|
|
/**
|
* 问题详情
|
*
|
* @param id id
|
* @return R<QuestionDTO>
|
*/
|
@GetMapping("/detail-question")
|
@ApiOperation(value = "问题详情", notes = "发现问题")
|
public R<QuestionDTO> detailQuestion(@RequestParam("id") Long id) {
|
TbQuestion question = tbQuestionService.getById(id);
|
return R.ok(BeanUtils.copyBean(question, QuestionDTO.class));
|
}
|
|
@DeleteMapping("/delete")
|
@ApiOperation(value = "删除问题", notes = "发现问题")
|
public R<Void> delete(@RequestParam("id") Long id) {
|
tbQuestionService.removeById(id);
|
return R.ok();
|
}
|
}
|