package com.dingzhuo.energy.data.monitoring.alarm.controller; import com.dingzhuo.energy.data.monitoring.alarm.domain.JkRealTimeAlarmList; import com.dingzhuo.energy.dataservice.domain.RetrievalModes; import com.dingzhuo.energy.dataservice.domain.TagValue; import com.dingzhuo.energy.dataservice.service.RealtimeDatabaseService; import com.dingzhuo.energy.framework.security.service.TokenService; import com.dingzhuo.energy.framework.web.controller.BaseController; import com.dingzhuo.energy.framework.web.domain.AjaxResult; import com.dingzhuo.energy.framework.web.page.TableDataInfo; import com.dingzhuo.energy.data.monitoring.alarm.service.IRealtimeAlarmService; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; 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.*; import java.math.BigDecimal; import java.text.ParseException; import java.text.SimpleDateFormat; import java.util.*; import java.util.stream.Collectors; /** * 报警监测 下 实时报警监测 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; @Autowired private TokenService tokenService; /** * 实时报警 页面 根据 节点目录和 条件查询 */ // @ApiOperation("实时报警查询") @PreAuthorize("@ss.hasPermi('energyAlarm:realTimeAlarm:list')") @GetMapping("/list") public AjaxResult list(JkRealTimeAlarmList jkRealTimeAlarmList) { //startPage(); List list = iRealtimeAlarmService.selectRealtimeAlarmJkList(jkRealTimeAlarmList); //return getDataTable(list); return AjaxResult.success(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,RetrievalModes.BestFit,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); } }