DataAnalysisController.java 2.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172
  1. package cn.cslg.pas.controller;
  2. import cn.cslg.pas.common.core.annotation.Permission;
  3. import cn.cslg.pas.common.core.base.Constants;
  4. import cn.cslg.pas.common.model.vo.AnalysisItemCountVO;
  5. import cn.cslg.pas.common.utils.CacheUtils;
  6. import cn.cslg.pas.common.utils.Response;
  7. import cn.cslg.pas.common.utils.ResponseEnum;
  8. import cn.cslg.pas.common.utils.StringUtils;
  9. import cn.cslg.pas.service.DataAnalysisService;
  10. import io.swagger.v3.oas.annotations.Operation;
  11. import io.swagger.v3.oas.annotations.tags.Tag;
  12. import lombok.RequiredArgsConstructor;
  13. import org.springframework.context.annotation.Lazy;
  14. import org.springframework.web.bind.annotation.*;
  15. /**
  16. * <p>
  17. * 数据分析 前端控制器
  18. * </p>
  19. *
  20. * @author 王岩
  21. * @since 2021-12-23
  22. */
  23. @Tag(name = "分析")
  24. @RestController
  25. @RequestMapping(Constants.API_VERSION_V2 + "/data/analysis")
  26. @RequiredArgsConstructor(onConstructor_ = {@Lazy})
  27. public class DataAnalysisController {
  28. private final CacheUtils cacheUtils;
  29. private final DataAnalysisService dataAnalysisService;
  30. @GetMapping("patentNum")
  31. @Operation(summary = "说选专利数量")
  32. public String getPatentNum(String patentKey) {
  33. Integer count = cacheUtils.getSelectPatentNum(patentKey);
  34. if (count == 0) {
  35. return Response.error("专利临时列表已失效");
  36. }
  37. return Response.success(count);
  38. }
  39. @Permission(roles = {1, 2, 4})
  40. @PostMapping("count")
  41. @Operation(summary = "统计结果")
  42. public String getCount(@RequestBody AnalysisItemCountVO countVO) {
  43. String id = cacheUtils.getSelectPatentIds(countVO.getPatentKey());
  44. if (StringUtils.isEmpty(id)) {
  45. return Response.error(ResponseEnum.QUERY_CACHE_ERROR);
  46. }
  47. if (countVO.getType().equals(21)) {
  48. return Response.success(dataAnalysisService.getMapCount(countVO));
  49. }
  50. if (countVO.getSchema().getY().getField() != 0) {
  51. return Response.success(dataAnalysisService.getMatrix(countVO, id));
  52. } else {
  53. return Response.success(dataAnalysisService.getCount2(
  54. countVO.getSource().getX(),
  55. countVO.getSchema().getX().getType(),
  56. countVO.getPatentKey(),
  57. countVO.getSchema().getX().getField(),
  58. countVO.getSchema().getX().getExpand(),
  59. countVO.getSchema().getX().getMerge(),
  60. countVO.getSchema().getX().getPtype(),
  61. countVO.getProjectId(),
  62. id,
  63. 0
  64. ));
  65. }
  66. }
  67. }