HlMetricsController.java 5.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149
  1. package com.jjt.hl.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.hl.domain.HlClass;
  9. import com.jjt.hl.domain.HlMetrics;
  10. import com.jjt.hl.service.IHlClassService;
  11. import com.jjt.hl.service.IHlMetricsService;
  12. import io.swagger.annotations.Api;
  13. import io.swagger.annotations.ApiOperation;
  14. import io.swagger.annotations.ApiParam;
  15. import org.springframework.security.access.prepost.PreAuthorize;
  16. import org.springframework.web.bind.annotation.*;
  17. import javax.annotation.Resource;
  18. import javax.servlet.http.HttpServletResponse;
  19. import java.math.BigDecimal;
  20. import java.math.RoundingMode;
  21. import java.util.List;
  22. /**
  23. * 业务模型健康度指标Controller
  24. *
  25. * @author jjt
  26. * @date 2024-09-05
  27. */
  28. @Api(tags = "业务模型健康度指标")
  29. @RestController
  30. @RequestMapping("/hl/hm")
  31. public class HlMetricsController extends BaseController {
  32. @Resource
  33. private IHlMetricsService hlMetricsService;
  34. @Resource
  35. private IHlClassService hlClassService;
  36. @ApiOperation("根据分类ID查询指标")
  37. @GetMapping("/list/{hlClassId}")
  38. public AjaxResult list(@PathVariable("hlClassId") Long hlClassId) {
  39. HlClass hlClass = hlClassService.selectHlClassByHlClassId(hlClassId);
  40. HlMetrics hlMetrics = new HlMetrics();
  41. hlMetrics.setHlClassId(hlClassId);
  42. List<HlMetrics> list = hlMetricsService.selectHlMetricsList(hlMetrics);
  43. if (list.size() > 0 && "1".equals(hlClass.getScoreType())) {
  44. //均分
  45. int size = list.size();
  46. BigDecimal total = hlClass.getHlScore();
  47. int avg = total.divide(BigDecimal.valueOf(size), 0, RoundingMode.HALF_DOWN).intValue();
  48. int one = avg * size == total.intValue() ? avg : total.intValue() - avg * (size-1);
  49. boolean flag = true;
  50. for (HlMetrics hm : list) {
  51. if (flag) {
  52. hm.setHlScore(BigDecimal.valueOf(one));
  53. flag = false;
  54. } else {
  55. hm.setHlScore(BigDecimal.valueOf(avg));
  56. }
  57. hlMetricsService.updateHlMetrics(hm);
  58. }
  59. }
  60. return AjaxResult.success(list);
  61. }
  62. @ApiOperation("根据分类ID查询选择指标列表")
  63. @GetMapping("/select/{hlClassId}")
  64. public AjaxResult select(@PathVariable("hlClassId") Long hlClassId) {
  65. HlClass hlClass = hlClassService.selectHlClassByHlClassId(hlClassId);
  66. List<HlMetrics> list = hlMetricsService.selectHlMetricsList4ModelId(hlClass.getModelId(), hlClass.getObjType());
  67. return AjaxResult.success(list);
  68. }
  69. @ApiOperation("添加指标")
  70. @GetMapping("/add/{hlClassId}")
  71. public AjaxResult objAdd(@ApiParam(value = "分类ID", required = true) @PathVariable("hlClassId") Long hlClassId, @ApiParam(value = "指标ID数组", required = true) Long[] ids) {
  72. return success(hlMetricsService.insertMetrics(hlClassId, ids));
  73. }
  74. /**
  75. * 查询业务模型健康度指标列表
  76. */
  77. @ApiOperation("查询业务模型健康度指标列表")
  78. @PreAuthorize("@ss.hasPermi('hl:hm:list')")
  79. @GetMapping("/list")
  80. public TableDataInfo list(HlMetrics hlMetrics) {
  81. startPage();
  82. List<HlMetrics> list = hlMetricsService.selectHlMetricsList(hlMetrics);
  83. return getDataTable(list);
  84. }
  85. /**
  86. * 导出业务模型健康度指标列表
  87. */
  88. @ApiOperation("导出业务模型健康度指标列表")
  89. @PreAuthorize("@ss.hasPermi('hl:hm:export')")
  90. @Log(title = "业务模型健康度指标", businessType = BusinessType.EXPORT)
  91. @PostMapping("/export")
  92. public void export(HttpServletResponse response, HlMetrics hlMetrics) {
  93. List<HlMetrics> list = hlMetricsService.selectHlMetricsList(hlMetrics);
  94. ExcelUtil<HlMetrics> util = new ExcelUtil<HlMetrics>(HlMetrics.class);
  95. util.exportExcel(response, list, "业务模型健康度指标数据");
  96. }
  97. /**
  98. * 获取业务模型健康度指标详细信息
  99. */
  100. @ApiOperation("获取业务模型健康度指标详细信息")
  101. @PreAuthorize("@ss.hasPermi('hl:hm:query')")
  102. @GetMapping(value = "/{hlMetricsId}")
  103. public AjaxResult getInfo(@PathVariable("hlMetricsId") Long hlMetricsId) {
  104. return success(hlMetricsService.selectHlMetricsByHlMetricsId(hlMetricsId));
  105. }
  106. /**
  107. * 新增业务模型健康度指标
  108. */
  109. @ApiOperation("新增业务模型健康度指标")
  110. @PreAuthorize("@ss.hasPermi('hl:hm:add')")
  111. @Log(title = "业务模型健康度指标", businessType = BusinessType.INSERT)
  112. @PostMapping
  113. public AjaxResult add(@RequestBody HlMetrics hlMetrics) {
  114. return toAjax(hlMetricsService.insertHlMetrics(hlMetrics));
  115. }
  116. /**
  117. * 修改业务模型健康度指标
  118. */
  119. @ApiOperation("修改业务模型健康度指标")
  120. @PreAuthorize("@ss.hasPermi('hl:hm:edit')")
  121. @Log(title = "业务模型健康度指标", businessType = BusinessType.UPDATE)
  122. @PostMapping("/edit")
  123. public AjaxResult edit(@RequestBody HlMetrics hlMetrics) {
  124. return toAjax(hlMetricsService.updateHlMetrics(hlMetrics));
  125. }
  126. /**
  127. * 删除业务模型健康度指标
  128. */
  129. @ApiOperation("删除业务模型健康度指标")
  130. @PreAuthorize("@ss.hasPermi('hl:hm:remove')")
  131. @Log(title = "业务模型健康度指标", businessType = BusinessType.DELETE)
  132. @GetMapping("/del/{hlMetricsIds}")
  133. public AjaxResult remove(@PathVariable Long[] hlMetricsIds) {
  134. return toAjax(hlMetricsService.deleteHlMetricsByHlMetricsIds(hlMetricsIds));
  135. }
  136. }