From 56a371f7ad1907de5520738311d454cbc1f29bfa Mon Sep 17 00:00:00 2001 From: zhaoxianglong <you@example.com> Date: Fri, 23 Feb 2024 11:25:48 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BC=98=E5=8C=96=E9=9D=9E=E6=9C=BA=E9=A2=84?= =?UTF-8?q?=E8=AD=A6=E4=BA=8B=E4=BB=B6=E8=AE=A2=E9=98=85=E6=96=B9=E5=BC=8F?= =?UTF-8?q?=20=E6=96=B0=E5=A2=9E=E9=A1=B5=E9=9D=A2=20=E6=96=B0=E5=A2=9E?= =?UTF-8?q?=E8=B7=9F=E9=9A=8F=E9=A1=B9=E7=9B=AE=E8=87=AA=E5=90=AF=E5=8A=A8?= =?UTF-8?q?=20=E4=BC=98=E5=8C=96=E8=AE=BE=E5=A4=87=E6=96=B0=E5=A2=9E?= =?UTF-8?q?=E9=A1=B5=E9=9D=A2=E7=BB=84=E4=BB=B6=E5=BA=94=E7=94=A8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../src/api/system/NonAutomaticWarning.js | 10 +++ ruoyi-ui/src/views/system/device/index.vue | 18 +++- .../system/non-automatic-warning/index.vue | 83 +++++++++++++++++++ .../NonAutomaticWarningController.java | 37 +++++++-- .../business/domain/NonAutomaticWarning.java | 24 ++++++ 5 files changed, 162 insertions(+), 10 deletions(-) create mode 100644 ruoyi-ui/src/api/system/NonAutomaticWarning.js create mode 100644 ruoyi-ui/src/views/system/non-automatic-warning/index.vue create mode 100644 zc-business/src/main/java/com/zc/business/domain/NonAutomaticWarning.java diff --git a/ruoyi-ui/src/api/system/NonAutomaticWarning.js b/ruoyi-ui/src/api/system/NonAutomaticWarning.js new file mode 100644 index 00000000..2b19feb0 --- /dev/null +++ b/ruoyi-ui/src/api/system/NonAutomaticWarning.js @@ -0,0 +1,10 @@ +import request from '@/utils/request' + +// 调用非机预警设备订阅事件 +export function eventSubscription(data) { + return request({ + url: '/nonAutomaticWarning/eventSubscription', + method: 'post', + data: data + }) +} diff --git a/ruoyi-ui/src/views/system/device/index.vue b/ruoyi-ui/src/views/system/device/index.vue index 906c0f2e..9c538fe1 100644 --- a/ruoyi-ui/src/views/system/device/index.vue +++ b/ruoyi-ui/src/views/system/device/index.vue @@ -140,7 +140,7 @@ </template> </el-table-column> </el-table> - + <pagination v-show="total>0" :total="total" @@ -174,7 +174,12 @@ <el-input v-model="form.network" placeholder="请输入网段" /> </el-form-item> <el-form-item label="备注"> - <editor v-model="form.content" :min-height="192"/> + <!-- 脚本 --> + <json-editor + v-model="form.content" + :mode="editorOptions.mode" + :lang="editorOptions.lang" + /> </el-form-item> </el-form> <div slot="footer" class="dialog-footer"> @@ -187,11 +192,20 @@ <script> import { listDevice, getDevice, delDevice, addDevice, updateDevice } from "@/api/system/device"; +import JsonEditor from '@/components/JsonEditor' export default { name: "Device", + components: { + JsonEditor + }, data() { return { + // 代码编辑器配置 + editorOptions: { + mode: 'text', // 默认模式 tree,code,form,text,view + lang: 'zh' // zh(中文),en(英文) + }, // 遮罩层 loading: true, // 选中数组 diff --git a/ruoyi-ui/src/views/system/non-automatic-warning/index.vue b/ruoyi-ui/src/views/system/non-automatic-warning/index.vue new file mode 100644 index 00000000..9e29a1aa --- /dev/null +++ b/ruoyi-ui/src/views/system/non-automatic-warning/index.vue @@ -0,0 +1,83 @@ +<template> + <div class="app-container"> + <!-- 添加或修改【请填写功能名称】对话框 --> + <el-form ref="form" :model="form" :rules="rules" label-width="80px"> + <el-form-item label="用户名称" prop="APPKEY"> + <el-input v-model="form.APPKEY" placeholder="请输入用户名称" /> + </el-form-item> + <el-form-item label="用户密码" prop="APPSECRET"> + <el-input v-model="form.APPSECRET" placeholder="请输入用户密码" /> + </el-form-item> + <el-form-item label="请求路径" prop="URI"> + <el-input v-model="form.URI" placeholder="请输入请求路径" /> + </el-form-item> + <el-form-item label="请求端口" prop="IP"> + <el-input v-model="form.IP" placeholder="请输入请求端口" /> + </el-form-item> + </el-form> + <div slot="footer" class="dialog-footer"> + <el-button style="float: right" type="primary" @click="submitForm">订阅</el-button> + </div> + </div> +</template> + +<script> +import { eventSubscription } from "@/api/system/NonAutomaticWarning"; +export default { + name: "NonAutomaticWarning", + data() { + return { + // 表单参数 + form: { + APPKEY:'22825659', + APPSECRET:'7Qcq3fr1gaYws6QhyDqt', + URI:'/artemis/api/common/v1/event/getTopicInfo', + IP:'10.0.81.28' + }, + // 表单校验 + rules: { + APPKEY: [ + { required: true, message: '请输入用户名称', trigger: 'blur' } + ], + APPSECRET: [ + { required: true, message: '请输入用户密码', trigger: 'blur' } + ], + URI: [ + { required: true, message: '请输入请求路径', trigger: 'blur' } + ], + IP: [ + { required: true, message: '请输入请求端口', trigger: 'blur' } + ], + } + }; + }, + methods: { + // 表单重置 + reset() { + this.form = { + APPKEY:'22825659', + APPSECRET:'7Qcq3fr1gaYws6QhyDqt', + URI:'/artemis/api/common/v1/event/getTopicInfo', + IP:'10.0.81.28' + // APPKEY:null, + // APPSECRET:null, + // URI:null, + // IP:null + }; + this.resetForm("form"); + }, + /** 提交按钮 */ + submitForm() { + this.$refs["form"].validate(valid => { + if (valid) { + console.log(this.form) + eventSubscription(this.form).then((response)=>{ + console.log(response) + }) + this.reset() + } + }); + } + } +}; +</script> diff --git a/zc-business/src/main/java/com/zc/business/controller/NonAutomaticWarningController.java b/zc-business/src/main/java/com/zc/business/controller/NonAutomaticWarningController.java index 660deb56..1a45e07b 100644 --- a/zc-business/src/main/java/com/zc/business/controller/NonAutomaticWarningController.java +++ b/zc-business/src/main/java/com/zc/business/controller/NonAutomaticWarningController.java @@ -8,15 +8,15 @@ import com.hikvision.artemis.sdk.config.ArtemisConfig; import com.ruoyi.common.core.controller.BaseController; import com.ruoyi.common.core.domain.AjaxResult; import com.zc.business.domain.DcWarning; +import com.zc.business.domain.NonAutomaticWarning; import com.zc.business.service.IDcWarningService; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; import org.eclipse.paho.client.mqttv3.*; import org.eclipse.paho.client.mqttv3.persist.MemoryPersistence; -import org.springframework.web.bind.annotation.PostMapping; -import org.springframework.web.bind.annotation.RequestMapping; -import org.springframework.web.bind.annotation.RestController; +import org.springframework.web.bind.annotation.*; +import javax.annotation.PostConstruct; import javax.annotation.Resource; import java.util.ArrayList; import java.util.Date; @@ -51,13 +51,24 @@ public class NonAutomaticWarningController extends BaseController { * */ @ApiOperation("事件订阅") @PostMapping(value = "/eventSubscription") - public AjaxResult eventSubscription() throws Exception { + public AjaxResult eventSubscription(@RequestBody NonAutomaticWarning parameter) throws Exception { + if (parameter.getAPPKEY() == null || parameter.getAPPSECRET() == null || parameter.getURI() == null || parameter.getIP() == null) { + return AjaxResult.error(); + } + return getAjaxResult(parameter); + } + + private AjaxResult getAjaxResult(NonAutomaticWarning parameter) throws Exception { + String appKey = parameter.getAPPKEY(); + String appSecret = parameter.getAPPSECRET(); + String uri = parameter.getURI(); + String ip = parameter.getIP(); ArtemisConfig config = new ArtemisConfig(); - config.setHost(IP); // 代理API网关nginx服务器ip端口 - config.setAppKey(APPKEY); // 秘钥appkey - config.setAppSecret(APPSECRET);// 秘钥appSecret - final String getCamsApi = URI; + config.setHost(ip); // 代理API网关nginx服务器ip端口 + config.setAppKey(appKey); // 秘钥appkey + config.setAppSecret(appSecret);// 秘钥appSecret + final String getCamsApi = uri; Map<String, Object> paramMap = new HashMap<String, Object>();// post请求Form表单参数 ArrayList<Long> longs = new ArrayList<>(); longs.add(6274879489L); @@ -244,4 +255,14 @@ public class NonAutomaticWarningController extends BaseController { } return AjaxResult.error(); } + + @PostConstruct + public AjaxResult eventSubscriptionPostConstruct() throws Exception { + NonAutomaticWarning stringStringHashMap = new NonAutomaticWarning(); + stringStringHashMap.setAPPKEY(APPKEY); + stringStringHashMap.setAPPSECRET(APPSECRET); + stringStringHashMap.setURI(URI); + stringStringHashMap.setIP(IP); + return getAjaxResult(stringStringHashMap); + } } diff --git a/zc-business/src/main/java/com/zc/business/domain/NonAutomaticWarning.java b/zc-business/src/main/java/com/zc/business/domain/NonAutomaticWarning.java new file mode 100644 index 00000000..5a9bf0b5 --- /dev/null +++ b/zc-business/src/main/java/com/zc/business/domain/NonAutomaticWarning.java @@ -0,0 +1,24 @@ +package com.zc.business.domain; + +import com.fasterxml.jackson.annotation.JsonProperty; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +@Data +@ApiModel(value = "NonAutomaticWarning", description = "非机预警事件订阅实体类") +public class NonAutomaticWarning { + + @ApiModelProperty("用户名称") + @JsonProperty + private String APPKEY; + @ApiModelProperty("用户密码") + @JsonProperty + private String APPSECRET; + @ApiModelProperty("请求路径") + @JsonProperty + private String URI; + @ApiModelProperty("请求IP") + @JsonProperty + private String IP; +}