修复缺失类

main
wangyan 2026-04-07 16:40:54 +08:00
parent 79bcee2aa5
commit a99f9dbcab
82 changed files with 646 additions and 479 deletions

View File

@ -6,10 +6,10 @@
<version>2.2.0-SNAPSHOT</version> <version>2.2.0-SNAPSHOT</version>
</parent> </parent>
<groupId>com.zcloud</groupId> <groupId>com.zcloud</groupId>
<artifactId>zcloud-gbs-iotalarm</artifactId> <artifactId>zcloud_gbs_iotalarm</artifactId>
<packaging>pom</packaging> <packaging>pom</packaging>
<version>1.0-SNAPSHOT</version> <version>1.0-SNAPSHOT</version>
<name>zcloud-gbs-iotalarm</name> <name>zcloud_gbs_iotalarm</name>
<properties> <properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding> <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>

View File

@ -3,7 +3,7 @@
<modelVersion>4.0.0</modelVersion> <modelVersion>4.0.0</modelVersion>
<parent> <parent>
<groupId>com.zcloud</groupId> <groupId>com.zcloud</groupId>
<artifactId>zcloud-gbs-iotalarm</artifactId> <artifactId>zcloud_gbs_iotalarm</artifactId>
<version>1.0-SNAPSHOT</version> <version>1.0-SNAPSHOT</version>
<relativePath>../pom.xml</relativePath> <relativePath>../pom.xml</relativePath>
</parent> </parent>

View File

@ -0,0 +1,23 @@
<!doctype html><html lang="zh"><head data-built-info="@cqsjjb/scripts@2.0.0-alpha-1 Env/production (2026/4/7 11:44:31) App/iotalarm"><meta charset="UTF-8"/><meta name="renderer" content="webkit"/><meta http-equiv="X-UA-Compatible" content="IE=edge,Chrome=1"/><meta name="viewport" content="width=device-width,minimum-scale=1,maximum-scale=1,user-scalable=no,viewport-fit=cover"><title>--</title><script>(function () {
const APP_ENV = {
antd: {
'ant-prefix': 'micro-temp',
fontFamily: 'PingFangSC-Regular',
colorPrimary: '#1677ff',
borderRadius: parseInt('2')
},
appKey: '',
basename: 'iotalarm',
API_HOST: ''
};
APP_ENV.API_HOST = sessionStorage.API_HOST || APP_ENV.API_HOST || window.location.origin;
window.process = {
env: { app: APP_ENV },
NODE_ENV: 'production'
};
window.__JJB_ENVIRONMENT__ = {
API_HOST: APP_ENV.API_HOST,
redirect: '',
FRAMEWORK: APP_ENV.antd
};
})();</script><script defer="defer" src="/iotalarm/static/js/972.06d75c549ceb27b87b59.js"></script><script defer="defer" src="/iotalarm/static/js/90.a4758688244ad1f18338.js"></script><script defer="defer" src="/iotalarm/static/js/main.98e437de45f91c98639e.js"></script><link href="/iotalarm/static/css/main.64b082dca17390b0b36f.css" rel="stylesheet"></head><body><noscript>此网页需要开启JavaScript功能。</noscript><div id="root" style="width: 100%; height: 100%; position: relative;overflow-y: auto"></div><script type="text/javascript">/* @cqsjjb/script 输出当前应用基本信息、构建时间 */console.log("%c@cqsjjb/scripts@2.0.0-alpha-1 Env/production (2026/4/7 11:44:31) App/iotalarm Version/main Java/<branch-name>", "color: #1890ff; border-radius: 2px; padding: 0 4px; border: 1px solid #1890ff; background: #f9fcff")</script></body></html>

View File

@ -0,0 +1 @@
.header-back{background-color:#fff;border-bottom:1px solid #dcdfe6;margin-bottom:0;padding:10px 20px;position:sticky;top:0;z-index:9}.header-back .action,.header-back .action .back{align-items:center;display:flex}.header-back .action .back{cursor:pointer;font-size:14px;gap:10px}.header-back .action .title{font-size:17px}.micro-temp-table-cell-scrollbar{width:15px}.micro-temp-table-cell .micro-temp-btn-link{padding:0}.micro-temp-pro-table-list-toolbar-container{padding-bottom:16px;padding-top:0!important}.cesium-infoBox-visible,.cesium-viewer-fullscreenContainer,.cesium-viewer-toolbar{display:none!important}body,html{height:100%;width:100%}input::-ms-clear,input::-ms-reveal{display:none}*,:after,:before{box-sizing:border-box}html{font-family:sans-serif;line-height:1.15;-webkit-text-size-adjust:100%;-ms-text-size-adjust:100%;-ms-overflow-style:scrollbar;-webkit-tap-highlight-color:rgba(0,0,0,0)}@-ms-viewport{width:device-width}body{margin:0}[tabindex="-1"]:focus{outline:none}hr{box-sizing:content-box;height:0;overflow:visible}h1,h2,h3,h4,h5,h6{font-weight:500;margin-bottom:.5em;margin-top:0}p{margin-bottom:1em;margin-top:0}abbr[data-original-title],abbr[title]{border-bottom:0;cursor:help;-webkit-text-decoration:underline dotted;text-decoration:underline dotted}address{font-style:normal;line-height:inherit;margin-bottom:1em}input[type=number],input[type=password],input[type=text],textarea{-webkit-appearance:none}dl,ol,ul{margin-bottom:1em;margin-top:0}ol ol,ol ul,ul ol,ul ul{margin-bottom:0}dt{font-weight:500}dd{margin-bottom:.5em;margin-left:0}blockquote{margin:0 0 1em}dfn{font-style:italic}b,strong{font-weight:bolder}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sub{bottom:-.25em}sup{top:-.5em}code,kbd,pre,samp{font-family:SFMono-Regular,Consolas,Liberation Mono,Menlo,Courier,monospace;font-size:1em}pre{margin-bottom:1em;margin-top:0;overflow:auto}figure{margin:0 0 1em}img{border-style:none;vertical-align:middle}[role=button],a,area,button,input:not([type=range]),label,select,summary,textarea{touch-action:manipulation}table{border-collapse:collapse}caption{caption-side:bottom;padding-bottom:.3em;padding-top:.75em;text-align:left}button,input,optgroup,select,textarea{color:inherit;font-family:inherit;font-size:inherit;line-height:inherit;margin:0}button,input{overflow:visible}button,select{text-transform:none}[type=reset],[type=submit],button,html [type=button]{-webkit-appearance:button}[type=button]::-moz-focus-inner,[type=reset]::-moz-focus-inner,[type=submit]::-moz-focus-inner,button::-moz-focus-inner{border-style:none;padding:0}input[type=checkbox],input[type=radio]{box-sizing:border-box;padding:0}input[type=date],input[type=datetime-local],input[type=month],input[type=time]{-webkit-appearance:listbox}textarea{overflow:auto;resize:vertical}fieldset{border:0;margin:0;min-width:0;padding:0}legend{color:inherit;display:block;font-size:1.5em;line-height:inherit;margin-bottom:.5em;max-width:100%;padding:0;white-space:normal;width:100%}progress{vertical-align:baseline}[type=number]::-webkit-inner-spin-button,[type=number]::-webkit-outer-spin-button{height:auto}[type=search]{-webkit-appearance:none;outline-offset:-2px}[type=search]::-webkit-search-cancel-button,[type=search]::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{-webkit-appearance:button;font:inherit}output{display:inline-block}summary{display:list-item}template{display:none}[hidden]{display:none!important}mark{background-color:#feffe6;padding:.2em}.micro-temp-modal-header{border-bottom:1px solid #ccc!important;margin:0 -24px 15px!important;padding:0 24px 15px!important}.micro-temp-modal-footer{text-align:center!important}.search-layout{position:relative}.search-layout:after{background-color:#f1f1f2;bottom:-10px;content:"";height:10px;left:-20px;position:absolute;right:-20px}.search-layout+.table-layout{padding-top:26px!important}.card-layout{background-color:#fff;border-radius:6px}

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.5 KiB

View File

@ -0,0 +1 @@
module.exports={javaGit:"<git-url>",javaGitName:"<git-name>",environment:{development:{javaGitBranch:"<branch-name>",API_HOST:"http://192.168.10.45:80"},production:{javaGitBranch:"<branch-name>",API_HOST:""}},appIdentifier:"iotalarm",contextInject:{appKey:"",fileUrl:"https://jpfz.qhdsafety.com/gbsFileTest/"},windowInject:{title:"微应用模板",links:[],element:{root:{id:"root"}},scripts:[]},server:{port:"8080",host:"127.0.0.1",open:!0},framework:{antd:{"ant-prefix":"micro-temp",fontFamily:"PingFangSC-Regular",colorPrimary:"#1677ff",borderRadius:2}},webpackConfig:{htmlWebpackPluginOption:{inject:!0}}};

File diff suppressed because one or more lines are too long

View File

@ -0,0 +1,79 @@
/*! regenerator-runtime -- Copyright (c) 2014-present, Facebook, Inc. -- license (MIT): https://github.com/babel/babel/blob/main/packages/babel-helpers/LICENSE */
/**
* @license React
* react-dom.production.min.js
*
* Copyright (c) Facebook, Inc. and its affiliates.
*
* This source code is licensed under the MIT license found in the
* LICENSE file in the root directory of this source tree.
*/
/**
* @license React
* react-is.production.min.js
*
* Copyright (c) Facebook, Inc. and its affiliates.
*
* This source code is licensed under the MIT license found in the
* LICENSE file in the root directory of this source tree.
*/
/**
* @license React
* react-jsx-runtime.production.min.js
*
* Copyright (c) Facebook, Inc. and its affiliates.
*
* This source code is licensed under the MIT license found in the
* LICENSE file in the root directory of this source tree.
*/
/**
* @license React
* react.production.min.js
*
* Copyright (c) Facebook, Inc. and its affiliates.
*
* This source code is licensed under the MIT license found in the
* LICENSE file in the root directory of this source tree.
*/
/**
* @license React
* scheduler.production.min.js
*
* Copyright (c) Facebook, Inc. and its affiliates.
*
* This source code is licensed under the MIT license found in the
* LICENSE file in the root directory of this source tree.
*/
/**
* @license React
* use-sync-external-store-shim.production.js
*
* Copyright (c) Meta Platforms, Inc. and affiliates.
*
* This source code is licensed under the MIT license found in the
* LICENSE file in the root directory of this source tree.
*/
/** @license React v16.13.1
* react-is.production.min.js
*
* Copyright (c) Facebook, Inc. and its affiliates.
*
* This source code is licensed under the MIT license found in the
* LICENSE file in the root directory of this source tree.
*/
/** @license React v17.0.2
* react-is.production.min.js
*
* Copyright (c) Facebook, Inc. and its affiliates.
*
* This source code is licensed under the MIT license found in the
* LICENSE file in the root directory of this source tree.
*/

File diff suppressed because one or more lines are too long

View File

@ -0,0 +1,97 @@
/*!
Copyright (c) 2018 Jed Watson.
Licensed under the MIT License (MIT), see
http://jedwatson.github.io/classnames
*/
/*!
* is-plain-object <https://github.com/jonschlinkert/is-plain-object>
*
* Copyright (c) 2014-2017, Jon Schlinkert.
* Released under the MIT License.
*/
/*!
* isobject <https://github.com/jonschlinkert/isobject>
*
* Copyright (c) 2014-2017, Jon Schlinkert.
* Released under the MIT License.
*/
/*! regenerator-runtime -- Copyright (c) 2014-present, Facebook, Inc. -- license (MIT): https://github.com/babel/babel/blob/main/packages/babel-helpers/LICENSE */
/** @preserve
* Counter block mode compatible with Dr Brian Gladman fileenc.c
* derived from CryptoJS.mode.CTR
* Jan Hruby jhruby.web@gmail.com
*/
/** @preserve
(c) 2012 by Cédric Mesnil. All rights reserved.
Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met:
- Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer.
- Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution.
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
*/
/**![arrow-down](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iNTAiIGhlaWdodD0iNTAiIGZpbGw9IiNjYWNhY2EiIHZpZXdCb3g9IjY0IDY0IDg5NiA4OTYiIGZvY3VzYWJsZT0iZmFsc2UiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PHBhdGggZD0iTTg2MiA0NjUuM2gtODFjLTQuNiAwLTkgMi0xMi4xIDUuNUw1NTAgNzIzLjFWMTYwYzAtNC40LTMuNi04LTgtOGgtNjBjLTQuNCAwLTggMy42LTggOHY1NjMuMUwyNTUuMSA0NzAuOGMtMy0zLjUtNy40LTUuNS0xMi4xLTUuNWgtODFjLTYuOCAwLTEwLjUgOC4xLTYgMTMuMkw0ODcuOSA4NjFhMzEuOTYgMzEuOTYgMCAwMDQ4LjMgMEw4NjggNDc4LjVjNC41LTUuMi44LTEzLjItNi0xMy4yeiIgLz48L3N2Zz4=) */
/**![arrow-up](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iNTAiIGhlaWdodD0iNTAiIGZpbGw9IiNjYWNhY2EiIHZpZXdCb3g9IjY0IDY0IDg5NiA4OTYiIGZvY3VzYWJsZT0iZmFsc2UiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PHBhdGggZD0iTTg2OCA1NDUuNUw1MzYuMSAxNjNhMzEuOTYgMzEuOTYgMCAwMC00OC4zIDBMMTU2IDU0NS41YTcuOTcgNy45NyAwIDAwNiAxMy4yaDgxYzQuNiAwIDktMiAxMi4xLTUuNUw0NzQgMzAwLjlWODY0YzAgNC40IDMuNiA4IDggOGg2MGM0LjQgMCA4LTMuNiA4LThWMzAwLjlsMjE4LjkgMjUyLjNjMyAzLjUgNy40IDUuNSAxMi4xIDUuNWg4MWM2LjggMCAxMC41LTggNi0xMy4yeiIgLz48L3N2Zz4=) */
/**![calendar](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iNTAiIGhlaWdodD0iNTAiIGZpbGw9IiNjYWNhY2EiIHZpZXdCb3g9IjY0IDY0IDg5NiA4OTYiIGZvY3VzYWJsZT0iZmFsc2UiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PHBhdGggZD0iTTg4MCAxODRINzEydi02NGMwLTQuNC0zLjYtOC04LThoLTU2Yy00LjQgMC04IDMuNi04IDh2NjRIMzg0di02NGMwLTQuNC0zLjYtOC04LThoLTU2Yy00LjQgMC04IDMuNi04IDh2NjRIMTQ0Yy0xNy43IDAtMzIgMTQuMy0zMiAzMnY2NjRjMCAxNy43IDE0LjMgMzIgMzIgMzJoNzM2YzE3LjcgMCAzMi0xNC4zIDMyLTMyVjIxNmMwLTE3LjctMTQuMy0zMi0zMi0zMnptLTQwIDY1NkgxODRWNDYwaDY1NnYzODB6TTE4NCAzOTJWMjU2aDEyOHY0OGMwIDQuNCAzLjYgOCA4IDhoNTZjNC40IDAgOC0zLjYgOC04di00OGgyNTZ2NDhjMCA0LjQgMy42IDggOCA4aDU2YzQuNCAwIDgtMy42IDgtOHYtNDhoMTI4djEzNkgxODR6IiAvPjwvc3ZnPg==) */
/**![caret-down](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iNTAiIGhlaWdodD0iNTAiIGZpbGw9IiNjYWNhY2EiIHZpZXdCb3g9IjAgMCAxMDI0IDEwMjQiIGZvY3VzYWJsZT0iZmFsc2UiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PHBhdGggZD0iTTg0MC40IDMwMEgxODMuNmMtMTkuNyAwLTMwLjcgMjAuOC0xOC41IDM1bDMyOC40IDM4MC44YzkuNCAxMC45IDI3LjUgMTAuOSAzNyAwTDg1OC45IDMzNWMxMi4yLTE0LjIgMS4yLTM1LTE4LjUtMzV6IiAvPjwvc3ZnPg==) */
/**![caret-up](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iNTAiIGhlaWdodD0iNTAiIGZpbGw9IiNjYWNhY2EiIHZpZXdCb3g9IjAgMCAxMDI0IDEwMjQiIGZvY3VzYWJsZT0iZmFsc2UiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PHBhdGggZD0iTTg1OC45IDY4OUw1MzAuNSAzMDguMmMtOS40LTEwLjktMjcuNS0xMC45LTM3IDBMMTY1LjEgNjg5Yy0xMi4yIDE0LjItMS4yIDM1IDE4LjUgMzVoNjU2LjhjMTkuNyAwIDMwLjctMjAuOCAxOC41LTM1eiIgLz48L3N2Zz4=) */
/**![clock-circle](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iNTAiIGhlaWdodD0iNTAiIGZpbGw9IiNjYWNhY2EiIHZpZXdCb3g9IjY0IDY0IDg5NiA4OTYiIGZvY3VzYWJsZT0iZmFsc2UiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PHBhdGggZD0iTTUxMiA2NEMyNjQuNiA2NCA2NCAyNjQuNiA2NCA1MTJzMjAwLjYgNDQ4IDQ0OCA0NDggNDQ4LTIwMC42IDQ0OC00NDhTNzU5LjQgNjQgNTEyIDY0em0wIDgyMGMtMjA1LjQgMC0zNzItMTY2LjYtMzcyLTM3MnMxNjYuNi0zNzIgMzcyLTM3MiAzNzIgMTY2LjYgMzcyIDM3Mi0xNjYuNiAzNzItMzcyIDM3MnoiIC8+PHBhdGggZD0iTTY4Ni43IDYzOC42TDU0NC4xIDUzNS41VjI4OGMwLTQuNC0zLjYtOC04LThINDg4Yy00LjQgMC04IDMuNi04IDh2Mjc1LjRjMCAyLjYgMS4yIDUgMy4zIDYuNWwxNjUuNCAxMjAuNmMzLjYgMi42IDguNiAxLjggMTEuMi0xLjdsMjguNi0zOWMyLjYtMy43IDEuOC04LjctMS44LTExLjJ6IiAvPjwvc3ZnPg==) */
/**![column-height](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iNTAiIGhlaWdodD0iNTAiIGZpbGw9IiNjYWNhY2EiIHZpZXdCb3g9IjY0IDY0IDg5NiA4OTYiIGZvY3VzYWJsZT0iZmFsc2UiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PHBhdGggZD0iTTg0MCA4MzZIMTg0Yy00LjQgMC04IDMuNi04IDh2NjBjMCA0LjQgMy42IDggOCA4aDY1NmM0LjQgMCA4LTMuNiA4LTh2LTYwYzAtNC40LTMuNi04LTgtOHptMC03MjRIMTg0Yy00LjQgMC04IDMuNi04IDh2NjBjMCA0LjQgMy42IDggOCA4aDY1NmM0LjQgMCA4LTMuNiA4LTh2LTYwYzAtNC40LTMuNi04LTgtOHpNNjEwLjggMzc4YzYgMCA5LjQtNyA1LjctMTEuN0w1MTUuNyAyMzguN2E3LjE0IDcuMTQgMCAwMC0xMS4zIDBMNDAzLjYgMzY2LjNhNy4yMyA3LjIzIDAgMDA1LjcgMTEuN0g0NzZ2MjY4aC02Mi44Yy02IDAtOS40IDctNS43IDExLjdsMTAwLjggMTI3LjVjMi45IDMuNyA4LjUgMy43IDExLjMgMGwxMDAuOC0xMjcuNWMzLjctNC43LjQtMTEuNy01LjctMTEuN0g1NDhWMzc4aDYyLjh6IiAvPjwvc3ZnPg==) */
/**![delete](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iNTAiIGhlaWdodD0iNTAiIGZpbGw9IiNjYWNhY2EiIHZpZXdCb3g9IjY0IDY0IDg5NiA4OTYiIGZvY3VzYWJsZT0iZmFsc2UiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PHBhdGggZD0iTTM2MCAxODRoLThjNC40IDAgOC0zLjYgOC04djhoMzA0di04YzAgNC40IDMuNiA4IDggOGgtOHY3Mmg3MnYtODBjMC0zNS4zLTI4LjctNjQtNjQtNjRIMzUyYy0zNS4zIDAtNjQgMjguNy02NCA2NHY4MGg3MnYtNzJ6bTUwNCA3MkgxNjBjLTE3LjcgMC0zMiAxNC4zLTMyIDMydjMyYzAgNC40IDMuNiA4IDggOGg2MC40bDI0LjcgNTIzYzEuNiAzNC4xIDI5LjggNjEgNjMuOSA2MWg0NTRjMzQuMiAwIDYyLjMtMjYuOCA2My45LTYxbDI0LjctNTIzSDg4OGM0LjQgMCA4LTMuNiA4LTh2LTMyYzAtMTcuNy0xNC4zLTMyLTMyLTMyek03MzEuMyA4NDBIMjkyLjdsLTI0LjItNTEyaDQ4N2wtMjQuMiA1MTJ6IiAvPjwvc3ZnPg==) */
/**![double-left](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iNTAiIGhlaWdodD0iNTAiIGZpbGw9IiNjYWNhY2EiIHZpZXdCb3g9IjY0IDY0IDg5NiA4OTYiIGZvY3VzYWJsZT0iZmFsc2UiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PHBhdGggZD0iTTI3Mi45IDUxMmwyNjUuNC0zMzkuMWM0LjEtNS4yLjQtMTIuOS02LjMtMTIuOWgtNzcuM2MtNC45IDAtOS42IDIuMy0xMi42IDYuMUwxODYuOCA0OTIuM2EzMS45OSAzMS45OSAwIDAwMCAzOS41bDI1NS4zIDMyNi4xYzMgMy45IDcuNyA2LjEgMTIuNiA2LjFINTMyYzYuNyAwIDEwLjQtNy43IDYuMy0xMi45TDI3Mi45IDUxMnptMzA0IDBsMjY1LjQtMzM5LjFjNC4xLTUuMi40LTEyLjktNi4zLTEyLjloLTc3LjNjLTQuOSAwLTkuNiAyLjMtMTIuNiA2LjFMNDkwLjggNDkyLjNhMzEuOTkgMzEuOTkgMCAwMDAgMzkuNWwyNTUuMyAzMjYuMWMzIDMuOSA3LjcgNi4xIDEyLjYgNi4xSDgzNmM2LjcgMCAxMC40LTcuNyA2LjMtMTIuOUw1NzYuOSA1MTJ6IiAvPjwvc3ZnPg==) */
/**![double-right](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iNTAiIGhlaWdodD0iNTAiIGZpbGw9IiNjYWNhY2EiIHZpZXdCb3g9IjY0IDY0IDg5NiA4OTYiIGZvY3VzYWJsZT0iZmFsc2UiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PHBhdGggZD0iTTUzMy4yIDQ5Mi4zTDI3Ny45IDE2Ni4xYy0zLTMuOS03LjctNi4xLTEyLjYtNi4xSDE4OGMtNi43IDAtMTAuNCA3LjctNi4zIDEyLjlMNDQ3LjEgNTEyIDE4MS43IDg1MS4xQTcuOTggNy45OCAwIDAwMTg4IDg2NGg3Ny4zYzQuOSAwIDkuNi0yLjMgMTIuNi02LjFsMjU1LjMtMzI2LjFjOS4xLTExLjcgOS4xLTI3LjkgMC0zOS41em0zMDQgMEw1ODEuOSAxNjYuMWMtMy0zLjktNy43LTYuMS0xMi42LTYuMUg0OTJjLTYuNyAwLTEwLjQgNy43LTYuMyAxMi45TDc1MS4xIDUxMiA0ODUuNyA4NTEuMUE3Ljk4IDcuOTggMCAwMDQ5MiA4NjRoNzcuM2M0LjkgMCA5LjYtMi4zIDEyLjYtNi4xbDI1NS4zLTMyNi4xYzkuMS0xMS43IDkuMS0yNy45IDAtMzkuNXoiIC8+PC9zdmc+) */
/**![enter](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iNTAiIGhlaWdodD0iNTAiIGZpbGw9IiNjYWNhY2EiIHZpZXdCb3g9IjY0IDY0IDg5NiA4OTYiIGZvY3VzYWJsZT0iZmFsc2UiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PHBhdGggZD0iTTg2NCAxNzBoLTYwYy00LjQgMC04IDMuNi04IDh2NTE4SDMxMHYtNzNjMC02LjctNy44LTEwLjUtMTMtNi4zbC0xNDEuOSAxMTJhOCA4IDAgMDAwIDEyLjZsMTQxLjkgMTEyYzUuMyA0LjIgMTMgLjQgMTMtNi4zdi03NWg0OThjMzUuMyAwIDY0LTI4LjcgNjQtNjRWMTc4YzAtNC40LTMuNi04LTgtOHoiIC8+PC9zdmc+) */
/**![filter](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iNTAiIGhlaWdodD0iNTAiIGZpbGw9IiNjYWNhY2EiIHZpZXdCb3g9IjY0IDY0IDg5NiA4OTYiIGZvY3VzYWJsZT0iZmFsc2UiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PHBhdGggZD0iTTM0OSA4MzhjMCAxNy43IDE0LjIgMzIgMzEuOCAzMmgyNjIuNGMxNy42IDAgMzEuOC0xNC4zIDMxLjgtMzJWNjQySDM0OXYxOTZ6bTUzMS4xLTY4NEgxNDMuOWMtMjQuNSAwLTM5LjggMjYuNy0yNy41IDQ4bDIyMS4zIDM3NmgzNDguOGwyMjEuMy0zNzZjMTIuMS0yMS4zLTMuMi00OC0yNy43LTQ4eiIgLz48L3N2Zz4=) */
/**![filter](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iNTAiIGhlaWdodD0iNTAiIGZpbGw9IiNjYWNhY2EiIHZpZXdCb3g9IjY0IDY0IDg5NiA4OTYiIGZvY3VzYWJsZT0iZmFsc2UiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PHBhdGggZD0iTTg4MC4xIDE1NEgxNDMuOWMtMjQuNSAwLTM5LjggMjYuNy0yNy41IDQ4TDM0OSA1OTcuNFY4MzhjMCAxNy43IDE0LjIgMzIgMzEuOCAzMmgyNjIuNGMxNy42IDAgMzEuOC0xNC4zIDMxLjgtMzJWNTk3LjRMOTA3LjcgMjAyYzEyLjItMjEuMy0zLjEtNDgtMjcuNi00OHpNNjAzLjQgNzk4SDQyMC42VjY0MmgxODIuOXYxNTZ6bTkuNi0yMzYuNmwtOS41IDE2LjZoLTE4M2wtOS41LTE2LjZMMjEyLjcgMjI2aDU5OC42TDYxMyA1NjEuNHoiIC8+PC9zdmc+) */
/**![folder-open](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iNTAiIGhlaWdodD0iNTAiIGZpbGw9IiNjYWNhY2EiIHZpZXdCb3g9IjY0IDY0IDg5NiA4OTYiIGZvY3VzYWJsZT0iZmFsc2UiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PHBhdGggZD0iTTkyOCA0NDRIODIwVjMzMC40YzAtMTcuNy0xNC4zLTMyLTMyLTMySDQ3M0wzNTUuNyAxODYuMmE4LjE1IDguMTUgMCAwMC01LjUtMi4ySDk2Yy0xNy43IDAtMzIgMTQuMy0zMiAzMnY1OTJjMCAxNy43IDE0LjMgMzIgMzIgMzJoNjk4YzEzIDAgMjQuOC03LjkgMjkuNy0yMGwxMzQtMzMyYzEuNS0zLjggMi4zLTcuOSAyLjMtMTIgMC0xNy43LTE0LjMtMzItMzItMzJ6TTEzNiAyNTZoMTg4LjVsMTE5LjYgMTE0LjRINzQ4VjQ0NEgyMzhjLTEzIDAtMjQuOCA3LjktMjkuNyAyMEwxMzYgNjQzLjJWMjU2em02MzUuMyA1MTJIMTU5bDEwMy4zLTI1Nmg2MTIuNEw3NzEuMyA3Njh6IiAvPjwvc3ZnPg==) */
/**![folder](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iNTAiIGhlaWdodD0iNTAiIGZpbGw9IiNjYWNhY2EiIHZpZXdCb3g9IjY0IDY0IDg5NiA4OTYiIGZvY3VzYWJsZT0iZmFsc2UiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PHBhdGggZD0iTTg4MCAyOTguNEg1MjFMNDAzLjcgMTg2LjJhOC4xNSA4LjE1IDAgMDAtNS41LTIuMkgxNDRjLTE3LjcgMC0zMiAxNC4zLTMyIDMydjU5MmMwIDE3LjcgMTQuMyAzMiAzMiAzMmg3MzZjMTcuNyAwIDMyLTE0LjMgMzItMzJWMzMwLjRjMC0xNy43LTE0LjMtMzItMzItMzJ6TTg0MCA3NjhIMTg0VjI1NmgxODguNWwxMTkuNiAxMTQuNEg4NDBWNzY4eiIgLz48L3N2Zz4=) */
/**![fullscreen-exit](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iNTAiIGhlaWdodD0iNTAiIGZpbGw9IiNjYWNhY2EiIHZpZXdCb3g9IjY0IDY0IDg5NiA4OTYiIGZvY3VzYWJsZT0iZmFsc2UiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PHBhdGggZD0iTTM5MSAyNDAuOWMtLjgtNi42LTguOS05LjQtMTMuNi00LjdsLTQzLjcgNDMuN0wyMDAgMTQ2LjNhOC4wMyA4LjAzIDAgMDAtMTEuMyAwbC00Mi40IDQyLjNhOC4wMyA4LjAzIDAgMDAwIDExLjNMMjgwIDMzMy42bC00My45IDQzLjlhOC4wMSA4LjAxIDAgMDA0LjcgMTMuNkw0MDEgNDEwYzUuMS42IDkuNS0zLjcgOC45LTguOUwzOTEgMjQwLjl6bTEwLjEgMzczLjJMMjQwLjggNjMzYy02LjYuOC05LjQgOC45LTQuNyAxMy42bDQzLjkgNDMuOUwxNDYuMyA4MjRhOC4wMyA4LjAzIDAgMDAwIDExLjNsNDIuNCA0Mi4zYzMuMSAzLjEgOC4yIDMuMSAxMS4zIDBMMzMzLjcgNzQ0bDQzLjcgNDMuN0E4LjAxIDguMDEgMCAwMDM5MSA3ODNsMTguOS0xNjAuMWMuNi01LjEtMy43LTkuNC04LjgtOC44em0yMjEuOC0yMDQuMkw3ODMuMiAzOTFjNi42LS44IDkuNC04LjkgNC43LTEzLjZMNzQ0IDMzMy42IDg3Ny43IDIwMGMzLjEtMy4xIDMuMS04LjIgMC0xMS4zbC00Mi40LTQyLjNhOC4wMyA4LjAzIDAgMDAtMTEuMyAwTDY5MC4zIDI3OS45bC00My43LTQzLjdhOC4wMSA4LjAxIDAgMDAtMTMuNiA0LjdMNjE0LjEgNDAxYy0uNiA1LjIgMy43IDkuNSA4LjggOC45ek03NDQgNjkwLjRsNDMuOS00My45YTguMDEgOC4wMSAwIDAwLTQuNy0xMy42TDYyMyA2MTRjLTUuMS0uNi05LjUgMy43LTguOSA4LjlMNjMzIDc4My4xYy44IDYuNiA4LjkgOS40IDEzLjYgNC43bDQzLjctNDMuN0w4MjQgODc3LjdjMy4xIDMuMSA4LjIgMy4xIDExLjMgMGw0Mi40LTQyLjNjMy4xLTMuMSAzLjEtOC4yIDAtMTEuM0w3NDQgNjkwLjR6IiAvPjwvc3ZnPg==) */
/**![fullscreen](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iNTAiIGhlaWdodD0iNTAiIGZpbGw9IiNjYWNhY2EiIHZpZXdCb3g9IjY0IDY0IDg5NiA4OTYiIGZvY3VzYWJsZT0iZmFsc2UiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PHBhdGggZD0iTTI5MCAyMzYuNGw0My45LTQzLjlhOC4wMSA4LjAxIDAgMDAtNC43LTEzLjZMMTY5IDE2MGMtNS4xLS42LTkuNSAzLjctOC45IDguOUwxNzkgMzI5LjFjLjggNi42IDguOSA5LjQgMTMuNiA0LjdsNDMuNy00My43TDM3MCA0MjMuN2MzLjEgMy4xIDguMiAzLjEgMTEuMyAwbDQyLjQtNDIuM2MzLjEtMy4xIDMuMS04LjIgMC0xMS4zTDI5MCAyMzYuNHptMzUyLjcgMTg3LjNjMy4xIDMuMSA4LjIgMy4xIDExLjMgMGwxMzMuNy0xMzMuNiA0My43IDQzLjdhOC4wMSA4LjAxIDAgMDAxMy42LTQuN0w4NjMuOSAxNjljLjYtNS4xLTMuNy05LjUtOC45LTguOUw2OTQuOCAxNzljLTYuNi44LTkuNCA4LjktNC43IDEzLjZsNDMuOSA0My45TDYwMC4zIDM3MGE4LjAzIDguMDMgMCAwMDAgMTEuM2w0Mi40IDQyLjR6TTg0NSA2OTQuOWMtLjgtNi42LTguOS05LjQtMTMuNi00LjdsLTQzLjcgNDMuN0w2NTQgNjAwLjNhOC4wMyA4LjAzIDAgMDAtMTEuMyAwbC00Mi40IDQyLjNhOC4wMyA4LjAzIDAgMDAwIDExLjNMNzM0IDc4Ny42bC00My45IDQzLjlhOC4wMSA4LjAxIDAgMDA0LjcgMTMuNkw4NTUgODY0YzUuMS42IDkuNS0zLjcgOC45LTguOUw4NDUgNjk0Ljl6bS00NjMuNy05NC42YTguMDMgOC4wMyAwIDAwLTExLjMgMEwyMzYuMyA3MzMuOWwtNDMuNy00My43YTguMDEgOC4wMSAwIDAwLTEzLjYgNC43TDE2MC4xIDg1NWMtLjYgNS4xIDMuNyA5LjUgOC45IDguOUwzMjkuMiA4NDVjNi42LS44IDkuNC04LjkgNC43LTEzLjZMMjkwIDc4Ny42IDQyMy43IDY1NGMzLjEtMy4xIDMuMS04LjIgMC0xMS4zbC00Mi40LTQyLjR6IiAvPjwvc3ZnPg==) */
/**![holder](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iNTAiIGhlaWdodD0iNTAiIGZpbGw9IiNjYWNhY2EiIHZpZXdCb3g9IjY0IDY0IDg5NiA4OTYiIGZvY3VzYWJsZT0iZmFsc2UiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PHBhdGggZD0iTTMwMCAyNzYuNWE1NiA1NiAwIDEwNTYtOTcgNTYgNTYgMCAwMC01NiA5N3ptMCAyODRhNTYgNTYgMCAxMDU2LTk3IDU2IDU2IDAgMDAtNTYgOTd6TTY0MCAyMjhhNTYgNTYgMCAxMDExMiAwIDU2IDU2IDAgMDAtMTEyIDB6bTAgMjg0YTU2IDU2IDAgMTAxMTIgMCA1NiA1NiAwIDAwLTExMiAwek0zMDAgODQ0LjVhNTYgNTYgMCAxMDU2LTk3IDU2IDU2IDAgMDAtNTYgOTd6TTY0MCA3OTZhNTYgNTYgMCAxMDExMiAwIDU2IDU2IDAgMDAtMTEyIDB6IiAvPjwvc3ZnPg==) */
/**![left](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iNTAiIGhlaWdodD0iNTAiIGZpbGw9IiNjYWNhY2EiIHZpZXdCb3g9IjY0IDY0IDg5NiA4OTYiIGZvY3VzYWJsZT0iZmFsc2UiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PHBhdGggZD0iTTcyNCAyMTguM1YxNDFjMC02LjctNy43LTEwLjQtMTIuOS02LjNMMjYwLjMgNDg2LjhhMzEuODYgMzEuODYgMCAwMDAgNTAuM2w0NTAuOCAzNTIuMWM1LjMgNC4xIDEyLjkuNCAxMi45LTYuM3YtNzcuM2MwLTQuOS0yLjMtOS42LTYuMS0xMi42bC0zNjAtMjgxIDM2MC0yODEuMWMzLjgtMyA2LjEtNy43IDYuMS0xMi42eiIgLz48L3N2Zz4=) */
/**![minus-square](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iNTAiIGhlaWdodD0iNTAiIGZpbGw9IiNjYWNhY2EiIHZpZXdCb3g9IjY0IDY0IDg5NiA4OTYiIGZvY3VzYWJsZT0iZmFsc2UiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PHBhdGggZD0iTTMyOCA1NDRoMzY4YzQuNCAwIDgtMy42IDgtOHYtNDhjMC00LjQtMy42LTgtOC04SDMyOGMtNC40IDAtOCAzLjYtOCA4djQ4YzAgNC40IDMuNiA4IDggOHoiIC8+PHBhdGggZD0iTTg4MCAxMTJIMTQ0Yy0xNy43IDAtMzIgMTQuMy0zMiAzMnY3MzZjMCAxNy43IDE0LjMgMzIgMzIgMzJoNzM2YzE3LjcgMCAzMi0xNC4zIDMyLTMyVjE0NGMwLTE3LjctMTQuMy0zMi0zMi0zMnptLTQwIDcyOEgxODRWMTg0aDY1NnY2NTZ6IiAvPjwvc3ZnPg==) */
/**![plus-square](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iNTAiIGhlaWdodD0iNTAiIGZpbGw9IiNjYWNhY2EiIHZpZXdCb3g9IjY0IDY0IDg5NiA4OTYiIGZvY3VzYWJsZT0iZmFsc2UiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PHBhdGggZD0iTTMyOCA1NDRoMTUydjE1MmMwIDQuNCAzLjYgOCA4IDhoNDhjNC40IDAgOC0zLjYgOC04VjU0NGgxNTJjNC40IDAgOC0zLjYgOC04di00OGMwLTQuNC0zLjYtOC04LThINTQ0VjMyOGMwLTQuNC0zLjYtOC04LThoLTQ4Yy00LjQgMC04IDMuNi04IDh2MTUySDMyOGMtNC40IDAtOCAzLjYtOCA4djQ4YzAgNC40IDMuNiA4IDggOHoiIC8+PHBhdGggZD0iTTg4MCAxMTJIMTQ0Yy0xNy43IDAtMzIgMTQuMy0zMiAzMnY3MzZjMCAxNy43IDE0LjMgMzIgMzIgMzJoNzM2YzE3LjcgMCAzMi0xNC4zIDMyLTMyVjE0NGMwLTE3LjctMTQuMy0zMi0zMi0zMnptLTQwIDcyOEgxODRWMTg0aDY1NnY2NTZ6IiAvPjwvc3ZnPg==) */
/**![rotate-left](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iNTAiIGhlaWdodD0iNTAiIGZpbGw9IiNjYWNhY2EiIHZpZXdCb3g9IjY0IDY0IDg5NiA4OTYiIGZvY3VzYWJsZT0iZmFsc2UiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PGRlZnM+PHN0eWxlIC8+PC9kZWZzPjxwYXRoIGQ9Ik02NzIgNDE4SDE0NGMtMTcuNyAwLTMyIDE0LjMtMzIgMzJ2NDE0YzAgMTcuNyAxNC4zIDMyIDMyIDMyaDUyOGMxNy43IDAgMzItMTQuMyAzMi0zMlY0NTBjMC0xNy43LTE0LjMtMzItMzItMzJ6bS00NCA0MDJIMTg4VjQ5NGg0NDB2MzI2eiIgLz48cGF0aCBkPSJNODE5LjMgMzI4LjVjLTc4LjgtMTAwLjctMTk2LTE1My42LTMxNC42LTE1NC4ybC0uMi02NGMwLTYuNS03LjYtMTAuMS0xMi42LTYuMWwtMTI4IDEwMWMtNCAzLjEtMy45IDkuMSAwIDEyLjNMNDkyIDMxOC42YzUuMSA0IDEyLjcuNCAxMi42LTYuMXYtNjMuOWMxMi45LjEgMjUuOS45IDM4LjggMi41IDQyLjEgNS4yIDgyLjEgMTguMiAxMTkgMzguNyAzOC4xIDIxLjIgNzEuMiA0OS43IDk4LjQgODQuMyAyNy4xIDM0LjcgNDYuNyA3My43IDU4LjEgMTE1LjhhMzI1Ljk1IDMyNS45NSAwIDAxNi41IDE0MC45aDc0LjljMTQuOC0xMDMuNi0xMS4zLTIxMy04MS0zMDIuM3oiIC8+PC9zdmc+) */
/**![rotate-right](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iNTAiIGhlaWdodD0iNTAiIGZpbGw9IiNjYWNhY2EiIHZpZXdCb3g9IjY0IDY0IDg5NiA4OTYiIGZvY3VzYWJsZT0iZmFsc2UiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PGRlZnM+PHN0eWxlIC8+PC9kZWZzPjxwYXRoIGQ9Ik00ODAuNSAyNTEuMmMxMy0xLjYgMjUuOS0yLjQgMzguOC0yLjV2NjMuOWMwIDYuNSA3LjUgMTAuMSAxMi42IDYuMUw2NjAgMjE3LjZjNC0zLjIgNC05LjIgMC0xMi4zbC0xMjgtMTAxYy01LjEtNC0xMi42LS40LTEyLjYgNi4xbC0uMiA2NGMtMTE4LjYuNS0yMzUuOCA1My40LTMxNC42IDE1NC4yQTM5OS43NSAzOTkuNzUgMCAwMDEyMy41IDYzMWg3NC45Yy0uOS01LjMtMS43LTEwLjctMi40LTE2LjEtNS4xLTQyLjEtMi4xLTg0LjEgOC45LTEyNC44IDExLjQtNDIuMiAzMS04MS4xIDU4LjEtMTE1LjggMjcuMi0zNC43IDYwLjMtNjMuMiA5OC40LTg0LjMgMzctMjAuNiA3Ni45LTMzLjYgMTE5LjEtMzguOHoiIC8+PHBhdGggZD0iTTg4MCA0MThIMzUyYy0xNy43IDAtMzIgMTQuMy0zMiAzMnY0MTRjMCAxNy43IDE0LjMgMzIgMzIgMzJoNTI4YzE3LjcgMCAzMi0xNC4zIDMyLTMyVjQ1MGMwLTE3LjctMTQuMy0zMi0zMi0zMnptLTQ0IDQwMkgzOTZWNDk0aDQ0MHYzMjZ6IiAvPjwvc3ZnPg==) */
/**![setting](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iNTAiIGhlaWdodD0iNTAiIGZpbGw9IiNjYWNhY2EiIHZpZXdCb3g9IjY0IDY0IDg5NiA4OTYiIGZvY3VzYWJsZT0iZmFsc2UiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PHBhdGggZD0iTTkyNC44IDYyNS43bC02NS41LTU2YzMuMS0xOSA0LjctMzguNCA0LjctNTcuOHMtMS42LTM4LjgtNC43LTU3LjhsNjUuNS01NmEzMi4wMyAzMi4wMyAwIDAwOS4zLTM1LjJsLS45LTIuNmE0NDMuNzQgNDQzLjc0IDAgMDAtNzkuNy0xMzcuOWwtMS44LTIuMWEzMi4xMiAzMi4xMiAwIDAwLTM1LjEtOS41bC04MS4zIDI4LjljLTMwLTI0LjYtNjMuNS00NC05OS43LTU3LjZsLTE1LjctODVhMzIuMDUgMzIuMDUgMCAwMC0yNS44LTI1LjdsLTIuNy0uNWMtNTIuMS05LjQtMTA2LjktOS40LTE1OSAwbC0yLjcuNWEzMi4wNSAzMi4wNSAwIDAwLTI1LjggMjUuN2wtMTUuOCA4NS40YTM1MS44NiAzNTEuODYgMCAwMC05OSA1Ny40bC04MS45LTI5LjFhMzIgMzIgMCAwMC0zNS4xIDkuNWwtMS44IDIuMWE0NDYuMDIgNDQ2LjAyIDAgMDAtNzkuNyAxMzcuOWwtLjkgMi42Yy00LjUgMTIuNS0uOCAyNi41IDkuMyAzNS4ybDY2LjMgNTYuNmMtMy4xIDE4LjgtNC42IDM4LTQuNiA1Ny4xIDAgMTkuMiAxLjUgMzguNCA0LjYgNTcuMUw5OSA2MjUuNWEzMi4wMyAzMi4wMyAwIDAwLTkuMyAzNS4ybC45IDIuNmMxOC4xIDUwLjQgNDQuOSA5Ni45IDc5LjcgMTM3LjlsMS44IDIuMWEzMi4xMiAzMi4xMiAwIDAwMzUuMSA5LjVsODEuOS0yOS4xYzI5LjggMjQuNSA2My4xIDQzLjkgOTkgNTcuNGwxNS44IDg1LjRhMzIuMDUgMzIuMDUgMCAwMDI1LjggMjUuN2wyLjcuNWE0NDkuNCA0NDkuNCAwIDAwMTU5IDBsMi43LS41YTMyLjA1IDMyLjA1IDAgMDAyNS44LTI1LjdsMTUuNy04NWEzNTAgMzUwIDAgMDA5OS43LTU3LjZsODEuMyAyOC45YTMyIDMyIDAgMDAzNS4xLTkuNWwxLjgtMi4xYzM0LjgtNDEuMSA2MS42LTg3LjUgNzkuNy0xMzcuOWwuOS0yLjZjNC41LTEyLjMuOC0yNi4zLTkuMy0zNXpNNzg4LjMgNDY1LjljMi41IDE1LjEgMy44IDMwLjYgMy44IDQ2LjFzLTEuMyAzMS0zLjggNDYuMWwtNi42IDQwLjEgNzQuNyA2My45YTM3MC4wMyAzNzAuMDMgMCAwMS00Mi42IDczLjZMNzIxIDcwMi44bC0zMS40IDI1LjhjLTIzLjkgMTkuNi01MC41IDM1LTc5LjMgNDUuOGwtMzguMSAxNC4zLTE3LjkgOTdhMzc3LjUgMzc3LjUgMCAwMS04NSAwbC0xNy45LTk3LjItMzcuOC0xNC41Yy0yOC41LTEwLjgtNTUtMjYuMi03OC43LTQ1LjdsLTMxLjQtMjUuOS05My40IDMzLjJjLTE3LTIyLjktMzEuMi00Ny42LTQyLjYtNzMuNmw3NS41LTY0LjUtNi41LTQwYy0yLjQtMTQuOS0zLjctMzAuMy0zLjctNDUuNSAwLTE1LjMgMS4yLTMwLjYgMy43LTQ1LjVsNi41LTQwLTc1LjUtNjQuNWMxMS4zLTI2LjEgMjUuNi01MC43IDQyLjYtNzMuNmw5My40IDMzLjIgMzEuNC0yNS45YzIzLjctMTkuNSA1MC4yLTM0LjkgNzguNy00NS43bDM3LjktMTQuMyAxNy45LTk3LjJjMjguMS0zLjIgNTYuOC0zLjIgODUgMGwxNy45IDk3IDM4LjEgMTQuM2MyOC43IDEwLjggNTUuNCAyNi4yIDc5LjMgNDUuOGwzMS40IDI1LjggOTIuOC0zMi45YzE3IDIyLjkgMzEuMiA0Ny42IDQyLjYgNzMuNkw3ODEuOCA0MjZsNi41IDM5Ljl6TTUxMiAzMjZjLTk3LjIgMC0xNzYgNzguOC0xNzYgMTc2czc4LjggMTc2IDE3NiAxNzYgMTc2LTc4LjggMTc2LTE3Ni03OC44LTE3Ni0xNzYtMTc2em03OS4yIDI1NS4yQTExMS42IDExMS42IDAgMDE1MTIgNjE0Yy0yOS45IDAtNTgtMTEuNy03OS4yLTMyLjhBMTExLjYgMTExLjYgMCAwMTQwMCA1MDJjMC0yOS45IDExLjctNTggMzIuOC03OS4yQzQ1NCA0MDEuNiA0ODIuMSAzOTAgNTEyIDM5MGMyOS45IDAgNTggMTEuNiA3OS4yIDMyLjhBMTExLjYgMTExLjYgMCAwMTYyNCA1MDJjMCAyOS45LTExLjcgNTgtMzIuOCA3OS4yeiIgLz48L3N2Zz4=) */
/**![star](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iNTAiIGhlaWdodD0iNTAiIGZpbGw9IiNjYWNhY2EiIHZpZXdCb3g9IjY0IDY0IDg5NiA4OTYiIGZvY3VzYWJsZT0iZmFsc2UiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PHBhdGggZD0iTTkwOC4xIDM1My4xbC0yNTMuOS0zNi45TDU0MC43IDg2LjFjLTMuMS02LjMtOC4yLTExLjQtMTQuNS0xNC41LTE1LjgtNy44LTM1LTEuMy00Mi45IDE0LjVMMzY5LjggMzE2LjJsLTI1My45IDM2LjljLTcgMS0xMy40IDQuMy0xOC4zIDkuM2EzMi4wNSAzMi4wNSAwIDAwLjYgNDUuM2wxODMuNyAxNzkuMS00My40IDI1Mi45YTMxLjk1IDMxLjk1IDAgMDA0Ni40IDMzLjdMNTEyIDc1NGwyMjcuMSAxMTkuNGM2LjIgMy4zIDEzLjQgNC40IDIwLjMgMy4yIDE3LjQtMyAyOS4xLTE5LjUgMjYuMS0zNi45bC00My40LTI1Mi45IDE4My43LTE3OS4xYzUtNC45IDguMy0xMS4zIDkuMy0xOC4zIDIuNy0xNy41LTkuNS0zMy43LTI3LTM2LjN6IiAvPjwvc3ZnPg==) */
/**![swap](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iNTAiIGhlaWdodD0iNTAiIGZpbGw9IiNjYWNhY2EiIHZpZXdCb3g9IjY0IDY0IDg5NiA4OTYiIGZvY3VzYWJsZT0iZmFsc2UiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PHBhdGggZD0iTTg0Ny45IDU5MkgxNTJjLTQuNCAwLTggMy42LTggOHY2MGMwIDQuNCAzLjYgOCA4IDhoNjA1LjJMNjEyLjkgODUxYy00LjEgNS4yLS40IDEzIDYuMyAxM2g3Mi41YzQuOSAwIDkuNS0yLjIgMTIuNi02LjFsMTY4LjgtMjE0LjFjMTYuNS0yMSAxLjYtNTEuOC0yNS4yLTUxLjh6TTg3MiAzNTZIMjY2LjhsMTQ0LjMtMTgzYzQuMS01LjIuNC0xMy02LjMtMTNoLTcyLjVjLTQuOSAwLTkuNSAyLjItMTIuNiA2LjFMMTUwLjkgMzgwLjJjLTE2LjUgMjEtMS42IDUxLjggMjUuMSA1MS44aDY5NmM0LjQgMCA4LTMuNiA4LTh2LTYwYzAtNC40LTMuNi04LTgtOHoiIC8+PC9zdmc+) */
/**![vertical-align-bottom](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iNTAiIGhlaWdodD0iNTAiIGZpbGw9IiNjYWNhY2EiIHZpZXdCb3g9IjY0IDY0IDg5NiA4OTYiIGZvY3VzYWJsZT0iZmFsc2UiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PHBhdGggZD0iTTg1OS45IDc4MEgxNjQuMWMtNC41IDAtOC4xIDMuNi04LjEgOHY2MGMwIDQuNCAzLjYgOCA4LjEgOGg2OTUuOGM0LjUgMCA4LjEtMy42IDguMS04di02MGMwLTQuNC0zLjYtOC04LjEtOHpNNTA1LjcgNjY5YTggOCAwIDAwMTIuNiAwbDExMi0xNDEuN2M0LjEtNS4yLjQtMTIuOS02LjMtMTIuOWgtNzQuMVYxNzZjMC00LjQtMy42LTgtOC04aC02MGMtNC40IDAtOCAzLjYtOCA4djMzOC4zSDQwMGMtNi43IDAtMTAuNCA3LjctNi4zIDEyLjlsMTEyIDE0MS44eiIgLz48L3N2Zz4=) */
/**![vertical-align-middle](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iNTAiIGhlaWdodD0iNTAiIGZpbGw9IiNjYWNhY2EiIHZpZXdCb3g9IjY0IDY0IDg5NiA4OTYiIGZvY3VzYWJsZT0iZmFsc2UiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PHBhdGggZD0iTTg1OS45IDQ3NEgxNjQuMWMtNC41IDAtOC4xIDMuNi04LjEgOHY2MGMwIDQuNCAzLjYgOCA4LjEgOGg2OTUuOGM0LjUgMCA4LjEtMy42IDguMS04di02MGMwLTQuNC0zLjYtOC04LjEtOHptLTM1My42LTc0LjdjMi45IDMuNyA4LjUgMy43IDExLjMgMGwxMDAuOC0xMjcuNWMzLjctNC43LjQtMTEuNy01LjctMTEuN0g1NTBWMTA0YzAtNC40LTMuNi04LTgtOGgtNjBjLTQuNCAwLTggMy42LTggOHYxNTZoLTYyLjhjLTYgMC05LjQgNy01LjcgMTEuN2wxMDAuOCAxMjcuNnptMTEuNCAyMjUuNGE3LjE0IDcuMTQgMCAwMC0xMS4zIDBMNDA1LjYgNzUyLjNhNy4yMyA3LjIzIDAgMDA1LjcgMTEuN0g0NzR2MTU2YzAgNC40IDMuNiA4IDggOGg2MGM0LjQgMCA4LTMuNiA4LThWNzY0aDYyLjhjNiAwIDkuNC03IDUuNy0xMS43TDUxNy43IDYyNC43eiIgLz48L3N2Zz4=) */
/**![vertical-align-top](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iNTAiIGhlaWdodD0iNTAiIGZpbGw9IiNjYWNhY2EiIHZpZXdCb3g9IjY0IDY0IDg5NiA4OTYiIGZvY3VzYWJsZT0iZmFsc2UiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PHBhdGggZD0iTTg1OS45IDE2OEgxNjQuMWMtNC41IDAtOC4xIDMuNi04LjEgOHY2MGMwIDQuNCAzLjYgOCA4LjEgOGg2OTUuOGM0LjUgMCA4LjEtMy42IDguMS04di02MGMwLTQuNC0zLjYtOC04LjEtOHpNNTE4LjMgMzU1YTggOCAwIDAwLTEyLjYgMGwtMTEyIDE0MS43YTcuOTggNy45OCAwIDAwNi4zIDEyLjloNzMuOVY4NDhjMCA0LjQgMy42IDggOCA4aDYwYzQuNCAwIDgtMy42IDgtOFY1MDkuN0g2MjRjNi43IDAgMTAuNC03LjcgNi4zLTEyLjlMNTE4LjMgMzU1eiIgLz48L3N2Zz4=) */
/**![zoom-in](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iNTAiIGhlaWdodD0iNTAiIGZpbGw9IiNjYWNhY2EiIHZpZXdCb3g9IjY0IDY0IDg5NiA4OTYiIGZvY3VzYWJsZT0iZmFsc2UiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PHBhdGggZD0iTTYzNyA0NDNINTE5VjMwOWMwLTQuNC0zLjYtOC04LThoLTYwYy00LjQgMC04IDMuNi04IDh2MTM0SDMyNWMtNC40IDAtOCAzLjYtOCA4djYwYzAgNC40IDMuNiA4IDggOGgxMTh2MTM0YzAgNC40IDMuNiA4IDggOGg2MGM0LjQgMCA4LTMuNiA4LThWNTE5aDExOGM0LjQgMCA4LTMuNiA4LTh2LTYwYzAtNC40LTMuNi04LTgtOHptMjg0IDQyNEw3NzUgNzIxYzEyMi4xLTE0OC45IDExMy42LTM2OS41LTI2LTUwOS0xNDgtMTQ4LjEtMzg4LjQtMTQ4LjEtNTM3IDAtMTQ4LjEgMTQ4LjYtMTQ4LjEgMzg5IDAgNTM3IDEzOS41IDEzOS42IDM2MC4xIDE0OC4xIDUwOSAyNmwxNDYgMTQ2YzMuMiAyLjggOC4zIDIuOCAxMSAwbDQzLTQzYzIuOC0yLjcgMi44LTcuOCAwLTExek02OTYgNjk2Yy0xMTguOCAxMTguNy0zMTEuMiAxMTguNy00MzAgMC0xMTguNy0xMTguOC0xMTguNy0zMTEuMiAwLTQzMCAxMTguOC0xMTguNyAzMTEuMi0xMTguNyA0MzAgMCAxMTguNyAxMTguOCAxMTguNyAzMTEuMiAwIDQzMHoiIC8+PC9zdmc+) */
/**![zoom-out](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iNTAiIGhlaWdodD0iNTAiIGZpbGw9IiNjYWNhY2EiIHZpZXdCb3g9IjY0IDY0IDg5NiA4OTYiIGZvY3VzYWJsZT0iZmFsc2UiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PHBhdGggZD0iTTYzNyA0NDNIMzI1Yy00LjQgMC04IDMuNi04IDh2NjBjMCA0LjQgMy42IDggOCA4aDMxMmM0LjQgMCA4LTMuNiA4LTh2LTYwYzAtNC40LTMuNi04LTgtOHptMjg0IDQyNEw3NzUgNzIxYzEyMi4xLTE0OC45IDExMy42LTM2OS41LTI2LTUwOS0xNDgtMTQ4LjEtMzg4LjQtMTQ4LjEtNTM3IDAtMTQ4LjEgMTQ4LjYtMTQ4LjEgMzg5IDAgNTM3IDEzOS41IDEzOS42IDM2MC4xIDE0OC4xIDUwOSAyNmwxNDYgMTQ2YzMuMiAyLjggOC4zIDIuOCAxMSAwbDQzLTQzYzIuOC0yLjcgMi44LTcuOCAwLTExek02OTYgNjk2Yy0xMTguOCAxMTguNy0zMTEuMiAxMTguNy00MzAgMC0xMTguNy0xMTguOC0xMTguNy0zMTEuMiAwLTQzMCAxMTguOC0xMTguNyAzMTEuMi0xMTguNyA0MzAgMCAxMTguNyAxMTguOCAxMTguNyAzMTEuMiAwIDQzMHoiIC8+PC9zdmc+) */

File diff suppressed because one or more lines are too long

View File

@ -18,24 +18,28 @@
"lint": "eslint --ext .js,.jsx,.tsx --fix src" "lint": "eslint --ext .js,.jsx,.tsx --fix src"
}, },
"dependencies": { "dependencies": {
"@ant-design/icons": "latest", "@ahooksjs/use-url-state": "^3.5.1",
"@ant-design/icons": "^5.6.1",
"@ant-design/pro-components": "^2.8.10",
"@cqsjjb/jjb-common-decorator": "latest", "@cqsjjb/jjb-common-decorator": "latest",
"@cqsjjb/jjb-common-lib": "latest", "@cqsjjb/jjb-common-lib": "latest",
"@cqsjjb/jjb-dva-runtime": "latest", "@cqsjjb/jjb-dva-runtime": "latest",
"@cqsjjb/jjb-react-admin-component": "latest", "@cqsjjb/jjb-react-admin-component": "latest",
"ahooks": "^3.9.5", "ahooks": "^3.9.5",
"antd": "latest", "antd": "^5.27.6",
"dayjs": "^1.11.7", "dayjs": "^1.11.7",
"lodash-es": "^4.17.21",
"react": "^18.2.0", "react": "^18.2.0",
"react-dom": "^18.2.0" "react-dom": "^18.2.0",
"zy-react-library": "^1.2.20"
}, },
"devDependencies": { "devDependencies": {
"@antfu/eslint-config": "^5.4.1", "@antfu/eslint-config": "^5.4.1",
"@babel/plugin-proposal-decorators": "^7.19.3", "@babel/plugin-proposal-decorators": "^7.19.3",
"@cqsjjb/scripts": "latest", "@cqsjjb/scripts": "2.0.0-alpha-1",
"@eslint-react/eslint-plugin": "^2.2.2", "@eslint-react/eslint-plugin": "^2.2.2",
"cross-env": "^7.0.3", "cross-env": "^7.0.3",
"eslint": "^9.37.0", "eslint": "9.39.2",
"eslint-plugin-format": "^1.0.2", "eslint-plugin-format": "^1.0.2",
"eslint-plugin-react-hooks": "^7.0.0", "eslint-plugin-react-hooks": "^7.0.0",
"eslint-plugin-react-refresh": "^0.4.23", "eslint-plugin-react-refresh": "^0.4.23",

View File

@ -1,23 +0,0 @@
<!doctype html><html lang="zh"><head data-built-info="@cqsjjb/scripts@2.0.0-alpha-1 Env/production (2025/10/17 11:07:53) App/risk"><meta charset="UTF-8"/><meta name="renderer" content="webkit"/><meta http-equiv="X-UA-Compatible" content="IE=edge,Chrome=1"/><meta name="viewport" content="width=device-width,minimum-scale=1,maximum-scale=1,user-scalable=no,viewport-fit=cover"><title>--</title><script>(function () {
const APP_ENV = {
antd: {
'ant-prefix': 'micro-temp',
fontFamily: 'PingFangSC-Regular',
colorPrimary: '#1677ff',
borderRadius: parseInt('2')
},
appKey: '',
basename: 'risk',
API_HOST: ''
};
APP_ENV.API_HOST = sessionStorage.API_HOST || APP_ENV.API_HOST || window.location.origin;
window.process = {
env: { app: APP_ENV },
NODE_ENV: 'production'
};
window.__JJB_ENVIRONMENT__ = {
API_HOST: APP_ENV.API_HOST,
redirect: '',
FRAMEWORK: APP_ENV.antd
};
})();</script><script defer="defer" src="/risk/static/js/295.21df88c875577274cecb.js"></script><script defer="defer" src="/risk/static/js/main.4c0885586ad9a06ab444.js"></script><link href="/risk/static/css/main.40fc518bb0818fe8b8ea.css" rel="stylesheet"></head><body style="overflow: hidden"><noscript>此网页需要开启JavaScript功能。</noscript><div id="root" style="width: 100%; height: 100%; position: relative"></div><script type="text/javascript">/* @cqsjjb/script 输出当前应用基本信息、构建时间 */console.log("%c@cqsjjb/scripts@2.0.0-alpha-1 Env/production (2025/10/17 11:07:53) App/risk Version/master Java/<branch-name>", "color: #1890ff; border-radius: 2px; padding: 0 4px; border: 1px solid #1890ff; background: #f9fcff")</script></body></html>

View File

@ -1 +0,0 @@
body,html{height:100%;width:100%}input::-ms-clear,input::-ms-reveal{display:none}*,:after,:before{box-sizing:border-box}html{font-family:sans-serif;line-height:1.15;-webkit-text-size-adjust:100%;-ms-text-size-adjust:100%;-ms-overflow-style:scrollbar;-webkit-tap-highlight-color:rgba(0,0,0,0)}@-ms-viewport{width:device-width}body{margin:0}[tabindex="-1"]:focus{outline:none}hr{box-sizing:content-box;height:0;overflow:visible}h1,h2,h3,h4,h5,h6{font-weight:500;margin-bottom:.5em;margin-top:0}p{margin-bottom:1em;margin-top:0}abbr[data-original-title],abbr[title]{border-bottom:0;cursor:help;-webkit-text-decoration:underline dotted;text-decoration:underline dotted}address{font-style:normal;line-height:inherit;margin-bottom:1em}input[type=number],input[type=password],input[type=text],textarea{-webkit-appearance:none}dl,ol,ul{margin-bottom:1em;margin-top:0}ol ol,ol ul,ul ol,ul ul{margin-bottom:0}dt{font-weight:500}dd{margin-bottom:.5em;margin-left:0}blockquote{margin:0 0 1em}dfn{font-style:italic}b,strong{font-weight:bolder}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sub{bottom:-.25em}sup{top:-.5em}code,kbd,pre,samp{font-family:SFMono-Regular,Consolas,Liberation Mono,Menlo,Courier,monospace;font-size:1em}pre{margin-bottom:1em;margin-top:0;overflow:auto}figure{margin:0 0 1em}img{border-style:none;vertical-align:middle}[role=button],a,area,button,input:not([type=range]),label,select,summary,textarea{touch-action:manipulation}table{border-collapse:collapse}caption{caption-side:bottom;padding-bottom:.3em;padding-top:.75em;text-align:left}button,input,optgroup,select,textarea{color:inherit;font-family:inherit;font-size:inherit;line-height:inherit;margin:0}button,input{overflow:visible}button,select{text-transform:none}[type=reset],[type=submit],button,html [type=button]{-webkit-appearance:button}[type=button]::-moz-focus-inner,[type=reset]::-moz-focus-inner,[type=submit]::-moz-focus-inner,button::-moz-focus-inner{border-style:none;padding:0}input[type=checkbox],input[type=radio]{box-sizing:border-box;padding:0}input[type=date],input[type=datetime-local],input[type=month],input[type=time]{-webkit-appearance:listbox}textarea{overflow:auto;resize:vertical}fieldset{border:0;margin:0;min-width:0;padding:0}legend{color:inherit;display:block;font-size:1.5em;line-height:inherit;margin-bottom:.5em;max-width:100%;padding:0;white-space:normal;width:100%}progress{vertical-align:baseline}[type=number]::-webkit-inner-spin-button,[type=number]::-webkit-outer-spin-button{height:auto}[type=search]{-webkit-appearance:none;outline-offset:-2px}[type=search]::-webkit-search-cancel-button,[type=search]::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{-webkit-appearance:button;font:inherit}output{display:inline-block}summary{display:list-item}template{display:none}[hidden]{display:none!important}mark{background-color:#feffe6;padding:.2em}

View File

@ -1 +0,0 @@
module.exports={javaGit:"<git-url>",javaGitName:"<git-name>",environment:{development:{javaGitBranch:"<branch-name>",API_HOST:"http://192.168.20.100:30140/demo2"},production:{javaGitBranch:"<branch-name>",API_HOST:""}},appIdentifier:"risk",contextInject:{appKey:""},windowInject:{title:"微应用模板",links:[],element:{root:{id:"root"}},scripts:[]},server:{port:"8080",host:"127.0.0.1",open:!0},framework:{antd:{"ant-prefix":"micro-temp",fontFamily:"PingFangSC-Regular",colorPrimary:"#1677ff",borderRadius:2}},webpackConfig:{htmlWebpackPluginOption:{inject:!0}}};

File diff suppressed because one or more lines are too long

View File

@ -1,135 +0,0 @@
/*!
Copyright (c) 2018 Jed Watson.
Licensed under the MIT License (MIT), see
http://jedwatson.github.io/classnames
*/
/*!
* is-plain-object <https://github.com/jonschlinkert/is-plain-object>
*
* Copyright (c) 2014-2017, Jon Schlinkert.
* Released under the MIT License.
*/
/*!
* isobject <https://github.com/jonschlinkert/isobject>
*
* Copyright (c) 2014-2017, Jon Schlinkert.
* Released under the MIT License.
*/
/*! regenerator-runtime -- Copyright (c) 2014-present, Facebook, Inc. -- license (MIT): https://github.com/babel/babel/blob/main/packages/babel-helpers/LICENSE */
/**
* @license React
* react-dom.production.min.js
*
* Copyright (c) Facebook, Inc. and its affiliates.
*
* This source code is licensed under the MIT license found in the
* LICENSE file in the root directory of this source tree.
*/
/**
* @license React
* react-is.production.min.js
*
* Copyright (c) Facebook, Inc. and its affiliates.
*
* This source code is licensed under the MIT license found in the
* LICENSE file in the root directory of this source tree.
*/
/**
* @license React
* react-jsx-runtime.production.min.js
*
* Copyright (c) Facebook, Inc. and its affiliates.
*
* This source code is licensed under the MIT license found in the
* LICENSE file in the root directory of this source tree.
*/
/**
* @license React
* react.production.min.js
*
* Copyright (c) Facebook, Inc. and its affiliates.
*
* This source code is licensed under the MIT license found in the
* LICENSE file in the root directory of this source tree.
*/
/**
* @license React
* scheduler.production.min.js
*
* Copyright (c) Facebook, Inc. and its affiliates.
*
* This source code is licensed under the MIT license found in the
* LICENSE file in the root directory of this source tree.
*/
/** @license React v16.13.1
* react-is.production.min.js
*
* Copyright (c) Facebook, Inc. and its affiliates.
*
* This source code is licensed under the MIT license found in the
* LICENSE file in the root directory of this source tree.
*/
/** @license React v17.0.2
* react-is.production.min.js
*
* Copyright (c) Facebook, Inc. and its affiliates.
*
* This source code is licensed under the MIT license found in the
* LICENSE file in the root directory of this source tree.
*/
/** @preserve
* Counter block mode compatible with Dr Brian Gladman fileenc.c
* derived from CryptoJS.mode.CTR
* Jan Hruby jhruby.web@gmail.com
*/
/** @preserve
(c) 2012 by Cédric Mesnil. All rights reserved.
Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met:
- Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer.
- Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution.
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
*/
/**![caret-down](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iNTAiIGhlaWdodD0iNTAiIGZpbGw9IiNjYWNhY2EiIHZpZXdCb3g9IjAgMCAxMDI0IDEwMjQiIGZvY3VzYWJsZT0iZmFsc2UiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PHBhdGggZD0iTTg0MC40IDMwMEgxODMuNmMtMTkuNyAwLTMwLjcgMjAuOC0xOC41IDM1bDMyOC40IDM4MC44YzkuNCAxMC45IDI3LjUgMTAuOSAzNyAwTDg1OC45IDMzNWMxMi4yLTE0LjIgMS4yLTM1LTE4LjUtMzV6IiAvPjwvc3ZnPg==) */
/**![caret-up](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iNTAiIGhlaWdodD0iNTAiIGZpbGw9IiNjYWNhY2EiIHZpZXdCb3g9IjAgMCAxMDI0IDEwMjQiIGZvY3VzYWJsZT0iZmFsc2UiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PHBhdGggZD0iTTg1OC45IDY4OUw1MzAuNSAzMDguMmMtOS40LTEwLjktMjcuNS0xMC45LTM3IDBMMTY1LjEgNjg5Yy0xMi4yIDE0LjItMS4yIDM1IDE4LjUgMzVoNjU2LjhjMTkuNyAwIDMwLjctMjAuOCAxOC41LTM1eiIgLz48L3N2Zz4=) */
/**![check](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iNTAiIGhlaWdodD0iNTAiIGZpbGw9IiNjYWNhY2EiIHZpZXdCb3g9IjY0IDY0IDg5NiA4OTYiIGZvY3VzYWJsZT0iZmFsc2UiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PHBhdGggZD0iTTkxMiAxOTBoLTY5LjljLTkuOCAwLTE5LjEgNC41LTI1LjEgMTIuMkw0MDQuNyA3MjQuNSAyMDcgNDc0YTMyIDMyIDAgMDAtMjUuMS0xMi4ySDExMmMtNi43IDAtMTAuNCA3LjctNi4zIDEyLjlsMjczLjkgMzQ3YzEyLjggMTYuMiAzNy40IDE2LjIgNTAuMyAwbDQ4OC40LTYxOC45YzQuMS01LjEuNC0xMi44LTYuMy0xMi44eiIgLz48L3N2Zz4=) */
/**![double-left](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iNTAiIGhlaWdodD0iNTAiIGZpbGw9IiNjYWNhY2EiIHZpZXdCb3g9IjY0IDY0IDg5NiA4OTYiIGZvY3VzYWJsZT0iZmFsc2UiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PHBhdGggZD0iTTI3Mi45IDUxMmwyNjUuNC0zMzkuMWM0LjEtNS4yLjQtMTIuOS02LjMtMTIuOWgtNzcuM2MtNC45IDAtOS42IDIuMy0xMi42IDYuMUwxODYuOCA0OTIuM2EzMS45OSAzMS45OSAwIDAwMCAzOS41bDI1NS4zIDMyNi4xYzMgMy45IDcuNyA2LjEgMTIuNiA2LjFINTMyYzYuNyAwIDEwLjQtNy43IDYuMy0xMi45TDI3Mi45IDUxMnptMzA0IDBsMjY1LjQtMzM5LjFjNC4xLTUuMi40LTEyLjktNi4zLTEyLjloLTc3LjNjLTQuOSAwLTkuNiAyLjMtMTIuNiA2LjFMNDkwLjggNDkyLjNhMzEuOTkgMzEuOTkgMCAwMDAgMzkuNWwyNTUuMyAzMjYuMWMzIDMuOSA3LjcgNi4xIDEyLjYgNi4xSDgzNmM2LjcgMCAxMC40LTcuNyA2LjMtMTIuOUw1NzYuOSA1MTJ6IiAvPjwvc3ZnPg==) */
/**![double-right](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iNTAiIGhlaWdodD0iNTAiIGZpbGw9IiNjYWNhY2EiIHZpZXdCb3g9IjY0IDY0IDg5NiA4OTYiIGZvY3VzYWJsZT0iZmFsc2UiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PHBhdGggZD0iTTUzMy4yIDQ5Mi4zTDI3Ny45IDE2Ni4xYy0zLTMuOS03LjctNi4xLTEyLjYtNi4xSDE4OGMtNi43IDAtMTAuNCA3LjctNi4zIDEyLjlMNDQ3LjEgNTEyIDE4MS43IDg1MS4xQTcuOTggNy45OCAwIDAwMTg4IDg2NGg3Ny4zYzQuOSAwIDkuNi0yLjMgMTIuNi02LjFsMjU1LjMtMzI2LjFjOS4xLTExLjcgOS4xLTI3LjkgMC0zOS41em0zMDQgMEw1ODEuOSAxNjYuMWMtMy0zLjktNy43LTYuMS0xMi42LTYuMUg0OTJjLTYuNyAwLTEwLjQgNy43LTYuMyAxMi45TDc1MS4xIDUxMiA0ODUuNyA4NTEuMUE3Ljk4IDcuOTggMCAwMDQ5MiA4NjRoNzcuM2M0LjkgMCA5LjYtMi4zIDEyLjYtNi4xbDI1NS4zLTMyNi4xYzkuMS0xMS43IDkuMS0yNy45IDAtMzkuNXoiIC8+PC9zdmc+) */
/**![ellipsis](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iNTAiIGhlaWdodD0iNTAiIGZpbGw9IiNjYWNhY2EiIHZpZXdCb3g9IjY0IDY0IDg5NiA4OTYiIGZvY3VzYWJsZT0iZmFsc2UiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PHBhdGggZD0iTTE3NiA1MTFhNTYgNTYgMCAxMDExMiAwIDU2IDU2IDAgMTAtMTEyIDB6bTI4MCAwYTU2IDU2IDAgMTAxMTIgMCA1NiA1NiAwIDEwLTExMiAwem0yODAgMGE1NiA1NiAwIDEwMTEyIDAgNTYgNTYgMCAxMC0xMTIgMHoiIC8+PC9zdmc+) */
/**![eye](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iNTAiIGhlaWdodD0iNTAiIGZpbGw9IiNjYWNhY2EiIHZpZXdCb3g9IjY0IDY0IDg5NiA4OTYiIGZvY3VzYWJsZT0iZmFsc2UiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PHBhdGggZD0iTTk0Mi4yIDQ4Ni4yQzg0Ny40IDI4Ni41IDcwNC4xIDE4NiA1MTIgMTg2Yy0xOTIuMiAwLTMzNS40IDEwMC41LTQzMC4yIDMwMC4zYTYwLjMgNjAuMyAwIDAwMCA1MS41QzE3Ni42IDczNy41IDMxOS45IDgzOCA1MTIgODM4YzE5Mi4yIDAgMzM1LjQtMTAwLjUgNDMwLjItMzAwLjMgNy43LTE2LjIgNy43LTM1IDAtNTEuNXpNNTEyIDc2NmMtMTYxLjMgMC0yNzkuNC04MS44LTM2Mi43LTI1NEMyMzIuNiAzMzkuOCAzNTAuNyAyNTggNTEyIDI1OGMxNjEuMyAwIDI3OS40IDgxLjggMzYyLjcgMjU0Qzc5MS41IDY4NC4yIDY3My40IDc2NiA1MTIgNzY2em0tNC00MzBjLTk3LjIgMC0xNzYgNzguOC0xNzYgMTc2czc4LjggMTc2IDE3NiAxNzYgMTc2LTc4LjggMTc2LTE3Ni03OC44LTE3Ni0xNzYtMTc2em0wIDI4OGMtNjEuOSAwLTExMi01MC4xLTExMi0xMTJzNTAuMS0xMTIgMTEyLTExMiAxMTIgNTAuMSAxMTIgMTEyLTUwLjEgMTEyLTExMiAxMTJ6IiAvPjwvc3ZnPg==) */
/**![file](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iNTAiIGhlaWdodD0iNTAiIGZpbGw9IiNjYWNhY2EiIHZpZXdCb3g9IjY0IDY0IDg5NiA4OTYiIGZvY3VzYWJsZT0iZmFsc2UiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PHBhdGggZD0iTTg1NC42IDI4OC42TDYzOS40IDczLjRjLTYtNi0xNC4xLTkuNC0yMi42LTkuNEgxOTJjLTE3LjcgMC0zMiAxNC4zLTMyIDMydjgzMmMwIDE3LjcgMTQuMyAzMiAzMiAzMmg2NDBjMTcuNyAwIDMyLTE0LjMgMzItMzJWMzExLjNjMC04LjUtMy40LTE2LjctOS40LTIyLjd6TTc5MC4yIDMyNkg2MDJWMTM3LjhMNzkwLjIgMzI2em0xLjggNTYySDIzMlYxMzZoMzAydjIxNmE0MiA0MiAwIDAwNDIgNDJoMjE2djQ5NHoiIC8+PC9zdmc+) */
/**![filter](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iNTAiIGhlaWdodD0iNTAiIGZpbGw9IiNjYWNhY2EiIHZpZXdCb3g9IjY0IDY0IDg5NiA4OTYiIGZvY3VzYWJsZT0iZmFsc2UiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PHBhdGggZD0iTTM0OSA4MzhjMCAxNy43IDE0LjIgMzIgMzEuOCAzMmgyNjIuNGMxNy42IDAgMzEuOC0xNC4zIDMxLjgtMzJWNjQySDM0OXYxOTZ6bTUzMS4xLTY4NEgxNDMuOWMtMjQuNSAwLTM5LjggMjYuNy0yNy41IDQ4bDIyMS4zIDM3NmgzNDguOGwyMjEuMy0zNzZjMTIuMS0yMS4zLTMuMi00OC0yNy43LTQ4eiIgLz48L3N2Zz4=) */
/**![folder-open](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iNTAiIGhlaWdodD0iNTAiIGZpbGw9IiNjYWNhY2EiIHZpZXdCb3g9IjY0IDY0IDg5NiA4OTYiIGZvY3VzYWJsZT0iZmFsc2UiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PHBhdGggZD0iTTkyOCA0NDRIODIwVjMzMC40YzAtMTcuNy0xNC4zLTMyLTMyLTMySDQ3M0wzNTUuNyAxODYuMmE4LjE1IDguMTUgMCAwMC01LjUtMi4ySDk2Yy0xNy43IDAtMzIgMTQuMy0zMiAzMnY1OTJjMCAxNy43IDE0LjMgMzIgMzIgMzJoNjk4YzEzIDAgMjQuOC03LjkgMjkuNy0yMGwxMzQtMzMyYzEuNS0zLjggMi4zLTcuOSAyLjMtMTIgMC0xNy43LTE0LjMtMzItMzItMzJ6TTEzNiAyNTZoMTg4LjVsMTE5LjYgMTE0LjRINzQ4VjQ0NEgyMzhjLTEzIDAtMjQuOCA3LjktMjkuNyAyMEwxMzYgNjQzLjJWMjU2em02MzUuMyA1MTJIMTU5bDEwMy4zLTI1Nmg2MTIuNEw3NzEuMyA3Njh6IiAvPjwvc3ZnPg==) */
/**![folder](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iNTAiIGhlaWdodD0iNTAiIGZpbGw9IiNjYWNhY2EiIHZpZXdCb3g9IjY0IDY0IDg5NiA4OTYiIGZvY3VzYWJsZT0iZmFsc2UiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PHBhdGggZD0iTTg4MCAyOTguNEg1MjFMNDAzLjcgMTg2LjJhOC4xNSA4LjE1IDAgMDAtNS41LTIuMkgxNDRjLTE3LjcgMC0zMiAxNC4zLTMyIDMydjU5MmMwIDE3LjcgMTQuMyAzMiAzMiAzMmg3MzZjMTcuNyAwIDMyLTE0LjMgMzItMzJWMzMwLjRjMC0xNy43LTE0LjMtMzItMzItMzJ6TTg0MCA3NjhIMTg0VjI1NmgxODguNWwxMTkuNiAxMTQuNEg4NDBWNzY4eiIgLz48L3N2Zz4=) */
/**![holder](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iNTAiIGhlaWdodD0iNTAiIGZpbGw9IiNjYWNhY2EiIHZpZXdCb3g9IjY0IDY0IDg5NiA4OTYiIGZvY3VzYWJsZT0iZmFsc2UiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PHBhdGggZD0iTTMwMCAyNzYuNWE1NiA1NiAwIDEwNTYtOTcgNTYgNTYgMCAwMC01NiA5N3ptMCAyODRhNTYgNTYgMCAxMDU2LTk3IDU2IDU2IDAgMDAtNTYgOTd6TTY0MCAyMjhhNTYgNTYgMCAxMDExMiAwIDU2IDU2IDAgMDAtMTEyIDB6bTAgMjg0YTU2IDU2IDAgMTAxMTIgMCA1NiA1NiAwIDAwLTExMiAwek0zMDAgODQ0LjVhNTYgNTYgMCAxMDU2LTk3IDU2IDU2IDAgMDAtNTYgOTd6TTY0MCA3OTZhNTYgNTYgMCAxMDExMiAwIDU2IDU2IDAgMDAtMTEyIDB6IiAvPjwvc3ZnPg==) */
/**![left](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iNTAiIGhlaWdodD0iNTAiIGZpbGw9IiNjYWNhY2EiIHZpZXdCb3g9IjY0IDY0IDg5NiA4OTYiIGZvY3VzYWJsZT0iZmFsc2UiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PHBhdGggZD0iTTcyNCAyMTguM1YxNDFjMC02LjctNy43LTEwLjQtMTIuOS02LjNMMjYwLjMgNDg2LjhhMzEuODYgMzEuODYgMCAwMDAgNTAuM2w0NTAuOCAzNTIuMWM1LjMgNC4xIDEyLjkuNCAxMi45LTYuM3YtNzcuM2MwLTQuOS0yLjMtOS42LTYuMS0xMi42bC0zNjAtMjgxIDM2MC0yODEuMWMzLjgtMyA2LjEtNy43IDYuMS0xMi42eiIgLz48L3N2Zz4=) */
/**![minus-square](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iNTAiIGhlaWdodD0iNTAiIGZpbGw9IiNjYWNhY2EiIHZpZXdCb3g9IjY0IDY0IDg5NiA4OTYiIGZvY3VzYWJsZT0iZmFsc2UiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PHBhdGggZD0iTTMyOCA1NDRoMzY4YzQuNCAwIDgtMy42IDgtOHYtNDhjMC00LjQtMy42LTgtOC04SDMyOGMtNC40IDAtOCAzLjYtOCA4djQ4YzAgNC40IDMuNiA4IDggOHoiIC8+PHBhdGggZD0iTTg4MCAxMTJIMTQ0Yy0xNy43IDAtMzIgMTQuMy0zMiAzMnY3MzZjMCAxNy43IDE0LjMgMzIgMzIgMzJoNzM2YzE3LjcgMCAzMi0xNC4zIDMyLTMyVjE0NGMwLTE3LjctMTQuMy0zMi0zMi0zMnptLTQwIDcyOEgxODRWMTg0aDY1NnY2NTZ6IiAvPjwvc3ZnPg==) */
/**![plus-square](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iNTAiIGhlaWdodD0iNTAiIGZpbGw9IiNjYWNhY2EiIHZpZXdCb3g9IjY0IDY0IDg5NiA4OTYiIGZvY3VzYWJsZT0iZmFsc2UiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PHBhdGggZD0iTTMyOCA1NDRoMTUydjE1MmMwIDQuNCAzLjYgOCA4IDhoNDhjNC40IDAgOC0zLjYgOC04VjU0NGgxNTJjNC40IDAgOC0zLjYgOC04di00OGMwLTQuNC0zLjYtOC04LThINTQ0VjMyOGMwLTQuNC0zLjYtOC04LThoLTQ4Yy00LjQgMC04IDMuNi04IDh2MTUySDMyOGMtNC40IDAtOCAzLjYtOCA4djQ4YzAgNC40IDMuNiA4IDggOHoiIC8+PHBhdGggZD0iTTg4MCAxMTJIMTQ0Yy0xNy43IDAtMzIgMTQuMy0zMiAzMnY3MzZjMCAxNy43IDE0LjMgMzIgMzIgMzJoNzM2YzE3LjcgMCAzMi0xNC4zIDMyLTMyVjE0NGMwLTE3LjctMTQuMy0zMi0zMi0zMnptLTQwIDcyOEgxODRWMTg0aDY1NnY2NTZ6IiAvPjwvc3ZnPg==) */
/**![right](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iNTAiIGhlaWdodD0iNTAiIGZpbGw9IiNjYWNhY2EiIHZpZXdCb3g9IjY0IDY0IDg5NiA4OTYiIGZvY3VzYWJsZT0iZmFsc2UiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PHBhdGggZD0iTTc2NS43IDQ4Ni44TDMxNC45IDEzNC43QTcuOTcgNy45NyAwIDAwMzAyIDE0MXY3Ny4zYzAgNC45IDIuMyA5LjYgNi4xIDEyLjZsMzYwIDI4MS4xLTM2MCAyODEuMWMtMy45IDMtNi4xIDcuNy02LjEgMTIuNlY4ODNjMCA2LjcgNy43IDEwLjQgMTIuOSA2LjNsNDUwLjgtMzUyLjFhMzEuOTYgMzEuOTYgMCAwMDAtNTAuNHoiIC8+PC9zdmc+) */

File diff suppressed because one or more lines are too long

View File

@ -3,7 +3,7 @@
<modelVersion>4.0.0</modelVersion> <modelVersion>4.0.0</modelVersion>
<parent> <parent>
<groupId>com.zcloud</groupId> <groupId>com.zcloud</groupId>
<artifactId>zcloud-gbs-iotalarm</artifactId> <artifactId>zcloud_gbs_iotalarm</artifactId>
<version>1.0-SNAPSHOT</version> <version>1.0-SNAPSHOT</version>
<relativePath>../pom.xml</relativePath> <relativePath>../pom.xml</relativePath>
</parent> </parent>

View File

@ -2,7 +2,6 @@ package com.zcloud.web;
import com.alibaba.cola.dto.PageResponse; import com.alibaba.cola.dto.PageResponse;
import com.alibaba.cola.dto.SingleResponse; import com.alibaba.cola.dto.SingleResponse;
import com.jjb.saas.framework.auth.utils.AuthContext;
import com.zcloud.api.AlarmDisposeServiceI; import com.zcloud.api.AlarmDisposeServiceI;
import com.zcloud.dto.AlarmDisposeAssignCmd; import com.zcloud.dto.AlarmDisposeAssignCmd;
import com.zcloud.dto.AlarmDisposeBatchAssignCmd; import com.zcloud.dto.AlarmDisposeBatchAssignCmd;
@ -32,9 +31,6 @@ public class AlarmDisposeController {
@PostMapping("/assignList") @PostMapping("/assignList")
@PreAuthorize("@pms.hasAnyPermission('iotalarm-alarmdispose-assignlist')") @PreAuthorize("@pms.hasAnyPermission('iotalarm-alarmdispose-assignlist')")
public PageResponse<AlarmDisposeCO> assignList(@RequestBody AlarmDisposePageQry qry) { public PageResponse<AlarmDisposeCO> assignList(@RequestBody AlarmDisposePageQry qry) {
if (qry.getTenantId() == null) {
qry.setTenantId(AuthContext.getTenantId());
}
return alarmDisposeService.assignList(qry); return alarmDisposeService.assignList(qry);
} }
@ -43,7 +39,7 @@ public class AlarmDisposeController {
@PreAuthorize("@pms.hasAnyPermission('iotalarm-alarmdispose-assign')") @PreAuthorize("@pms.hasAnyPermission('iotalarm-alarmdispose-assign')")
public SingleResponse assign(@Validated @RequestBody AlarmDisposeAssignCmd cmd) { public SingleResponse assign(@Validated @RequestBody AlarmDisposeAssignCmd cmd) {
if (cmd.getTenantId() == null) { if (cmd.getTenantId() == null) {
cmd.setTenantId(AuthContext.getTenantId()); cmd.setTenantId(com.jjb.saas.framework.auth.utils.AuthContext.getTenantId());
} }
return alarmDisposeService.assign(cmd); return alarmDisposeService.assign(cmd);
} }
@ -53,7 +49,7 @@ public class AlarmDisposeController {
@PreAuthorize("@pms.hasAnyPermission('iotalarm-alarmdispose-batchassign')") @PreAuthorize("@pms.hasAnyPermission('iotalarm-alarmdispose-batchassign')")
public SingleResponse batchAssign(@Validated @RequestBody AlarmDisposeBatchAssignCmd cmd) { public SingleResponse batchAssign(@Validated @RequestBody AlarmDisposeBatchAssignCmd cmd) {
if (cmd.getTenantId() == null) { if (cmd.getTenantId() == null) {
cmd.setTenantId(AuthContext.getTenantId()); cmd.setTenantId(com.jjb.saas.framework.auth.utils.AuthContext.getTenantId());
} }
return alarmDisposeService.batchAssign(cmd); return alarmDisposeService.batchAssign(cmd);
} }
@ -63,7 +59,7 @@ public class AlarmDisposeController {
@PreAuthorize("@pms.hasAnyPermission('iotalarm-alarmdispose-invalid')") @PreAuthorize("@pms.hasAnyPermission('iotalarm-alarmdispose-invalid')")
public SingleResponse invalid(@Validated @RequestBody AlarmDisposeInvalidCmd cmd) { public SingleResponse invalid(@Validated @RequestBody AlarmDisposeInvalidCmd cmd) {
if (cmd.getTenantId() == null) { if (cmd.getTenantId() == null) {
cmd.setTenantId(AuthContext.getTenantId()); cmd.setTenantId(com.jjb.saas.framework.auth.utils.AuthContext.getTenantId());
} }
return alarmDisposeService.invalid(cmd); return alarmDisposeService.invalid(cmd);
} }
@ -74,4 +70,4 @@ public class AlarmDisposeController {
public SingleResponse<AlarmDisposeCO> info(@PathVariable("id") Long id) { public SingleResponse<AlarmDisposeCO> info(@PathVariable("id") Long id) {
return alarmDisposeService.info(id); return alarmDisposeService.info(id);
} }
} }

View File

@ -2,7 +2,6 @@ package com.zcloud.web;
import com.alibaba.cola.dto.PageResponse; import com.alibaba.cola.dto.PageResponse;
import com.alibaba.cola.dto.SingleResponse; import com.alibaba.cola.dto.SingleResponse;
import com.jjb.saas.framework.auth.utils.AuthContext;
import com.zcloud.api.AlarmRecordServiceI; import com.zcloud.api.AlarmRecordServiceI;
import com.zcloud.dto.AlarmRecordPageQry; import com.zcloud.dto.AlarmRecordPageQry;
import com.zcloud.dto.clientobject.AlarmRecordCO; import com.zcloud.dto.clientobject.AlarmRecordCO;
@ -28,9 +27,6 @@ public class AlarmRecordController {
@PostMapping("/list") @PostMapping("/list")
@PreAuthorize("@pms.hasAnyPermission('iotalarm-alarmrecord-list')") @PreAuthorize("@pms.hasAnyPermission('iotalarm-alarmrecord-list')")
public PageResponse<AlarmRecordCO> list(@RequestBody AlarmRecordPageQry qry) { public PageResponse<AlarmRecordCO> list(@RequestBody AlarmRecordPageQry qry) {
if (qry.getTenantId() == null) {
qry.setTenantId(AuthContext.getTenantId());
}
return alarmRecordService.list(qry); return alarmRecordService.list(qry);
} }
@ -40,4 +36,4 @@ public class AlarmRecordController {
public SingleResponse<AlarmRecordCO> info(@PathVariable("id") Long id) { public SingleResponse<AlarmRecordCO> info(@PathVariable("id") Long id) {
return alarmRecordService.info(id); return alarmRecordService.info(id);
} }
} }

View File

@ -29,11 +29,8 @@ public class AppAlarmDisposeController {
@ApiOperation("手机端待处置列表") @ApiOperation("手机端待处置列表")
@PostMapping("/todoList") @PostMapping("/todoList")
public PageResponse<AlarmDisposeCO> todoList(@RequestBody AppAlarmDisposePageQry qry) { public PageResponse<AlarmDisposeCO> todoList(@RequestBody AppAlarmDisposePageQry qry) {
// 自动填充当前用户ID和租户ID // 自动填充当前用户ID
qry.setCurrentUserId(AuthContext.getUserId()); qry.setCurrentUserId(AuthContext.getUserId());
if (qry.getTenantId() == null) {
qry.setTenantId(AuthContext.getTenantId());
}
return alarmDisposeService.appTodoList(qry); return alarmDisposeService.appTodoList(qry);
} }
@ -55,4 +52,4 @@ public class AppAlarmDisposeController {
} }
return alarmDisposeService.appSubmit(cmd); return alarmDisposeService.appSubmit(cmd);
} }
} }

View File

@ -2,7 +2,6 @@ package com.zcloud.web;
import com.alibaba.cola.dto.PageResponse; import com.alibaba.cola.dto.PageResponse;
import com.alibaba.cola.dto.SingleResponse; import com.alibaba.cola.dto.SingleResponse;
import com.jjb.saas.framework.auth.utils.AuthContext;
import com.zcloud.api.DeviceRegionServiceI; import com.zcloud.api.DeviceRegionServiceI;
import com.zcloud.dto.DeviceRegionAddCmd; import com.zcloud.dto.DeviceRegionAddCmd;
import com.zcloud.dto.DeviceRegionPageQry; import com.zcloud.dto.DeviceRegionPageQry;
@ -10,7 +9,6 @@ import com.zcloud.dto.BindSensorCmd;
import com.zcloud.dto.UnbindSensorCmd; import com.zcloud.dto.UnbindSensorCmd;
import com.zcloud.dto.ManagerCmd; import com.zcloud.dto.ManagerCmd;
import com.zcloud.dto.clientobject.DeviceRegionCO; import com.zcloud.dto.clientobject.DeviceRegionCO;
import com.zcloud.dto.clientobject.FireRegionCO;
import io.swagger.annotations.Api; import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation; import io.swagger.annotations.ApiOperation;
import lombok.AllArgsConstructor; import lombok.AllArgsConstructor;
@ -34,9 +32,6 @@ public class DeviceRegionController {
@PostMapping("/list") @PostMapping("/list")
@PreAuthorize("@pms.hasAnyPermission('iotalarm-deviceregion-list')") @PreAuthorize("@pms.hasAnyPermission('iotalarm-deviceregion-list')")
public PageResponse<DeviceRegionCO> list(@RequestBody DeviceRegionPageQry qry) { public PageResponse<DeviceRegionCO> list(@RequestBody DeviceRegionPageQry qry) {
if (qry.getTenantId() == null) {
qry.setTenantId(AuthContext.getTenantId());
}
return deviceRegionService.listPage(qry); return deviceRegionService.listPage(qry);
} }
@ -68,14 +63,6 @@ public class DeviceRegionController {
return deviceRegionService.manager(cmd); return deviceRegionService.manager(cmd);
} }
@ApiOperation("消防区域列表")
@GetMapping("/fireRegionList")
@PreAuthorize("@pms.hasAnyPermission('iotalarm-deviceregion-list')")
public SingleResponse<FireRegionCO> fireRegionList() {
Long tenantId = AuthContext.getTenantId();
return deviceRegionService.fireRegionList(tenantId);
}
@ApiOperation("删除") @ApiOperation("删除")
@DeleteMapping("/{id}") @DeleteMapping("/{id}")
@PreAuthorize("@pms.hasAnyPermission('iotalarm-deviceregion-delete')") @PreAuthorize("@pms.hasAnyPermission('iotalarm-deviceregion-delete')")
@ -90,4 +77,4 @@ public class DeviceRegionController {
public SingleResponse<DeviceRegionCO> info(@PathVariable("id") Long id) { public SingleResponse<DeviceRegionCO> info(@PathVariable("id") Long id) {
return deviceRegionService.info(id); return deviceRegionService.info(id);
} }
} }

View File

@ -2,7 +2,6 @@ package com.zcloud.web;
import com.alibaba.cola.dto.PageResponse; import com.alibaba.cola.dto.PageResponse;
import com.alibaba.cola.dto.SingleResponse; import com.alibaba.cola.dto.SingleResponse;
import com.jjb.saas.framework.auth.utils.AuthContext;
import com.zcloud.api.SensorDeviceServiceI; import com.zcloud.api.SensorDeviceServiceI;
import com.zcloud.dto.SensorDeviceAddCmd; import com.zcloud.dto.SensorDeviceAddCmd;
import com.zcloud.dto.SensorDevicePageQry; import com.zcloud.dto.SensorDevicePageQry;
@ -39,9 +38,6 @@ public class SensorDeviceController {
@PostMapping("/list") @PostMapping("/list")
@PreAuthorize("@pms.hasAnyPermission('iotalarm-sensordevice-list')") @PreAuthorize("@pms.hasAnyPermission('iotalarm-sensordevice-list')")
public PageResponse<SensorDeviceCO> list(@RequestBody SensorDevicePageQry qry) { public PageResponse<SensorDeviceCO> list(@RequestBody SensorDevicePageQry qry) {
if (qry.getTenantId() == null) {
qry.setTenantId(AuthContext.getTenantId());
}
return sensorDeviceService.listPage(qry); return sensorDeviceService.listPage(qry);
} }
@ -82,4 +78,4 @@ public class SensorDeviceController {
public SingleResponse<SensorDeviceCO> info(@PathVariable("id") Long id) { public SingleResponse<SensorDeviceCO> info(@PathVariable("id") Long id) {
return sensorDeviceService.info(id); return sensorDeviceService.info(id);
} }
} }

View File

@ -2,7 +2,6 @@ package com.zcloud.web;
import com.alibaba.cola.dto.PageResponse; import com.alibaba.cola.dto.PageResponse;
import com.alibaba.cola.dto.SingleResponse; import com.alibaba.cola.dto.SingleResponse;
import com.jjb.saas.framework.auth.utils.AuthContext;
import com.zcloud.api.SensorTypeServiceI; import com.zcloud.api.SensorTypeServiceI;
import com.zcloud.dto.SensorTypeAddCmd; import com.zcloud.dto.SensorTypeAddCmd;
import com.zcloud.dto.SensorTypePageQry; import com.zcloud.dto.SensorTypePageQry;
@ -38,9 +37,6 @@ public class SensorTypeController {
@PostMapping("/list") @PostMapping("/list")
@PreAuthorize("@pms.hasAnyPermission('iotalarm-sensortype-list')") @PreAuthorize("@pms.hasAnyPermission('iotalarm-sensortype-list')")
public PageResponse<SensorTypeCO> list(@RequestBody SensorTypePageQry qry) { public PageResponse<SensorTypeCO> list(@RequestBody SensorTypePageQry qry) {
if (qry.getTenantId() == null) {
qry.setTenantId(AuthContext.getTenantId());
}
return sensorTypeService.listPage(qry); return sensorTypeService.listPage(qry);
} }
@ -65,4 +61,4 @@ public class SensorTypeController {
public SingleResponse<SensorTypeCO> info(@PathVariable("id") Long id) { public SingleResponse<SensorTypeCO> info(@PathVariable("id") Long id) {
return sensorTypeService.info(id); return sensorTypeService.info(id);
} }
} }

View File

@ -3,7 +3,7 @@
<modelVersion>4.0.0</modelVersion> <modelVersion>4.0.0</modelVersion>
<parent> <parent>
<groupId>com.zcloud</groupId> <groupId>com.zcloud</groupId>
<artifactId>zcloud-gbs-iotalarm</artifactId> <artifactId>zcloud_gbs_iotalarm</artifactId>
<version>1.0-SNAPSHOT</version> <version>1.0-SNAPSHOT</version>
<relativePath>../pom.xml</relativePath> <relativePath>../pom.xml</relativePath>
</parent> </parent>

View File

@ -54,6 +54,7 @@ public class AlarmDisposeAssignExe {
updateEntity.setId(cmd.getId()); updateEntity.setId(cmd.getId());
updateEntity.setStatus(20); // 待处置 updateEntity.setStatus(20); // 待处置
updateEntity.setManagerId(cmd.getDisposeUserId()); updateEntity.setManagerId(cmd.getDisposeUserId());
updateEntity.setDisposeUserId(cmd.getDisposeUserId());
updateEntity.setAssignTime(LocalDateTime.now().format(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))); updateEntity.setAssignTime(LocalDateTime.now().format(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss")));
if (StrUtil.isNotBlank(cmd.getAlarmLevel())) { if (StrUtil.isNotBlank(cmd.getAlarmLevel())) {
updateEntity.setAlarmLevel(cmd.getAlarmLevel()); updateEntity.setAlarmLevel(cmd.getAlarmLevel());
@ -94,4 +95,4 @@ public class AlarmDisposeAssignExe {
// 完成负责人待办(原来负责人是 alarmRecord.getManagerId() // 完成负责人待办(原来负责人是 alarmRecord.getManagerId()
alarmTodoService.completeTodo(cmd.getId()); alarmTodoService.completeTodo(cmd.getId());
} }
} }

View File

@ -60,6 +60,7 @@ public class AlarmDisposeBatchAssignExe {
updateEntity.setId(id); updateEntity.setId(id);
updateEntity.setStatus(20); // 待处置 updateEntity.setStatus(20); // 待处置
updateEntity.setManagerId(cmd.getDisposeUserId()); updateEntity.setManagerId(cmd.getDisposeUserId());
updateEntity.setDisposeUserId(cmd.getDisposeUserId());
updateEntity.setAssignTime(assignTime); updateEntity.setAssignTime(assignTime);
updateEntity.setTenantId(cmd.getTenantId()); updateEntity.setTenantId(cmd.getTenantId());
updateEntity.setOrgId(cmd.getOrgId()); updateEntity.setOrgId(cmd.getOrgId());
@ -90,4 +91,4 @@ public class AlarmDisposeBatchAssignExe {
alarmTodoService.addDisposeTodo(updateEntity, cmd.getDisposeUserId()); alarmTodoService.addDisposeTodo(updateEntity, cmd.getDisposeUserId());
} }
} }
} }

View File

@ -33,7 +33,6 @@ public class ManagerExe {
Boolean res = deviceRegionGateway.updateManager( Boolean res = deviceRegionGateway.updateManager(
cmd.getId(), cmd.getId(),
cmd.getManagerId(), cmd.getManagerId(),
cmd.getManagerName(),
cmd.getDepartmentId() cmd.getDepartmentId()
); );
if (!res) { if (!res) {

View File

@ -33,7 +33,7 @@ public class SensorDeviceAddExe {
entity.setDeleteEnum("FALSE"); entity.setDeleteEnum("FALSE");
// 设置报警开关默认值 // 设置报警开关默认值
if (entity.getAlarmSwitch() == null) { if (entity.getAlarmSwitch() == null) {
entity.setAlarmSwitch(1); entity.setAlarmSwitch(0);
} }
// 设置连续报警确认次数默认值 // 设置连续报警确认次数默认值
if (entity.getContinuousAlarmCount() == null) { if (entity.getContinuousAlarmCount() == null) {
@ -46,4 +46,4 @@ public class SensorDeviceAddExe {
} }
return true; return true;
} }
} }

View File

@ -1,7 +1,12 @@
package com.zcloud.command; package com.zcloud.command;
import com.alibaba.cola.exception.BizException; import com.alibaba.cola.exception.BizException;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.zcloud.domain.gateway.SensorDeviceGateway; import com.zcloud.domain.gateway.SensorDeviceGateway;
import com.zcloud.persistence.dataobject.AlarmRecordDO;
import com.zcloud.persistence.dataobject.RegionSensorRelDO;
import com.zcloud.persistence.repository.AlarmRecordRepository;
import com.zcloud.persistence.repository.RegionSensorRelRepository;
import com.zcloud.gbscommon.utils.Tools; import com.zcloud.gbscommon.utils.Tools;
import lombok.RequiredArgsConstructor; import lombok.RequiredArgsConstructor;
import org.springframework.cloud.context.config.annotation.RefreshScope; import org.springframework.cloud.context.config.annotation.RefreshScope;
@ -19,13 +24,29 @@ import org.springframework.transaction.annotation.Transactional;
public class SensorDeviceRemoveExe { public class SensorDeviceRemoveExe {
private final SensorDeviceGateway sensorDeviceGateway; private final SensorDeviceGateway sensorDeviceGateway;
private final RegionSensorRelRepository regionSensorRelRepository;
private final AlarmRecordRepository alarmRecordRepository;
@Transactional(rollbackFor = Exception.class) @Transactional(rollbackFor = Exception.class)
public boolean execute(Long id) { public boolean execute(Long id) {
LambdaQueryWrapper<RegionSensorRelDO> relWrapper = new LambdaQueryWrapper<>();
relWrapper.eq(RegionSensorRelDO::getSensorId, id)
.eq(RegionSensorRelDO::getDeleteEnum, "FALSE");
if (regionSensorRelRepository.count(relWrapper) > 0) {
throw new BizException("该传感器已被使用,不可删除");
}
LambdaQueryWrapper<AlarmRecordDO> alarmWrapper = new LambdaQueryWrapper<>();
alarmWrapper.eq(AlarmRecordDO::getSensorId, id)
.eq(AlarmRecordDO::getDeleteEnum, "FALSE");
if (alarmRecordRepository.count(alarmWrapper) > 0) {
throw new BizException("该传感器已被使用,不可删除");
}
boolean res = sensorDeviceGateway.deleteById(id); boolean res = sensorDeviceGateway.deleteById(id);
if (!res) { if (!res) {
throw new BizException("删除失败"); throw new BizException("删除失败");
} }
return true; return true;
} }
} }

View File

@ -26,6 +26,11 @@ public class SensorTypeAddExe {
@Transactional(rollbackFor = Exception.class) @Transactional(rollbackFor = Exception.class)
public boolean execute(SensorTypeAddCmd cmd) { public boolean execute(SensorTypeAddCmd cmd) {
SensorTypeE exists = sensorTypeGateway.getByTypeName(cmd.getTypeName());
if (!Tools.isEmpty(exists)) {
throw new BizException("传感器类型名称已存在");
}
SensorTypeE entity = new SensorTypeE(); SensorTypeE entity = new SensorTypeE();
BeanUtils.copyProperties(cmd, entity); BeanUtils.copyProperties(cmd, entity);
entity.setSensorTypeId(UuidUtil.get32UUID()); entity.setSensorTypeId(UuidUtil.get32UUID());
@ -38,4 +43,4 @@ public class SensorTypeAddExe {
} }
return true; return true;
} }
} }

View File

@ -1,7 +1,10 @@
package com.zcloud.command; package com.zcloud.command;
import com.alibaba.cola.exception.BizException; import com.alibaba.cola.exception.BizException;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.zcloud.domain.gateway.SensorTypeGateway; import com.zcloud.domain.gateway.SensorTypeGateway;
import com.zcloud.persistence.dataobject.SensorDeviceDO;
import com.zcloud.persistence.repository.SensorDeviceRepository;
import com.zcloud.gbscommon.utils.Tools; import com.zcloud.gbscommon.utils.Tools;
import lombok.RequiredArgsConstructor; import lombok.RequiredArgsConstructor;
import org.springframework.cloud.context.config.annotation.RefreshScope; import org.springframework.cloud.context.config.annotation.RefreshScope;
@ -19,16 +22,16 @@ import org.springframework.transaction.annotation.Transactional;
public class SensorTypeRemoveExe { public class SensorTypeRemoveExe {
private final SensorTypeGateway sensorTypeGateway; private final SensorTypeGateway sensorTypeGateway;
private final SensorDeviceRepository sensorDeviceRepository;
@Transactional(rollbackFor = Exception.class) @Transactional(rollbackFor = Exception.class)
public boolean execute(Long id) { public boolean execute(Long id) {
// TODO: 检查是否有传感器设备引用该类型T7 SensorDevice 完成后补充) LambdaQueryWrapper<SensorDeviceDO> deviceWrapper = new LambdaQueryWrapper<>();
// LambdaQueryWrapper<SensorDeviceDO> deviceWrapper = new LambdaQueryWrapper<>(); deviceWrapper.eq(SensorDeviceDO::getSensorTypeId, id)
// deviceWrapper.eq(SensorDeviceDO::getSensorTypeId, sensorType.getSensorTypeId()) .eq(SensorDeviceDO::getDeleteEnum, "FALSE");
// .eq(SensorDeviceDO::getDeleteEnum, "FALSE"); if (sensorDeviceRepository.count(deviceWrapper) > 0) {
// if (sensorDeviceGateway.exists(deviceWrapper)) { throw new BizException("该类型已被传感器使用,不可删除");
// throw new BizException("该类型已被传感器使用,不可删除"); }
// }
boolean res = sensorTypeGateway.deleteById(id); boolean res = sensorTypeGateway.deleteById(id);
if (!res) { if (!res) {
@ -36,4 +39,4 @@ public class SensorTypeRemoveExe {
} }
return true; return true;
} }
} }

View File

@ -4,6 +4,7 @@ import com.alibaba.cola.exception.BizException;
import com.zcloud.domain.gateway.SensorTypeGateway; import com.zcloud.domain.gateway.SensorTypeGateway;
import com.zcloud.domain.model.SensorTypeE; import com.zcloud.domain.model.SensorTypeE;
import com.zcloud.dto.SensorTypeUpdateCmd; import com.zcloud.dto.SensorTypeUpdateCmd;
import com.zcloud.gbscommon.utils.Tools;
import lombok.RequiredArgsConstructor; import lombok.RequiredArgsConstructor;
import org.springframework.beans.BeanUtils; import org.springframework.beans.BeanUtils;
import org.springframework.cloud.context.config.annotation.RefreshScope; import org.springframework.cloud.context.config.annotation.RefreshScope;
@ -24,6 +25,16 @@ public class SensorTypeUpdateExe {
@Transactional(rollbackFor = Exception.class) @Transactional(rollbackFor = Exception.class)
public boolean execute(SensorTypeUpdateCmd cmd) { public boolean execute(SensorTypeUpdateCmd cmd) {
SensorTypeE current = sensorTypeGateway.getById(cmd.getId());
if (Tools.isEmpty(current)) {
throw new BizException("传感器类型不存在");
}
SensorTypeE exists = sensorTypeGateway.getByTypeName(cmd.getTypeName());
if (!Tools.isEmpty(exists) && !cmd.getId().equals(exists.getId())) {
throw new BizException("传感器类型名称已存在");
}
SensorTypeE entity = new SensorTypeE(); SensorTypeE entity = new SensorTypeE();
BeanUtils.copyProperties(cmd, entity); BeanUtils.copyProperties(cmd, entity);
@ -33,4 +44,4 @@ public class SensorTypeUpdateExe {
} }
return true; return true;
} }
} }

View File

@ -5,6 +5,7 @@ import cn.hutool.core.util.ObjectUtil;
import com.alibaba.cola.dto.PageResponse; import com.alibaba.cola.dto.PageResponse;
import com.alibaba.cola.dto.SingleResponse; import com.alibaba.cola.dto.SingleResponse;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.jjb.saas.framework.auth.utils.AuthContext;
import com.zcloud.dto.AlarmDisposePageQry; import com.zcloud.dto.AlarmDisposePageQry;
import com.zcloud.dto.clientobject.AlarmDisposeCO; import com.zcloud.dto.clientobject.AlarmDisposeCO;
import com.zcloud.gbscommon.utils.PageQueryHelper; import com.zcloud.gbscommon.utils.PageQueryHelper;
@ -39,20 +40,21 @@ public class AlarmDisposeQueryExe {
private final UserRepository userRepository; private final UserRepository userRepository;
public PageResponse<AlarmDisposeCO> execute(AlarmDisposePageQry qry) { public PageResponse<AlarmDisposeCO> execute(AlarmDisposePageQry qry) {
PageResponse<AlarmRecordDO> pageResponse = alarmRecordRepository.disposeListPage(PageQueryHelper.toHashMap(qry)); Map<String, Object> params = PageQueryHelper.toHashMap(qry);
params.put("tenantId", AuthContext.getTenantId());
PageResponse<AlarmRecordDO> pageResponse = alarmRecordRepository.disposeListPage(params);
List<AlarmDisposeCO> alarmDisposeCOs = BeanUtil.copyToList(pageResponse.getData(), AlarmDisposeCO.class); List<AlarmDisposeCO> alarmDisposeCOs = BeanUtil.copyToList(pageResponse.getData(), AlarmDisposeCO.class);
return PageResponse.of(alarmDisposeCOs, pageResponse.getTotalCount(), pageResponse.getPageSize(), pageResponse.getPageIndex()); return PageResponse.of(alarmDisposeCOs, pageResponse.getTotalCount(), pageResponse.getPageSize(), pageResponse.getPageIndex());
} }
public SingleResponse<AlarmDisposeCO> getById(Long id) { public SingleResponse<AlarmDisposeCO> getById(Long id) {
AlarmRecordDO d = alarmRecordRepository.getById(id); AlarmRecordDO d = alarmRecordRepository.detailView(id);
if (d == null) { if (d == null) {
return SingleResponse.buildFailure("报警记录不存在"); return SingleResponse.buildFailure("报警记录不存在");
} }
AlarmDisposeCO co = new AlarmDisposeCO(); AlarmDisposeCO co = new AlarmDisposeCO();
BeanUtils.copyProperties(d, co); BeanUtils.copyProperties(d, co);
fillDisplayFields(Collections.singletonList(co));
return SingleResponse.of(co); return SingleResponse.of(co);
} }

View File

@ -5,6 +5,7 @@ import cn.hutool.core.util.ObjectUtil;
import com.alibaba.cola.dto.PageResponse; import com.alibaba.cola.dto.PageResponse;
import com.alibaba.cola.dto.SingleResponse; import com.alibaba.cola.dto.SingleResponse;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.jjb.saas.framework.auth.utils.AuthContext;
import com.zcloud.dto.AlarmRecordPageQry; import com.zcloud.dto.AlarmRecordPageQry;
import com.zcloud.dto.clientobject.AlarmRecordCO; import com.zcloud.dto.clientobject.AlarmRecordCO;
import com.zcloud.gbscommon.utils.PageQueryHelper; import com.zcloud.gbscommon.utils.PageQueryHelper;
@ -39,20 +40,21 @@ public class AlarmRecordQueryExe {
private final UserRepository userRepository; private final UserRepository userRepository;
public PageResponse<AlarmRecordCO> execute(AlarmRecordPageQry qry) { public PageResponse<AlarmRecordCO> execute(AlarmRecordPageQry qry) {
PageResponse<AlarmRecordDO> pageResponse = alarmRecordRepository.listPage(PageQueryHelper.toHashMap(qry)); Map<String, Object> params = PageQueryHelper.toHashMap(qry);
params.put("tenantId", AuthContext.getTenantId());
PageResponse<AlarmRecordDO> pageResponse = alarmRecordRepository.listPage(params);
List<AlarmRecordCO> alarmRecordCOs = BeanUtil.copyToList(pageResponse.getData(), AlarmRecordCO.class); List<AlarmRecordCO> alarmRecordCOs = BeanUtil.copyToList(pageResponse.getData(), AlarmRecordCO.class);
return PageResponse.of(alarmRecordCOs, pageResponse.getTotalCount(), pageResponse.getPageSize(), pageResponse.getPageIndex()); return PageResponse.of(alarmRecordCOs, pageResponse.getTotalCount(), pageResponse.getPageSize(), pageResponse.getPageIndex());
} }
public SingleResponse<AlarmRecordCO> getById(Long id) { public SingleResponse<AlarmRecordCO> getById(Long id) {
AlarmRecordDO d = alarmRecordRepository.getById(id); AlarmRecordDO d = alarmRecordRepository.detailView(id);
if (d == null || "TRUE".equals(d.getDeleteEnum())) { if (d == null || "TRUE".equals(d.getDeleteEnum())) {
return SingleResponse.buildFailure("报警记录不存在"); return SingleResponse.buildFailure("报警记录不存在");
} }
AlarmRecordCO co = new AlarmRecordCO(); AlarmRecordCO co = new AlarmRecordCO();
BeanUtils.copyProperties(d, co); BeanUtils.copyProperties(d, co);
fillDisplayFields(Collections.singletonList(co));
return SingleResponse.of(co); return SingleResponse.of(co);
} }

View File

@ -5,6 +5,7 @@ import cn.hutool.core.util.ObjectUtil;
import com.alibaba.cola.dto.PageResponse; import com.alibaba.cola.dto.PageResponse;
import com.alibaba.cola.dto.SingleResponse; import com.alibaba.cola.dto.SingleResponse;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.jjb.saas.framework.auth.utils.AuthContext;
import com.zcloud.dto.AppAlarmDisposePageQry; import com.zcloud.dto.AppAlarmDisposePageQry;
import com.zcloud.dto.clientobject.AlarmDisposeCO; import com.zcloud.dto.clientobject.AlarmDisposeCO;
import com.zcloud.gbscommon.utils.PageQueryHelper; import com.zcloud.gbscommon.utils.PageQueryHelper;
@ -42,7 +43,9 @@ public class AppAlarmDisposeQueryExe {
* *
*/ */
public PageResponse<AlarmDisposeCO> execute(AppAlarmDisposePageQry qry) { public PageResponse<AlarmDisposeCO> execute(AppAlarmDisposePageQry qry) {
PageResponse<AlarmRecordDO> pageResponse = alarmRecordRepository.appDisposeListPage(PageQueryHelper.toHashMap(qry)); Map<String, Object> params = PageQueryHelper.toHashMap(qry);
params.put("tenantId", AuthContext.getTenantId());
PageResponse<AlarmRecordDO> pageResponse = alarmRecordRepository.appDisposeListPage(params);
List<AlarmDisposeCO> alarmDisposeCOs = BeanUtil.copyToList(pageResponse.getData(), AlarmDisposeCO.class); List<AlarmDisposeCO> alarmDisposeCOs = BeanUtil.copyToList(pageResponse.getData(), AlarmDisposeCO.class);
return PageResponse.of(alarmDisposeCOs, pageResponse.getTotalCount(), pageResponse.getPageSize(), pageResponse.getPageIndex()); return PageResponse.of(alarmDisposeCOs, pageResponse.getTotalCount(), pageResponse.getPageSize(), pageResponse.getPageIndex());
} }
@ -51,14 +54,13 @@ public class AppAlarmDisposeQueryExe {
* *
*/ */
public SingleResponse<AlarmDisposeCO> getById(Long id) { public SingleResponse<AlarmDisposeCO> getById(Long id) {
AlarmRecordDO d = alarmRecordRepository.getById(id); AlarmRecordDO d = alarmRecordRepository.detailView(id);
if (d == null) { if (d == null) {
return SingleResponse.buildFailure("报警记录不存在"); return SingleResponse.buildFailure("报警记录不存在");
} }
AlarmDisposeCO co = new AlarmDisposeCO(); AlarmDisposeCO co = new AlarmDisposeCO();
BeanUtils.copyProperties(d, co); BeanUtils.copyProperties(d, co);
fillDisplayFields(Collections.singletonList(co));
return SingleResponse.of(co); return SingleResponse.of(co);
} }

View File

@ -48,7 +48,7 @@ public class AppAlarmRecordQueryExe {
} }
public SingleResponse<AlarmRecordCO> getById(Long id) { public SingleResponse<AlarmRecordCO> getById(Long id) {
AlarmRecordDO d = alarmRecordRepository.getById(id); AlarmRecordDO d = alarmRecordRepository.detailView(id);
if (d == null || "TRUE".equals(d.getDeleteEnum())) { if (d == null || "TRUE".equals(d.getDeleteEnum())) {
return SingleResponse.buildFailure("报警记录不存在"); return SingleResponse.buildFailure("报警记录不存在");
} }
@ -61,7 +61,6 @@ public class AppAlarmRecordQueryExe {
AlarmRecordCO co = new AlarmRecordCO(); AlarmRecordCO co = new AlarmRecordCO();
BeanUtils.copyProperties(d, co); BeanUtils.copyProperties(d, co);
fillDisplayFields(Collections.singletonList(co));
return SingleResponse.of(co); return SingleResponse.of(co);
} }

View File

@ -5,9 +5,9 @@ import cn.hutool.core.util.ObjectUtil;
import com.alibaba.cola.dto.PageResponse; import com.alibaba.cola.dto.PageResponse;
import com.alibaba.cola.dto.SingleResponse; import com.alibaba.cola.dto.SingleResponse;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.jjb.saas.framework.auth.utils.AuthContext;
import com.zcloud.dto.DeviceRegionPageQry; import com.zcloud.dto.DeviceRegionPageQry;
import com.zcloud.dto.clientobject.DeviceRegionCO; import com.zcloud.dto.clientobject.DeviceRegionCO;
import com.zcloud.dto.clientobject.FireRegionCO;
import com.zcloud.dto.clientobject.SensorDeviceCO; import com.zcloud.dto.clientobject.SensorDeviceCO;
import com.zcloud.gbscommon.utils.PageQueryHelper; import com.zcloud.gbscommon.utils.PageQueryHelper;
import com.zcloud.persistence.dataobject.DepartmentDO; import com.zcloud.persistence.dataobject.DepartmentDO;
@ -46,7 +46,9 @@ public class DeviceRegionQueryExe {
private final UserRepository userRepository; private final UserRepository userRepository;
public PageResponse<DeviceRegionCO> execute(DeviceRegionPageQry qry) { public PageResponse<DeviceRegionCO> execute(DeviceRegionPageQry qry) {
PageResponse<DeviceRegionDO> pageResponse = deviceRegionRepository.listPage(PageQueryHelper.toHashMap(qry)); Map<String, Object> params = PageQueryHelper.toHashMap(qry);
params.put("tenantId", AuthContext.getTenantId());
PageResponse<DeviceRegionDO> pageResponse = deviceRegionRepository.listPage(params);
List<DeviceRegionCO> deviceRegionCOs = BeanUtil.copyToList(pageResponse.getData(), DeviceRegionCO.class); List<DeviceRegionCO> deviceRegionCOs = BeanUtil.copyToList(pageResponse.getData(), DeviceRegionCO.class);
return PageResponse.of(deviceRegionCOs, pageResponse.getTotalCount(), pageResponse.getPageSize(), pageResponse.getPageIndex()); return PageResponse.of(deviceRegionCOs, pageResponse.getTotalCount(), pageResponse.getPageSize(), pageResponse.getPageIndex());
} }
@ -63,19 +65,6 @@ public class DeviceRegionQueryExe {
fillDisplayFields(Collections.singletonList(co)); fillDisplayFields(Collections.singletonList(co));
return SingleResponse.of(co); return SingleResponse.of(co);
} }
public SingleResponse<FireRegionCO> fireRegionList(Long tenantId) {
LambdaQueryWrapper<DeviceRegionDO> wrapper = new LambdaQueryWrapper<>();
wrapper.eq(ObjectUtil.isNotEmpty(tenantId), DeviceRegionDO::getTenantId, tenantId)
.eq(DeviceRegionDO::getDeleteEnum, "FALSE")
.orderByDesc(DeviceRegionDO::getCreateTime);
List<DeviceRegionDO> results = deviceRegionRepository.list(wrapper);
List<FireRegionCO> fireRegionCOs = BeanUtil.copyToList(results, FireRegionCO.class);
return SingleResponse.of(fireRegionCOs.isEmpty() ? null : fireRegionCOs.get(0));
}
private void fillBindSensorInfo(List<DeviceRegionCO> deviceRegionCOs, boolean includeBoundSensors) { private void fillBindSensorInfo(List<DeviceRegionCO> deviceRegionCOs, boolean includeBoundSensors) {
if (deviceRegionCOs == null || deviceRegionCOs.isEmpty()) { if (deviceRegionCOs == null || deviceRegionCOs.isEmpty()) {

View File

@ -3,6 +3,7 @@ package com.zcloud.command.query;
import cn.hutool.core.bean.BeanUtil; import cn.hutool.core.bean.BeanUtil;
import com.alibaba.cola.dto.PageResponse; import com.alibaba.cola.dto.PageResponse;
import com.alibaba.cola.dto.SingleResponse; import com.alibaba.cola.dto.SingleResponse;
import com.jjb.saas.framework.auth.utils.AuthContext;
import com.zcloud.dto.SensorDevicePageQry; import com.zcloud.dto.SensorDevicePageQry;
import com.zcloud.dto.clientobject.SensorDeviceCO; import com.zcloud.dto.clientobject.SensorDeviceCO;
import com.zcloud.gbscommon.utils.PageQueryHelper; import com.zcloud.gbscommon.utils.PageQueryHelper;
@ -13,6 +14,7 @@ import org.springframework.beans.BeanUtils;
import org.springframework.stereotype.Component; import org.springframework.stereotype.Component;
import java.util.List; import java.util.List;
import java.util.Map;
/** /**
* SensorDeviceQueryExe - * SensorDeviceQueryExe -
@ -26,7 +28,9 @@ public class SensorDeviceQueryExe {
private final SensorDeviceRepository sensorDeviceRepository; private final SensorDeviceRepository sensorDeviceRepository;
public PageResponse<SensorDeviceCO> execute(SensorDevicePageQry qry) { public PageResponse<SensorDeviceCO> execute(SensorDevicePageQry qry) {
PageResponse<SensorDeviceDO> pageResponse = sensorDeviceRepository.listPage(PageQueryHelper.toHashMap(qry)); Map<String, Object> params = PageQueryHelper.toHashMap(qry);
params.put("tenantId", AuthContext.getTenantId());
PageResponse<SensorDeviceDO> pageResponse = sensorDeviceRepository.listPage(params);
List<SensorDeviceCO> sensorDeviceCOs = BeanUtil.copyToList(pageResponse.getData(), SensorDeviceCO.class); List<SensorDeviceCO> sensorDeviceCOs = BeanUtil.copyToList(pageResponse.getData(), SensorDeviceCO.class);
return PageResponse.of(sensorDeviceCOs, pageResponse.getTotalCount(), pageResponse.getPageSize(), pageResponse.getPageIndex()); return PageResponse.of(sensorDeviceCOs, pageResponse.getTotalCount(), pageResponse.getPageSize(), pageResponse.getPageIndex());
} }

View File

@ -3,6 +3,7 @@ package com.zcloud.command.query;
import cn.hutool.core.bean.BeanUtil; import cn.hutool.core.bean.BeanUtil;
import com.alibaba.cola.dto.PageResponse; import com.alibaba.cola.dto.PageResponse;
import com.alibaba.cola.dto.SingleResponse; import com.alibaba.cola.dto.SingleResponse;
import com.jjb.saas.framework.auth.utils.AuthContext;
import com.zcloud.dto.SensorTypePageQry; import com.zcloud.dto.SensorTypePageQry;
import com.zcloud.dto.clientobject.SensorTypeCO; import com.zcloud.dto.clientobject.SensorTypeCO;
import com.zcloud.gbscommon.utils.PageQueryHelper; import com.zcloud.gbscommon.utils.PageQueryHelper;
@ -13,6 +14,7 @@ import org.springframework.beans.BeanUtils;
import org.springframework.stereotype.Component; import org.springframework.stereotype.Component;
import java.util.List; import java.util.List;
import java.util.Map;
/** /**
* SensorTypeQueryExe - * SensorTypeQueryExe -
@ -26,7 +28,9 @@ public class SensorTypeQueryExe {
private final SensorTypeRepository sensorTypeRepository; private final SensorTypeRepository sensorTypeRepository;
public PageResponse<SensorTypeCO> execute(SensorTypePageQry qry) { public PageResponse<SensorTypeCO> execute(SensorTypePageQry qry) {
PageResponse<SensorTypeDO> pageResponse = sensorTypeRepository.listPage(PageQueryHelper.toHashMap(qry)); Map<String, Object> params = PageQueryHelper.toHashMap(qry);
params.put("tenantId", AuthContext.getTenantId());
PageResponse<SensorTypeDO> pageResponse = sensorTypeRepository.listPage(params);
List<SensorTypeCO> sensorTypeCOs = BeanUtil.copyToList(pageResponse.getData(), SensorTypeCO.class); List<SensorTypeCO> sensorTypeCOs = BeanUtil.copyToList(pageResponse.getData(), SensorTypeCO.class);
return PageResponse.of(sensorTypeCOs, pageResponse.getTotalCount(), pageResponse.getPageSize(), pageResponse.getPageIndex()); return PageResponse.of(sensorTypeCOs, pageResponse.getTotalCount(), pageResponse.getPageSize(), pageResponse.getPageIndex());
} }

View File

@ -6,8 +6,8 @@ import com.zcloud.gbscommon.todolistmq.TodoListEventPusherUtil;
import com.zcloud.gbscommon.todolistmq.event.TodoListAddEvent; import com.zcloud.gbscommon.todolistmq.event.TodoListAddEvent;
import com.zcloud.gbscommon.todolistmq.event.TodoListDeleteEvent; import com.zcloud.gbscommon.todolistmq.event.TodoListDeleteEvent;
import com.zcloud.gbscommon.todolistmq.event.TodoListCompleteEvent; import com.zcloud.gbscommon.todolistmq.event.TodoListCompleteEvent;
import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.ObjectProvider;
import org.springframework.cloud.context.config.annotation.RefreshScope; import org.springframework.cloud.context.config.annotation.RefreshScope;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
@ -18,12 +18,23 @@ import org.springframework.stereotype.Service;
*/ */
@Slf4j @Slf4j
@Service @Service
@RequiredArgsConstructor
@RefreshScope @RefreshScope
public class AlarmTodoService { public class AlarmTodoService {
private final TodoListEventPusherUtil todoListEventPusherUtil; private final TodoListEventPusherUtil todoListEventPusherUtil;
public AlarmTodoService(ObjectProvider<TodoListEventPusherUtil> todoListEventPusherUtilProvider) {
this.todoListEventPusherUtil = todoListEventPusherUtilProvider.getIfAvailable();
}
private boolean todoPusherUnavailable() {
if (todoListEventPusherUtil != null) {
return false;
}
log.warn("待办推送工具未注入,跳过待办消息发送");
return true;
}
/** /**
* PC * PC
* @param alarmRecord * @param alarmRecord
@ -34,6 +45,9 @@ public class AlarmTodoService {
log.warn("新增负责人待办参数不完整,跳过发送"); log.warn("新增负责人待办参数不完整,跳过发送");
return; return;
} }
if (todoPusherUnavailable()) {
return;
}
try { try {
TodoListAddEvent event = new TodoListAddEvent(); TodoListAddEvent event = new TodoListAddEvent();
@ -64,6 +78,9 @@ public class AlarmTodoService {
log.warn("新增处置人待办参数不完整,跳过发送"); log.warn("新增处置人待办参数不完整,跳过发送");
return; return;
} }
if (todoPusherUnavailable()) {
return;
}
try { try {
TodoListAddEvent event = new TodoListAddEvent(); TodoListAddEvent event = new TodoListAddEvent();
@ -93,6 +110,9 @@ public class AlarmTodoService {
log.warn("完成待办参数不完整,跳过发送"); log.warn("完成待办参数不完整,跳过发送");
return; return;
} }
if (todoPusherUnavailable()) {
return;
}
try { try {
TodoListCompleteEvent event = new TodoListCompleteEvent(alarmId, String.valueOf(alarmId)); TodoListCompleteEvent event = new TodoListCompleteEvent(alarmId, String.valueOf(alarmId));
@ -112,6 +132,9 @@ public class AlarmTodoService {
log.warn("删除待办参数不完整,跳过发送"); log.warn("删除待办参数不完整,跳过发送");
return; return;
} }
if (todoPusherUnavailable()) {
return;
}
try { try {
TodoListDeleteEvent event = new TodoListDeleteEvent(alarmId, alarmId); TodoListDeleteEvent event = new TodoListDeleteEvent(alarmId, alarmId);
@ -121,4 +144,4 @@ public class AlarmTodoService {
log.error("待办删除发送失败报警ID: {}, 错误: {}", alarmId, e.getMessage(), e); log.error("待办删除发送失败报警ID: {}, 错误: {}", alarmId, e.getMessage(), e);
} }
} }
} }

View File

@ -16,7 +16,6 @@ import com.zcloud.dto.BindSensorCmd;
import com.zcloud.dto.UnbindSensorCmd; import com.zcloud.dto.UnbindSensorCmd;
import com.zcloud.dto.ManagerCmd; import com.zcloud.dto.ManagerCmd;
import com.zcloud.dto.clientobject.DeviceRegionCO; import com.zcloud.dto.clientobject.DeviceRegionCO;
import com.zcloud.dto.clientobject.FireRegionCO;
import lombok.AllArgsConstructor; import lombok.AllArgsConstructor;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
@ -66,11 +65,6 @@ public class DeviceRegionServiceImpl implements DeviceRegionServiceI {
return SingleResponse.buildSuccess(); return SingleResponse.buildSuccess();
} }
@Override
public SingleResponse<FireRegionCO> fireRegionList(Long tenantId) {
return deviceRegionQueryExe.fireRegionList(tenantId);
}
@Override @Override
public void remove(Long id) { public void remove(Long id) {
deviceRegionRemoveExe.execute(id); deviceRegionRemoveExe.execute(id);
@ -80,4 +74,4 @@ public class DeviceRegionServiceImpl implements DeviceRegionServiceI {
public SingleResponse<DeviceRegionCO> info(Long id) { public SingleResponse<DeviceRegionCO> info(Long id) {
return deviceRegionQueryExe.getById(id); return deviceRegionQueryExe.getById(id);
} }
} }

View File

@ -3,7 +3,7 @@
<modelVersion>4.0.0</modelVersion> <modelVersion>4.0.0</modelVersion>
<parent> <parent>
<groupId>com.zcloud</groupId> <groupId>com.zcloud</groupId>
<artifactId>zcloud-gbs-iotalarm</artifactId> <artifactId>zcloud_gbs_iotalarm</artifactId>
<version>1.0-SNAPSHOT</version> <version>1.0-SNAPSHOT</version>
<relativePath>../pom.xml</relativePath> <relativePath>../pom.xml</relativePath>
</parent> </parent>

View File

@ -9,7 +9,6 @@ import com.zcloud.dto.BindSensorCmd;
import com.zcloud.dto.UnbindSensorCmd; import com.zcloud.dto.UnbindSensorCmd;
import com.zcloud.dto.ManagerCmd; import com.zcloud.dto.ManagerCmd;
import com.zcloud.dto.clientobject.DeviceRegionCO; import com.zcloud.dto.clientobject.DeviceRegionCO;
import com.zcloud.dto.clientobject.FireRegionCO;
/** /**
* DeviceRegionServiceI - * DeviceRegionServiceI -
@ -53,13 +52,6 @@ public interface DeviceRegionServiceI {
*/ */
SingleResponse manager(ManagerCmd cmd); SingleResponse manager(ManagerCmd cmd);
/**
*
* @param tenantId
* @return
*/
SingleResponse<FireRegionCO> fireRegionList(Long tenantId);
/** /**
* *
* @param id * @param id
@ -72,4 +64,4 @@ public interface DeviceRegionServiceI {
* @return * @return
*/ */
SingleResponse<DeviceRegionCO> info(Long id); SingleResponse<DeviceRegionCO> info(Long id);
} }

View File

@ -12,39 +12,12 @@ import lombok.Data;
@Data @Data
public class AlarmDisposePageQry extends PageQuery { public class AlarmDisposePageQry extends PageQuery {
@ApiModelProperty(value = "报警编号") @ApiModelProperty(value = "传感器名称")
private String alarmNo; private String sensorName;
@ApiModelProperty(value = "报警来源")
private String alarmSource;
@ApiModelProperty(value = "传感器编码")
private String sensorCode;
@ApiModelProperty(value = "消防区域ID")
private Long fireRegionId;
@ApiModelProperty(value = "负责部门ID")
private Long departmentId;
@ApiModelProperty(value = "处置人ID")
private Long disposeUserId;
@ApiModelProperty(value = "报警级别")
private String alarmLevel;
@ApiModelProperty(value = "报警类型")
private String alarmType;
@ApiModelProperty(value = "报警时间开始") @ApiModelProperty(value = "报警时间开始")
private String alarmTimeStart; private String alarmTimeStart;
@ApiModelProperty(value = "报警时间结束") @ApiModelProperty(value = "报警时间结束")
private String alarmTimeEnd; private String alarmTimeEnd;
}
@ApiModelProperty(value = "租户ID")
private Long tenantId;
@ApiModelProperty(value = "组织ID")
private Long orgId;
}

View File

@ -12,14 +12,14 @@ import lombok.Data;
@Data @Data
public class AlarmRecordPageQry extends PageQuery { public class AlarmRecordPageQry extends PageQuery {
@ApiModelProperty(value = "报警编号")
private String alarmNo;
@ApiModelProperty(value = "报警来源 THRESHOLD/DCS") @ApiModelProperty(value = "报警来源 THRESHOLD/DCS")
private String alarmSource; private String alarmSource;
@ApiModelProperty(value = "传感器编码") @ApiModelProperty(value = "传感器名称")
private String sensorCode; private String sensorName;
@ApiModelProperty(value = "处置人姓名")
private String disposeUserName;
@ApiModelProperty(value = "当前状态 10待研判/20待处置/30已消警/40误报") @ApiModelProperty(value = "当前状态 10待研判/20待处置/30已消警/40误报")
private Integer status; private Integer status;
@ -29,10 +29,10 @@ public class AlarmRecordPageQry extends PageQuery {
@ApiModelProperty(value = "报警时间结束") @ApiModelProperty(value = "报警时间结束")
private String alarmTimeEnd; private String alarmTimeEnd;
@ApiModelProperty(value = "租户ID") @ApiModelProperty(value = "处置时间开始")
private Long tenantId; private String disposeTimeStart;
@ApiModelProperty(value = "组织ID") @ApiModelProperty(value = "处置时间结束")
private Long orgId; private String disposeTimeEnd;
} }

View File

@ -38,10 +38,4 @@ public class AppAlarmDisposePageQry extends PageQuery {
@ApiModelProperty(value = "当前用户ID手机端自动填充") @ApiModelProperty(value = "当前用户ID手机端自动填充")
private Long currentUserId; private Long currentUserId;
}
@ApiModelProperty(value = "租户ID")
private Long tenantId;
@ApiModelProperty(value = "组织ID")
private Long orgId;
}

View File

@ -12,21 +12,9 @@ import lombok.Data;
@Data @Data
public class DeviceRegionPageQry extends PageQuery { public class DeviceRegionPageQry extends PageQuery {
@ApiModelProperty(value = "消防区域编码") @ApiModelProperty(value = "消防区域ID")
private String fireRegionCode; private Long fireRegionId;
@ApiModelProperty(value = "负责部门ID") @ApiModelProperty(value = "负责部门ID")
private Long departmentId; private Long departmentId;
}
@ApiModelProperty(value = "负责人ID")
private Long managerId;
@ApiModelProperty(value = "状态 1启用0停用")
private Integer status;
@ApiModelProperty(value = "租户ID")
private Long tenantId;
@ApiModelProperty(value = "组织ID")
private Long orgId;
}

View File

@ -32,6 +32,12 @@ public class SensorDeviceAddCmd extends Command {
@ApiModelProperty(value = "安装位置", name = "installPosition") @ApiModelProperty(value = "安装位置", name = "installPosition")
private String installPosition; private String installPosition;
@ApiModelProperty(value = "经度", name = "longitude")
private String longitude;
@ApiModelProperty(value = "纬度", name = "latitude")
private String latitude;
@ApiModelProperty(value = "传感器状态", name = "sensorStatus") @ApiModelProperty(value = "传感器状态", name = "sensorStatus")
private String sensorStatus; private String sensorStatus;
@ -77,4 +83,4 @@ public class SensorDeviceAddCmd extends Command {
@ApiModelProperty(value = "备注", name = "remarks") @ApiModelProperty(value = "备注", name = "remarks")
private String remarks; private String remarks;
} }

View File

@ -12,33 +12,15 @@ import lombok.Data;
@Data @Data
public class SensorDevicePageQry extends PageQuery { public class SensorDevicePageQry extends PageQuery {
@ApiModelProperty(value = "传感器编码")
private String sensorCode;
@ApiModelProperty(value = "传感器名称") @ApiModelProperty(value = "传感器名称")
private String sensorName; private String sensorName;
@ApiModelProperty(value = "传感器类型ID") @ApiModelProperty(value = "传感器类型ID")
private Long sensorTypeId; private Long sensorTypeId;
@ApiModelProperty(value = "传感器属性(NUMBER/SWITCH)")
private String sensorAttr;
@ApiModelProperty(value = "传感器状态") @ApiModelProperty(value = "传感器状态")
private String sensorStatus; private String sensorStatus;
@ApiModelProperty(value = "报警开关(1开0关)")
private Integer alarmSwitch;
@ApiModelProperty(value = "是否阈值设定(0否1是)") @ApiModelProperty(value = "是否阈值设定(0否1是)")
private Integer thresholdFlag; private Integer thresholdFlag;
}
@ApiModelProperty(value = "安装位置")
private String installPosition;
@ApiModelProperty(value = "租户ID")
private Long tenantId;
@ApiModelProperty(value = "组织ID")
private Long orgId;
}

View File

@ -35,6 +35,12 @@ public class SensorDeviceUpdateCmd extends Command {
@ApiModelProperty(value = "安装位置", name = "installPosition") @ApiModelProperty(value = "安装位置", name = "installPosition")
private String installPosition; private String installPosition;
@ApiModelProperty(value = "经度", name = "longitude")
private String longitude;
@ApiModelProperty(value = "纬度", name = "latitude")
private String latitude;
@ApiModelProperty(value = "传感器状态", name = "sensorStatus") @ApiModelProperty(value = "传感器状态", name = "sensorStatus")
private String sensorStatus; private String sensorStatus;
@ -68,4 +74,4 @@ public class SensorDeviceUpdateCmd extends Command {
@ApiModelProperty(value = "备注", name = "remarks") @ApiModelProperty(value = "备注", name = "remarks")
private String remarks; private String remarks;
} }

View File

@ -14,19 +14,4 @@ public class SensorTypePageQry extends PageQuery {
@ApiModelProperty(value = "类型名称") @ApiModelProperty(value = "类型名称")
private String typeName; private String typeName;
}
@ApiModelProperty(value = "类型编码")
private String typeCode;
@ApiModelProperty(value = "传感器属性(STRING/NUMBER/SWITCH)")
private String sensorAttr;
@ApiModelProperty(value = "状态(1:启用 0:停用)")
private Integer status;
@ApiModelProperty(value = "租户ID")
private Long tenantId;
@ApiModelProperty(value = "组织ID")
private Long orgId;
}

View File

@ -42,12 +42,21 @@ public class AlarmDisposeCO extends ClientObject {
@ApiModelProperty(value = "消防区域ID") @ApiModelProperty(value = "消防区域ID")
private Long fireRegionId; private Long fireRegionId;
@ApiModelProperty(value = "消防区域名称")
private String fireRegionName;
@ApiModelProperty(value = "负责部门ID") @ApiModelProperty(value = "负责部门ID")
private Long departmentId; private Long departmentId;
@ApiModelProperty(value = "负责部门名称")
private String departmentName;
@ApiModelProperty(value = "当前负责人ID") @ApiModelProperty(value = "当前负责人ID")
private Long managerId; private Long managerId;
@ApiModelProperty(value = "当前负责人姓名")
private String managerName;
@ApiModelProperty(value = "报警级别") @ApiModelProperty(value = "报警级别")
private String alarmLevel; private String alarmLevel;

View File

@ -42,12 +42,21 @@ public class AlarmRecordCO extends ClientObject {
@ApiModelProperty(value = "消防区域ID") @ApiModelProperty(value = "消防区域ID")
private Long fireRegionId; private Long fireRegionId;
@ApiModelProperty(value = "消防区域名称")
private String fireRegionName;
@ApiModelProperty(value = "负责部门ID") @ApiModelProperty(value = "负责部门ID")
private Long departmentId; private Long departmentId;
@ApiModelProperty(value = "负责部门名称")
private String departmentName;
@ApiModelProperty(value = "当前负责人ID") @ApiModelProperty(value = "当前负责人ID")
private Long managerId; private Long managerId;
@ApiModelProperty(value = "当前负责人姓名")
private String managerName;
@ApiModelProperty(value = "报警级别") @ApiModelProperty(value = "报警级别")
private String alarmLevel; private String alarmLevel;

View File

@ -1,38 +0,0 @@
package com.zcloud.dto.clientobject;
import com.alibaba.cola.dto.ClientObject;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
/**
* FireRegionCO -
* @Author wangyan
* @Date 2026-04-03 00:00:00
*/
@Data
public class FireRegionCO extends ClientObject {
@ApiModelProperty(value = "主键ID")
private Long id;
@ApiModelProperty(value = "业务ID(32位)")
private String regionConfigId;
@ApiModelProperty(value = "外部消防区域主键")
private Long fireRegionId;
@ApiModelProperty(value = "外部消防区域编码")
private String fireRegionCode;
@ApiModelProperty(value = "负责部门ID")
private Long departmentId;
@ApiModelProperty(value = "负责人ID")
private Long managerId;
@ApiModelProperty(value = "状态 1启用0停用")
private Integer status;
@ApiModelProperty(value = "备注")
private String remarks;
}

View File

@ -38,6 +38,12 @@ public class SensorDeviceCO extends ClientObject {
@ApiModelProperty(value = "安装位置") @ApiModelProperty(value = "安装位置")
private String installPosition; private String installPosition;
@ApiModelProperty(value = "经度")
private String longitude;
@ApiModelProperty(value = "纬度")
private String latitude;
@ApiModelProperty(value = "传感器状态") @ApiModelProperty(value = "传感器状态")
private String sensorStatus; private String sensorStatus;

View File

@ -3,7 +3,7 @@
<modelVersion>4.0.0</modelVersion> <modelVersion>4.0.0</modelVersion>
<parent> <parent>
<groupId>com.zcloud</groupId> <groupId>com.zcloud</groupId>
<artifactId>zcloud-gbs-iotalarm</artifactId> <artifactId>zcloud_gbs_iotalarm</artifactId>
<version>1.0-SNAPSHOT</version> <version>1.0-SNAPSHOT</version>
<relativePath>../pom.xml</relativePath> <relativePath>../pom.xml</relativePath>
</parent> </parent>

View File

@ -43,5 +43,5 @@ public interface DeviceRegionGateway {
/** /**
* *
*/ */
Boolean updateManager(Long id, Long managerId, String managerName, Long departmentId); Boolean updateManager(Long id, Long managerId, Long departmentId);
} }

View File

@ -28,4 +28,9 @@ public interface SensorTypeGateway {
* ID * ID
*/ */
SensorTypeE getById(Long id); SensorTypeE getById(Long id);
}
/**
*
*/
SensorTypeE getByTypeName(String typeName);
}

View File

@ -42,6 +42,16 @@ public class SensorDeviceE extends BaseE {
* *
*/ */
private String installPosition; private String installPosition;
/**
*
*/
private String longitude;
/**
*
*/
private String latitude;
/** /**
* *
@ -132,4 +142,4 @@ public class SensorDeviceE extends BaseE {
* ID * ID
*/ */
private Long orgId; private Long orgId;
} }

View File

@ -3,7 +3,7 @@
<modelVersion>4.0.0</modelVersion> <modelVersion>4.0.0</modelVersion>
<parent> <parent>
<groupId>com.zcloud</groupId> <groupId>com.zcloud</groupId>
<artifactId>zcloud-gbs-iotalarm</artifactId> <artifactId>zcloud_gbs_iotalarm</artifactId>
<version>1.0-SNAPSHOT</version> <version>1.0-SNAPSHOT</version>
<relativePath>../pom.xml</relativePath> <relativePath>../pom.xml</relativePath>
</parent> </parent>

View File

@ -85,11 +85,10 @@ public class DeviceRegionGatewayImpl implements DeviceRegionGateway {
} }
@Override @Override
public Boolean updateManager(Long id, Long managerId, String managerName, Long departmentId) { public Boolean updateManager(Long id, Long managerId, Long departmentId) {
DeviceRegionDO d = new DeviceRegionDO(); DeviceRegionDO d = new DeviceRegionDO();
d.setId(id); d.setId(id);
d.setManagerId(managerId); d.setManagerId(managerId);
d.setManagerName(managerName);
d.setDepartmentId(departmentId); d.setDepartmentId(departmentId);
deviceRegionRepository.updateById(d); deviceRegionRepository.updateById(d);
return true; return true;

View File

@ -1,5 +1,6 @@
package com.zcloud.gatewayimpl; package com.zcloud.gatewayimpl;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.zcloud.domain.gateway.SensorTypeGateway; import com.zcloud.domain.gateway.SensorTypeGateway;
import com.zcloud.domain.model.SensorTypeE; import com.zcloud.domain.model.SensorTypeE;
import com.zcloud.persistence.dataobject.SensorTypeDO; import com.zcloud.persistence.dataobject.SensorTypeDO;
@ -50,4 +51,18 @@ public class SensorTypeGatewayImpl implements SensorTypeGateway {
BeanUtils.copyProperties(d, sensorTypeE); BeanUtils.copyProperties(d, sensorTypeE);
return sensorTypeE; return sensorTypeE;
} }
}
@Override
public SensorTypeE getByTypeName(String typeName) {
LambdaQueryWrapper<SensorTypeDO> wrapper = new LambdaQueryWrapper<>();
wrapper.eq(SensorTypeDO::getTypeName, typeName)
.eq(SensorTypeDO::getDeleteEnum, "FALSE");
SensorTypeDO d = sensorTypeRepository.getOne(wrapper);
if (d == null) {
return null;
}
SensorTypeE sensorTypeE = new SensorTypeE();
BeanUtils.copyProperties(d, sensorTypeE);
return sensorTypeE;
}
}

View File

@ -44,12 +44,24 @@ public class AlarmRecordDO extends BaseDO {
@ApiModelProperty(value = "消防区域ID") @ApiModelProperty(value = "消防区域ID")
private Long fireRegionId; private Long fireRegionId;
@TableField(exist = false)
@ApiModelProperty(value = "消防区域名称")
private String fireRegionName;
@ApiModelProperty(value = "负责部门ID") @ApiModelProperty(value = "负责部门ID")
private Long departmentId; private Long departmentId;
@TableField(exist = false)
@ApiModelProperty(value = "负责部门名称")
private String departmentName;
@ApiModelProperty(value = "当前负责人ID") @ApiModelProperty(value = "当前负责人ID")
private Long managerId; private Long managerId;
@TableField(exist = false)
@ApiModelProperty(value = "当前负责人姓名")
private String managerName;
@ApiModelProperty(value = "报警级别") @ApiModelProperty(value = "报警级别")
private String alarmLevel; private String alarmLevel;

View File

@ -24,6 +24,7 @@ public class DeviceRegionDO extends BaseDO {
@ApiModelProperty(value = "外部消防区域主键") @ApiModelProperty(value = "外部消防区域主键")
private Long fireRegionId; private Long fireRegionId;
@TableField(exist = false)
@ApiModelProperty(value = "外部消防区域名称") @ApiModelProperty(value = "外部消防区域名称")
private String fireRegionName; private String fireRegionName;
@ -40,6 +41,7 @@ public class DeviceRegionDO extends BaseDO {
@ApiModelProperty(value = "负责人ID") @ApiModelProperty(value = "负责人ID")
private Long managerId; private Long managerId;
@TableField(exist = false)
@ApiModelProperty(value = "负责人姓名") @ApiModelProperty(value = "负责人姓名")
private String managerName; private String managerName;

View File

@ -39,6 +39,12 @@ public class SensorDeviceDO extends BaseDO {
@ApiModelProperty(value = "安装位置") @ApiModelProperty(value = "安装位置")
private String installPosition; private String installPosition;
@ApiModelProperty(value = "经度")
private String longitude;
@ApiModelProperty(value = "纬度")
private String latitude;
@ApiModelProperty(value = "传感器状态") @ApiModelProperty(value = "传感器状态")
private String sensorStatus; private String sensorStatus;

View File

@ -23,4 +23,6 @@ public interface AlarmRecordMapper extends BaseMapper<AlarmRecordDO> {
IPage<AlarmRecordDO> appListPage(IPage<AlarmRecordDO> page, @Param("params") Map<String, Object> params); IPage<AlarmRecordDO> appListPage(IPage<AlarmRecordDO> page, @Param("params") Map<String, Object> params);
IPage<AlarmRecordDO> appDisposeListPage(IPage<AlarmRecordDO> page, @Param("params") Map<String, Object> params); IPage<AlarmRecordDO> appDisposeListPage(IPage<AlarmRecordDO> page, @Param("params") Map<String, Object> params);
AlarmRecordDO detailView(@Param("id") Long id);
} }

View File

@ -0,0 +1,13 @@
package com.zcloud.persistence.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.zcloud.persistence.dataobject.DepartmentDO;
import org.apache.ibatis.annotations.Mapper;
/**
* DepartmentMapper - Mapper
* @Author wangyan
* @Date 2026-04-03 00:00:00
*/
@Mapper
public interface DepartmentMapper extends BaseMapper<DepartmentDO> {}

View File

@ -0,0 +1,13 @@
package com.zcloud.persistence.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.zcloud.persistence.dataobject.UserDO;
import org.apache.ibatis.annotations.Mapper;
/**
* UserMapper - Mapper
* @Author wangyan
* @Date 2026-04-03 00:00:00
*/
@Mapper
public interface UserMapper extends BaseMapper<UserDO> {}

View File

@ -20,4 +20,6 @@ public interface AlarmRecordRepository extends BaseRepository<AlarmRecordDO> {
PageResponse<AlarmRecordDO> appListPage(Map<String, Object> params); PageResponse<AlarmRecordDO> appListPage(Map<String, Object> params);
PageResponse<AlarmRecordDO> appDisposeListPage(Map<String, Object> params); PageResponse<AlarmRecordDO> appDisposeListPage(Map<String, Object> params);
AlarmRecordDO detailView(Long id);
} }

View File

@ -0,0 +1,17 @@
package com.zcloud.persistence.repository.impl;
import com.jjb.saas.framework.repository.repo.impl.BaseRepositoryImpl;
import com.zcloud.persistence.dataobject.AlarmDisposeLogDO;
import com.zcloud.persistence.mapper.AlarmDisposeLogMapper;
import com.zcloud.persistence.repository.AlarmDisposeLogRepository;
import lombok.RequiredArgsConstructor;
import org.springframework.stereotype.Repository;
/**
* AlarmDisposeLogRepositoryImpl -
* @Author wangyan
* @Date 2026-04-03 00:00:00
*/
@Repository
@RequiredArgsConstructor
public class AlarmDisposeLogRepositoryImpl extends BaseRepositoryImpl<AlarmDisposeLogMapper, AlarmDisposeLogDO> implements AlarmDisposeLogRepository {}

View File

@ -51,4 +51,9 @@ public class AlarmRecordRepositoryImpl extends BaseRepositoryImpl<AlarmRecordMap
IPage<AlarmRecordDO> result = alarmRecordMapper.appDisposeListPage(page, params); IPage<AlarmRecordDO> result = alarmRecordMapper.appDisposeListPage(page, params);
return PageHelper.pageToResponse(result, result.getRecords()); return PageHelper.pageToResponse(result, result.getRecords());
} }
@Override
public AlarmRecordDO detailView(Long id) {
return alarmRecordMapper.detailView(id);
}
} }

View File

@ -0,0 +1,17 @@
package com.zcloud.persistence.repository.impl;
import com.jjb.saas.framework.repository.repo.impl.BaseRepositoryImpl;
import com.zcloud.persistence.dataobject.DepartmentDO;
import com.zcloud.persistence.mapper.DepartmentMapper;
import com.zcloud.persistence.repository.DepartmentRepository;
import lombok.RequiredArgsConstructor;
import org.springframework.stereotype.Repository;
/**
* DepartmentRepositoryImpl -
* @Author wangyan
* @Date 2026-04-03 00:00:00
*/
@Repository
@RequiredArgsConstructor
public class DepartmentRepositoryImpl extends BaseRepositoryImpl<DepartmentMapper, DepartmentDO> implements DepartmentRepository {}

View File

@ -0,0 +1,17 @@
package com.zcloud.persistence.repository.impl;
import com.jjb.saas.framework.repository.repo.impl.BaseRepositoryImpl;
import com.zcloud.persistence.dataobject.RegionSensorRelDO;
import com.zcloud.persistence.mapper.RegionSensorRelMapper;
import com.zcloud.persistence.repository.RegionSensorRelRepository;
import lombok.RequiredArgsConstructor;
import org.springframework.stereotype.Repository;
/**
* RegionSensorRelRepositoryImpl -
* @Author wangyan
* @Date 2026-04-03 00:00:00
*/
@Repository
@RequiredArgsConstructor
public class RegionSensorRelRepositoryImpl extends BaseRepositoryImpl<RegionSensorRelMapper, RegionSensorRelDO> implements RegionSensorRelRepository {}

View File

@ -0,0 +1,17 @@
package com.zcloud.persistence.repository.impl;
import com.jjb.saas.framework.repository.repo.impl.BaseRepositoryImpl;
import com.zcloud.persistence.dataobject.UserDO;
import com.zcloud.persistence.mapper.UserMapper;
import com.zcloud.persistence.repository.UserRepository;
import lombok.RequiredArgsConstructor;
import org.springframework.stereotype.Repository;
/**
* UserRepositoryImpl -
* @Author wangyan
* @Date 2026-04-03 00:00:00
*/
@Repository
@RequiredArgsConstructor
public class UserRepositoryImpl extends BaseRepositoryImpl<UserMapper, UserDO> implements UserRepository {}

View File

@ -6,12 +6,18 @@
<sql id="alarmRecordBaseColumns"> <sql id="alarmRecordBaseColumns">
ar.*, ar.*,
fr.fire_region_name AS fireRegionName,
dep.name AS departmentName,
mgr.name AS managerName,
sd.sensor_name AS sensorName, sd.sensor_name AS sensorName,
u.name AS disposeUserName u.name AS disposeUserName
</sql> </sql>
<sql id="alarmRecordBaseJoins"> <sql id="alarmRecordBaseJoins">
FROM iot_alarm_record ar FROM iot_alarm_record ar
LEFT JOIN `jjb-saas-zcloud-fire-check`.fire_region fr ON ar.fire_region_id = fr.id AND fr.delete_enum = 'FALSE'
LEFT JOIN department dep ON ar.department_id = dep.id AND dep.delete_enum = 'FALSE'
LEFT JOIN user mgr ON ar.manager_id = mgr.id AND mgr.delete_enum = 'FALSE'
LEFT JOIN iot_alarm_sensor_device sd ON ar.sensor_id = sd.id AND sd.delete_enum = 'FALSE' LEFT JOIN iot_alarm_sensor_device sd ON ar.sensor_id = sd.id AND sd.delete_enum = 'FALSE'
LEFT JOIN user u ON ar.dispose_user_id = u.id LEFT JOIN user u ON ar.dispose_user_id = u.id
</sql> </sql>
@ -37,6 +43,12 @@
<if test="params.sensorCode != null and params.sensorCode != ''"> <if test="params.sensorCode != null and params.sensorCode != ''">
AND ar.sensor_code LIKE CONCAT('%', #{params.sensorCode}, '%') AND ar.sensor_code LIKE CONCAT('%', #{params.sensorCode}, '%')
</if> </if>
<if test="params.sensorName != null and params.sensorName != ''">
AND sd.sensor_name LIKE CONCAT('%', #{params.sensorName}, '%')
</if>
<if test="params.disposeUserName != null and params.disposeUserName != ''">
AND u.name LIKE CONCAT('%', #{params.disposeUserName}, '%')
</if>
<if test="params.status != null"> <if test="params.status != null">
AND ar.status = #{params.status} AND ar.status = #{params.status}
</if> </if>
@ -46,8 +58,14 @@
<if test="params.alarmTimeEnd != null and params.alarmTimeEnd != ''"> <if test="params.alarmTimeEnd != null and params.alarmTimeEnd != ''">
AND ar.alarm_time <![CDATA[<=]]> #{params.alarmTimeEnd} AND ar.alarm_time <![CDATA[<=]]> #{params.alarmTimeEnd}
</if> </if>
<if test="params.disposeTimeStart != null and params.disposeTimeStart != ''">
AND ar.dispose_time <![CDATA[>=]]> #{params.disposeTimeStart}
</if>
<if test="params.disposeTimeEnd != null and params.disposeTimeEnd != ''">
AND ar.dispose_time <![CDATA[<=]]> #{params.disposeTimeEnd}
</if>
</where> </where>
ORDER BY ar.alarm_time DESC ORDER BY CASE WHEN ar.status IN (10, 20) THEN 0 ELSE 1 END, ar.alarm_time DESC
</select> </select>
<select id="disposeListPage" resultType="com.zcloud.persistence.dataobject.AlarmRecordDO"> <select id="disposeListPage" resultType="com.zcloud.persistence.dataobject.AlarmRecordDO">
@ -56,7 +74,7 @@
<include refid="alarmRecordBaseJoins"/> <include refid="alarmRecordBaseJoins"/>
<where> <where>
ar.delete_enum = 'FALSE' ar.delete_enum = 'FALSE'
AND ar.status IN (10, 20) AND ar.status = 10
AND ar.active_flag = 1 AND ar.active_flag = 1
<if test="params.tenantId != null"> <if test="params.tenantId != null">
AND ar.tenant_id = #{params.tenantId} AND ar.tenant_id = #{params.tenantId}
@ -73,6 +91,9 @@
<if test="params.sensorCode != null and params.sensorCode != ''"> <if test="params.sensorCode != null and params.sensorCode != ''">
AND ar.sensor_code LIKE CONCAT('%', #{params.sensorCode}, '%') AND ar.sensor_code LIKE CONCAT('%', #{params.sensorCode}, '%')
</if> </if>
<if test="params.sensorName != null and params.sensorName != ''">
AND sd.sensor_name LIKE CONCAT('%', #{params.sensorName}, '%')
</if>
<if test="params.fireRegionId != null"> <if test="params.fireRegionId != null">
AND ar.fire_region_id = #{params.fireRegionId} AND ar.fire_region_id = #{params.fireRegionId}
</if> </if>
@ -107,9 +128,14 @@
<if test="params.currentUserId != null"> <if test="params.currentUserId != null">
AND ar.dispose_user_id = #{params.currentUserId} AND ar.dispose_user_id = #{params.currentUserId}
</if> </if>
<if test="params.status != null"> <choose>
AND ar.status = #{params.status} <when test="params.status != null">
</if> AND ar.status = #{params.status}
</when>
<otherwise>
AND ar.status IN (30, 40)
</otherwise>
</choose>
<if test="params.alarmTimeStart != null and params.alarmTimeStart != ''"> <if test="params.alarmTimeStart != null and params.alarmTimeStart != ''">
AND ar.alarm_time <![CDATA[>=]]> #{params.alarmTimeStart} AND ar.alarm_time <![CDATA[>=]]> #{params.alarmTimeStart}
</if> </if>
@ -164,4 +190,14 @@
</where> </where>
ORDER BY ar.alarm_time DESC ORDER BY ar.alarm_time DESC
</select> </select>
<select id="detailView" resultType="com.zcloud.persistence.dataobject.AlarmRecordDO">
SELECT
<include refid="alarmRecordBaseColumns"/>
<include refid="alarmRecordBaseJoins"/>
<where>
ar.id = #{id}
AND ar.delete_enum = 'FALSE'
</where>
</select>
</mapper> </mapper>

View File

@ -6,31 +6,50 @@
<select id="listPage" resultType="com.zcloud.persistence.dataobject.DeviceRegionDO"> <select id="listPage" resultType="com.zcloud.persistence.dataobject.DeviceRegionDO">
SELECT SELECT
rc.*, rc.id,
rc.region_config_id AS regionConfigId,
fr.id AS fireRegionId,
fr.fire_region_name AS fireRegionName,
fr.fire_region_code AS fireRegionCode,
fr.department_id AS departmentId,
d.name AS departmentName, d.name AS departmentName,
COALESCE(u.name, rc.manager_name) AS managerName, rc.manager_id AS managerId,
( u.name AS managerName,
SELECT COUNT(1) rc.status,
FROM iot_alarm_region_sensor_rel rel rc.remarks,
WHERE rel.region_config_id = rc.id rc.create_id AS createId,
AND rel.delete_enum = 'FALSE' rc.create_name AS createName,
) AS bindSensorCount rc.create_time AS createTime,
FROM iot_alarm_region_config rc rc.update_id AS updateId,
LEFT JOIN department d ON rc.department_id = d.id rc.update_name AS updateName,
LEFT JOIN user u ON rc.manager_id = u.id rc.update_time AS updateTime,
rc.tenant_id AS tenantId,
rc.org_id AS orgId,
IFNULL(bindRel.bindSensorCount, 0) AS bindSensorCount
FROM `jjb-saas-zcloud-fire-check`.fire_region fr
LEFT JOIN iot_alarm_region_config rc ON rc.fire_region_id = fr.id AND rc.delete_enum = 'FALSE'
LEFT JOIN department d ON fr.department_id = d.id AND d.delete_enum = 'FALSE'
LEFT JOIN user u ON rc.manager_id = u.id AND u.delete_enum = 'FALSE'
LEFT JOIN (
SELECT fire_region_id, COUNT(1) AS bindSensorCount
FROM iot_alarm_region_sensor_rel
WHERE delete_enum = 'FALSE'
GROUP BY fire_region_id
) bindRel ON bindRel.fire_region_id = fr.id
<where> <where>
rc.delete_enum = 'FALSE' fr.delete_enum = 'FALSE'
AND fr.state = 0
<if test="params.tenantId != null"> <if test="params.tenantId != null">
AND rc.tenant_id = #{params.tenantId} AND fr.corpinfo_id = #{params.tenantId}
</if>
<if test="params.orgId != null">
AND rc.org_id = #{params.orgId}
</if> </if>
<if test="params.fireRegionCode != null and params.fireRegionCode != ''"> <if test="params.fireRegionCode != null and params.fireRegionCode != ''">
AND rc.fire_region_code LIKE CONCAT('%', #{params.fireRegionCode}, '%') AND fr.fire_region_code LIKE CONCAT('%', #{params.fireRegionCode}, '%')
</if>
<if test="params.fireRegionId != null">
AND fr.id = #{params.fireRegionId}
</if> </if>
<if test="params.departmentId != null"> <if test="params.departmentId != null">
AND rc.department_id = #{params.departmentId} AND fr.department_id = #{params.departmentId}
</if> </if>
<if test="params.managerId != null"> <if test="params.managerId != null">
AND rc.manager_id = #{params.managerId} AND rc.manager_id = #{params.managerId}
@ -39,6 +58,6 @@
AND rc.status = #{params.status} AND rc.status = #{params.status}
</if> </if>
</where> </where>
ORDER BY rc.create_time DESC ORDER BY fr.create_time DESC
</select> </select>
</mapper> </mapper>

View File

@ -15,34 +15,19 @@
<if test="params.tenantId != null"> <if test="params.tenantId != null">
AND sd.tenant_id = #{params.tenantId} AND sd.tenant_id = #{params.tenantId}
</if> </if>
<if test="params.orgId != null">
AND sd.org_id = #{params.orgId}
</if>
<if test="params.sensorCode != null and params.sensorCode != ''">
AND sd.sensor_code LIKE CONCAT('%', #{params.sensorCode}, '%')
</if>
<if test="params.sensorName != null and params.sensorName != ''"> <if test="params.sensorName != null and params.sensorName != ''">
AND sd.sensor_name LIKE CONCAT('%', #{params.sensorName}, '%') AND sd.sensor_name LIKE CONCAT('%', #{params.sensorName}, '%')
</if> </if>
<if test="params.sensorTypeId != null"> <if test="params.sensorTypeId != null">
AND sd.sensor_type_id = #{params.sensorTypeId} AND sd.sensor_type_id = #{params.sensorTypeId}
</if> </if>
<if test="params.sensorAttr != null and params.sensorAttr != ''">
AND sd.sensor_attr = #{params.sensorAttr}
</if>
<if test="params.sensorStatus != null and params.sensorStatus != ''"> <if test="params.sensorStatus != null and params.sensorStatus != ''">
AND sd.sensor_status = #{params.sensorStatus} AND sd.sensor_status = #{params.sensorStatus}
</if> </if>
<if test="params.alarmSwitch != null">
AND sd.alarm_switch = #{params.alarmSwitch}
</if>
<if test="params.thresholdFlag != null"> <if test="params.thresholdFlag != null">
AND sd.threshold_flag = #{params.thresholdFlag} AND sd.threshold_flag = #{params.thresholdFlag}
</if> </if>
<if test="params.installPosition != null and params.installPosition != ''">
AND sd.install_position LIKE CONCAT('%', #{params.installPosition}, '%')
</if>
</where> </where>
ORDER BY sd.create_time DESC ORDER BY CASE WHEN sd.sensor_status = 'NORMAL' AND sd.alarm_switch = 1 THEN 0 ELSE 1 END, sd.create_time DESC
</select> </select>
</mapper> </mapper>

View File

@ -13,21 +13,9 @@
<if test="params.tenantId != null"> <if test="params.tenantId != null">
AND st.tenant_id = #{params.tenantId} AND st.tenant_id = #{params.tenantId}
</if> </if>
<if test="params.orgId != null">
AND st.org_id = #{params.orgId}
</if>
<if test="params.typeCode != null and params.typeCode != ''">
AND st.type_code LIKE CONCAT('%', #{params.typeCode}, '%')
</if>
<if test="params.typeName != null and params.typeName != ''"> <if test="params.typeName != null and params.typeName != ''">
AND st.type_name LIKE CONCAT('%', #{params.typeName}, '%') AND st.type_name LIKE CONCAT('%', #{params.typeName}, '%')
</if> </if>
<if test="params.sensorAttr != null and params.sensorAttr != ''">
AND st.sensor_attr = #{params.sensorAttr}
</if>
<if test="params.status != null">
AND st.status = #{params.status}
</if>
</where> </where>
ORDER BY st.create_time DESC ORDER BY st.create_time DESC
</select> </select>