From e0ef31b5727c28af2813ff184647ed366cd2cca2 Mon Sep 17 00:00:00 2001
From: zhanghua <314079846@qq.com>
Date: 星期二, 28 二月 2023 17:45:42 +0800
Subject: [PATCH] 油烟接口
---
ycl-smoke/src/main/resources/logback-spring.xml | 128 ++
ycl-smoke/src/main/resources/application.yml | 92 +
ycl-smoke/src/main/java/com/ycl/smoke/config/feign/FeignGlobalConfiguration.java | 20
ycl-smoke/src/main/java/com/ycl/smoke/remote/service/ISmokeDetectionService.java | 57
ycl-smoke/src/main/java/com/ycl/smoke/config/feign/FeignConfiguration.java | 22
ycl-smoke/src/main/java/com/ycl/smoke/config/CommonSecurityConfig.java | 62 +
ycl-smoke/src/main/java/com/ycl/smoke/entity/OdsAlarmRecord.java | 139 ++
ycl-smoke/src/main/resources/mapper/smoke/OdsInTimeMapper.xml | 46
ycl-smoke/src/main/resources/mapper/smoke/OdsLocaleMapper.xml | 75 +
ycl-smoke/src/main/java/com/ycl/smoke/config/RestTemplateConfig.java | 14
ycl-smoke/src/main/resources/mapper/smoke/OdsDetectorDailyMapper.xml | 49
ycl-smoke/src/main/java/com/ycl/smoke/service/impl/OdsInTimeServiceImpl.java | 20
ycl-smoke/src/main/java/com/ycl/smoke/remote/dto/TenMinParamDto.java | 22
ycl-smoke/src/main/java/com/ycl/smoke/service/IOdsAlarmMsgService.java | 16
ycl-smoke/src/main/java/com/ycl/smoke/remote/dto/AlarmMsgParamDto.java | 29
ycl-smoke/src/main/java/com/ycl/smoke/service/impl/OdsDetectorDailyServiceImpl.java | 20
ycl-smoke/src/main/java/com/ycl/smoke/service/IOdsLocaleService.java | 16
ycl-smoke/src/main/java/com/ycl/smoke/service/impl/OdsTenMinDataServiceImpl.java | 20
ycl-smoke/src/main/java/com/ycl/smoke/config/YclSecurityConfig.java | 37
ycl-smoke/src/main/java/com/ycl/smoke/service/IOdsDetectorDailyService.java | 16
ycl-smoke/src/main/resources/mapper/smoke/OdsAlarmRecordMapper.xml | 33
ycl-smoke/src/main/java/com/ycl/smoke/mapper/OdsTenMinDataMapper.java | 16
ycl-smoke/src/main/java/com/ycl/smoke/service/IOdsCustomerService.java | 16
ycl-smoke/src/main/java/com/ycl/smoke/entity/OdsTenMinData.java | 107 +
ycl-smoke/src/main/java/com/ycl/smoke/mapper/OdsDetectorDailyMapper.java | 16
ycl-smoke/src/main/resources/mapper/smoke/OdsAlarmMsgMapper.xml | 20
ycl-smoke/src/main/java/com/ycl/smoke/entity/OdsCustomer.java | 153 ++
ycl-smoke/src/main/java/com/ycl/smoke/entity/OdsDetectorDaily.java | 276 ++++
ycl-smoke/src/main/java/com/ycl/smoke/remote/dto/AlarmMsgResponseDto.java | 23
ycl-smoke/src/main/java/com/ycl/smoke/mapper/OdsInTimeMapper.java | 16
ycl-smoke/src/main/java/com/ycl/smoke/mapper/OdsAlarmMsgMapper.java | 16
ycl-smoke/src/main/java/com/ycl/smoke/remote/dto/AlarmMsgDataVo.java | 25
ycl-smoke/src/main/java/com/ycl/smoke/service/IOdsInTimeService.java | 16
ycl-smoke/src/main/java/com/ycl/smoke/service/impl/OdsCustomerServiceImpl.java | 20
ycl-smoke/pom.xml | 51
ycl-smoke/src/main/java/com/ycl/smoke/remote/dto/AlarmMsgParamDateDto.java | 34
ycl-smoke/src/main/java/com/ycl/smoke/mapper/OdsLocaleMapper.java | 16
ycl-smoke/src/main/java/com/ycl/smoke/mapper/OdsAlarmRecordMapper.java | 16
ycl-smoke/src/main/java/com/ycl/smoke/entity/OdsCurAlarm.java | 236 +++
pom.xml | 6
ycl-smoke/src/main/java/com/ycl/smoke/mapper/OdsCurAlarmMapper.java | 16
ycl-smoke/src/main/java/com/ycl/smoke/service/IOdsCurAlarmService.java | 16
ycl-smoke/src/main/resources/application-pro.yml | 71 +
ycl-smoke/src/main/java/com/ycl/smoke/SmokeApplication.java | 49
ycl-smoke/src/main/resources/application-dev.yml | 73 +
ycl-smoke/src/main/resources/mapper/smoke/OdsCurAlarmMapper.xml | 49
ycl-smoke/src/main/java/com/ycl/smoke/entity/OdsInTime.java | 222 +++
ycl-smoke/src/main/java/com/ycl/smoke/entity/OdsLocale.java | 374 ++++++
ycl-smoke/src/main/java/com/ycl/smoke/service/impl/OdsAlarmRecordServiceImpl.java | 20
ycl-smoke/src/main/java/com/ycl/smoke/entity/OdsAlarmMsg.java | 74 +
ycl-smoke/src/main/java/com/ycl/smoke/remote/dto/DetectorDailyParamDto.java | 35
ycl-smoke/src/main/java/com/ycl/smoke/service/impl/OdsAlarmMsgServiceImpl.java | 20
ycl-generator/src/main/java/com/ycl/MysqlGenerator.java | 4
ycl-smoke/src/main/java/com/ycl/smoke/config/feign/MessageConverter.java | 15
ycl-smoke/src/main/java/com/ycl/smoke/remote/dto/DetectorDailyResponseDto.java | 24
ycl-smoke/src/main/java/com/ycl/smoke/service/impl/OdsCurAlarmServiceImpl.java | 20
ycl-smoke/src/main/java/com/ycl/smoke/task/ScheduledTask.java | 106 +
ycl-smoke/src/main/java/com/ycl/smoke/config/SecurityConfig.java | 82 +
ycl-smoke/src/main/java/com/ycl/smoke/mapper/OdsCustomerMapper.java | 16
ycl-smoke/src/main/java/com/ycl/smoke/remote/dto/SmokeResultResponseDto.java | 20
ycl-smoke/src/main/java/com/ycl/smoke/service/impl/OdsLocaleServiceImpl.java | 20
ycl-smoke/src/main/java/com/ycl/smoke/remote/dto/LoginParamDto.java | 24
ycl-smoke/src/main/resources/mapper/smoke/OdsCustomerMapper.xml | 35
ycl-smoke/src/main/java/com/ycl/smoke/remote/dto/LoginResponseDto.java | 15
ycl-smoke/src/main/java/com/ycl/smoke/remote/dto/ResultsPageInfo.java | 12
ycl-smoke/src/main/java/com/ycl/smoke/service/IOdsTenMinDataService.java | 16
ycl-smoke/src/main/java/com/ycl/smoke/config/Knife4jSwaggerConfig.java | 75 +
ycl-smoke/src/main/java/com/ycl/smoke/config/feign/UnderlineQueryEncoder.java | 70 +
ycl-smoke/src/main/resources/mapper/smoke/OdsTenMinDataMapper.xml | 25
ycl-smoke/src/main/java/com/ycl/smoke/service/IOdsAlarmRecordService.java | 16
70 files changed, 3,624 insertions(+), 2 deletions(-)
diff --git a/pom.xml b/pom.xml
index fbc6e74..64fefc5 100644
--- a/pom.xml
+++ b/pom.xml
@@ -50,6 +50,7 @@
<module>ycl-platform</module>
<module>ycl-common</module>
<module>ycl-generator</module>
+ <module>ycl-smoke</module>
</modules>
<dependencies>
@@ -190,6 +191,11 @@
<artifactId>spring-cloud-starter-openfeign</artifactId>
<version>3.1.3</version>
</dependency>
+ <dependency>
+ <groupId>commons-logging</groupId>
+ <artifactId>commons-logging</artifactId>
+ <version>1.2</version>
+ </dependency>
</dependencies>
</project>
diff --git a/ycl-generator/src/main/java/com/ycl/MysqlGenerator.java b/ycl-generator/src/main/java/com/ycl/MysqlGenerator.java
index 2c899e7..f3b2007 100644
--- a/ycl-generator/src/main/java/com/ycl/MysqlGenerator.java
+++ b/ycl-generator/src/main/java/com/ycl/MysqlGenerator.java
@@ -58,7 +58,7 @@
// 鍏ㄥ眬閰嶇疆
GlobalConfig gc = new GlobalConfig();
final String projectPath = System.getProperty("user.dir");
- gc.setOutputDir(projectPath + "/ycl-generator/src/main/java");
+ gc.setOutputDir(projectPath + "/ycl-smoke/src/main/java");
gc.setAuthor("lyq");//浣滆��
gc.setBaseResultMap(true); //mapper.xml 鐢熸垚 ResultMap
gc.setBaseColumnList(true); //mapper.xml 鐢熸垚 ColumnList
@@ -116,7 +116,7 @@
// 鑷畾涔夎緭鍑烘枃浠跺悕 锛� 濡傛灉浣� Entity 璁剧疆浜嗗墠鍚庣紑銆佹澶勬敞鎰� xml 鐨勫悕绉颁細璺熺潃鍙戠敓鍙樺寲锛侊紒
// return projectPath + "/coinyee-contract-generator/src/main/resources/mapper/" + pc.getModuleName()
// + "/" + tableInfo.getEntityName() + "Mapper" + StringPool.DOT_XML;
- return projectPath + "/ycl-generator/src/main/resources/mapper/"
+ return projectPath + "/ycl-smoke/src/main/resources/mapper/"
+ packageName + "/" + tableInfo.getEntityName() + "Mapper" + StringPool.DOT_XML;
}
});
diff --git a/ycl-smoke/pom.xml b/ycl-smoke/pom.xml
new file mode 100644
index 0000000..1ac7708
--- /dev/null
+++ b/ycl-smoke/pom.xml
@@ -0,0 +1,51 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+ xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd">
+ <modelVersion>4.0.0</modelVersion>
+ <parent>
+ <groupId>com.ycl</groupId>
+ <artifactId>ycl-server</artifactId>
+ <version>1.0.0</version>
+ </parent>
+
+ <groupId>com.ycl</groupId>
+ <artifactId>ycl-smoke</artifactId>
+ <version>1.0.0</version>
+ <name>ycl-smoke</name>
+ <description>鍚庣妯″潡</description>
+
+ <properties>
+ <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
+ </properties>
+
+
+ <dependencies>
+ <dependency>
+ <groupId>com.ycl</groupId>
+ <artifactId>ycl-common</artifactId>
+ <version>1.0.0</version>
+ </dependency>
+ <dependency>
+ <groupId>org.springframework.boot</groupId>
+ <artifactId>spring-boot-starter-test</artifactId>
+ <scope>test</scope>
+ </dependency>
+ <dependency>
+ <groupId>com.ycl</groupId>
+ <artifactId>ycl-generator</artifactId>
+ <version>1.0.0</version>
+ <scope>compile</scope>
+ </dependency>
+ </dependencies>
+
+ <build>
+ <finalName>ycl-smoke</finalName>
+ <plugins>
+ <plugin>
+ <groupId>org.springframework.boot</groupId>
+ <artifactId>spring-boot-maven-plugin</artifactId>
+ </plugin>
+ </plugins>
+ </build>
+
+</project>
diff --git a/ycl-smoke/src/main/java/com/ycl/smoke/SmokeApplication.java b/ycl-smoke/src/main/java/com/ycl/smoke/SmokeApplication.java
new file mode 100644
index 0000000..9cffa4a
--- /dev/null
+++ b/ycl-smoke/src/main/java/com/ycl/smoke/SmokeApplication.java
@@ -0,0 +1,49 @@
+package com.ycl.smoke;
+
+import lombok.extern.slf4j.Slf4j;
+import org.mybatis.spring.annotation.MapperScan;
+import org.springframework.boot.SpringApplication;
+import org.springframework.boot.autoconfigure.SpringBootApplication;
+import org.springframework.cloud.openfeign.EnableFeignClients;
+import org.springframework.context.ConfigurableApplicationContext;
+import org.springframework.context.annotation.ComponentScan;
+import org.springframework.context.annotation.Configuration;
+import org.springframework.context.annotation.EnableAspectJAutoProxy;
+import org.springframework.core.env.Environment;
+import org.springframework.scheduling.annotation.EnableAsync;
+import org.springframework.scheduling.annotation.EnableScheduling;
+import org.springframework.transaction.annotation.EnableTransactionManagement;
+
+import java.net.InetAddress;
+import java.net.UnknownHostException;
+
+@Slf4j
+@Configuration
+@EnableAspectJAutoProxy(proxyTargetClass = true, exposeProxy = true)
+@EnableAsync(proxyTargetClass = true)
+@EnableScheduling
+@EnableFeignClients
+@EnableTransactionManagement(proxyTargetClass = true)
+@SpringBootApplication
+@ComponentScan("com.ycl")
+@MapperScan("com.ycl.smoke.mapper")
+public class SmokeApplication {
+
+ public static void main(String[] args) throws UnknownHostException {
+ ConfigurableApplicationContext application = SpringApplication.run(SmokeApplication.class, args);
+
+ Environment env = application.getEnvironment();
+ log.info("\n----------------------------------------------------------\n\t" +
+ "搴旂敤 '{}' 杩愯鎴愬姛! 璁块棶杩炴帴:\n\t" +
+ "Swagger鏂囨。: \t\thttp://{}:{}{}/doc.html\n\t" +
+ "鏁版嵁搴撶洃鎺�: \t\thttp://{}:{}/druid\n" +
+ "----------------------------------------------------------",
+ env.getProperty("spring.application.name"),
+ InetAddress.getLocalHost().getHostAddress(),
+ env.getProperty("server.port"),
+ env.getProperty("server.servlet.context-path"),
+ "127.0.0.1",
+ env.getProperty("server.port"));
+ }
+
+}
diff --git a/ycl-smoke/src/main/java/com/ycl/smoke/config/CommonSecurityConfig.java b/ycl-smoke/src/main/java/com/ycl/smoke/config/CommonSecurityConfig.java
new file mode 100644
index 0000000..176f011
--- /dev/null
+++ b/ycl-smoke/src/main/java/com/ycl/smoke/config/CommonSecurityConfig.java
@@ -0,0 +1,62 @@
+package com.ycl.smoke.config;
+
+import com.ycl.component.*;
+import com.ycl.config.IgnoreUrlsConfig;
+import com.ycl.utils.JwtTokenUtil;
+import org.springframework.context.annotation.Bean;
+import org.springframework.context.annotation.Configuration;
+import org.springframework.security.crypto.bcrypt.BCryptPasswordEncoder;
+import org.springframework.security.crypto.password.PasswordEncoder;
+
+/**
+ * SpringSecurity閫氱敤閰嶇疆
+ * 鍖呮嫭閫氱敤Bean銆丼ecurity閫氱敤Bean鍙婂姩鎬佹潈闄愰�氱敤Bean
+ */
+@Configuration
+public class CommonSecurityConfig {
+
+ @Bean
+ public PasswordEncoder passwordEncoder() {
+ return new BCryptPasswordEncoder();
+ }
+
+ @Bean
+ public IgnoreUrlsConfig ignoreUrlsConfig() {
+ return new IgnoreUrlsConfig();
+ }
+
+ @Bean
+ public JwtTokenUtil jwtTokenUtil() {
+ return new JwtTokenUtil();
+ }
+
+ @Bean
+ public RestfulAccessDeniedHandler restfulAccessDeniedHandler() {
+ return new RestfulAccessDeniedHandler();
+ }
+
+ @Bean
+ public RestAuthenticationEntryPoint restAuthenticationEntryPoint() {
+ return new RestAuthenticationEntryPoint();
+ }
+
+ @Bean
+ public JwtAuthenticationTokenFilter jwtAuthenticationTokenFilter(){
+ return new JwtAuthenticationTokenFilter();
+ }
+
+ @Bean
+ public DynamicAccessDecisionManager dynamicAccessDecisionManager() {
+ return new DynamicAccessDecisionManager();
+ }
+
+ @Bean
+ public DynamicSecurityMetadataSource dynamicSecurityMetadataSource() {
+ return new DynamicSecurityMetadataSource();
+ }
+
+ @Bean
+ public DynamicSecurityFilter dynamicSecurityFilter(){
+ return new DynamicSecurityFilter();
+ }
+}
diff --git a/ycl-smoke/src/main/java/com/ycl/smoke/config/Knife4jSwaggerConfig.java b/ycl-smoke/src/main/java/com/ycl/smoke/config/Knife4jSwaggerConfig.java
new file mode 100644
index 0000000..d1d5970
--- /dev/null
+++ b/ycl-smoke/src/main/java/com/ycl/smoke/config/Knife4jSwaggerConfig.java
@@ -0,0 +1,75 @@
+package com.ycl.smoke.config;
+
+import org.springframework.context.annotation.Bean;
+import org.springframework.context.annotation.Configuration;
+import springfox.documentation.builders.ApiInfoBuilder;
+import springfox.documentation.builders.PathSelectors;
+import springfox.documentation.builders.RequestHandlerSelectors;
+import springfox.documentation.service.*;
+import springfox.documentation.spi.DocumentationType;
+import springfox.documentation.spi.service.contexts.SecurityContext;
+import springfox.documentation.spring.web.plugins.Docket;
+import springfox.documentation.swagger2.annotations.EnableSwagger2;
+
+import java.util.ArrayList;
+import java.util.List;
+
+/**
+ * @Author: lyq
+ * @Date: 2022/09/06
+ * @description: Swagger API鏂囨。鐩稿叧閰嶇疆
+ */
+@Configuration
+@EnableSwagger2
+public class Knife4jSwaggerConfig {
+ @Bean
+ public Docket createRestApi(){
+ return new Docket(DocumentationType.SWAGGER_2)
+ .apiInfo(apiInfo())
+ .select()
+ .apis(RequestHandlerSelectors.basePackage("com.ycl.controller"))
+ .paths(PathSelectors.any())
+ .build()
+ .securitySchemes(securitySchemes())
+ .securityContexts(securityContexts());
+ }
+
+ private ApiInfo apiInfo() {
+ return new ApiInfoBuilder()
+ .title("閬傛槍鎺ュ彛鏂囨。绠$悊绯荤粺")
+ .description("閬傛槍鍚庡彴妯″潡")
+ .version("1.0").contact(new Contact("lyq",null,null))
+ .build();
+ }
+
+ private List<SecurityScheme> securitySchemes() {
+ //璁剧疆璇锋眰澶翠俊鎭�
+ List<SecurityScheme> result = new ArrayList<>();
+ ApiKey apiKey = new ApiKey("Authorization", "Authorization", "header");
+ result.add(apiKey);
+ return result;
+ }
+
+ private List<SecurityContext> securityContexts() {
+ //璁剧疆闇�瑕佺櫥褰曡璇佺殑璺緞
+ List<SecurityContext> result = new ArrayList<>();
+ result.add(getContextByPath("/*/.*"));
+ return result;
+ }
+
+ private SecurityContext getContextByPath(String pathRegex){
+ return SecurityContext.builder()
+ .securityReferences(defaultAuth())
+ .forPaths(PathSelectors.regex(pathRegex))
+ .build();
+ }
+
+ private List<SecurityReference> defaultAuth() {
+ List<SecurityReference> result = new ArrayList<>();
+ AuthorizationScope authorizationScope = new AuthorizationScope("global", "accessEverything");
+ AuthorizationScope[] authorizationScopes = new AuthorizationScope[1];
+ authorizationScopes[0] = authorizationScope;
+ result.add(new SecurityReference("Authorization", authorizationScopes));
+ return result;
+ }
+}
diff --git a/ycl-smoke/src/main/java/com/ycl/smoke/config/RestTemplateConfig.java b/ycl-smoke/src/main/java/com/ycl/smoke/config/RestTemplateConfig.java
new file mode 100644
index 0000000..219134a
--- /dev/null
+++ b/ycl-smoke/src/main/java/com/ycl/smoke/config/RestTemplateConfig.java
@@ -0,0 +1,14 @@
+package com.ycl.smoke.config;
+
+import org.springframework.context.annotation.Bean;
+import org.springframework.context.annotation.Configuration;
+import org.springframework.web.client.RestTemplate;
+
+@Configuration
+public class RestTemplateConfig {
+
+ @Bean
+ public RestTemplate restTemplate() {
+ return new RestTemplate();
+ }
+}
diff --git a/ycl-smoke/src/main/java/com/ycl/smoke/config/SecurityConfig.java b/ycl-smoke/src/main/java/com/ycl/smoke/config/SecurityConfig.java
new file mode 100644
index 0000000..51719ca
--- /dev/null
+++ b/ycl-smoke/src/main/java/com/ycl/smoke/config/SecurityConfig.java
@@ -0,0 +1,82 @@
+package com.ycl.smoke.config;
+
+import com.ycl.component.*;
+import com.ycl.config.IgnoreUrlsConfig;
+import com.ycl.config.WebSecurityCorsFilter;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.context.annotation.Bean;
+import org.springframework.context.annotation.Configuration;
+import org.springframework.http.HttpMethod;
+import org.springframework.security.config.annotation.web.builders.HttpSecurity;
+import org.springframework.security.config.annotation.web.configurers.ExpressionUrlAuthorizationConfigurer;
+import org.springframework.security.config.http.SessionCreationPolicy;
+import org.springframework.security.web.SecurityFilterChain;
+import org.springframework.security.web.access.channel.ChannelProcessingFilter;
+import org.springframework.security.web.access.intercept.FilterSecurityInterceptor;
+import org.springframework.security.web.authentication.UsernamePasswordAuthenticationFilter;
+
+
+/**
+ * SpringSecurity 5.4.x浠ヤ笂鏂扮敤娉曢厤缃�
+ * 涓洪伩鍏嶅惊鐜緷璧栵紝浠呯敤浜庨厤缃瓾ttpSecurity
+ * Created by macro on 2019/11/5.
+ */
+@Configuration
+public class SecurityConfig {
+
+ @Autowired
+ private IgnoreUrlsConfig ignoreUrlsConfig;
+ @Autowired
+ private RestfulAccessDeniedHandler restfulAccessDeniedHandler;
+ @Autowired
+ private RestAuthenticationEntryPoint restAuthenticationEntryPoint;
+ @Autowired
+ private JwtAuthenticationTokenFilter jwtAuthenticationTokenFilter;
+ @Autowired
+ private DynamicSecurityService dynamicSecurityService;
+ @Autowired
+ private DynamicSecurityFilter dynamicSecurityFilter;
+
+ @Bean
+ SecurityFilterChain filterChain(HttpSecurity httpSecurity) throws Exception {
+ ExpressionUrlAuthorizationConfigurer<HttpSecurity>.ExpressionInterceptUrlRegistry registry = httpSecurity
+ .authorizeRequests();
+ //涓嶉渶瑕佷繚鎶ょ殑璧勬簮璺緞鍏佽璁块棶
+ for (String url : ignoreUrlsConfig.getUrls()) {
+ registry.antMatchers(url).permitAll();
+ }
+ //鍏佽璺ㄥ煙璇锋眰鐨凮PTIONS璇锋眰
+ registry.antMatchers(HttpMethod.OPTIONS)
+ .permitAll();
+ // 浠讳綍璇锋眰闇�瑕佽韩浠借璇�
+ registry.and()
+ .authorizeRequests()
+ .anyRequest()
+ .authenticated()
+ // 鍏抽棴璺ㄧ珯璇锋眰闃叉姢鍙婁笉浣跨敤session
+ .and()
+ .csrf()
+ .disable()
+ .sessionManagement()
+ .sessionCreationPolicy(SessionCreationPolicy.STATELESS)
+ // 鑷畾涔夋潈闄愭嫆缁濆鐞嗙被
+ .and()
+ .exceptionHandling()
+ .accessDeniedHandler(restfulAccessDeniedHandler)
+ .authenticationEntryPoint(restAuthenticationEntryPoint)
+ // 鑷畾涔夋潈闄愭嫤鎴櫒JWT杩囨护鍣�
+ .and()
+ .addFilterBefore(webSecurityCorsFilter(), ChannelProcessingFilter.class)
+ .addFilterBefore(jwtAuthenticationTokenFilter, UsernamePasswordAuthenticationFilter.class);
+ //鏈夊姩鎬佹潈闄愰厤缃椂娣诲姞鍔ㄦ�佹潈闄愭牎楠岃繃婊ゅ櫒
+ if (dynamicSecurityService != null) {
+ registry.and().addFilterBefore(dynamicSecurityFilter, FilterSecurityInterceptor.class);
+ }
+ return httpSecurity.build();
+ }
+
+ @Bean
+ public WebSecurityCorsFilter webSecurityCorsFilter() {
+ return new WebSecurityCorsFilter();
+ }
+}
diff --git a/ycl-smoke/src/main/java/com/ycl/smoke/config/YclSecurityConfig.java b/ycl-smoke/src/main/java/com/ycl/smoke/config/YclSecurityConfig.java
new file mode 100644
index 0000000..343b9c6
--- /dev/null
+++ b/ycl-smoke/src/main/java/com/ycl/smoke/config/YclSecurityConfig.java
@@ -0,0 +1,37 @@
+package com.ycl.smoke.config;
+
+import com.ycl.component.DynamicSecurityService;
+import com.ycl.entity.user.UmsMenu;
+import com.ycl.service.user.UmsAdminService;
+import com.ycl.service.user.UmsMenuService;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.context.annotation.Bean;
+import org.springframework.context.annotation.Configuration;
+import org.springframework.security.access.ConfigAttribute;
+import org.springframework.security.core.userdetails.UserDetailsService;
+
+import java.util.List;
+import java.util.Map;
+import java.util.concurrent.ConcurrentHashMap;
+
+/**
+ * security妯″潡鐩稿叧閰嶇疆
+ * 鑷畾涔夐厤缃紝鐢ㄤ簬閰嶇疆濡備綍鑾峰彇鐢ㄦ埛淇℃伅鍙婂姩鎬佹潈闄�
+ */
+@Configuration
+public class YclSecurityConfig {
+
+
+
+ @Bean
+ public DynamicSecurityService dynamicSecurityService() {
+ return new DynamicSecurityService() {
+ @Override
+ public Map<String, ConfigAttribute> loadDataSource() {
+ Map<String, ConfigAttribute> map = new ConcurrentHashMap<>();
+
+ return map;
+ }
+ };
+ }
+}
diff --git a/ycl-smoke/src/main/java/com/ycl/smoke/config/feign/FeignConfiguration.java b/ycl-smoke/src/main/java/com/ycl/smoke/config/feign/FeignConfiguration.java
new file mode 100644
index 0000000..8db4d17
--- /dev/null
+++ b/ycl-smoke/src/main/java/com/ycl/smoke/config/feign/FeignConfiguration.java
@@ -0,0 +1,22 @@
+package com.ycl.smoke.config.feign;
+
+import feign.Feign;
+import feign.Logger;
+import feign.Retryer;
+import org.springframework.context.annotation.Bean;
+import org.springframework.context.annotation.Configuration;
+
+@Configuration
+public class FeignConfiguration {
+ @Bean
+ Logger.Level feignLoggerLevel() {
+ return Logger.Level.FULL;
+ }
+
+ @Bean
+ public Feign.Builder feignBuilder() {
+ return Feign.builder()
+ .queryMapEncoder(new UnderlineQueryEncoder())
+ .retryer(Retryer.NEVER_RETRY);
+ }
+}
\ No newline at end of file
diff --git a/ycl-smoke/src/main/java/com/ycl/smoke/config/feign/FeignGlobalConfiguration.java b/ycl-smoke/src/main/java/com/ycl/smoke/config/feign/FeignGlobalConfiguration.java
new file mode 100644
index 0000000..d2b7cbe
--- /dev/null
+++ b/ycl-smoke/src/main/java/com/ycl/smoke/config/feign/FeignGlobalConfiguration.java
@@ -0,0 +1,20 @@
+package com.ycl.smoke.config.feign;
+
+import feign.codec.Decoder;
+import org.springframework.beans.factory.ObjectFactory;
+import org.springframework.boot.autoconfigure.http.HttpMessageConverters;
+import org.springframework.cloud.openfeign.support.SpringDecoder;
+import org.springframework.context.annotation.Bean;
+import org.springframework.context.annotation.Configuration;
+
+@Configuration
+public class FeignGlobalConfiguration {
+
+
+ @Bean
+ public Decoder feignDecoder(){
+ MessageConverter converter = new MessageConverter();
+ ObjectFactory<HttpMessageConverters> objectFactory = () -> new HttpMessageConverters(converter);
+ return new SpringDecoder(objectFactory);
+ }
+}
diff --git a/ycl-smoke/src/main/java/com/ycl/smoke/config/feign/MessageConverter.java b/ycl-smoke/src/main/java/com/ycl/smoke/config/feign/MessageConverter.java
new file mode 100644
index 0000000..1ebcf9c
--- /dev/null
+++ b/ycl-smoke/src/main/java/com/ycl/smoke/config/feign/MessageConverter.java
@@ -0,0 +1,15 @@
+package com.ycl.smoke.config.feign;
+
+import org.springframework.http.MediaType;
+import org.springframework.http.converter.json.MappingJackson2HttpMessageConverter;
+
+import java.util.ArrayList;
+import java.util.List;
+
+public class MessageConverter extends MappingJackson2HttpMessageConverter {
+ public MessageConverter(){
+ List<MediaType> mediaTypes = new ArrayList<>();
+ mediaTypes.add(MediaType.APPLICATION_JSON);
+ setSupportedMediaTypes(mediaTypes);
+ }
+}
\ No newline at end of file
diff --git a/ycl-smoke/src/main/java/com/ycl/smoke/config/feign/UnderlineQueryEncoder.java b/ycl-smoke/src/main/java/com/ycl/smoke/config/feign/UnderlineQueryEncoder.java
new file mode 100644
index 0000000..c08c6ba
--- /dev/null
+++ b/ycl-smoke/src/main/java/com/ycl/smoke/config/feign/UnderlineQueryEncoder.java
@@ -0,0 +1,70 @@
+package com.ycl.smoke.config.feign;
+
+import com.ycl.utils.StringUtils;
+import feign.Param;
+import feign.QueryMapEncoder;
+import feign.codec.EncodeException;
+
+import java.beans.IntrospectionException;
+import java.beans.Introspector;
+import java.beans.PropertyDescriptor;
+import java.lang.reflect.InvocationTargetException;
+import java.lang.reflect.Method;
+import java.util.*;
+
+public class UnderlineQueryEncoder implements QueryMapEncoder {
+ private final Map<Class<?>, ObjectParamMetadata> classToMetadata =
+ new HashMap();
+
+ @Override
+ public Map<String, Object> encode(Object object) throws EncodeException {
+ try {
+ ObjectParamMetadata metadata = getMetadata(object.getClass());
+ Map<String, Object> propertyNameToValue = new HashMap<String, Object>();
+ for (PropertyDescriptor pd : metadata.objectProperties) {
+ Method method = pd.getReadMethod();
+ Object value = method.invoke(object);
+ if (value != null && value != object) {
+ Param alias = method.getAnnotation(Param.class);
+ String name = alias != null ? alias.value() : pd.getName();
+ propertyNameToValue.put(StringUtils.camelToUnderlineLowerCase(name), value);
+ }
+ }
+ return propertyNameToValue;
+ } catch (IllegalAccessException | IntrospectionException | InvocationTargetException e) {
+ throw new EncodeException("Failure encoding object into query map", e);
+ }
+ }
+
+ private ObjectParamMetadata getMetadata(Class<?> objectType) throws IntrospectionException {
+ ObjectParamMetadata metadata = classToMetadata.get(objectType);
+ if (metadata == null) {
+ metadata = ObjectParamMetadata.parseObjectType(objectType);
+ classToMetadata.put(objectType, metadata);
+ }
+ return metadata;
+ }
+
+ private static class ObjectParamMetadata {
+
+ private final List<PropertyDescriptor> objectProperties;
+
+ private ObjectParamMetadata(List<PropertyDescriptor> objectProperties) {
+ this.objectProperties = Collections.unmodifiableList(objectProperties);
+ }
+
+ private static ObjectParamMetadata parseObjectType(Class<?> type)
+ throws IntrospectionException {
+ List<PropertyDescriptor> properties = new ArrayList<PropertyDescriptor>();
+
+ for (PropertyDescriptor pd : Introspector.getBeanInfo(type).getPropertyDescriptors()) {
+ boolean isGetterMethod = pd.getReadMethod() != null && !"class".equals(pd.getName());
+ if (isGetterMethod) {
+ properties.add(pd);
+ }
+ }
+
+ return new ObjectParamMetadata(properties);
+ }
+ }
+}
\ No newline at end of file
diff --git a/ycl-smoke/src/main/java/com/ycl/smoke/entity/OdsAlarmMsg.java b/ycl-smoke/src/main/java/com/ycl/smoke/entity/OdsAlarmMsg.java
new file mode 100644
index 0000000..3fe7783
--- /dev/null
+++ b/ycl-smoke/src/main/java/com/ycl/smoke/entity/OdsAlarmMsg.java
@@ -0,0 +1,74 @@
+package com.ycl.smoke.entity;
+
+import com.baomidou.mybatisplus.annotation.TableName;
+import com.baomidou.mybatisplus.annotation.Version;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.TableField;
+import java.io.Serializable;
+
+import com.fasterxml.jackson.annotation.JsonProperty;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+
+/**
+ * <p>
+ * 鎶ヨ娑堟伅
+ * </p>
+ *
+ * @author lyq
+ * @since 2023-02-28
+ */
+@Data
+@EqualsAndHashCode(callSuper = false)
+@TableName("ums_ods_alarm_msg")
+public class OdsAlarmMsg implements Serializable {
+
+ private static final long serialVersionUID = 1L;
+
+ /**
+ * Id
+ */
+ @TableId("id")
+ @JsonProperty("Id")
+ private String id;
+
+ /**
+ * 璁惧鐨刴n鏁版嵁
+ */
+ @TableField("mn")
+ @JsonProperty("MN")
+ private String mn;
+
+ /**
+ * 鏁版嵁鏀堕泦鏃堕棿
+ */
+ @TableField("acquit_at")
+ @JsonProperty("AcquitAt")
+ private Long acquitAt;
+
+ /**
+ * 鎸佹湁浜�
+ */
+ @TableField("owner")
+ @JsonProperty("Owner")
+ private String owner;
+
+ /**
+ * 鍐呭
+ */
+ @TableField("content")
+ @JsonProperty("Content")
+ private String content;
+
+ /**
+ * 娑堟伅绫诲瀷
+ */
+ @TableField("msg_type")
+ @JsonProperty("MsgType")
+ private String msgType;
+
+ @JsonProperty("Addr")
+ @TableField("addr")
+ private String addr;
+
+}
diff --git a/ycl-smoke/src/main/java/com/ycl/smoke/entity/OdsAlarmRecord.java b/ycl-smoke/src/main/java/com/ycl/smoke/entity/OdsAlarmRecord.java
new file mode 100644
index 0000000..5d4c4a5
--- /dev/null
+++ b/ycl-smoke/src/main/java/com/ycl/smoke/entity/OdsAlarmRecord.java
@@ -0,0 +1,139 @@
+package com.ycl.smoke.entity;
+
+import com.baomidou.mybatisplus.annotation.TableName;
+import com.baomidou.mybatisplus.annotation.Version;
+import com.baomidou.mybatisplus.annotation.TableId;
+import java.time.LocalDateTime;
+import com.baomidou.mybatisplus.annotation.TableField;
+import java.io.Serializable;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+
+/**
+ * <p>
+ * 鎶ヨ璁板綍
+ * </p>
+ *
+ * @author lyq
+ * @since 2023-02-28
+ */
+@Data
+@EqualsAndHashCode(callSuper = false)
+@TableName("ums_ods_alarm_record")
+public class OdsAlarmRecord implements Serializable {
+
+ private static final long serialVersionUID = 1L;
+
+ @TableId("id")
+ private String id;
+
+ /**
+ * 鐩戞祴鐐笽D
+ */
+ @TableField("local_id")
+ private String localId;
+
+ /**
+ * 璁惧缂栧彿
+ */
+ @TableField("mn")
+ private String mn;
+
+ /**
+ * 鏁版嵁绫诲瀷1锛氳秴鏍�2锛氬紓甯�
+ */
+ @TableField("typ")
+ private Integer typ;
+
+ /**
+ * 鎶ヨ鏃堕棿
+ */
+ @TableField("alarm_date")
+ private LocalDateTime alarmDate;
+
+ /**
+ * 璁惧绫诲瀷
+ */
+ @TableField("device_type")
+ private Integer deviceType;
+
+ /**
+ * 閲囬泦鏃堕棿
+ */
+ @TableField("acquit_at")
+ private Long acquitAt;
+
+ /**
+ * 澶勭悊鏃堕棿
+ */
+ @TableField("process_at")
+ private Long processAt;
+
+ /**
+ * 鎵�灞炲崟浣�
+ */
+ @TableField("owner")
+ private String owner;
+
+ /**
+ * 瑙e喅鏂规
+ */
+ @TableField("solution")
+ private String solution;
+
+ /**
+ * 澶勭悊鍦板潃
+ */
+ @TableField("processing_address")
+ private String processingAddress;
+
+ /**
+ * 鐐逛綅鍦板潃
+ */
+ @TableField("addr")
+ private String addr;
+
+ /**
+ * 澶勭悊浜篒D
+ */
+ @TableField("process_user_id")
+ private String processUserId;
+
+ /**
+ * 澶勭悊浜哄悕绉�
+ */
+ @TableField("process_user_name")
+ private String processUserName;
+
+ /**
+ * 澶勭悊鍘熷洜
+ */
+ @TableField("process_reason")
+ private String processReason;
+
+ /**
+ * 鍏宠仈鍦板潃
+ */
+ @TableField("created_at")
+ private LocalDateTime createdAt;
+
+ /**
+ * 鍦板潃搴忓垪
+ */
+ @TableField("update_at")
+ private LocalDateTime updateAt;
+
+ /**
+ * 鏌ヨ缁撴灉鎬绘暟
+ */
+ @TableField("total")
+ private Integer total;
+
+ /**
+ * 鎶ヨ鍥剧墖
+ */
+ @TableField("alarm_record_pics")
+ private String alarmRecordPics;
+
+
+}
diff --git a/ycl-smoke/src/main/java/com/ycl/smoke/entity/OdsCurAlarm.java b/ycl-smoke/src/main/java/com/ycl/smoke/entity/OdsCurAlarm.java
new file mode 100644
index 0000000..b94fb81
--- /dev/null
+++ b/ycl-smoke/src/main/java/com/ycl/smoke/entity/OdsCurAlarm.java
@@ -0,0 +1,236 @@
+package com.ycl.smoke.entity;
+
+import java.math.BigDecimal;
+import com.baomidou.mybatisplus.annotation.TableName;
+import com.baomidou.mybatisplus.annotation.Version;
+import com.baomidou.mybatisplus.annotation.TableId;
+import java.time.LocalDateTime;
+import com.baomidou.mybatisplus.annotation.TableField;
+import java.io.Serializable;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+
+/**
+ * <p>
+ * 鐩戞祴鐐圭粺璁�&鍋ュ悍鐮佺鐞�
+ * </p>
+ *
+ * @author lyq
+ * @since 2023-02-28
+ */
+@Data
+@EqualsAndHashCode(callSuper = false)
+@TableName("ums_ods_cur_alarm")
+public class OdsCurAlarm implements Serializable {
+
+ private static final long serialVersionUID = 1L;
+
+ @TableId("id")
+ private Integer id;
+
+ /**
+ * 寮傚父绂荤嚎澶╂暟
+ */
+ @TableField("abnormal_off_line_days")
+ private Integer abnormalOffLineDays;
+
+ /**
+ * 澶勭悊鐜�
+ */
+ @TableField("abnormal_off_line_process_ratio")
+ private Integer abnormalOffLineProcessRatio;
+
+ /**
+ * 寮傚父绂荤嚎寰呭鐞嗗ぉ鏁�
+ */
+ @TableField("abnormal_off_line_to_process_days")
+ private Integer abnormalOffLineToProcessDays;
+
+ /**
+ * 鍦板潃
+ */
+ @TableField("addr")
+ private String addr;
+
+ /**
+ * 鎺掓斁鐗╂祿搴︽姌绠�(鏄ㄦ棩)
+ */
+ @TableField("c_emissions")
+ private BigDecimal cEmissions;
+
+ /**
+ * 鍦ㄧ嚎鏃ュ钩鍧囨帓鏀炬祿搴�
+ */
+ @TableField("c_emissions_avg_online")
+ private BigDecimal cEmissionsAvgOnline;
+
+ /**
+ * 鏃ユ渶楂樻帓鏀炬祿搴�
+ */
+ @TableField("c_emissions_max")
+ private BigDecimal cEmissionsMax;
+
+ /**
+ * 鏃ユ渶楂樻帓鏀炬祿搴︽棩鏈�
+ */
+ @TableField("c_emissions_max_date")
+ private LocalDateTime cEmissionsMaxDate;
+
+ /**
+ * 棰楃矑鐗╂祿搴︽姌绠�(鏄ㄦ棩)
+ */
+ @TableField("c_granule")
+ private BigDecimal cGranule;
+
+ /**
+ * 闈炵敳鐑锋�荤儍娴撳害鎶樼畻 (鏄ㄦ棩)
+ */
+ @TableField("c_hydrocarbon")
+ private BigDecimal cHydrocarbon;
+
+ /**
+ * 鑿滅郴鍚�
+ */
+ @TableField("cuisine_name")
+ private String cuisineName;
+
+ /**
+ * 钀ヤ笟鎵х収
+ */
+ @TableField("customer_bl_no")
+ private String customerBlNo;
+
+ /**
+ * 鑱旂郴浜�
+ */
+ @TableField("customer_contact")
+ private String customerContact;
+
+ /**
+ * 鐢佃瘽
+ */
+ @TableField("customer_mobile")
+ private String customerMobile;
+
+ /**
+ * 搴楀悕绉�
+ */
+ @TableField("customer_name")
+ private String customerName;
+
+ /**
+ * 鐩戞祴浠晠闅滃ぉ鏁�
+ */
+ @TableField("detector_failure_days")
+ private Integer detectorFailureDays;
+
+ /**
+ * 瓒呮爣闃堝��
+ */
+ @TableField("emissions_sill")
+ private Double emissionsSill;
+
+ /**
+ * 瓒呮爣鏁�
+ */
+ @TableField("excess_num")
+ private Integer excessNum;
+
+ /**
+ * 瓒呮爣寰呭鐞嗗ぉ鏁�
+ */
+ @TableField("excess_to_process_days")
+ private Integer excessToProcessDays;
+
+ /**
+ * 鍑�鍖栧櫒涓嶆甯镐娇鐢ㄥぉ鏁�
+ */
+ @TableField("filter_abnormally_used_days")
+ private Integer filterAbnormallyUsedDays;
+
+ /**
+ * 鍑�鍖栧櫒娓呮礂娆℃暟
+ */
+ @TableField("filter_wash_times")
+ private Integer filterWashTimes;
+
+ /**
+ * 棰楃矑鐗╄秴鏍囬槇鍊�
+ */
+ @TableField("granuli_sill")
+ private Double granuliSill;
+
+ /**
+ * 鍋ュ悍鐮侀鑹�
+ */
+ @TableField("health_code_color")
+ private String healthCodeColor;
+
+ /**
+ * 闈炵敳鐑锋�荤儍瓒呮爣闃堝��
+ */
+ @TableField("hydrocarbon_sill")
+ private Double hydrocarbonSill;
+
+ /**
+ * 鐩戞祴鐐笽d
+ */
+ @TableField("locale_id")
+ private String localeId;
+
+ /**
+ * 绾害
+ */
+ @TableField("local_lat")
+ private String localLat;
+
+ /**
+ * 缁忓害
+ */
+ @TableField("local_lng")
+ private String localLng;
+
+ /**
+ * 璁惧鐨刴n鏁版嵁
+ */
+ @TableField("mn")
+ private String mn;
+
+ /**
+ * 鍚嶇О
+ */
+ @TableField("name")
+ private String name;
+
+ /**
+ * 搴楀鍘熷洜瀵艰嚧绂荤嚎澶╂暟
+ */
+ @TableField("off_line_cause_by_shop_days")
+ private Integer offLineCauseByShopDays;
+
+ /**
+ * 鎵�灞炲崟浣�
+ */
+ @TableField("owner")
+ private String owner;
+
+ /**
+ * 姝囦笟澶╂暟
+ */
+ @TableField("shop_close_days")
+ private Integer shopCloseDays;
+
+ /**
+ * 鐘舵�乕1:涓�鑸洃娴嬬偣,2:鐗规畩鐩戞祴鐐�,99:搴熷純鐩戞祴鐐筣
+ */
+ @TableField("status")
+ private Integer status;
+
+ /**
+ * 鐘舵�佹弿杩�
+ */
+ @TableField("status_desc")
+ private String statusDesc;
+
+
+}
diff --git a/ycl-smoke/src/main/java/com/ycl/smoke/entity/OdsCustomer.java b/ycl-smoke/src/main/java/com/ycl/smoke/entity/OdsCustomer.java
new file mode 100644
index 0000000..d64ef8c
--- /dev/null
+++ b/ycl-smoke/src/main/java/com/ycl/smoke/entity/OdsCustomer.java
@@ -0,0 +1,153 @@
+package com.ycl.smoke.entity;
+
+import com.baomidou.mybatisplus.annotation.TableName;
+import com.baomidou.mybatisplus.annotation.Version;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.TableField;
+import java.io.Serializable;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+
+/**
+ * <p>
+ * 缁勭粐鏋舵瀯
+ * </p>
+ *
+ * @author lyq
+ * @since 2023-02-28
+ */
+@Data
+@EqualsAndHashCode(callSuper = false)
+@TableName("ums_ods_customer")
+public class OdsCustomer implements Serializable {
+
+ private static final long serialVersionUID = 1L;
+
+ /**
+ * id
+ */
+ @TableId("id")
+ private String id;
+
+ /**
+ * 鐖惰妭鐐�
+ */
+ @TableField("pid")
+ private String pid;
+
+ /**
+ * 钀ヤ笟鎵х収缂栧彿
+ */
+ @TableField("bl_no")
+ private String blNo;
+
+ /**
+ * 钀ヤ笟鎵х収鍚嶇О
+ */
+ @TableField("bl_name")
+ private String blName;
+
+ /**
+ * 缁勭粐鍚嶇О
+ */
+ @TableField("org")
+ private String org;
+
+ /**
+ * 鍚嶇О
+ */
+ @TableField("name")
+ private String name;
+
+ /**
+ * 鑱旂郴浜�
+ */
+ @TableField("contact")
+ private String contact;
+
+ /**
+ * 鎵嬫満鍙�
+ */
+ @TableField("mobile")
+ private String mobile;
+
+ /**
+ * 鑱旂郴鐢佃瘽
+ */
+ @TableField("telephone")
+ private String telephone;
+
+ /**
+ * 绫诲瀷锛�1:绯荤粺鐢ㄦ埛2:缁忛攢鍗曚綅3:琛屾斂鍗曚綅4:椁愰ギ鍗曚綅锛�
+ */
+ @TableField("typ")
+ private Integer typ;
+
+ /**
+ * 鍒涘缓鑰�
+ */
+ @TableField("creator")
+ private String creator;
+
+ /**
+ * 鍒涘缓鏃堕棿
+ */
+ @TableField("create_at")
+ private Long createAt;
+
+ /**
+ * 鐘舵��
+ */
+ @TableField("status")
+ private Integer status;
+
+ /**
+ * 鍦板潃
+ */
+ @TableField("address")
+ private String address;
+
+ /**
+ * 鏍囧織
+ */
+ @TableField("logo")
+ private String logo;
+
+ /**
+ * 钀ヤ笟鏃堕棿
+ */
+ @TableField("business_hour")
+ private String businessHour;
+
+ /**
+ * 杩愮淮浜哄憳ID
+ */
+ @TableField("maintainer_id")
+ private String maintainerId;
+
+ /**
+ * 鍏宠仈鍦板潃
+ */
+ @TableField("area_ids")
+ private String areaIds;
+
+ /**
+ * 鍦板潃搴忓垪
+ */
+ @TableField("area_id_cascads")
+ private String areaIdCascads;
+
+ /**
+ * 鍦板潃璇︾粏淇℃伅
+ */
+ @TableField("areas")
+ private String areas;
+
+ /**
+ * 浠嬬粛
+ */
+ @TableField("desc")
+ private String desc;
+
+
+}
diff --git a/ycl-smoke/src/main/java/com/ycl/smoke/entity/OdsDetectorDaily.java b/ycl-smoke/src/main/java/com/ycl/smoke/entity/OdsDetectorDaily.java
new file mode 100644
index 0000000..48f1dac
--- /dev/null
+++ b/ycl-smoke/src/main/java/com/ycl/smoke/entity/OdsDetectorDaily.java
@@ -0,0 +1,276 @@
+package com.ycl.smoke.entity;
+
+import java.math.BigDecimal;
+import com.baomidou.mybatisplus.annotation.TableName;
+import java.time.LocalDate;
+import com.baomidou.mybatisplus.annotation.Version;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.TableField;
+import java.io.Serializable;
+
+import com.fasterxml.jackson.annotation.JsonProperty;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+
+/**
+ * <p>
+ * 鐩戞祴
+ * </p>
+ *
+ * @author lyq
+ * @since 2023-02-28
+ */
+@Data
+@EqualsAndHashCode(callSuper = false)
+@TableName("ums_ods_detector_daily")
+public class OdsDetectorDaily implements Serializable {
+
+ private static final long serialVersionUID = 1L;
+
+ /**
+ * id
+ */
+ @TableId("id")
+ @JsonProperty("Id")
+ private String id;
+
+ /**
+ * 璁惧mn
+ */
+ @TableField("mn")
+ @JsonProperty("MN")
+ private String mn;
+
+ /**
+ * 鎸佹湁鑰�
+ */
+ @TableField("owner")
+ @JsonProperty("Owner")
+ private String owner;
+
+ /**
+ * 鏁版嵁閲囬泦鏃堕棿
+ */
+ @TableField("acquit_at")
+ @JsonProperty("AcquitAt")
+ private Long acquitAt;
+
+ /**
+ * 鏁版嵁閲囬泦鏃�
+ */
+ @TableField("acquit_date")
+ @JsonProperty("AcquitDate")
+ private LocalDate acquitDate;
+
+ /**
+ * 鍒涘缓鏃ユ湡
+ */
+ @TableField("create_at")
+ @JsonProperty("CreateAt")
+ private Long createAt;
+
+ /**
+ * 鎺掓斁鐗╂祿搴︽姌绠�
+ */
+ @TableField("c_emissions")
+ @JsonProperty("CEmissions")
+ private BigDecimal cEmissions;
+
+ /**
+ * 棰楃矑鐗╂祿搴︽姌绠�
+ */
+ @TableField("c_granule")
+ @JsonProperty("CGranule")
+ private BigDecimal cGranule;
+
+ /**
+ * 闈炵敳鐑锋�荤儍娴撳害鎶樼畻
+ */
+ @TableField("c_hydrocarbon")
+ @JsonProperty("CHydrocarbon")
+ private BigDecimal cHydrocarbon;
+
+ /**
+ * 寮冪敤
+ */
+ @TableField("e_missions")
+ @JsonProperty("Emissions")
+ private BigDecimal eMissions;
+
+ /**
+ * 寮冪敤
+ */
+ @TableField("granule")
+ @JsonProperty("Granule")
+ private BigDecimal granule;
+
+ /**
+ * 寮冪敤
+ */
+ @TableField("hydrocarbon")
+ @JsonProperty("Hydrocarbon")
+ private BigDecimal hydrocarbon;
+
+ /**
+ * 杞��
+ */
+ @TableField("velocity")
+ @JsonProperty("Velocity")
+ private BigDecimal velocity;
+
+ /**
+ * 娓╁害
+ */
+ @TableField("temperature")
+ @JsonProperty("Temperature")
+ private BigDecimal temperature;
+
+ /**
+ * 婀垮害
+ */
+ @TableField("moisture")
+ @JsonProperty("Moisture")
+ private BigDecimal moisture;
+
+ /**
+ * Pm2.5鍑忔帓閲�
+ */
+ @TableField("red_pm25")
+ @JsonProperty("RedPm25")
+ private BigDecimal redPm25;
+
+ /**
+ * pm10鍑忔帓閲�
+ */
+ @TableField("red_pm10")
+ @JsonProperty("RedPm10")
+ private BigDecimal redPm10;
+
+ /**
+ * 鎺掓斁鐗╁噺鎺掗噺
+ */
+ @TableField("red_emissions")
+ @JsonProperty("RedEmissions")
+ private BigDecimal redEmissions;
+
+ /**
+ * vocs鍑忔帓閲�
+ */
+ @TableField("red_vocs")
+ @JsonProperty("RedVocs")
+ private BigDecimal redVocs;
+
+ /**
+ * 璁惧鏁�
+ */
+ @TableField("device_num")
+ @JsonProperty("DeviceNum")
+ private Integer deviceNum;
+
+ /**
+ * 鐘舵�乕1:姝e父,2:瓒呮爣,3:姝e父绂荤嚎,4寮傚父绂籡
+ */
+ @TableField("status")
+ @JsonProperty("Status")
+ private Integer status;
+
+ /**
+ * 鍑�鍖栧櫒椋庢満鑱斿姩姣�=鍑�鍖栧櫒寮�骞朵笖椋庢満寮�鐨勬潯鏁�/椋庢満寮�鐨勬暟鎹�绘潯鏁�*100%锛�
+ */
+ @TableField("filter_fan_link_ratio")
+ @JsonProperty("FilterFanLinkRatio")
+ private BigDecimal filterFanLinkRatio;
+
+ /**
+ * 鍑�鍖栧櫒鏄惁闈炴甯镐娇鐢�
+ */
+ @TableField("filter_abnormally_used")
+ @JsonProperty("FilterAbnormallyUsed")
+ private Boolean filterAbnormallyUsed;
+
+ /**
+ * 鎺掓斁鐗╄秴鏍�
+ */
+ @TableField("c_emissions_exceed_standard")
+ @JsonProperty("CEmissionsExceedStandard")
+ private Boolean cEmissionsExceedStandard;
+
+ /**
+ * 棰楃矑鐗╄秴鏍�
+ */
+ @TableField("c_granule_exceed_standard")
+ @JsonProperty("CGranuleExceedStandard")
+ private Boolean cGranuleExceedStandard;
+
+ /**
+ * 闈炵敳鐑锋�荤儍瓒呮爣
+ */
+ @TableField("c_hydrocarbon_exceed_standard")
+ @JsonProperty("CHydrocarbonExceedStandard")
+ private Boolean cHydrocarbonExceedStandard;
+
+ /**
+ * 鍦板尯id
+ */
+ @TableField("locale_id")
+ @JsonProperty("LocaleId")
+ private String localeId;
+
+ /**
+ * 鎵�灞炲崟浣峣d
+ */
+ @TableField("customer_id")
+ @JsonProperty("CustomerId")
+ private Integer customerId;
+
+ /**
+ * 鐢ㄦ埛
+ */
+ @TableField("customer")
+ @JsonProperty("Customer")
+ private String customer;
+
+ /**
+ * 鎺掓斁鐗╅槇鍊�
+ */
+ @TableField("locale_emissions_sill")
+ @JsonProperty("LocaleEmissionsSill")
+ private BigDecimal localeEmissionsSill;
+
+ /**
+ * 棰楃矑鐗╅槇鍊�
+ */
+ @TableField("locale_granule_sill")
+ @JsonProperty("LocaleGranuleSill")
+ private BigDecimal localeGranuleSill;
+
+ /**
+ * 闈炵敳鐑锋�荤儍闃堝��
+ */
+ @TableField("locale_hydrocarbon_sill")
+ @JsonProperty("LocaleHydrocarbonSill")
+ private BigDecimal localeHydrocarbonSill;
+
+ /**
+ * 鐩戞祴鐐瑰悕
+ */
+ @TableField("locale_name")
+ @JsonProperty("LocaleName")
+ private String localeName;
+
+ /**
+ * 鐩戞祴鐐�
+ */
+ @TableField("locale_addr")
+ @JsonProperty("LocaleAddr")
+ private String localeAddr;
+
+ /**
+ * 寮傚父绂荤嚎
+ */
+ @TableField("abnormal_off_line")
+ @JsonProperty("AbnormalOffline")
+ private BigDecimal abnormalOffLine;
+
+
+}
diff --git a/ycl-smoke/src/main/java/com/ycl/smoke/entity/OdsInTime.java b/ycl-smoke/src/main/java/com/ycl/smoke/entity/OdsInTime.java
new file mode 100644
index 0000000..68f7dd9
--- /dev/null
+++ b/ycl-smoke/src/main/java/com/ycl/smoke/entity/OdsInTime.java
@@ -0,0 +1,222 @@
+package com.ycl.smoke.entity;
+
+import java.math.BigDecimal;
+import com.baomidou.mybatisplus.annotation.TableName;
+import com.baomidou.mybatisplus.annotation.Version;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.TableField;
+import java.io.Serializable;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+
+/**
+ * <p>
+ * 杩斿洖瀹炴椂鐨勮澶囨暟鎹�
+ * </p>
+ *
+ * @author lyq
+ * @since 2023-02-28
+ */
+@Data
+@EqualsAndHashCode(callSuper = false)
+@TableName("ums_ods_in_time")
+public class OdsInTime implements Serializable {
+
+ private static final long serialVersionUID = 1L;
+
+ /**
+ * 瀹炴椂鏁版嵁鐨勮澶囩紪鍙凤紙涓棿鏈夆��-鈥濊繛鎺ヤ唬琛ㄨ鐩戞祴鐐规湁澶氫釜璁惧缁戝畾锛�
+ */
+ @TableId("id")
+ private String id;
+
+ /**
+ * 鎶ユ枃淇℃伅
+ */
+ @TableField("string")
+ private String string;
+
+ /**
+ * 閲囬泦鏃堕棿
+ */
+ @TableField("acquit_at")
+ private Long acquitAt;
+
+ /**
+ * 鏈�鍚庣‘璁ゆ椂闂�
+ */
+ @TableField("last_at")
+ private Long lastAt;
+
+ /**
+ * 鎺掓斁鐗╂姌绠楁祿搴�
+ */
+ @TableField("c_emissions")
+ private String cEmissions;
+
+ /**
+ * 棰楃矑鐗╂姌绠楁祿搴�
+ */
+ @TableField("c_granule")
+ private String cGranule;
+
+ /**
+ * 闈炵敳鐑锋�荤儍鎶樼畻娴撳害
+ */
+ @TableField("c_hydrocarbon")
+ private BigDecimal cHydrocarbon;
+
+ /**
+ * 瀹炴椂鎺掓斁閲�
+ */
+ @TableField("emissions_conc")
+ private BigDecimal emissionsConc;
+
+ /**
+ * 棰楃矑鐗╁惈閲�
+ */
+ @TableField("granule_conc")
+ private BigDecimal granuleConc;
+
+ /**
+ * 闈炵敳鐑锋�荤儍鍚噺
+ */
+ @TableField("hydrocarbon_conc")
+ private BigDecimal hydrocarbonConc;
+
+ /**
+ * 椋庢満鐘舵�侊紙1:寮�2:鍏�3锛氬紓甯革級
+ */
+ @TableField("fan_status")
+ private Integer fanStatus;
+
+ /**
+ * 鍑�鍖栧櫒鐘舵�侊紙1:寮�2:鍏�3锛氬紓甯革級
+ */
+ @TableField("filter_status")
+ private Integer filterStatus;
+
+ /**
+ * 绫诲瀷[1锛氱洃鎺�:2锛氱洃娴媇
+ */
+ @TableField("typ")
+ private Integer typ;
+
+ /**
+ * 鐘舵��
+ 锛圢ORMAL姝e父銆丄LARM棰勮銆丒XCESS瓒呮爣銆丏OWN绂荤嚎銆丱FF寮傚父绂荤嚎锛�
+
+ */
+ @TableField("status")
+ private String status;
+
+ /**
+ * 娴侀��
+ */
+ @TableField("velocity")
+ private Double velocity;
+
+ /**
+ * 娓╁害
+ */
+ @TableField("temperature")
+ private Double temperature;
+
+ /**
+ * 婀垮害
+ */
+ @TableField("moisture")
+ private Double moisture;
+
+ /**
+ * 鐩戞祴鐐瑰悕绉�
+ */
+ @TableField("locale")
+ private String locale;
+
+ /**
+ * 鐩戞祴鐐笽D
+ */
+ @TableField("lid")
+ private String lid;
+
+ /**
+ * 鎵�灞炲崟浣�
+ */
+ @TableField("owner")
+ private String owner;
+
+ /**
+ * 瀹夎鍦板潃
+ */
+ @TableField("addr")
+ private String addr;
+
+ /**
+ * 瓒呮爣闃堝��
+ */
+ @TableField("emissions_sill")
+ private Double emissionsSill;
+
+ /**
+ * 棰楃矑鐗╄秴鏍囬槇鍊�
+ */
+ @TableField("granule_sill")
+ private Double granuleSill;
+
+ /**
+ * 闈炵敳鐑锋�荤儍瓒呮爣闃堝��
+ */
+ @TableField("hydrocarbon_sill")
+ private Double hydrocarbonSill;
+
+ /**
+ * 鏄惁鑱斿姩(0:鍚�1:鏄�)
+ */
+ @TableField("link_status")
+ private Integer linkStatus;
+
+ /**
+ * 鑱旂郴鐢佃瘽
+ */
+ @TableField("customer_mobile")
+ private String customerMobile;
+
+ /**
+ * 缁忓害
+ */
+ @TableField("locale_lng")
+ private String localeLng;
+
+ /**
+ * 绾害
+ */
+ @TableField("localelat")
+ private String localelat;
+
+ /**
+ * 椋庢満鐢垫祦鍊�
+ */
+ @TableField("fan_current")
+ private Double fanCurrent;
+
+ /**
+ * 鍑�鍖栧櫒鐢垫祦鍊�
+ */
+ @TableField("pur_current")
+ private Double purCurrent;
+
+ /**
+ * 鏁翠綋鐘舵�侊紙1:鍦ㄧ嚎2:绂荤嚎3:寮傚父绂荤嚎锛�
+ */
+ @TableField("online_status")
+ private Integer onlineStatus;
+
+ /**
+ * 锛圢ORMAL:姝e父銆丱FFLINE:涓嬬嚎銆丄BANDONED:搴熷純锛�
+ */
+ @TableField("status_of_record")
+ private String statusOfRecord;
+
+
+}
diff --git a/ycl-smoke/src/main/java/com/ycl/smoke/entity/OdsLocale.java b/ycl-smoke/src/main/java/com/ycl/smoke/entity/OdsLocale.java
new file mode 100644
index 0000000..f7ea472
--- /dev/null
+++ b/ycl-smoke/src/main/java/com/ycl/smoke/entity/OdsLocale.java
@@ -0,0 +1,374 @@
+package com.ycl.smoke.entity;
+
+import java.math.BigDecimal;
+import com.baomidou.mybatisplus.annotation.TableName;
+import com.baomidou.mybatisplus.annotation.Version;
+import com.baomidou.mybatisplus.annotation.TableId;
+import java.time.LocalDateTime;
+import com.baomidou.mybatisplus.annotation.TableField;
+import java.io.Serializable;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+
+/**
+ * <p>
+ * 鐩戞祴鐐逛俊鎭�
+ * </p>
+ *
+ * @author lyq
+ * @since 2023-02-28
+ */
+@Data
+@EqualsAndHashCode(callSuper = false)
+@TableName("ums_ods_locale")
+public class OdsLocale implements Serializable {
+
+ private static final long serialVersionUID = 1L;
+
+ /**
+ * Id
+ */
+ @TableId("id")
+ private String id;
+
+ /**
+ * 鐑熼亾鍚嶇О
+ */
+ @TableField("n_name")
+ private String nName;
+
+ /**
+ * 鍗曚綅[绾ц仈]
+ */
+ @TableField("owner")
+ private String owner;
+
+ /**
+ * 鑿滅郴
+ */
+ @TableField("cuisine")
+ private Integer cuisine;
+
+ /**
+ * 缁勭粐ID
+ */
+ @TableField("customer_id")
+ private String customerId;
+
+ /**
+ * 鎵�灞炲崟浣嶄俊鎭�
+ */
+ @TableField("customer")
+ private String customer;
+
+ /**
+ * 椋庨��
+ */
+ @TableField("fan_speed")
+ private BigDecimal fanSpeed;
+
+ /**
+ * 椋庨噺
+ */
+ @TableField("fan_quantity")
+ private BigDecimal fanQuantity;
+
+ /**
+ * 绠¢亾鎴潰闈㈢Н
+ */
+ @TableField("pipe_area")
+ private BigDecimal pipeArea;
+
+ /**
+ * 鐏跺ご鏁伴噺
+ */
+ @TableField("stove_num")
+ private Integer stoveNum;
+
+ /**
+ * 绂荤嚎鍒ゅ畾[灏忔椂]
+ */
+ @TableField("offline_judge")
+ private Integer offlineJudge;
+
+ /**
+ * 椋庢満鐘舵��
+ */
+ @TableField("fan_status")
+ private Integer fanStatus;
+
+ /**
+ * 鍑�鍖栧櫒淇℃伅
+ */
+ @TableField("filter_info")
+ private String filterInfo;
+
+ /**
+ * 鍑�鍖栧櫒鐘舵��
+ */
+ @TableField("filter_status")
+ private Integer filterStatus;
+
+ /**
+ * 鎶芥牱娆℃暟
+ */
+ @TableField("samplings")
+ private Integer samplings;
+
+ /**
+ * 鏄惁鑱斿姩
+ */
+ @TableField("link_status")
+ private Boolean linkStatus;
+
+ /**
+ * 瓒呮爣闃堝��
+ */
+ @TableField("emissions_sill")
+ private BigDecimal emissionsSill;
+
+ /**
+ * 闆嗘皵鐏堕潰绉痆璋冪爺]
+ */
+ @TableField("stove_area")
+ private BigDecimal stoveArea;
+
+ /**
+ * 鏃ュ潎鎺掔儫鏃堕棿[璋冪爺]
+ */
+ @TableField("exhaust_time")
+ private String exhaustTime;
+
+ /**
+ * 澶囨敞[璋冪爺]
+ */
+ @TableField("remark")
+ private String remark;
+
+ /**
+ * 鍦板潃
+ */
+ @TableField("addr")
+ private String addr;
+
+ /**
+ * 鍦板尯[绾ц仈]
+ */
+ @TableField("area_id")
+ private String areaId;
+
+ /**
+ * 缁忓害
+ */
+ @TableField("lng")
+ private String lng;
+
+ /**
+ * 绾害
+ */
+ @TableField("lat")
+ private String lat;
+
+ /**
+ * 鍒涘缓鑰�
+ */
+ @TableField("creator")
+ private String creator;
+
+ /**
+ * 鍒涘缓鏃ユ湡
+ */
+ @TableField("create_at")
+ private Long createAt;
+
+ /**
+ * 鐘舵�乕1:涓�鑸洃娴嬬偣,2:鐗规畩鐩戞祴鐐�,99:搴熷純鐩戞祴鐐筣
+ */
+ @TableField("status")
+ private Integer status;
+
+ /**
+ * 棰楃矑鐗╁惈閲忚秴鏍囬槇鍊�
+ */
+ @TableField("granule_sill")
+ private BigDecimal granuleSill;
+
+ /**
+ * 闈炵敳鐑锋�荤儍瓒呮爣闃堝��
+ */
+ @TableField("hydrocarbon_sill")
+ private BigDecimal hydrocarbonSill;
+
+ /**
+ * 鍋ュ悍鐮侀鑹�
+ */
+ @TableField("health_code_color")
+ private String healthCodeColor;
+
+ /**
+ * 鏈�鍚庣粦瀹氳澶噈n
+ */
+ @TableField("mn_last")
+ private String mnLast;
+
+ /**
+ * 鐩戞祴鐐瑰浘鐗�
+ */
+ @TableField("locale_pics")
+ private String localePics;
+
+ /**
+ * 璁惧绫诲瀷 鏈�鍚庝竴娆$粦瀹�
+ */
+ @TableField("mn_typ_last")
+ private Integer mnTypLast;
+
+ /**
+ * 椋庢満淇℃伅
+ */
+ @TableField("fan_info")
+ private String fanInfo;
+
+ /**
+ * 鍙栫數鏂瑰紡
+ */
+ @TableField("power_supply_mode")
+ private String powerSupplyMode;
+
+ /**
+ * 鍑�鍖栧櫒椋庢満鑱斿姩姣旈槇鍊�
+ */
+ @TableField("link_ratio_sill")
+ private BigDecimal linkRatioSill;
+
+ /**
+ * 杩愮淮浜哄憳ID
+ */
+ @TableField("maintainer_id")
+ private String maintainerId;
+
+ /**
+ * 缁跨爜锛氭渶杩慩澶╁唴锛岃搴楀瓒呮爣娆℃暟灏忕瓑浜嶸alue1锛堥粯璁�3锛夋鐨勶紝涓斿噣鍖栧櫒涓嶆甯镐娇鐢ㄥぉ鏁板皬绛変簬Value2锛堥粯璁�3锛夊ぉ鐨勶紝涓旂绾垮ぉ鏁皗闈炴瓏涓氥�侀潪鐩戞祴浠晠闅溿�愭暟鎹潵婧愯繍缁翠汉鍛樺~鍐欑殑鈥濆紓甯稿鐞嗏�溿�憓灏忕瓑浜嶸alue3锛堥粯璁�3锛夈��
+ */
+ @TableField("health_code_x")
+ private Integer healthCodeX;
+
+ @TableField("health_code_value1")
+ private Integer healthCodeValue1;
+
+ @TableField("health_code_value2")
+ private Integer healthCodeValue2;
+
+ @TableField("health_code_value3")
+ private Integer healthCodeValue3;
+
+ /**
+ * 绾㈢爜锛氭渶杩慩澶╁唴锛岃搴楀瓒呮爣娆℃暟澶т簬Value4锛堥粯璁�5锛夋鐨勶紝鎴栬�呭噣鍖栧櫒涓嶆甯镐娇鐢ㄥぉ鏁板ぇ浜嶸alue5锛堥粯璁�5锛夊ぉ鐨勶紝涓旂绾垮ぉ鏁板皬浜嶸alue6锛堥粯璁�5锛夈��
+ */
+ @TableField("health_code_value4")
+ private Integer healthCodeValue4;
+
+ @TableField("health_code_value5")
+ private Integer healthCodeValue5;
+
+ @TableField("health_code_valuee6")
+ private Integer healthCodeValuee6;
+
+ /**
+ * 0~24鐐归棿娌圭儫娴撳害锛堥绮掔墿銆侀潪鐢茬兎鎬荤儍锛変笁涓�间腑鐨勪竴椤瑰�间竴鐩村皬浜嶸alue7(榛樿0.05锛塵g/M3鐨勶紝瑙嗕负鏁版嵁寮傚父鍋忓皬锛�
+ */
+ @TableField("abnormal_value7")
+ private BigDecimal abnormalValue7;
+
+ /**
+ * 0~24鐐归棿娌圭儫娴撳害锛堥绮掔墿銆侀潪鐢茬兎鎬荤儍锛変笁涓�间腑鐨勪竴椤瑰�间竴鐩村ぇ浜嶸alue8(榛樿30锛塵g/M3鐨勶紝瑙嗕负鏁版嵁寮傚父鍋忓ぇ锛�
+ */
+ @TableField("abnormal_value78")
+ private BigDecimal abnormalValue78;
+
+ /**
+ * 0~24鐐归棿娌圭儫娴撳害锛堥绮掔墿銆侀潪鐢茬兎鎬荤儍锛変笁涓�间腑鐨勪竴椤瑰�间竴鐩撮潪Value9(榛樿0锛塵g/M3鐨勶紝瑙嗕负鏁版嵁婕傜Щ寮傚父
+ */
+ @TableField("abnormal_value79")
+ private BigDecimal abnormalValue79;
+
+ /**
+ * 0~24鐐归棿涓婄嚎鏃堕棿灏忎簬Value10(榛樿60锛夊垎閽熺殑锛岃涓轰笂绾挎椂闂磋繃鐭紓甯革紱
+ */
+ @TableField("abnormal_value710")
+ private BigDecimal abnormalValue710;
+
+ /**
+ * Ali璁惧鍚嶇О
+ */
+ @TableField("aliIot_device_name")
+ private String aliiotDeviceName;
+
+ /**
+ * Ali璁惧
+ */
+ @TableField("aliIot")
+ private String aliIot;
+
+ /**
+ * 鍒涘缓鏃堕棿
+ */
+ @TableField("created_at")
+ private LocalDateTime createdAt;
+
+ /**
+ * 鏇存柊鏃堕棿
+ */
+ @TableField("updated_at")
+ private LocalDateTime updatedAt;
+
+ @TableField("health_code_value11")
+ private Integer healthCodeValue11;
+
+ @TableField("health_code_value12")
+ private Integer healthCodeValue12;
+
+ /**
+ * 鐩戞祴鏂瑰紡銆�1:鍚堝苟浼犺緭 2:鐙珛浼犺緭銆�
+ */
+ @TableField("send_mode")
+ private Integer sendMode;
+
+ /**
+ * 瓒呮爣璁$畻鏂瑰紡銆�1锛氭娊鏍疯绠� 2锛氭粦鍔ㄨ绠椼��
+ */
+ @TableField("surpass_calc_method")
+ private Integer surpassCalcMethod;
+
+ /**
+ * 椋庢満姝e父鐢垫祦鍊�
+ */
+ @TableField("fan_standardurrent")
+ private Integer fanStandardurrent;
+
+ /**
+ * 鍑�鍖栧櫒姝e父鐢垫祦鍊�
+ */
+ @TableField("filter_standard_current")
+ private Integer filterStandardCurrent;
+
+ /**
+ * 璁惧鐘舵�乕姝e父NORMAL銆佷笅绾縊FFLINE銆佸簾寮傾BANDON]
+ */
+ @TableField("status_of_record")
+ private String statusOfRecord;
+
+ /**
+ * 瀹℃牳澶囨敞
+ */
+ @TableField("remark_of_record")
+ private String remarkOfRecord;
+
+ /**
+ * 瀹℃牳鍘熷洜
+ */
+ @TableField("cause")
+ private String cause;
+
+
+}
diff --git a/ycl-smoke/src/main/java/com/ycl/smoke/entity/OdsTenMinData.java b/ycl-smoke/src/main/java/com/ycl/smoke/entity/OdsTenMinData.java
new file mode 100644
index 0000000..529fe0f
--- /dev/null
+++ b/ycl-smoke/src/main/java/com/ycl/smoke/entity/OdsTenMinData.java
@@ -0,0 +1,107 @@
+package com.ycl.smoke.entity;
+
+import java.math.BigDecimal;
+import com.baomidou.mybatisplus.annotation.TableName;
+import com.baomidou.mybatisplus.annotation.Version;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.TableField;
+import java.io.Serializable;
+
+import com.fasterxml.jackson.annotation.JsonProperty;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+
+/**
+ * <p>
+ *
+ * </p>
+ *
+ * @author lyq
+ * @since 2023-02-28
+ */
+@Data
+@EqualsAndHashCode(callSuper = false)
+@TableName("ums_ods_ten_min_data")
+public class OdsTenMinData implements Serializable {
+
+ private static final long serialVersionUID = 1L;
+
+ /**
+ * 鏁版嵁id
+ */
+ @TableId("id")
+ @JsonProperty("id")
+ private String id;
+
+ /**
+ * 璁惧缂栧彿
+ */
+ @TableField("mn")
+ @JsonProperty("mn")
+ private String mn;
+
+ /**
+ * 璁惧閲囬泦鏃堕棿鎴�/600
+ */
+ @TableField("acquit_at")
+ @JsonProperty("acquit_at")
+ private Long acquitAt;
+
+ /**
+ * 璁惧鍗佸垎閽熷唴鍙戦�佹暟鎹殑娆℃暟
+ */
+ @TableField("counter")
+ @JsonProperty("counter")
+ private Integer counter;
+
+ /**
+ * 鍒涘缓鏃堕棿鐨勬椂闂存埑
+ */
+ @TableField("create_at")
+ @JsonProperty("create_at")
+ private Long createAt;
+
+ /**
+ * 瀹炴椂鎺掓斁閲�,杩欎釜鏄�10鍒嗛挓鍐呯殑绱Н閲�
+ */
+ @TableField("emissions_conc")
+ @JsonProperty("emissions_conc")
+ private Double emissionsConc;
+
+ /**
+ * 棰楃矑鐗╁惈閲�
+ */
+ @TableField("granule_conc")
+ @JsonProperty("granule_conc")
+ private Double granuleConc;
+
+ /**
+ * 闈炵敳鐑锋�荤儍
+ */
+ @TableField("hydrocarbon_conc")
+ @JsonProperty("hydrocarbon_conc")
+ private Double hydrocarbonConc;
+
+ /**
+ * 娴侀��
+ */
+ @TableField("velocity")
+ @JsonProperty("velocity")
+ private BigDecimal velocity;
+
+ /**
+ * 娓╁害
+ */
+ @TableField("temperature")
+ @JsonProperty("temperature")
+ private BigDecimal temperature;
+
+ /**
+ * 婀垮害
+ */
+ @TableField("moisture")
+ @JsonProperty("moisture")
+ private BigDecimal moisture;
+
+
+}
diff --git a/ycl-smoke/src/main/java/com/ycl/smoke/mapper/OdsAlarmMsgMapper.java b/ycl-smoke/src/main/java/com/ycl/smoke/mapper/OdsAlarmMsgMapper.java
new file mode 100644
index 0000000..57087fc
--- /dev/null
+++ b/ycl-smoke/src/main/java/com/ycl/smoke/mapper/OdsAlarmMsgMapper.java
@@ -0,0 +1,16 @@
+package com.ycl.smoke.mapper;
+
+import com.ycl.smoke.entity.OdsAlarmMsg;
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+
+/**
+ * <p>
+ * 鎶ヨ娑堟伅 Mapper 鎺ュ彛
+ * </p>
+ *
+ * @author lyq
+ * @since 2023-02-28
+ */
+public interface OdsAlarmMsgMapper extends BaseMapper<OdsAlarmMsg> {
+
+}
diff --git a/ycl-smoke/src/main/java/com/ycl/smoke/mapper/OdsAlarmRecordMapper.java b/ycl-smoke/src/main/java/com/ycl/smoke/mapper/OdsAlarmRecordMapper.java
new file mode 100644
index 0000000..9e3d4a9
--- /dev/null
+++ b/ycl-smoke/src/main/java/com/ycl/smoke/mapper/OdsAlarmRecordMapper.java
@@ -0,0 +1,16 @@
+package com.ycl.smoke.mapper;
+
+import com.ycl.smoke.entity.OdsAlarmRecord;
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+
+/**
+ * <p>
+ * 鎶ヨ璁板綍 Mapper 鎺ュ彛
+ * </p>
+ *
+ * @author lyq
+ * @since 2023-02-28
+ */
+public interface OdsAlarmRecordMapper extends BaseMapper<OdsAlarmRecord> {
+
+}
diff --git a/ycl-smoke/src/main/java/com/ycl/smoke/mapper/OdsCurAlarmMapper.java b/ycl-smoke/src/main/java/com/ycl/smoke/mapper/OdsCurAlarmMapper.java
new file mode 100644
index 0000000..2be4861
--- /dev/null
+++ b/ycl-smoke/src/main/java/com/ycl/smoke/mapper/OdsCurAlarmMapper.java
@@ -0,0 +1,16 @@
+package com.ycl.smoke.mapper;
+
+import com.ycl.smoke.entity.OdsCurAlarm;
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+
+/**
+ * <p>
+ * 鐩戞祴鐐圭粺璁�&鍋ュ悍鐮佺鐞� Mapper 鎺ュ彛
+ * </p>
+ *
+ * @author lyq
+ * @since 2023-02-28
+ */
+public interface OdsCurAlarmMapper extends BaseMapper<OdsCurAlarm> {
+
+}
diff --git a/ycl-smoke/src/main/java/com/ycl/smoke/mapper/OdsCustomerMapper.java b/ycl-smoke/src/main/java/com/ycl/smoke/mapper/OdsCustomerMapper.java
new file mode 100644
index 0000000..da75285
--- /dev/null
+++ b/ycl-smoke/src/main/java/com/ycl/smoke/mapper/OdsCustomerMapper.java
@@ -0,0 +1,16 @@
+package com.ycl.smoke.mapper;
+
+import com.ycl.smoke.entity.OdsCustomer;
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+
+/**
+ * <p>
+ * 缁勭粐鏋舵瀯 Mapper 鎺ュ彛
+ * </p>
+ *
+ * @author lyq
+ * @since 2023-02-28
+ */
+public interface OdsCustomerMapper extends BaseMapper<OdsCustomer> {
+
+}
diff --git a/ycl-smoke/src/main/java/com/ycl/smoke/mapper/OdsDetectorDailyMapper.java b/ycl-smoke/src/main/java/com/ycl/smoke/mapper/OdsDetectorDailyMapper.java
new file mode 100644
index 0000000..d02a940
--- /dev/null
+++ b/ycl-smoke/src/main/java/com/ycl/smoke/mapper/OdsDetectorDailyMapper.java
@@ -0,0 +1,16 @@
+package com.ycl.smoke.mapper;
+
+import com.ycl.smoke.entity.OdsDetectorDaily;
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+
+/**
+ * <p>
+ * 鐩戞祴 Mapper 鎺ュ彛
+ * </p>
+ *
+ * @author lyq
+ * @since 2023-02-28
+ */
+public interface OdsDetectorDailyMapper extends BaseMapper<OdsDetectorDaily> {
+
+}
diff --git a/ycl-smoke/src/main/java/com/ycl/smoke/mapper/OdsInTimeMapper.java b/ycl-smoke/src/main/java/com/ycl/smoke/mapper/OdsInTimeMapper.java
new file mode 100644
index 0000000..77b6c62
--- /dev/null
+++ b/ycl-smoke/src/main/java/com/ycl/smoke/mapper/OdsInTimeMapper.java
@@ -0,0 +1,16 @@
+package com.ycl.smoke.mapper;
+
+import com.ycl.smoke.entity.OdsInTime;
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+
+/**
+ * <p>
+ * 杩斿洖瀹炴椂鐨勮澶囨暟鎹� Mapper 鎺ュ彛
+ * </p>
+ *
+ * @author lyq
+ * @since 2023-02-28
+ */
+public interface OdsInTimeMapper extends BaseMapper<OdsInTime> {
+
+}
diff --git a/ycl-smoke/src/main/java/com/ycl/smoke/mapper/OdsLocaleMapper.java b/ycl-smoke/src/main/java/com/ycl/smoke/mapper/OdsLocaleMapper.java
new file mode 100644
index 0000000..3b5ac56
--- /dev/null
+++ b/ycl-smoke/src/main/java/com/ycl/smoke/mapper/OdsLocaleMapper.java
@@ -0,0 +1,16 @@
+package com.ycl.smoke.mapper;
+
+import com.ycl.smoke.entity.OdsLocale;
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+
+/**
+ * <p>
+ * 鐩戞祴鐐逛俊鎭� Mapper 鎺ュ彛
+ * </p>
+ *
+ * @author lyq
+ * @since 2023-02-28
+ */
+public interface OdsLocaleMapper extends BaseMapper<OdsLocale> {
+
+}
diff --git a/ycl-smoke/src/main/java/com/ycl/smoke/mapper/OdsTenMinDataMapper.java b/ycl-smoke/src/main/java/com/ycl/smoke/mapper/OdsTenMinDataMapper.java
new file mode 100644
index 0000000..5010e15
--- /dev/null
+++ b/ycl-smoke/src/main/java/com/ycl/smoke/mapper/OdsTenMinDataMapper.java
@@ -0,0 +1,16 @@
+package com.ycl.smoke.mapper;
+
+import com.ycl.smoke.entity.OdsTenMinData;
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+
+/**
+ * <p>
+ * Mapper 鎺ュ彛
+ * </p>
+ *
+ * @author lyq
+ * @since 2023-02-28
+ */
+public interface OdsTenMinDataMapper extends BaseMapper<OdsTenMinData> {
+
+}
diff --git a/ycl-smoke/src/main/java/com/ycl/smoke/remote/dto/AlarmMsgDataVo.java b/ycl-smoke/src/main/java/com/ycl/smoke/remote/dto/AlarmMsgDataVo.java
new file mode 100644
index 0000000..f62c071
--- /dev/null
+++ b/ycl-smoke/src/main/java/com/ycl/smoke/remote/dto/AlarmMsgDataVo.java
@@ -0,0 +1,25 @@
+package com.ycl.smoke.remote.dto;
+
+import com.fasterxml.jackson.annotation.JsonProperty;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+
+@Data
+@NoArgsConstructor
+public class AlarmMsgDataVo {
+
+ @JsonProperty("Id")
+ private String id;
+ @JsonProperty("MN")
+ private String mn;
+ @JsonProperty("AcquitAt")
+ private Long acquitAt;
+ @JsonProperty("Owner")
+ private String owner;
+ @JsonProperty("Content")
+ private String content;
+ @JsonProperty("MsgType")
+ private String msgType;
+ @JsonProperty("Addr")
+ private String addr;
+}
\ No newline at end of file
diff --git a/ycl-smoke/src/main/java/com/ycl/smoke/remote/dto/AlarmMsgParamDateDto.java b/ycl-smoke/src/main/java/com/ycl/smoke/remote/dto/AlarmMsgParamDateDto.java
new file mode 100644
index 0000000..07bec89
--- /dev/null
+++ b/ycl-smoke/src/main/java/com/ycl/smoke/remote/dto/AlarmMsgParamDateDto.java
@@ -0,0 +1,34 @@
+package com.ycl.smoke.remote.dto;
+
+import lombok.Builder;
+import lombok.Data;
+
+@Data
+@Builder
+public class AlarmMsgParamDateDto {
+
+ /**
+ * 鏌ヨ鍒涘缓鎶ヨ鏃ユ湡
+ */
+ private String CreatedAt;
+ /**
+ * ExceedStandard瓒呮爣,AbnormalOffline 寮傚父绂荤嚎
+ */
+ private String msg_type;
+ /**
+ * 璧峰鏃堕棿鎴�
+ */
+ private Long Begin;
+ /**
+ * 缁撴潫鏃堕棿鎴�
+ */
+ private Long End;
+ /**
+ * 璁惧缂栫爜
+ */
+ private String mn;
+
+}
+
+
+
diff --git a/ycl-smoke/src/main/java/com/ycl/smoke/remote/dto/AlarmMsgParamDto.java b/ycl-smoke/src/main/java/com/ycl/smoke/remote/dto/AlarmMsgParamDto.java
new file mode 100644
index 0000000..159524a
--- /dev/null
+++ b/ycl-smoke/src/main/java/com/ycl/smoke/remote/dto/AlarmMsgParamDto.java
@@ -0,0 +1,29 @@
+package com.ycl.smoke.remote.dto;
+
+import lombok.Builder;
+import lombok.Data;
+
+@Data
+@Builder
+public class AlarmMsgParamDto {
+ /**
+ * 璧峰浣嶇疆 - 蹇呭~
+ */
+ private Integer StartAt;
+ /**
+ * 璇锋眰鏁伴噺 - 蹇呭~
+ */
+ private Integer Size;
+ /**
+ * 1锛氳秴鏍�2锛氬紓甯� - 蹇呭~
+ */
+ private Integer Typ;
+
+ /**
+ * 鏌ヨ鍒涘缓鎶ヨ鏃ユ湡
+ */
+ private AlarmMsgParamDateDto Param;
+}
+
+
+
diff --git a/ycl-smoke/src/main/java/com/ycl/smoke/remote/dto/AlarmMsgResponseDto.java b/ycl-smoke/src/main/java/com/ycl/smoke/remote/dto/AlarmMsgResponseDto.java
new file mode 100644
index 0000000..425532d
--- /dev/null
+++ b/ycl-smoke/src/main/java/com/ycl/smoke/remote/dto/AlarmMsgResponseDto.java
@@ -0,0 +1,23 @@
+package com.ycl.smoke.remote.dto;
+
+import com.fasterxml.jackson.annotation.JsonProperty;
+import com.ycl.smoke.entity.OdsAlarmMsg;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+
+import java.util.List;
+
+@Data
+@NoArgsConstructor
+public class AlarmMsgResponseDto {
+
+ @JsonProperty("content")
+ private List<OdsAlarmMsg> content;
+
+ @JsonProperty("total")
+ private Integer total;
+
+}
+
+
+
diff --git a/ycl-smoke/src/main/java/com/ycl/smoke/remote/dto/DetectorDailyParamDto.java b/ycl-smoke/src/main/java/com/ycl/smoke/remote/dto/DetectorDailyParamDto.java
new file mode 100644
index 0000000..fac3961
--- /dev/null
+++ b/ycl-smoke/src/main/java/com/ycl/smoke/remote/dto/DetectorDailyParamDto.java
@@ -0,0 +1,35 @@
+package com.ycl.smoke.remote.dto;
+
+import com.baomidou.mybatisplus.annotation.OrderBy;
+import lombok.Builder;
+import lombok.Data;
+
+@Data
+@Builder
+public class DetectorDailyParamDto {
+ /**
+ * 鐘舵�乕1:姝e父,2:瓒呮爣,3:姝e父绂荤嚎,4寮傚父绂籡
+ */
+ private Integer Status;
+ /**
+ * 鏁版嵁鑾峰彇鏃ユ湡
+ */
+ private String AcquitDate;
+ /**
+ * 鎺掑簭瀛楁
+ */
+ private String OrderBy;
+ /**
+ * 椤靛簭鍙�
+ */
+ private Integer Page;
+ /**
+ * 姣忛〉璁板綍鏁�
+ */
+ private Integer Perpage;
+ /**
+ * 妫�鏌ユ槸鍚﹀畨瑁呮湁璁惧
+ */
+ private Boolean LocaleWithDevice;
+
+}
diff --git a/ycl-smoke/src/main/java/com/ycl/smoke/remote/dto/DetectorDailyResponseDto.java b/ycl-smoke/src/main/java/com/ycl/smoke/remote/dto/DetectorDailyResponseDto.java
new file mode 100644
index 0000000..e169e57
--- /dev/null
+++ b/ycl-smoke/src/main/java/com/ycl/smoke/remote/dto/DetectorDailyResponseDto.java
@@ -0,0 +1,24 @@
+package com.ycl.smoke.remote.dto;
+
+import com.fasterxml.jackson.annotation.JsonProperty;
+import com.ycl.smoke.entity.OdsAlarmMsg;
+import com.ycl.smoke.entity.OdsDetectorDaily;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+
+import java.util.List;
+
+@Data
+@NoArgsConstructor
+public class DetectorDailyResponseDto {
+
+ @JsonProperty("content")
+ private List<OdsDetectorDaily> content;
+
+ @JsonProperty("resultsPageInfo")
+ private ResultsPageInfo resultsPageInfo;
+
+}
+
+
+
diff --git a/ycl-smoke/src/main/java/com/ycl/smoke/remote/dto/LoginParamDto.java b/ycl-smoke/src/main/java/com/ycl/smoke/remote/dto/LoginParamDto.java
new file mode 100644
index 0000000..8d56f62
--- /dev/null
+++ b/ycl-smoke/src/main/java/com/ycl/smoke/remote/dto/LoginParamDto.java
@@ -0,0 +1,24 @@
+package com.ycl.smoke.remote.dto;
+
+
+import lombok.Builder;
+import lombok.Data;
+
+@Data
+@Builder
+public class LoginParamDto {
+
+ /**
+ * 璐﹀彿 - 蹇呭~
+ */
+ private String username;
+ /**
+ * 瀵嗙爜 - 蹇呭~
+ */
+ private String password;
+ /**
+ * 閫夋嫨true鍒欐棤闇�楠岃瘉鐮�
+ */
+ private Boolean noCode;
+
+}
diff --git a/ycl-smoke/src/main/java/com/ycl/smoke/remote/dto/LoginResponseDto.java b/ycl-smoke/src/main/java/com/ycl/smoke/remote/dto/LoginResponseDto.java
new file mode 100644
index 0000000..572421e
--- /dev/null
+++ b/ycl-smoke/src/main/java/com/ycl/smoke/remote/dto/LoginResponseDto.java
@@ -0,0 +1,15 @@
+package com.ycl.smoke.remote.dto;
+
+import com.fasterxml.jackson.annotation.JsonProperty;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+
+@Data
+@NoArgsConstructor
+public class LoginResponseDto {
+ @JsonProperty("Token")
+ private String token;
+
+ @JsonProperty("Role")
+ private String role;
+}
diff --git a/ycl-smoke/src/main/java/com/ycl/smoke/remote/dto/ResultsPageInfo.java b/ycl-smoke/src/main/java/com/ycl/smoke/remote/dto/ResultsPageInfo.java
new file mode 100644
index 0000000..9145e2c
--- /dev/null
+++ b/ycl-smoke/src/main/java/com/ycl/smoke/remote/dto/ResultsPageInfo.java
@@ -0,0 +1,12 @@
+package com.ycl.smoke.remote.dto;
+
+import lombok.Data;
+
+@Data
+public class ResultsPageInfo {
+ private Integer Page;
+ private Integer PerPage;
+ private Integer TotalPage;
+ private Integer Total;
+ private Integer CurrentTotal;
+}
diff --git a/ycl-smoke/src/main/java/com/ycl/smoke/remote/dto/SmokeResultResponseDto.java b/ycl-smoke/src/main/java/com/ycl/smoke/remote/dto/SmokeResultResponseDto.java
new file mode 100644
index 0000000..c0bf540
--- /dev/null
+++ b/ycl-smoke/src/main/java/com/ycl/smoke/remote/dto/SmokeResultResponseDto.java
@@ -0,0 +1,20 @@
+package com.ycl.smoke.remote.dto;
+
+import com.fasterxml.jackson.annotation.JsonProperty;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+
+@Data
+@NoArgsConstructor
+public class SmokeResultResponseDto<T> {
+ @JsonProperty("Msg")
+ private String msg;
+ /**
+ * 200 鎴愬姛 114 token澶辨晥
+ */
+ @JsonProperty("Status")
+ private Integer status;
+
+ @JsonProperty("Data")
+ private T data;
+}
\ No newline at end of file
diff --git a/ycl-smoke/src/main/java/com/ycl/smoke/remote/dto/TenMinParamDto.java b/ycl-smoke/src/main/java/com/ycl/smoke/remote/dto/TenMinParamDto.java
new file mode 100644
index 0000000..4b34882
--- /dev/null
+++ b/ycl-smoke/src/main/java/com/ycl/smoke/remote/dto/TenMinParamDto.java
@@ -0,0 +1,22 @@
+package com.ycl.smoke.remote.dto;
+
+import lombok.Builder;
+import lombok.Data;
+
+@Data
+@Builder
+public class TenMinParamDto {
+ /**
+ * 璁惧鐨勭紪鍙�
+ */
+ private String mn;
+ /**
+ * 鏁版嵁鑾峰彇璧峰鏃ユ湡锛�2021-11-01锛�
+ */
+ private String AcquitAtTimeBegin;
+ /**
+ * 鏁版嵁鑾峰彇鎴鏃ユ湡
+ */
+ private String AcquitAtTimeEnd;
+
+}
diff --git a/ycl-smoke/src/main/java/com/ycl/smoke/remote/service/ISmokeDetectionService.java b/ycl-smoke/src/main/java/com/ycl/smoke/remote/service/ISmokeDetectionService.java
new file mode 100644
index 0000000..c46ed14
--- /dev/null
+++ b/ycl-smoke/src/main/java/com/ycl/smoke/remote/service/ISmokeDetectionService.java
@@ -0,0 +1,57 @@
+package com.ycl.smoke.remote.service;
+
+import com.ycl.smoke.entity.OdsDetectorDaily;
+import com.ycl.smoke.entity.OdsTenMinData;
+import com.ycl.smoke.remote.dto.*;
+import org.springframework.cloud.openfeign.FeignClient;
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.RequestBody;
+import org.springframework.web.bind.annotation.RequestHeader;
+
+import java.util.List;
+
+
+@FeignClient(url = "http://116.62.234.187:8088", name = "smokeApi")
+public interface ISmokeDetectionService {
+
+ @PostMapping(value = "/loginAction")
+ SmokeResultResponseDto<LoginResponseDto> loginAction(@RequestBody LoginParamDto paramDto);
+
+
+ @PostMapping(value = "/admin/listAlarmMsg")
+ SmokeResultResponseDto<AlarmMsgResponseDto> getListAlarmMsg(@RequestBody AlarmMsgParamDto paramDto,
+ @RequestHeader("Auth") String token);
+
+ @PostMapping(value = "/admin/queryDataDetectorDaily2")
+ SmokeResultResponseDto<DetectorDailyResponseDto> queryDataDetectorDaily2(@RequestBody DetectorDailyParamDto paramDto,
+ @RequestHeader("Auth") String token);
+
+ @PostMapping(value = "/admin/queryTenMinData")
+ SmokeResultResponseDto<List<OdsTenMinData>> queryTenMinData(@RequestBody TenMinParamDto paramDto,
+ @RequestHeader("Auth") String token);
+
+ @PostMapping(value = "/admin/listDataIntime")
+ SmokeResultResponseDto<DetectorDailyResponseDto> listDataIntime(@RequestBody DetectorDailyParamDto paramDto,
+ @RequestHeader("Auth") String token);
+
+ @PostMapping(value = "/admin/listLocale")
+ SmokeResultResponseDto<DetectorDailyResponseDto> listLocale(@RequestBody DetectorDailyParamDto paramDto,
+ @RequestHeader("Auth") String token);
+
+ @PostMapping(value = "/admin/queryCustomer")
+ SmokeResultResponseDto<DetectorDailyResponseDto> queryCustomer(@RequestBody DetectorDailyParamDto paramDto,
+ @RequestHeader("Auth") String token);
+
+
+
+ @PostMapping(value = "/admin/listAlarmRecord")
+ SmokeResultResponseDto<AlarmMsgResponseDto> getListAlarmRecord(@RequestBody AlarmMsgParamDto paramDto,
+ @RequestHeader("Auth") String token);
+
+
+
+ @PostMapping(value = "/admin/listCurAlarm")
+ SmokeResultResponseDto<AlarmMsgResponseDto> getListCurAlarm(@RequestBody AlarmMsgParamDto paramDto,
+ @RequestHeader("Auth") String token);
+
+}
diff --git a/ycl-smoke/src/main/java/com/ycl/smoke/service/IOdsAlarmMsgService.java b/ycl-smoke/src/main/java/com/ycl/smoke/service/IOdsAlarmMsgService.java
new file mode 100644
index 0000000..833df79
--- /dev/null
+++ b/ycl-smoke/src/main/java/com/ycl/smoke/service/IOdsAlarmMsgService.java
@@ -0,0 +1,16 @@
+package com.ycl.smoke.service;
+
+import com.ycl.smoke.entity.OdsAlarmMsg;
+import com.baomidou.mybatisplus.extension.service.IService;
+
+/**
+ * <p>
+ * 鎶ヨ娑堟伅 鏈嶅姟绫�
+ * </p>
+ *
+ * @author lyq
+ * @since 2023-02-28
+ */
+public interface IOdsAlarmMsgService extends IService<OdsAlarmMsg> {
+
+}
diff --git a/ycl-smoke/src/main/java/com/ycl/smoke/service/IOdsAlarmRecordService.java b/ycl-smoke/src/main/java/com/ycl/smoke/service/IOdsAlarmRecordService.java
new file mode 100644
index 0000000..bf68a2e
--- /dev/null
+++ b/ycl-smoke/src/main/java/com/ycl/smoke/service/IOdsAlarmRecordService.java
@@ -0,0 +1,16 @@
+package com.ycl.smoke.service;
+
+import com.ycl.smoke.entity.OdsAlarmRecord;
+import com.baomidou.mybatisplus.extension.service.IService;
+
+/**
+ * <p>
+ * 鎶ヨ璁板綍 鏈嶅姟绫�
+ * </p>
+ *
+ * @author lyq
+ * @since 2023-02-28
+ */
+public interface IOdsAlarmRecordService extends IService<OdsAlarmRecord> {
+
+}
diff --git a/ycl-smoke/src/main/java/com/ycl/smoke/service/IOdsCurAlarmService.java b/ycl-smoke/src/main/java/com/ycl/smoke/service/IOdsCurAlarmService.java
new file mode 100644
index 0000000..b06b155
--- /dev/null
+++ b/ycl-smoke/src/main/java/com/ycl/smoke/service/IOdsCurAlarmService.java
@@ -0,0 +1,16 @@
+package com.ycl.smoke.service;
+
+import com.ycl.smoke.entity.OdsCurAlarm;
+import com.baomidou.mybatisplus.extension.service.IService;
+
+/**
+ * <p>
+ * 鐩戞祴鐐圭粺璁�&鍋ュ悍鐮佺鐞� 鏈嶅姟绫�
+ * </p>
+ *
+ * @author lyq
+ * @since 2023-02-28
+ */
+public interface IOdsCurAlarmService extends IService<OdsCurAlarm> {
+
+}
diff --git a/ycl-smoke/src/main/java/com/ycl/smoke/service/IOdsCustomerService.java b/ycl-smoke/src/main/java/com/ycl/smoke/service/IOdsCustomerService.java
new file mode 100644
index 0000000..a94cc3b
--- /dev/null
+++ b/ycl-smoke/src/main/java/com/ycl/smoke/service/IOdsCustomerService.java
@@ -0,0 +1,16 @@
+package com.ycl.smoke.service;
+
+import com.ycl.smoke.entity.OdsCustomer;
+import com.baomidou.mybatisplus.extension.service.IService;
+
+/**
+ * <p>
+ * 缁勭粐鏋舵瀯 鏈嶅姟绫�
+ * </p>
+ *
+ * @author lyq
+ * @since 2023-02-28
+ */
+public interface IOdsCustomerService extends IService<OdsCustomer> {
+
+}
diff --git a/ycl-smoke/src/main/java/com/ycl/smoke/service/IOdsDetectorDailyService.java b/ycl-smoke/src/main/java/com/ycl/smoke/service/IOdsDetectorDailyService.java
new file mode 100644
index 0000000..89f670d
--- /dev/null
+++ b/ycl-smoke/src/main/java/com/ycl/smoke/service/IOdsDetectorDailyService.java
@@ -0,0 +1,16 @@
+package com.ycl.smoke.service;
+
+import com.ycl.smoke.entity.OdsDetectorDaily;
+import com.baomidou.mybatisplus.extension.service.IService;
+
+/**
+ * <p>
+ * 鐩戞祴 鏈嶅姟绫�
+ * </p>
+ *
+ * @author lyq
+ * @since 2023-02-28
+ */
+public interface IOdsDetectorDailyService extends IService<OdsDetectorDaily> {
+
+}
diff --git a/ycl-smoke/src/main/java/com/ycl/smoke/service/IOdsInTimeService.java b/ycl-smoke/src/main/java/com/ycl/smoke/service/IOdsInTimeService.java
new file mode 100644
index 0000000..59856dc
--- /dev/null
+++ b/ycl-smoke/src/main/java/com/ycl/smoke/service/IOdsInTimeService.java
@@ -0,0 +1,16 @@
+package com.ycl.smoke.service;
+
+import com.ycl.smoke.entity.OdsInTime;
+import com.baomidou.mybatisplus.extension.service.IService;
+
+/**
+ * <p>
+ * 杩斿洖瀹炴椂鐨勮澶囨暟鎹� 鏈嶅姟绫�
+ * </p>
+ *
+ * @author lyq
+ * @since 2023-02-28
+ */
+public interface IOdsInTimeService extends IService<OdsInTime> {
+
+}
diff --git a/ycl-smoke/src/main/java/com/ycl/smoke/service/IOdsLocaleService.java b/ycl-smoke/src/main/java/com/ycl/smoke/service/IOdsLocaleService.java
new file mode 100644
index 0000000..08f6b03
--- /dev/null
+++ b/ycl-smoke/src/main/java/com/ycl/smoke/service/IOdsLocaleService.java
@@ -0,0 +1,16 @@
+package com.ycl.smoke.service;
+
+import com.ycl.smoke.entity.OdsLocale;
+import com.baomidou.mybatisplus.extension.service.IService;
+
+/**
+ * <p>
+ * 鐩戞祴鐐逛俊鎭� 鏈嶅姟绫�
+ * </p>
+ *
+ * @author lyq
+ * @since 2023-02-28
+ */
+public interface IOdsLocaleService extends IService<OdsLocale> {
+
+}
diff --git a/ycl-smoke/src/main/java/com/ycl/smoke/service/IOdsTenMinDataService.java b/ycl-smoke/src/main/java/com/ycl/smoke/service/IOdsTenMinDataService.java
new file mode 100644
index 0000000..a6f7d60
--- /dev/null
+++ b/ycl-smoke/src/main/java/com/ycl/smoke/service/IOdsTenMinDataService.java
@@ -0,0 +1,16 @@
+package com.ycl.smoke.service;
+
+import com.ycl.smoke.entity.OdsTenMinData;
+import com.baomidou.mybatisplus.extension.service.IService;
+
+/**
+ * <p>
+ * 鏈嶅姟绫�
+ * </p>
+ *
+ * @author lyq
+ * @since 2023-02-28
+ */
+public interface IOdsTenMinDataService extends IService<OdsTenMinData> {
+
+}
diff --git a/ycl-smoke/src/main/java/com/ycl/smoke/service/impl/OdsAlarmMsgServiceImpl.java b/ycl-smoke/src/main/java/com/ycl/smoke/service/impl/OdsAlarmMsgServiceImpl.java
new file mode 100644
index 0000000..2d8d14d
--- /dev/null
+++ b/ycl-smoke/src/main/java/com/ycl/smoke/service/impl/OdsAlarmMsgServiceImpl.java
@@ -0,0 +1,20 @@
+package com.ycl.smoke.service.impl;
+
+import com.ycl.smoke.entity.OdsAlarmMsg;
+import com.ycl.smoke.mapper.OdsAlarmMsgMapper;
+import com.ycl.smoke.service.IOdsAlarmMsgService;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import org.springframework.stereotype.Service;
+
+/**
+ * <p>
+ * 鎶ヨ娑堟伅 鏈嶅姟瀹炵幇绫�
+ * </p>
+ *
+ * @author lyq
+ * @since 2023-02-28
+ */
+@Service
+public class OdsAlarmMsgServiceImpl extends ServiceImpl<OdsAlarmMsgMapper, OdsAlarmMsg> implements IOdsAlarmMsgService {
+
+}
diff --git a/ycl-smoke/src/main/java/com/ycl/smoke/service/impl/OdsAlarmRecordServiceImpl.java b/ycl-smoke/src/main/java/com/ycl/smoke/service/impl/OdsAlarmRecordServiceImpl.java
new file mode 100644
index 0000000..8160adb
--- /dev/null
+++ b/ycl-smoke/src/main/java/com/ycl/smoke/service/impl/OdsAlarmRecordServiceImpl.java
@@ -0,0 +1,20 @@
+package com.ycl.smoke.service.impl;
+
+import com.ycl.smoke.entity.OdsAlarmRecord;
+import com.ycl.smoke.mapper.OdsAlarmRecordMapper;
+import com.ycl.smoke.service.IOdsAlarmRecordService;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import org.springframework.stereotype.Service;
+
+/**
+ * <p>
+ * 鎶ヨ璁板綍 鏈嶅姟瀹炵幇绫�
+ * </p>
+ *
+ * @author lyq
+ * @since 2023-02-28
+ */
+@Service
+public class OdsAlarmRecordServiceImpl extends ServiceImpl<OdsAlarmRecordMapper, OdsAlarmRecord> implements IOdsAlarmRecordService {
+
+}
diff --git a/ycl-smoke/src/main/java/com/ycl/smoke/service/impl/OdsCurAlarmServiceImpl.java b/ycl-smoke/src/main/java/com/ycl/smoke/service/impl/OdsCurAlarmServiceImpl.java
new file mode 100644
index 0000000..da03bef
--- /dev/null
+++ b/ycl-smoke/src/main/java/com/ycl/smoke/service/impl/OdsCurAlarmServiceImpl.java
@@ -0,0 +1,20 @@
+package com.ycl.smoke.service.impl;
+
+import com.ycl.smoke.entity.OdsCurAlarm;
+import com.ycl.smoke.mapper.OdsCurAlarmMapper;
+import com.ycl.smoke.service.IOdsCurAlarmService;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import org.springframework.stereotype.Service;
+
+/**
+ * <p>
+ * 鐩戞祴鐐圭粺璁�&鍋ュ悍鐮佺鐞� 鏈嶅姟瀹炵幇绫�
+ * </p>
+ *
+ * @author lyq
+ * @since 2023-02-28
+ */
+@Service
+public class OdsCurAlarmServiceImpl extends ServiceImpl<OdsCurAlarmMapper, OdsCurAlarm> implements IOdsCurAlarmService {
+
+}
diff --git a/ycl-smoke/src/main/java/com/ycl/smoke/service/impl/OdsCustomerServiceImpl.java b/ycl-smoke/src/main/java/com/ycl/smoke/service/impl/OdsCustomerServiceImpl.java
new file mode 100644
index 0000000..3558c63
--- /dev/null
+++ b/ycl-smoke/src/main/java/com/ycl/smoke/service/impl/OdsCustomerServiceImpl.java
@@ -0,0 +1,20 @@
+package com.ycl.smoke.service.impl;
+
+import com.ycl.smoke.entity.OdsCustomer;
+import com.ycl.smoke.mapper.OdsCustomerMapper;
+import com.ycl.smoke.service.IOdsCustomerService;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import org.springframework.stereotype.Service;
+
+/**
+ * <p>
+ * 缁勭粐鏋舵瀯 鏈嶅姟瀹炵幇绫�
+ * </p>
+ *
+ * @author lyq
+ * @since 2023-02-28
+ */
+@Service
+public class OdsCustomerServiceImpl extends ServiceImpl<OdsCustomerMapper, OdsCustomer> implements IOdsCustomerService {
+
+}
diff --git a/ycl-smoke/src/main/java/com/ycl/smoke/service/impl/OdsDetectorDailyServiceImpl.java b/ycl-smoke/src/main/java/com/ycl/smoke/service/impl/OdsDetectorDailyServiceImpl.java
new file mode 100644
index 0000000..827ba6d
--- /dev/null
+++ b/ycl-smoke/src/main/java/com/ycl/smoke/service/impl/OdsDetectorDailyServiceImpl.java
@@ -0,0 +1,20 @@
+package com.ycl.smoke.service.impl;
+
+import com.ycl.smoke.entity.OdsDetectorDaily;
+import com.ycl.smoke.mapper.OdsDetectorDailyMapper;
+import com.ycl.smoke.service.IOdsDetectorDailyService;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import org.springframework.stereotype.Service;
+
+/**
+ * <p>
+ * 鐩戞祴 鏈嶅姟瀹炵幇绫�
+ * </p>
+ *
+ * @author lyq
+ * @since 2023-02-28
+ */
+@Service
+public class OdsDetectorDailyServiceImpl extends ServiceImpl<OdsDetectorDailyMapper, OdsDetectorDaily> implements IOdsDetectorDailyService {
+
+}
diff --git a/ycl-smoke/src/main/java/com/ycl/smoke/service/impl/OdsInTimeServiceImpl.java b/ycl-smoke/src/main/java/com/ycl/smoke/service/impl/OdsInTimeServiceImpl.java
new file mode 100644
index 0000000..df2ccd9
--- /dev/null
+++ b/ycl-smoke/src/main/java/com/ycl/smoke/service/impl/OdsInTimeServiceImpl.java
@@ -0,0 +1,20 @@
+package com.ycl.smoke.service.impl;
+
+import com.ycl.smoke.entity.OdsInTime;
+import com.ycl.smoke.mapper.OdsInTimeMapper;
+import com.ycl.smoke.service.IOdsInTimeService;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import org.springframework.stereotype.Service;
+
+/**
+ * <p>
+ * 杩斿洖瀹炴椂鐨勮澶囨暟鎹� 鏈嶅姟瀹炵幇绫�
+ * </p>
+ *
+ * @author lyq
+ * @since 2023-02-28
+ */
+@Service
+public class OdsInTimeServiceImpl extends ServiceImpl<OdsInTimeMapper, OdsInTime> implements IOdsInTimeService {
+
+}
diff --git a/ycl-smoke/src/main/java/com/ycl/smoke/service/impl/OdsLocaleServiceImpl.java b/ycl-smoke/src/main/java/com/ycl/smoke/service/impl/OdsLocaleServiceImpl.java
new file mode 100644
index 0000000..8885639
--- /dev/null
+++ b/ycl-smoke/src/main/java/com/ycl/smoke/service/impl/OdsLocaleServiceImpl.java
@@ -0,0 +1,20 @@
+package com.ycl.smoke.service.impl;
+
+import com.ycl.smoke.entity.OdsLocale;
+import com.ycl.smoke.mapper.OdsLocaleMapper;
+import com.ycl.smoke.service.IOdsLocaleService;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import org.springframework.stereotype.Service;
+
+/**
+ * <p>
+ * 鐩戞祴鐐逛俊鎭� 鏈嶅姟瀹炵幇绫�
+ * </p>
+ *
+ * @author lyq
+ * @since 2023-02-28
+ */
+@Service
+public class OdsLocaleServiceImpl extends ServiceImpl<OdsLocaleMapper, OdsLocale> implements IOdsLocaleService {
+
+}
diff --git a/ycl-smoke/src/main/java/com/ycl/smoke/service/impl/OdsTenMinDataServiceImpl.java b/ycl-smoke/src/main/java/com/ycl/smoke/service/impl/OdsTenMinDataServiceImpl.java
new file mode 100644
index 0000000..cbdaa32
--- /dev/null
+++ b/ycl-smoke/src/main/java/com/ycl/smoke/service/impl/OdsTenMinDataServiceImpl.java
@@ -0,0 +1,20 @@
+package com.ycl.smoke.service.impl;
+
+import com.ycl.smoke.entity.OdsTenMinData;
+import com.ycl.smoke.mapper.OdsTenMinDataMapper;
+import com.ycl.smoke.service.IOdsTenMinDataService;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import org.springframework.stereotype.Service;
+
+/**
+ * <p>
+ * 鏈嶅姟瀹炵幇绫�
+ * </p>
+ *
+ * @author lyq
+ * @since 2023-02-28
+ */
+@Service
+public class OdsTenMinDataServiceImpl extends ServiceImpl<OdsTenMinDataMapper, OdsTenMinData> implements IOdsTenMinDataService {
+
+}
diff --git a/ycl-smoke/src/main/java/com/ycl/smoke/task/ScheduledTask.java b/ycl-smoke/src/main/java/com/ycl/smoke/task/ScheduledTask.java
new file mode 100644
index 0000000..e93607e
--- /dev/null
+++ b/ycl-smoke/src/main/java/com/ycl/smoke/task/ScheduledTask.java
@@ -0,0 +1,106 @@
+package com.ycl.smoke.task;
+
+import com.ycl.service.redis.RedisService;
+import com.ycl.smoke.entity.OdsAlarmMsg;
+import com.ycl.smoke.remote.dto.*;
+import com.ycl.smoke.remote.service.ISmokeDetectionService;
+import com.ycl.smoke.service.IOdsAlarmMsgService;
+import com.ycl.utils.redis.RedisKey;
+import org.apache.velocity.runtime.directive.Foreach;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.scheduling.annotation.Scheduled;
+import org.springframework.stereotype.Component;
+import org.springframework.transaction.annotation.Transactional;
+
+import javax.annotation.Resource;
+import java.util.List;
+
+@Component
+public class ScheduledTask {
+
+ ISmokeDetectionService smokeDetectionService;
+
+ IOdsAlarmMsgService alarmMsgService;
+
+ @Resource
+ private RedisService redisService;
+
+ @Autowired
+ public void setSmokeDetectionService(ISmokeDetectionService smokeDetectionService) {
+ this.smokeDetectionService = smokeDetectionService;
+ }
+
+ @Autowired
+ public void setAlarmMsgService(IOdsAlarmMsgService alarmMsgService) {
+ this.alarmMsgService = alarmMsgService;
+ }
+
+ @Scheduled(cron = "0 0 1 * * ?") // 姣忓ぉ闆剁偣鎵ц
+ // @Scheduled(cron = "0 */2 * * * ?") // 姣忎竴涓垎閽熸墽琛� 0 0/1 * ?
+ // @Scheduled(cron = "0/1 * * * * ?") // 姣忕鎵ц
+ public void alarmMsgTask() {
+ try {
+ AlarmMsgParamDto paramDto = AlarmMsgParamDto.builder().StartAt(0).Size(100).build();
+
+ SmokeResultResponseDto<AlarmMsgResponseDto> responseDto = smokeDetectionService.getListAlarmMsg(paramDto, redisService.get(RedisKey.SMOKE_TOKEN).toString());
+ if (responseDto.getStatus() == 200) {
+ AlarmMsgResponseDto dto = responseDto.getData();
+ List<OdsAlarmMsg> list = dto.getContent();
+ System.out.println(list.size());
+ list.forEach(o->{
+ try {
+ alarmMsgService.save(o);
+ }
+ catch (Exception ex){
+
+ }
+ });
+ // alarmMsgService.saveBatch(list);
+ } else if (responseDto.getStatus() == 114) {
+ login();
+ alarmMsgTask();
+ }
+ } catch (Exception ex) {
+
+ }
+ }
+
+ @Scheduled(cron = "0 0 1 * * ?") // 姣忓ぉ闆剁偣鎵ц
+ // @Scheduled(cron = "0 */2 * * * ?") // 姣忎竴涓垎閽熸墽琛� 0 0/1 * ?
+ // @Scheduled(cron = "0/1 * * * * ?") // 姣忕鎵ц
+ public void queryDataDetectorDaily2Task() {
+ try {
+ AlarmMsgParamDto paramDto = AlarmMsgParamDto.builder().StartAt(0).Size(100).build();
+
+ SmokeResultResponseDto<AlarmMsgResponseDto> responseDto = smokeDetectionService.getListAlarmMsg(paramDto, redisService.get(RedisKey.SMOKE_TOKEN).toString());
+ if (responseDto.getStatus() == 200) {
+ AlarmMsgResponseDto dto = responseDto.getData();
+ List<OdsAlarmMsg> list = dto.getContent();
+ System.out.println(list.size());
+ list.forEach(o->{
+ try {
+ alarmMsgService.save(o);
+ }
+ catch (Exception ex){
+
+ }
+ });
+ // alarmMsgService.saveBatch(list);
+ } else if (responseDto.getStatus() == 114) {
+ login();
+ queryDataDetectorDaily2Task();
+ }
+ } catch (Exception ex) {
+
+ }
+ }
+
+ void login() {
+ LoginParamDto loginParamDto = LoginParamDto.builder().username("connect_test2").password("test@234").noCode(true).build();
+ SmokeResultResponseDto<LoginResponseDto> responseDto = smokeDetectionService.loginAction(loginParamDto);
+ if (responseDto.getStatus() == 200) {
+ System.out.println(responseDto.getData().getToken());
+ redisService.set(RedisKey.SMOKE_TOKEN, responseDto.getData().getToken());
+ }
+ }
+}
diff --git a/ycl-smoke/src/main/resources/application-dev.yml b/ycl-smoke/src/main/resources/application-dev.yml
new file mode 100644
index 0000000..397270e
--- /dev/null
+++ b/ycl-smoke/src/main/resources/application-dev.yml
@@ -0,0 +1,73 @@
+server:
+ port: 8084
+ tomcat:
+ uri-encoding: UTF-8
+ servlet:
+ context-path: /sccg
+ compression: true
+
+fdfs:
+ fileUrl: http://140.143.152.226:8410/
+ groupName: sczhzf
+ soTimeout: 1500
+ connectTimeout: 600
+ trackerList: #TrackerList鍙傛暟,鏀寔澶氫釜
+ - 140.143.152.226:22122
+
+cfg:
+ res: d://resources
+ media-res: 140.143.152.226/media/
+ snow-flake:
+ datacenterId: 1
+ machineId: 1
+
+spring:
+ redis:
+ database: 0
+ host: 42.193.1.25
+ port: 6379
+ password: ycl2018
+ jedis:
+ pool:
+ max-active: 8
+ max-idle: 8
+ min-idle: 0
+ timeout: 0
+
+ datasource:
+ url: jdbc:mysql://42.193.1.25:3306/sccg?useUnicode=true&characterEncoding=utf8&autoReconnect=true&useSSL=false
+ username: root
+ password: 321$YcYl@1970!
+ type: com.alibaba.druid.pool.DruidDataSource
+ driver-class-name: com.mysql.cj.jdbc.Driver
+ filters: stat
+ maxActive: 20
+ initialSize: 1
+ maxWait: 60000
+ minIdle: 1
+ timeBetweenEvictionRunsMillis: 60000
+ minEvictableIdleTimeMillis: 300000
+ validationQuery: select 'x'
+ testWhileIdle: true
+ testOnBorrow: false
+ testOnReturn: false
+ poolPreparedStatements: true
+ maxOpenPreparedStatements: 20
+
+e-mail:
+ sendHost: smtp.qq.com
+ username: 1723292425@qq.com
+ password: qizcitupatzoeeij
+
+SMS:
+ ecName: ycl
+ apId: 1
+ sign: sign
+ url: http://localhost:8082/sccg/text/sms_res
+
+videoPoint:
+ url: http://183.245.159.161:8281
+ port: 8281
+ userName: suichang
+ passWord: a12345677
+ ip: 10.10.10.10
\ No newline at end of file
diff --git a/ycl-smoke/src/main/resources/application-pro.yml b/ycl-smoke/src/main/resources/application-pro.yml
new file mode 100644
index 0000000..acbbec7
--- /dev/null
+++ b/ycl-smoke/src/main/resources/application-pro.yml
@@ -0,0 +1,71 @@
+server:
+ port: 8083
+ tomcat:
+ uri-encoding: UTF-8
+ servlet:
+ context-path: /sccg
+ compression: true
+
+fdfs:
+ fileUrl: http://140.143.152.226:8410/
+ groupName: sczhzf
+ soTimeout: 1500
+ connectTimeout: 600
+ trackerList: #TrackerList鍙傛暟,鏀寔澶氫釜
+ - 140.143.152.226:22122
+ -
+cfg:
+ res: d://resources
+ media-res: 140.143.152.226/media/
+ snow-flake:
+ datacenterId: 1
+ machineId: 1
+
+spring:
+ redis:
+ database: 0
+ host: localhost
+ password:
+ jedis:
+ pool:
+ max-active: 8
+ max-idle: 8
+ min-idle: 0
+ timeout: 0
+ datasource:
+ url: jdbc:mysql://42.193.1.25:3306/sccg?useUnicode=true&characterEncoding=utf8&autoReconnect=true&useSSL=false
+ username: root
+ password: 321$YcYl@1970!
+ type: com.alibaba.druid.pool.DruidDataSource
+ driver-class-name: com.mysql.cj.jdbc.Driver
+ filters: stat
+ maxActive: 20
+ initialSize: 1
+ maxWait: 60000
+ minIdle: 1
+ timeBetweenEvictionRunsMillis: 60000
+ minEvictableIdleTimeMillis: 300000
+ validationQuery: select 'x'
+ testWhileIdle: true
+ testOnBorrow: false
+ testOnReturn: false
+ poolPreparedStatements: true
+ maxOpenPreparedStatements: 20
+
+e-mail:
+ sendHost: smtp.qq.com
+ username: 1723292425@qq.com
+ password: qizcitupatzoeeij
+
+SMS:
+ ecName: ycl
+ apId: 1
+ sign: sign
+ url: http://localhost:8082/sccg/text/sms_res
+
+videoPoint:
+ url: http://183.245.159.161:8281
+ port: 8281
+ userName: suichang
+ passWord: a12345677
+ ip: 10.10.10.10
\ No newline at end of file
diff --git a/ycl-smoke/src/main/resources/application.yml b/ycl-smoke/src/main/resources/application.yml
new file mode 100644
index 0000000..a5c6f78
--- /dev/null
+++ b/ycl-smoke/src/main/resources/application.yml
@@ -0,0 +1,92 @@
+spring:
+ profiles:
+ active: dev
+ main:
+ allow-circular-references: true
+ allow-bean-definition-overriding: true
+ mvc:
+ pathmatch:
+ matching-strategy: ant_path_matcher
+ application:
+ name: sccg-platform
+ http:
+ charset: UTF-8
+ enabled: true
+ force: true
+ servlet:
+ multipart:
+ max-file-size: -1
+ max-request-size: -1
+# jackson:
+# default-property-inclusion: non_null
+
+
+management:
+ health:
+ rabbit:
+ enabled: false
+
+jwt:
+ tokenHeader: Authorization #JWT瀛樺偍鐨勮姹傚ご
+ secret: platform-secret #JWT鍔犺В瀵嗕娇鐢ㄧ殑瀵嗛挜
+ expiration: 604800 #JWT鐨勮秴鏈熼檺鏃堕棿(60*60*24*7)
+ tokenHead: 'Bearer ' #JWT璐熻浇涓嬁鍒板紑澶�
+
+redis:
+ database: sccg
+ key:
+ admin: 'ums:admin'
+ resourceList: 'ums:menuList'
+ expire:
+ common: 86400 # 24灏忔椂
+
+#MP閰嶇疆
+mybatis-plus:
+ mapper-locations: classpath*:mapper/**/*.xml
+ global-config:
+ db-config:
+ id-type: auto
+ #閫昏緫鍒犻櫎閰嶇疆瀛楁
+ logic-delete-field:
+ #閫昏緫鍒犻櫎閰嶇疆瀛楁 1 鍒犻櫎
+ logic-delete-value: 1
+ #閫昏緫鍒犻櫎閰嶇疆瀛楁 0 涓嶅垹闄�
+ logic-not-delete-value: 0
+
+knife4j:
+ enable: true
+ #true鍒欐槸鐢熶骇鐜涓嶅厑璁歌闂甼nife4j
+ production: false
+
+
+security:
+ basic:
+ enabled: false
+secure:
+ ignored:
+ urls: #閰嶇疆鐧藉悕鍗曡矾寰�
+ - /swagger-ui.html
+ - /swagger/**
+ - /swagger-ui/*
+ - /swagger-resources/**
+ - /**/v2/api-docs
+ - /doc.html
+ - /webjars/**
+ - /**/*.html
+ - /**/*.js
+ - /**/*.css
+ - /**/*.png
+ - /favicon.ico
+ - /actuator/**
+ - /druid/**
+ - /**/admin/login
+ - /**/admin/register
+ - /**/admin/info
+ - /**/admin/logout
+ - /dict/**
+ - /sccg-region/**
+ - /**/system/portal/logo/search
+ - /**/unauthorized/**
+ - /**/api/**
+ - /**/text/**
+ - /**/API/**
diff --git a/ycl-smoke/src/main/resources/logback-spring.xml b/ycl-smoke/src/main/resources/logback-spring.xml
new file mode 100644
index 0000000..4331451
--- /dev/null
+++ b/ycl-smoke/src/main/resources/logback-spring.xml
@@ -0,0 +1,128 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<configuration>
+ <property name="LOG_HOME" value="${user.dir}/logs/ycl/platform" />
+
+ <appender name="Console" class="ch.qos.logback.core.ConsoleAppender">
+ <encoder>
+ <pattern>%d{H:mm} %-5level [%logger{16}] %msg%n</pattern>
+ </encoder>
+ </appender>
+ <!-- class="ch.qos.logback.core.rolling.RollingFileAppender">-->
+ <appender name="normalLog"
+ class="ch.qos.logback.core.rolling.RollingFileAppender">
+ <rollingPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedRollingPolicy">
+ <FileNamePattern>${LOG_HOME}/normal/%d{yyyy-MM-dd}/%i.log</FileNamePattern>
+ <MaxHistory>30</MaxHistory>
+ <maxFileSize>2MB</maxFileSize>
+ </rollingPolicy>
+ <!--<rollingPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedRollingPolicy">
+ <FileNamePattern>${LOG_HOME}/job.normal.%d{yyyy-MM-dd}.log
+ </FileNamePattern>
+ <MaxHistory>30</MaxHistory>
+ </rollingPolicy>
+ <triggeringPolicy class="ch.qos.logback.core.rolling.SizeBasedTriggeringPolicy">
+ <maxFileSize>10MB</maxFileSize>
+ </triggeringPolicy>-->
+ <layout class="ch.qos.logback.classic.PatternLayout">
+ <pattern>%d{HH:mm:ss.SSS} [%thread] %-5level %logger{16} - %msg%n
+ </pattern>
+ </layout>
+ <filter class="ch.qos.logback.classic.filter.LevelFilter">
+ <level>ERROR</level>
+ <onMatch>DENY</onMatch>
+ <onMismatch>ACCEPT</onMismatch>
+ </filter>
+ </appender>
+
+ <appender name="ASYNC-INFO" class="ch.qos.logback.classic.AsyncAppender">
+ <discardingThreshold>0</discardingThreshold>
+ <queueSize>256</queueSize>
+ <appender-ref ref="normalLog"/>
+ </appender>
+
+
+
+ <appender name="errorLog"
+ class="ch.qos.logback.core.rolling.RollingFileAppender">
+
+ <rollingPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedRollingPolicy">
+ <FileNamePattern>${LOG_HOME}/error/%d{yyyy-MM-dd}/%i.log</FileNamePattern>
+ <MaxHistory>30</MaxHistory>
+ <maxFileSize>2MB</maxFileSize>
+ </rollingPolicy>
+ <!--<rollingPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedRollingPolicy">
+ <FileNamePattern>${LOG_HOME}/job.error.%d{yyyy-MM-dd}.log
+ </FileNamePattern>
+ <MaxHistory>30</MaxHistory>
+ </rollingPolicy>
+ <triggeringPolicy class="ch.qos.logback.core.rolling.SizeBasedTriggeringPolicy">
+ <maxFileSize>10MB</maxFileSize>
+ </triggeringPolicy>-->
+ <layout class="ch.qos.logback.classic.PatternLayout">
+ <pattern>%d{HH:mm:ss.SSS} [%thread] %-5level %logger{16} - %msg%n
+ </pattern>
+ </layout>
+ <filter class="ch.qos.logback.classic.filter.LevelFilter">
+ <level>ERROR</level>
+ <onMatch>ACCEPT</onMatch>
+ <onMismatch>DENY</onMismatch>
+ </filter>
+ </appender>
+
+
+
+ <appender name="ASYNC-ERROR" class="ch.qos.logback.classic.AsyncAppender">
+ <discardingThreshold>0</discardingThreshold>
+ <queueSize>256</queueSize>
+ <appender-ref ref="errorLog"/>
+ </appender>
+
+ <appender name="ASYNC-CONSOLE" class="ch.qos.logback.classic.AsyncAppender">
+ <discardingThreshold>0</discardingThreshold>
+ <queueSize>256</queueSize>
+ <appender-ref ref="Console"/>
+ </appender>
+
+
+
+<!-- <logger name="com.ycl" level="debug" >
+
+ </logger >-->
+ <springProfile name="dev">
+ <!--鎵撳嵃SQL-->
+ <logger name="java.sql.Connection" level="DEBUG" />
+ <logger name="java.sql.Statement" level="DEBUG" />
+ <logger name="java.sql.PreparedStatement" level="DEBUG" />
+
+ <logger name="com.ycl.component" level="error" />
+
+ <logger name="com.ycl" level="debug" >
+ <appender-ref ref="normalLog" />
+ <appender-ref ref="errorLog" />
+ </logger>
+
+ <root level="info">
+ <appender-ref ref="Console" />
+ <appender-ref ref="normalLog" />
+ <appender-ref ref="errorLog" />
+ </root>
+ </springProfile>
+
+ <springProfile name="pro">
+ <!--鎵撳嵃SQL-->
+ <logger name="java.sql.Connection" level="ERROR" />
+ <logger name="java.sql.Statement" level="ERROR" />
+ <logger name="java.sql.PreparedStatement" level="ERROR" />
+ <logger name="com.ycl" level="debug" >
+ <appender-ref ref="normalLog" />
+ <appender-ref ref="errorLog" />
+ </logger>
+ <root level="info">
+ <appender-ref ref="Console" />
+ </root>
+ </springProfile>
+
+
+
+
+</configuration>
\ No newline at end of file
diff --git a/ycl-smoke/src/main/resources/mapper/smoke/OdsAlarmMsgMapper.xml b/ycl-smoke/src/main/resources/mapper/smoke/OdsAlarmMsgMapper.xml
new file mode 100644
index 0000000..13235d0
--- /dev/null
+++ b/ycl-smoke/src/main/resources/mapper/smoke/OdsAlarmMsgMapper.xml
@@ -0,0 +1,20 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="com.ycl.smoke.mapper.OdsAlarmMsgMapper">
+
+ <!-- 閫氱敤鏌ヨ鏄犲皠缁撴灉 -->
+ <resultMap id="BaseResultMap" type="com.ycl.smoke.entity.OdsAlarmMsg">
+ <id column="id" property="id" />
+ <result column="mn" property="mn" />
+ <result column="acquit_at" property="acquitAt" />
+ <result column="owner" property="owner" />
+ <result column="content" property="content" />
+ <result column="msg_type" property="msgType" />
+ </resultMap>
+
+ <!-- 閫氱敤鏌ヨ缁撴灉鍒� -->
+ <sql id="Base_Column_List">
+ id, mn, acquit_at, owner, content, msg_type
+ </sql>
+
+</mapper>
diff --git a/ycl-smoke/src/main/resources/mapper/smoke/OdsAlarmRecordMapper.xml b/ycl-smoke/src/main/resources/mapper/smoke/OdsAlarmRecordMapper.xml
new file mode 100644
index 0000000..07b650e
--- /dev/null
+++ b/ycl-smoke/src/main/resources/mapper/smoke/OdsAlarmRecordMapper.xml
@@ -0,0 +1,33 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="com.ycl.smoke.mapper.OdsAlarmRecordMapper">
+
+ <!-- 閫氱敤鏌ヨ鏄犲皠缁撴灉 -->
+ <resultMap id="BaseResultMap" type="com.ycl.smoke.entity.OdsAlarmRecord">
+ <id column="id" property="id" />
+ <result column="local_id" property="localId" />
+ <result column="mn" property="mn" />
+ <result column="typ" property="typ" />
+ <result column="alarm_date" property="alarmDate" />
+ <result column="device_type" property="deviceType" />
+ <result column="acquit_at" property="acquitAt" />
+ <result column="process_at" property="processAt" />
+ <result column="owner" property="owner" />
+ <result column="solution" property="solution" />
+ <result column="processing_address" property="processingAddress" />
+ <result column="addr" property="addr" />
+ <result column="process_user_id" property="processUserId" />
+ <result column="process_user_name" property="processUserName" />
+ <result column="process_reason" property="processReason" />
+ <result column="created_at" property="createdAt" />
+ <result column="update_at" property="updateAt" />
+ <result column="total" property="total" />
+ <result column="alarm_record_pics" property="alarmRecordPics" />
+ </resultMap>
+
+ <!-- 閫氱敤鏌ヨ缁撴灉鍒� -->
+ <sql id="Base_Column_List">
+ id, local_id, mn, typ, alarm_date, device_type, acquit_at, process_at, owner, solution, processing_address, addr, process_user_id, process_user_name, process_reason, created_at, update_at, total, alarm_record_pics
+ </sql>
+
+</mapper>
diff --git a/ycl-smoke/src/main/resources/mapper/smoke/OdsCurAlarmMapper.xml b/ycl-smoke/src/main/resources/mapper/smoke/OdsCurAlarmMapper.xml
new file mode 100644
index 0000000..7a328e1
--- /dev/null
+++ b/ycl-smoke/src/main/resources/mapper/smoke/OdsCurAlarmMapper.xml
@@ -0,0 +1,49 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="com.ycl.smoke.mapper.OdsCurAlarmMapper">
+
+ <!-- 閫氱敤鏌ヨ鏄犲皠缁撴灉 -->
+ <resultMap id="BaseResultMap" type="com.ycl.smoke.entity.OdsCurAlarm">
+ <id column="id" property="id" />
+ <result column="abnormal_off_line_days" property="abnormalOffLineDays" />
+ <result column="abnormal_off_line_process_ratio" property="abnormalOffLineProcessRatio" />
+ <result column="abnormal_off_line_to_process_days" property="abnormalOffLineToProcessDays" />
+ <result column="addr" property="addr" />
+ <result column="c_emissions" property="cEmissions" />
+ <result column="c_emissions_avg_online" property="cEmissionsAvgOnline" />
+ <result column="c_emissions_max" property="cEmissionsMax" />
+ <result column="c_emissions_max_date" property="cEmissionsMaxDate" />
+ <result column="c_granule" property="cGranule" />
+ <result column="c_hydrocarbon" property="cHydrocarbon" />
+ <result column="cuisine_name" property="cuisineName" />
+ <result column="customer_bl_no" property="customerBlNo" />
+ <result column="customer_contact" property="customerContact" />
+ <result column="customer_mobile" property="customerMobile" />
+ <result column="customer_name" property="customerName" />
+ <result column="detector_failure_days" property="detectorFailureDays" />
+ <result column="emissions_sill" property="emissionsSill" />
+ <result column="excess_num" property="excessNum" />
+ <result column="excess_to_process_days" property="excessToProcessDays" />
+ <result column="filter_abnormally_used_days" property="filterAbnormallyUsedDays" />
+ <result column="filter_wash_times" property="filterWashTimes" />
+ <result column="granuli_sill" property="granuliSill" />
+ <result column="health_code_color" property="healthCodeColor" />
+ <result column="hydrocarbon_sill" property="hydrocarbonSill" />
+ <result column="locale_id" property="localeId" />
+ <result column="local_lat" property="localLat" />
+ <result column="local_lng" property="localLng" />
+ <result column="mn" property="mn" />
+ <result column="name" property="name" />
+ <result column="off_line_cause_by_shop_days" property="offLineCauseByShopDays" />
+ <result column="owner" property="owner" />
+ <result column="shop_close_days" property="shopCloseDays" />
+ <result column="status" property="status" />
+ <result column="status_desc" property="statusDesc" />
+ </resultMap>
+
+ <!-- 閫氱敤鏌ヨ缁撴灉鍒� -->
+ <sql id="Base_Column_List">
+ id, abnormal_off_line_days, abnormal_off_line_process_ratio, abnormal_off_line_to_process_days, addr, c_emissions, c_emissions_avg_online, c_emissions_max, c_emissions_max_date, c_granule, c_hydrocarbon, cuisine_name, customer_bl_no, customer_contact, customer_mobile, customer_name, detector_failure_days, emissions_sill, excess_num, excess_to_process_days, filter_abnormally_used_days, filter_wash_times, granuli_sill, health_code_color, hydrocarbon_sill, locale_id, local_lat, local_lng, mn, name, off_line_cause_by_shop_days, owner, shop_close_days, status, status_desc
+ </sql>
+
+</mapper>
diff --git a/ycl-smoke/src/main/resources/mapper/smoke/OdsCustomerMapper.xml b/ycl-smoke/src/main/resources/mapper/smoke/OdsCustomerMapper.xml
new file mode 100644
index 0000000..274b904
--- /dev/null
+++ b/ycl-smoke/src/main/resources/mapper/smoke/OdsCustomerMapper.xml
@@ -0,0 +1,35 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="com.ycl.smoke.mapper.OdsCustomerMapper">
+
+ <!-- 閫氱敤鏌ヨ鏄犲皠缁撴灉 -->
+ <resultMap id="BaseResultMap" type="com.ycl.smoke.entity.OdsCustomer">
+ <id column="id" property="id" />
+ <result column="pid" property="pid" />
+ <result column="bl_no" property="blNo" />
+ <result column="bl_name" property="blName" />
+ <result column="org" property="org" />
+ <result column="name" property="name" />
+ <result column="contact" property="contact" />
+ <result column="mobile" property="mobile" />
+ <result column="telephone" property="telephone" />
+ <result column="typ" property="typ" />
+ <result column="creator" property="creator" />
+ <result column="create_at" property="createAt" />
+ <result column="status" property="status" />
+ <result column="address" property="address" />
+ <result column="logo" property="logo" />
+ <result column="business_hour" property="businessHour" />
+ <result column="maintainer_id" property="maintainerId" />
+ <result column="area_ids" property="areaIds" />
+ <result column="area_id_cascads" property="areaIdCascads" />
+ <result column="areas" property="areas" />
+ <result column="desc" property="desc" />
+ </resultMap>
+
+ <!-- 閫氱敤鏌ヨ缁撴灉鍒� -->
+ <sql id="Base_Column_List">
+ id, pid, bl_no, bl_name, org, name, contact, mobile, telephone, typ, creator, create_at, status, address, logo, business_hour, maintainer_id, area_ids, area_id_cascads, areas, desc
+ </sql>
+
+</mapper>
diff --git a/ycl-smoke/src/main/resources/mapper/smoke/OdsDetectorDailyMapper.xml b/ycl-smoke/src/main/resources/mapper/smoke/OdsDetectorDailyMapper.xml
new file mode 100644
index 0000000..aa0238d
--- /dev/null
+++ b/ycl-smoke/src/main/resources/mapper/smoke/OdsDetectorDailyMapper.xml
@@ -0,0 +1,49 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="com.ycl.smoke.mapper.OdsDetectorDailyMapper">
+
+ <!-- 閫氱敤鏌ヨ鏄犲皠缁撴灉 -->
+ <resultMap id="BaseResultMap" type="com.ycl.smoke.entity.OdsDetectorDaily">
+ <id column="id" property="id" />
+ <result column="mn" property="mn" />
+ <result column="owner" property="owner" />
+ <result column="acquit_at" property="acquitAt" />
+ <result column="acquit_date" property="acquitDate" />
+ <result column="create_at" property="createAt" />
+ <result column="c_emissions" property="cEmissions" />
+ <result column="c_granule" property="cGranule" />
+ <result column="c_hydrocarbon" property="cHydrocarbon" />
+ <result column="e_missions" property="eMissions" />
+ <result column="granule" property="granule" />
+ <result column="hydrocarbon" property="hydrocarbon" />
+ <result column="velocity" property="velocity" />
+ <result column="temperature" property="temperature" />
+ <result column="moisture" property="moisture" />
+ <result column="red_pm25" property="redPm25" />
+ <result column="red_pm10" property="redPm10" />
+ <result column="red_emissions" property="redEmissions" />
+ <result column="red_vocs" property="redVocs" />
+ <result column="device_num" property="deviceNum" />
+ <result column="status" property="status" />
+ <result column="filter_fan_link_ratio" property="filterFanLinkRatio" />
+ <result column="filter_abnormally_used" property="filterAbnormallyUsed" />
+ <result column="c_emissions_exceed_standard" property="cEmissionsExceedStandard" />
+ <result column="c_granule_exceed_standard" property="cGranuleExceedStandard" />
+ <result column="c_hydrocarbon_exceed_standard" property="cHydrocarbonExceedStandard" />
+ <result column="locale_id" property="localeId" />
+ <result column="customer_id" property="customerId" />
+ <result column="customer" property="customer" />
+ <result column="locale_emissions_sill" property="localeEmissionsSill" />
+ <result column="locale_granule_sill" property="localeGranuleSill" />
+ <result column="locale_hydrocarbon_sill" property="localeHydrocarbonSill" />
+ <result column="locale_name" property="localeName" />
+ <result column="locale_addr" property="localeAddr" />
+ <result column="abnormal_off_line" property="abnormalOffLine" />
+ </resultMap>
+
+ <!-- 閫氱敤鏌ヨ缁撴灉鍒� -->
+ <sql id="Base_Column_List">
+ id, mn, owner, acquit_at, acquit_date, create_at, c_emissions, c_granule, c_hydrocarbon, e_missions, granule, hydrocarbon, velocity, temperature, moisture, red_pm25, red_pm10, red_emissions, red_vocs, device_num, status, filter_fan_link_ratio, filter_abnormally_used, c_emissions_exceed_standard, c_granule_exceed_standard, c_hydrocarbon_exceed_standard, locale_id, customer_id, customer, locale_emissions_sill, locale_granule_sill, locale_hydrocarbon_sill, locale_name, locale_addr, abnormal_off_line
+ </sql>
+
+</mapper>
diff --git a/ycl-smoke/src/main/resources/mapper/smoke/OdsInTimeMapper.xml b/ycl-smoke/src/main/resources/mapper/smoke/OdsInTimeMapper.xml
new file mode 100644
index 0000000..75231a7
--- /dev/null
+++ b/ycl-smoke/src/main/resources/mapper/smoke/OdsInTimeMapper.xml
@@ -0,0 +1,46 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="com.ycl.smoke.mapper.OdsInTimeMapper">
+
+ <!-- 閫氱敤鏌ヨ鏄犲皠缁撴灉 -->
+ <resultMap id="BaseResultMap" type="com.ycl.smoke.entity.OdsInTime">
+ <id column="id" property="id" />
+ <result column="string" property="string" />
+ <result column="acquit_at" property="acquitAt" />
+ <result column="last_at" property="lastAt" />
+ <result column="c_emissions" property="cEmissions" />
+ <result column="c_granule" property="cGranule" />
+ <result column="c_hydrocarbon" property="cHydrocarbon" />
+ <result column="emissions_conc" property="emissionsConc" />
+ <result column="granule_conc" property="granuleConc" />
+ <result column="hydrocarbon_conc" property="hydrocarbonConc" />
+ <result column="fan_status" property="fanStatus" />
+ <result column="filter_status" property="filterStatus" />
+ <result column="typ" property="typ" />
+ <result column="status" property="status" />
+ <result column="velocity" property="velocity" />
+ <result column="temperature" property="temperature" />
+ <result column="moisture" property="moisture" />
+ <result column="locale" property="locale" />
+ <result column="lid" property="lid" />
+ <result column="owner" property="owner" />
+ <result column="addr" property="addr" />
+ <result column="emissions_sill" property="emissionsSill" />
+ <result column="granule_sill" property="granuleSill" />
+ <result column="hydrocarbon_sill" property="hydrocarbonSill" />
+ <result column="link_status" property="linkStatus" />
+ <result column="customer_mobile" property="customerMobile" />
+ <result column="locale_lng" property="localeLng" />
+ <result column="localelat" property="localelat" />
+ <result column="fan_current" property="fanCurrent" />
+ <result column="pur_current" property="purCurrent" />
+ <result column="online_status" property="onlineStatus" />
+ <result column="status_of_record" property="statusOfRecord" />
+ </resultMap>
+
+ <!-- 閫氱敤鏌ヨ缁撴灉鍒� -->
+ <sql id="Base_Column_List">
+ id, string, acquit_at, last_at, c_emissions, c_granule, c_hydrocarbon, emissions_conc, granule_conc, hydrocarbon_conc, fan_status, filter_status, typ, status, velocity, temperature, moisture, locale, lid, owner, addr, emissions_sill, granule_sill, hydrocarbon_sill, link_status, customer_mobile, locale_lng, localelat, fan_current, pur_current, online_status, status_of_record
+ </sql>
+
+</mapper>
diff --git a/ycl-smoke/src/main/resources/mapper/smoke/OdsLocaleMapper.xml b/ycl-smoke/src/main/resources/mapper/smoke/OdsLocaleMapper.xml
new file mode 100644
index 0000000..c316654
--- /dev/null
+++ b/ycl-smoke/src/main/resources/mapper/smoke/OdsLocaleMapper.xml
@@ -0,0 +1,75 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="com.ycl.smoke.mapper.OdsLocaleMapper">
+
+ <!-- 閫氱敤鏌ヨ鏄犲皠缁撴灉 -->
+ <resultMap id="BaseResultMap" type="com.ycl.smoke.entity.OdsLocale">
+ <id column="id" property="id" />
+ <result column="n_name" property="nName" />
+ <result column="owner" property="owner" />
+ <result column="cuisine" property="cuisine" />
+ <result column="customer_id" property="customerId" />
+ <result column="customer" property="customer" />
+ <result column="fan_speed" property="fanSpeed" />
+ <result column="fan_quantity" property="fanQuantity" />
+ <result column="pipe_area" property="pipeArea" />
+ <result column="stove_num" property="stoveNum" />
+ <result column="offline_judge" property="offlineJudge" />
+ <result column="fan_status" property="fanStatus" />
+ <result column="filter_info" property="filterInfo" />
+ <result column="filter_status" property="filterStatus" />
+ <result column="samplings" property="samplings" />
+ <result column="link_status" property="linkStatus" />
+ <result column="emissions_sill" property="emissionsSill" />
+ <result column="stove_area" property="stoveArea" />
+ <result column="exhaust_time" property="exhaustTime" />
+ <result column="remark" property="remark" />
+ <result column="addr" property="addr" />
+ <result column="area_id" property="areaId" />
+ <result column="lng" property="lng" />
+ <result column="lat" property="lat" />
+ <result column="creator" property="creator" />
+ <result column="create_at" property="createAt" />
+ <result column="status" property="status" />
+ <result column="granule_sill" property="granuleSill" />
+ <result column="hydrocarbon_sill" property="hydrocarbonSill" />
+ <result column="health_code_color" property="healthCodeColor" />
+ <result column="mn_last" property="mnLast" />
+ <result column="locale_pics" property="localePics" />
+ <result column="mn_typ_last" property="mnTypLast" />
+ <result column="fan_info" property="fanInfo" />
+ <result column="power_supply_mode" property="powerSupplyMode" />
+ <result column="link_ratio_sill" property="linkRatioSill" />
+ <result column="maintainer_id" property="maintainerId" />
+ <result column="health_code_x" property="healthCodeX" />
+ <result column="health_code_value1" property="healthCodeValue1" />
+ <result column="health_code_value2" property="healthCodeValue2" />
+ <result column="health_code_value3" property="healthCodeValue3" />
+ <result column="health_code_value4" property="healthCodeValue4" />
+ <result column="health_code_value5" property="healthCodeValue5" />
+ <result column="health_code_valuee6" property="healthCodeValuee6" />
+ <result column="abnormal_value7" property="abnormalValue7" />
+ <result column="abnormal_value78" property="abnormalValue78" />
+ <result column="abnormal_value79" property="abnormalValue79" />
+ <result column="abnormal_value710" property="abnormalValue710" />
+ <result column="aliIot_device_name" property="aliiotDeviceName" />
+ <result column="aliIot" property="aliIot" />
+ <result column="created_at" property="createdAt" />
+ <result column="updated_at" property="updatedAt" />
+ <result column="health_code_value11" property="healthCodeValue11" />
+ <result column="health_code_value12" property="healthCodeValue12" />
+ <result column="send_mode" property="sendMode" />
+ <result column="surpass_calc_method" property="surpassCalcMethod" />
+ <result column="fan_standardurrent" property="fanStandardurrent" />
+ <result column="filter_standard_current" property="filterStandardCurrent" />
+ <result column="status_of_record" property="statusOfRecord" />
+ <result column="remark_of_record" property="remarkOfRecord" />
+ <result column="cause" property="cause" />
+ </resultMap>
+
+ <!-- 閫氱敤鏌ヨ缁撴灉鍒� -->
+ <sql id="Base_Column_List">
+ id, n_name, owner, cuisine, customer_id, customer, fan_speed, fan_quantity, pipe_area, stove_num, offline_judge, fan_status, filter_info, filter_status, samplings, link_status, emissions_sill, stove_area, exhaust_time, remark, addr, area_id, lng, lat, creator, create_at, status, granule_sill, hydrocarbon_sill, health_code_color, mn_last, locale_pics, mn_typ_last, fan_info, power_supply_mode, link_ratio_sill, maintainer_id, health_code_x, health_code_value1, health_code_value2, health_code_value3, health_code_value4, health_code_value5, health_code_valuee6, abnormal_value7, abnormal_value78, abnormal_value79, abnormal_value710, aliIot_device_name, aliIot, created_at, updated_at, health_code_value11, health_code_value12, send_mode, surpass_calc_method, fan_standardurrent, filter_standard_current, status_of_record, remark_of_record, cause
+ </sql>
+
+</mapper>
diff --git a/ycl-smoke/src/main/resources/mapper/smoke/OdsTenMinDataMapper.xml b/ycl-smoke/src/main/resources/mapper/smoke/OdsTenMinDataMapper.xml
new file mode 100644
index 0000000..10a1938
--- /dev/null
+++ b/ycl-smoke/src/main/resources/mapper/smoke/OdsTenMinDataMapper.xml
@@ -0,0 +1,25 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="com.ycl.smoke.mapper.OdsTenMinDataMapper">
+
+ <!-- 閫氱敤鏌ヨ鏄犲皠缁撴灉 -->
+ <resultMap id="BaseResultMap" type="com.ycl.smoke.entity.OdsTenMinData">
+ <id column="id" property="id" />
+ <result column="mn" property="mn" />
+ <result column="acquit_at" property="acquitAt" />
+ <result column="counter" property="counter" />
+ <result column="create_at" property="createAt" />
+ <result column="emissions_conc" property="emissionsConc" />
+ <result column="granule_conc" property="granuleConc" />
+ <result column="hydrocarbon_conc" property="hydrocarbonConc" />
+ <result column="velocity" property="velocity" />
+ <result column="temperature" property="temperature" />
+ <result column="moisture" property="moisture" />
+ </resultMap>
+
+ <!-- 閫氱敤鏌ヨ缁撴灉鍒� -->
+ <sql id="Base_Column_List">
+ id, mn, acquit_at, counter, create_at, emissions_conc, granule_conc, hydrocarbon_conc, velocity, temperature, moisture
+ </sql>
+
+</mapper>
--
Gitblit v1.8.0