package com.finance.web.controller.api;
|
|
import com.finance.common.basic.PageDTO;
|
import com.finance.common.core.domain.R;
|
import com.finance.common.exception.ServiceException;
|
import com.finance.common.utils.BeanUtils;
|
import com.finance.common.utils.DateUtils;
|
import com.finance.system.domain.TbQuestion;
|
import com.finance.system.dto.QuestionDTO;
|
import com.finance.system.dto.update.BasicDataUpdDTO;
|
import com.finance.system.dto.update.QuestionUpdDTO;
|
import com.finance.system.query.CurrentFieldsQuery;
|
import com.finance.system.query.QuestionQuery;
|
import com.finance.system.query.ScoreCalculateDetailQuery;
|
import com.finance.system.query.ScoreCalculateQuery;
|
import com.finance.system.service.TbBasicDataService;
|
import com.finance.system.service.TbQuestionService;
|
import com.finance.system.service.TbScoreService;
|
import com.finance.system.vo.CurrentFieldsAllVO;
|
import com.finance.system.vo.CurrentFieldsDetailVO;
|
import com.finance.system.vo.CurrentFieldsVO;
|
import com.finance.system.vo.QuestionVO;
|
import com.finance.system.vo.ScoreCalculateDetailVO;
|
import com.finance.system.vo.ScoreCalculateVO;
|
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.DeleteMapping;
|
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.RestController;
|
|
/**
|
* @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;
|
private final TbScoreService tbScoreService;
|
|
/**
|
* 字段统计
|
*
|
* @return R<PageDTO < CurrentFieldsVO>>
|
*/
|
@ApiOperation(value = "字段统计" , notes = "字段统计")
|
@PostMapping("/fields-statics")
|
public R<PageDTO<CurrentFieldsVO>> fieldsStatics(
|
@Validated @RequestBody CurrentFieldsQuery dto) {
|
try {
|
dto.setQuarter(DateUtils.getNowQuarter());
|
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();
|
}
|
}
|
|
/**
|
* 字段统计-保存数据
|
*
|
* @param dto
|
* @return
|
*/
|
@PostMapping("/save-basic-data")
|
@ApiOperation("字段统计-保存数据")
|
public R<Void> editBasicData(@RequestBody BasicDataUpdDTO dto) {
|
try {
|
tbBasicDataService.editBasicData(dto);
|
} catch (Exception e) {
|
if (e instanceof ServiceException) {
|
return R.fail(e.getMessage());
|
}
|
log.error("保存数据异常" , e);
|
return R.fail();
|
}
|
return R.ok();
|
}
|
|
/**
|
* 查看全部
|
*
|
* @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 query 当前季度/历史 数据 得分计算条件查询对象
|
* @return R<PageDTO < ScoreCalculateVO>>
|
*/
|
@PostMapping("/score-calculate")
|
@ApiOperation("得分计算")
|
public R<PageDTO<ScoreCalculateVO>> scoreCalculate(
|
@Validated @RequestBody ScoreCalculateQuery query) {
|
try {
|
query.setQuarter(DateUtils.getNowQuarter());
|
return R.ok(tbBasicDataService.scoreCalculatePage(query));
|
} catch (Exception e) {
|
log.error("获取得分计算异常" , e);
|
return R.fail();
|
}
|
}
|
|
/**
|
* 得分计算查看详情
|
*
|
* @param query 得分计算详情条件查询对象
|
* @return R<ScoreCalculateDetailVO>
|
*/
|
@PostMapping("/score-calculate-detail")
|
@ApiOperation("得分计算-查看详情")
|
@ApiImplicitParam(name = "areaName" , value = "部门名称" , required = false, dataType = "string" , paramType = "query" , dataTypeClass = String.class)
|
public R<ScoreCalculateDetailVO> scoreCalculateDetail(
|
@Validated @RequestBody ScoreCalculateDetailQuery query) {
|
return R.ok(tbScoreService.scoreCalculateDetail(query));
|
}
|
|
/**
|
* 添加问题
|
*
|
* @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();
|
}
|
}
|
|
/**
|
* 编辑问题
|
*
|
* @param dto 发现问题编辑数据传输对象
|
* @return R<Void>
|
*/
|
@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(@Validated @RequestBody QuestionQuery 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));
|
}
|
|
/**
|
* 删除问题
|
*
|
* @param id 问题id
|
* @return R<Void>
|
*/
|
@DeleteMapping("/delete")
|
@ApiOperation(value = "发现问题-删除问题" , notes = "发现问题")
|
public R<Void> delete(@RequestParam("id") Long id) {
|
tbQuestionService.removeById(id);
|
return R.ok();
|
}
|
}
|