MetricsTplDetailController.java 6.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156
  1. package com.jjt.biz.controller;
  2. import com.jjt.biz.domain.MetricsDef;
  3. import com.jjt.biz.domain.MetricsTpl;
  4. import com.jjt.biz.domain.MetricsTplDetail;
  5. import com.jjt.biz.service.IBizObjMetricsService;
  6. import com.jjt.biz.service.IMetricsTplDetailService;
  7. import com.jjt.biz.service.IMetricsTplService;
  8. import com.jjt.common.annotation.Log;
  9. import com.jjt.common.core.controller.BaseController;
  10. import com.jjt.common.core.domain.AjaxResult;
  11. import com.jjt.common.core.page.TableDataInfo;
  12. import com.jjt.common.enums.BusinessType;
  13. import com.jjt.common.utils.poi.ExcelUtil;
  14. import io.swagger.annotations.Api;
  15. import io.swagger.annotations.ApiOperation;
  16. import io.swagger.annotations.ApiParam;
  17. import org.springframework.jdbc.core.JdbcTemplate;
  18. import org.springframework.security.access.prepost.PreAuthorize;
  19. import org.springframework.web.bind.annotation.*;
  20. import javax.annotation.Resource;
  21. import javax.servlet.http.HttpServletResponse;
  22. import java.util.List;
  23. /**
  24. * 模板指标明细Controller
  25. *
  26. * @author jjt
  27. * @date 2024-08-08
  28. */
  29. @Api(tags = "模板指标明细")
  30. @RestController
  31. @RequestMapping("/metrics/detail")
  32. public class MetricsTplDetailController extends BaseController {
  33. @Resource
  34. private IMetricsTplDetailService metricsTplDetailService;
  35. @Resource
  36. private IBizObjMetricsService omService;
  37. @Resource
  38. private IMetricsTplService tplService;
  39. @Resource
  40. private JdbcTemplate jdbcTemplate;
  41. @ApiOperation("选择指标")
  42. @GetMapping("/select/{tplId}")
  43. public TableDataInfo select(@ApiParam(value = "模板ID", required = true) @PathVariable("tplId") Long tplId, MetricsDef def) {
  44. startPage();
  45. List<MetricsDef> list = metricsTplDetailService.selectMetricsDefList(tplId, def);
  46. return getDataTable(list);
  47. }
  48. @ApiOperation("添加指标")
  49. @GetMapping("/add/{tplId}")
  50. public AjaxResult add(@ApiParam(value = "模板ID", required = true) @PathVariable("tplId") Long tplId, @ApiParam(value = "指标ID数组", required = true) Long[] metricsIds) {
  51. return success(metricsTplDetailService.insertMetricsTplDetails(tplId, metricsIds));
  52. }
  53. /**
  54. * 查询模板指标明细列表
  55. */
  56. @ApiOperation("查询模板指标明细列表")
  57. @PreAuthorize("@ss.hasPermi('metrics:detail:list')")
  58. @GetMapping("/list")
  59. public TableDataInfo list(MetricsTplDetail metricsTplDetail) {
  60. startPage();
  61. List<MetricsTplDetail> list = metricsTplDetailService.selectMetricsTplDetailList(metricsTplDetail);
  62. return getDataTable(list);
  63. }
  64. /**
  65. * 导出模板指标明细列表
  66. */
  67. @ApiOperation("导出模板指标明细列表")
  68. @PreAuthorize("@ss.hasPermi('metrics:detail:export')")
  69. @Log(title = "模板指标明细", businessType = BusinessType.EXPORT)
  70. @PostMapping("/export")
  71. public void export(HttpServletResponse response, MetricsTplDetail metricsTplDetail) {
  72. List<MetricsTplDetail> list = metricsTplDetailService.selectMetricsTplDetailList(metricsTplDetail);
  73. ExcelUtil<MetricsTplDetail> util = new ExcelUtil<MetricsTplDetail>(MetricsTplDetail.class);
  74. util.exportExcel(response, list, "模板指标明细数据");
  75. }
  76. /**
  77. * 获取模板指标明细详细信息
  78. */
  79. @ApiOperation("获取模板指标明细详细信息")
  80. @PreAuthorize("@ss.hasPermi('metrics:detail:query')")
  81. @GetMapping(value = "/{tplDetailId}")
  82. public AjaxResult getInfo(@PathVariable("tplDetailId") Long tplDetailId) {
  83. return success(metricsTplDetailService.selectMetricsTplDetailByTplDetailId(tplDetailId));
  84. }
  85. /**
  86. * 新增模板指标明细
  87. */
  88. @ApiOperation("新增模板指标明细")
  89. @PreAuthorize("@ss.hasPermi('metrics:detail:add')")
  90. @Log(title = "模板指标明细", businessType = BusinessType.INSERT)
  91. @PostMapping
  92. public AjaxResult add(@RequestBody MetricsTplDetail metricsTplDetail) {
  93. return toAjax(metricsTplDetailService.insertMetricsTplDetail(metricsTplDetail));
  94. }
  95. /**
  96. * 修改模板指标明细
  97. */
  98. @ApiOperation("修改模板指标明细")
  99. @PreAuthorize("@ss.hasPermi('metrics:detail:edit')")
  100. @Log(title = "模板指标明细", businessType = BusinessType.UPDATE)
  101. @PutMapping
  102. public AjaxResult edit(@RequestBody MetricsTplDetail metricsTplDetail) {
  103. if (metricsTplDetail.getAlarmMid() != null) {
  104. metricsTplDetail.setAlarmMid(metricsTplDetail.getAlarmMid().trim());
  105. }
  106. if (metricsTplDetail.getAlarmLow() != null) {
  107. metricsTplDetail.setAlarmLow(metricsTplDetail.getAlarmLow().trim());
  108. }
  109. if (metricsTplDetail.getAlarmHigh() != null) {
  110. metricsTplDetail.setAlarmHigh(metricsTplDetail.getAlarmHigh().trim());
  111. }
  112. if (metricsTplDetail.getEvent() != null) {
  113. metricsTplDetail.setEvent(metricsTplDetail.getEvent().trim());
  114. }
  115. int i = metricsTplDetailService.updateMetricsTplDetail(metricsTplDetail);
  116. String sql = "select count(*) num from metrics_tpl_detail where tpl_id=? and (data_exp is null or DATA_EXP ='')";
  117. Integer num = jdbcTemplate.queryForObject(sql, Integer.class, metricsTplDetail.getTplId());
  118. MetricsTpl tpl = new MetricsTpl();
  119. tpl.setTplId(metricsTplDetail.getTplId());
  120. if (num == 0) {
  121. tpl.setConfStatus("Y");
  122. tplService.updateMetricsTpl(tpl);
  123. } else {
  124. tpl.setConfStatus("N");
  125. tplService.updateMetricsTpl(tpl);
  126. }
  127. omService.update(metricsTplDetail);
  128. return toAjax(i);
  129. }
  130. /**
  131. * 删除模板指标明细
  132. */
  133. @ApiOperation("删除模板指标明细")
  134. @PreAuthorize("@ss.hasPermi('metrics:detail:remove')")
  135. @Log(title = "模板指标明细", businessType = BusinessType.DELETE)
  136. @DeleteMapping("/{tplDetailIds}")
  137. public AjaxResult remove(@PathVariable Long[] tplDetailIds) {
  138. for (Long detailId : tplDetailIds) {
  139. MetricsTplDetail detail = metricsTplDetailService.selectMetricsTplDetailByTplDetailId(detailId);
  140. omService.del(detail);
  141. }
  142. return toAjax(metricsTplDetailService.deleteMetricsTplDetailByTplDetailIds(tplDetailIds));
  143. }
  144. }