RiskAnalysisController.java 6.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165
  1. package com.jjt.risk.controller;
  2. import com.jjt.common.annotation.Log;
  3. import com.jjt.common.core.controller.BaseController;
  4. import com.jjt.common.core.domain.AjaxResult;
  5. import com.jjt.common.core.page.TableDataInfo;
  6. import com.jjt.common.enums.BusinessType;
  7. import com.jjt.common.utils.poi.ExcelUtil;
  8. import com.jjt.risk.domain.RiskAnalysis;
  9. import com.jjt.risk.domain.RiskModel;
  10. import com.jjt.risk.service.IRiskAnalysisService;
  11. import com.jjt.risk.service.IRiskModelService;
  12. import io.swagger.annotations.Api;
  13. import io.swagger.annotations.ApiOperation;
  14. import org.springframework.security.access.prepost.PreAuthorize;
  15. import org.springframework.web.bind.annotation.*;
  16. import javax.annotation.Resource;
  17. import javax.servlet.http.HttpServletResponse;
  18. import java.text.DecimalFormat;
  19. import java.time.LocalDateTime;
  20. import java.time.ZoneOffset;
  21. import java.util.*;
  22. /**
  23. * 风险分析结果Controller
  24. *
  25. * @author jjt
  26. * @date 2024-09-12
  27. */
  28. @Api(tags = "风险分析结果")
  29. @RestController
  30. @RequestMapping("/risk/analysis")
  31. public class RiskAnalysisController extends BaseController {
  32. @Resource
  33. private IRiskAnalysisService riskAnalysisService;
  34. @Resource
  35. private IRiskModelService riskModelService;
  36. /**
  37. * 查询风险分析结果列表
  38. */
  39. @ApiOperation("查询风险分析结果列表")
  40. @PreAuthorize("@ss.hasPermi('risk:analysis:list')")
  41. @GetMapping("/list")
  42. public TableDataInfo list(RiskAnalysis riskAnalysis) {
  43. startPage();
  44. List<RiskAnalysis> list = riskAnalysisService.selectRiskAnalysisList(riskAnalysis);
  45. return getDataTable(list);
  46. }
  47. /**
  48. * 导出风险分析结果列表
  49. */
  50. @ApiOperation("导出风险分析结果列表")
  51. @PreAuthorize("@ss.hasPermi('risk:analysis:export')")
  52. @Log(title = "风险分析结果", businessType = BusinessType.EXPORT)
  53. @PostMapping("/export")
  54. public void export(HttpServletResponse response, RiskAnalysis riskAnalysis) {
  55. List<RiskAnalysis> list = riskAnalysisService.selectRiskAnalysisList(riskAnalysis);
  56. ExcelUtil<RiskAnalysis> util = new ExcelUtil<RiskAnalysis>(RiskAnalysis.class);
  57. util.exportExcel(response, list, "风险分析结果数据");
  58. }
  59. /**
  60. * 获取风险分析结果详细信息
  61. */
  62. @ApiOperation("获取风险分析结果详细信息")
  63. @PreAuthorize("@ss.hasPermi('risk:analysis:query')")
  64. @GetMapping(value = "/{resultId}")
  65. public AjaxResult getInfo(@PathVariable("resultId") Long resultId) {
  66. riskAnalysisService.selectRiskAnalysisByResultId(resultId);
  67. return success();
  68. }
  69. @ApiOperation("立即分析")
  70. @GetMapping(value = "/atOnce/{riskId}")
  71. public AjaxResult atOnce(@PathVariable("riskId") Long riskId) {
  72. RiskModel rm = riskModelService.selectRiskModelByRiskId(riskId);
  73. if ("3".equals(rm.getRiskType())) {
  74. return type3info(1L);
  75. } else {
  76. return getInfo(1L);
  77. }
  78. }
  79. @ApiOperation("获取异类组件分析结果")
  80. @GetMapping(value = "/type3/result/{resultId}")
  81. public AjaxResult type3info(@PathVariable("resultId") Long resultId) {
  82. Map<String, Object> result = new HashMap<>(16);
  83. RiskAnalysis analysis = riskAnalysisService.selectRiskAnalysisByResultId(resultId);
  84. List<Map<String, Object>> list = new ArrayList();
  85. String[] names = {"基础支撑", "运行环境", "ES搜索服务", "nginx", "redis"};
  86. for (int i = 0; i < names.length; i++) {
  87. Map<String, Object> map = new HashMap<>(16);
  88. map.put("id", (i + 1));
  89. map.put("name", names[i]);
  90. long num = Long.valueOf(new Random().nextInt(200) + 10);
  91. map.put("num", num);
  92. list.add(map);
  93. }
  94. result.put("imgPath", analysis.getImgPath());
  95. result.put("top", list);
  96. return success(result);
  97. }
  98. @ApiOperation("根据对象获取曲线")
  99. @GetMapping(value = "/type3/trend/{id}")
  100. public AjaxResult type3trend(@PathVariable("id") Long id) {
  101. Map<String, Object> result = new HashMap<>(16);
  102. List<Map<String, Object>> list = new ArrayList();
  103. LocalDateTime ed = LocalDateTime.now();
  104. LocalDateTime st = ed.minusDays(7);
  105. List<Long> times = new ArrayList<>();
  106. List<Float> values = new ArrayList<>();
  107. Random r = new Random();
  108. DecimalFormat df = new DecimalFormat("#0.00");
  109. do {
  110. long time = st.toEpochSecond(ZoneOffset.ofHours(8)) * 1000;
  111. times.add(time);
  112. float f = r.nextFloat() * 100;
  113. // System.err.println(df.format(f));
  114. values.add(Float.parseFloat(df.format(f)));
  115. st = st.plusMinutes(15);
  116. } while (!st.isAfter(ed));
  117. result.put("times", times);
  118. result.put("values", values);
  119. return success(result);
  120. }
  121. /**
  122. * 新增风险分析结果
  123. */
  124. @ApiOperation("新增风险分析结果")
  125. @PreAuthorize("@ss.hasPermi('risk:analysis:add')")
  126. @Log(title = "风险分析结果", businessType = BusinessType.INSERT)
  127. @PostMapping
  128. public AjaxResult add(@RequestBody RiskAnalysis riskAnalysis) {
  129. return toAjax(riskAnalysisService.insertRiskAnalysis(riskAnalysis));
  130. }
  131. /**
  132. * 修改风险分析结果
  133. */
  134. @ApiOperation("修改风险分析结果")
  135. @PreAuthorize("@ss.hasPermi('risk:analysis:edit')")
  136. @Log(title = "风险分析结果", businessType = BusinessType.UPDATE)
  137. @PutMapping
  138. public AjaxResult edit(@RequestBody RiskAnalysis riskAnalysis) {
  139. return toAjax(riskAnalysisService.updateRiskAnalysis(riskAnalysis));
  140. }
  141. /**
  142. * 删除风险分析结果
  143. */
  144. @ApiOperation("删除风险分析结果")
  145. @PreAuthorize("@ss.hasPermi('risk:analysis:remove')")
  146. @Log(title = "风险分析结果", businessType = BusinessType.DELETE)
  147. @DeleteMapping("/{resultIds}")
  148. public AjaxResult remove(@PathVariable Long[] resultIds) {
  149. return toAjax(riskAnalysisService.deleteRiskAnalysisByResultIds(resultIds));
  150. }
  151. }