BizObjMetricsController.java 6.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167
  1. package com.jjt.biz.controller;
  2. import com.github.pagehelper.PageHelper;
  3. import com.jjt.biz.domain.BizObjMetrics;
  4. import com.jjt.biz.domain.BizObjMetricsData;
  5. import com.jjt.biz.service.IBizObjMetricsDataService;
  6. import com.jjt.biz.service.IBizObjMetricsService;
  7. import com.jjt.common.annotation.Log;
  8. import com.jjt.common.core.controller.BaseController;
  9. import com.jjt.common.core.domain.AjaxResult;
  10. import com.jjt.common.core.page.TableDataInfo;
  11. import com.jjt.common.enums.BusinessType;
  12. import com.jjt.common.utils.poi.ExcelUtil;
  13. import com.jjt.system.service.ISysConfigService;
  14. import io.swagger.annotations.Api;
  15. import io.swagger.annotations.ApiOperation;
  16. import org.springframework.security.access.prepost.PreAuthorize;
  17. import org.springframework.web.bind.annotation.*;
  18. import org.springframework.web.multipart.MultipartFile;
  19. import javax.annotation.Resource;
  20. import javax.servlet.http.HttpServletResponse;
  21. import java.util.*;
  22. /**
  23. * 业务对象指标Controller
  24. *
  25. * @author jjt
  26. * @date 2024-08-09
  27. */
  28. @Api(tags = "业务对象指标")
  29. @RestController
  30. @RequestMapping("/obj/metrics")
  31. public class BizObjMetricsController extends BaseController {
  32. @Resource
  33. private IBizObjMetricsService bizObjMetricsService;
  34. @Resource
  35. private IBizObjMetricsDataService dataService;
  36. @Resource
  37. private ISysConfigService configService;
  38. /**
  39. * 查询业务对象指标列表
  40. */
  41. @ApiOperation("查询业务对象指标列表")
  42. @PreAuthorize("@ss.hasPermi('obj:metrics:list')")
  43. @GetMapping("/list")
  44. public TableDataInfo list(BizObjMetrics bizObjMetrics) {
  45. startPage();
  46. List<BizObjMetrics> list = bizObjMetricsService.selectBizObjMetricsList(bizObjMetrics);
  47. return getDataTable(list);
  48. }
  49. /**
  50. * 导出业务对象指标列表
  51. */
  52. @ApiOperation("导出业务对象指标列表")
  53. @PreAuthorize("@ss.hasPermi('obj:metrics:export')")
  54. @Log(title = "业务对象指标", businessType = BusinessType.EXPORT)
  55. @PostMapping("/export")
  56. public void export(HttpServletResponse response, BizObjMetrics bizObjMetrics) {
  57. Map<String, Object> params = new HashMap<>(2);
  58. params.put("type", "2");
  59. bizObjMetrics.setParams(params);
  60. List<BizObjMetrics> list = bizObjMetricsService.selectBizObjMetricsList(bizObjMetrics);
  61. ExcelUtil<BizObjMetrics> util = new ExcelUtil<>(BizObjMetrics.class);
  62. util.exportExcel(response, list, "业务对象指标数据");
  63. }
  64. @ApiOperation("导入业务对象指标列表")
  65. @Log(title = "业务对象指标", businessType = BusinessType.IMPORT)
  66. @PostMapping("/importData")
  67. public AjaxResult importData(MultipartFile file) throws Exception {
  68. ExcelUtil<BizObjMetrics> util = new ExcelUtil<>(BizObjMetrics.class);
  69. List<BizObjMetrics> metricsList = util.importExcel(file.getInputStream());
  70. String userName = getUsername();
  71. String message = bizObjMetricsService.importMetrics(metricsList,userName);
  72. return success(message);
  73. }
  74. /**
  75. * 获取业务对象指标详细信息
  76. */
  77. @ApiOperation("获取业务对象指标详细信息")
  78. @PreAuthorize("@ss.hasPermi('obj:metrics:query')")
  79. @GetMapping(value = "/{objMetricsId}")
  80. public AjaxResult getInfo(@PathVariable("objMetricsId") Long objMetricsId) {
  81. BizObjMetrics metrics = bizObjMetricsService.selectBizObjMetricsByObjMetricsId(objMetricsId);
  82. return success(bizObjMetricsService.selectBizObjMetricsByObjMetricsId(objMetricsId));
  83. }
  84. /**
  85. * 获取业务对象指标详细信息
  86. */
  87. @ApiOperation("获取业务对象历史趋势")
  88. @GetMapping(value = "/history/{objMetricsId}")
  89. public AjaxResult history(@PathVariable("objMetricsId") Long objMetricsId) {
  90. int jg = Integer.parseInt(configService.selectConfigByKey("api.data.time"));
  91. int size = 1440 / jg * 3;
  92. //设置默认获取3天的数据,根据数据间隔时间来
  93. PageHelper.startPage(1, size, "create_time desc").setReasonable(true);
  94. BizObjMetricsData data = new BizObjMetricsData();
  95. data.setObjMetricsId(objMetricsId);
  96. List<BizObjMetricsData> list = dataService.selectBizObjMetricsDataList(data);
  97. if (list == null) {
  98. return AjaxResult.error();
  99. }
  100. List<Long> times = new ArrayList<>();
  101. List<Float> values = new ArrayList<>();
  102. list.sort(Comparator.comparing(BizObjMetricsData::getCreateTime));
  103. list.forEach(d -> {
  104. times.add(d.getCreateTime().getTime());
  105. values.add(d.getdValue().floatValue());
  106. });
  107. // LocalDateTime ed = LocalDateTime.now();
  108. // LocalDateTime st = ed.minusDays(7);
  109. // Random r = new Random();
  110. // DecimalFormat df = new DecimalFormat("#0.00");
  111. // do {
  112. // long time = st.toEpochSecond(ZoneOffset.ofHours(8)) * 1000;
  113. // times.add(time);
  114. // float f = r.nextFloat() * 100;
  115. //// System.err.println(df.format(f));
  116. // values.add(Float.parseFloat(df.format(f)));
  117. // st = st.plusMinutes(15);
  118. // } while (!st.isAfter(ed));
  119. Map<String, Object> map = new HashMap<>(16);
  120. map.put("times", times);
  121. map.put("values", values);
  122. return AjaxResult.success(map);
  123. }
  124. /**
  125. * 新增业务对象指标
  126. */
  127. @ApiOperation("新增业务对象指标")
  128. @PreAuthorize("@ss.hasPermi('obj:metrics:add')")
  129. @Log(title = "业务对象指标", businessType = BusinessType.INSERT)
  130. @PostMapping
  131. public AjaxResult add(@RequestBody BizObjMetrics bizObjMetrics) {
  132. return toAjax(bizObjMetricsService.insertBizObjMetrics(bizObjMetrics));
  133. }
  134. /**
  135. * 修改业务对象指标
  136. */
  137. @ApiOperation("修改业务对象指标")
  138. @PreAuthorize("@ss.hasPermi('obj:metrics:edit')")
  139. @Log(title = "业务对象指标", businessType = BusinessType.UPDATE)
  140. @PutMapping
  141. public AjaxResult edit(@RequestBody BizObjMetrics bizObjMetrics) {
  142. return toAjax(bizObjMetricsService.updateBizObjMetrics(bizObjMetrics));
  143. }
  144. /**
  145. * 删除业务对象指标
  146. */
  147. @ApiOperation("删除业务对象指标")
  148. @PreAuthorize("@ss.hasPermi('obj:metrics:remove')")
  149. @Log(title = "业务对象指标", businessType = BusinessType.DELETE)
  150. @DeleteMapping("/{objMetricsIds}")
  151. public AjaxResult remove(@PathVariable Long[] objMetricsIds) {
  152. return toAjax(bizObjMetricsService.deleteBizObjMetricsByObjMetricsIds(objMetricsIds));
  153. }
  154. }