Compare commits
7 Commits
96c9fff97c
...
master
Author | SHA1 | Date | |
---|---|---|---|
3ad89e44dd | |||
3a642833c4 | |||
2b9a21c063 | |||
27737c0cb9 | |||
da663fff45 | |||
83ba7cd354 | |||
64e85926ed |
@ -6,9 +6,13 @@ spring:
|
||||
druid:
|
||||
# 主库数据源
|
||||
master:
|
||||
url: jdbc:mysql://182.40.196.154:3306/wumei2.4-test?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=true&serverTimezone=GMT%2B8
|
||||
username: wumei2.4-test
|
||||
password: JyRiZbFSZZiJBrSa
|
||||
#url: jdbc:mysql://182.40.196.154:3306/wumei2.4-test?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=true&serverTimezone=GMT%2B8
|
||||
#username: wumei2.4-test
|
||||
#password: JyRiZbFSZZiJBrSa
|
||||
url: jdbc:mysql://w.hanzhenyun.com:3306/wumei2.4?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=true&serverTimezone=GMT%2B8
|
||||
username: wumei2.4
|
||||
password: rtB8EhbRRYSGyxHw
|
||||
|
||||
# 从库数据源
|
||||
slave:
|
||||
enabled: false # 从数据源开关/默认关闭
|
||||
|
@ -62,8 +62,8 @@ server:
|
||||
spring:
|
||||
# 环境配置,dev=开发环境,prod=生产环境
|
||||
profiles:
|
||||
# active: dev # 环境配置,dev=开发环境,prod=生产环境
|
||||
active: prod # 环境配置,dev=开发环境,prod=生产环境
|
||||
active: dev # 环境配置,dev=开发环境,prod=生产环境
|
||||
#active: prod # 环境配置,dev=开发环境,prod=生产环境
|
||||
# 资源信息
|
||||
messages:
|
||||
# 国际化资源文件路径
|
||||
|
@ -61,7 +61,8 @@ public class ResourcesConfig implements WebMvcConfigurer
|
||||
"/tool/gen/**");
|
||||
//配置项目数据隔离拦截器
|
||||
registry.addInterceptor(projectDataIsolationInterceptor)
|
||||
.addPathPatterns("/gis/groups/**", "/gis/legend/**","/gis/site/**","/project/**","/system/**","/device/statistics/**");
|
||||
.addPathPatterns("/gis/groups/**", "/gis/legend/**","/gis/site/**","/project/**","/system/**","/device/statistics/**")
|
||||
.addPathPatterns("/media/yingshiyun/**");
|
||||
}
|
||||
|
||||
/**
|
||||
|
@ -126,8 +126,8 @@ public class DeviceAlarmController extends BaseController {
|
||||
* 统计不同设备数量
|
||||
*/
|
||||
@GetMapping("/countByType")
|
||||
public AjaxResult getDeviceCountByType() {
|
||||
return AjaxResult.success(deviceInformationManager.getAllDeviceCount());
|
||||
public AjaxResult getDeviceCountByType(Long projectId) {
|
||||
return AjaxResult.success(deviceInformationManager.getAllDeviceCount(projectId));
|
||||
}
|
||||
|
||||
/**
|
||||
|
@ -44,13 +44,14 @@ public class DeviceInfoController extends BaseController {
|
||||
* 查询全部设备立杆列表
|
||||
*/
|
||||
@GetMapping("/allList")
|
||||
public AjaxResult getAllList() {
|
||||
public AjaxResult getAllList(Long projectId) {
|
||||
List<Map<String, Object>> result =new ArrayList<>();
|
||||
//气象
|
||||
LambdaQueryWrapper<DeviceInformationMeteorology> queryWrapper1 = new LambdaQueryWrapper<>();
|
||||
queryWrapper1.select(DeviceInformationMeteorology::getId,DeviceInformationMeteorology::getName,
|
||||
DeviceInformationMeteorology::getLongitude,DeviceInformationMeteorology::getLatitude,
|
||||
DeviceInformationMeteorology::getDeviceEncoding);
|
||||
DeviceInformationMeteorology::getDeviceEncoding)
|
||||
.eq(DeviceInformationMeteorology::getProjectId,projectId);
|
||||
List<DeviceInformationMeteorology> deviceInformationMeteorologies = deviceInformationMeteorologyMapper.selectList(queryWrapper1);
|
||||
Map<String,Object> obj1=new HashMap<>();
|
||||
obj1.put("type","气象");
|
||||
@ -60,7 +61,8 @@ public class DeviceInfoController extends BaseController {
|
||||
LambdaQueryWrapper<DeviceInformationWorms> queryWrapper2 = new LambdaQueryWrapper<>();
|
||||
queryWrapper2.select(DeviceInformationWorms::getId,DeviceInformationWorms::getName,
|
||||
DeviceInformationWorms::getLongitude,DeviceInformationWorms::getLatitude,
|
||||
DeviceInformationWorms::getDeviceEncoding);
|
||||
DeviceInformationWorms::getDeviceEncoding)
|
||||
.eq(DeviceInformationWorms::getProjectId,projectId);
|
||||
List<DeviceInformationWorms> deviceInformationWorms = deviceInformationWormsMapper.selectList(queryWrapper2);
|
||||
Map<String,Object> obj2=new HashMap<>();
|
||||
obj2.put("type","虫情");
|
||||
@ -71,7 +73,8 @@ public class DeviceInfoController extends BaseController {
|
||||
LambdaQueryWrapper<DeviceInformationMoisture> queryWrapper3 = new LambdaQueryWrapper<>();
|
||||
queryWrapper3.select(DeviceInformationMoisture::getId,DeviceInformationMoisture::getName,
|
||||
DeviceInformationMoisture::getLongitude,DeviceInformationMoisture::getLatitude,
|
||||
DeviceInformationMoisture::getDeviceEncoding);
|
||||
DeviceInformationMoisture::getDeviceEncoding)
|
||||
.eq(DeviceInformationMoisture::getProjectId,projectId);
|
||||
List<DeviceInformationMoisture> deviceInformationMoistures = deviceInformationMoistureMapper.selectList(queryWrapper3);
|
||||
Map<String,Object> obj3=new HashMap<>();
|
||||
obj3.put("type","墒情");
|
||||
@ -82,7 +85,8 @@ public class DeviceInfoController extends BaseController {
|
||||
LambdaQueryWrapper<DeviceInformationTargetpests> queryWrapper4 = new LambdaQueryWrapper<>();
|
||||
queryWrapper4.select(DeviceInformationTargetpests::getId,DeviceInformationTargetpests::getName,
|
||||
DeviceInformationTargetpests::getLongitude,DeviceInformationTargetpests::getLatitude,
|
||||
DeviceInformationTargetpests::getDeviceEncoding);
|
||||
DeviceInformationTargetpests::getDeviceEncoding)
|
||||
.eq(DeviceInformationTargetpests::getProjectId,projectId);
|
||||
List<DeviceInformationTargetpests> deviceInformationTargetpests = deviceInformationTargetpestsMapper.selectList(queryWrapper4);
|
||||
Map<String,Object> obj4=new HashMap<>();
|
||||
obj4.put("type","杀虫灯");
|
||||
@ -93,7 +97,8 @@ public class DeviceInfoController extends BaseController {
|
||||
LambdaQueryWrapper<DeviceInformationMiaoqing> queryWrapper5 = new LambdaQueryWrapper<>();
|
||||
queryWrapper5.select(DeviceInformationMiaoqing::getId,DeviceInformationMiaoqing::getName,
|
||||
DeviceInformationMiaoqing::getLongitude,DeviceInformationMiaoqing::getLatitude,
|
||||
DeviceInformationMiaoqing::getDeviceEncoding);
|
||||
DeviceInformationMiaoqing::getDeviceEncoding)
|
||||
.eq(DeviceInformationMiaoqing::getProjectId,projectId);
|
||||
List<DeviceInformationMiaoqing> deviceInformationMiaoqings = deviceInformationMiaoqingMapper.selectList(queryWrapper5);
|
||||
Map<String,Object> obj5=new HashMap<>();
|
||||
obj5.put("type","苗情");
|
||||
@ -104,7 +109,8 @@ public class DeviceInfoController extends BaseController {
|
||||
LambdaQueryWrapper<DeviceInformationMonitor> queryWrapper6 = new LambdaQueryWrapper<>();
|
||||
queryWrapper6.select(DeviceInformationMonitor::getId,DeviceInformationMonitor::getName,
|
||||
DeviceInformationMonitor::getLongitude,DeviceInformationMonitor::getLatitude,
|
||||
DeviceInformationMonitor::getDeviceEncoding);
|
||||
DeviceInformationMonitor::getDeviceEncoding)
|
||||
.eq(DeviceInformationMonitor::getProjectId,projectId);
|
||||
List<DeviceInformationMonitor> deviceInformationMonitors = deviceInformationMonitorMapper.selectList(queryWrapper6);
|
||||
Map<String,Object> obj6=new HashMap<>();
|
||||
obj6.put("type","监控");
|
||||
@ -118,10 +124,11 @@ public class DeviceInfoController extends BaseController {
|
||||
* 查询气象设备列表
|
||||
*/
|
||||
@GetMapping("/weatherList")
|
||||
public AjaxResult getDeviceList() {
|
||||
public AjaxResult getDeviceList(Long projectId) {
|
||||
LambdaQueryWrapper<DeviceInformationMeteorology> queryWrapper = new LambdaQueryWrapper<>();
|
||||
queryWrapper.select(DeviceInformationMeteorology::getId,DeviceInformationMeteorology::getName,
|
||||
DeviceInformationMeteorology::getLongitude,DeviceInformationMeteorology::getLatitude);
|
||||
DeviceInformationMeteorology::getLongitude,DeviceInformationMeteorology::getLatitude)
|
||||
.eq(DeviceInformationMeteorology::getProjectId,projectId);
|
||||
return success(deviceInformationMeteorologyMapper.selectList(queryWrapper));
|
||||
}
|
||||
|
||||
@ -130,10 +137,11 @@ public class DeviceInfoController extends BaseController {
|
||||
* 查询虫情设备列表
|
||||
*/
|
||||
@GetMapping("/wormList")
|
||||
public AjaxResult getWeatherList() {
|
||||
public AjaxResult getWeatherList(Long projectId) {
|
||||
LambdaQueryWrapper<DeviceInformationWorms> queryWrapper = new LambdaQueryWrapper<>();
|
||||
queryWrapper.select(DeviceInformationWorms::getId,DeviceInformationWorms::getName,
|
||||
DeviceInformationWorms::getLongitude,DeviceInformationWorms::getLatitude);
|
||||
DeviceInformationWorms::getLongitude,DeviceInformationWorms::getLatitude)
|
||||
.eq(DeviceInformationWorms::getProjectId,projectId);
|
||||
return success(deviceInformationWormsMapper.selectList(queryWrapper));
|
||||
}
|
||||
|
||||
@ -141,40 +149,46 @@ public class DeviceInfoController extends BaseController {
|
||||
* 查询墒情设备列表
|
||||
*/
|
||||
@GetMapping("/soilList")
|
||||
public AjaxResult getSoilList() {
|
||||
public AjaxResult getSoilList(Long projectId) {
|
||||
LambdaQueryWrapper<DeviceInformationMoisture> queryWrapper = new LambdaQueryWrapper<>();
|
||||
queryWrapper.select(DeviceInformationMoisture::getId,DeviceInformationMoisture::getName,
|
||||
DeviceInformationMoisture::getLongitude,DeviceInformationMoisture::getLatitude);
|
||||
DeviceInformationMoisture::getLongitude,DeviceInformationMoisture::getLatitude)
|
||||
.eq(DeviceInformationMoisture::getProjectId,projectId);
|
||||
return success(deviceInformationMoistureMapper.selectList(queryWrapper));
|
||||
}
|
||||
/**
|
||||
* 查询杀虫灯设备列表
|
||||
*/
|
||||
@GetMapping("/lightList")
|
||||
public AjaxResult getLightList() {
|
||||
public AjaxResult getLightList(Long projectId) {
|
||||
LambdaQueryWrapper<DeviceInformationTargetpests> queryWrapper = new LambdaQueryWrapper<>();
|
||||
queryWrapper.select(DeviceInformationTargetpests::getId,DeviceInformationTargetpests::getName,
|
||||
DeviceInformationTargetpests::getLongitude,DeviceInformationTargetpests::getLatitude);
|
||||
DeviceInformationTargetpests::getLongitude,DeviceInformationTargetpests::getLatitude)
|
||||
.eq(DeviceInformationTargetpests::getProjectId,projectId);
|
||||
return success(deviceInformationTargetpestsMapper.selectList(queryWrapper));
|
||||
}
|
||||
/**
|
||||
* 查询苗情设备列表
|
||||
*/
|
||||
@GetMapping("/miaoList")
|
||||
public AjaxResult getmiaoList() {
|
||||
public AjaxResult getmiaoList(Long projectId) {
|
||||
LambdaQueryWrapper<DeviceInformationMiaoqing> queryWrapper = new LambdaQueryWrapper<>();
|
||||
queryWrapper.select(DeviceInformationMiaoqing::getId,DeviceInformationMiaoqing::getName,
|
||||
DeviceInformationMiaoqing::getLongitude,DeviceInformationMiaoqing::getLatitude);
|
||||
DeviceInformationMiaoqing::getLongitude,DeviceInformationMiaoqing::getLatitude)
|
||||
.eq(DeviceInformationMiaoqing::getProjectId,projectId);
|
||||
return success(deviceInformationMiaoqingMapper.selectList(queryWrapper));
|
||||
}
|
||||
/**
|
||||
* 查询监控站设备列表
|
||||
*/
|
||||
@GetMapping("/monitorList")
|
||||
public AjaxResult getmonitorList() {
|
||||
public AjaxResult getmonitorList(Long projectId) {
|
||||
LambdaQueryWrapper<DeviceInformationMonitor> queryWrapper = new LambdaQueryWrapper<>();
|
||||
queryWrapper.select(DeviceInformationMonitor::getId,DeviceInformationMonitor::getName,
|
||||
DeviceInformationMonitor::getLongitude,DeviceInformationMonitor::getLatitude);
|
||||
DeviceInformationMonitor::getLongitude,DeviceInformationMonitor::getLatitude)
|
||||
.eq(DeviceInformationMonitor::getProjectId,projectId);
|
||||
return success(deviceInformationMonitorMapper.selectList(queryWrapper));
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
@ -3,6 +3,7 @@ package com.fastbee.data.controller.aaScreenAgricultural.deviceBaseInfo;
|
||||
import java.util.List;
|
||||
import javax.servlet.http.HttpServletResponse;
|
||||
|
||||
import com.fastbee.deviceInfo.mapper.DeviceInformationMeteorologyMapper;
|
||||
import io.swagger.annotations.Api;
|
||||
import io.swagger.annotations.ApiOperation;
|
||||
import org.springframework.security.access.prepost.PreAuthorize;
|
||||
@ -35,11 +36,13 @@ public class DeviceInformationMeteorologyController extends BaseController
|
||||
{
|
||||
@Autowired
|
||||
private IDeviceInformationMeteorologyService deviceInformationMeteorologyService;
|
||||
@Autowired
|
||||
private DeviceInformationMeteorologyMapper deviceInformationMeteorologyMapper;
|
||||
|
||||
/**
|
||||
* 查询气象设备基础信息列表
|
||||
*/
|
||||
@PreAuthorize("@ss.hasPermi('deviceInfo:meteorology:list')")
|
||||
//@PreAuthorize("@ss.hasPermi('deviceInfo:meteorology:list')")
|
||||
@GetMapping("/list")
|
||||
@ApiOperation("查询气象设备基础信息列表")
|
||||
public TableDataInfo list(DeviceInformationMeteorology deviceInformationMeteorology)
|
||||
@ -75,7 +78,7 @@ public class DeviceInformationMeteorologyController extends BaseController
|
||||
/**
|
||||
* 新增气象设备基础信息
|
||||
*/
|
||||
@PreAuthorize("@ss.hasPermi('deviceInfo:meteorology:add')")
|
||||
//@PreAuthorize("@ss.hasPermi('deviceInfo:meteorology:add')")
|
||||
@PostMapping
|
||||
@ApiOperation("新增气象设备基础信息")
|
||||
public AjaxResult add(@RequestBody DeviceInformationMeteorology deviceInformationMeteorology)
|
||||
@ -86,7 +89,7 @@ public class DeviceInformationMeteorologyController extends BaseController
|
||||
/**
|
||||
* 修改气象设备基础信息
|
||||
*/
|
||||
@PreAuthorize("@ss.hasPermi('deviceInfo:meteorology:edit')")
|
||||
//@PreAuthorize("@ss.hasPermi('deviceInfo:meteorology:edit')")
|
||||
@PutMapping
|
||||
@ApiOperation("修改气象设备基础信息")
|
||||
public AjaxResult edit(@RequestBody DeviceInformationMeteorology deviceInformationMeteorology)
|
||||
@ -97,11 +100,13 @@ public class DeviceInformationMeteorologyController extends BaseController
|
||||
/**
|
||||
* 删除气象设备基础信息
|
||||
*/
|
||||
@PreAuthorize("@ss.hasPermi('deviceInfo:meteorology:remove')")
|
||||
@DeleteMapping("/{ids}")
|
||||
//@PreAuthorize("@ss.hasPermi('deviceInfo:meteorology:remove')")
|
||||
@DeleteMapping("/{id}")
|
||||
@ApiOperation("删除气象设备基础信息")
|
||||
public AjaxResult remove(@PathVariable Long[] ids)
|
||||
public AjaxResult remove(@PathVariable Long id)
|
||||
{
|
||||
return toAjax(deviceInformationMeteorologyService.deleteDeviceInformationMeteorologyByIds(ids));
|
||||
int flag=deviceInformationMeteorologyMapper.deleteDeviceInformationMeteorologyById(id);
|
||||
return toAjax(flag);
|
||||
//return toAjax(deviceInformationMeteorologyService.deleteDeviceInformationMeteorologyByIds(ids));
|
||||
}
|
||||
}
|
||||
|
@ -3,6 +3,7 @@ package com.fastbee.data.controller.aaScreenAgricultural.deviceBaseInfo;
|
||||
import java.util.List;
|
||||
import javax.servlet.http.HttpServletResponse;
|
||||
|
||||
import com.fastbee.deviceInfo.mapper.DeviceInformationMonitorMapper;
|
||||
import io.swagger.annotations.Api;
|
||||
import io.swagger.annotations.ApiOperation;
|
||||
import org.springframework.security.access.prepost.PreAuthorize;
|
||||
@ -35,11 +36,13 @@ public class DeviceInformationMonitorController extends BaseController
|
||||
{
|
||||
@Autowired
|
||||
private IDeviceInformationMonitorService deviceInformationMonitorService;
|
||||
@Autowired
|
||||
private DeviceInformationMonitorMapper deviceInformationMonitorMapper;
|
||||
|
||||
/**
|
||||
* 查询监控站设备基础信息列表
|
||||
*/
|
||||
@PreAuthorize("@ss.hasPermi('deviceInfo:monitor:list')")
|
||||
//@PreAuthorize("@ss.hasPermi('deviceInfo:monitor:list')")
|
||||
@GetMapping("/list")
|
||||
@ApiOperation("查询监控站设备基础信息列表")
|
||||
public TableDataInfo list(DeviceInformationMonitor deviceInformationMonitor)
|
||||
@ -53,7 +56,7 @@ public class DeviceInformationMonitorController extends BaseController
|
||||
* 导出监控站设备基础信息列表
|
||||
*/
|
||||
@ApiOperation("导出监控站设备基础信息列表")
|
||||
@PreAuthorize("@ss.hasPermi('deviceInfo:monitor:export')")
|
||||
//@PreAuthorize("@ss.hasPermi('deviceInfo:monitor:export')")
|
||||
@PostMapping("/export")
|
||||
public void export(HttpServletResponse response, DeviceInformationMonitor deviceInformationMonitor)
|
||||
{
|
||||
@ -75,7 +78,7 @@ public class DeviceInformationMonitorController extends BaseController
|
||||
/**
|
||||
* 新增监控站设备基础信息
|
||||
*/
|
||||
@PreAuthorize("@ss.hasPermi('deviceInfo:monitor:add')")
|
||||
//@PreAuthorize("@ss.hasPermi('deviceInfo:monitor:add')")
|
||||
@PostMapping
|
||||
@ApiOperation("新增监控站设备基础信息")
|
||||
public AjaxResult add(@RequestBody DeviceInformationMonitor deviceInformationMonitor)
|
||||
@ -86,7 +89,7 @@ public class DeviceInformationMonitorController extends BaseController
|
||||
/**
|
||||
* 修改监控站设备基础信息
|
||||
*/
|
||||
@PreAuthorize("@ss.hasPermi('deviceInfo:monitor:edit')")
|
||||
//@PreAuthorize("@ss.hasPermi('deviceInfo:monitor:edit')")
|
||||
@PutMapping
|
||||
@ApiOperation("修改监控站设备基础信息")
|
||||
public AjaxResult edit(@RequestBody DeviceInformationMonitor deviceInformationMonitor)
|
||||
@ -97,11 +100,13 @@ public class DeviceInformationMonitorController extends BaseController
|
||||
/**
|
||||
* 删除监控站设备基础信息
|
||||
*/
|
||||
@PreAuthorize("@ss.hasPermi('deviceInfo:monitor:remove')")
|
||||
@DeleteMapping("/{ids}")
|
||||
//@PreAuthorize("@ss.hasPermi('deviceInfo:monitor:remove')")
|
||||
@DeleteMapping("/{id}")
|
||||
@ApiOperation("删除监控站设备基础信息")
|
||||
public AjaxResult remove(@PathVariable Long[] ids)
|
||||
public AjaxResult remove(@PathVariable Long id)
|
||||
{
|
||||
return toAjax(deviceInformationMonitorService.deleteDeviceInformationMonitorByIds(ids));
|
||||
//return toAjax(deviceInformationMonitorService.deleteDeviceInformationMonitorByIds(ids));
|
||||
int flag=deviceInformationMonitorMapper.deleteDeviceInformationMonitorById(id);
|
||||
return toAjax(flag);
|
||||
}
|
||||
}
|
||||
|
@ -21,8 +21,8 @@ public class DeviceRealtimedataMeteorologyController {
|
||||
* 获取最新的一条气象数据
|
||||
*/
|
||||
@GetMapping(value = "/weather/realtimedata")
|
||||
public AjaxResult getLatestWeatherRealtimedata() {
|
||||
return AjaxResult.success(deviceRealtimedataMeteorologyService.getLatestWeatherRealtimedata());
|
||||
public AjaxResult getLatestWeatherRealtimedata(String deviceEncoding) {
|
||||
return AjaxResult.success(deviceRealtimedataMeteorologyService.getLatestWeatherRealtimedata(deviceEncoding));
|
||||
}
|
||||
|
||||
}
|
||||
|
@ -2,6 +2,7 @@ package com.fastbee.data.controller.aaScreenAgricultural.deviceRealTimeData;
|
||||
|
||||
import com.baomidou.mybatisplus.extension.conditions.query.LambdaQueryChainWrapper;
|
||||
import com.fastbee.common.core.domain.AjaxResult;
|
||||
import com.fastbee.common.holder.ProjectHolder;
|
||||
import com.fastbee.deviceData.api.yingshiyun.service.YingshiyunService;
|
||||
import com.fastbee.deviceInfo.domain.DeviceInformationMonitor;
|
||||
import com.fastbee.deviceInfo.mapper.DeviceInformationMonitorMapper;
|
||||
@ -30,14 +31,24 @@ public class DeviceRealtimedataSeedlingGrowthController {
|
||||
* 获取苗情监测监控设备列表
|
||||
*/
|
||||
@GetMapping("/monitorDeviceList")
|
||||
public AjaxResult getMonitorDeviceList() {
|
||||
public AjaxResult getMonitorDeviceList(Long projectId) {
|
||||
System.err.println("/monitorDeviceList");
|
||||
System.err.println("projectId:"+projectId);
|
||||
List<DeviceInformationMonitor> list = new LambdaQueryChainWrapper<>(monitorMapper)
|
||||
.select(DeviceInformationMonitor::getId,
|
||||
DeviceInformationMonitor::getName,
|
||||
DeviceInformationMonitor::getDeviceEncoding,
|
||||
DeviceInformationMonitor::getLatitude,
|
||||
DeviceInformationMonitor::getLongitude)
|
||||
DeviceInformationMonitor::getLongitude,
|
||||
DeviceInformationMonitor::getRemarksInformation,
|
||||
DeviceInformationMonitor::getProjectId)
|
||||
.eq(DeviceInformationMonitor::getProjectId,projectId)
|
||||
//.eq(DeviceInformationMonitor::getDeviceEncoding,deviceEncoding)
|
||||
.list();
|
||||
for(int i=0;i<list.size();i++)
|
||||
{
|
||||
System.err.println("{"+list.get(i).getDeviceEncoding()+":"+list.get(i).getProjectId()+"}");
|
||||
}
|
||||
//获取监控播放地址
|
||||
list.forEach(this::setPlayUrl);
|
||||
return AjaxResult.success(list);
|
||||
@ -57,5 +68,23 @@ public class DeviceRealtimedataSeedlingGrowthController {
|
||||
Object accessToken = videoPlayMap.get("accessToken");
|
||||
monitor.setAccessToken(accessToken.toString());
|
||||
}
|
||||
if(videoPlayMap.containsKey("status")){
|
||||
Object status=videoPlayMap.get("status");//设备在线状态,0=离线,1=在线
|
||||
Object statusDesc=videoPlayMap.get("statusDesc");//设备在线状态描述
|
||||
monitor.setStatusDesc(statusDesc.toString());
|
||||
monitor.setStatus((Long) status);
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* 更新设备状态测试接口
|
||||
* @return
|
||||
* @throws Exception
|
||||
*/
|
||||
@GetMapping("/status")
|
||||
public AjaxResult getMonitorDeviceRealtimeStatusData() throws Exception {
|
||||
return AjaxResult.success(yingshiyunService.getMonitorDeviceRealtimeStatusData());
|
||||
}
|
||||
|
||||
|
||||
}
|
@ -18,16 +18,16 @@ public class WeatherController {
|
||||
* 获取七天的天气预报
|
||||
*/
|
||||
@GetMapping("/qitian")
|
||||
public AjaxResult getWeather() {
|
||||
return AjaxResult.success(TianqiApi.QitianApi());
|
||||
public AjaxResult getWeather(Long projectId) {
|
||||
return AjaxResult.success(TianqiApi.QitianApi(projectId));
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取实时天气
|
||||
*/
|
||||
@GetMapping("/shishi")
|
||||
public AjaxResult getWeatherShiShi() {
|
||||
return AjaxResult.success(TianqiApi.weatherNow());
|
||||
public AjaxResult getWeatherShiShi(Long projectId) {
|
||||
return AjaxResult.success(TianqiApi.weatherNow(projectId));
|
||||
}
|
||||
|
||||
}
|
||||
|
@ -0,0 +1,110 @@
|
||||
package com.fastbee.data.controller.yingshiIntegration;
|
||||
|
||||
import java.util.List;
|
||||
import javax.servlet.http.HttpServletResponse;
|
||||
|
||||
import io.swagger.annotations.Api;
|
||||
import io.swagger.annotations.ApiOperation;
|
||||
import org.springframework.security.access.prepost.PreAuthorize;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.web.bind.annotation.GetMapping;
|
||||
import org.springframework.web.bind.annotation.PostMapping;
|
||||
import org.springframework.web.bind.annotation.PutMapping;
|
||||
import org.springframework.web.bind.annotation.DeleteMapping;
|
||||
import org.springframework.web.bind.annotation.PathVariable;
|
||||
import org.springframework.web.bind.annotation.RequestBody;
|
||||
import org.springframework.web.bind.annotation.RequestMapping;
|
||||
import org.springframework.web.bind.annotation.RestController;
|
||||
import com.fastbee.common.annotation.Log;
|
||||
import com.fastbee.common.core.controller.BaseController;
|
||||
import com.fastbee.common.core.domain.AjaxResult;
|
||||
import com.fastbee.common.enums.BusinessType;
|
||||
import com.fastbee.deviceData.domain.NgYingshiCloudIntegrationInfo;
|
||||
import com.fastbee.deviceData.service.INgYingshiCloudIntegrationInfoService;
|
||||
import com.fastbee.common.utils.poi.ExcelUtil;
|
||||
import com.fastbee.common.core.page.TableDataInfo;
|
||||
|
||||
/**
|
||||
* 萤石云对接信息Controller
|
||||
*
|
||||
* @author kerwincui
|
||||
* @date 2025-01-09
|
||||
*/
|
||||
@RestController
|
||||
@RequestMapping("/deviceData/info")
|
||||
@Api(tags = "萤石云对接信息")
|
||||
public class NgYingshiCloudIntegrationInfoController extends BaseController
|
||||
{
|
||||
@Autowired
|
||||
private INgYingshiCloudIntegrationInfoService ngYingshiCloudIntegrationInfoService;
|
||||
|
||||
/**
|
||||
* 查询萤石云对接信息列表
|
||||
*/
|
||||
@PreAuthorize("@ss.hasPermi('deviceData:info:list')")
|
||||
@GetMapping("/list")
|
||||
@ApiOperation("查询萤石云对接信息列表")
|
||||
public TableDataInfo list(NgYingshiCloudIntegrationInfo ngYingshiCloudIntegrationInfo)
|
||||
{
|
||||
startPage();
|
||||
List<NgYingshiCloudIntegrationInfo> list = ngYingshiCloudIntegrationInfoService.selectNgYingshiCloudIntegrationInfoList(ngYingshiCloudIntegrationInfo);
|
||||
return getDataTable(list);
|
||||
}
|
||||
|
||||
/**
|
||||
* 导出萤石云对接信息列表
|
||||
*/
|
||||
@ApiOperation("导出萤石云对接信息列表")
|
||||
@PreAuthorize("@ss.hasPermi('deviceData:info:export')")
|
||||
@PostMapping("/export")
|
||||
public void export(HttpServletResponse response, NgYingshiCloudIntegrationInfo ngYingshiCloudIntegrationInfo)
|
||||
{
|
||||
List<NgYingshiCloudIntegrationInfo> list = ngYingshiCloudIntegrationInfoService.selectNgYingshiCloudIntegrationInfoList(ngYingshiCloudIntegrationInfo);
|
||||
ExcelUtil<NgYingshiCloudIntegrationInfo> util = new ExcelUtil<NgYingshiCloudIntegrationInfo>(NgYingshiCloudIntegrationInfo.class);
|
||||
util.exportExcel(response, list, "萤石云对接信息数据");
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取萤石云对接信息详细信息
|
||||
*/
|
||||
@PreAuthorize("@ss.hasPermi('deviceData:info:query')")
|
||||
@GetMapping(value = "/{id}")
|
||||
@ApiOperation("获取萤石云对接信息详细信息")
|
||||
public AjaxResult getInfo(@PathVariable("id") Long id)
|
||||
{
|
||||
return success(ngYingshiCloudIntegrationInfoService.selectNgYingshiCloudIntegrationInfoById(id));
|
||||
}
|
||||
|
||||
/**
|
||||
* 新增萤石云对接信息
|
||||
*/
|
||||
@PreAuthorize("@ss.hasPermi('deviceData:info:add')")
|
||||
@PostMapping
|
||||
@ApiOperation("新增萤石云对接信息")
|
||||
public AjaxResult add(@RequestBody NgYingshiCloudIntegrationInfo ngYingshiCloudIntegrationInfo)
|
||||
{
|
||||
return toAjax(ngYingshiCloudIntegrationInfoService.insertNgYingshiCloudIntegrationInfo(ngYingshiCloudIntegrationInfo));
|
||||
}
|
||||
|
||||
/**
|
||||
* 修改萤石云对接信息
|
||||
*/
|
||||
@PreAuthorize("@ss.hasPermi('deviceData:info:edit')")
|
||||
@PutMapping
|
||||
@ApiOperation("修改萤石云对接信息")
|
||||
public AjaxResult edit(@RequestBody NgYingshiCloudIntegrationInfo ngYingshiCloudIntegrationInfo)
|
||||
{
|
||||
return toAjax(ngYingshiCloudIntegrationInfoService.updateNgYingshiCloudIntegrationInfo(ngYingshiCloudIntegrationInfo));
|
||||
}
|
||||
|
||||
/**
|
||||
* 删除萤石云对接信息
|
||||
*/
|
||||
@PreAuthorize("@ss.hasPermi('deviceData:info:remove')")
|
||||
@DeleteMapping("/{ids}")
|
||||
@ApiOperation("删除萤石云对接信息")
|
||||
public AjaxResult remove(@PathVariable Long[] ids)
|
||||
{
|
||||
return toAjax(ngYingshiCloudIntegrationInfoService.deleteNgYingshiCloudIntegrationInfoByIds(ids));
|
||||
}
|
||||
}
|
@ -15,11 +15,19 @@ public class TianqiApi {
|
||||
/**
|
||||
* 获取未来天气预测
|
||||
*/
|
||||
public static JSONObject QitianApi() {
|
||||
public static JSONObject QitianApi(Long projectId) {
|
||||
String location="";
|
||||
if(projectId==35){//黑龙江项目
|
||||
location="YBMUBR41ZWVC";
|
||||
|
||||
}else if(projectId==39){//开鲁
|
||||
location="WXY201PUQV5D";
|
||||
}
|
||||
// System.out.println(location);
|
||||
String url = UrlConstant.QitianApi + "?key=" +
|
||||
UrlConstant.PrivateKey +
|
||||
"&location=YBMUBR41ZWVC&language=zh-Hans&unit=c";//指定URL
|
||||
"&location="+location+"&language=zh-Hans&unit=c";//指定URL
|
||||
// System.out.println(url);
|
||||
HttpResponse execute = HttpUtil.createGet(url).execute();
|
||||
if (execute.getStatus() == HttpStatus.HTTP_OK) {
|
||||
JSONObject jsonObject = new JSONObject(execute.body());
|
||||
@ -33,10 +41,19 @@ public class TianqiApi {
|
||||
/**
|
||||
* 获取天气实况
|
||||
*/
|
||||
public static JSONObject weatherNow() {
|
||||
public static JSONObject weatherNow(Long projectId) {
|
||||
String location="";
|
||||
if(projectId==35){//黑龙江项目
|
||||
location="YBMUBR41ZWVC";
|
||||
|
||||
}else if(projectId==39){//开鲁项目
|
||||
location="WXY201PUQV5D";
|
||||
}
|
||||
// System.out.println(location);
|
||||
String url = UrlConstant.ShishiApi + "?key=" +
|
||||
UrlConstant.PrivateKey +
|
||||
"&location=YBMUBR41ZWVC&language=zh-Hans&unit=c";//指定URL
|
||||
"&location="+location+"&language=zh-Hans&unit=c";//指定URL
|
||||
// System.out.println(url);
|
||||
HttpResponse execute = HttpUtil.createGet(url).execute();
|
||||
if (execute.getStatus() == HttpStatus.HTTP_OK) {
|
||||
JSONObject jsonObject = new JSONObject(execute.body());
|
||||
@ -71,7 +88,15 @@ public class TianqiApi {
|
||||
return null;
|
||||
}
|
||||
|
||||
public static void main(String[] args) {
|
||||
TianqiApi.weatherNow();
|
||||
public static void main(String[] args)
|
||||
{
|
||||
TianqiApi.weatherNow(39L);
|
||||
/*String url="https://api.seniverse.com/v3/location/search.json?key="+UrlConstant.PrivateKey
|
||||
+"&q="+"开鲁";
|
||||
HttpResponse execute = HttpUtil.createGet(url).execute();
|
||||
if (execute.getStatus() == HttpStatus.HTTP_OK) {
|
||||
JSONObject jsonObject = new JSONObject(execute.body());
|
||||
System.out.println("jsonObject = " + jsonObject);
|
||||
}*/
|
||||
}
|
||||
}
|
||||
|
@ -4,8 +4,17 @@ import cn.hutool.core.util.StrUtil;
|
||||
import cn.hutool.http.HttpRequest;
|
||||
import cn.hutool.http.HttpResponse;
|
||||
|
||||
import cn.hutool.json.JSONArray;
|
||||
import cn.hutool.json.JSONObject;
|
||||
import cn.hutool.json.JSONUtil;
|
||||
import com.baomidou.mybatisplus.extension.conditions.query.LambdaQueryChainWrapper;
|
||||
import com.baomidou.mybatisplus.extension.conditions.update.LambdaUpdateChainWrapper;
|
||||
import com.fastbee.common.holder.ProjectHolder;
|
||||
import com.fastbee.deviceData.domain.NgYingshiCloudIntegrationInfo;
|
||||
import com.fastbee.deviceData.mapper.NgYingshiCloudIntegrationInfoMapper;
|
||||
import com.fastbee.deviceInfo.domain.DeviceInformationMonitor;
|
||||
import com.fastbee.deviceInfo.mapper.DeviceInformationMonitorMapper;
|
||||
import com.fastbee.deviceInfo.service.IDeviceInformationMonitorService;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.data.redis.core.StringRedisTemplate;
|
||||
import org.springframework.stereotype.Service;
|
||||
@ -13,8 +22,10 @@ import org.springframework.stereotype.Service;
|
||||
import java.text.SimpleDateFormat;
|
||||
import java.util.Date;
|
||||
import java.util.HashMap;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
import java.util.concurrent.TimeUnit;
|
||||
import java.util.stream.Collectors;
|
||||
|
||||
|
||||
@Service
|
||||
@ -22,16 +33,101 @@ public class YingshiyunService {
|
||||
|
||||
@Autowired
|
||||
private StringRedisTemplate stringRedisTemplate;
|
||||
@Autowired
|
||||
private DeviceInformationMonitorMapper deviceInformationMonitorMapper;
|
||||
@Autowired
|
||||
private NgYingshiCloudIntegrationInfoMapper ngYingshiCloudIntegrationInfoMapper;
|
||||
@Autowired
|
||||
private DeviceInformationMonitorMapper monitorMapper;
|
||||
@Autowired
|
||||
private NgYingshiCloudIntegrationInfoMapper yingshiCloudIntegrationInfoMapper;
|
||||
@Autowired
|
||||
private IDeviceInformationMonitorService deviceInformationMonitorService;
|
||||
|
||||
/**
|
||||
* 获取监控设备实时状态并更新
|
||||
*/
|
||||
public String getMonitorDeviceRealtimeStatusData() throws Exception{
|
||||
try{
|
||||
//获取所有监控设备编码列表
|
||||
List<DeviceInformationMonitor> monitorList=new LambdaQueryChainWrapper<>(monitorMapper)
|
||||
.select(DeviceInformationMonitor::getDeviceEncoding,DeviceInformationMonitor::getStatus,DeviceInformationMonitor::getId,DeviceInformationMonitor::getProjectId)
|
||||
.list();
|
||||
System.err.println("monitorLIST:"+monitorList);
|
||||
//获取所有萤石云对接信息列表
|
||||
List<NgYingshiCloudIntegrationInfo> integrationInfoList=new LambdaQueryChainWrapper<>(yingshiCloudIntegrationInfoMapper)
|
||||
.select(NgYingshiCloudIntegrationInfo::getAppkey,NgYingshiCloudIntegrationInfo::getAppsecret,NgYingshiCloudIntegrationInfo::getProjectid)
|
||||
.list();
|
||||
System.err.println("integrationInfoList:"+integrationInfoList);
|
||||
//根据projectId进行分组
|
||||
Map<Long, List<DeviceInformationMonitor>> collect = monitorList.stream().collect(Collectors.groupingBy(DeviceInformationMonitor::getProjectId));
|
||||
System.err.println("collect:"+collect);
|
||||
if(integrationInfoList.size()==0)
|
||||
{
|
||||
System.err.println("设备信息不存在");
|
||||
}
|
||||
//k为projectId,v为projectId下的设备列表
|
||||
collect.forEach((k,v)->{
|
||||
System.err.println("k:"+k);
|
||||
System.err.println("v:"+v);
|
||||
//获取萤石云对接信息
|
||||
List<NgYingshiCloudIntegrationInfo> list = new LambdaQueryChainWrapper<>(yingshiCloudIntegrationInfoMapper)
|
||||
.select(NgYingshiCloudIntegrationInfo::getAppkey, NgYingshiCloudIntegrationInfo::getAppsecret)
|
||||
.eq(NgYingshiCloudIntegrationInfo::getProjectid, k)
|
||||
.list();
|
||||
NgYingshiCloudIntegrationInfo yingshiCloudIntegrationInfo;
|
||||
if(!list.isEmpty())
|
||||
{
|
||||
yingshiCloudIntegrationInfo=list.get(0);
|
||||
//获取accessToken
|
||||
String accessToken=getAuth(yingshiCloudIntegrationInfo.getAppkey(),yingshiCloudIntegrationInfo.getAppsecret());
|
||||
//获取设备信息列表
|
||||
int page=0;
|
||||
JSONObject deviceInfoList = getInfoList(accessToken);
|
||||
JSONArray data= deviceInfoList.getJSONArray("data");
|
||||
System.err.println("data:"+data);
|
||||
data.forEach(d->{
|
||||
|
||||
JSONObject object = JSONUtil.parseObj(d.toString());
|
||||
String deviceSerial=object.getStr("deviceSerial");//设备编码
|
||||
Long status=object.getLong("status");//设备状态
|
||||
for(DeviceInformationMonitor device:v)
|
||||
{
|
||||
if(device.getDeviceEncoding().equals(deviceSerial))
|
||||
{
|
||||
device.setStatus(status);//设置status,0=离线,1=在线
|
||||
break;
|
||||
}
|
||||
}
|
||||
});
|
||||
}
|
||||
//批量更新设备状态数据
|
||||
boolean flag=deviceInformationMonitorService.updateBatchById(v);
|
||||
if(!flag)
|
||||
{
|
||||
System.err.println("监控设备状态更新失败");
|
||||
}
|
||||
});
|
||||
}catch (Exception e){
|
||||
System.err.println("获取监控设备实时状态失败"+e.getMessage());
|
||||
}
|
||||
return "";
|
||||
}
|
||||
|
||||
//获取鉴权
|
||||
public String getAuth(){
|
||||
if(Boolean.TRUE.equals(stringRedisTemplate.hasKey("yingshiyun:user:accessToken"))){
|
||||
public String getAuth(String appKey,String appSecret){
|
||||
/*if(Boolean.TRUE.equals(stringRedisTemplate.hasKey("yingshiyun:user:accessToken"))){
|
||||
System.err.println(stringRedisTemplate.opsForValue().get("yingshiyun:user:accessToken"));
|
||||
return stringRedisTemplate.opsForValue().get("yingshiyun:user:accessToken");
|
||||
}*/
|
||||
if(Boolean.TRUE.equals(stringRedisTemplate.hasKey("yingshiyun:user"+appKey+":"+appSecret+":accessToken"))){
|
||||
System.err.println(stringRedisTemplate.opsForValue().get("yingshiyun:user"+appKey+":"+appSecret+":accessToken"));
|
||||
return stringRedisTemplate.opsForValue().get("yingshiyun:user"+appKey+":"+appSecret+":accessToken");
|
||||
}
|
||||
// 鉴权请求
|
||||
String AUTH_URL = "https://open.ys7.com/api/lapp/token/get";
|
||||
String appKey = "b21f910dc7044d668e7625a3c0392e62";
|
||||
String appSecret = "b4beff5f8f6694dd6993c8c5b618417b";
|
||||
/*String appKey = "b21f910dc7044d668e7625a3c0392e62";
|
||||
String appSecret = "b4beff5f8f6694dd6993c8c5b618417b";*/
|
||||
// 构建请求体参数
|
||||
String body = StrUtil.format("appKey={}&appSecret={}", appKey, appSecret);
|
||||
HttpResponse response = HttpRequest.post(AUTH_URL)
|
||||
@ -45,21 +141,84 @@ public class YingshiyunService {
|
||||
JSONObject data = JSONUtil.parseObj(jsonObject.get("data"));
|
||||
String accessToken = data.get("accessToken").toString();
|
||||
|
||||
stringRedisTemplate.opsForValue().set("yingshiyun:user:accessToken",accessToken, 60*60*24*6, TimeUnit.MILLISECONDS);
|
||||
//stringRedisTemplate.opsForValue().set("yingshiyun:user:accessToken",accessToken, 60*60*24*6, TimeUnit.MILLISECONDS);
|
||||
stringRedisTemplate.opsForValue().set("yingshiyun:user"+appKey+":"+appSecret+":accessToken",accessToken, 60*60*24*6, TimeUnit.MILLISECONDS);
|
||||
return accessToken;
|
||||
}
|
||||
|
||||
//获取视频播放地址
|
||||
public Map<String,Object> getVideoPlayUrl(String deviceSerial){
|
||||
String accessToken = getAuth();
|
||||
// System.err.println(accessToken);
|
||||
/**
|
||||
* 根据设备编码查找项目id,根据项目id查找萤石云对接账号信息
|
||||
*/
|
||||
System.err.println("deviceSerial:"+deviceSerial);
|
||||
Map<String,Object> map = new HashMap<>();
|
||||
List<DeviceInformationMonitor> monitorList=new LambdaQueryChainWrapper<>(deviceInformationMonitorMapper)
|
||||
.select(DeviceInformationMonitor::getProjectId)
|
||||
.eq(DeviceInformationMonitor::getDeviceEncoding,deviceSerial)
|
||||
.list();
|
||||
if(monitorList.size()==0)
|
||||
{
|
||||
System.err.println("设备信息未找到");
|
||||
return map;
|
||||
}
|
||||
Long projectId=monitorList.get(0).getProjectId();
|
||||
/*String projectId=ProjectHolder.getProjectInfo().getProjectId();
|
||||
System.err.println("projectId:"+projectId);*/
|
||||
List<NgYingshiCloudIntegrationInfo> infoList=new LambdaQueryChainWrapper<>(ngYingshiCloudIntegrationInfoMapper)
|
||||
.select(NgYingshiCloudIntegrationInfo::getAppkey,NgYingshiCloudIntegrationInfo::getAppsecret)
|
||||
.eq(NgYingshiCloudIntegrationInfo::getProjectid,projectId)
|
||||
.list();
|
||||
if(infoList.size()==0)
|
||||
{
|
||||
System.err.println("萤石云信息不存在");
|
||||
return map;
|
||||
}
|
||||
String accessToken = getAuth(infoList.get(0).getAppkey(),infoList.get(0).getAppsecret());
|
||||
System.err.println(accessToken);
|
||||
|
||||
|
||||
/**
|
||||
* 获取单个设备信息,包括设备在线状态和设备是否加密
|
||||
*/
|
||||
Map<String,Object> info=getInfo(accessToken,deviceSerial);
|
||||
Long status= (Long) info.get("status"); //设备状态。0=离线;1=在线
|
||||
String statusDesc= info.get("statusDesc").toString();//设备状态描述
|
||||
|
||||
int isEncrypt= (int) info.get("isEncrypt");//设备是否加密,1=加密
|
||||
//在数据库中更新设备状态为当前状态
|
||||
new LambdaUpdateChainWrapper<>(deviceInformationMonitorMapper)
|
||||
.set(DeviceInformationMonitor::getStatus,status)
|
||||
.eq(DeviceInformationMonitor::getDeviceEncoding,deviceSerial)
|
||||
.update();
|
||||
System.err.println("更新数据库状态为"+status);
|
||||
if(status==0)
|
||||
{
|
||||
map.put("status",status);
|
||||
map.put("statusDesc","离线");
|
||||
return map;
|
||||
}
|
||||
if(isEncrypt==1)
|
||||
{
|
||||
//解密
|
||||
int decryptFlag=decrypt(accessToken,deviceSerial);//设备解密,1=解密成功
|
||||
if(decryptFlag!=1)
|
||||
{
|
||||
return map;
|
||||
}
|
||||
}
|
||||
/**
|
||||
* 获取设备播放地址
|
||||
*/
|
||||
String VIDEO_PLAY_URL = "https://open.ys7.com/api/lapp/v2/live/address/get";
|
||||
|
||||
String body = StrUtil.format("accessToken={}&deviceSerial={}&protocol={}",accessToken ,deviceSerial,"2");
|
||||
|
||||
HttpResponse response = HttpRequest.post(VIDEO_PLAY_URL)
|
||||
.body(body).execute();
|
||||
JSONObject jsonObject = JSONUtil.parseObj(response.body());
|
||||
Map<String,Object> map = new HashMap<>();
|
||||
System.err.println("jsonObject:"+jsonObject);
|
||||
|
||||
if(!jsonObject.get("code").toString().equals("200")){
|
||||
return map;
|
||||
}
|
||||
@ -71,10 +230,84 @@ public class YingshiyunService {
|
||||
|
||||
map.put("playUrl",playUrl);
|
||||
map.put("accessToken",accessToken);
|
||||
map.put("status",status);//设备在线状态-0=离线,1=在线
|
||||
map.put("statusDesc",statusDesc);//状态描述
|
||||
System.err.println("playUrl:"+playUrl);
|
||||
System.err.println("accessToken:"+accessToken);
|
||||
System.err.println("status:"+status);
|
||||
System.err.println("statusDesc:"+statusDesc);
|
||||
|
||||
|
||||
return map;
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取单个设备信息,包括在线状态和是否加密
|
||||
* @param accessToken
|
||||
* @param deviceSerial
|
||||
* @return
|
||||
*/
|
||||
public Map<String,Object> getInfo(String accessToken,String deviceSerial)
|
||||
{
|
||||
Map<String,Object> map = new HashMap<>();//结果
|
||||
String INFO_URL="https://open.ys7.com/api/lapp/device/info";//获取单个设备信息接口地址
|
||||
String infoBody=StrUtil.format("accessToken={}&deviceSerial={}",accessToken,deviceSerial);
|
||||
HttpResponse infoResponse=HttpRequest.post(INFO_URL)
|
||||
.body(infoBody).execute();
|
||||
if(!JSONUtil.parseObj(infoResponse.body()).get("code").toString().equals("200"))
|
||||
{
|
||||
return map;
|
||||
}
|
||||
JSONObject infoData=JSONUtil.parseObj(infoResponse.body()).getJSONObject("data");
|
||||
Long status=infoData.getLong("status");//获取设备在线状态
|
||||
String statusDesc= status==0 ? "离线" : "在线";//如果status是0则是离线,否则是在线
|
||||
int isEncrypt=infoData.getInt("isEncrypt");//设备是否加密,0-不加密,1-加密
|
||||
map.put("status",status);
|
||||
map.put("statusDesc",statusDesc);
|
||||
map.put("isEncrypt",isEncrypt);
|
||||
return map;
|
||||
}
|
||||
|
||||
/**
|
||||
* 设备解密
|
||||
* @param accessToken
|
||||
* @param deviceSerial
|
||||
* @return
|
||||
*/
|
||||
public int decrypt(String accessToken,String deviceSerial)
|
||||
{
|
||||
//设备解密,1=成功
|
||||
String VIDEO_DECODE_URL = "https://open.ys7.com/api/lapp/device/encrypt/off";
|
||||
String decodeBody=StrUtil.format("accessToken={}&deviceSerial={}",accessToken ,deviceSerial);
|
||||
HttpResponse decodeResponse=HttpRequest.post(VIDEO_DECODE_URL).body(decodeBody).execute();
|
||||
JSONObject decodeJsonObject=JSONUtil.parseObj(decodeResponse.body());
|
||||
System.err.println("decodeJsonObject:"+decodeJsonObject);
|
||||
if(!decodeJsonObject.get("code").toString().equals("200"))
|
||||
{
|
||||
return 0;
|
||||
}
|
||||
return 1;
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取设备信息列表,包括在线状态和是否加密
|
||||
* @param accessToken
|
||||
* @return
|
||||
*/
|
||||
public JSONObject getInfoList(String accessToken)
|
||||
{
|
||||
String INFO_URL="https://open.ys7.com/api/lapp/device/list";//获取单个设备信息接口地址
|
||||
String infoBody=StrUtil.format("accessToken={}",accessToken);
|
||||
HttpResponse infoResponse=HttpRequest.post(INFO_URL)
|
||||
.body(infoBody).execute();
|
||||
if(!JSONUtil.parseObj(infoResponse.body()).get("code").toString().equals("200"))
|
||||
{
|
||||
return null;
|
||||
}
|
||||
JSONObject response=JSONUtil.parseObj(infoResponse.body());
|
||||
|
||||
return response;
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
@ -0,0 +1,65 @@
|
||||
package com.fastbee.deviceData.domain;
|
||||
|
||||
import com.baomidou.mybatisplus.annotation.TableName;
|
||||
import io.swagger.annotations.ApiModel;
|
||||
import io.swagger.annotations.ApiModelProperty;
|
||||
import lombok.Data;
|
||||
import lombok.EqualsAndHashCode;
|
||||
import org.apache.commons.lang3.builder.ToStringBuilder;
|
||||
import org.apache.commons.lang3.builder.ToStringStyle;
|
||||
import com.fastbee.common.annotation.Excel;
|
||||
import com.fastbee.common.core.domain.BaseEntity;
|
||||
|
||||
/**
|
||||
* 萤石云对接信息对象 ng_yingshi_cloud_integration_info
|
||||
*
|
||||
* @author kerwincui
|
||||
* @date 2025-01-09
|
||||
*/
|
||||
@ApiModel(value = "NgYingshiCloudIntegrationInfo",description = "萤石云对接信息 ng_yingshi_cloud_integration_info")
|
||||
@Data
|
||||
@EqualsAndHashCode(callSuper = true)
|
||||
@TableName("ng_yingshi_cloud_integration_info")
|
||||
public class NgYingshiCloudIntegrationInfo extends BaseEntity
|
||||
{
|
||||
private static final long serialVersionUID = 1L;
|
||||
|
||||
/** 主键ID */
|
||||
private Long id;
|
||||
|
||||
/** 机构id */
|
||||
@Excel(name = "机构id")
|
||||
@ApiModelProperty("机构id")
|
||||
private Long deptid;
|
||||
|
||||
/** 项目id */
|
||||
@Excel(name = "项目id")
|
||||
@ApiModelProperty("项目id")
|
||||
private Long projectid;
|
||||
|
||||
/** 用户id */
|
||||
@Excel(name = "用户id")
|
||||
@ApiModelProperty("用户id")
|
||||
private Long userid;
|
||||
|
||||
/** 获取token所需appkey */
|
||||
@Excel(name = "获取token所需appkey")
|
||||
@ApiModelProperty("获取token所需appkey")
|
||||
private String appkey;
|
||||
|
||||
/** 获取token所需appSecret */
|
||||
@Excel(name = "获取token所需appSecret")
|
||||
@ApiModelProperty("获取token所需appSecret")
|
||||
private String appsecret;
|
||||
|
||||
/** 萤石云登陆账号 */
|
||||
@Excel(name = "萤石云登陆账号")
|
||||
@ApiModelProperty("萤石云登陆账号")
|
||||
private String yingshiAccount;
|
||||
|
||||
/** 萤石云登陆密码 */
|
||||
@Excel(name = "萤石云登陆密码")
|
||||
@ApiModelProperty("萤石云登陆密码")
|
||||
private String yingshiPwd;
|
||||
|
||||
}
|
@ -0,0 +1,65 @@
|
||||
package com.fastbee.deviceData.mapper;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
|
||||
import com.fastbee.deviceData.domain.NgYingshiCloudIntegrationInfo;
|
||||
import org.apache.ibatis.annotations.Mapper;
|
||||
|
||||
/**
|
||||
* 萤石云对接信息Mapper接口
|
||||
*
|
||||
* @author kerwincui
|
||||
* @date 2025-01-09
|
||||
*/
|
||||
@Mapper
|
||||
public interface NgYingshiCloudIntegrationInfoMapper extends BaseMapper<NgYingshiCloudIntegrationInfo>
|
||||
{
|
||||
/**
|
||||
* 查询萤石云对接信息
|
||||
*
|
||||
* @param id 萤石云对接信息主键
|
||||
* @return 萤石云对接信息
|
||||
*/
|
||||
public NgYingshiCloudIntegrationInfo selectNgYingshiCloudIntegrationInfoById(Long id);
|
||||
|
||||
/**
|
||||
* 查询萤石云对接信息列表
|
||||
*
|
||||
* @param ngYingshiCloudIntegrationInfo 萤石云对接信息
|
||||
* @return 萤石云对接信息集合
|
||||
*/
|
||||
public List<NgYingshiCloudIntegrationInfo> selectNgYingshiCloudIntegrationInfoList(NgYingshiCloudIntegrationInfo ngYingshiCloudIntegrationInfo);
|
||||
|
||||
/**
|
||||
* 新增萤石云对接信息
|
||||
*
|
||||
* @param ngYingshiCloudIntegrationInfo 萤石云对接信息
|
||||
* @return 结果
|
||||
*/
|
||||
public int insertNgYingshiCloudIntegrationInfo(NgYingshiCloudIntegrationInfo ngYingshiCloudIntegrationInfo);
|
||||
|
||||
/**
|
||||
* 修改萤石云对接信息
|
||||
*
|
||||
* @param ngYingshiCloudIntegrationInfo 萤石云对接信息
|
||||
* @return 结果
|
||||
*/
|
||||
public int updateNgYingshiCloudIntegrationInfo(NgYingshiCloudIntegrationInfo ngYingshiCloudIntegrationInfo);
|
||||
|
||||
/**
|
||||
* 删除萤石云对接信息
|
||||
*
|
||||
* @param id 萤石云对接信息主键
|
||||
* @return 结果
|
||||
*/
|
||||
public int deleteNgYingshiCloudIntegrationInfoById(Long id);
|
||||
|
||||
/**
|
||||
* 批量删除萤石云对接信息
|
||||
*
|
||||
* @param ids 需要删除的数据主键集合
|
||||
* @return 结果
|
||||
*/
|
||||
public int deleteNgYingshiCloudIntegrationInfoByIds(Long[] ids);
|
||||
}
|
@ -68,5 +68,5 @@ public interface IDeviceRealtimedataMeteorologyService extends IService<DeviceRe
|
||||
* 获取最新的一条气象数据
|
||||
* @return
|
||||
*/
|
||||
public Map<String,Object> getLatestWeatherRealtimedata();
|
||||
public Map<String,Object> getLatestWeatherRealtimedata(String deviceEncoding);
|
||||
}
|
||||
|
@ -0,0 +1,61 @@
|
||||
package com.fastbee.deviceData.service;
|
||||
|
||||
import java.util.List;
|
||||
import com.fastbee.deviceData.domain.NgYingshiCloudIntegrationInfo;
|
||||
|
||||
/**
|
||||
* 萤石云对接信息Service接口
|
||||
*
|
||||
* @author kerwincui
|
||||
* @date 2025-01-09
|
||||
*/
|
||||
public interface INgYingshiCloudIntegrationInfoService
|
||||
{
|
||||
/**
|
||||
* 查询萤石云对接信息
|
||||
*
|
||||
* @param id 萤石云对接信息主键
|
||||
* @return 萤石云对接信息
|
||||
*/
|
||||
public NgYingshiCloudIntegrationInfo selectNgYingshiCloudIntegrationInfoById(Long id);
|
||||
|
||||
/**
|
||||
* 查询萤石云对接信息列表
|
||||
*
|
||||
* @param ngYingshiCloudIntegrationInfo 萤石云对接信息
|
||||
* @return 萤石云对接信息集合
|
||||
*/
|
||||
public List<NgYingshiCloudIntegrationInfo> selectNgYingshiCloudIntegrationInfoList(NgYingshiCloudIntegrationInfo ngYingshiCloudIntegrationInfo);
|
||||
|
||||
/**
|
||||
* 新增萤石云对接信息
|
||||
*
|
||||
* @param ngYingshiCloudIntegrationInfo 萤石云对接信息
|
||||
* @return 结果
|
||||
*/
|
||||
public int insertNgYingshiCloudIntegrationInfo(NgYingshiCloudIntegrationInfo ngYingshiCloudIntegrationInfo);
|
||||
|
||||
/**
|
||||
* 修改萤石云对接信息
|
||||
*
|
||||
* @param ngYingshiCloudIntegrationInfo 萤石云对接信息
|
||||
* @return 结果
|
||||
*/
|
||||
public int updateNgYingshiCloudIntegrationInfo(NgYingshiCloudIntegrationInfo ngYingshiCloudIntegrationInfo);
|
||||
|
||||
/**
|
||||
* 批量删除萤石云对接信息
|
||||
*
|
||||
* @param ids 需要删除的萤石云对接信息主键集合
|
||||
* @return 结果
|
||||
*/
|
||||
public int deleteNgYingshiCloudIntegrationInfoByIds(Long[] ids);
|
||||
|
||||
/**
|
||||
* 删除萤石云对接信息信息
|
||||
*
|
||||
* @param id 萤石云对接信息主键
|
||||
* @return 结果
|
||||
*/
|
||||
public int deleteNgYingshiCloudIntegrationInfoById(Long id);
|
||||
}
|
@ -107,31 +107,69 @@ public class DeviceRealtimedataMeteorologyServiceImpl extends ServiceImpl<Device
|
||||
* @return
|
||||
*/
|
||||
@Override
|
||||
public Map<String,Object> getLatestWeatherRealtimedata(){
|
||||
public Map<String,Object> getLatestWeatherRealtimedata(String deviceEncoding){
|
||||
Map<String,Object> rest= new HashMap<>();
|
||||
QueryWrapper queryWrapper = new QueryWrapper();
|
||||
queryWrapper.orderByDesc("real_time");
|
||||
queryWrapper.eq("device_id",deviceEncoding);
|
||||
queryWrapper.last("limit 1");
|
||||
DeviceRealtimedataMeteorology meteorology = deviceRealtimedataMeteorologyMapper.selectOne(queryWrapper);
|
||||
System.err.println(meteorology.getDeviceId()+"最新一条气象数据,时间:"+meteorology.getRealTime());
|
||||
|
||||
List<DeviceProperties> devicePropertiesList = new ArrayList<>();
|
||||
rest.put("props",devicePropertiesList);
|
||||
if(Objects.isNull(meteorology)){
|
||||
return rest;
|
||||
}
|
||||
devicePropertiesList.add(DeviceProperties.builder().name("空气温度").value(meteorology.getAirTemp().toString()).unit("°C").build());
|
||||
devicePropertiesList.add(DeviceProperties.builder().name("空气湿度").value(meteorology.getAirHumi().toString()).unit("%").build());
|
||||
if(meteorology.getAirTemp()!=null)
|
||||
{
|
||||
devicePropertiesList.add(DeviceProperties.builder().name("空气温度").value(meteorology.getAirTemp().toString()).unit("°C").build());
|
||||
}
|
||||
if(meteorology.getAirHumi()!=null)
|
||||
{
|
||||
devicePropertiesList.add(DeviceProperties.builder().name("空气湿度").value(meteorology.getAirHumi().toString()).unit("%").build());
|
||||
}
|
||||
devicePropertiesList.add(DeviceProperties.builder().name("风速").value(meteorology.getWindSpeed().toString()).unit("m/s").build());
|
||||
devicePropertiesList.add(DeviceProperties.builder().name("风向").value(windDirMap(meteorology.getWindDir())).unit("风").build());
|
||||
devicePropertiesList.add(DeviceProperties.builder().name("大气压力").value(meteorology.getAirPre().toString()).unit("hPa").build());
|
||||
devicePropertiesList.add(DeviceProperties.builder().name("光照度").value(meteorology.getGuangzhao().toString()).unit("lx").build());
|
||||
devicePropertiesList.add(DeviceProperties.builder().name("光合有效辐射").value(meteorology.getFushe().toString()).unit("Lux").build());
|
||||
devicePropertiesList.add(DeviceProperties.builder().name("累积雨量").value(meteorology.getSumRain().toString()).unit("mm").build());
|
||||
devicePropertiesList.add(DeviceProperties.builder().name("瞬时雨量").value(meteorology.getInsRain().toString()).unit("mm").build());
|
||||
devicePropertiesList.add(DeviceProperties.builder().name("日雨量").value(meteorology.getDayRain().toString()).unit("mm").build());
|
||||
devicePropertiesList.add(DeviceProperties.builder().name("蒸发量").value(meteorology.getZhengfa().toString()).unit("t/h").build());
|
||||
devicePropertiesList.add(DeviceProperties.builder().name("土壤温度").value(meteorology.getSoilTemp().toString()).unit("°C").build());
|
||||
devicePropertiesList.add(DeviceProperties.builder().name("土壤湿度").value(meteorology.getSoilHumi().toString()).unit("%").build());
|
||||
if(meteorology.getWindDir()!=null)
|
||||
{
|
||||
devicePropertiesList.add(DeviceProperties.builder().name("风向").value(windDirMap(meteorology.getWindDir())).unit("风").build());
|
||||
}
|
||||
if(meteorology.getAirPre()!=null)
|
||||
{
|
||||
devicePropertiesList.add(DeviceProperties.builder().name("大气压力").value(meteorology.getAirPre().toString()).unit("hPa").build());
|
||||
}
|
||||
if(meteorology.getGuangzhao()!=null)
|
||||
{
|
||||
devicePropertiesList.add(DeviceProperties.builder().name("光照度").value(meteorology.getGuangzhao().toString()).unit("lx").build());
|
||||
}
|
||||
if(meteorology.getFushe()!=null)
|
||||
{
|
||||
devicePropertiesList.add(DeviceProperties.builder().name("光合有效辐射").value(meteorology.getFushe().toString()).unit("Lux").build());
|
||||
}
|
||||
if(meteorology.getSumRain()!=null)
|
||||
{
|
||||
devicePropertiesList.add(DeviceProperties.builder().name("累积雨量").value(meteorology.getSumRain().toString()).unit("mm").build());
|
||||
}
|
||||
if(meteorology.getInsRain()!=null)
|
||||
{
|
||||
devicePropertiesList.add(DeviceProperties.builder().name("瞬时雨量").value(meteorology.getInsRain().toString()).unit("mm").build());
|
||||
}
|
||||
if(meteorology.getDayRain()!=null)
|
||||
{
|
||||
devicePropertiesList.add(DeviceProperties.builder().name("日雨量").value(meteorology.getDayRain().toString()).unit("mm").build());
|
||||
}
|
||||
if(meteorology.getZhengfa()!=null)
|
||||
{
|
||||
devicePropertiesList.add(DeviceProperties.builder().name("蒸发量").value(meteorology.getZhengfa().toString()).unit("t/h").build());
|
||||
}
|
||||
if(meteorology.getSoilTemp()!=null)
|
||||
{
|
||||
devicePropertiesList.add(DeviceProperties.builder().name("土壤温度").value(meteorology.getSoilTemp().toString()).unit("°C").build());
|
||||
}
|
||||
if(meteorology.getSoilHumi()!=null)
|
||||
{
|
||||
devicePropertiesList.add(DeviceProperties.builder().name("土壤湿度").value(meteorology.getSoilHumi().toString()).unit("%").build());
|
||||
}
|
||||
|
||||
Map<String,Object> info=new HashMap<>();
|
||||
info.put("deviceEncoding", meteorology.getDeviceId());
|
||||
|
@ -0,0 +1,96 @@
|
||||
package com.fastbee.deviceData.service.impl;
|
||||
|
||||
import java.util.List;
|
||||
import com.fastbee.common.utils.DateUtils;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.stereotype.Service;
|
||||
import com.fastbee.deviceData.mapper.NgYingshiCloudIntegrationInfoMapper;
|
||||
import com.fastbee.deviceData.domain.NgYingshiCloudIntegrationInfo;
|
||||
import com.fastbee.deviceData.service.INgYingshiCloudIntegrationInfoService;
|
||||
|
||||
/**
|
||||
* 萤石云对接信息Service业务层处理
|
||||
*
|
||||
* @author kerwincui
|
||||
* @date 2025-01-09
|
||||
*/
|
||||
@Service
|
||||
public class NgYingshiCloudIntegrationInfoServiceImpl implements INgYingshiCloudIntegrationInfoService
|
||||
{
|
||||
@Autowired
|
||||
private NgYingshiCloudIntegrationInfoMapper ngYingshiCloudIntegrationInfoMapper;
|
||||
|
||||
/**
|
||||
* 查询萤石云对接信息
|
||||
*
|
||||
* @param id 萤石云对接信息主键
|
||||
* @return 萤石云对接信息
|
||||
*/
|
||||
@Override
|
||||
public NgYingshiCloudIntegrationInfo selectNgYingshiCloudIntegrationInfoById(Long id)
|
||||
{
|
||||
return ngYingshiCloudIntegrationInfoMapper.selectNgYingshiCloudIntegrationInfoById(id);
|
||||
}
|
||||
|
||||
/**
|
||||
* 查询萤石云对接信息列表
|
||||
*
|
||||
* @param ngYingshiCloudIntegrationInfo 萤石云对接信息
|
||||
* @return 萤石云对接信息
|
||||
*/
|
||||
@Override
|
||||
public List<NgYingshiCloudIntegrationInfo> selectNgYingshiCloudIntegrationInfoList(NgYingshiCloudIntegrationInfo ngYingshiCloudIntegrationInfo)
|
||||
{
|
||||
return ngYingshiCloudIntegrationInfoMapper.selectNgYingshiCloudIntegrationInfoList(ngYingshiCloudIntegrationInfo);
|
||||
}
|
||||
|
||||
/**
|
||||
* 新增萤石云对接信息
|
||||
*
|
||||
* @param ngYingshiCloudIntegrationInfo 萤石云对接信息
|
||||
* @return 结果
|
||||
*/
|
||||
@Override
|
||||
public int insertNgYingshiCloudIntegrationInfo(NgYingshiCloudIntegrationInfo ngYingshiCloudIntegrationInfo)
|
||||
{
|
||||
ngYingshiCloudIntegrationInfo.setCreateTime(DateUtils.getNowDate());
|
||||
return ngYingshiCloudIntegrationInfoMapper.insertNgYingshiCloudIntegrationInfo(ngYingshiCloudIntegrationInfo);
|
||||
}
|
||||
|
||||
/**
|
||||
* 修改萤石云对接信息
|
||||
*
|
||||
* @param ngYingshiCloudIntegrationInfo 萤石云对接信息
|
||||
* @return 结果
|
||||
*/
|
||||
@Override
|
||||
public int updateNgYingshiCloudIntegrationInfo(NgYingshiCloudIntegrationInfo ngYingshiCloudIntegrationInfo)
|
||||
{
|
||||
ngYingshiCloudIntegrationInfo.setUpdateTime(DateUtils.getNowDate());
|
||||
return ngYingshiCloudIntegrationInfoMapper.updateNgYingshiCloudIntegrationInfo(ngYingshiCloudIntegrationInfo);
|
||||
}
|
||||
|
||||
/**
|
||||
* 批量删除萤石云对接信息
|
||||
*
|
||||
* @param ids 需要删除的萤石云对接信息主键
|
||||
* @return 结果
|
||||
*/
|
||||
@Override
|
||||
public int deleteNgYingshiCloudIntegrationInfoByIds(Long[] ids)
|
||||
{
|
||||
return ngYingshiCloudIntegrationInfoMapper.deleteNgYingshiCloudIntegrationInfoByIds(ids);
|
||||
}
|
||||
|
||||
/**
|
||||
* 删除萤石云对接信息信息
|
||||
*
|
||||
* @param id 萤石云对接信息主键
|
||||
* @return 结果
|
||||
*/
|
||||
@Override
|
||||
public int deleteNgYingshiCloudIntegrationInfoById(Long id)
|
||||
{
|
||||
return ngYingshiCloudIntegrationInfoMapper.deleteNgYingshiCloudIntegrationInfoById(id);
|
||||
}
|
||||
}
|
@ -93,4 +93,9 @@ private static final long serialVersionUID = 1L;
|
||||
@ApiModelProperty("状态1在线,0离线")
|
||||
private Long status;
|
||||
|
||||
/** projectId */
|
||||
@Excel(name = "projectId")
|
||||
@ApiModelProperty("projectId")
|
||||
private Long projectId;
|
||||
|
||||
}
|
||||
|
@ -89,4 +89,9 @@ private static final long serialVersionUID = 1L;
|
||||
/** 删除标志(0代表存在,2代表删除) */
|
||||
private Integer delFlag;
|
||||
|
||||
/** 项目id */
|
||||
@Excel(name = "项目id")
|
||||
@ApiModelProperty("项目id")
|
||||
private Long projectId;
|
||||
|
||||
}
|
||||
|
@ -99,4 +99,9 @@ private static final long serialVersionUID = 1L;
|
||||
@ApiModelProperty("状态1在线,0离线")
|
||||
private Long status;
|
||||
|
||||
/** 项目id */
|
||||
@Excel(name = "项目id")
|
||||
@ApiModelProperty("项目id")
|
||||
private Long projectId;
|
||||
|
||||
}
|
||||
|
@ -2,6 +2,7 @@ package com.fastbee.deviceInfo.domain;
|
||||
|
||||
import java.util.Date;
|
||||
|
||||
import com.baomidou.mybatisplus.annotation.TableField;
|
||||
import com.baomidou.mybatisplus.annotation.TableName;
|
||||
import com.fasterxml.jackson.annotation.JsonFormat;
|
||||
import io.swagger.annotations.ApiModel;
|
||||
@ -126,4 +127,15 @@ public class DeviceInformationMonitor extends BaseEntity
|
||||
@ApiModelProperty("accessToken")
|
||||
private String accessToken;
|
||||
|
||||
|
||||
/** projectId */
|
||||
@Excel(name = "projectId")
|
||||
@ApiModelProperty("projectId")
|
||||
private Long projectId;
|
||||
|
||||
/**设备状态描述,离线/在线 */
|
||||
@TableField(exist=false)
|
||||
private String statusDesc;
|
||||
|
||||
|
||||
}
|
||||
|
@ -90,4 +90,9 @@ private static final long serialVersionUID = 1L;
|
||||
@ApiModelProperty("状态1在线,0离线")
|
||||
private Long status;
|
||||
|
||||
/** 项目id */
|
||||
@Excel(name = "项目id")
|
||||
@ApiModelProperty("项目id")
|
||||
private Long projectId;
|
||||
|
||||
}
|
||||
|
@ -88,4 +88,9 @@ private static final long serialVersionUID = 1L;
|
||||
@ApiModelProperty("状态1在线,0离线")
|
||||
private Long status;
|
||||
|
||||
/** 项目id */
|
||||
@Excel(name = "项目id")
|
||||
@ApiModelProperty("项目id")
|
||||
private Long projectId;
|
||||
|
||||
}
|
||||
|
@ -1,13 +1,13 @@
|
||||
package com.fastbee.deviceInfo.manager;
|
||||
|
||||
import com.fastbee.deviceData.domain.DeviceRealtimedataPhotovoltaic;
|
||||
import com.fastbee.deviceData.domain.dto.DeviceProperties;
|
||||
import com.fastbee.deviceInfo.domain.*;
|
||||
import com.fastbee.deviceInfo.mapper.*;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.stereotype.Service;
|
||||
|
||||
import java.util.HashMap;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
import java.util.*;
|
||||
|
||||
@Service
|
||||
public class DeviceInformationManager {
|
||||
@ -34,22 +34,63 @@ public class DeviceInformationManager {
|
||||
/**
|
||||
* 获取所有设备
|
||||
*/
|
||||
public Map<String,Object> getAllDeviceCount() {
|
||||
List<DeviceInformationMeteorology> meteorologieList = meteorologyMapper.selectDeviceInformationMeteorologyList(null);
|
||||
List<DeviceInformationMiaoqing> miaoqingList = miaoqingMapper.selectDeviceInformationMiaoqingList(null);
|
||||
List<DeviceInformationMoisture> moistureList= moistureMapper.selectDeviceInformationMoistureList(null);
|
||||
List<DeviceInformationMonitor> monitorList = monitorMapper.selectDeviceInformationMonitorList(null);
|
||||
List<DeviceInformationTargetpests> targetpestList= targetpestsMapper.selectDeviceInformationTargetpestsList(null);
|
||||
List<DeviceInformationWorms> wormList = wormsMapper.selectDeviceInformationWormsList(null);
|
||||
public Map<String,Object> getAllDeviceCount(Long projectId) {
|
||||
System.err.println("projectId:"+projectId);
|
||||
DeviceInformationMeteorology informationMeteorology=new DeviceInformationMeteorology();
|
||||
informationMeteorology.setProjectId(projectId);
|
||||
DeviceInformationMiaoqing informationMiaoqing=new DeviceInformationMiaoqing();
|
||||
informationMiaoqing.setProjectId(projectId);
|
||||
DeviceInformationMoisture informationMoisture=new DeviceInformationMoisture();
|
||||
informationMoisture.setProjectId(projectId);
|
||||
DeviceInformationMonitor informationMonitor=new DeviceInformationMonitor();
|
||||
informationMonitor.setProjectId(projectId);
|
||||
DeviceInformationTargetpests informationTargetpests=new DeviceInformationTargetpests();
|
||||
informationTargetpests.setProjectId(projectId);
|
||||
DeviceInformationWorms informationWorms=new DeviceInformationWorms();
|
||||
informationWorms.setProjectId(projectId);
|
||||
List<DeviceInformationMeteorology> meteorologieList = meteorologyMapper.selectDeviceInformationMeteorologyList(informationMeteorology);
|
||||
List<DeviceInformationMiaoqing> miaoqingList = miaoqingMapper.selectDeviceInformationMiaoqingList(informationMiaoqing);
|
||||
List<DeviceInformationMoisture> moistureList= moistureMapper.selectDeviceInformationMoistureList(informationMoisture);
|
||||
List<DeviceInformationMonitor> monitorList = monitorMapper.selectDeviceInformationMonitorList(informationMonitor);
|
||||
List<DeviceInformationTargetpests> targetpestList= targetpestsMapper.selectDeviceInformationTargetpestsList(informationTargetpests);
|
||||
List<DeviceInformationWorms> wormList = wormsMapper.selectDeviceInformationWormsList(informationWorms);
|
||||
|
||||
Map<String,Object> resp =new HashMap<>();
|
||||
resp.put("meteorologieTotal",meteorologieList.size());
|
||||
/*resp.put("meteorologieTotal",meteorologieList.size());
|
||||
resp.put("miaoqingTotal",miaoqingList.size());
|
||||
resp.put("moistureTotal",moistureList.size());
|
||||
resp.put("monitorTotal",monitorList.size());
|
||||
resp.put("targetpestTotal",targetpestList.size());
|
||||
resp.put("wormTotal",wormList.size());
|
||||
resp.put("photovoltaicTotal",miaoqingList.size());
|
||||
resp.put("photovoltaicTotal",miaoqingList.size());*/
|
||||
|
||||
List<DeviceProperties> devicePropertiesList = new ArrayList<>();
|
||||
if(meteorologieList.size()!=0)
|
||||
{
|
||||
devicePropertiesList.add(DeviceProperties.builder().name("meteorologieTotal").value(String.valueOf(meteorologieList.size())).unit("气象设备").build());
|
||||
}
|
||||
if(miaoqingList.size()!=0)
|
||||
{
|
||||
devicePropertiesList.add(DeviceProperties.builder().name("miaoqingTotal").value(String.valueOf(miaoqingList.size())).unit("苗情设备").build());
|
||||
}
|
||||
if(moistureList.size()!=0)
|
||||
{
|
||||
devicePropertiesList.add(DeviceProperties.builder().name("moistureTotal").value(String.valueOf(moistureList.size())).unit("墒情设备").build());
|
||||
}
|
||||
if(targetpestList.size()!=0)
|
||||
{
|
||||
devicePropertiesList.add(DeviceProperties.builder().name("targetpestTotal").value(String.valueOf(targetpestList.size())).unit("靶标害虫设备").build());
|
||||
}
|
||||
if(wormList.size()!=0)
|
||||
{
|
||||
devicePropertiesList.add(DeviceProperties.builder().name("wormTotal").value(String.valueOf(wormList.size())).unit("虫情设备").build());
|
||||
devicePropertiesList.add(DeviceProperties.builder().name("photovoltaicTotal").value(String.valueOf(wormList.size())).unit("光伏设备").build());
|
||||
}
|
||||
if(monitorList.size()!=0)
|
||||
{
|
||||
devicePropertiesList.add(DeviceProperties.builder().name("monitorTotal").value(String.valueOf(monitorList.size())).unit("监控设备").build());
|
||||
}
|
||||
resp.put("props",devicePropertiesList);
|
||||
return resp;
|
||||
}
|
||||
|
||||
|
@ -1,7 +1,11 @@
|
||||
package com.fastbee.deviceInfo.service;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
import com.baomidou.mybatisplus.extension.service.IService;
|
||||
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
||||
import com.fastbee.deviceInfo.domain.DeviceInformationMonitor;
|
||||
import com.fastbee.deviceInfo.mapper.DeviceInformationMonitorMapper;
|
||||
|
||||
/**
|
||||
* 监控站设备基础信息Service接口
|
||||
@ -9,12 +13,11 @@ import com.fastbee.deviceInfo.domain.DeviceInformationMonitor;
|
||||
* @author kerwincui
|
||||
* @date 2024-11-18
|
||||
*/
|
||||
public interface IDeviceInformationMonitorService
|
||||
public interface IDeviceInformationMonitorService extends IService<DeviceInformationMonitor>
|
||||
{
|
||||
/**
|
||||
* 查询监控站设备基础信息
|
||||
*
|
||||
* @param id 监控站设备基础信息主键
|
||||
* @return 监控站设备基础信息
|
||||
*/
|
||||
public DeviceInformationMonitor selectDeviceInformationMonitorById(String deviceEncoding);
|
||||
|
@ -1,6 +1,8 @@
|
||||
package com.fastbee.deviceInfo.service.impl;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
||||
import com.fastbee.common.utils.DateUtils;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.stereotype.Service;
|
||||
@ -15,7 +17,7 @@ import com.fastbee.deviceInfo.service.IDeviceInformationMonitorService;
|
||||
* @date 2024-11-18
|
||||
*/
|
||||
@Service
|
||||
public class DeviceInformationMonitorServiceImpl implements IDeviceInformationMonitorService
|
||||
public class DeviceInformationMonitorServiceImpl extends ServiceImpl<DeviceInformationMonitorMapper,DeviceInformationMonitor> implements IDeviceInformationMonitorService
|
||||
{
|
||||
@Autowired
|
||||
private DeviceInformationMonitorMapper deviceInformationMonitorMapper;
|
||||
@ -23,7 +25,6 @@ public class DeviceInformationMonitorServiceImpl implements IDeviceInformationMo
|
||||
/**
|
||||
* 查询监控站设备基础信息
|
||||
*
|
||||
* @param id 监控站设备基础信息主键
|
||||
* @return 监控站设备基础信息
|
||||
*/
|
||||
@Override
|
||||
|
@ -22,10 +22,12 @@
|
||||
<result property="createBy" column="create_by" />
|
||||
<result property="updateTime" column="update_time" />
|
||||
<result property="updateBy" column="update_by" />
|
||||
<result property="projectId" column="project_id" />
|
||||
<result property="status" column="status" />
|
||||
</resultMap>
|
||||
|
||||
<sql id="selectDeviceInformationMeteorologyVo">
|
||||
select id, name, device_brand, device_type, device_encoding, type, longitude, latitude, installation_location, name_project, construction_year, docking_method, del_flag, create_time, create_by, update_time, update_by from iot_device_information_meteorology
|
||||
select id, name, device_brand, device_type, device_encoding, type, longitude, latitude, installation_location, name_project, construction_year, docking_method, del_flag, create_time, create_by, update_time, update_by,project_id,status from iot_device_information_meteorology
|
||||
</sql>
|
||||
|
||||
<select id="selectDeviceInformationMeteorologyList" parameterType="DeviceInformationMeteorology" resultMap="DeviceInformationMeteorologyResult">
|
||||
@ -42,6 +44,8 @@
|
||||
<if test="nameProject != null and nameProject != ''"> and name_project = #{nameProject}</if>
|
||||
<if test="constructionYear != null "> and construction_year = #{constructionYear}</if>
|
||||
<if test="dockingMethod != null and dockingMethod != ''"> and docking_method = #{dockingMethod}</if>
|
||||
<if test="projectId != null and projectId != ''"> and project_id = #{projectId}</if>
|
||||
<if test="status != null and status != ''"> and status = #{status}</if>
|
||||
</where>
|
||||
</select>
|
||||
|
||||
@ -69,6 +73,8 @@
|
||||
<if test="createBy != null">create_by,</if>
|
||||
<if test="updateTime != null">update_time,</if>
|
||||
<if test="updateBy != null">update_by,</if>
|
||||
<if test="projectId != null">project_id,</if>
|
||||
<if test="status != null">status,</if>
|
||||
</trim>
|
||||
<trim prefix="values (" suffix=")" suffixOverrides=",">
|
||||
<if test="name != null">#{name},</if>
|
||||
@ -87,6 +93,8 @@
|
||||
<if test="createBy != null">#{createBy},</if>
|
||||
<if test="updateTime != null">#{updateTime},</if>
|
||||
<if test="updateBy != null">#{updateBy},</if>
|
||||
<if test="projectId != null">#{projectId},</if>
|
||||
<if test="status != null">#{status},</if>
|
||||
</trim>
|
||||
</insert>
|
||||
|
||||
@ -109,6 +117,8 @@
|
||||
<if test="createBy != null">create_by = #{createBy},</if>
|
||||
<if test="updateTime != null">update_time = #{updateTime},</if>
|
||||
<if test="updateBy != null">update_by = #{updateBy},</if>
|
||||
<if test="projectId != null">project_id = #{projectId},</if>
|
||||
<if test="status != null">status = #{status},</if>
|
||||
</trim>
|
||||
where id = #{id}
|
||||
</update>
|
||||
|
@ -22,10 +22,11 @@
|
||||
<result property="createBy" column="create_by" />
|
||||
<result property="updateTime" column="update_time" />
|
||||
<result property="updateBy" column="update_by" />
|
||||
<result property="projectId" column="project_id" />
|
||||
</resultMap>
|
||||
|
||||
<sql id="selectDeviceInformationMiaoqingVo">
|
||||
select id, name, device_brand, device_type, device_encoding, type, longitude, latitude, installation_location, name_project, construction_year, docking_method, del_flag, create_time, create_by, update_time, update_by from iot_device_information_miaoQing
|
||||
select id, name, device_brand, device_type, device_encoding, type, longitude, latitude, installation_location, name_project, construction_year, docking_method, del_flag, create_time, create_by, update_time, update_by,project_id from iot_device_information_miaoQing
|
||||
</sql>
|
||||
|
||||
<select id="selectDeviceInformationMiaoqingList" parameterType="DeviceInformationMiaoqing" resultMap="DeviceInformationMiaoqingResult">
|
||||
@ -42,6 +43,7 @@
|
||||
<if test="nameProject != null and nameProject != ''"> and name_project = #{nameProject}</if>
|
||||
<if test="constructionYear != null "> and construction_year = #{constructionYear}</if>
|
||||
<if test="dockingMethod != null and dockingMethod != ''"> and docking_method = #{dockingMethod}</if>
|
||||
<if test="projectId != null and projectId != ''"> and project_id = #{projectId}</if>
|
||||
</where>
|
||||
</select>
|
||||
|
||||
@ -69,6 +71,7 @@
|
||||
<if test="createBy != null">create_by,</if>
|
||||
<if test="updateTime != null">update_time,</if>
|
||||
<if test="updateBy != null">update_by,</if>
|
||||
<if test="projectId != null">project_id,</if>
|
||||
</trim>
|
||||
<trim prefix="values (" suffix=")" suffixOverrides=",">
|
||||
<if test="name != null">#{name},</if>
|
||||
@ -87,6 +90,7 @@
|
||||
<if test="createBy != null">#{createBy},</if>
|
||||
<if test="updateTime != null">#{updateTime},</if>
|
||||
<if test="updateBy != null">#{updateBy},</if>
|
||||
<if test="projectId != null">#{projectId},</if>
|
||||
</trim>
|
||||
</insert>
|
||||
|
||||
@ -109,6 +113,7 @@
|
||||
<if test="createBy != null">create_by = #{createBy},</if>
|
||||
<if test="updateTime != null">update_time = #{updateTime},</if>
|
||||
<if test="updateBy != null">update_by = #{updateBy},</if>
|
||||
<if test="projectId != null">project_id = #{projectId},</if>
|
||||
</trim>
|
||||
where id = #{id}
|
||||
</update>
|
||||
|
@ -23,10 +23,11 @@
|
||||
<result property="createBy" column="create_by" />
|
||||
<result property="updateTime" column="update_time" />
|
||||
<result property="updateBy" column="update_by" />
|
||||
<result property="projectId" column="project_id" />
|
||||
</resultMap>
|
||||
|
||||
<sql id="selectDeviceInformationMoistureVo">
|
||||
select id, name, products_name, device_brand, device_type, device_encoding, type, longitude, latitude, installation_location, name_project, construction_year, docking_method, del_flag, create_time, create_by, update_time, update_by from iot_device_information_moisture
|
||||
select id, name, products_name, device_brand, device_type, device_encoding, type, longitude, latitude, installation_location, name_project, construction_year, docking_method, del_flag, create_time, create_by, update_time, update_by, project_id from iot_device_information_moisture
|
||||
</sql>
|
||||
|
||||
<select id="selectDeviceInformationMoistureList" parameterType="DeviceInformationMoisture" resultMap="DeviceInformationMoistureResult">
|
||||
@ -44,6 +45,7 @@
|
||||
<if test="nameProject != null and nameProject != ''"> and name_project = #{nameProject}</if>
|
||||
<if test="constructionYear != null "> and construction_year = #{constructionYear}</if>
|
||||
<if test="dockingMethod != null and dockingMethod != ''"> and docking_method = #{dockingMethod}</if>
|
||||
<if test="projectId != null and projectId != ''"> and project_id = #{projectId}</if>
|
||||
</where>
|
||||
</select>
|
||||
|
||||
@ -72,6 +74,7 @@
|
||||
<if test="createBy != null">create_by,</if>
|
||||
<if test="updateTime != null">update_time,</if>
|
||||
<if test="updateBy != null">update_by,</if>
|
||||
<if test="projectId != null">project_id,</if>
|
||||
</trim>
|
||||
<trim prefix="values (" suffix=")" suffixOverrides=",">
|
||||
<if test="name != null">#{name},</if>
|
||||
@ -91,6 +94,7 @@
|
||||
<if test="createBy != null">#{createBy},</if>
|
||||
<if test="updateTime != null">#{updateTime},</if>
|
||||
<if test="updateBy != null">#{updateBy},</if>
|
||||
<if test="projectId != null">#{projectId},</if>
|
||||
</trim>
|
||||
</insert>
|
||||
|
||||
@ -114,6 +118,7 @@
|
||||
<if test="createBy != null">create_by = #{createBy},</if>
|
||||
<if test="updateTime != null">update_time = #{updateTime},</if>
|
||||
<if test="updateBy != null">update_by = #{updateBy},</if>
|
||||
<if test="projectId != null">project_id = #{projectId},</if>
|
||||
</trim>
|
||||
where id = #{id}
|
||||
</update>
|
||||
|
@ -27,10 +27,12 @@
|
||||
<result property="updateTime" column="update_time" />
|
||||
<result property="updateBy" column="update_by" />
|
||||
<result property="playUrl" column="play_url" />
|
||||
<result property="projectId" column="project_id" />
|
||||
<result property="status" column="status" />
|
||||
</resultMap>
|
||||
|
||||
<sql id="selectDeviceInformationMonitorVo">
|
||||
select id, name, device_encoding, type, longitude, latitude, installation_location, device_brand, device_type, name_project, construction_year, affiliation_township, management_leader, management_leader_telephone, management_unit, remarks_information, del_flag, create_time, create_by, update_time, update_by, play_url from iot_device_information_monitor
|
||||
select id, name, device_encoding, type, longitude, latitude, installation_location, device_brand, device_type, name_project, construction_year, affiliation_township, management_leader, management_leader_telephone, management_unit, remarks_information, del_flag, create_time, create_by, update_time, update_by, play_url,project_id,status from iot_device_information_monitor
|
||||
</sql>
|
||||
|
||||
<select id="selectDeviceInformationMonitorList" parameterType="DeviceInformationMonitor" resultMap="DeviceInformationMonitorResult">
|
||||
@ -52,6 +54,8 @@
|
||||
<if test="managementUnit != null and managementUnit != ''"> and management_unit = #{managementUnit}</if>
|
||||
<if test="remarksInformation != null and remarksInformation != ''"> and remarks_information = #{remarksInformation}</if>
|
||||
<if test="playUrl != null and playUrl != ''"> and play_url = #{playUrl}</if>
|
||||
<if test="projectId != null and projectId != ''"> and project_id = #{projectId}</if>
|
||||
<if test="status != null and status != ''"> and status = #{status}</if>
|
||||
</where>
|
||||
</select>
|
||||
|
||||
@ -84,6 +88,8 @@
|
||||
<if test="updateTime != null">update_time,</if>
|
||||
<if test="updateBy != null">update_by,</if>
|
||||
<if test="playUrl != null">play_url,</if>
|
||||
<if test="projectId != null">project_id,</if>
|
||||
<if test="status != null">status,</if>
|
||||
</trim>
|
||||
<trim prefix="values (" suffix=")" suffixOverrides=",">
|
||||
<if test="name != null">#{name},</if>
|
||||
@ -107,6 +113,8 @@
|
||||
<if test="updateTime != null">#{updateTime},</if>
|
||||
<if test="updateBy != null">#{updateBy},</if>
|
||||
<if test="playUrl != null">#{playUrl},</if>
|
||||
<if test="projectId != null">#{projectId},</if>
|
||||
<if test="status != null">#{status},</if>
|
||||
</trim>
|
||||
</insert>
|
||||
|
||||
@ -134,6 +142,8 @@
|
||||
<if test="updateTime != null">update_time = #{updateTime},</if>
|
||||
<if test="updateBy != null">update_by = #{updateBy},</if>
|
||||
<if test="playUrl != null">play_url = #{playUrl},</if>
|
||||
<if test="projectId != null">project_id = #{projectId},</if>
|
||||
<if test="status != null">status = #{status},</if>
|
||||
</trim>
|
||||
where id = #{id}
|
||||
</update>
|
||||
|
@ -22,10 +22,11 @@
|
||||
<result property="updateTime" column="update_time" />
|
||||
<result property="updateBy" column="update_by" />
|
||||
<result property="name" column="name" />
|
||||
<result property="projectId" column="project_id" />
|
||||
</resultMap>
|
||||
|
||||
<sql id="selectDeviceInformationTargetpestsVo">
|
||||
select id, device_brand, type, device_type, power_supply, device_encoding, address_code, installation_location, longitude, latitude, docking_method, del_flag, create_time, create_by, update_time, update_by, name from iot_device_information_targetPests
|
||||
select id, device_brand, type, device_type, power_supply, device_encoding, address_code, installation_location, longitude, latitude, docking_method, del_flag, create_time, create_by, update_time, update_by, name,project_id from iot_device_information_targetPests
|
||||
</sql>
|
||||
|
||||
<select id="selectDeviceInformationTargetpestsList" parameterType="DeviceInformationTargetpests" resultMap="DeviceInformationTargetpestsResult">
|
||||
@ -42,6 +43,7 @@
|
||||
<if test="latitude != null and latitude != ''"> and latitude = #{latitude}</if>
|
||||
<if test="dockingMethod != null and dockingMethod != ''"> and docking_method = #{dockingMethod}</if>
|
||||
<if test="name != null and name != ''"> and name like concat('%', #{name}, '%')</if>
|
||||
<if test="projectId != null and projectId != ''"> and project_id = #{projectId}</if>
|
||||
</where>
|
||||
</select>
|
||||
|
||||
@ -69,6 +71,7 @@
|
||||
<if test="updateTime != null">update_time,</if>
|
||||
<if test="updateBy != null">update_by,</if>
|
||||
<if test="name != null">name,</if>
|
||||
<if test="projectId != null">project_id,</if>
|
||||
</trim>
|
||||
<trim prefix="values (" suffix=")" suffixOverrides=",">
|
||||
<if test="deviceBrand != null">#{deviceBrand},</if>
|
||||
@ -87,6 +90,7 @@
|
||||
<if test="updateTime != null">#{updateTime},</if>
|
||||
<if test="updateBy != null">#{updateBy},</if>
|
||||
<if test="name != null">#{name},</if>
|
||||
<if test="projectId != null">#{projectId},</if>
|
||||
</trim>
|
||||
</insert>
|
||||
|
||||
@ -109,6 +113,7 @@
|
||||
<if test="updateTime != null">update_time = #{updateTime},</if>
|
||||
<if test="updateBy != null">update_by = #{updateBy},</if>
|
||||
<if test="name != null">name = #{name},</if>
|
||||
<if test="projectId != null">project_id = #{projectId},</if>
|
||||
</trim>
|
||||
where id = #{id}
|
||||
</update>
|
||||
|
@ -21,6 +21,7 @@
|
||||
<result property="createBy" column="create_by" />
|
||||
<result property="updateTime" column="update_time" />
|
||||
<result property="updateBy" column="update_by" />
|
||||
<result property="projectId" column="project_id" />
|
||||
</resultMap>
|
||||
|
||||
<sql id="selectDeviceInformationWormsVo">
|
||||
@ -40,6 +41,7 @@
|
||||
<if test="nameProject != null and nameProject != ''"> and name_project = #{nameProject}</if>
|
||||
<if test="constructionYear != null "> and construction_year = #{constructionYear}</if>
|
||||
<if test="dockingMethod != null and dockingMethod != ''"> and docking_method = #{dockingMethod}</if>
|
||||
<if test="projectId != null and projectId != ''"> and project_id = #{projectId}</if>
|
||||
</where>
|
||||
</select>
|
||||
|
||||
@ -66,6 +68,7 @@
|
||||
<if test="createBy != null">create_by,</if>
|
||||
<if test="updateTime != null">update_time,</if>
|
||||
<if test="updateBy != null">update_by,</if>
|
||||
<if test="projectId != null">project_id,</if>
|
||||
</trim>
|
||||
<trim prefix="values (" suffix=")" suffixOverrides=",">
|
||||
<if test="name != null">#{name},</if>
|
||||
@ -83,6 +86,7 @@
|
||||
<if test="createBy != null">#{createBy},</if>
|
||||
<if test="updateTime != null">#{updateTime},</if>
|
||||
<if test="updateBy != null">#{updateBy},</if>
|
||||
<if test="projectId != null">#{projectId},</if>
|
||||
</trim>
|
||||
</insert>
|
||||
|
||||
@ -104,6 +108,7 @@
|
||||
<if test="createBy != null">create_by = #{createBy},</if>
|
||||
<if test="updateTime != null">update_time = #{updateTime},</if>
|
||||
<if test="updateBy != null">update_by = #{updateBy},</if>
|
||||
<if test="projectId != null">project_id = #{projectId},</if>
|
||||
</trim>
|
||||
where id = #{id}
|
||||
</update>
|
||||
|
@ -1,5 +1,8 @@
|
||||
package com.fastbee.iot.timer;
|
||||
|
||||
import cn.hutool.json.JSONArray;
|
||||
import cn.hutool.json.JSONObject;
|
||||
import cn.hutool.json.JSONUtil;
|
||||
import com.baomidou.mybatisplus.extension.conditions.query.LambdaQueryChainWrapper;
|
||||
import com.baomidou.mybatisplus.extension.conditions.update.LambdaUpdateChainWrapper;
|
||||
import com.fastbee.deviceData.api.devlink.service.ZhanLianMetDataService;
|
||||
@ -8,6 +11,7 @@ import com.fastbee.deviceData.api.devlink.service.ZhanLianMoistureDataService;
|
||||
import com.fastbee.deviceData.api.devlink.service.ZhanLianPhotovoltaicDataService;
|
||||
import com.fastbee.deviceData.api.renke.service.RenkeTargetpestsDeviceDataService;
|
||||
import com.fastbee.deviceData.api.renke.service.RenkeWormDeviceDataService;
|
||||
import com.fastbee.deviceData.api.yingshiyun.service.YingshiyunService;
|
||||
import com.fastbee.deviceData.domain.*;
|
||||
|
||||
import com.fastbee.deviceData.mapper.*;
|
||||
@ -15,14 +19,13 @@ import com.fastbee.deviceData.service.IDeviceRealtimedataWormsService;
|
||||
import com.fastbee.deviceData.service.impl.DeviceRealtimedataMeteorologyServiceImpl;
|
||||
import com.fastbee.deviceData.service.impl.DeviceRealtimedataMoistureServiceImpl;
|
||||
import com.fastbee.deviceData.service.impl.DeviceRealtimedataWormsServiceImpl;
|
||||
import com.fastbee.deviceInfo.domain.DeviceInformationMeteorology;
|
||||
import com.fastbee.deviceInfo.domain.DeviceInformationMoisture;
|
||||
import com.fastbee.deviceInfo.domain.DeviceInformationTargetpests;
|
||||
import com.fastbee.deviceInfo.domain.DeviceInformationWorms;
|
||||
import com.fastbee.deviceInfo.domain.*;
|
||||
import com.fastbee.deviceInfo.mapper.*;
|
||||
import com.fastbee.deviceInfo.service.IDeviceInformationMonitorService;
|
||||
import com.fastbee.iot.mapper.DeviceMapper;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.data.redis.connection.stream.Consumer;
|
||||
import org.springframework.data.redis.core.StringRedisTemplate;
|
||||
import org.springframework.stereotype.Component;
|
||||
|
||||
@ -98,6 +101,15 @@ public class DeviceDateTask {
|
||||
@Autowired
|
||||
private DeviceInformationTargetpestsMapper targetpestsMapper;
|
||||
|
||||
@Autowired
|
||||
private YingshiyunService yingshiyunService;
|
||||
|
||||
@Autowired
|
||||
private NgYingshiCloudIntegrationInfoMapper yingshiCloudIntegrationInfoMapper;
|
||||
|
||||
@Autowired
|
||||
private IDeviceInformationMonitorService deviceInformationMonitorService;
|
||||
|
||||
|
||||
|
||||
|
||||
@ -252,5 +264,80 @@ public class DeviceDateTask {
|
||||
System.out.println("插入数据失败!");
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取监控设备实时状态并更新
|
||||
*/
|
||||
public void getMonitorDeviceRealtimeStatusData() throws Exception{
|
||||
try{
|
||||
//获取所有监控设备编码列表
|
||||
List<DeviceInformationMonitor> monitorList=new LambdaQueryChainWrapper<>(monitorMapper)
|
||||
.select(DeviceInformationMonitor::getDeviceEncoding,DeviceInformationMonitor::getStatus,DeviceInformationMonitor::getId,DeviceInformationMonitor::getProjectId)
|
||||
.list();
|
||||
// log.info("monitorLIST:"+monitorList);
|
||||
//根据projectId对监控设备列表进行分组
|
||||
Map<Long, List<DeviceInformationMonitor>> collect = monitorList.stream().collect(Collectors.groupingBy(DeviceInformationMonitor::getProjectId));
|
||||
// System.err.println("collect:"+collect);
|
||||
//获取所有萤石云对接信息列表
|
||||
List<NgYingshiCloudIntegrationInfo> integrationInfoList=new LambdaQueryChainWrapper<>(yingshiCloudIntegrationInfoMapper)
|
||||
.select(NgYingshiCloudIntegrationInfo::getAppkey,NgYingshiCloudIntegrationInfo::getAppsecret,NgYingshiCloudIntegrationInfo::getProjectid)
|
||||
.list();
|
||||
// System.err.println("integrationInfoList:"+integrationInfoList);
|
||||
|
||||
if(integrationInfoList.size()==0)
|
||||
{
|
||||
// System.err.println("设备信息不存在");
|
||||
log.warn("设备信息不存在");
|
||||
}
|
||||
//k为projectId,v为projectId下的设备列表
|
||||
collect.forEach((k,v)->{
|
||||
/*log.info("k:"+k);
|
||||
log.info("v:"+v);*/
|
||||
//获取萤石云对接信息
|
||||
List<NgYingshiCloudIntegrationInfo> list = new LambdaQueryChainWrapper<>(yingshiCloudIntegrationInfoMapper)
|
||||
.select(NgYingshiCloudIntegrationInfo::getAppkey, NgYingshiCloudIntegrationInfo::getAppsecret)
|
||||
.eq(NgYingshiCloudIntegrationInfo::getProjectid, k)
|
||||
.list();
|
||||
NgYingshiCloudIntegrationInfo yingshiCloudIntegrationInfo;
|
||||
if(!list.isEmpty())
|
||||
{
|
||||
yingshiCloudIntegrationInfo=list.get(0);
|
||||
//获取accessToken
|
||||
String accessToken=yingshiyunService.getAuth(yingshiCloudIntegrationInfo.getAppkey(),yingshiCloudIntegrationInfo.getAppsecret());
|
||||
//获取设备信息列表
|
||||
JSONObject deviceInfoList = yingshiyunService.getInfoList(accessToken);
|
||||
log.info(k+"的监控设备json:"+deviceInfoList);
|
||||
if(deviceInfoList.isEmpty())
|
||||
{
|
||||
log.warn(k+"的监控设备json为空");
|
||||
}
|
||||
JSONArray data= deviceInfoList.getJSONArray("data");
|
||||
log.info(k+"的监控设备信息:"+data);
|
||||
data.forEach(d->{
|
||||
JSONObject object = JSONUtil.parseObj(d.toString());
|
||||
String deviceSerial=object.getStr("deviceSerial");//设备编码
|
||||
Long status=object.getLong("status");//设备状态
|
||||
for(DeviceInformationMonitor device:v)
|
||||
{
|
||||
if(device.getDeviceEncoding().equals(deviceSerial))
|
||||
{
|
||||
device.setStatus(status);//设置status,0=离线,1=在线
|
||||
break;
|
||||
}
|
||||
}
|
||||
});
|
||||
}
|
||||
//批量更新设备状态数据
|
||||
boolean flag=deviceInformationMonitorService.updateBatchById(v);
|
||||
if(!flag)
|
||||
{
|
||||
log.warn("监控设备状态更新失败");
|
||||
}
|
||||
});
|
||||
}catch (Exception e){
|
||||
log.warn("获取监控设备实时状态失败",e);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
||||
|
Reference in New Issue
Block a user