package com.zhitan.web.controller.alarm; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.zhitan.alarm.domain.JkRealTimeAlarmList; import com.zhitan.alarm.services.IRealtimeAlarmService; import com.zhitan.common.core.controller.BaseController; import com.zhitan.common.core.domain.AjaxResult; import com.zhitan.common.core.page.TableDataInfo; import com.zhitan.realtimedata.domain.TagValue; import com.zhitan.realtimedata.service.RealtimeDatabaseService; import io.swagger.annotations.Api; import org.apache.commons.lang3.ObjectUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.security.access.prepost.PreAuthorize; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.PathVariable; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController; import java.math.BigDecimal; import java.util.Calendar; import java.util.Date; import java.util.List; /** * 报警监测 下 实时报警监测 Controller * * @author zhaowei * @date 2020-02-12 */ @Api("报警检测——实时报警检测") @RestController @RequestMapping("/energyAlarm/realTimeAlarm") public class RealTimeAlarmController extends BaseController { @Autowired private IRealtimeAlarmService iRealtimeAlarmService; @Autowired private RealtimeDatabaseService realtimeDatabaseService; /** * 实时报警 页面 根据 节点目录和 条件查询 */ // @ApiOperation("实时报警查询") @PreAuthorize("@ss.hasPermi('energyAlarm:realTimeAlarm:list')") @GetMapping("/list") public TableDataInfo list(JkRealTimeAlarmList jkRealTimeAlarmList, Long pageNum, Long pageSize) { Page list = iRealtimeAlarmService.selectRealtimeAlarmJkPage(jkRealTimeAlarmList,pageNum,pageSize); return getDataTable(list); } /** * 实时报警 组件 实时数据获取 */ // @ApiOperation("实时报警查询") @PreAuthorize("@ss.hasPermi('energyAlarm:realTimeAlarm:list')") @GetMapping("/liveHistoryData/{code}/{minute}/{pointCount}") public AjaxResult liveList(@PathVariable("code") String code,@PathVariable("minute") String minute,@PathVariable("pointCount") String pointCount) { int time = Integer.parseInt(minute); int count = Integer.parseInt(pointCount); Calendar c = Calendar.getInstance(); Date endTime= c.getTime(); c.add(Calendar.MINUTE, -time); Date startTime = c.getTime(); List TagValuelist = realtimeDatabaseService.retrieve(code, startTime, endTime, count); for(TagValue tagVal:TagValuelist) { if(ObjectUtils.isEmpty(tagVal)){ tagVal = new TagValue(); } tagVal.setShowDataTime("HH:mm:ss"); if(ObjectUtils.isEmpty(tagVal.getValue())){ tagVal.setValue(0.00); }else{ BigDecimal b = new BigDecimal(tagVal.getValue()); tagVal.setValue( b.setScale(2, BigDecimal.ROUND_HALF_UP).doubleValue()); } } // Collections.reverse(TagValuelist); return AjaxResult.success(TagValuelist); } }