From 34db44da95f4d2865a32b5a1c05ddc34b7a6e93c Mon Sep 17 00:00:00 2001 From: luyie Date: Tue, 17 Jun 2025 09:09:48 +0800 Subject: [PATCH] =?UTF-8?q?add:=E6=B5=B7=E5=BA=B7=E5=A8=81=E8=A7=86?= =?UTF-8?q?=E6=99=BA=E8=83=BD=E5=91=8A=E8=AD=A6=E8=AE=A2=E9=98=85?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- hzims-service/hikvision/pom.xml | 31 ++++++++++++ .../hnac/hzims/hikvision/HikvisionApplication.java | 28 +++++++++++ .../hzims/hikvision/config/HikvisionConfig.java | 33 +++++++++++++ .../hikvision/controller/HikvisionController.java | 26 ++++++++++ .../hzims/hikvision/service/IHikvisionService.java | 14 ++++++ .../service/impl/HikvisionServiceImpl.java | 55 ++++++++++++++++++++++ .../src/main/resources/application-dev.yml | 10 ++++ .../src/main/resources/application-prod.yml | 6 +++ .../src/main/resources/application-test.yml | 6 +++ .../hikvision/src/main/resources/application.yml | 15 ++++++ hzims-service/inspect/pom.xml | 1 - hzims-service/pom.xml | 1 + hzims-service/ticket/pom.xml | 1 - hzims-service/video-image/pom.xml | 1 - pom.xml | 2 +- 15 files changed, 226 insertions(+), 4 deletions(-) create mode 100644 hzims-service/hikvision/pom.xml create mode 100644 hzims-service/hikvision/src/main/java/com/hnac/hzims/hikvision/HikvisionApplication.java create mode 100644 hzims-service/hikvision/src/main/java/com/hnac/hzims/hikvision/config/HikvisionConfig.java create mode 100644 hzims-service/hikvision/src/main/java/com/hnac/hzims/hikvision/controller/HikvisionController.java create mode 100644 hzims-service/hikvision/src/main/java/com/hnac/hzims/hikvision/service/IHikvisionService.java create mode 100644 hzims-service/hikvision/src/main/java/com/hnac/hzims/hikvision/service/impl/HikvisionServiceImpl.java create mode 100644 hzims-service/hikvision/src/main/resources/application-dev.yml create mode 100644 hzims-service/hikvision/src/main/resources/application-prod.yml create mode 100644 hzims-service/hikvision/src/main/resources/application-test.yml create mode 100644 hzims-service/hikvision/src/main/resources/application.yml diff --git a/hzims-service/hikvision/pom.xml b/hzims-service/hikvision/pom.xml new file mode 100644 index 0000000..713320c --- /dev/null +++ b/hzims-service/hikvision/pom.xml @@ -0,0 +1,31 @@ + + 4.0.0 + + com.hnac.hzims + hzims-service + 4.0.0-SNAPSHOT + + + hikvision + jar + + hikvision + http://maven.apache.org + + + UTF-8 + + + + + com.hzinfo.framework + hnac-framework-mqtt-starters + ${bladex.project.version} + + + com.hikvision.ga + artemis-http-client + + + diff --git a/hzims-service/hikvision/src/main/java/com/hnac/hzims/hikvision/HikvisionApplication.java b/hzims-service/hikvision/src/main/java/com/hnac/hzims/hikvision/HikvisionApplication.java new file mode 100644 index 0000000..53b10d5 --- /dev/null +++ b/hzims-service/hikvision/src/main/java/com/hnac/hzims/hikvision/HikvisionApplication.java @@ -0,0 +1,28 @@ +package com.hnac.hzims.hikvision; + +import org.mybatis.spring.annotation.MapperScan; +import org.springblade.core.cloud.feign.EnableBladeFeign; +import org.springblade.core.launch.BladeApplication; +import org.springframework.boot.builder.SpringApplicationBuilder; +import org.springframework.cloud.client.SpringCloudApplication; + +/** + * 海康威视微服务 + * + * @author ypj + * @date 2025-06-12 + */ +@EnableBladeFeign +@SpringCloudApplication +@MapperScan(basePackages = {"com.hnac.hzinfo.**.mapper"}) +public class HikvisionApplication { + static String APPLICATION_NAME = "hzims-hikvision"; + + public static void main(String[] args) { + BladeApplication.run(APPLICATION_NAME, HikvisionApplication.class, args); + } + + protected SpringApplicationBuilder configure(SpringApplicationBuilder builder) { + return BladeApplication.createSpringApplicationBuilder(builder, APPLICATION_NAME, HikvisionApplication.class); + } +} diff --git a/hzims-service/hikvision/src/main/java/com/hnac/hzims/hikvision/config/HikvisionConfig.java b/hzims-service/hikvision/src/main/java/com/hnac/hzims/hikvision/config/HikvisionConfig.java new file mode 100644 index 0000000..85e60ec --- /dev/null +++ b/hzims-service/hikvision/src/main/java/com/hnac/hzims/hikvision/config/HikvisionConfig.java @@ -0,0 +1,33 @@ +package com.hnac.hzims.hikvision.config; + +import com.hikvision.artemis.sdk.config.ArtemisConfig; +import lombok.Data; +import org.springframework.boot.context.properties.ConfigurationProperties; +import org.springframework.cloud.context.config.annotation.RefreshScope; +import org.springframework.context.annotation.Configuration; + +/** + * 海康威视配置 + * + * @author ypj + * @date 2025-06-13 + */ +@Configuration +@ConfigurationProperties(prefix = "hikvision.server") +@Data +@RefreshScope +public class HikvisionConfig { + private String host; + + private String appKey; + + private String appSecret; + + public ArtemisConfig toArtemisConfig() { + ArtemisConfig artemisConfig = new ArtemisConfig(); + artemisConfig.setHost(host); + artemisConfig.setAppKey(appKey); + artemisConfig.setAppSecret(appSecret); + return artemisConfig; + } +} diff --git a/hzims-service/hikvision/src/main/java/com/hnac/hzims/hikvision/controller/HikvisionController.java b/hzims-service/hikvision/src/main/java/com/hnac/hzims/hikvision/controller/HikvisionController.java new file mode 100644 index 0000000..a54425f --- /dev/null +++ b/hzims-service/hikvision/src/main/java/com/hnac/hzims/hikvision/controller/HikvisionController.java @@ -0,0 +1,26 @@ +package com.hnac.hzims.hikvision.controller; + +import com.hnac.hzims.hikvision.service.IHikvisionService; +import lombok.RequiredArgsConstructor; +import org.springblade.core.tool.api.R; +import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RestController; + +/** + * 海康威视智能告警 + * + * @author ypj + * @date 2025-06-13 + */ +@RestController +@RequestMapping("/hikvision") +@RequiredArgsConstructor +public class HikvisionController { + private final IHikvisionService hikvisionService; + + @GetMapping("/getSubscriptionResult") + public R getSubscriptionResult() { + return R.data(hikvisionService.getSubscriptionResult()); + } +} diff --git a/hzims-service/hikvision/src/main/java/com/hnac/hzims/hikvision/service/IHikvisionService.java b/hzims-service/hikvision/src/main/java/com/hnac/hzims/hikvision/service/IHikvisionService.java new file mode 100644 index 0000000..151a794 --- /dev/null +++ b/hzims-service/hikvision/src/main/java/com/hnac/hzims/hikvision/service/IHikvisionService.java @@ -0,0 +1,14 @@ +package com.hnac.hzims.hikvision.service; + +/** + * 海康威视视频服务 + * + * @author ypj + * @date 2025-06-12 + */ +public interface IHikvisionService { + + String getSubscriptionResult(); + + Boolean subscribe(); +} diff --git a/hzims-service/hikvision/src/main/java/com/hnac/hzims/hikvision/service/impl/HikvisionServiceImpl.java b/hzims-service/hikvision/src/main/java/com/hnac/hzims/hikvision/service/impl/HikvisionServiceImpl.java new file mode 100644 index 0000000..b304b67 --- /dev/null +++ b/hzims-service/hikvision/src/main/java/com/hnac/hzims/hikvision/service/impl/HikvisionServiceImpl.java @@ -0,0 +1,55 @@ +package com.hnac.hzims.hikvision.service.impl; + +import com.hikvision.artemis.sdk.ArtemisHttpUtil; +import com.hikvision.artemis.sdk.config.ArtemisConfig; +import com.hnac.hzims.hikvision.config.HikvisionConfig; +import com.hnac.hzims.hikvision.service.IHikvisionService; +import lombok.RequiredArgsConstructor; +import lombok.extern.java.Log; +import lombok.extern.slf4j.Slf4j; +import org.springblade.mqtt.config.MqttConfig; +import org.springframework.stereotype.Service; + +import java.util.HashMap; +import java.util.Map; + +/** + * 海康威视服务 + * + * @author ypj + * @date 2025-06-12 + */ +@Service +@Slf4j +@RequiredArgsConstructor +public class HikvisionServiceImpl implements IHikvisionService { + + private final MqttConfig mqttConfig; + + private final HikvisionConfig hikvisionConfig; + + @Override + public String getSubscriptionResult() { + ArtemisConfig.host = this.hikvisionConfig.getHost(); + ArtemisConfig.appKey = this.hikvisionConfig.getAppKey(); + ArtemisConfig.appSecret = this.hikvisionConfig.getAppSecret(); + final Map subscriptionPath = new HashMap(2) { + { + this.put("https://", "/artemis/api/eventService/v1/eventSubscriptionView"); + } + }; + return ArtemisHttpUtil.doPostStringArtemis(subscriptionPath, + "{\"subWay\":2}", + (Map) null, + (String) null, + "application/json", + (Map) null); + } + + @Override + public Boolean subscribe() { + String result = this.getSubscriptionResult(); + log.info("海康威视订阅结果:{}", result); + return Boolean.TRUE; + } +} diff --git a/hzims-service/hikvision/src/main/resources/application-dev.yml b/hzims-service/hikvision/src/main/resources/application-dev.yml new file mode 100644 index 0000000..3bba0bc --- /dev/null +++ b/hzims-service/hikvision/src/main/resources/application-dev.yml @@ -0,0 +1,10 @@ +#服务器端口 +server: + port: 8271 + +#数据源配置 +spring: + datasource: + url: ${blade.datasource.dev.url} + username: ${blade.datasource.dev.username} + password: ${blade.datasource.dev.password} diff --git a/hzims-service/hikvision/src/main/resources/application-prod.yml b/hzims-service/hikvision/src/main/resources/application-prod.yml new file mode 100644 index 0000000..a96da50 --- /dev/null +++ b/hzims-service/hikvision/src/main/resources/application-prod.yml @@ -0,0 +1,6 @@ +#数据源配置 +spring: + datasource: + url: ${blade.datasource.prod.url} + username: ${blade.datasource.prod.username} + password: ${blade.datasource.prod.password} \ No newline at end of file diff --git a/hzims-service/hikvision/src/main/resources/application-test.yml b/hzims-service/hikvision/src/main/resources/application-test.yml new file mode 100644 index 0000000..ac352b6 --- /dev/null +++ b/hzims-service/hikvision/src/main/resources/application-test.yml @@ -0,0 +1,6 @@ +#数据源配置 +spring: + datasource: + url: ${blade.datasource.test.url} + username: ${blade.datasource.test.username} + password: ${blade.datasource.test.password} \ No newline at end of file diff --git a/hzims-service/hikvision/src/main/resources/application.yml b/hzims-service/hikvision/src/main/resources/application.yml new file mode 100644 index 0000000..1ac4eb5 --- /dev/null +++ b/hzims-service/hikvision/src/main/resources/application.yml @@ -0,0 +1,15 @@ +spring: + application: + name: hzims-hikvision + +#mybatis-plus配置 +mybatis-plus: + mapper-locations: classpath:org/springbalde/**/mapper/*Mapper.xml,classpath:com/hnac/hzinfo/**/mapper/*Mapper.xml + #实体扫描,多个package用逗号或者分号分隔 + typeAliasesPackage: org.springbalde.**.entity,com.hnac.hzinfo.**.entity + +#swagger扫描路径配置 +swagger: + base-packages: + - org.springbalde + - com.hnac.hzinfo \ No newline at end of file diff --git a/hzims-service/inspect/pom.xml b/hzims-service/inspect/pom.xml index f4e8843..ff84425 100644 --- a/hzims-service/inspect/pom.xml +++ b/hzims-service/inspect/pom.xml @@ -102,7 +102,6 @@ com.hikvision.ga artemis-http-client - 1.1.2 net.sf.ehcache diff --git a/hzims-service/pom.xml b/hzims-service/pom.xml index a756829..37b4c38 100644 --- a/hzims-service/pom.xml +++ b/hzims-service/pom.xml @@ -35,6 +35,7 @@ water-rain message-alarm-service simulate + hikvision diff --git a/hzims-service/ticket/pom.xml b/hzims-service/ticket/pom.xml index f8eb3ba..9b93413 100644 --- a/hzims-service/ticket/pom.xml +++ b/hzims-service/ticket/pom.xml @@ -188,7 +188,6 @@ com.hikvision.ga artemis-http-client - 1.1.2 diff --git a/hzims-service/video-image/pom.xml b/hzims-service/video-image/pom.xml index 6b55662..4589d7b 100644 --- a/hzims-service/video-image/pom.xml +++ b/hzims-service/video-image/pom.xml @@ -54,7 +54,6 @@ com.hikvision.ga artemis-http-client - 1.1.2 com.hnac.hzinfo.data diff --git a/pom.xml b/pom.xml index 71221a6..3c5e68e 100644 --- a/pom.xml +++ b/pom.xml @@ -161,7 +161,7 @@ com.hikvision.ga artemis-http-client - 1.1.2 + 1.1.3