package com.jjt.biz.controller; import com.jjt.biz.domain.MetricsDef; import com.jjt.biz.domain.MetricsTpl; import com.jjt.biz.domain.MetricsTplDetail; import com.jjt.biz.service.IBizObjMetricsService; import com.jjt.biz.service.IMetricsTplDetailService; import com.jjt.biz.service.IMetricsTplService; import com.jjt.common.annotation.Log; import com.jjt.common.core.controller.BaseController; import com.jjt.common.core.domain.AjaxResult; import com.jjt.common.core.page.TableDataInfo; import com.jjt.common.enums.BusinessType; import com.jjt.common.utils.poi.ExcelUtil; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; import io.swagger.annotations.ApiParam; import org.springframework.jdbc.core.JdbcTemplate; import org.springframework.security.access.prepost.PreAuthorize; import org.springframework.web.bind.annotation.*; import javax.annotation.Resource; import javax.servlet.http.HttpServletResponse; import java.util.List; /** * 模板指标明细Controller * * @author jjt * @date 2024-08-08 */ @Api(tags = "模板指标明细") @RestController @RequestMapping("/metrics/detail") public class MetricsTplDetailController extends BaseController { @Resource private IMetricsTplDetailService metricsTplDetailService; @Resource private IBizObjMetricsService omService; @Resource private IMetricsTplService tplService; @Resource private JdbcTemplate jdbcTemplate; @ApiOperation("选择指标") @GetMapping("/select/{tplId}") public TableDataInfo select(@ApiParam(value = "模板ID", required = true) @PathVariable("tplId") Long tplId, MetricsDef def) { startPage(); List list = metricsTplDetailService.selectMetricsDefList(tplId, def); return getDataTable(list); } @ApiOperation("添加指标") @GetMapping("/add/{tplId}") public AjaxResult add(@ApiParam(value = "模板ID", required = true) @PathVariable("tplId") Long tplId, @ApiParam(value = "指标ID数组", required = true) Long[] metricsIds) { return success(metricsTplDetailService.insertMetricsTplDetails(tplId, metricsIds)); } /** * 查询模板指标明细列表 */ @ApiOperation("查询模板指标明细列表") @PreAuthorize("@ss.hasPermi('metrics:detail:list')") @GetMapping("/list") public TableDataInfo list(MetricsTplDetail metricsTplDetail) { startPage(); List list = metricsTplDetailService.selectMetricsTplDetailList(metricsTplDetail); return getDataTable(list); } /** * 导出模板指标明细列表 */ @ApiOperation("导出模板指标明细列表") @PreAuthorize("@ss.hasPermi('metrics:detail:export')") @Log(title = "模板指标明细", businessType = BusinessType.EXPORT) @PostMapping("/export") public void export(HttpServletResponse response, MetricsTplDetail metricsTplDetail) { List list = metricsTplDetailService.selectMetricsTplDetailList(metricsTplDetail); ExcelUtil util = new ExcelUtil(MetricsTplDetail.class); util.exportExcel(response, list, "模板指标明细数据"); } /** * 获取模板指标明细详细信息 */ @ApiOperation("获取模板指标明细详细信息") @PreAuthorize("@ss.hasPermi('metrics:detail:query')") @GetMapping(value = "/{tplDetailId}") public AjaxResult getInfo(@PathVariable("tplDetailId") Long tplDetailId) { return success(metricsTplDetailService.selectMetricsTplDetailByTplDetailId(tplDetailId)); } /** * 新增模板指标明细 */ @ApiOperation("新增模板指标明细") @PreAuthorize("@ss.hasPermi('metrics:detail:add')") @Log(title = "模板指标明细", businessType = BusinessType.INSERT) @PostMapping public AjaxResult add(@RequestBody MetricsTplDetail metricsTplDetail) { return toAjax(metricsTplDetailService.insertMetricsTplDetail(metricsTplDetail)); } /** * 修改模板指标明细 */ @ApiOperation("修改模板指标明细") @PreAuthorize("@ss.hasPermi('metrics:detail:edit')") @Log(title = "模板指标明细", businessType = BusinessType.UPDATE) @PutMapping public AjaxResult edit(@RequestBody MetricsTplDetail metricsTplDetail) { if (metricsTplDetail.getAlarmMid() != null) { metricsTplDetail.setAlarmMid(metricsTplDetail.getAlarmMid().trim()); } if (metricsTplDetail.getAlarmLow() != null) { metricsTplDetail.setAlarmLow(metricsTplDetail.getAlarmLow().trim()); } if (metricsTplDetail.getAlarmHigh() != null) { metricsTplDetail.setAlarmHigh(metricsTplDetail.getAlarmHigh().trim()); } if (metricsTplDetail.getEvent() != null) { metricsTplDetail.setEvent(metricsTplDetail.getEvent().trim()); } int i = metricsTplDetailService.updateMetricsTplDetail(metricsTplDetail); String sql = "select count(*) num from metrics_tpl_detail where tpl_id=? and (data_exp is null or DATA_EXP ='')"; Integer num = jdbcTemplate.queryForObject(sql, Integer.class, metricsTplDetail.getTplId()); MetricsTpl tpl = new MetricsTpl(); tpl.setTplId(metricsTplDetail.getTplId()); if (num == 0) { tpl.setConfStatus("Y"); tplService.updateMetricsTpl(tpl); } else { tpl.setConfStatus("N"); tplService.updateMetricsTpl(tpl); } omService.update(metricsTplDetail); return toAjax(i); } /** * 删除模板指标明细 */ @ApiOperation("删除模板指标明细") @PreAuthorize("@ss.hasPermi('metrics:detail:remove')") @Log(title = "模板指标明细", businessType = BusinessType.DELETE) @DeleteMapping("/{tplDetailIds}") public AjaxResult remove(@PathVariable Long[] tplDetailIds) { for (Long detailId : tplDetailIds) { MetricsTplDetail detail = metricsTplDetailService.selectMetricsTplDetailByTplDetailId(detailId); omService.del(detail); } return toAjax(metricsTplDetailService.deleteMetricsTplDetailByTplDetailIds(tplDetailIds)); } }