package com.mh.user.controller; import com.mh.common.http.HttpResult; import com.mh.user.annotation.BusinessType; import com.mh.user.annotation.SysLogger; import com.mh.user.entity.*; import com.mh.user.model.DeviceModel; import com.mh.user.model.PumpModel; import com.mh.user.model.WaterLevelModel; import com.mh.user.service.*; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.PostMapping; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestParam; import org.springframework.web.bind.annotation.RestController; import java.text.SimpleDateFormat; import java.util.ArrayList; import java.util.Date; import java.util.List; @RestController @RequestMapping("monitor") public class NowDataController { @Autowired NowDataService nowDataService; @Autowired BuildingService buildingService; @Autowired NowPublicDataService nowPublicDataService; @Autowired DeviceInstallService deviceInstallService; @Autowired DeviceFloorService deviceFloorService; @SysLogger(title="实时监控",optDesc = "实时查看每楼栋热水运行情况") @PostMapping("/queryNow") public HttpResult queryNowData(@RequestParam(value = "buildingId") String buildingId){ try{ //把热泵的水温保存到公共信息中中的用水温度和回水温度 String avgWaterTemp=nowDataService.selectAve(buildingId); String buildingName=buildingService.queryBuildingName(buildingId);//获取楼栋名称 SimpleDateFormat sdf1 = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); Date date=new Date(); String curDate=sdf1.format(date); curDate=curDate.substring(0,13)+":00:00"; NowPublicDataEntity nowPublicData=new NowPublicDataEntity(); nowPublicData.setBuildingId(buildingId); nowPublicData.setBuildingName(buildingName); if (avgWaterTemp!=null){ nowPublicData.setBackWaterTemp(avgWaterTemp); nowPublicData.setUseWaterTemp(avgWaterTemp); }else{ nowPublicData.setBackWaterTemp("0"); nowPublicData.setUseWaterTemp("0"); } nowPublicDataService.saveNowHistoryPublicData(nowPublicData); //监视表生成初始记录 List list=nowDataService.queryNowData(buildingId); if (list.size()==0){//实时表生成记录 List deviceList=deviceInstallService.selectDevices(buildingId,"热泵"); if (deviceList.size()>0){ for (DeviceModel list2:deviceList){ NowDataEntity nowData=new NowDataEntity(); nowData.setPumpId(list2.getDeviceAddr()); nowData.setPumpName(list2.getDeviceName()); nowData.setBuildingId(buildingId); nowData.setBuildingName(buildingName); nowData.setCurDate(curDate); nowDataService.saveNowData(nowData); //当前状态表 nowDataService.saveHistoryData(nowData); //历史状态表 } }else{ NowDataEntity nowData=new NowDataEntity(); PumpModel pump=deviceFloorService.selectDeviceId2("热泵",buildingId); if (pump!=null){ nowData.setPumpId(pump.getPumpId()); nowData.setPumpName(pump.getPumpName()); nowData.setBuildingId(buildingId); nowData.setBuildingName(buildingName); nowData.setCurDate(curDate); nowDataService.saveNowData(nowData); nowDataService.saveHistoryData(nowData); } } } list=nowDataService.queryNowData(buildingId); return HttpResult.ok(list); }catch (Exception e){ // e.printStackTrace(); return HttpResult.error("查询当前监控状态出错!"); } } @SysLogger(title="实时监控",optDesc = "分别查看热泵运行情况") @PostMapping("/queryNowByPump") public HttpResult queryNowByPump(@RequestParam(value = "buildingId") String buildingId,@RequestParam(value = "pumpId") String pumpId){ try{ NowDataEntity nowDataEntity=nowDataService.queryNowDataByPump(buildingId,pumpId); return HttpResult.ok(nowDataEntity); }catch (Exception e){ e.printStackTrace(); return HttpResult.error("按热泵查询当前监控状态出错!"); } } @SysLogger(title="运行信息",optDesc = "热泵历史状态查询") @PostMapping("/query") public HttpResult queryHistoryData(@RequestParam(value = "curDate") String curDate, @RequestParam(value = "buildingId") String buildingId, @RequestParam(value = "pumpId",required = false) String pumpId, @RequestParam(value = "tankId",required = false) String tankId, @RequestParam(value = "page") int page, @RequestParam(value = "limit") int limit){ try{ List list; list=nowDataService.queryHistoryData(curDate,buildingId,pumpId,tankId,page,limit); int count=nowDataService.getHistoryDataCount(curDate,buildingId,pumpId,tankId,page,limit); return HttpResult.ok(count,list); }catch (Exception e){ // e.printStackTrace(); return HttpResult.error("查询出错!"); } } //查询水位开始 @SysLogger(title="水位变化表",optDesc = "水位变化查询") @PostMapping("/waterLevel") public HttpResult queryWaterLevel(@RequestParam(value = "curDate") String curDate, @RequestParam(value = "buildingID") String buildingID, @RequestParam(value = "page") int page, @RequestParam(value = "limit") int limit){ try{ if (buildingID==null || buildingID.equals("") || buildingID.equals("所有楼栋")){ List list=nowDataService.queryBuildWaterLevel(curDate, page, limit); int count=nowDataService.buildWaterLevelCount(curDate); return HttpResult.ok(count,list); }else{ List list=nowDataService.queryWaterLevel(curDate,buildingID,page,limit); int count=nowDataService.getWaterLevelCount(curDate,buildingID); return HttpResult.ok(count,list); } }catch (Exception e){ // e.printStackTrace(); return HttpResult.error("查询出错!"); } } @PostMapping("/levelByTime") public HttpResult queryWaterLevelByTime(@RequestParam(value = "curDate") String curDate, @RequestParam(value = "page") int page, @RequestParam(value = "limit") int limit){ try{ int count=nowDataService.waterLevelByTimeCount(curDate); List list=nowDataService.queryWaterLevelByTime(curDate,page,limit); return HttpResult.ok(count,list); }catch (Exception e){ // e.printStackTrace(); return HttpResult.error("查询出错!"); } } //查询水位结束 //查询水温,每天24小时情况 @SysLogger(title="温度变化表",optDesc = "温度变化查询") @PostMapping("/waterTemp") public HttpResult queryWaterTemp(@RequestParam(value = "buildingID") String buildingID, @RequestParam(value = "curDate") String curDate, @RequestParam(value = "page") int page, @RequestParam(value = "limit") int limit){ try{ List list; int count; if (buildingID==null || buildingID.equals("") || buildingID.equals("所有楼栋")){ list=nowDataService.queryWaterTemp2(curDate,page,limit); count=nowDataService.queryWaterTempCount2(curDate); }else{ list=nowDataService.queryWaterTemp(buildingID,curDate,page,limit); count=nowDataService.queryWaterTempCount(buildingID,curDate); } return HttpResult.ok(count,list); }catch (Exception e){ // e.printStackTrace(); return HttpResult.error("查询出错!"); } } //查询运行时长 @SysLogger(title="运行时长",optDesc = "热泵运行时长查询") @PostMapping("/minutes") public HttpResult pumpMinutes(@RequestParam(value = "startDate") String startDate, @RequestParam(value = "endDate") String endDate, @RequestParam(value = "buildingId",required = false) String buildingId, @RequestParam(value = "pumpId",required = false) String pumpId, @RequestParam(value = "type") int type, @RequestParam(value = "page") int page, @RequestParam(value = "limit") int limit){ try{ int count=0; List list; if(type==1){ list=nowDataService.pumpMinutes(startDate,endDate,buildingId,pumpId,page,limit); count=nowDataService.pumpMinutesCount(startDate,endDate,buildingId,pumpId); }else if(type==2){ list=nowDataService.pumpWeekMinutes(startDate,endDate,buildingId,pumpId,page,limit); count=nowDataService.pumpWeekMinutesCount(startDate,endDate,buildingId,pumpId); }else if(type==3){ list=nowDataService.pumpMonthMinutes(startDate,endDate,buildingId,pumpId,page,limit); count=nowDataService.pumpMonthMinutesCount(startDate,endDate,buildingId,pumpId); }else{ list=nowDataService.pumpMinutes(startDate,endDate,buildingId,pumpId,page,limit); count=nowDataService.pumpMinutesCount(startDate,endDate,buildingId,pumpId); } return HttpResult.ok(count,list); }catch (Exception e){ // e.printStackTrace(); return HttpResult.error("查询出错!"); } } }