From 6c0bada008b96ccfdf26e491d5016761fdd93da5 Mon Sep 17 00:00:00 2001 From: syruan <321359594@qq.com> Date: Fri, 8 Nov 2024 14:52:28 +0800 Subject: [PATCH] =?UTF-8?q?Feign=E6=9C=8D=E5=8A=A1=E3=80=81=E5=90=AF?= =?UTF-8?q?=E5=8A=A8=E7=B1=BB=E8=B0=83=E6=95=B4=E3=80=81=E8=BE=B9=E4=BB=A3?= =?UTF-8?q?=E5=86=85=E7=BD=91=E6=95=B0=E6=8D=AE?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../common/biz/api/RemoteDataService.java | 51 +++ .../factory/RemoteDataFallbackFactory.java | 81 +++++ .../java/com/bonus/base/BaseApplication.java | 12 +- .../base/basic/domain/TbBdDeviceRecord.java | 8 + .../bonus/base/basic/domain/TbBdRecord.java | 7 +- .../basic/mapper/TbBdDeviceRecordMapper.java | 2 + .../base/basic/mapper/TbBdRecordMapper.java | 2 + .../impl/DataGenderTaskServiceImpl.java | 316 ++++++++++++++++++ .../base/basic/TbBdDeviceRecordMapper.xml | 12 + .../mapper/base/basic/TbBdRecordMapper.xml | 7 +- .../java/com/bonus/data/DataApplication.java | 2 +- .../data/controller/DataCenterController.java | 1 + .../mapper/data/DataCenterMapper.xml | 7 +- 13 files changed, 492 insertions(+), 16 deletions(-) create mode 100644 bonus-common-biz/src/main/java/com/bonus/common/biz/api/RemoteDataService.java create mode 100644 bonus-common-biz/src/main/java/com/bonus/common/biz/factory/RemoteDataFallbackFactory.java create mode 100644 bonus-modules/base/src/main/java/com/bonus/base/screen/service/impl/DataGenderTaskServiceImpl.java diff --git a/bonus-common-biz/src/main/java/com/bonus/common/biz/api/RemoteDataService.java b/bonus-common-biz/src/main/java/com/bonus/common/biz/api/RemoteDataService.java new file mode 100644 index 0000000..a20dc97 --- /dev/null +++ b/bonus-common-biz/src/main/java/com/bonus/common/biz/api/RemoteDataService.java @@ -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 uploadDevStatus(@RequestBody String obj, @RequestHeader(SecurityConstants.FROM_SOURCE) String source); + + @PostMapping("/data/uploadCgqData") + R uploadCgqData(@RequestBody String obj, @RequestHeader(SecurityConstants.FROM_SOURCE) String source); + + @PostMapping("/data/uploadCjData") + R uploadCjData(@RequestBody String obj, @RequestHeader(SecurityConstants.FROM_SOURCE) String source); + + @PostMapping("/data/uploadLlCgqData") + R uploadLlCgqData(@RequestBody String obj, @RequestHeader(SecurityConstants.FROM_SOURCE) String source); + + @PostMapping("/data/uploadSafetyHatData") + R uploadSafetyHatData(@RequestBody String obj, @RequestHeader(SecurityConstants.FROM_SOURCE) String source); + + @PostMapping("/data/uploadSwHjData") + R uploadSwHjData(@RequestBody String obj, @RequestHeader(SecurityConstants.FROM_SOURCE) String source); + + @PostMapping("/data/uploadYxkjData") + R uploadYxkjData(@RequestBody String obj, @RequestHeader(SecurityConstants.FROM_SOURCE) String source); + + @PostMapping("/data/uploadZnshData") + R uploadZnshData(@RequestBody String obj, @RequestHeader(SecurityConstants.FROM_SOURCE) String source); + +} diff --git a/bonus-common-biz/src/main/java/com/bonus/common/biz/factory/RemoteDataFallbackFactory.java b/bonus-common-biz/src/main/java/com/bonus/common/biz/factory/RemoteDataFallbackFactory.java new file mode 100644 index 0000000..48630d4 --- /dev/null +++ b/bonus-common-biz/src/main/java/com/bonus/common/biz/factory/RemoteDataFallbackFactory.java @@ -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 { + 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 uploadDevStatus(String obj, String source) + { + return R.fail("设备数据上传失败:" + throwable.getMessage()); + } + + @Override + public R uploadCgqData(String obj, String source) { + return R.fail("数据上传失败:" + throwable.getMessage()); + } + + @Override + public R uploadCjData(String obj, String source) { + return R.fail("数据上传失败:" + throwable.getMessage()); + } + + @Override + public R uploadLlCgqData(String obj, String source) { + return R.fail("数据上传失败:" + throwable.getMessage()); + } + + @Override + public R uploadSafetyHatData(String obj, String source) { + return R.fail("数据上传失败:" + throwable.getMessage()); + } + + @Override + public R uploadSwHjData(String obj, String source) { + return R.fail("数据上传失败:" + throwable.getMessage()); + } + + @Override + public R uploadYxkjData(String obj, String source) { + return R.fail("数据上传失败:" + throwable.getMessage()); + } + + @Override + public R 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; + } + + }; + } +} diff --git a/bonus-modules/base/src/main/java/com/bonus/base/BaseApplication.java b/bonus-modules/base/src/main/java/com/bonus/base/BaseApplication.java index c305944..ccbc651 100644 --- a/bonus-modules/base/src/main/java/com/bonus/base/BaseApplication.java +++ b/bonus-modules/base/src/main/java/com/bonus/base/BaseApplication.java @@ -6,6 +6,7 @@ import com.bonus.common.swagger.annotation.EnableCustomSwagger2; import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; 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 @EnableCustomSwagger2 @EnableRyFeignClients -@SpringBootApplication(exclude = { DataSourceAutoConfiguration.class }) -public class BaseApplication -{ - public static void main(String[] args) - { +@SpringBootApplication(scanBasePackages = {"com.bonus.common.biz", "com.bonus.base.**"}, exclude = { DataSourceAutoConfiguration.class }) +@EnableScheduling +public class BaseApplication { + public static void main(String[] args) { SpringApplication.run(BaseApplication.class, args); - System.out.println("(♥◠‿◠)ノ゙ 基础模块启动成功 ლ(´ڡ`ლ)゙ \n" + + System.out.println("(♥◠‿◠)ノ゙ bonus-base基础模块启动成功 ლ(´ڡ`ლ)゙ \n" + " .-------. ____ __ \n" + " | _ _ \\ \\ \\ / / \n" + " | ( ' ) | \\ _. / ' \n" + diff --git a/bonus-modules/base/src/main/java/com/bonus/base/basic/domain/TbBdDeviceRecord.java b/bonus-modules/base/src/main/java/com/bonus/base/basic/domain/TbBdDeviceRecord.java index fa848ed..05c665a 100644 --- a/bonus-modules/base/src/main/java/com/bonus/base/basic/domain/TbBdDeviceRecord.java +++ b/bonus-modules/base/src/main/java/com/bonus/base/basic/domain/TbBdDeviceRecord.java @@ -4,6 +4,7 @@ import com.fasterxml.jackson.annotation.JsonFormat; import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModelProperty; import lombok.Data; +import lombok.experimental.Accessors; import javax.validation.constraints.Size; import java.io.Serializable; @@ -18,6 +19,7 @@ import java.util.Date; */ @ApiModel(description="边带记录设备表") @Data +@Accessors(chain = true) // 允许链式调用 public class TbBdDeviceRecord implements Serializable { /** * id @@ -76,6 +78,12 @@ public class TbBdDeviceRecord implements Serializable { @ApiModelProperty(value="工程id") private Long proId; + @ApiModelProperty(value="设备状态 0离线 1在线") + private Integer devStatus; + + @ApiModelProperty(value="设备状态时间") + private Date statusTime; + /** * 审核人 */ diff --git a/bonus-modules/base/src/main/java/com/bonus/base/basic/domain/TbBdRecord.java b/bonus-modules/base/src/main/java/com/bonus/base/basic/domain/TbBdRecord.java index 978211c..52c4d22 100644 --- a/bonus-modules/base/src/main/java/com/bonus/base/basic/domain/TbBdRecord.java +++ b/bonus-modules/base/src/main/java/com/bonus/base/basic/domain/TbBdRecord.java @@ -4,6 +4,7 @@ import com.fasterxml.jackson.annotation.JsonFormat; import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModelProperty; import lombok.Data; +import lombok.experimental.Accessors; import javax.validation.constraints.NotBlank; import javax.validation.constraints.NotNull; @@ -16,14 +17,12 @@ import java.util.List; *@PackagePath: com.bonus.base.domain *@author : 阮世耀 *@CreateTime: 2024-09-11 15:46 - *@Description: 描述 + *@Description: 边带申请记录表 *@version : 1.0 */ -/** - * 边带申请记录表 - */ @ApiModel(description="边带申请记录表") @Data +@Accessors(chain = true) // 允许链式调用 public class TbBdRecord implements Serializable { /** * 主键 diff --git a/bonus-modules/base/src/main/java/com/bonus/base/basic/mapper/TbBdDeviceRecordMapper.java b/bonus-modules/base/src/main/java/com/bonus/base/basic/mapper/TbBdDeviceRecordMapper.java index 7046a9b..12b9f5d 100644 --- a/bonus-modules/base/src/main/java/com/bonus/base/basic/mapper/TbBdDeviceRecordMapper.java +++ b/bonus-modules/base/src/main/java/com/bonus/base/basic/mapper/TbBdDeviceRecordMapper.java @@ -20,6 +20,8 @@ public interface TbBdDeviceRecordMapper { int insert(TbBdDeviceRecord record); + int replaceInto(TbBdDeviceRecord record); + int insertSelective(TbBdDeviceRecord record); TbBdDeviceRecord selectByPrimaryKey(Long id); diff --git a/bonus-modules/base/src/main/java/com/bonus/base/basic/mapper/TbBdRecordMapper.java b/bonus-modules/base/src/main/java/com/bonus/base/basic/mapper/TbBdRecordMapper.java index c049e5c..4d36c65 100644 --- a/bonus-modules/base/src/main/java/com/bonus/base/basic/mapper/TbBdRecordMapper.java +++ b/bonus-modules/base/src/main/java/com/bonus/base/basic/mapper/TbBdRecordMapper.java @@ -18,6 +18,8 @@ public interface TbBdRecordMapper { int insertSelective(TbBdRecord record); + int replaceInto(TbBdRecord record); + TbBdRecord selectByPrimaryKey(Long id); int updateByPrimaryKeySelective(TbBdRecord record); diff --git a/bonus-modules/base/src/main/java/com/bonus/base/screen/service/impl/DataGenderTaskServiceImpl.java b/bonus-modules/base/src/main/java/com/bonus/base/screen/service/impl/DataGenderTaskServiceImpl.java new file mode 100644 index 0000000..74a832f --- /dev/null +++ b/bonus-modules/base/src/main/java/com/bonus/base/screen/service/impl/DataGenderTaskServiceImpl.java @@ -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); + } + + } + + +} diff --git a/bonus-modules/base/src/main/resources/mapper/base/basic/TbBdDeviceRecordMapper.xml b/bonus-modules/base/src/main/resources/mapper/base/basic/TbBdDeviceRecordMapper.xml index b1d6c5f..a5bd828 100644 --- a/bonus-modules/base/src/main/resources/mapper/base/basic/TbBdDeviceRecordMapper.xml +++ b/bonus-modules/base/src/main/resources/mapper/base/basic/TbBdDeviceRecordMapper.xml @@ -40,6 +40,17 @@ #{devCode,jdbcType=VARCHAR}, #{unitName,jdbcType=VARCHAR}, #{areaName,jdbcType=VARCHAR}, #{devUser,jdbcType=VARCHAR}, #{devUserPhone,jdbcType=VARCHAR}, #{proId}) + + + 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 into tb_bd_device_record @@ -304,4 +315,5 @@ WHERE bd.id = #{id} and bp.del_flag = 0 + diff --git a/bonus-modules/base/src/main/resources/mapper/base/basic/TbBdRecordMapper.xml b/bonus-modules/base/src/main/resources/mapper/base/basic/TbBdRecordMapper.xml index 5a7e541..e814817 100644 --- a/bonus-modules/base/src/main/resources/mapper/base/basic/TbBdRecordMapper.xml +++ b/bonus-modules/base/src/main/resources/mapper/base/basic/TbBdRecordMapper.xml @@ -238,5 +238,10 @@ where id = #{id,jdbcType=BIGINT} - + + 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}) + diff --git a/bonus-modules/data/src/main/java/com/bonus/data/DataApplication.java b/bonus-modules/data/src/main/java/com/bonus/data/DataApplication.java index d1de4b7..c4a9985 100644 --- a/bonus-modules/data/src/main/java/com/bonus/data/DataApplication.java +++ b/bonus-modules/data/src/main/java/com/bonus/data/DataApplication.java @@ -21,7 +21,7 @@ public class DataApplication public static void main(String[] args) { SpringApplication.run(DataApplication.class, args); - System.out.println("(♥◠‿◠)ノ゙ 基础模块启动成功 ლ(´ڡ`ლ)゙ \n" + + System.out.println("(♥◠‿◠)ノ゙ Data数据模块启动成功 ლ(´ڡ`ლ)゙ \n" + " .-------. ____ __ \n" + " | _ _ \\ \\ \\ / / \n" + " | ( ' ) | \\ _. / ' \n" + diff --git a/bonus-modules/data/src/main/java/com/bonus/data/controller/DataCenterController.java b/bonus-modules/data/src/main/java/com/bonus/data/controller/DataCenterController.java index 21f6303..37f80cc 100644 --- a/bonus-modules/data/src/main/java/com/bonus/data/controller/DataCenterController.java +++ b/bonus-modules/data/src/main/java/com/bonus/data/controller/DataCenterController.java @@ -61,6 +61,7 @@ public class DataCenterController extends BaseController { public AjaxResult uploadCjData(@RequestBody String obj){ return service.uploadCjData(obj); } + /** * 室外环境检测 上报数据 * @return diff --git a/bonus-modules/data/src/main/resources/mapper/data/DataCenterMapper.xml b/bonus-modules/data/src/main/resources/mapper/data/DataCenterMapper.xml index 646fb32..0dd5697 100644 --- a/bonus-modules/data/src/main/resources/mapper/data/DataCenterMapper.xml +++ b/bonus-modules/data/src/main/resources/mapper/data/DataCenterMapper.xml @@ -8,12 +8,12 @@ dev_type, dev_code, dev_name, dev_status,dev_warn, del_flag, dev_err, dev_factory, remark, pro_name, - pro_code, rel_id,bd_id,rel_type + pro_code, rel_id,bd_id )values (#{deviceType},#{deviceCode},#{deviceName}, #{deviceOnlineState},#{deviceAlarmState},0, #{deviceFailureState},#{deviceFactory},#{remark},#{deviceProjectName}, - #{deviceProjectCode},#{id},#{bdId},#{relType} + #{deviceProjectCode},#{id},#{bdId} ) @@ -50,8 +50,7 @@ dev_status= #{deviceOnlineState},dev_warn=#{deviceAlarmState}, dev_err= #{deviceFailureState}, dev_factory=#{deviceFactory}, remark=#{remark}, pro_name=#{deviceProjectCode}, - pro_code=#{deviceProjectCode}, - rel_type=#{relType} + pro_code=#{deviceProjectCode} where rel_id=#{id} and bd_id=#{bdId}