中央热水项目
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

231 lines
11 KiB

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<NowDataEntity> list=nowDataService.queryNowData(buildingId);
if (list.size()==0){//实时表生成记录
List<DeviceModel> 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<NowDataEntity> 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<WaterLevelEntity> list=nowDataService.queryBuildWaterLevel(curDate, page, limit);
int count=nowDataService.buildWaterLevelCount(curDate);
return HttpResult.ok(count,list);
}else{
List<WaterLevelEntity> 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<WaterLevelModel> 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<WaterTempEntity> 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<PumpMinutesEntity> 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("查询出错!");
}
}
}