Feign服务、启动类调整、边代内网数据
This commit is contained in:
parent
4518292c02
commit
6c0bada008
|
|
@ -0,0 +1,51 @@
|
||||||
|
package com.bonus.common.biz.api;
|
||||||
|
|
||||||
|
import com.bonus.common.biz.factory.RemoteDataFallbackFactory;
|
||||||
|
import com.bonus.common.core.constant.SecurityConstants;
|
||||||
|
import com.bonus.common.core.constant.ServiceNameConstants;
|
||||||
|
import com.bonus.common.core.domain.R;
|
||||||
|
import com.bonus.common.core.web.domain.AjaxResult;
|
||||||
|
import org.springframework.cloud.openfeign.FeignClient;
|
||||||
|
import org.springframework.validation.annotation.Validated;
|
||||||
|
import org.springframework.web.bind.annotation.*;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 数据处理服务-api
|
||||||
|
*
|
||||||
|
* @author syruan
|
||||||
|
*/
|
||||||
|
@FeignClient(contextId = "remoteDataService", value = "bonus-data", fallbackFactory = RemoteDataFallbackFactory.class)
|
||||||
|
public interface RemoteDataService {
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 设备数据上传-api
|
||||||
|
*
|
||||||
|
* @param obj 设备数据
|
||||||
|
* @param source 请求来源
|
||||||
|
* @return 结果
|
||||||
|
*/
|
||||||
|
@PostMapping("/data/uploadDevStatus")
|
||||||
|
R<Boolean> uploadDevStatus(@RequestBody String obj, @RequestHeader(SecurityConstants.FROM_SOURCE) String source);
|
||||||
|
|
||||||
|
@PostMapping("/data/uploadCgqData")
|
||||||
|
R<Boolean> uploadCgqData(@RequestBody String obj, @RequestHeader(SecurityConstants.FROM_SOURCE) String source);
|
||||||
|
|
||||||
|
@PostMapping("/data/uploadCjData")
|
||||||
|
R<Boolean> uploadCjData(@RequestBody String obj, @RequestHeader(SecurityConstants.FROM_SOURCE) String source);
|
||||||
|
|
||||||
|
@PostMapping("/data/uploadLlCgqData")
|
||||||
|
R<Boolean> uploadLlCgqData(@RequestBody String obj, @RequestHeader(SecurityConstants.FROM_SOURCE) String source);
|
||||||
|
|
||||||
|
@PostMapping("/data/uploadSafetyHatData")
|
||||||
|
R<Boolean> uploadSafetyHatData(@RequestBody String obj, @RequestHeader(SecurityConstants.FROM_SOURCE) String source);
|
||||||
|
|
||||||
|
@PostMapping("/data/uploadSwHjData")
|
||||||
|
R<Boolean> uploadSwHjData(@RequestBody String obj, @RequestHeader(SecurityConstants.FROM_SOURCE) String source);
|
||||||
|
|
||||||
|
@PostMapping("/data/uploadYxkjData")
|
||||||
|
R<Boolean> uploadYxkjData(@RequestBody String obj, @RequestHeader(SecurityConstants.FROM_SOURCE) String source);
|
||||||
|
|
||||||
|
@PostMapping("/data/uploadZnshData")
|
||||||
|
R<Boolean> uploadZnshData(@RequestBody String obj, @RequestHeader(SecurityConstants.FROM_SOURCE) String source);
|
||||||
|
|
||||||
|
}
|
||||||
|
|
@ -0,0 +1,81 @@
|
||||||
|
package com.bonus.common.biz.factory;
|
||||||
|
|
||||||
|
import com.bonus.common.biz.api.RemoteDataService;
|
||||||
|
import com.bonus.common.core.constant.HttpStatus;
|
||||||
|
import com.bonus.common.core.domain.R;
|
||||||
|
import com.bonus.common.core.web.domain.AjaxResult;
|
||||||
|
import com.bonus.common.core.web.page.TableDataInfo;
|
||||||
|
import com.github.pagehelper.PageInfo;
|
||||||
|
import org.slf4j.Logger;
|
||||||
|
import org.slf4j.LoggerFactory;
|
||||||
|
import org.springframework.cloud.openfeign.FallbackFactory;
|
||||||
|
import org.springframework.stereotype.Component;
|
||||||
|
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @author syruan
|
||||||
|
*/
|
||||||
|
@Component
|
||||||
|
public class RemoteDataFallbackFactory implements FallbackFactory<RemoteDataService> {
|
||||||
|
private static final Logger log = LoggerFactory.getLogger(RemoteDataFallbackFactory.class);
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public RemoteDataService create(Throwable throwable) {
|
||||||
|
|
||||||
|
log.error("数据服务调用失败:{}", throwable.getMessage());
|
||||||
|
return new RemoteDataService() {
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public R<Boolean> uploadDevStatus(String obj, String source)
|
||||||
|
{
|
||||||
|
return R.fail("设备数据上传失败:" + throwable.getMessage());
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public R<Boolean> uploadCgqData(String obj, String source) {
|
||||||
|
return R.fail("数据上传失败:" + throwable.getMessage());
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public R<Boolean> uploadCjData(String obj, String source) {
|
||||||
|
return R.fail("数据上传失败:" + throwable.getMessage());
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public R<Boolean> uploadLlCgqData(String obj, String source) {
|
||||||
|
return R.fail("数据上传失败:" + throwable.getMessage());
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public R<Boolean> uploadSafetyHatData(String obj, String source) {
|
||||||
|
return R.fail("数据上传失败:" + throwable.getMessage());
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public R<Boolean> uploadSwHjData(String obj, String source) {
|
||||||
|
return R.fail("数据上传失败:" + throwable.getMessage());
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public R<Boolean> uploadYxkjData(String obj, String source) {
|
||||||
|
return R.fail("数据上传失败:" + throwable.getMessage());
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public R<Boolean> uploadZnshData(String obj, String source) {
|
||||||
|
return R.fail("数据上传失败:" + throwable.getMessage());
|
||||||
|
}
|
||||||
|
|
||||||
|
private TableDataInfo getDataTableError(List<?> list) {
|
||||||
|
TableDataInfo rspData = new TableDataInfo();
|
||||||
|
rspData.setCode(HttpStatus.ERROR);
|
||||||
|
rspData.setRows(list);
|
||||||
|
rspData.setMsg("系统错误,请联系管理员");
|
||||||
|
rspData.setTotal(new PageInfo(list).getTotal());
|
||||||
|
return rspData;
|
||||||
|
}
|
||||||
|
|
||||||
|
};
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
@ -6,6 +6,7 @@ import com.bonus.common.swagger.annotation.EnableCustomSwagger2;
|
||||||
import org.springframework.boot.SpringApplication;
|
import org.springframework.boot.SpringApplication;
|
||||||
import org.springframework.boot.autoconfigure.SpringBootApplication;
|
import org.springframework.boot.autoconfigure.SpringBootApplication;
|
||||||
import org.springframework.boot.autoconfigure.jdbc.DataSourceAutoConfiguration;
|
import org.springframework.boot.autoconfigure.jdbc.DataSourceAutoConfiguration;
|
||||||
|
import org.springframework.scheduling.annotation.EnableScheduling;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 系统模块
|
* 系统模块
|
||||||
|
|
@ -15,13 +16,12 @@ import org.springframework.boot.autoconfigure.jdbc.DataSourceAutoConfiguration;
|
||||||
@EnableCustomConfig
|
@EnableCustomConfig
|
||||||
@EnableCustomSwagger2
|
@EnableCustomSwagger2
|
||||||
@EnableRyFeignClients
|
@EnableRyFeignClients
|
||||||
@SpringBootApplication(exclude = { DataSourceAutoConfiguration.class })
|
@SpringBootApplication(scanBasePackages = {"com.bonus.common.biz", "com.bonus.base.**"}, exclude = { DataSourceAutoConfiguration.class })
|
||||||
public class BaseApplication
|
@EnableScheduling
|
||||||
{
|
public class BaseApplication {
|
||||||
public static void main(String[] args)
|
public static void main(String[] args) {
|
||||||
{
|
|
||||||
SpringApplication.run(BaseApplication.class, args);
|
SpringApplication.run(BaseApplication.class, args);
|
||||||
System.out.println("(♥◠‿◠)ノ゙ 基础模块启动成功 ლ(´ڡ`ლ)゙ \n" +
|
System.out.println("(♥◠‿◠)ノ゙ bonus-base基础模块启动成功 ლ(´ڡ`ლ)゙ \n" +
|
||||||
" .-------. ____ __ \n" +
|
" .-------. ____ __ \n" +
|
||||||
" | _ _ \\ \\ \\ / / \n" +
|
" | _ _ \\ \\ \\ / / \n" +
|
||||||
" | ( ' ) | \\ _. / ' \n" +
|
" | ( ' ) | \\ _. / ' \n" +
|
||||||
|
|
|
||||||
|
|
@ -4,6 +4,7 @@ import com.fasterxml.jackson.annotation.JsonFormat;
|
||||||
import io.swagger.annotations.ApiModel;
|
import io.swagger.annotations.ApiModel;
|
||||||
import io.swagger.annotations.ApiModelProperty;
|
import io.swagger.annotations.ApiModelProperty;
|
||||||
import lombok.Data;
|
import lombok.Data;
|
||||||
|
import lombok.experimental.Accessors;
|
||||||
|
|
||||||
import javax.validation.constraints.Size;
|
import javax.validation.constraints.Size;
|
||||||
import java.io.Serializable;
|
import java.io.Serializable;
|
||||||
|
|
@ -18,6 +19,7 @@ import java.util.Date;
|
||||||
*/
|
*/
|
||||||
@ApiModel(description="边带记录设备表")
|
@ApiModel(description="边带记录设备表")
|
||||||
@Data
|
@Data
|
||||||
|
@Accessors(chain = true) // 允许链式调用
|
||||||
public class TbBdDeviceRecord implements Serializable {
|
public class TbBdDeviceRecord implements Serializable {
|
||||||
/**
|
/**
|
||||||
* id
|
* id
|
||||||
|
|
@ -76,6 +78,12 @@ public class TbBdDeviceRecord implements Serializable {
|
||||||
@ApiModelProperty(value="工程id")
|
@ApiModelProperty(value="工程id")
|
||||||
private Long proId;
|
private Long proId;
|
||||||
|
|
||||||
|
@ApiModelProperty(value="设备状态 0离线 1在线")
|
||||||
|
private Integer devStatus;
|
||||||
|
|
||||||
|
@ApiModelProperty(value="设备状态时间")
|
||||||
|
private Date statusTime;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 审核人
|
* 审核人
|
||||||
*/
|
*/
|
||||||
|
|
|
||||||
|
|
@ -4,6 +4,7 @@ import com.fasterxml.jackson.annotation.JsonFormat;
|
||||||
import io.swagger.annotations.ApiModel;
|
import io.swagger.annotations.ApiModel;
|
||||||
import io.swagger.annotations.ApiModelProperty;
|
import io.swagger.annotations.ApiModelProperty;
|
||||||
import lombok.Data;
|
import lombok.Data;
|
||||||
|
import lombok.experimental.Accessors;
|
||||||
|
|
||||||
import javax.validation.constraints.NotBlank;
|
import javax.validation.constraints.NotBlank;
|
||||||
import javax.validation.constraints.NotNull;
|
import javax.validation.constraints.NotNull;
|
||||||
|
|
@ -16,14 +17,12 @@ import java.util.List;
|
||||||
*@PackagePath: com.bonus.base.domain
|
*@PackagePath: com.bonus.base.domain
|
||||||
*@author : 阮世耀
|
*@author : 阮世耀
|
||||||
*@CreateTime: 2024-09-11 15:46
|
*@CreateTime: 2024-09-11 15:46
|
||||||
*@Description: 描述
|
*@Description: 边带申请记录表
|
||||||
*@version : 1.0
|
*@version : 1.0
|
||||||
*/
|
*/
|
||||||
/**
|
|
||||||
* 边带申请记录表
|
|
||||||
*/
|
|
||||||
@ApiModel(description="边带申请记录表")
|
@ApiModel(description="边带申请记录表")
|
||||||
@Data
|
@Data
|
||||||
|
@Accessors(chain = true) // 允许链式调用
|
||||||
public class TbBdRecord implements Serializable {
|
public class TbBdRecord implements Serializable {
|
||||||
/**
|
/**
|
||||||
* 主键
|
* 主键
|
||||||
|
|
|
||||||
|
|
@ -20,6 +20,8 @@ public interface TbBdDeviceRecordMapper {
|
||||||
|
|
||||||
int insert(TbBdDeviceRecord record);
|
int insert(TbBdDeviceRecord record);
|
||||||
|
|
||||||
|
int replaceInto(TbBdDeviceRecord record);
|
||||||
|
|
||||||
int insertSelective(TbBdDeviceRecord record);
|
int insertSelective(TbBdDeviceRecord record);
|
||||||
|
|
||||||
TbBdDeviceRecord selectByPrimaryKey(Long id);
|
TbBdDeviceRecord selectByPrimaryKey(Long id);
|
||||||
|
|
|
||||||
|
|
@ -18,6 +18,8 @@ public interface TbBdRecordMapper {
|
||||||
|
|
||||||
int insertSelective(TbBdRecord record);
|
int insertSelective(TbBdRecord record);
|
||||||
|
|
||||||
|
int replaceInto(TbBdRecord record);
|
||||||
|
|
||||||
TbBdRecord selectByPrimaryKey(Long id);
|
TbBdRecord selectByPrimaryKey(Long id);
|
||||||
|
|
||||||
int updateByPrimaryKeySelective(TbBdRecord record);
|
int updateByPrimaryKeySelective(TbBdRecord record);
|
||||||
|
|
|
||||||
|
|
@ -0,0 +1,316 @@
|
||||||
|
package com.bonus.base.screen.service.impl;
|
||||||
|
|
||||||
|
import com.bonus.base.basic.domain.TbBdDeviceRecord;
|
||||||
|
import com.bonus.base.basic.domain.TbBdRecord;
|
||||||
|
import com.bonus.base.basic.mapper.TbBdDeviceRecordMapper;
|
||||||
|
import com.bonus.base.basic.mapper.TbBdRecordMapper;
|
||||||
|
import com.bonus.common.biz.api.RemoteDataService;
|
||||||
|
import com.bonus.common.core.constant.SecurityConstants;
|
||||||
|
import com.bonus.common.core.utils.DateUtils;
|
||||||
|
import org.springframework.beans.factory.annotation.Autowired;
|
||||||
|
import org.springframework.boot.CommandLineRunner;
|
||||||
|
import org.springframework.scheduling.annotation.Scheduled;
|
||||||
|
import org.springframework.stereotype.Component;
|
||||||
|
|
||||||
|
import java.util.Date;
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @author : 阮世耀
|
||||||
|
* @version : 1.0
|
||||||
|
* @PackagePath: com.bonus.screen.service.impl
|
||||||
|
* @CreateTime: 2024-11-01 15:54
|
||||||
|
* @Description: 定时任务同步数据--内网专用
|
||||||
|
*/
|
||||||
|
@Component
|
||||||
|
public class DataGenderTaskServiceImpl implements CommandLineRunner {
|
||||||
|
|
||||||
|
@Autowired
|
||||||
|
private RemoteDataService remoteDataService;
|
||||||
|
|
||||||
|
@Autowired
|
||||||
|
private TbBdDeviceRecordMapper tbBdDeviceRecordMapper;
|
||||||
|
|
||||||
|
@Autowired
|
||||||
|
private TbBdRecordMapper tbBdRecordMapper;
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 监听应用程序启动
|
||||||
|
* @throws Exception 异常
|
||||||
|
*/
|
||||||
|
@Override
|
||||||
|
public void run(String... args) throws Exception {
|
||||||
|
System.out.println("Application has started. Running initialization logic...");
|
||||||
|
// 执行初始化逻辑
|
||||||
|
System.out.println("初始化保底数据任务--程序启动定时任务---执行开始!");
|
||||||
|
try {
|
||||||
|
Date now = DateUtils.getNowDate();
|
||||||
|
|
||||||
|
TbBdRecord tbBdRecord = new TbBdRecord();
|
||||||
|
tbBdRecord.setId(1L).setDepartId(1L).setDepartName("安徽淮北项目部").setProId(1L).setProName("淮北220kv线路工程")
|
||||||
|
.setRelUser("王义").setRelPhone("15555146123").setDelFlag(0).setAuditStatus(1)
|
||||||
|
.setRemarks("2024年项目").setCreateTime(now).setCreateUser(1L).setAuditUser(1L).setAuditTime(now);
|
||||||
|
tbBdRecordMapper.replaceInto(tbBdRecord);
|
||||||
|
|
||||||
|
TbBdDeviceRecord tbBdDeviceRecord = new TbBdDeviceRecord();
|
||||||
|
tbBdDeviceRecord.setId(1L).setRecordId(1L).setDevName("大源物联感知边代壹设备").setDevCode("UN2394845JH").setUnitName("安徽淮北项目部")
|
||||||
|
.setAreaName("安徽省").setDevUser("王义").setDevUserPhone("15555146123").setProId(1L)
|
||||||
|
.setAuditUser(1L).setAuditUserName("王义").setAuditTime(now).setDevStatus(0).setStatusTime(now);
|
||||||
|
tbBdDeviceRecordMapper.replaceInto(tbBdDeviceRecord);
|
||||||
|
|
||||||
|
} catch (Exception e) {
|
||||||
|
System.err.println("初始化保底数据任务执行异常!" + e.getMessage());
|
||||||
|
throw new RuntimeException(e);
|
||||||
|
}
|
||||||
|
System.out.println("初始化保底数据任务--程序启动定时任务---执行结束!");
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@Scheduled(cron = "0 0/5 * * * ?") // 每5分钟执行一次
|
||||||
|
public void performTask() {
|
||||||
|
long timestampInMilliseconds = System.currentTimeMillis();
|
||||||
|
|
||||||
|
// 设备集合数据JSON字符串
|
||||||
|
String deviceListDataString = "{\"edgeId\":\"UN2394845JH\",\"list\":[{\"deviceAlarmState\":\"0\",\"deviceType\":\"settle\"," +
|
||||||
|
"\"deviceFailureState\":\"0\",\"bangdingState\":\"1\",\"deviceOnlineState\":\"0\",\"remark\":\"请注意:此设备由成都挖掘机制造厂生成,其质量NO.1\"," +
|
||||||
|
"\"updateTime\":\"2023-09-26 16:44:38\",\"deviceCode\":\"settle001\",\"deviceFactory\":\"成都挖掘机制造厂\",\"deviceProjectName\":\"大源项目\"," +
|
||||||
|
"\"delFlag\":\"0\",\"deviceName\":\"基础沉降001\",\"deviceProjectCode\":\"dayuan001\",\"deviceFuzeren\":\"dl\",\"updateBy\":\"1\"," +
|
||||||
|
"\"deviceManuDate\":\"2023-01-17 00:00:00\",\"id\":1},{\"deviceAlarmState\":\"0\",\"deviceProjectCode\":\"dayuan001\"," +
|
||||||
|
"\"deviceType\":\"settle\",\"deviceFailureState\":\"0\",\"bangdingState\":\"1\",\"deviceOnlineState\":\"0\",\"deviceCode\":\"settle002\"," +
|
||||||
|
"\"deviceProjectName\":\"大源项目\",\"id\":2,\"delFlag\":\"0\",\"deviceName\":\"基础沉降002\"},{\"deviceAlarmState\":\"0\"," +
|
||||||
|
"\"deviceProjectCode\":\"dayuan001\",\"deviceType\":\"concrete_settle\",\"deviceFailureState\":\"0\",\"bangdingState\":\"1\"," +
|
||||||
|
"\"deviceOnlineState\":\"1\",\"deviceCode\":\"concrete_settle001\",\"deviceProjectName\":\"大源项目\",\"id\":3,\"delFlag\":\"0\"," +
|
||||||
|
"\"deviceName\":\"混凝土基础沉降001\"},{\"deviceAlarmState\":\"0\",\"deviceProjectCode\":\"dayuan001\",\"deviceType\":\"environmental\"," +
|
||||||
|
"\"deviceFailureState\":\"0\",\"bangdingState\":\"1\",\"deviceOnlineState\":\"1\",\"deviceCode\":\"environmental001\"," +
|
||||||
|
"\"deviceProjectName\":\"大源项目\",\"id\":4,\"delFlag\":\"0\",\"deviceName\":\"室外环境监测001\"},{\"deviceAlarmState\":\"0\"," +
|
||||||
|
"\"deviceProjectCode\":\"dayuan001\",\"deviceType\":\"environmental\",\"deviceFailureState\":\"0\",\"bangdingState\":\"1\"," +
|
||||||
|
"\"deviceOnlineState\":\"0\",\"deviceCode\":\"environmental002\",\"deviceProjectName\":\"大源项目\",\"id\":5,\"delFlag\":\"0\"," +
|
||||||
|
"\"deviceName\":\"室外环境监测002\"},{\"deviceAlarmState\":\"0\",\"deviceProjectCode\":\"dayuan001\",\"deviceType\":\"environmental\"," +
|
||||||
|
"\"deviceFailureState\":\"0\",\"bangdingState\":\"1\",\"deviceOnlineState\":\"1\",\"deviceCode\":\"environmental003\"," +
|
||||||
|
"\"deviceProjectName\":\"大源项目\",\"id\":6,\"delFlag\":\"0\",\"deviceName\":\"室外环境监测003\"},{\"deviceAlarmState\":\"0\"," +
|
||||||
|
"\"deviceProjectCode\":\"dayuan001\",\"deviceType\":\"limited\",\"deviceFailureState\":\"0\",\"bangdingState\":\"1\"," +
|
||||||
|
"\"deviceOnlineState\":\"1\",\"deviceCode\":\"limited001\",\"deviceProjectName\":\"大源项目\",\"id\":7,\"delFlag\":\"0\"," +
|
||||||
|
"\"deviceName\":\"有限空间环境监测001\"},{\"deviceAlarmState\":\"0\",\"deviceProjectCode\":\"dayuan001\",\"deviceType\":\"limited\"," +
|
||||||
|
"\"deviceFailureState\":\"0\",\"bangdingState\":\"1\",\"deviceOnlineState\":\"1\",\"deviceCode\":\"limited002\"," +
|
||||||
|
"\"deviceProjectName\":\"大源项目\",\"id\":8,\"delFlag\":\"0\",\"deviceName\":\"有限空间环境监测002\"},{\"deviceAlarmState\":\"0\"," +
|
||||||
|
"\"deviceProjectCode\":\"dayuan001\",\"deviceType\":\"limited\",\"deviceFailureState\":\"0\",\"bangdingState\":\"1\"," +
|
||||||
|
"\"deviceOnlineState\":\"1\",\"deviceCode\":\"limited003\",\"deviceProjectName\":\"大源项目\",\"id\":9,\"delFlag\":\"0\"," +
|
||||||
|
"\"deviceName\":\"有限空间环境监测003\"},{\"deviceAlarmState\":\"0\",\"deviceProjectCode\":\"dayuan001\",\"deviceType\":\"equipment\"," +
|
||||||
|
"\"deviceFailureState\":\"0\",\"bangdingState\":\"1\",\"deviceOnlineState\":\"1\",\"deviceCode\":\"equipment001\"," +
|
||||||
|
"\"deviceProjectName\":\"大源项目\",\"id\":10,\"delFlag\":\"0\",\"deviceName\":\"主安装设备环境监测001\"},{\"deviceAlarmState\":\"0\"," +
|
||||||
|
"\"deviceProjectCode\":\"dayuan001\",\"deviceType\":\"equipment\",\"deviceFailureState\":\"0\",\"bangdingState\":\"1\"," +
|
||||||
|
"\"deviceOnlineState\":\"1\",\"deviceCode\":\"equipment002\",\"deviceProjectName\":\"大源项目\",\"id\":11,\"delFlag\":\"0\"," +
|
||||||
|
"\"deviceName\":\"主安装设备环境监测002\"},{\"deviceAlarmState\":\"0\",\"deviceProjectCode\":\"dayuan001\",\"deviceType\":\"heartrate\"," +
|
||||||
|
"\"deviceFailureState\":\"0\",\"bangdingState\":\"1\",\"deviceOnlineState\":\"0\",\"deviceCode\":\"heartrate001\"," +
|
||||||
|
"\"deviceProjectName\":\"大源项目\",\"id\":12,\"delFlag\":\"0\",\"deviceName\":\"心率手环001\"},{\"deviceAlarmState\":\"0\"," +
|
||||||
|
"\"deviceProjectCode\":\"dayuan001\",\"deviceType\":\"heartrate\",\"deviceFailureState\":\"0\",\"bangdingState\":\"1\"," +
|
||||||
|
"\"deviceOnlineState\":\"0\",\"deviceCode\":\"heartrate002\",\"deviceProjectName\":\"大源项目\",\"id\":13,\"delFlag\":\"0\"," +
|
||||||
|
"\"deviceName\":\"心率手环002\"},{\"deviceAlarmState\":\"0\",\"deviceProjectCode\":\"dayuan001\",\"deviceType\":\"heartrate\"," +
|
||||||
|
"\"deviceFailureState\":\"0\",\"bangdingState\":\"1\",\"deviceOnlineState\":\"1\",\"deviceCode\":\"heartrate003\"," +
|
||||||
|
"\"deviceProjectName\":\"大源项目\",\"id\":14,\"delFlag\":\"0\",\"deviceName\":\"心率手环003\"},{\"deviceAlarmState\":\"0\"," +
|
||||||
|
"\"deviceProjectCode\":\"dayuan001\",\"deviceType\":\"heartrate\",\"deviceFailureState\":\"0\",\"bangdingState\":\"1\"," +
|
||||||
|
"\"deviceOnlineState\":\"1\",\"deviceCode\":\"heartrate004\",\"deviceProjectName\":\"大源项目\",\"id\":15,\"delFlag\":\"0\"," +
|
||||||
|
"\"deviceName\":\"心率手环004\"},{\"deviceAlarmState\":\"0\",\"deviceProjectCode\":\"dayuan001\",\"deviceType\":\"heartrate\"," +
|
||||||
|
"\"deviceFailureState\":\"0\",\"bangdingState\":\"1\",\"deviceOnlineState\":\"1\",\"deviceCode\":\"heartrate005\"," +
|
||||||
|
"\"deviceProjectName\":\"大源项目\",\"id\":16,\"delFlag\":\"0\",\"deviceName\":\"心率手环005\"},{\"deviceAlarmState\":\"0\"," +
|
||||||
|
"\"deviceProjectCode\":\"dayuan001\",\"deviceType\":\"heartrate\",\"deviceFailureState\":\"0\",\"bangdingState\":\"1\"," +
|
||||||
|
"\"deviceOnlineState\":\"1\",\"deviceCode\":\"heartrate006\",\"deviceProjectName\":\"大源项目\",\"id\":17,\"delFlag\":\"0\"," +
|
||||||
|
"\"deviceName\":\"心率手环006\"},{\"deviceAlarmState\":\"0\",\"deviceProjectCode\":\"dayuan001\",\"deviceType\":\"angle\"," +
|
||||||
|
"\"deviceFailureState\":\"0\",\"bangdingState\":\"1\",\"deviceOnlineState\":\"1\",\"deviceCode\":\"angle001\"," +
|
||||||
|
"\"deviceProjectName\":\"大源项目\",\"id\":18,\"delFlag\":\"0\",\"deviceName\":\"倾角传感器001\"},{\"deviceAlarmState\":\"0\"," +
|
||||||
|
"\"deviceProjectCode\":\"dayuan001\",\"deviceType\":\"angle\",\"deviceFailureState\":\"0\",\"bangdingState\":\"1\"," +
|
||||||
|
"\"deviceOnlineState\":\"1\",\"deviceCode\":\"angle002\",\"deviceProjectName\":\"大源项目\",\"id\":19,\"delFlag\":\"0\"," +
|
||||||
|
"\"deviceName\":\"倾角传感器002\"},{\"deviceAlarmState\":\"0\",\"deviceProjectCode\":\"dayuan001\",\"deviceType\":\"angle\"," +
|
||||||
|
"\"deviceFailureState\":\"0\",\"bangdingState\":\"1\",\"deviceOnlineState\":\"1\",\"deviceCode\":\"angle003\"," +
|
||||||
|
"\"deviceProjectName\":\"大源项目\",\"id\":20,\"delFlag\":\"0\",\"deviceName\":\"倾角传感器003\"},{\"deviceAlarmState\":\"0\"," +
|
||||||
|
"\"deviceProjectCode\":\"dayuan001\",\"deviceType\":\"pull\",\"deviceFailureState\":\"0\",\"bangdingState\":\"1\"," +
|
||||||
|
"\"deviceOnlineState\":\"1\",\"deviceCode\":\"pull001\",\"deviceProjectName\":\"大源项目\",\"id\":21,\"delFlag\":\"0\"," +
|
||||||
|
"\"deviceName\":\"拉力传感器001\"},{\"deviceAlarmState\":\"0\",\"deviceProjectCode\":\"dayuan001\",\"deviceType\":\"pull\"," +
|
||||||
|
"\"deviceFailureState\":\"0\",\"bangdingState\":\"1\",\"deviceOnlineState\":\"1\",\"deviceCode\":\"pull002\"," +
|
||||||
|
"\"deviceProjectName\":\"大源项目\",\"id\":22,\"delFlag\":\"0\",\"deviceName\":\"拉力传感器002\"},{\"deviceAlarmState\":\"0\"," +
|
||||||
|
"\"deviceProjectCode\":\"dayuan001\",\"deviceType\":\"double_round\",\"deviceFailureState\":\"0\",\"bangdingState\":\"1\"," +
|
||||||
|
"\"deviceOnlineState\":\"1\",\"deviceCode\":\"double_round001\",\"deviceProjectName\":\"大源项目\",\"id\":23,\"delFlag\":\"0\"," +
|
||||||
|
"\"deviceName\":\"双轮张力机001\"},{\"deviceAlarmState\":\"0\",\"deviceProjectCode\":\"dayuan001\",\"deviceType\":\"single_round\"," +
|
||||||
|
"\"deviceFailureState\":\"0\",\"bangdingState\":\"1\",\"deviceOnlineState\":\"1\",\"deviceCode\":\"single_round001\"," +
|
||||||
|
"\"deviceProjectName\":\"大源项目\",\"id\":24,\"delFlag\":\"0\",\"deviceName\":\"单轮张力机001\"},{\"deviceAlarmState\":\"0\"," +
|
||||||
|
"\"deviceProjectCode\":\"dayuan001\",\"deviceType\":\"traction\",\"deviceFailureState\":\"0\",\"bangdingState\":\"1\"," +
|
||||||
|
"\"deviceOnlineState\":\"1\",\"deviceCode\":\"traction001\",\"deviceProjectName\":\"大源项目\",\"id\":25,\"delFlag\":\"0\"," +
|
||||||
|
"\"deviceName\":\"牵张机001\"},{\"deviceAlarmState\":\"0\",\"deviceProjectCode\":\"dayuan001\",\"deviceType\":\"traction\"," +
|
||||||
|
"\"deviceFailureState\":\"0\",\"bangdingState\":\"1\",\"deviceOnlineState\":\"1\",\"deviceCode\":\"traction002\"," +
|
||||||
|
"\"deviceProjectName\":\"大源项目\",\"id\":26,\"delFlag\":\"0\",\"deviceName\":\"牵张机002\"},{\"deviceAlarmState\":\"0\"," +
|
||||||
|
"\"deviceProjectCode\":\"dayuan001\",\"deviceType\":\"video_hat\",\"deviceFailureState\":\"0\",\"bangdingState\":\"1\"," +
|
||||||
|
"\"createTime\":\"2024-09-23 18:16:59\",\"deviceOnlineState\":\"1\",\"deviceCode\":\"video_hat001\",\"deviceProjectName\":\"大源项目\"," +
|
||||||
|
"\"id\":27,\"delFlag\":\"0\",\"deviceName\":\"定位安全帽005\"},{\"deviceAlarmState\":\"0\",\"deviceProjectCode\":\"dayuan001\"," +
|
||||||
|
"\"deviceType\":\"video_hat\",\"deviceFailureState\":\"0\",\"bangdingState\":\"1\",\"createTime\":\"2024-09-23 18:16:59\"," +
|
||||||
|
"\"deviceOnlineState\":\"1\",\"deviceCode\":\"video_hat002\",\"deviceProjectName\":\"大源项目\",\"id\":28,\"delFlag\":\"0\"," +
|
||||||
|
"\"deviceName\":\"定位安全帽006\"},{\"deviceAlarmState\":\"0\",\"deviceProjectCode\":\"dayuan001\",\"deviceType\":\"video_hat\"," +
|
||||||
|
"\"deviceFailureState\":\"0\",\"bangdingState\":\"1\",\"createTime\":\"2024-09-23 18:16:59\",\"deviceOnlineState\":\"1\"," +
|
||||||
|
"\"deviceCode\":\"video_hat003\",\"deviceProjectName\":\"大源项目\",\"id\":29,\"delFlag\":\"0\",\"deviceName\":\"定位安全帽007\"}," +
|
||||||
|
"{\"deviceAlarmState\":\"0\",\"deviceProjectCode\":\"dayuan001\",\"deviceType\":\"video_hat\",\"deviceFailureState\":\"0\"," +
|
||||||
|
"\"bangdingState\":\"1\",\"createTime\":\"2024-09-23 18:16:59\",\"deviceOnlineState\":\"1\",\"deviceCode\":\"video_hat004\"," +
|
||||||
|
"\"deviceProjectName\":\"大源项目\",\"id\":30,\"delFlag\":\"0\",\"deviceName\":\"定位安全帽008\"},{\"deviceAlarmState\":\"0\"," +
|
||||||
|
"\"deviceProjectCode\":\"dayuan001\",\"deviceType\":\"video_hat\",\"deviceFailureState\":\"0\",\"bangdingState\":\"1\"," +
|
||||||
|
"\"createTime\":\"2024-09-23 18:16:59\",\"deviceOnlineState\":\"1\",\"deviceCode\":\"video_hat005\",\"deviceProjectName\":\"大源项目\"," +
|
||||||
|
"\"id\":31,\"delFlag\":\"0\",\"deviceName\":\"定位安全帽009\"},{\"deviceAlarmState\":\"0\",\"deviceProjectCode\":\"dayuan001\"," +
|
||||||
|
"\"deviceType\":\"positioning_hat\",\"deviceFailureState\":\"0\",\"bangdingState\":\"1\",\"deviceOnlineState\":\"0\"," +
|
||||||
|
"\"deviceCode\":\"positioning_hat001\",\"deviceProjectName\":\"大源项目\",\"id\":32,\"delFlag\":\"0\",\"deviceName\":\"定位安全帽001\"}," +
|
||||||
|
"{\"deviceAlarmState\":\"0\",\"deviceProjectCode\":\"dayuan001\",\"deviceType\":\"positioning_hat\",\"deviceFailureState\":\"0\"," +
|
||||||
|
"\"bangdingState\":\"1\",\"deviceOnlineState\":\"0\",\"deviceCode\":\"positioning_hat002\",\"deviceProjectName\":\"大源项目\"," +
|
||||||
|
"\"id\":33,\"delFlag\":\"0\",\"deviceName\":\"定位安全帽002\"},{\"deviceAlarmState\":\"0\",\"deviceProjectCode\":\"dayuan001\"," +
|
||||||
|
"\"deviceType\":\"positioning_hat\",\"deviceFailureState\":\"0\",\"bangdingState\":\"1\",\"deviceOnlineState\":\"0\"," +
|
||||||
|
"\"deviceCode\":\"positioning_hat003\",\"deviceProjectName\":\"大源项目\",\"id\":34,\"delFlag\":\"0\",\"deviceName\":\"定位安全帽003\"}," +
|
||||||
|
"{\"deviceAlarmState\":\"0\",\"deviceProjectCode\":\"dayuan001\",\"deviceType\":\"positioning_hat\",\"deviceFailureState\":\"0\"," +
|
||||||
|
"\"bangdingState\":\"1\",\"deviceOnlineState\":\"0\",\"deviceCode\":\"positioning_hat004\",\"deviceProjectName\":\"大源项目\",\"id\":35," +
|
||||||
|
"\"delFlag\":\"0\",\"deviceName\":\"定位安全帽004\"}],\"type\":\"devices\"}\n";
|
||||||
|
|
||||||
|
// 安全帽集合json数据
|
||||||
|
String hatListDataString = "{\"edgeId\":\"UN2394845JH\",\"list\":[{\"altitude\":\"565\"," +
|
||||||
|
"\"tired\":\"1\",\"mid\":\"1\",\"lon\":\"116.846516\",\"delFlag\":\"0\",\"type\":\"CMD_REPORTDAT\"," +
|
||||||
|
"\"deviceId\":\"27\",\"hatType\":\"1\",\"heartRate\":\"60\",\"createTime\":1727086635000," +
|
||||||
|
"\"dataTime\":"+ timestampInMilliseconds +",\"fixedBy\":\"1\",\"imei\":\"CMD_REPORTDAT11\",\"model\":\"positioning_hat\"," +
|
||||||
|
"\"id\":1,\"lat\":\"42.519599\",\"batteryLevel\":\"100\",\"status\":\"0\"},{\"altitude\":\"231\"," +
|
||||||
|
"\"tired\":\"1\",\"mid\":\"1\",\"lon\":\"113.981994\",\"delFlag\":\"0\",\"type\":\"CMD_REPORTDAT\"," +
|
||||||
|
"\"deviceId\":\"28\",\"hatType\":\"1\",\"heartRate\":\"60\",\"createTime\":1727086636000," +
|
||||||
|
"\"dataTime\":"+ timestampInMilliseconds +",\"fixedBy\":\"1\",\"imei\":\"CMD_REPORTDAT12\",\"model\":\"positioning_hat\"," +
|
||||||
|
"\"id\":2,\"lat\":\"38.095147\",\"batteryLevel\":\"80\",\"status\":\"0\"},{\"altitude\":\"285\"," +
|
||||||
|
"\"tired\":\"1\",\"mid\":\"1\",\"lon\":\"104.196915\",\"delFlag\":\"0\",\"type\":\"CMD_REPORTDAT\"," +
|
||||||
|
"\"deviceId\":\"29\",\"hatType\":\"1\",\"heartRate\":\"60\",\"createTime\":1727086636000," +
|
||||||
|
"\"dataTime\":"+ timestampInMilliseconds +",\"fixedBy\":\"1\",\"imei\":\"CMD_REPORTDAT13\",\"model\":\"positioning_hat\"," +
|
||||||
|
"\"id\":3,\"lat\":\"31.292798\",\"batteryLevel\":\"30\",\"status\":\"0\"},{\"altitude\":\"322\"," +
|
||||||
|
"\"tired\":\"1\",\"mid\":\"1\",\"lon\":\"107.061438\",\"delFlag\":\"0\",\"type\":\"CMD_REPORTDAT\"," +
|
||||||
|
"\"deviceId\":\"30\",\"hatType\":\"1\",\"heartRate\":\"60\",\"createTime\":1727086636000," +
|
||||||
|
"\"dataTime\":"+ timestampInMilliseconds +",\"fixedBy\":\"1\",\"imei\":\"CMD_REPORTDAT14\",\"model\":\"positioning_hat\"," +
|
||||||
|
"\"id\":4,\"lat\":\"29.845912\",\"batteryLevel\":\"80\",\"status\":\"1\"},{\"altitude\":\"1522\"," +
|
||||||
|
"\"tired\":\"1\",\"mid\":\"1\",\"lon\":\"98.009546\",\"delFlag\":\"0\",\"type\":\"CMD_REPORTDAT\"," +
|
||||||
|
"\"deviceId\":\"31\",\"hatType\":\"1\",\"heartRate\":\"60\",\"createTime\":1727086636000," +
|
||||||
|
"\"dataTime\":"+ timestampInMilliseconds +",\"fixedBy\":\"1\",\"imei\":\"CMD_REPORTDAT15\",\"model\":\"positioning_hat\"," +
|
||||||
|
"\"id\":5,\"lat\":\"36.856559\",\"batteryLevel\":\"70\",\"status\":\"1\"},{\"altitude\":\"1223\"," +
|
||||||
|
"\"tired\":\"1\",\"mid\":\"1\",\"lon\":\"99.602873\",\"delFlag\":\"0\",\"type\":\"CMD_REPORTDAT\"," +
|
||||||
|
"\"deviceId\":\"32\",\"hatType\":\"1\",\"heartRate\":\"60\",\"createTime\":1727085953000," +
|
||||||
|
"\"dataTime\":"+ timestampInMilliseconds +",\"fixedBy\":\"1\",\"imei\":\"CMD_REPORTDAT16\",\"model\":\"positioning_hat\"," +
|
||||||
|
"\"id\":6,\"lat\":\"31.705513\",\"batteryLevel\":\"90\",\"status\":\"1\"},{\"altitude\":\"185\"," +
|
||||||
|
"\"tired\":\"1\",\"mid\":\"1\",\"lon\":\"115.406605\",\"delFlag\":\"0\",\"type\":\"CMD_REPORTDAT\"," +
|
||||||
|
"\"deviceId\":\"33\",\"hatType\":\"1\",\"heartRate\":\"60\",\"createTime\":1727086636000," +
|
||||||
|
"\"dataTime\":"+ timestampInMilliseconds +",\"fixedBy\":\"1\",\"imei\":\"CMD_REPORTDAT17\",\"model\":\"positioning_hat\"," +
|
||||||
|
"\"id\":7,\"lat\":\"32.650809\",\"batteryLevel\":\"80\",\"status\":\"1\"},{\"altitude\":\"295\"," +
|
||||||
|
"\"tired\":\"1\",\"mid\":\"1\",\"lon\":\"117.026070\",\"delFlag\":\"0\",\"type\":\"CMD_REPORTDAT\"," +
|
||||||
|
"\"deviceId\":\"34\",\"hatType\":\"1\",\"heartRate\":\"60\",\"createTime\":1727086636000," +
|
||||||
|
"\"dataTime\":"+ timestampInMilliseconds +",\"fixedBy\":\"1\",\"imei\":\"CMD_REPORTDAT18\",\"model\":\"positioning_hat\"," +
|
||||||
|
"\"id\":8,\"lat\":\"33.679208\",\"batteryLevel\":\"100\",\"status\":\"1\"},{\"altitude\":\"93\"," +
|
||||||
|
"\"tired\":\"1\",\"mid\":\"1\",\"lon\":\"113.284550\",\"delFlag\":\"0\",\"type\":\"CMD_REPORTDAT\"," +
|
||||||
|
"\"deviceId\":\"35\",\"hatType\":\"1\",\"heartRate\":\"60\",\"createTime\":1727086636000," +
|
||||||
|
"\"dataTime\":"+ timestampInMilliseconds +",\"fixedBy\":\"1\",\"imei\":\"CMD_REPORTDAT19\",\"model\":\"positioning_hat\"," +
|
||||||
|
"\"id\":9,\"lat\":\"24.978130\",\"batteryLevel\":\"80\",\"status\":\"1\"},{\"altitude\":\"565\"," +
|
||||||
|
"\"tired\":\"1\",\"mid\":\"1\",\"lon\":\"115.846516\",\"delFlag\":\"0\",\"type\":\"CMD_REPORTDAT\"," +
|
||||||
|
"\"deviceId\":\"27\",\"hatType\":\"1\",\"heartRate\":\"60\",\"createTime\":1727086641000," +
|
||||||
|
"\"dataTime\":"+ timestampInMilliseconds +",\"fixedBy\":\"1\",\"imei\":\"CMD_REPORTDAT11\",\"model\":\"positioning_hat\"," +
|
||||||
|
"\"id\":10,\"lat\":\"41.519599\",\"batteryLevel\":\"100\",\"status\":\"0\"},{\"altitude\":\"231\"," +
|
||||||
|
"\"tired\":\"1\",\"mid\":\"1\",\"lon\":\"111.981994\",\"delFlag\":\"0\",\"type\":\"CMD_REPORTDAT\"," +
|
||||||
|
"\"deviceId\":\"27\",\"hatType\":\"1\",\"heartRate\":\"60\",\"createTime\":1727086670000," +
|
||||||
|
"\"dataTime\":"+ timestampInMilliseconds +",\"fixedBy\":\"1\",\"imei\":\"CMD_REPORTDAT12\",\"model\":\"positioning_hat\"," +
|
||||||
|
"\"id\":11,\"lat\":\"39.095147\",\"batteryLevel\":\"80\",\"status\":\"0\"},{\"altitude\":\"285\"," +
|
||||||
|
"\"tired\":\"1\",\"mid\":\"1\",\"lon\":\"108.196915\",\"delFlag\":\"0\",\"type\":\"CMD_REPORTDAT\"," +
|
||||||
|
"\"deviceId\":\"27\",\"hatType\":\"1\",\"heartRate\":\"60\",\"createTime\":1727086670000," +
|
||||||
|
"\"dataTime\":"+ timestampInMilliseconds +",\"fixedBy\":\"1\",\"imei\":\"CMD_REPORTDAT13\",\"model\":\"positioning_hat\"," +
|
||||||
|
"\"id\":12,\"lat\":\"31.692798\",\"batteryLevel\":\"30\",\"status\":\"0\"},{\"altitude\":\"322\"," +
|
||||||
|
"\"tired\":\"1\",\"mid\":\"1\",\"lon\":\"102.061438\",\"delFlag\":\"0\",\"type\":\"CMD_REPORTDAT\"," +
|
||||||
|
"\"deviceId\":\"27\",\"hatType\":\"1\",\"heartRate\":\"60\",\"createTime\":1727086670000," +
|
||||||
|
"\"dataTime\":"+ timestampInMilliseconds +",\"fixedBy\":\"1\",\"imei\":\"CMD_REPORTDAT14\",\"model\":\"positioning_hat\"," +
|
||||||
|
"\"id\":13,\"lat\":\"33.845912\",\"batteryLevel\":\"80\",\"status\":\"1\"},{\"altitude\":\"1522\"," +
|
||||||
|
"\"tired\":\"1\",\"mid\":\"1\",\"lon\":\"98.009546\",\"delFlag\":\"0\",\"type\":\"CMD_REPORTDAT\"," +
|
||||||
|
"\"deviceId\":\"27\",\"hatType\":\"1\",\"heartRate\":\"60\",\"createTime\":1727086670000," +
|
||||||
|
"\"dataTime\":"+ timestampInMilliseconds +",\"fixedBy\":\"1\",\"imei\":\"CMD_REPORTDAT15\",\"model\":\"positioning_hat\"," +
|
||||||
|
"\"id\":14,\"lat\":\"33.856559\",\"batteryLevel\":\"70\",\"status\":\"1\"},{\"altitude\":\"1223\"," +
|
||||||
|
"\"tired\":\"1\",\"mid\":\"1\",\"lon\":\"99.602873\",\"delFlag\":\"0\",\"type\":\"CMD_REPORTDAT\"," +
|
||||||
|
"\"deviceId\":\"27\",\"hatType\":\"1\",\"heartRate\":\"60\",\"createTime\":1727086670000," +
|
||||||
|
"\"dataTime\":"+ timestampInMilliseconds +",\"fixedBy\":\"1\",\"imei\":\"CMD_REPORTDAT16\",\"model\":\"positioning_hat\"," +
|
||||||
|
"\"id\":15,\"lat\":\"34.705513\",\"batteryLevel\":\"90\",\"status\":\"1\"},{\"altitude\":\"185\"," +
|
||||||
|
"\"tired\":\"1\",\"mid\":\"1\",\"lon\":\"111.406605\",\"delFlag\":\"0\",\"type\":\"CMD_REPORTDAT\"," +
|
||||||
|
"\"deviceId\":\"27\",\"hatType\":\"1\",\"heartRate\":\"60\",\"createTime\":1727086670000," +
|
||||||
|
"\"dataTime\":"+ timestampInMilliseconds +",\"fixedBy\":\"1\",\"imei\":\"CMD_REPORTDAT17\",\"model\":\"positioning_hat\"," +
|
||||||
|
"\"id\":16,\"lat\":\"32.650809\",\"batteryLevel\":\"80\",\"status\":\"1\"},{\"altitude\":\"295\"," +
|
||||||
|
"\"tired\":\"1\",\"mid\":\"1\",\"lon\":\"113.026070\",\"delFlag\":\"0\",\"type\":\"CMD_REPORTDAT\"," +
|
||||||
|
"\"deviceId\":\"27\",\"hatType\":\"1\",\"heartRate\":\"60\",\"createTime\":1727086670000," +
|
||||||
|
"\"dataTime\":"+ timestampInMilliseconds +",\"fixedBy\":\"1\",\"imei\":\"CMD_REPORTDAT18\",\"model\":\"positioning_hat\"," +
|
||||||
|
"\"id\":17,\"lat\":\"34.679208\",\"batteryLevel\":\"100\",\"status\":\"1\"},{\"altitude\":\"93\"," +
|
||||||
|
"\"tired\":\"1\",\"mid\":\"1\",\"lon\":\"118.284550\",\"delFlag\":\"0\",\"type\":\"CMD_REPORTDAT\"," +
|
||||||
|
"\"deviceId\":\"27\",\"hatType\":\"1\",\"heartRate\":\"60\",\"createTime\":1727086670000," +
|
||||||
|
"\"dataTime\":"+ timestampInMilliseconds +",\"fixedBy\":\"1\",\"imei\":\"CMD_REPORTDAT19\",\"model\":\"positioning_hat\"," +
|
||||||
|
"\"id\":18,\"lat\":\"34.978130\",\"batteryLevel\":\"80\",\"status\":\"1\"}],\"type\":\"videoHat\"}";
|
||||||
|
|
||||||
|
// 拉力传感器数据--拉力、设备电量
|
||||||
|
String laliDataString = "{\"edgeId\":\"UN2394845JH\",\"list\":[{\"createTime\":1730967555000,\"dataTime\":" + timestampInMilliseconds +"," +
|
||||||
|
"\"alarmThreshold\":\"10\",\"model\":\"pull_monitoringpull_monitoring\",\"updateTime\":1730967555000,\"id\":3323," +
|
||||||
|
"\"delFlag\":\"0\",\"deviceId\":\"21\",\"tractionData\":\"123\",\"capacity\":\"88\"},{\"createTime\":1730967586000," +
|
||||||
|
"\"dataTime\":"+ timestampInMilliseconds +",\"alarmThreshold\":\"10\",\"model\":\"pull_monitoringpull_monitoring\"," +
|
||||||
|
"\"updateTime\":1730967586000,\"id\":3324,\"delFlag\":\"0\",\"deviceId\":\"21\",\"tractionData\":\"152\"," +
|
||||||
|
"\"capacity\":\"88\"}],\"type\":\"pull\"}";
|
||||||
|
|
||||||
|
// 倾角传感器--X轴、Y轴、Z轴、设备电量
|
||||||
|
String qjDataString = "{\"edgeId\":\"UN2394845JH\",\"list\":[{\"angleX\":\"88\",\"angleY\":\"2\",\"angleZ\":\"6\"," +
|
||||||
|
"\"data\":\"0\",\"alarmThreshold\":\"0.2\",\"updateTime\":1730967554000,\"delFlag\":\"0\",\"deviceId\":\"18\"," +
|
||||||
|
"\"capacity\":\"0.8\",\"createTime\":1730967554000,\"dataTime\":"+ timestampInMilliseconds +",\"model\":\"angle_monitoring\"," +
|
||||||
|
"\"id\":3338,\"serviceId\":\"a121\",\"nodeId\":\"111\"},{\"angleX\":\"89\",\"angleY\":\"6\",\"angleZ\":\"7\"," +
|
||||||
|
"\"data\":\"0\",\"alarmThreshold\":\"0.2\",\"updateTime\":1730967586000,\"delFlag\":\"0\",\"deviceId\":\"18\"," +
|
||||||
|
"\"capacity\":\"0.8\",\"createTime\":1730967586000,\"dataTime\":"+ timestampInMilliseconds +",\"model\":\"angle_monitoring\"," +
|
||||||
|
"\"id\":3339,\"serviceId\":\"a121\",\"nodeId\":\"111\"}],\"type\":\"angles\"}";
|
||||||
|
|
||||||
|
// 室外环境监测--温度、湿度、风速、风向、设备电量、PM2.5、PM10
|
||||||
|
String outDataString = "{\"edgeId\":\"UN2394845JH\",\"list\":[{\"grain50\":\"611\",\"pm10\":\"35\",\"windForce\":\"0.5\"," +
|
||||||
|
"\"updateTime\":1730967555000,\"pressure\":\"89\",\"delFlag\":\"0\",\"deviceId\":\"4\",\"airTemperature\":\"25\"," +
|
||||||
|
"\"pm25\":\"13\",\"createTime\":1730967555000,\"dataTime\":"+ timestampInMilliseconds +",\"noise\":\"29\",\"humidity\":\"62\"," +
|
||||||
|
"\"model\":\"environmental_monitoring\",\"id\":3335,\"windDirection\":\"西北风\"},{\"grain50\":\"799\",\"pm10\":\"33\"," +
|
||||||
|
"\"windForce\":\"0.5\",\"updateTime\":1730967586000,\"pressure\":\"89\",\"delFlag\":\"0\",\"deviceId\":\"4\"," +
|
||||||
|
"\"airTemperature\":\"28\",\"pm25\":\"15\",\"createTime\":1730967586000,\"dataTime\":"+ timestampInMilliseconds +",\"noise\":\"38\"," +
|
||||||
|
"\"humidity\":\"70\",\"model\":\"environmental_monitoring\",\"id\":3336,\"windDirection\":\"西北风\"}]," +
|
||||||
|
"\"type\":\"environmental\"}";
|
||||||
|
|
||||||
|
// 智能手环
|
||||||
|
String znshDataString = "{\"edgeId\":\"UN2394845JH\",\"list\":[{\"altitude\":\"200\",\"heartRateValue\":\"90\",\"idCard\":\"1\"," +
|
||||||
|
"\"latitude\":\"111.11\",\"mid\":\"1\",\"updateTime\":1730967554000,\"pressure\":\"980\",\"bloodPressureValue\":\"120/70\"," +
|
||||||
|
"\"delFlag\":\"0\",\"type\":\"CMD_REPORTDAT\",\"bodyTempValue\":\"36.8\",\"deviceId\":\"12\",\"personName\":\"张三\"," +
|
||||||
|
"\"posX\":\"22\",\"poxY\":\"33\",\"createTime\":1730967554000,\"dataTime\":"+ timestampInMilliseconds +",\"model\":\"heartrate_monitoring\"," +
|
||||||
|
"\"bloodOxygenValue\":\"91.0\",\"id\":3329,\"longitude\":\"122.22\"},{\"altitude\":\"200\",\"heartRateValue\":\"76\"," +
|
||||||
|
"\"idCard\":\"1\",\"latitude\":\"111.11\",\"mid\":\"1\",\"updateTime\":1730967586000,\"pressure\":\"980\"," +
|
||||||
|
"\"bloodPressureValue\":\"120/70\",\"delFlag\":\"0\",\"type\":\"CMD_REPORTDAT\",\"bodyTempValue\":\"36.8\"," +
|
||||||
|
"\"deviceId\":\"12\",\"personName\":\"张三\",\"posX\":\"22\",\"poxY\":\"33\",\"createTime\":1730967586000," +
|
||||||
|
"\"dataTime\":"+ timestampInMilliseconds +",\"model\":\"heartrate_monitoring\",\"bloodOxygenValue\":\"91.0\",\"id\":3330," +
|
||||||
|
"\"longitude\":\"122.22\"}],\"type\":\"heartrate\"}";
|
||||||
|
|
||||||
|
// 有限空间
|
||||||
|
String yxkjDataString = "{\"edgeId\":\"UN2394845JH\",\"list\":[{\"hydrothion\":\"0\",\"mid\":\"1\",\"updateTime\":1730967555000," +
|
||||||
|
"\"carbonMonoxide\":\"1\",\"delFlag\":\"0\",\"type\":\"CMD_REPORTDAT\",\"deviceId\":\"7\",\"createTime\":1730967555000," +
|
||||||
|
"\"dataTime\":"+ timestampInMilliseconds +",\"combustibleGas\":\"0\",\"model\":\"limited_monitoring\",\"id\":3327,\"oxygen\":\"24\"}," +
|
||||||
|
"{\"hydrothion\":\"0\",\"mid\":\"1\",\"updateTime\":1730967586000,\"carbonMonoxide\":\"0\",\"delFlag\":\"0\"," +
|
||||||
|
"\"type\":\"CMD_REPORTDAT\",\"deviceId\":\"7\",\"createTime\":1730967586000,\"dataTime\":"+ timestampInMilliseconds +"," +
|
||||||
|
"\"combustibleGas\":\"0\",\"model\":\"limited_monitoring\",\"id\":3328,\"oxygen\":\"21\"}],\"type\":\"limited\"}";
|
||||||
|
|
||||||
|
// 基础沉降
|
||||||
|
String jccjDataString = "{\"edgeId\":\"UN2394845JH\",\"list\":[{\"isConcrete\":\"0\",\"createTime\":1730967555000," +
|
||||||
|
"\"dataTime\":"+ timestampInMilliseconds +",\"subsideData\":\"871\",\"accSubsideData\":\"871\",\"model\":\"settle_monitoring\"," +
|
||||||
|
"\"updateTime\":1730967555000,\"id\":3337,\"delFlag\":\"0\",\"realSubsideData\":\"2\",\"deviceId\":\"1\"}," +
|
||||||
|
"{\"isConcrete\":\"0\",\"createTime\":1730967586000,\"dataTime\":"+ timestampInMilliseconds +",\"subsideData\":\"871\"," +
|
||||||
|
"\"accSubsideData\":\"871\",\"model\":\"settle_monitoring\",\"updateTime\":1730967586000,\"id\":3338,\"delFlag\":\"0\"," +
|
||||||
|
"\"realSubsideData\":\"2\",\"deviceId\":\"1\"}],\"type\":\"settle\"}";
|
||||||
|
|
||||||
|
try {
|
||||||
|
System.out.println("当前时间:" + System.currentTimeMillis() + " 定时任务执行开始");
|
||||||
|
remoteDataService.uploadDevStatus(deviceListDataString, SecurityConstants.INNER);
|
||||||
|
remoteDataService.uploadSafetyHatData(hatListDataString, SecurityConstants.INNER);
|
||||||
|
remoteDataService.uploadYxkjData(yxkjDataString, SecurityConstants.INNER);
|
||||||
|
remoteDataService.uploadZnshData(znshDataString, SecurityConstants.INNER);
|
||||||
|
remoteDataService.uploadSwHjData(outDataString, SecurityConstants.INNER);
|
||||||
|
remoteDataService.uploadLlCgqData(laliDataString, SecurityConstants.INNER);
|
||||||
|
remoteDataService.uploadCgqData(qjDataString, SecurityConstants.INNER);
|
||||||
|
remoteDataService.uploadCjData(jccjDataString, SecurityConstants.INNER);
|
||||||
|
System.out.println("当前时间:" + System.currentTimeMillis() + " 定时任务执行完毕");
|
||||||
|
} catch (Exception e) {
|
||||||
|
System.err.println("当前时间:" + System.currentTimeMillis() + " 定时任务执行异常");
|
||||||
|
throw new RuntimeException(e);
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
}
|
||||||
|
|
@ -40,6 +40,17 @@
|
||||||
#{devCode,jdbcType=VARCHAR}, #{unitName,jdbcType=VARCHAR}, #{areaName,jdbcType=VARCHAR},
|
#{devCode,jdbcType=VARCHAR}, #{unitName,jdbcType=VARCHAR}, #{areaName,jdbcType=VARCHAR},
|
||||||
#{devUser,jdbcType=VARCHAR}, #{devUserPhone,jdbcType=VARCHAR}, #{proId})
|
#{devUser,jdbcType=VARCHAR}, #{devUserPhone,jdbcType=VARCHAR}, #{proId})
|
||||||
</insert>
|
</insert>
|
||||||
|
|
||||||
|
<insert id="replaceInto">
|
||||||
|
replace into tb_bd_device_record (id,record_id, dev_name,
|
||||||
|
dev_code, unit_name, area_name,
|
||||||
|
dev_user, dev_user_phone, pro_id, dev_status, status_time)
|
||||||
|
values (#{id,jdbcType=BIGINT},#{recordId,jdbcType=BIGINT}, #{devName,jdbcType=VARCHAR},
|
||||||
|
#{devCode,jdbcType=VARCHAR}, #{unitName,jdbcType=VARCHAR}, #{areaName,jdbcType=VARCHAR},
|
||||||
|
#{devUser,jdbcType=VARCHAR}, #{devUserPhone,jdbcType=VARCHAR}, #{proId}, #{devStatus}, #{statusTime})
|
||||||
|
</insert>
|
||||||
|
|
||||||
|
|
||||||
<insert id="insertSelective" parameterType="com.bonus.base.basic.domain.TbBdDeviceRecord">
|
<insert id="insertSelective" parameterType="com.bonus.base.basic.domain.TbBdDeviceRecord">
|
||||||
<!--@mbg.generated-->
|
<!--@mbg.generated-->
|
||||||
insert into tb_bd_device_record
|
insert into tb_bd_device_record
|
||||||
|
|
@ -304,4 +315,5 @@
|
||||||
WHERE bd.id = #{id} and bp.del_flag = 0
|
WHERE bd.id = #{id} and bp.del_flag = 0
|
||||||
</select>
|
</select>
|
||||||
|
|
||||||
|
|
||||||
</mapper>
|
</mapper>
|
||||||
|
|
|
||||||
|
|
@ -238,5 +238,10 @@
|
||||||
where id = #{id,jdbcType=BIGINT}
|
where id = #{id,jdbcType=BIGINT}
|
||||||
</update>
|
</update>
|
||||||
|
|
||||||
|
<insert id="replaceInto">
|
||||||
|
REPLACE INTO tb_bd_record(id,depart_id,depart_name,pro_id,pro_name,rel_user,rel_phone,del_flag,
|
||||||
|
audit_status,remarks,create_time,create_user,update_time,update_user,audit_user,audit_time)
|
||||||
|
values(#{id},#{departId},#{departName},#{proId},#{proName},#{relUser},#{relPhone},#{delFlag},
|
||||||
|
#{auditStatus},#{remarks},#{createTime},#{createUser},#{updateTime},#{updateUser},#{auditUser},#{auditTime})
|
||||||
|
</insert>
|
||||||
</mapper>
|
</mapper>
|
||||||
|
|
|
||||||
|
|
@ -21,7 +21,7 @@ public class DataApplication
|
||||||
public static void main(String[] args)
|
public static void main(String[] args)
|
||||||
{
|
{
|
||||||
SpringApplication.run(DataApplication.class, args);
|
SpringApplication.run(DataApplication.class, args);
|
||||||
System.out.println("(♥◠‿◠)ノ゙ 基础模块启动成功 ლ(´ڡ`ლ)゙ \n" +
|
System.out.println("(♥◠‿◠)ノ゙ Data数据模块启动成功 ლ(´ڡ`ლ)゙ \n" +
|
||||||
" .-------. ____ __ \n" +
|
" .-------. ____ __ \n" +
|
||||||
" | _ _ \\ \\ \\ / / \n" +
|
" | _ _ \\ \\ \\ / / \n" +
|
||||||
" | ( ' ) | \\ _. / ' \n" +
|
" | ( ' ) | \\ _. / ' \n" +
|
||||||
|
|
|
||||||
|
|
@ -61,6 +61,7 @@ public class DataCenterController extends BaseController {
|
||||||
public AjaxResult uploadCjData(@RequestBody String obj){
|
public AjaxResult uploadCjData(@RequestBody String obj){
|
||||||
return service.uploadCjData(obj);
|
return service.uploadCjData(obj);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 室外环境检测 上报数据
|
* 室外环境检测 上报数据
|
||||||
* @return
|
* @return
|
||||||
|
|
|
||||||
|
|
@ -8,12 +8,12 @@
|
||||||
dev_type, dev_code, dev_name,
|
dev_type, dev_code, dev_name,
|
||||||
dev_status,dev_warn, del_flag,
|
dev_status,dev_warn, del_flag,
|
||||||
dev_err, dev_factory, remark, pro_name,
|
dev_err, dev_factory, remark, pro_name,
|
||||||
pro_code, rel_id,bd_id,rel_type
|
pro_code, rel_id,bd_id
|
||||||
)values
|
)values
|
||||||
(#{deviceType},#{deviceCode},#{deviceName},
|
(#{deviceType},#{deviceCode},#{deviceName},
|
||||||
#{deviceOnlineState},#{deviceAlarmState},0,
|
#{deviceOnlineState},#{deviceAlarmState},0,
|
||||||
#{deviceFailureState},#{deviceFactory},#{remark},#{deviceProjectName},
|
#{deviceFailureState},#{deviceFactory},#{remark},#{deviceProjectName},
|
||||||
#{deviceProjectCode},#{id},#{bdId},#{relType}
|
#{deviceProjectCode},#{id},#{bdId}
|
||||||
)
|
)
|
||||||
</insert>
|
</insert>
|
||||||
<insert id="insertAttribute" keyProperty="attributeId" useGeneratedKeys="true">
|
<insert id="insertAttribute" keyProperty="attributeId" useGeneratedKeys="true">
|
||||||
|
|
@ -50,8 +50,7 @@
|
||||||
dev_status= #{deviceOnlineState},dev_warn=#{deviceAlarmState},
|
dev_status= #{deviceOnlineState},dev_warn=#{deviceAlarmState},
|
||||||
dev_err= #{deviceFailureState}, dev_factory=#{deviceFactory}, remark=#{remark},
|
dev_err= #{deviceFailureState}, dev_factory=#{deviceFactory}, remark=#{remark},
|
||||||
pro_name=#{deviceProjectCode},
|
pro_name=#{deviceProjectCode},
|
||||||
pro_code=#{deviceProjectCode},
|
pro_code=#{deviceProjectCode}
|
||||||
rel_type=#{relType}
|
|
||||||
where rel_id=#{id} and bd_id=#{bdId}
|
where rel_id=#{id} and bd_id=#{bdId}
|
||||||
</update>
|
</update>
|
||||||
<!--数据采集同步-->
|
<!--数据采集同步-->
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue