增加长期监测设备接口

This commit is contained in:
zy 2025-11-28 11:52:39 +08:00
parent 667e5c08df
commit d7d62b04d3
7 changed files with 53 additions and 7 deletions

View File

@ -14,6 +14,7 @@ import org.jeecg.common.constant.IotConstants;
import org.jeecg.common.constant.enums.PollutionEnum;
import org.jeecg.common.entity.SurvDeviceDeploy;
import org.jeecg.common.entity.SurvMaintainRecord;
import org.jeecg.common.entity.SurvStationInfo;
import org.jeecg.common.iot.common.VOIntegrateStatistic;
import org.jeecg.common.iot.common.VOSurvIntegrateResult;
import org.jeecg.common.vo.params.StationMaintainPage;
@ -23,6 +24,7 @@ import org.jeecg.common.vo.statistic.ScreenSummaryDetailVo;
import org.jeecg.common.vo.statistic.ScreenSummaryVo;
import org.jeecg.modules.appmana.service.ISurvDeviceDeployService;
import org.jeecg.modules.appmana.service.ISurvMaintainRecordService;
import org.jeecg.modules.appmana.service.ISurvStationInfoService;
import org.jeecg.modules.appmana.service.impl.CommonServiceImpl;
import org.jeecg.common.vo.VOBigScreenSurvQ;
import org.jeecg.common.vo.VOHisFormResult;
@ -65,10 +67,16 @@ public class BigScreenControllerP2 {
PollutionEnum pollutionEnum = PollutionEnum.catchPollution(voBigScreenSurvQ.getSurvItem());
SurvDeviceDeploy deploy = null;
if(StringUtils.isNotBlank(voBigScreenSurvQ.getStationCode())){
deploy = survDeviceDeployService.getOne(Wrappers.<SurvDeviceDeploy>lambdaQuery()
.eq(SurvDeviceDeploy::getStationCode,voBigScreenSurvQ.getStationCode())
.like(SurvDeviceDeploy::getDeployType,pollutionEnum.getType())
.last("limit 1"));
if(pollutionEnum.getType().startsWith("water")){//面源设备根据 站点类型来寻找设备
deploy = survDeviceDeployService.getOrientDeviceByStation(voBigScreenSurvQ.getStationCode());
}else{
deploy = survDeviceDeployService.getOne(Wrappers.<SurvDeviceDeploy>lambdaQuery()
.eq(SurvDeviceDeploy::getStationCode,voBigScreenSurvQ.getStationCode())
.like(SurvDeviceDeploy::getDeployType,pollutionEnum.getType())
.last("limit 1"));
}
} else if (StringUtils.isNotBlank(voBigScreenSurvQ.getDeployId())) {
deploy = survDeviceDeployService.getById(voBigScreenSurvQ.getDeployId());
}else {
@ -76,7 +84,7 @@ public class BigScreenControllerP2 {
.like(SurvDeviceDeploy::getDeployType,pollutionEnum.getType())
.last("limit 1"));
}
Assert.notNull(deploy, "无效的设备");
Assert.notNull(deploy, "无效的设备1");
voBigScreenSurvQ.setDeployId(deploy.getId());
VOHisResult voHisResult = iotCommonP3Service.iotSurvSummary(voBigScreenSurvQ);
List<VOHisFormResult> voHisFormResults = new ArrayList<>();

View File

@ -35,4 +35,6 @@ public interface ISurvDeviceDeployService extends IService<SurvDeviceDeploy> {
List<SurvDeviceDeploy> getByIdsWithZhiBiao(List<String> deployId);
List<SurvDeviceDeploy> getAllDevice(String stationCode,List<String> deployTypes);
SurvDeviceDeploy getOrientDeviceByStation(String stationCode);
}

View File

@ -17,4 +17,6 @@ public interface ISurvStationInfoService extends IService<SurvStationInfo> {
List<LinkedHashMap<String, Object>> countStations();
List<SurvStationInfo> getAllStationAndDevice(String stationCode,String deviceType,String token);
SurvStationInfo getStationByCode(String stationCode);
}

View File

@ -52,7 +52,7 @@ public class IotCommonP3ServiceImpl {
*/
public VOHisResult iotSurvSummary(VOBigScreenSurvQ voBigScreenSurvQ){
SurvDeviceDeploy deploy = deviceDeployService.getById(voBigScreenSurvQ.getDeployId());
Assert.notNull(deploy, "无效的设备");
Assert.notNull(deploy, "无效的设备2");
LocalDateTime startDateTime = null;
LocalDateTime endDateTime = null;

View File

@ -6,6 +6,7 @@ import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.lang3.StringUtils;
import org.jeecg.common.constant.IotConstants;
import org.jeecg.common.constant.PollutionConstants;
import org.jeecg.common.constant.enums.DeviceDeployEnum;
import org.jeecg.common.entity.*;
import org.jeecg.common.constant.enums.IotManufacturerEnum;
@ -19,6 +20,7 @@ import org.jeecg.modules.appmana.mapper.SurvDeviceDeployMapper;
import org.jeecg.modules.appmana.service.IScContExeService;
import org.jeecg.modules.appmana.service.IScContService;
import org.jeecg.modules.appmana.service.ISurvDeviceDeployService;
import org.jeecg.modules.appmana.service.ISurvStationInfoService;
import org.jeecg.modules.appmana.utils.SdrkUtils;
import org.jeecg.modules.appmana.utils.XphUtils;
import org.springframework.beans.factory.annotation.Autowired;
@ -59,6 +61,9 @@ public class SurvDeviceDeployServiceImpl extends ServiceImpl<SurvDeviceDeployMap
@Autowired
private IScContExeService scContExeService;
@Autowired
private ISurvStationInfoService stationInfoService;
@Override
public IPage<SurvDeviceDeploy> pages(IPage<SurvDeviceDeploy> page, SurvDeviceDeploy survDeviceDeploy) {
return baseMapper.pages(page,survDeviceDeploy);
@ -410,4 +415,23 @@ public class SurvDeviceDeployServiceImpl extends ServiceImpl<SurvDeviceDeployMap
.list();
return deploys;
}
@Override
public SurvDeviceDeploy getOrientDeviceByStation(String stationCode) {
SurvStationInfo stationInfo = stationInfoService.getStationByCode(stationCode);
Assert.notNull(stationInfo,"无效站点");
Assert.notBlank(stationInfo.getStationType(),"无效站点类型");
String deployType ="";
if(stationInfo.getStationType().contains("orient")){//面源站
deployType = PollutionConstants.WATER_ORIENT;
}else if(stationInfo.getStationType().contains("live")) {//面源站
deployType = PollutionConstants.WATER_LIVE;
}
SurvDeviceDeploy deploy = getOne(Wrappers.<SurvDeviceDeploy>lambdaQuery()
.eq(SurvDeviceDeploy::getStationCode,stationCode)
.eq(SurvDeviceDeploy::getDeployType,deployType)
.last("limit 1"));
return deploy;
}
}

View File

@ -28,4 +28,12 @@ public class SurvStationInfoServiceImpl extends ServiceImpl<SurvStationInfoMappe
public List<SurvStationInfo> getAllStationAndDevice(String stationCode,String deviceType,String token) {
return baseMapper.getAllStationAndDevice(stationCode,deviceType,token);
}
@Override
public SurvStationInfo getStationByCode(String stationCode) {
SurvStationInfo s = lambdaQuery().eq(SurvStationInfo::getStationCode,stationCode)
.last("limit 1")
.one();
return s;
}
}

View File

@ -91,18 +91,20 @@ public enum PollutionEnum {
dataWaterTemp("dataWaterTemp", "水温", "", "sys/icon/shebei_icon_watertemp.png", "6_water", "#92D0F3", "sys/mobile/icon/shebei_icon_watertemp.png", "sys/bs/icon/shebei_icon_watertemp.png", "shebei_icon_watertemp.png"),
dataWaterDdl("dataWaterDdl", "电导率", "", "sys/icon/shebei_icon_waterddl.png", "6_water", "#92D0F3", "sys/mobile/icon/shebei_icon_waterddl.png", "sys/bs/icon/shebei_icon_waterddl.png", "shebei_icon_waterddl.png"),
//面源数据
dataWaterTp("dataWaterTp", "总磷", "mg/L", "sys/icon/shebei_icon_tp.png", "water", "#C8CC00", "sys/mobile/icon/shebei_icon_tp.png", "sys/bs/icon/shebei_icon_tp.png", "shebei_icon_tp.png"),
dataWaterTn("dataWaterTn", "总氮", "mg/L", "sys/icon/shebei_icon_tn.png", "water", "#009DB2", "sys/mobile/icon/shebei_icon_tn.png", "sys/bs/icon/shebei_icon_tn.png", "shebei_icon_tn.png"),
dataWaterNo("dataWaterNo", "硝态氮", "mg/L", "sys/icon/shebei_icon_no3n.png", "water_orient", "#72BAA7", "sys/mobile/icon/shebei_icon_no3n.png", "sys/bs/icon/shebei_icon_no3n.png", "shebei_icon_no3n.png"),
dataWaterNh("dataWaterNh", "氨氮", "mg/L", "sys/icon/shebei_icon_nh3n.png", "water_live", "#225A1F", "sys/mobile/icon/shebei_icon_nh3n.png", "sys/bs/icon/shebei_icon_nh3n.png", "shebei_icon_nh3n.png"),
dataWaterCod("dataWaterCod", "化学需氧量", "mg/L", "sys/icon/shebei_icon_cod.png", "water_live", "#FDB933", "sys/mobile/icon/shebei_icon_cod.png", "sys/bs/icon/shebei_icon_cod.png", "shebei_icon_cod.png"),
//恶臭
dataStinkOu("dataOu","臭气浓度","mg/m³","sys/icon/zhandian_icon_ou.png","stink","#f47a75", "sys/mobile/icon/shebei_icon_ou.png", "sys/bs/icon/shebei_icon_ou.png", "shebei_icon_ou.png"),
dataStinkNh3("dataNh3","氨气","mg/m³","sys/icon/zhandian_icon_nh3.png","stink","#d05c7c", "sys/mobile/icon/shebei_icon_nh3.png", "sys/bs/icon/shebei_icon_nh3.png", "shebei_icon_nh3.png"),
dataStinkH2s("dataH2s","硫化氢","mg/m³","sys/icon/zhandian_icon_h2s.png","stink","#d05c9f", "sys/mobile/icon/shebei_icon_h2s.png", "sys/bs/icon/shebei_icon_h2s.png", "shebei_icon_h2s.png"),
dataStinkTvoc("dataTvoc","总挥发性有机物","mg/m³","sys/icon/zhandian_icon_tvoc.png","stink","#f06464", "sys/mobile/icon/shebei_icon_tvoc.png", "sys/bs/icon/shebei_icon_tvoc.png", "shebei_icon_tvoc.png"),
//杀虫灯
dataPestLight("ct","杀虫次数","","","9_pestlight","","","",""),
dataDefault("default", "默认", "", "", "default", "#DEAB8A", "", "", "");