Commit b268bb53 authored by bijingchen's avatar bijingchen

库房后端接口

parent 5927f61c
# Compiled class file
*.class
# Log file
*.log
# BlueJ files
*.ctxt
# Mobile Tools for Java (J2ME)
.mtj.tmp/
# Package Files #
*.jar
*.war
*.ear
*.zip
*.tar.gz
*.rar
# virtual machine crash logs, see http://www.java.com/en/download/help/error_hotspot.xml
hs_err_pid*
.jsdtscope
/target/
.project
.classpath
.settings
.vscode
.idea
/bin/
This diff is collapsed.
This source diff could not be displayed because it is too large. You can view the blob instead.
#!/bin/bash
function checkLinux {
rpm --version
java -version 2>&1 | sed '1!d'
mysqlFile="/home/archser/soft/mysql-8.0.24-1.el7.x86_64.rpm-bundle.tar"
nginxFile="/home/archser/soft/nginx-1.14.2.tar.gz"
samsUi="/home/archser/sams/dist.zip"
sams="/home/archser/sams/sams-release.zip"
if [ -f "$mysqlFile" ]; then
echo -e "MySQL安装包: \033[32m 存在\033[0m"
else
echo -e "MySQL安装包: \033[31m 不存在\033[0m"
fi
if [ -f "$nginxFile" ]; then
echo -e "Nginx安装包: \033[32m 存在\033[0m"
else
echo -e "Nginx安装包: \033[31m 不存在\033[0m"
fi
if [ -f "$sams" ]; then
echo -e "后端代码: \033[32m 存在\033[0m"
else
echo -e "后端代码: \033[31m 不存在\033[0m"
fi
if [ -f "$samsUi" ]; then
echo -e "前端代码: \033[32m 存在\033[0m"
else
echo -e "前端代码: \033[31m 不存在\033[0m"
fi
echo
}
function check { #1
#环境检查,硬盘空间,Nginx,Mysql,MariaDB安装情况
echo
case "$OSTYPE" in
darwin*) echo -e "嘿,小伙,macOS的脚本还没有哦!" ;;
linux*)
checkLinux
;;
msys*) echo -e "嘿,小伙,Windows不是这么装的呦!" ;;
bsd*) echo -e "哦呦,BSD,该脚本可能不适用,请谨慎尝试,并对您的操作负责" ;;
solaris*) echo -e "哦呦,SOLARIS,该脚本可能不适用,请谨慎尝试,并对您的操作负责" ;;
*) echo -e "哦呦,$OSTYPE, 该脚本可能不适用,请谨慎尝试,并对您的操作负责" ;;
esac
}
function installNginx { #2
echo
cd /home/archser/soft
if [ -d "./nginx-1.14.2" ]; then
echo "删除 ./nginx-1.14.2"
rm -rf ./nginx-1.14.2
fi
if [ -d "./nginx" ]; then
echo "删除 ./nginx"
rm -rf ./nginx
fi
rpm -ivh ./pcre-8.32-17.el7.x86_64.rpm
rpm -ivh ./pcre-devel-8.32-17.el7.x86_64.rpm
rpm -ivh ./zlib-1.2.7-18.el7.x86_64.rpm
rpm -ivh ./zlib-devel-1.2.7-18.el7.x86_64.rpm
tar -xzvf ./nginx-1.14.2.tar.gz
mkdir /home/archser/soft/nginx
cd ./nginx-1.14.2
./configure --prefix=/home/archser/soft/nginx
make install
mv -f /home/archser/soft/nginx/conf/nginx.conf /home/archser/soft/nginx/conf/nginx.conf.default
cp /home/archser/soft/nginx.conf /home/archser/soft/nginx/conf/nginx.conf
}
function configNginx { #3
echo
echo -e "export NGINX_HOME=/home/archser/soft/nginx" >> /etc/profile
echo -e "export PATH=\$PATH:\$NGINX_HOME/bin:\$NGINX_HOME/sbin" >> /etc/profile
systemctl stop firewalld.service;
systemctl disable firewalld.service;
systemctl mask firewalld.service;
source /etc/profile
nginx
ps -ef|grep nginx
echo -e "\033[31m 配置成功后切勿重复执行\033[0m"
}
function installMysql { #4
echo
cd /home/archser/soft/
read -r -p "安装MySQL将会删除MariaDB和历史版本MySQL,确定继续?[Y/n]" input
case $input in
[yY][eE][sS]|[yY])
systemctl stop mysqld
#删除mariadb
mar=`rpm -qa|grep mariadb`
rpm -e --nodeps $mar
#删除mysql
mys=`rpm -qa|grep mysql-community`
rpm -e --nodeps $mys
if [ -d "/var/lib/mysql" ]; then
echo "删除 /var/lib/mysql"
rm -rf /var/lib/mysql
fi
if [ -d "/usr/lib64/mysql" ]; then
echo "删除 /usr/lib64/mysql"
rm -rf /usr/lib64/mysql
fi
if [ -f "/var/log/mysqld.log" ]; then
echo "删除 /var/log/mysqld.log"
rm -rf /var/log/mysqld.log
fi
if [ -f "/etc/my.cnf" ]; then
echo "删除 /etc/my.cnf"
rm -rf /etc/my.cnf
fi
yum install -y net-tools
rpm -ivh ./openssl-libs-1.0.2k-19.el7.x86_64.rpm --force
#rpm -ivh ./openssl-devel-1.0.2k-19.el7.x86_64.rpm --force
tar -xvf ./mysql-8.0.24-1.el7.x86_64.rpm-bundle.tar
rpm -ivh ./mysql-community-common-8.0.24-1.el7.x86_64.rpm
rpm -ivh ./mysql-community-client-plugins-8.0.24-1.el7.x86_64.rpm
rpm -ivh ./mysql-community-libs-8.0.24-1.el7.x86_64.rpm
rpm -ivh ./mysql-community-client-8.0.24-1.el7.x86_64.rpm
rpm -ivh ./mysql-community-server-8.0.24-1.el7.x86_64.rpm
;;
[nN][oO]|[nN])
echo -e "\n\n已取消MySQL安装。"
;;
*)
echo -e "错误指令" ;;
esac
}
function configMysql { #5
echo
groupadd mysql
useradd -r -g mysql mysql
chmod -R 777 /var/lib/mysql
chown -R mysql:mysql /var/lib/mysql
mysqld --initialize --user=mysql --lower_case_table_names=1
sleep 3
echo "" >> /etc/my.cnf
echo "lower_case_table_names=1" >> /etc/my.cnf
echo "skip-name-resolve" >> /etc/my.cnf
echo "sql_mode=STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_ENGINE_SUBSTITUTION" >> /etc/my.cnf
sleep 2
systemctl start mysqld
systemctl status mysqld
mysqlpassstr=`grep 'temporary password' /var/log/mysqld.log | grep 'root@localhost: '`
mysqlpass=${mysqlpassstr#*localhost: }
echo $mysqlpass
sleep 2
mysql -uroot -p$mysqlpass --connect-expired-password <<EOF
ALTER USER 'root'@'localhost' IDENTIFIED BY 'huayi123';
CREATE USER 'huayi'@'%' IDENTIFIED WITH mysql_native_password BY 'huayi123';
ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'huayi123';
grant all privileges on *.* to 'huayi'@'%' with grant option;
FLUSH PRIVILEGES;
EXIT
EOF
}
function importBaseData { #6
echo
mysql -uroot -phuayi123 --connect-expired-password <<EOF
DROP DATABASE IF EXISTS smart_library;
CREATE DATABASE smart_library DEFAULT CHARSET utf8 COLLATE utf8_general_ci;
EOF
mysql -uroot -phuayi123 --default-character-set=utf8mb4 smart_library < /home/archser/soft/smart_library_base.sql
echo
echo -e "数据库导入完成"
}
function importBaseDataKingbase() { #A
echo
echo
echo
echo -e "由于真实项目中金仓数据库极有可能与其他系统共用,"
echo "请根据《部署指南》中6.1章节手动安装、配置"
}
function importBaseDataDM() { #B
echo
echo
echo
echo -e "由于真实项目中达梦数据库极有可能与其他系统共用,"
echo "请根据《部署指南》中6.2章节手动安装、配置"
}
function codeAndStartup { #Z
echo
cd /home/archser/sams
if [ -d "/home/archser/sams/sams" ]; then
echo "删除 /home/archser/sams/sams"
/home/archser/sams/sams/stop.sh
rm -rf /home/archser/sams/sams
fi
if [ -d "/home/archser/sams/dist" ]; then
echo "删除 /home/archser/sams/dist"
rm -rf /home/archser/sams/dist
fi
unzip sams-release.zip
unzip dist.zip
chmod -R 775 sams
chmod -R 755 dist
cd sams
if [ -f "/etc/init.d/sams.sh" ]; then
echo "删除 /etc/init.d/sams.sh"
rm -rf /etc/init.d/sams.sh
fi
cp ./sams.sh /etc/init.d/
chkconfig --add sams.sh
echo -e "\n\n\033[31m系统已启动,当前配置为mysql数据库,默认数据库密码,请按需修改,\n修改位置: /home/archser/sams/sams/config/config.properties \n修改后通过restart.sh重启后台服务,并通过监测sams.sh判断服务是否正常,\n重启后请注意设备连接状态是否正常\033[0m"
}
function menu {
clear
echo
echo -e "\t\t 智能库房安装菜单\n"
echo -e "\t\t\033[31m公用服务器请谨慎操作!!!\033[0m"
echo -e "\t1. 环境及文件检查"
echo -e "\t2. 安装Nginx"
echo -e "\t3. 配置Nginx"
echo
echo -e "\t4. 安装MySQL"
echo -e "\t5. 配置MySQL"
echo -e "\t6. MySQL基础数据导入"
echo
echo -e "\tA. 金仓数据库导入"
echo -e "\tB. 达梦数据库导入"
echo
echo -e "\tZ. 部署代码并自启动"
echo -e "\t0. 退出\n\n"
echo -en "Enter option:"
#read 命令读取用户输入
read -n 1 option
}
while [ 1 ]
do
menu
case $option in
0)
break ;;
1)
check ;;
2)
installNginx ;;
3)
configNginx ;;
4)
installMysql ;;
5)
configMysql ;;
6)
importBaseData ;;
a)
importBaseDataKingbase;;
A)
importBaseDataKingbase;;
b)
importBaseDataDM;;
B)
importBaseDataDM;;
z)
codeAndStartup ;;
Z)
codeAndStartup ;;
8)
kingbase ;;
9)
dm ;;
*)
clear
echo -en "\n\t 请输入菜单序号";;
esac
echo -en "\n\n\t 任意键返回菜单"
read -n 1 line
done
clear
This source diff could not be displayed because it is too large. You can view the blob instead.
--
-- 脚本建库、模式、用户
--
create
user smart_library connection limit-1 password 'smart_library2022';
grant "pg_monitor" to smart_library with admin option;
grant "pg_read_all_settings" to smart_library with admin option;
grant "pg_read_all_stats" to smart_library with admin option;
grant "pg_stat_scan_tables" to smart_library with admin option;
grant "pg_read_server_files" to smart_library with admin option;
grant "pg_write_server_files" to smart_library with admin option;
grant "pg_execute_server_program" to smart_library with admin option;
alter user smart_library LOGIN;
CREATE DATABASE smart_library with owner='smart_library' ENCODING UTF8;
\c smart_library;
<assembly xmlns="http://maven.apache.org/ASSEMBLY/2.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/ASSEMBLY/2.0.0 http://maven.apache.org/xsd/assembly-2.0.0.xsd">
<!--
assembly 打包配置更多配置可参考官司方文档:
http://maven.apache.org/plugins/maven-assembly-plugin/assembly.html
-->
<id>release</id>
<!--
设置打包格式,可同时设置多种格式,常用格式有:dir、zip、tar、tar.gz
dir 格式便于在本地测试打包结果
zip 格式便于 windows 系统下解压运行
tar、tar.gz 格式便于 linux 系统下解压运行
-->
<formats>
<format>dir</format>
<format>zip</format>
</formats>
<!-- 打 zip 设置为 true 时,会在 zip 包中生成一个根目录,打 dir 时设置为 false 少层目录 -->
<includeBaseDirectory>true</includeBaseDirectory>
<fileSets>
<!-- src/main/resources 全部 copy 到 config 目录下 -->
<fileSet>
<directory>${basedir}/src/main/resources</directory>
<outputDirectory>config</outputDirectory>
</fileSet>
<!-- src/main/webapp 全部 copy 到 webapp 目录下 -->
<fileSet>
<directory>${basedir}/src/main/webapp</directory>
<outputDirectory>webapp</outputDirectory>
<excludes>
<exclude>WEB-INF</exclude>
<exclude>WEB-INF/web.xml</exclude>
</excludes>
</fileSet>
<!-- 项目根下面的脚本文件 copy 到根目录下 -->
<fileSet>
<directory>${basedir}</directory>
<outputDirectory></outputDirectory>
<!-- 脚本文件在 linux 下的权限设为 755,无需 chmod 可直接运行 -->
<fileMode>755</fileMode>
<includes>
<include>*.sh</include>
<include>*.bat</include>
</includes>
</fileSet>
</fileSets>
<!-- 依赖的 jar 包 copy 到 lib 目录下 -->
<dependencySets>
<dependencySet>
<outputDirectory>lib</outputDirectory>
</dependencySet>
</dependencySets>
</assembly>
\ No newline at end of file
This diff is collapsed.
#!/bin/bash
# ---------------------------------------------------------------------------
#
# 使用说明:
#
# 1: 本脚本仅仅通过调用 stop.sh 与 start.sh 实现重启
#
# 2:要特别注意 stop.sh 脚本中有关 MAIN_CLASS 配置的注意事项,
# 只有先确保 stop.sh 可以正常工作时才能使用该脚本
#
# ---------------------------------------------------------------------------
# 得到基础路径
APP_BASE_PATH=$(cd `dirname $0`; pwd)
${APP_BASE_PATH}/stop.sh && ${APP_BASE_PATH}/start.sh
This diff is collapsed.
#!/bin/bash
#chkconfig: 2345 19 8
#description: smart library services
systemctl start mysqld;
echo -e "\033[31m 请等待30s 出现 “nohup: 重定向标准错误到标准输出”后回车 \033[0m";
sleep 30s;
cd /home/archser/sams/sams;
./start.sh;
/home/archser/soft/nginx/sbin/nginx;
This diff is collapsed.
/*
TO 运维:
请事先备份数据库,选定与系统版本对应的数据库(如果版本跳跃请由低到高依次执行),然后通过命令行或数据库工具更新本sql,注意修改数据库(smart_library)
TO 开发:
sql语句第一行已经选择数据库,为了便于运维人员修改数据库名称,请不要在sql语句中添加数据库名,行尾记得添加分号
每个版本,最后一行要修改数据库版本,与文件名对应
*/
-- [mysql]
use smart_library;
CREATE TABLE `SL_EQUIPMENT_STATUS_LOG` (
`ID` int NOT NULL AUTO_INCREMENT,
`EQUIPMENT_ID` int NULL DEFAULT NULL COMMENT '设备ID外键',
`TIME` datetime NULL DEFAULT NULL COMMENT '日期时间格式',
`WEEK` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '周',
`STATUS` tinyint NULL DEFAULT NULL COMMENT '1正常,0异常',
PRIMARY KEY (`ID`) USING BTREE,
INDEX `STATUS_LOG_E_EM_ID`(`EQUIPMENT_ID`) USING BTREE,
CONSTRAINT `sl_equipment_status_log_ibfk_1` FOREIGN KEY (`EQUIPMENT_ID`) REFERENCES `SL_EQUIPMENT` (`ID`) ON DELETE RESTRICT ON UPDATE RESTRICT
) ENGINE = InnoDB CHARACTER SET = utf8 COLLATE = utf8_general_ci ROW_FORMAT = Dynamic;
ALTER TABLE SL_SETTING ADD COUNT_MAX_UNIT varchar(2) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT '盒' COMMENT '大屏全馆可容量单位';
ALTER TABLE SL_SETTING ADD COUNT_TOTAL_UNIT varchar(2) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT '件' COMMENT '大屏全馆现存量单位';
-- 添加鑫泰格设备
INSERT INTO SL_EQUIPMENT_MODEL (CATEGORY_ID,MODEL,COMMUNICATION,PROTOCOLS,OUTPUT_TYPE,UPDATE_TIME_INTERVAL) VALUES
(1,'消防(XTG)','RS-485','MOD BUS','mb-status',2),
(2,'漏水(XTG)','RS-485','MOD BUS','mb-status',2),
(5,'空气质量(XTG)','RS-485','MOD BUS','mb-status',30),
(5,'温湿度(XTG)','RS-485','MOD BUS','mb-status',30),
(7,'恒湿机(XTG)','RS-485','MOD BUS','mb-status',30);
ALTER TABLE SL_MODBUS_CODE MODIFY COLUMN DATA_FORMAT varchar(600) CHARACTER SET utf8 COLLATE utf8_general_ci NULL COMMENT '返回数据格式(0x01,0x03,tempH,tempL,humH,humL,pm25H,pm10H,COH,COL,CO2H,CO2L,CRCL,CRCH)或 B|||||||| xxxx0代表0为正常,xxxx1代表1为正常';
INSERT INTO SL_MODBUS_CODE (EQUIPMENT_MODEL_ID,CODE_TYPE,MODBUS_CODE,WITH_CRC,DATA_FORMAT,SET_MODE,SET_NUM,CODE_BEFORE_ID,CODE_AFTER_ID) VALUES
(15,1,'03 00 00 00 01',1,'addr,0x03,0xxx,smokeH,smokeL,CRCL,CRCH',NULL,NULL,NULL,NULL),
(16,1,'03 00 00 00 01',1,'addr,0x03,0xxx,leakH,leakL,CRCL,CRCH',NULL,NULL,NULL,NULL),
(17,1,'03 00 00 00 07',1,'addr,0x03,0xxx,co2H,co2L,tvocH/10,tvocL/10,ch2oH/10,ch2oL/10,pm25d5H,pm2d5L,humiH/10,humiL/10,tempH/10,tempL/10,pm10H,pm10L,CRCL,CRCH',NULL,NULL,NULL,NULL),
(18,1,'04 00 00 00 02',1,'addr,0x04,0xxx,humiH/10,humiL/10,tempH/10,tempL/10,CRCL,CRCH',NULL,NULL,NULL,NULL),
(19,1,'03 00 02 00 25',1,'addr,0x03,0xxx,0xxx,0xxx,0xxx,0xxx,tempH/100,tempL/100,0xxx,0xxx,humiH/100,humiL/100,0xxx,0xxx,0xxx,0xxx,0xxx,0xxx,0xxx,0xxx,0xxx,0xxx,0xxx,0xxx,0xxx,0xxx,0xxx,0xxx,0xxx,0xxx,0xxx,0xxx,0xxx,0xxx,0xxx,0xxx,0xxx,0xxx,0xxx,0xxx,0xxx,0xxx,0xxx,0xxx,0xxx,0xxx,0xxx,0xxx,0xxx,0xxx,0xxx,0xxx,0xxx,0xxx,0xxx,0xxx,0xxx,0xxx,0xxx,0xxx,0xxx,0xxx,0xxx,0xxx,0xxx,0xxx,0xxx,0xxx,0xxx,0xxx,0xxx,0xxx,B||kuorongxiashuiwei0|||||xiaodu0|fengji0,B|||||||,B|yasuojigaowen0|||loushui0|shangshuiwei0|xiashuiwei0|,B|kuorongshuixiangman0||||||,CRCL,CRCH',NULL,NULL,NULL,NULL);
INSERT INTO SL_MODBUS_CODE (EQUIPMENT_MODEL_ID,CODE_TYPE,MODBUS_CODE,WITH_CRC,DATA_FORMAT,SET_MODE,SET_NUM,CODE_BEFORE_ID,CODE_AFTER_ID) VALUES
(19,2,'06 00 1A 00 10',1,NULL,'开机',NULL,NULL,NULL),
(19,2,'06 00 1A 00 00',1,NULL,'关机',NULL,NULL,NULL),
(19,2,'06 00 1A 00 11',1,NULL,'恒湿','45%',NULL,NULL);
INSERT INTO SL_EQUIPMENT_MODEL (`ID`, `CATEGORY_ID`, `MODEL`, `COMMUNICATION`, `PROTOCOLS`, `OUTPUT_TYPE`, `UPDATE_TIME_INTERVAL`) VALUES (20, 3, '链接跳转', 'net', NULL, '', 0);
CREATE TABLE `SL_SYSTEMS` (
`ID` int NOT NULL AUTO_INCREMENT COMMENT '主键',
`NAME` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL COMMENT '菜单名称',
`URL` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '跳转地址',
PRIMARY KEY (`ID`) USING BTREE
) ENGINE = InnoDB CHARACTER SET = utf8 COLLATE = utf8_general_ci ROW_FORMAT = Dynamic;
ALTER TABLE SL_SETTING ADD DASHBOARD_SHOW_SCORE INT DEFAULT 0 NOT NULL COMMENT '大屏显示评分球';
ALTER TABLE SL_SETTING CHANGE DASHBOARD_SHOW_SCORE DASHBOARD_SHOW_SCORE INT DEFAULT 0 NOT NULL COMMENT '大屏显示评分球' AFTER DASHBOARD_FONT_SIZE;
INSERT INTO `smart_library`.`sl_equipment_model` (`ID`, `CATEGORY_ID`, `MODEL`, `COMMUNICATION`, `PROTOCOLS`, `OUTPUT_TYPE`, `UPDATE_TIME_INTERVAL`) VALUES
(21, 18, '知行物联RFID-2', 'net', NULL, ' ', 30);
--金仓
--DM
-- ALL 留在最后一行
UPDATE SL_SETTING SET DATABASE_VERSION = 2.2
\ No newline at end of file
This diff is collapsed.
/*
TO 运维:
请事先备份数据库,选定与系统版本对应的数据库(如果版本跳跃请由低到高依次执行),然后通过命令行或数据库工具更新本sql,注意修改数据库(smart_library)
TO 开发:
sql语句第一行已经选择数据库,为了便于运维人员修改数据库名称,请不要在sql语句中添加数据库名,行尾记得添加分号
每个版本,最后一行要修改数据库版本,与文件名对应
*/
-- [mysql]
use smart_library;
ALTER TABLE smart_library.sl_3d_library DROP FOREIGN KEY sl_3d_library_ibfk_1_copy;
DROP TABLE IF EXISTS `sl_archives_category_total`;
CREATE TABLE `sl_archives_category_total` (
`ID` int NOT NULL AUTO_INCREMENT COMMENT '主键',
`LIBRARY` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL DEFAULT 'all' COMMENT '库房名称',
`CATEGORY` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL COMMENT '种类',
`TOTAL` int NOT NULL DEFAULT 0 COMMENT '总数',
`IN_LIBRARY` int NOT NULL DEFAULT 0 COMMENT '在库数量',
PRIMARY KEY (`ID`, `CATEGORY`) USING BTREE,
INDEX `CATEGORY`(`CATEGORY`) USING BTREE,
INDEX `LIB_ID`(`LIBRARY`) USING BTREE
) ENGINE = InnoDB CHARACTER SET = utf8 COLLATE = utf8_general_ci ROW_FORMAT = Dynamic;
DROP TABLE IF EXISTS `sl_archives_category_add_num_per_month`;
CREATE TABLE `sl_archives_category_add_num_per_month` (
`ID` int NOT NULL AUTO_INCREMENT COMMENT '主键',
`LIBRARY` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL DEFAULT 'all' COMMENT '库房名称',
`CATEGORY` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL COMMENT '种类',
`NUM` int NOT NULL DEFAULT 0 COMMENT '数量',
`T_YEAR` int NOT NULL COMMENT '年度',
`T_CUSTOM` int NOT NULL COMMENT '月度/季度',
`T_CUSTOM_NAME` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL DEFAULT '月' COMMENT '季/月,名称',
PRIMARY KEY (`ID`) USING BTREE,
INDEX `CATEGORY`(`CATEGORY`, `T_YEAR`, `T_CUSTOM`) USING BTREE
) ENGINE = InnoDB CHARACTER SET = utf8 COLLATE = utf8_general_ci ROW_FORMAT = Dynamic;
DROP TABLE IF EXISTS `sl_archives_use_times_per_month`;
CREATE TABLE `sl_archives_use_times_per_month` (
`ID` int NOT NULL AUTO_INCREMENT COMMENT '主键',
`LIBRARY` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL DEFAULT 'all' COMMENT '库房名称',
`USE` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL COMMENT '利用',
`TIMES` int NOT NULL DEFAULT 0 COMMENT '次数',
`T_YEAR` int NOT NULL COMMENT '年度',
`T_CUSTOM` int NOT NULL COMMENT '月度/季度',
`T_CUSTOM_NAME` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL DEFAULT '月' COMMENT '季/月,名称',
PRIMARY KEY (`ID`, `USE`) USING BTREE,
INDEX `USE`(`USE`) USING BTREE,
INDEX `LIB_ID`(`LIBRARY`) USING BTREE
) ENGINE = InnoDB CHARACTER SET = utf8 COLLATE = utf8_general_ci ROW_FORMAT = Dynamic;
INSERT INTO sl_equipment_model (CATEGORY_ID,MODEL,COMMUNICATION,PROTOCOLS,OUTPUT_TYPE,UPDATE_TIME_INTERVAL) VALUES
(15,'北泰TLU6800系列','net',NULL,'',0);
CREATE TABLE `SL_STRATEGY` (
`ID` int NOT NULL AUTO_INCREMENT,
`NAME` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '名称',
`LIBRARY_ID` int NULL DEFAULT NULL COMMENT '范围',
`CATEGORY_ID` int NULL DEFAULT NULL COMMENT '设备类型',
`EQUIPMENT_MODEL_ID` int NULL DEFAULT NULL COMMENT '设备型号',
`CONDITION_SYMBOL` int NULL DEFAULT NULL COMMENT '条件(<,=,>)',
`CONDITION_NAME` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '条件键',
`CONDITION_VALUE` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '条件值',
`TRIGGER_CATEGORY_ID` int NULL DEFAULT NULL COMMENT '联动设备类型',
`TRIGGER_EQUIPMENT_MODEL_ID` int NULL DEFAULT NULL COMMENT '联动设备型号',
`OPERATION_MODE1` int NULL DEFAULT NULL COMMENT '指令1',
`OPERATION_MODE2` int NULL DEFAULT NULL COMMENT '指令2',
`REMARKS` text CHARACTER SET utf8 COLLATE utf8_general_ci NULL COMMENT '备注',
PRIMARY KEY (`ID`) USING BTREE
) ENGINE = InnoDB AUTO_INCREMENT = 3 CHARACTER SET = utf8 COLLATE = utf8_general_ci ROW_FORMAT = Dynamic;
--金仓
ALTER TABLE
"smart_library_base"."sl_3d_library" DROP
CONSTRAINT "sl_3d_library_sl_3d_library_ibfk_1_copy";
INSERT INTO sl_equipment_model (CATEGORY_ID,MODEL,COMMUNICATION,PROTOCOLS,OUTPUT_TYPE,UPDATE_TIME_INTERVAL) VALUES
(15,'北泰TLU6800系列','net',NULL,'',0);
--DM
ALTER TABLE
"smart_library_base"."sl_3d_library" DROP
CONSTRAINT "sl_3d_library_sl_3d_library_ibfk_1_copy";
INSERT INTO sl_equipment_model (CATEGORY_ID,MODEL,COMMUNICATION,PROTOCOLS,OUTPUT_TYPE,UPDATE_TIME_INTERVAL) VALUES
(15,'北泰TLU6800系列','net',NULL,'',0);
-- ALL 留在最后一行
UPDATE SL_SETTING SET DATABASE_VERSION = 3.0
\ No newline at end of file
package com.archser.sams.bean;
import java.time.LocalDate;
public class SerialNumberBean {
/**
* 机器码(唯一值)
*/
private String uniqueCode;
/**
* 序列号
*/
private String serialNumber;
/**
* 过期时间
*/
private LocalDate localDate;
/**
* 过期日期
*/
private String expireDate;
/**
* 是否永久有效
*/
private boolean permanent = false;
/**
* 还有多少天过期
*/
private Integer outDayNumber = 0;
/**
* 产品ID
*/
private int projectId;
/**
* 机构名称
*/
private String organName;
/**
* 检查结果
*/
private boolean checkState = false;
/**
* 监测异常原因
*/
private String msg;
@Override
public String toString() {
return "SerialNumberBean{" +
"uniqueCode='" + uniqueCode + '\'' +
", serialNumber='" + serialNumber + '\'' +
", localDate=" + localDate +
", expireDate=" + expireDate +
", permanent=" + permanent +
", outDayNumber=" + outDayNumber +
", projectId=" + projectId +
", organName='" + organName + '\'' +
", checkState=" + checkState +
", msg='" + msg + '\'' +
'}';
}
public boolean isPermanent() {
return permanent;
}
public void setPermanent(boolean permanent) {
this.permanent = permanent;
}
public String getMsg() {
return msg;
}
public void setMsg(String msg) {
this.msg = msg;
}
public String getSerialNumber() {
return serialNumber;
}
public void setSerialNumber(String serialNumber) {
this.serialNumber = serialNumber;
}
public boolean isCheckState() {
return checkState;
}
public void setCheckState(boolean checkState) {
this.checkState = checkState;
}
public Integer getOutDayNumber() {
return outDayNumber;
}
public void setOutDayNumber(Integer outDayNumber) {
this.outDayNumber = outDayNumber;
}
public String getUniqueCode() {
return uniqueCode;
}
public void setUniqueCode(String uniqueCode) {
this.uniqueCode = uniqueCode;
}
public LocalDate getLocalDate() {
return localDate;
}
public void setLocalDate(LocalDate localDate) {
this.localDate = localDate;
}
public String getExpireDate() {
return expireDate;
}
public void setExpireDate(String expireDate) {
this.expireDate = expireDate;
}
public int getProjectId() {
return projectId;
}
public void setProjectId(int projectId) {
this.projectId = projectId;
}
public String getOrganName() {
return organName;
}
public void setOrganName(String organName) {
this.organName = organName;
}
}
package com.archser.sams.common.config;
import java.util.Calendar;
import java.util.TimeZone;
import com.archser.sams.controller.*;
import com.archser.sams.interceptor.JwtInterceptor;
import com.archser.sams.model._MappingKit;
import com.archser.sams.service.EquipmentService;
import com.archser.sams.tcpsocket.TcpServer;
import com.archser.sams.util.ScheduledTaskExample;
import com.archser.sams.websocket.MessageWebSocket;
import com.jfinal.config.Constants;
import com.jfinal.config.Handlers;
import com.jfinal.config.Interceptors;
import com.jfinal.config.JFinalConfig;
import com.jfinal.config.Plugins;
import com.jfinal.config.Routes;
import com.jfinal.ext.handler.UrlSkipHandler;
import com.jfinal.json.MixedJsonFactory;
import com.jfinal.kit.Prop;
import com.jfinal.kit.PropKit;
import com.jfinal.plugin.activerecord.ActiveRecordPlugin;
import com.jfinal.plugin.activerecord.CaseInsensitiveContainerFactory;
import com.jfinal.plugin.activerecord.dialect.DialectFactory;
import com.jfinal.plugin.cron4j.Cron4jPlugin;
import com.jfinal.plugin.druid.DruidPlugin;
import com.jfinal.render.ViewType;
import com.jfinal.server.undertow.UndertowServer;
import com.jfinal.server.undertow.WebBuilder;
import com.jfinal.template.Engine;
public class MainConfig extends JFinalConfig {
/**
* 将全局配置提出来 方便其他地方重用
*/
private static Prop p;
ServerController serverController = new ServerController();
/**
* 配置JFinal常量
*/
@Override
public void configConstant(Constants me) {
// 读取数据库配置文件
loadConfig();
// 设置当前是否为开发模式
me.setDevMode(p.getBoolean("devMode"));
// 设置默认上传文件保存路径 getFile等使用
// me.setBaseUploadPath(p.get("uploadFile"));
// 设置上传最大限制尺寸(300M)
me.setMaxPostSize(1024 * 1024 * 300);
// 设置默认下载文件路径 renderFile使用
me.setBaseDownloadPath("files");
// 设置默认视图类型
me.setViewType(ViewType.JFINAL_TEMPLATE);
// 设置404渲染视图
// me.setError404View("404.html");
// 设置json工厂
me.setJsonFactory(MixedJsonFactory.me());
// 设置启用依赖注入
me.setInjectDependency(true);
// 4.6 之前的版本的配置方式: me.setProxyFactory(new CglibProxyFactory());
me.setToCglibProxyFactory(); // 4.6 版本新增配置方式
// 设置时区
TimeZone tz = TimeZone.getTimeZone("Etc/GMT-8");
TimeZone.setDefault(tz);
}
/**
* 配置项目路由 路由拆分到 FrontRutes 与 AdminRoutes 之中配置的好处: 1:可分别配置不同的 baseViewPath 与 Interceptor
* 2:避免多人协同开发时,频繁修改此文件带来的版本冲突 3:避免本文件中内容过多,拆分后可读性增强 4:便于分模块管理路由
*/
@Override
public void configRoute(Routes me) {
// 普通不拆分的方式配置 如下
// 设置默认访问首页路由 可使用http://localhost:port 直接访问 如果80端口 port可以省略
me.add("/", IndexController.class);
me.add("/user", UserController.class);
me.add("/library", LibraryController.class);
me.add("/log", LogController.class);
me.add("/orgin", OrginController.class);
me.add("/alert", AlertController.class);
me.add("/setting", SettingController.class);
me.add("/dashboard", DashboardController.class);
me.add("/environment", EnvironmentController.class);
me.add("/vr", VrController.class);
me.add("/role", RoleController.class);
me.add("/center", CenterController.class);
me.add("/equipment", EquipmentController.class);
me.add("/surveillance", SurveillanceController.class);
me.add("/sn", SnController.class);
me.add("/api", ApiController.class);
me.add("/serialNumber", SerialNumberController.class);
me.add("/systems", SystemsController.class);
me.add("/strategy", StrategyController.class);
}
// 先加载开发环境配置,再追加生产环境的少量配置覆盖掉开发环境配置
static void loadConfig() {
if (p == null) {
p = PropKit.use("config.properties");
}
}
/**
* 获取数据库插件 抽取成独立的方法,便于重用该方法,减少代码冗余
*/
public static DruidPlugin getDruidPlugin() {
loadConfig();
return new DruidPlugin(p.get("jdbcUrl"), p.get("user"), p.get("password"),
p.get("jdbc.driver"));
}
/**
* 配置JFinal插件 数据库连接池 ActiveRecordPlugin 缓存 定时任务 自定义插件
*/
@Override
public void configPlugin(Plugins me) {
loadConfig();
// 配置数据库连接池插件
DruidPlugin dbPlugin = getDruidPlugin();
// 数据映射 配置ActiveRecord插件
ActiveRecordPlugin arp = new ActiveRecordPlugin(dbPlugin);
arp.setShowSql(p.getBoolean("devMode"));
arp.setContainerFactory(new CaseInsensitiveContainerFactory(true));
arp.setDialect(DialectFactory.getDialect());
arp.addSqlTemplate("sql/mysql.sql");
arp.addSqlTemplate("sql/library.sql");
arp.addSqlTemplate("sql/message.sql");
arp.addSqlTemplate("sql/log.sql");
arp.addSqlTemplate("sql/user.sql");
arp.addSqlTemplate("sql/orgin.sql");
arp.addSqlTemplate("sql/environmentLog.sql");
arp.addSqlTemplate("sql/alert.sql");
arp.addSqlTemplate("sql/equipment.sql");
arp.addSqlTemplate("sql/environment.sql");
arp.addSqlTemplate("sql/3dmodel.sql");
arp.addSqlTemplate("sql/role.sql");
arp.addSqlTemplate("sql/camera.sql");
arp.addSqlTemplate("sql/api.sql");
arp.addSqlTemplate("sql/systems.sql");
arp.addSqlTemplate("sql/strategy.sql");
/******** 在此添加数据库 表-Model 映射 *********/
// 如果使用了JFinal Model 生成器 生成了BaseModel 把下面注释解开即可
_MappingKit.mapping(arp);
me.add(new Cron4jPlugin(PropKit.append("task.properties")));
// 添加到插件列表中
me.add(dbPlugin);
me.add(arp);
// 添加Redis 配置
// RedisPlugin redis =
// new RedisPlugin("redis", PropKit.get("redis.url"), PropKit.get("redis.password"));
// me.add(redis);
}
/**
* 配置全局拦截器
*/
@Override
public void configInterceptor(Interceptors me) {
me.add(new JwtInterceptor());
}
/**
* 配置全局处理器
*/
@Override
public void configHandler(Handlers me) {
// 说明:druid的统计页面涉及安全性 需要自行处理根据登录权限判断是否能访问统计页面
// me.add(DruidKit.getDruidStatViewHandler()); // druid 统计页面功能
me.add(new UrlSkipHandler("^/services/.+", false));
me.add(new UrlSkipHandler("/*\\.ws/", false));
}
/**
* 项目启动后调用
*/
@Override
public void onStart() {
// CronUtil.init();
// PropUtil.changeBackUpPath();
// 恢复设备运行状态
EquipmentService.returnAllEquipmentsRunStatus();
// 标记所有设备离线
EquipmentService.updateAllEquipmentDisonline();
// 启动TCP socket server 线程
TcpServer tcpServer = new TcpServer();
tcpServer.start();
// 时间相关警情管理,24H温湿度变化过大,120分钟数据无变化等
serverController.transactionalServer();
System.setProperty("sun.net.client.defaultConnectTimeout", "1000");
System.setProperty("sun.net.client.defaultReadTimeout", "1000");
// 更新摄像头在线状态
serverController.onlineServerForCamera();
// 更新门禁记录
serverController.onlineServerForDoor();
// 更新鑫泰格温湿度设备记录
// serverController.onlineServerForXTGTemHum();
// 更新鑫泰格温湿度设备记录
// serverController.onlineServerForXTGTemHum();
// 定时记录设备运行状态
String[] sArray = p.get("equipement_status_capture_time").split(":");
Calendar calendarArea = Calendar.getInstance();
Integer hourOfDay = Integer.valueOf(sArray[0]);
Integer minute = Integer.valueOf(sArray[1]);
calendarArea.set(calendarArea.get(Calendar.YEAR), calendarArea.get(Calendar.MONTH), calendarArea.get(Calendar.DAY_OF_MONTH), hourOfDay, minute, 0);
serverController.equipmentState(calendarArea.getTime());
// 更新大屏库房数据
serverController.onlineServerForRFID();
// ModbusCodeLogService modbusCodeLogService = new ModbusCodeLogService();
// modbusCodeLogService.save("",1);
// serverController.DemoDataServer();
new ScheduledTaskExample().run();
}
/**
* 配置模板引擎
*/
@Override
public void configEngine(Engine me) {
// 配置模板支持热加载
me.setDevMode(p.getBoolean("engineDevMode", false));
}
public static void main(String[] args) {
UndertowServer.create(MainConfig.class, "undertow.properties").configWeb(builder -> {
addWebSocket(builder);
}).start();
// UndertowServer.create(MainConfig.class, "undertow.properties").start();
}
/**
* 添加websocket
*
* @param builder
*/
public static void addWebSocket(WebBuilder builder) {
loadConfig();
if (p.getBoolean("openMessageWebSocket") != null && p.getBoolean("openMessageWebSocket")) {
addMessageWebSocket(builder);
}
}
/**
* 添加消息中心的websocket
*
* @param builder
*/
public static void addMessageWebSocket(WebBuilder builder) {
builder.addWebSocketEndpoint(MessageWebSocket.class);
}
}
package com.archser.sams.controller;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import com.archser.sams.bean.SerialNumberBean;
import com.archser.sams.model.SlAlertType;
import com.archser.sams.model.SlUser;
import com.archser.sams.service.AlertService;
import com.archser.sams.service.SerialNumberService;
import com.archser.sams.service.SettingService;
import com.archser.sams.service.UserService;
import com.jfinal.aop.Inject;
import com.jfinal.core.Controller;
import com.jfinal.kit.Kv;
import com.jfinal.kit.Ret;
import com.jfinal.plugin.activerecord.Record;
import com.jfinal.upload.UploadFile;
public class AlertController extends Controller {
@Inject
AlertService alertService;
@Inject
UserService userService;
@Inject
SettingService settingService;
@Inject
SerialNumberService serialNumberService;
/**
* @author xiaoying 2020-11-26
* @Description: 获取警情配置
*/
public void getAlertConfigs() {
List<SlAlertType> alertTypes = alertService.getAlertTypes();
List<SlUser> users = userService.getUsers();
List<Integer> noteUsers = new ArrayList<Integer>();
Record settingRecord = settingService.getSetting();
for (int i = 0; i < users.size(); i++) {
if (users.get(i).getReceiveAlert() == 1) {
noteUsers.add(users.get(i).getID());
}
}
if (noteUsers.size() < 5) {
int noteUsersCount = 5 - noteUsers.size();
for (int i = 0; i < noteUsersCount; i++) {
noteUsers.add(null);
}
}
Map<String, Integer> level = new HashMap<String, Integer>();
for (SlAlertType alertType : alertTypes) {
level.put(alertType.getNAME(), alertType.getLEVEL());
}
Record setting = settingService.getSetting();
Kv notificationStatus = new Kv();
notificationStatus.set("phone", false);
notificationStatus.set("message", false);
Kv notificationStyle = new Kv();
notificationStyle.set("phone", setting.getInt("phone_switch") == 0 ? false : true);
notificationStyle.set("message", setting.getInt("message_switch") == 0 ? false : true);
renderJson(
Ret.ok("level", level).set("userList", users).set("notificationStatus", notificationStatus)
.set("notificationStyle", notificationStyle).set("noteUsers", noteUsers)
.set("relieveDelay", setting.getInt("relieve_delay")).set("oneKeyDone",setting.getInt("one_key_done")));
}
/**
* @Description: 保存警情管理配置
* @author xiaoying 2020-11-26
*/
public void saveAlertConfigs() {
UploadFile file = getFile("file");
String fire = this.getPara("fire");
String water = this.getPara("water");
String safe = this.getPara("safe");
String temperature = this.getPara("temperature");
String humidity = this.getPara("humidity");
String pm = this.getPara("pm");
Boolean phone = this.getBoolean("phone");
Boolean message = this.getBoolean("message");
String noteUserIds = this.getPara("noteUserIds");
Integer relieveDelay = this.getParaToInt("relieveDelay");
Boolean oneKeyDone = this.getBoolean("oneKeyDone");
boolean success = alertService.saveAlertConfigs(file, fire, water, safe, temperature, humidity,
pm, phone, message, noteUserIds, relieveDelay, oneKeyDone);
if (success) {
this.renderJson(Ret.ok());
} else {
this.renderJson(Ret.fail("msg", "保存失败"));
}
}
public void saveEmergency() {
UploadFile file = getFile("file");
boolean settingStaus = alertService.saveEmergency(file);
if (settingStaus) {
this.renderJson(Ret.ok());
} else {
this.renderJson(Ret.fail("msg", "保存失败"));
}
}
/**
* @Description: 获取公告内容
* @author chenyanshui 2021-02-26
*/
public void getAlertNotes() {
List<Record> alertNotes = alertService.getAlertNotes();
Record customNote = settingService.getSetting();
SerialNumberBean serialNumberBean = null;
try {
serialNumberService.setSerialNumberBean(new SerialNumberBean());
serialNumberBean = serialNumberService.checkSerialNumber();
} catch (Exception e) {
// e.printStackTrace();
}
this.renderJson(Ret.ok("alertNotes", alertNotes).set("customNote", customNote)
.set("serialNumberBean", serialNumberBean));
}
}
package com.archser.sams.controller;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject;
import com.archser.sams.interceptor.JwtInterceptor;
import com.archser.sams.model.SlArchivesCategoryAddNumPerMonth;
import com.archser.sams.model.SlArchivesCategoryTotal;
import com.archser.sams.model.SlArchivesUseTimesPerMonth;
import com.archser.sams.service.ApiService;
import com.jfinal.aop.Clear;
import com.jfinal.aop.Inject;
import com.jfinal.core.Controller;
import com.jfinal.kit.HttpKit;
import com.jfinal.kit.Kv;
import com.jfinal.kit.Ret;
import com.jfinal.plugin.activerecord.Record;
import com.jfinal.upload.UploadFile;
import com.sun.jna.Function;
public class ApiController extends Controller {
@Inject
private ApiService apiService;
// RFID 测试API
@Clear(JwtInterceptor.class)
public void RFIDFindLibraryStuctInfo() {
String jsonText = "{\n" +
"\"Ret\": 1,\n" +
"\"Msg\": \"获取成功\",\n" +
"\"Data\": [\n" +
"{\n" +
"\"kuNo\": \"302\",\n" +
"\"ArchivesNum\": 36406\n" +
"},\n" +
"{\n" +
"\"kuNo\": \"303\",\n" +
"\"ArchivesNum\": 3789\n" +
"}\n" +
"],\n" +
"\"Row\": 2\n" +
"}\n";
renderJson(jsonText);
}
/**
* @author 少君 2022-2-23
* @Description: 分类在库情况、分类结构均由当前接口提供数据。档案计数单位(件/盒)由现场运维人员沟通配置
*/
@Clear
public void archives_categories() {
String jsonStr = HttpKit.readData(getRequest());
JSONArray jsonArray = JSONObject.parseArray(jsonStr);
int size = jsonArray.size();
for (int i = 0; i < size; i++) {
JSONObject jsonObject = jsonArray.getJSONObject(i);
SlArchivesCategoryTotal slArchivesCategoryTotal = new SlArchivesCategoryTotal();
slArchivesCategoryTotal.setLibrary(jsonObject.getString("library"));
slArchivesCategoryTotal.setCategory(jsonObject.getString("category"));
slArchivesCategoryTotal.setTotal(jsonObject.getInteger("total"));
slArchivesCategoryTotal.setInLibrary(jsonObject.getInteger("in_library"));
apiService.archivesCategories(slArchivesCategoryTotal);
}
this.renderJson(Ret.ok());
}
/**
* @author 少君 2022-2-23
* @Description: 档案新增趋势由当前接口提供数据,可配置按月或按季度统计,档案计数单位(件/盒)由现场运维人员沟通配置。
*/
@Clear
public void archives_uses() {
String jsonStr = HttpKit.readData(getRequest());
JSONArray jsonArray = JSONObject.parseArray(jsonStr);
int size = jsonArray.size();
for (int i = 0; i < size; i++) {
JSONObject jsonObject = jsonArray.getJSONObject(i);
SlArchivesUseTimesPerMonth slArchivesUseTimesPerMonth = new SlArchivesUseTimesPerMonth();
slArchivesUseTimesPerMonth.setLibrary(jsonObject.getString("library"));
slArchivesUseTimesPerMonth.setUse(jsonObject.getString("use"));
slArchivesUseTimesPerMonth.setTimes(jsonObject.getInteger("times"));
slArchivesUseTimesPerMonth.setTYear(jsonObject.getInteger("t_year"));
slArchivesUseTimesPerMonth.setTCustom(jsonObject.getInteger("t_custom"));
slArchivesUseTimesPerMonth.setTCustomName(jsonObject.getString("t_custom_name"));
apiService.archivesUses(slArchivesUseTimesPerMonth);
}
this.renderJson(Ret.ok());
}
/**
* @author 少君 2022-2-23
* @Description: 分类在库情况、分类结构均由当前接口提供数据。档案计数单位(件/盒)由现场运维人员沟通配置
*/
@Clear
public void archives_adds() {
String jsonStr = HttpKit.readData(getRequest());
JSONArray jsonArray = JSONObject.parseArray(jsonStr);
int size = jsonArray.size();
for (int i = 0; i < size; i++) {
JSONObject jsonObject = jsonArray.getJSONObject(i);
SlArchivesCategoryAddNumPerMonth slArchivesUseTimesPerMonth = new SlArchivesCategoryAddNumPerMonth();
slArchivesUseTimesPerMonth.setLibrary(jsonObject.getString("library"));
slArchivesUseTimesPerMonth.setCategory(jsonObject.getString("category"));
slArchivesUseTimesPerMonth.setNum(jsonObject.getInteger("num"));
slArchivesUseTimesPerMonth.setTYear(jsonObject.getInteger("t_year"));
slArchivesUseTimesPerMonth.setTCustom(jsonObject.getInteger("t_custom"));
slArchivesUseTimesPerMonth.setTCustomName(jsonObject.getString("t_custom_name"));
apiService.archivesAdds(slArchivesUseTimesPerMonth);
}
this.renderJson(Ret.ok());
}
}
\ No newline at end of file
package com.archser.sams.controller;
import java.io.File;
import java.util.*;
import com.alibaba.fastjson.JSONArray;
import com.archser.sams.model.SlAlertLog;
import com.archser.sams.model.SlAlertRelativeFailure;
import com.archser.sams.model.SlEquipment;
import com.archser.sams.model.SlLibrary;
import com.archser.sams.model.SlOrgin;
import com.archser.sams.service.CenterService;
import com.archser.sams.service.EquipmentService;
import com.archser.sams.service.SettingService;
import com.jfinal.aop.Clear;
import com.jfinal.aop.Inject;
import com.jfinal.core.Controller;
import com.jfinal.kit.Kv;
import com.jfinal.kit.PathKit;
import com.jfinal.kit.Ret;
import com.jfinal.kit.StrKit;
import com.jfinal.plugin.activerecord.Db;
import com.jfinal.plugin.activerecord.Record;
import com.jfinal.plugin.activerecord.SqlPara;
import org.apache.commons.lang.StringUtils;
import org.checkerframework.checker.units.qual.A;
public class CenterController extends Controller {
@Inject
CenterService centerService;
@Inject
EquipmentService equipmentService;
@Inject
SettingService settingService;
/**
* @Description: 警情中心获取警情日志
* @author xiaoying 2020-12-29
*/
public void getAlertList() {
String alertType = this.getPara("alertType");
String selectedLibrary = this.getPara("library");
String[] strLidArr = selectedLibrary.split(",");
List<Record> dataList = new ArrayList<Record>();
if (StrKit.isBlank(selectedLibrary)) {
this.renderJson(Ret.ok("data", dataList));
return;
}
SqlPara sqlPara = Db.getSqlPara("alert.getAlertListByLibIdAndAlertType",
Kv.by("selectedLibrary", strLidArr).set("alertType", alertType));
dataList = Db.find(sqlPara);
this.renderJson(Ret.ok("data", dataList));
}
/**
* @Description: 根据id获取警情信息
* @author xiaoying 2020-12-29
*/
public void getLogAlertById() {
Integer logAlertId = this.getParaToInt("logAlertId");
SlAlertLog alertLog = SlAlertLog.dao.findById(logAlertId);
List<SlAlertRelativeFailure> alertRelativeFailures =
SlAlertRelativeFailure.dao.find(Db.getSqlPara(
"alert.getAlertRelativeFailureListByLogAlertId", Kv.by("logAlertId", logAlertId)));
List<Record> records = new ArrayList<Record>();
if (alertRelativeFailures != null) {
for (int i = 0; i < alertRelativeFailures.size(); i++) {
Record record = new Record();
Integer alertId = alertRelativeFailures.get(i).getAlertId();
Integer equipmentId = alertRelativeFailures.get(i).getEquipmentId();
if (!StrKit.isBlank(alertId.toString()) && equipmentId != null) {
record.set("key", equipmentId);
record.set("othername", "");
} else {
record.set("key", 0);
record.set("othername", alertRelativeFailures.get(i).getOTHER());
}
records.add(record);
}
if (alertRelativeFailures.size() <= 2) {
for (int i = 0; i < 3 - alertRelativeFailures.size(); i++) {
Record record = new Record();
record.set("key", null);
record.set("othername", "");
records.add(record);
}
}
alertLog.put("relativeFailure", records);
} else {
for (int i = 0; i < 3; i++) {
Record record = new Record();
record.set("key", null);
record.set("othername", "");
records.add(record);
}
}
this.renderJson(Ret.ok("data", alertLog));
}
/**
* @Description: 保存处警信息
* @author xiaoying 2020-12-30
*/
public void saveAlertInfo() {
Integer logAlertId = this.getParaToInt("logAlertId");
Integer processState = this.getParaToInt("processState");
String situation = this.getPara("situation", null);
String status = this.getPara("status", null);
String comments = this.getPara("comments", null);
JSONArray relativeFailureJson = JSONArray.parseArray(this.getPara("relativeFailure"));
if (logAlertId == null) {
this.renderJson(Ret.fail("msg", "警情记录id不存在"));
return;
}
boolean state = centerService.saveAlertInfo(logAlertId, processState, situation, status,
comments, relativeFailureJson);
if (state) {
this.renderJson(Ret.ok("msg", "保存成功"));
} else {
this.renderJson(Ret.fail("msg", "保存失败"));
}
}
/**
* @Description: 获取设备列表
* @author xiaoying 2020-12-30
*/
public void getEquipmentList() {
List<SlEquipment> equipmentList = equipmentService.getEquipmentList();
List<Record> lists = new ArrayList<Record>();
Record record = new Record();
record.set("key", 0);
record.set("value", "其他");
lists.add(record);
for (SlEquipment equipment : equipmentList) {
Record records = new Record();
records.set("key", equipment.getID());
records.set("value", equipment.getNAME());
lists.add(records);
}
this.renderJson(Ret.ok("data", lists));
}
/**
* @Description: 获取监控中心档案库房信息
* @author xiaoying 2020-12-30
*/
public void getLibraryStatus() {
Integer id = this.getParaToInt("library", null);
if (id == null) {
this.renderJson(Ret.ok("data", ""));
return;
}
SlLibrary slLibrary = SlLibrary.dao.findById(id);
String layout = slLibrary.getLAYOUT();
if (StrKit.notBlank(layout)) {
File file = new File(PathKit.getWebRootPath() + System.getProperty("file.separator") + "files"
+ System.getProperty("file.separator") + "layout" + System.getProperty("file.separator")
+ layout);
if (file.exists()) {
String layoutImg = settingService.ImageToBase64(PathKit.getWebRootPath()
+ System.getProperty("file.separator") + "files" + System.getProperty("file.separator")
+ "layout" + System.getProperty("file.separator") + layout);
slLibrary.put("layoutimg", "data:image/png;base64," + layoutImg);
} else {
slLibrary.put("layoutimg", null);
}
}
Record evn = Db.findFirst(
Db.getSqlPara("environmentLog.getTempAndHumidityAndPm25ByLibId", Kv.by("libId", id)));
SlOrgin orgin = SlOrgin.dao.findById(slLibrary.getOrginId());
Map<String, Object> map = new HashMap<String, Object>();
map.put("evn", evn);
map.put("library", slLibrary);
map.put("institutions", orgin);
this.renderJson(Ret.ok("data", map));
}
/**
* @Description: 修改警情状态
* @author xiaoying 2021-01-26
*/
public void updateStatus() {
Integer alertLogId = this.getParaToInt("id");
boolean success = centerService.updateStatus(alertLogId);
if (success) {
this.renderJson(Ret.ok());
} else {
this.renderJson(Ret.fail("msg", "接警失败"));
}
}
}
package com.archser.sams.controller;
import java.util.Date;
import java.util.List;
import com.archser.sams.bean.SerialNumberBean;
import com.archser.sams.interceptor.JwtInterceptor;
import com.archser.sams.model.SlLibrary;
import com.archser.sams.service.EquipmentService;
import com.archser.sams.service.LibraryService;
import com.archser.sams.service.SerialNumberService;
import com.archser.sams.util.KeysUtil;
import com.jfinal.aop.Inject;
import com.jfinal.core.Controller;
import com.jfinal.kit.Ret;
import io.jsonwebtoken.JwsHeader;
import io.jsonwebtoken.Jwts;
import io.jsonwebtoken.SignatureAlgorithm;
public class DashboardController extends Controller {
private static int EXPIRATION = 3600 * 24 * 60 * 60 * 1000;
@Inject
EquipmentService equipmentService;
@Inject
LibraryService libraryService;
@Inject
SerialNumberService serialNumberService;
/**
* 根据机构id获取档案分类库
*/
// @Clear(JwtInterceptor.class)
public void getEquipmentStatus() {
try {
Integer libId = this.getParaToInt("libId");
renderJson(Ret.ok("equipmentStatus", equipmentService.getEquipmentsStatusByLidId(libId)));
} catch (Exception e) {
e.printStackTrace();
renderJson(Ret.fail("msg", "获取设备状态出错,请刷新后重试!"));
}
}
/**
* @Description: 获取档案库房列表
* @author xiaoying 2021-01-04
*/
public void getLibraryListByOrginId() {
try {
String username = this.getAttr("username");
List<SlLibrary> libraries = libraryService.getLibraryListByUsername(username);
this.renderJson(Ret.ok("libraries", libraries));
} catch (Exception e) {
renderJson(Ret.fail("msg", "获取档案库房列表失败,请刷新后重试!"));
}
}
/**
* 通过路径获取图片
*/
public void getImg() {
String file = getPara("file");
renderFile(file);
}
/**
* @Description: 获取最新Token
* @author Jun 2021-06-07
*/
public void getLatestToken() {
String username = getAttrForStr("username");
String jws = Jwts.builder()
// 设置密匙ID
.setHeaderParam(JwsHeader.KEY_ID, IndexController.SYSTEM_KEYID)
// 赋予应用
.setSubject("sams")
// 签发时间
.setIssuedAt(new Date())
// 超期时间
.setExpiration(new Date(java.lang.System.currentTimeMillis() + EXPIRATION))
// 用户名
.claim("name", username).claim("ip", JwtInterceptor.getIpAddr(getRequest()))
// 签名
.signWith(KeysUtil.privatekey(IndexController.SYSTEM_PRIVATEKEY), SignatureAlgorithm.RS256).compact();
SerialNumberBean serialNumberBean = null;
try {
serialNumberService.setSerialNumberBean(new SerialNumberBean());
serialNumberBean = serialNumberService.checkSerialNumber();
} catch (Exception e) {
// e.printStackTrace();
}
this.renderJson(Ret.ok("token", jws).set("serialNumberBean", serialNumberBean));
}
}
package com.archser.sams.controller;
import com.archser.sams.model.SlEnvironmentThreshold;
import com.archser.sams.service.EnvironmentService;
import com.jfinal.aop.Inject;
import com.jfinal.core.Controller;
import com.jfinal.kit.Ret;
import com.jfinal.kit.StrKit;
import com.jfinal.plugin.activerecord.Page;
public class EnvironmentController extends Controller {
@Inject
EnvironmentService environmentService;
/**
* @Description: 根据档案库获取阈值管理数据
* @author xiaoying 2020-12-04
*/
public void getEnvironmentData() {
try {
int libId = this.getParaToInt("lib_id");
SlEnvironmentThreshold environment = environmentService.getEnvironmentDataByLibId(libId);
this.renderJson(Ret.ok("environment", environment));
} catch (Exception e) {
this.renderJson(Ret.fail("msg", "获取数据出错"));
}
}
/**
* @Description: 保存阈值管理
* @param:libId 档案库id
* @author xiaoying 2020-12-04
*/
@SuppressWarnings("unused")
public void saveEnvironment() {
try {
String name = this.getPara("name");
Integer tempLo = this.getParaToInt("temp_lo", null);
Integer tempHi = this.getParaToInt("temp_hi", null);
Integer tempRecover = this.getParaToInt("temp_recover", 0);
Integer temp24hFloat = this.getParaToInt("temp_24h_float", null);
Integer tempMaxNoWaveDuration = this.getParaToInt("temp_max_no_wave_duration", 0);
Integer tempSet = this.getParaToInt("temp_set", null);
Integer humidityLo = this.getParaToInt("humidity_lo", null);
Integer humidityHi = this.getParaToInt("humidity_hi", null);
Integer humidityRecover = this.getParaToInt("humidity_recover", 0);
Integer humidity24hFloat = this.getParaToInt("humidity_24h_float", null);
Integer humidityMaxNoWaveDuration = this.getParaToInt("humidity_max_no_wave_duration", 0);
Integer humiditySet = this.getParaToInt("humidity_set", null);
Integer pm25Hi = this.getParaToInt("pm25_hi", null);
Integer pm25Recover = this.getParaToInt("pm25_recover", null);
Integer pm10Hi = this.getParaToInt("pm10_hi", null);
Integer pm10Recover = this.getParaToInt("pm10_recover", null);
if (StrKit.isBlank(name)) {
this.renderJson(Ret.fail("msg", "名称不能为空"));
return;
}
String id = this.getPara("id");
SlEnvironmentThreshold environment = new SlEnvironmentThreshold();
environment.setNAME(name);
environment.setTempLo(tempLo);
environment.setTempHi(tempHi);
environment.setTempRecover(tempRecover);
environment.setTemp24hFloat(temp24hFloat);
environment.setTempMaxNoWaveDuration(tempMaxNoWaveDuration);
environment.setTempSet(tempSet);
environment.setHumidityLo(humidityLo);
environment.setHumidityHi(humidityHi);
environment.setHumidityRecover(humidityRecover);
environment.setHumidity24hFloat(humidity24hFloat);
environment.setHumidityMaxNoWaveDuration(humidityMaxNoWaveDuration);
environment.setHumiditySet(humiditySet);
environment.setPm25Hi(pm25Hi);
environment.setPm25Recover(pm25Recover);
environment.setPm10Hi(pm10Hi);
environment.setPm10Recover(pm10Recover);
if (id != null && !"".equals(id) && !"null".equals(id)) {
environment.setID(Integer.valueOf(id));
}
if (environment == null) {
renderJson(Ret.fail("msg", "阈值管理数据为空,保存失败!"));
}
boolean success = environmentService.saveEnvironment(environment);
if (success) {
renderJson(Ret.ok("msg", "保存成功"));
} else {
renderJson(Ret.fail("msg", "保存失败"));
}
} catch (Exception e) {
renderJson(Ret.fail("msg", "保存出错"));
}
}
/**
* @Description: 获取阈值管理列表
* @author xiaoying 2021-02-02
*/
public void getEnvironmentList() {
try {
Integer pageSize = this.getParaToInt("pageSize");
Integer pageNumber = this.getParaToInt("currentPage");
Page<SlEnvironmentThreshold> environmentPage =
environmentService.getEnvironmentList(pageSize, pageNumber);
this.renderJson(Ret.ok("data", environmentPage));
} catch (Exception e) {
this.renderJson(Ret.fail("msg", "获取数据出错"));
}
}
/**
* @Description: 删除阈值
* @author xiaoying 2021-02-02
*/
public void deleteEnvironment() {
String ids = this.getPara("ids");
if (ids == null) {
renderJson(Ret.fail("msg", "删除信息错误"));
return;
}
boolean deleteEquipment = environmentService.deleteEnvironment(ids);
if (!deleteEquipment) {
renderJson(Ret.fail("msg", "删除角色失败"));
return;
}
renderJson(Ret.ok());
}
}
package com.archser.sams.controller;
import java.util.List;
import com.archser.sams.model.SlEquipmentCategory;
import com.archser.sams.model.SlEquipmentModel;
import com.archser.sams.service.EquipmentService;
import com.jfinal.aop.Inject;
import com.jfinal.core.Controller;
import com.jfinal.kit.Ret;
import com.jfinal.kit.StrKit;
public class EquipmentController extends Controller {
@Inject
EquipmentService equipmentService;
/**
* @Description: 获取设备类型
* @author xiaoying 2021-01-07
*/
public void getEquipmentCategory() {
List<SlEquipmentCategory> categories = equipmentService.getEquipmentCategory();
this.renderJson(Ret.ok("equipmentCategories", categories));
}
/**
* @Description: 获取设备型号
* @author xiaoying 2021-01-07
*/
public void getEquipmentModelList() {
List<SlEquipmentModel> models = equipmentService.getEquipmentModelList();
this.renderJson(Ret.ok("models", models));
}
/**
* @Description: 获取设备管理数据
* @author xiaoying 2021-01-07
*/
public void findEquipmentList() {
try {
Integer pageSize = this.getParaToInt("pageSize", 20);
Integer currentPage = this.getParaToInt("currentPage", 1);
String queryData = this.getPara("queryData");
Integer libId = this.getParaToInt("libId", null);
Integer categoryId = this.getParaToInt("categoryId", null);
renderJson(Ret.ok("data",
equipmentService.findEquipmentList(pageSize, currentPage, queryData, libId, categoryId)));
} catch (Exception e) {
e.printStackTrace();
renderJson(Ret.fail("msg", "获取设备管理列表出错,请刷新后重试!"));
}
}
/**
* @Description: 保存设备
* @author xiaoying 2021-01-07
*/
public void saveEquipment() {
String name = this.getPara("name");
Integer id = this.getParaToInt("id", null);
Integer libId = this.getParaToInt("libraryId");
Integer modelId = this.getParaToInt("modelId");
String ip = this.getPara("ip", null);
Integer port = this.getParaToInt("port", null);
Integer address = this.getParaToInt("address");
Integer alarmIoNum = this.getParaToInt("alarm_io_num", null);
Integer removeIoNum = this.getParaToInt("remove_io_num", null);
Integer outNum = this.getParaToInt("out_num", null);
Integer disabled = this.getParaToInt("disabled", null);
String username = this.getPara("username", null);
String password = this.getPara("password", null);
if (StrKit.isBlank(name)) {
this.renderJson(Ret.fail("msg", "填写数据为空,请重新填写"));
return;
}
boolean flag =
this.equipmentService.saveEquipment(name, id, libId, modelId, ip, port, address, alarmIoNum, removeIoNum, outNum, disabled, username, password);
if (flag) {
this.renderJson(Ret.ok("msg", "保存成功"));
} else {
this.renderJson(Ret.fail("msg", "保存失败"));
}
}
/**
* @Description: 删除设备
* @author xiaoying 2021-01-08
*/
public void deleteEquipment() {
String ids = this.getPara("ids");
if (ids == null) {
renderJson(Ret.fail("msg", "删除信息错误"));
return;
}
boolean deleteEquipment = equipmentService.deleteEquipmentById(ids);
if (!deleteEquipment) {
renderJson(Ret.fail("msg", "删除设备失败,设备已产生数据"));
return;
}
renderJson(Ret.ok());
}
public void getInstructionsList() {
List instructionsList = equipmentService.getInstructionsList();
this.renderJson(Ret.ok("instructionsList", instructionsList));
}
}
This diff is collapsed.
This diff is collapsed.
package com.archser.sams.controller;
import java.util.List;
import com.archser.sams.interceptor.JwtInterceptor;
import com.archser.sams.model.SlLibrary;
import com.archser.sams.model.SlOrgin;
import com.archser.sams.service.LogService;
import com.archser.sams.service.OrginService;
import com.jfinal.aop.Inject;
import com.jfinal.core.Controller;
import com.jfinal.kit.Ret;
import com.jfinal.kit.StrKit;
import com.jfinal.plugin.activerecord.Page;
public class OrginController extends Controller {
@Inject
OrginService orginService;
@Inject
LogService logService;
/**
* 获取本机和下级的所有机构树状结构
*/
public void getPermissOrginTree() {
String userName = getPara("username", null);
if (userName == null) {
renderJson(Ret.fail("msg", "获取用户名失败"));
return;
}
List<SlOrgin> orginList = orginService.getPermissOrgin(userName);
if (orginList.isEmpty()) {
renderJson(Ret.fail("msg", "机构列表为空"));
return;
}
renderJson(Ret.ok("tree", orginService.getOrginTree(orginList)));
}
/**
* 获取本机和下级的所有机构列表
*/
public void getOrginList() {
String orginId = getPara("orginId", null);
String queryData = this.getPara("queryData", null);
Integer pageSize = this.getParaToInt("pageSize", 20);
Integer currentPage = this.getParaToInt("currentPage", 1);
if (orginId == null) {
renderJson(Ret.fail("msg", "获取机构信息失败"));
return;
}
Page<SlLibrary> allStorageByIdseq =
orginService.getOrginListById(orginId, queryData, pageSize, currentPage);
if (allStorageByIdseq.getList().isEmpty()) {
renderJson(Ret.fail("msg", "没有找到库房信息"));
return;
}
renderJson(Ret.ok("dataList", allStorageByIdseq));
}
/**
* 获取本机全宗代码
*/
public void getSelfOrgin() {
renderJson(Ret.ok("idseq", orginService.getSelfOrgin(getPara("username", null))));
}
/**
* 添加/修改机构信息 @param: @return: void @throws
*/
public void save() {
Integer id = getParaToInt("id", null);
Integer pid = getParaToInt("pid", null);
Boolean createNew = getParaToBoolean("new", false);
String name = getPara("name", null);
String firBerigade = getPara("fire_brigade", null);
String firBerigadeTell = getPara("fire_brigade_tell", null);
String policeStation = getPara("police_station", null);
String policeStationTell = getPara("police_station_tell", null);
if (StrKit.isBlank(name)) {
renderJson(Ret.fail("msg", "机构名称不能为空!"));
return;
}
boolean result = false;
if (createNew && id == null) {
String pIdseq = orginService.getSelfOrginIdseq(pid);
result = orginService.addOrgin(pid, name, firBerigade, firBerigadeTell, policeStation,
policeStationTell, pIdseq);
} else if (id != null) {
result = orginService.updateOrgin(id, name, firBerigade, firBerigadeTell, policeStation,
policeStationTell);
}
if (!result) {
renderJson(Ret.fail("msg", "保存失败"));
logService.saveAsLog("operate", getAttr("username"), JwtInterceptor.getIpAddr(getRequest()),
"管理与配置-机构管理-" + (id == null ? "创建机构-" + name + "-添加失败" : "修改机构-" + name + "-修改失败"),
"smart_library");
return;
}
renderJson(Ret.ok());
logService.saveAsLog("operate", getAttr("username"), JwtInterceptor.getIpAddr(getRequest()),
"管理与配置-机构管理-" + (id == null ? "创建机构-" + name + "-添加成功" : "修改机构-" + name + "-修改成功"),
"smart_library");
}
/**
* 删除机构 @param: @return: void @throws
*/
public void delete() {
String ids = this.getPara("ids");
if (ids == null) {
renderJson(Ret.fail("msg", "删除信息错误"));
return;
}
boolean deleteOrgin = orginService.deleteOrginById(ids);
if (!deleteOrgin) {
renderJson(Ret.fail("msg", "删除机构失败"));
return;
}
renderJson(Ret.ok());
}
/**
* 获取机构树目录
*/
public void tree() {
String userName = this.getAttr("username");
this.renderJson(Ret.ok("orgins", orginService.orginTree(userName)));
}
}
package com.archser.sams.controller;
import java.util.ArrayList;
import java.util.List;
import com.archser.sams.model.SlRole;
import com.archser.sams.service.RoleService;
import com.jfinal.aop.Inject;
import com.jfinal.core.Controller;
import com.jfinal.kit.Kv;
import com.jfinal.kit.Ret;
import com.jfinal.plugin.activerecord.Db;
import com.jfinal.plugin.activerecord.Page;
import com.jfinal.plugin.activerecord.Record;
public class RoleController extends Controller {
@Inject
RoleService roleService;
/**
* @Description: 获取角色数据
* @author xiaoying 2020-12-10
*/
public void getRoleList() {
try {
String queryData = this.getPara("queryData");
Integer pageSize = this.getParaToInt("pageSize");
Integer currentPage = this.getParaToInt("currentPage");
Page<SlRole> roles = roleService.getRoleList(queryData, pageSize, currentPage);
if (roles.getList() != null) {
this.renderJson(Ret.ok("roleList", roles));
} else {
this.renderJson(Ret.fail("msg", "暂无数据"));
}
} catch (Exception e) {
this.renderJson(Ret.fail("msg", "获取数据出错"));
}
}
/**
* @Description: 保存角色
* @author xiaoying 2020-12-10
*/
public void saveRole() {
try {
String name = this.getPara("name", null);
String locked = this.getPara("locked", null);
String description = this.getPara("description", null);
String roleLibraryIds = this.getPara("roleLibraryIds", null);
Integer id = this.getInt("id", null);
SlRole role = new SlRole();
role.setNAME(name);
role.setLOCKED(locked == null ? "N" : locked);
role.setID(id);
role.setDESCRIPTION(description);
boolean isSuccess = roleService.saveRole(role, roleLibraryIds);
if (isSuccess) {
this.renderJson(Ret.ok("msg", "保存成功"));
} else {
this.renderJson(Ret.fail("msg", "保存失败"));
}
} catch (Exception e) {
this.renderJson(Ret.fail("msg", "保存出错"));
}
}
/**
* @Description: 删除角色
* @author xiaoying 2020-12-10
*/
public void deleteRole() {
String ids = this.getPara("ids");
if (ids == null) {
renderJson(Ret.fail("msg", "删除信息错误"));
return;
}
boolean deleteRole = roleService.deleteRoleById(ids);
if (!deleteRole) {
renderJson(Ret.fail("msg", "删除角色失败"));
return;
}
renderJson(Ret.ok());
}
public void getRoleLibraryList() {
Integer roleId = this.getParaToInt("id", null);
if (null == roleId) {
this.renderJson(Ret.fail("msg", "角色id不存在"));
return;
}
List<Record> roleLibraries =
Db.find(Db.getSqlPara("role.findRoleLibrariesByRoleId", Kv.by("roleId", roleId)));
List<Integer> libIds = new ArrayList<Integer>();
for (Record record : roleLibraries) {
libIds.add(record.getInt("lib_id"));
}
this.renderJson(Ret.ok("roleLibrarys", libIds));
}
}
package com.archser.sams.controller;
import com.archser.sams.bean.SerialNumberBean;
import com.archser.sams.service.SerialNumberService;
import com.jfinal.aop.Clear;
import com.jfinal.aop.Inject;
import com.jfinal.core.Controller;
import com.jfinal.kit.Ret;
/**
* 用于计算序列号是否满足要求
*/
@Clear
public class SerialNumberController extends Controller {
@Inject
SerialNumberService serialNumberService;
/**
* 获取唯一值
*/
public void getUniqueCode() {
try {
String uniqueCode = serialNumberService.getUniqueCode();
renderJson(Ret.ok("data", uniqueCode));
} catch (Exception e) {
e.printStackTrace();
renderJson(Ret.fail("msg", e.getMessage()));
}
}
/**
* 校验是否有合法的序列号
*/
public void checkSerialNumber() {
try {
serialNumberService.setSerialNumberBean(new SerialNumberBean());
SerialNumberBean serialNumberBean = serialNumberService.checkSerialNumber();
renderJson(Ret.ok("data", serialNumberBean));
} catch (Exception e) {
e.printStackTrace();
renderJson(Ret.fail("msg", e.getMessage()));
}
}
/**
* 保存序列号并重新校验
*/
public void saveSerialNumber() {
try {
SerialNumberBean serialNumberBean = serialNumberService.saveSerialNumber(getBean(SerialNumberBean.class, ""));
renderJson(Ret.ok("data", serialNumberBean));
} catch (Exception e) {
e.printStackTrace();
renderJson(Ret.fail("msg", e.getMessage()));
}
}
public void getSnValueInfo() {
try {
serialNumberService.setSerialNumberBean(new SerialNumberBean());
SerialNumberBean serialNumberBean = serialNumberService.checkSerialNumber();
renderJson(Ret.ok("data", serialNumberBean));
} catch (Exception e) {
e.printStackTrace();
renderJson(Ret.fail("msg", e.getMessage()));
}
}
}
package com.archser.sams.controller;
import java.util.Map;
import com.archser.sams.model.SlSnValue;
import com.archser.sams.service.SnService;
import com.jfinal.aop.Clear;
import com.jfinal.aop.Inject;
import com.jfinal.core.Controller;
import com.jfinal.core.paragetter.Para;
import com.jfinal.kit.PropKit;
import com.jfinal.kit.Ret;
import com.registration.util.SnUtil;
public class SnController extends Controller {
@Inject
SnService snService;
// 唯一信息
public static final String uniqueValue = SnUtil.getUniqueCode("HY-SAMS");
@Clear
public void registered(@Para("licence") String licence, @Para("unitName") String unitName) {
// 校验SN码是否合格
Map<String, String> stringStringMap = null;
try {
stringStringMap = SnUtil.verifyValid(unitName, uniqueValue, licence);
} catch (Exception e) {
e.printStackTrace();
renderJson(Ret.fail("msg", "请填写正确的注册码"));
return;
}
// SN码不符合要求,返回验证提示信息
if (!Boolean.parseBoolean(stringStringMap.get("success"))) {
renderJson(stringStringMap);
return;
}
// SN码符合要求,保存到数据库
SlSnValue snValue = new SlSnValue();
snValue.set("ID", SlSnValue.SEQ_NEXTVAL);
snValue.setUnitName(unitName);
snValue.setUniqueValue(uniqueValue);
snValue.setLicence(licence);
boolean success = snService.saveSn(snValue);
if (success) {
renderJson(Ret.ok("msg", "保存成功"));
} else {
renderJson(Ret.fail("msg", "保存失败"));
}
}
/**
* 校验SN和对应的加密Key
*/
@Clear
public void snVerify() {
try {
Map<String, String> stringStringMap = snService.snVerify(uniqueValue);
renderJson(stringStringMap);
} catch (Exception e) {
e.printStackTrace();
renderJson(Ret.fail("msg", e.getMessage()).set("uniqueValue", uniqueValue));
}
}
public void getSnValue() {
SlSnValue snValue = snService.getSnValueList(uniqueValue);
Map<String, String> parseSn = null;
try {
parseSn = SnUtil.parseSn(snValue.getLicence());
} catch (Exception e) {
e.printStackTrace();
}
renderJson(Ret.ok("data", snValue).set("expiredate", parseSn.get("expiredate")));
}
}
package com.archser.sams.controller;
import com.archser.sams.model.SlStrategy;
import com.archser.sams.service.StrategyService;
import com.jfinal.aop.Inject;
import com.jfinal.core.Controller;
import com.jfinal.kit.Ret;
import com.jfinal.plugin.activerecord.Page;
public class StrategyController extends Controller {
@Inject
private StrategyService strategyService;
public void getStrategys(){
try {
Integer pageSize = this.getParaToInt("pageSize");
Integer pageNumber = this.getParaToInt("currentPage");
Page<SlStrategy> getStrategy =
strategyService.getStrategys(pageSize, pageNumber);
this.renderJson(Ret.ok("data", getStrategy));
} catch (Exception e) {
this.renderJson(Ret.fail("msg", "获取数据出错"));
}
}
public void saveStrategy(){
try {
Integer id = this.getInt("id");
String name = this.getPara("name");
Integer libraryId = this.getInt("libraryId");
Integer categoryId = this.getInt("categoryId");
Integer equipmentModelId = this.getInt("equipmentModelId");
Integer conditionSymbol = this.getInt("conditionSymbol");
String conditionName = this.getPara("conditionName");
String conditionValue = this.getPara("conditionValue");
Integer triggerCategoryId = this.getInt("triggerCategoryId");
Integer triggerEquipmentModelId = this.getInt("triggerEquipmentModelId");
Integer operationMode1 = this.getInt("operationMode1");
Integer operationMode2 = this.getInt("operationMode2");
String remarks = this.getPara("remarks");
SlStrategy slStrategy = new SlStrategy();
slStrategy.setId(id);
slStrategy.setName(name);
slStrategy.setLibraryId(libraryId);
slStrategy.setCategoryId(categoryId);
slStrategy.setEquipmentModelId(equipmentModelId);
slStrategy.setConditionSymbol(conditionSymbol);
slStrategy.setConditionName(conditionName);
slStrategy.setConditionValue(conditionValue);
slStrategy.setTriggerCategoryId(triggerCategoryId);
slStrategy.setTriggerEquipmentModelId(triggerEquipmentModelId);
slStrategy.setOperationMode1(operationMode1);
slStrategy.setOperationMode2(operationMode2);
slStrategy.setRemarks(remarks);
strategyService.saveStrategy(slStrategy);
renderJson(Ret.ok("msg", "保存成功"));
} catch (Exception e) {
this.renderJson(Ret.fail("msg", "保存数据出错"));
}
}
public void deleteStrategy(){
String ids = this.getPara("ids");
if (ids == null) {
renderJson(Ret.fail("msg", "删除失败"));
return;
}
boolean delete = strategyService.deleteStrategy(ids);
if (!delete) {
renderJson(Ret.fail("msg", "删除失败"));
return;
}
renderJson(Ret.ok());
}
}
package com.archser.sams.controller;
import java.util.List;
import com.archser.sams.model.SlLibrary;
import com.archser.sams.service.SurveillanceService;
import com.jfinal.aop.Inject;
import com.jfinal.core.Controller;
import com.jfinal.kit.Ret;
public class SurveillanceController extends Controller {
@Inject
SurveillanceService surveillanceService;
/**
* @Description: 获取机构库房列表
* @author xiaoying 2021-01-22
*/
public void getTree() {
renderJson(Ret.ok("treeData", surveillanceService.getTree()));
}
public void getAllCamera(){
Integer libId = this.getParaToInt("libId");
try {
String username = this.getAttr("username");
renderJson(Ret.ok("treeData", surveillanceService.getAllCamera(username, libId)));
} catch (Exception e) {
renderJson(Ret.fail("msg", "获取档案库房列表失败,请刷新后重试!"));
}
}
}
package com.archser.sams.controller;
import com.archser.sams.model.SlSystems;
import com.archser.sams.service.SystemsService;
import com.jfinal.aop.Inject;
import com.jfinal.core.Controller;
import com.jfinal.kit.Ret;
import com.jfinal.plugin.activerecord.Page;
public class SystemsController extends Controller {
@Inject
private SystemsService systemsService;
public void getTables(){
try {
Integer pageSize = this.getParaToInt("pageSize");
Integer pageNumber = this.getParaToInt("currentPage");
Page<SlSystems> getTables =
systemsService.getTables(pageSize, pageNumber);
this.renderJson(Ret.ok("data", getTables));
} catch (Exception e) {
this.renderJson(Ret.fail("msg", "获取数据出错"));
}
}
public void saveTable(){
try {
Integer id = this.getInt("id");
String name = this.getPara("name");
String url = this.getPara("url");
SlSystems slSystems = new SlSystems();
slSystems.setID(id);
slSystems.setNAME(name);
slSystems.setURL(url);
systemsService.saveTable(slSystems);
renderJson(Ret.ok("msg", "保存成功"));
} catch (Exception e) {
this.renderJson(Ret.fail("msg", "获取数据出错"));
}
}
public void deleteTable(){
String ids = this.getPara("ids");
if (ids == null) {
renderJson(Ret.fail("msg", "删除失败"));
return;
}
boolean delete = systemsService.deleteTable(ids);
if (!delete) {
renderJson(Ret.fail("msg", "删除失败"));
return;
}
renderJson(Ret.ok());
}
}
package com.archser.sams.controller;
import java.sql.SQLException;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.Iterator;
import java.util.List;
import java.util.Map;
import java.util.Map.Entry;
import com.archser.sams.interceptor.JwtInterceptor;
import com.archser.sams.model.SlRole;
import com.archser.sams.model.SlUser;
import com.archser.sams.service.LogService;
import com.archser.sams.service.UserService;
import com.jfinal.aop.Inject;
import com.jfinal.core.Controller;
import com.jfinal.kit.HashKit;
import com.jfinal.kit.Kv;
import com.jfinal.kit.Ret;
import com.jfinal.kit.StrKit;
import com.jfinal.plugin.activerecord.Db;
import com.jfinal.plugin.activerecord.Page;
import com.jfinal.plugin.activerecord.Record;
import com.jfinal.plugin.redis.Redis;
public class UserController extends Controller {
private static final String _INFO = "_INFO";
@Inject
UserService userService;
@Inject
LogService logService;
/**
* 获取用户信息
*/
public void info() {
String username = this.getPara("username");
SlUser user = SlUser.dao.template("user.getUser", username).findFirst();
user.remove("password");
this.renderJson(Ret.ok("userInfo", user));
}
/**
* 修改用户密码
*
* @throws SQLException
*/
public void updatePwd() {
String username = this.getAttr("username");
String password = this.getPara("newPwd");
password = HashKit.sha256(password);
int flag = Db.update(Db.getSql("user.updatePassword"), password, username);
if (flag == 0) {
this.renderJson(Ret.fail("msg", "修改失败"));
return;
}
try {
Redis.use().hset(username + _INFO, "password", password);
} catch (Exception e) {
e.printStackTrace();
}
this.renderJson(Ret.ok("msg", "修改成功"));
}
/**
* 修改用户
*/
public void updateUser() {
SlUser user = this.getModel(SlUser.class, "user", true);
String roleId = this.getPara("role_id");
if (user == null) {
renderJson("msg", "数据参数错误,请重新修改");
return;
}
boolean flag = user.update();
/** xiaoying 20201010 修改角色无变化 start */
boolean state = Db.update(Db.getSqlPara("user.updateRoleUser",
Kv.by("user_id", user.getID()).set("role_id", roleId))) > 0 ? true : false;
/** xiaoying 20201010 修改角色无变化 end */
if (flag && state) {
updateUserForRedis(user);
renderJson(Ret.ok("msg", "数据修改成功!"));
logService.saveAsLog("operate", getAttr("username"), JwtInterceptor.getIpAddr(getRequest()),
"系统管理-用户管理-修改用户-" + user.getUSERNAME() + "-修改成功", "system");
return;
} else {
renderJson(Ret.fail("msg", "Error ! 请联系管理员解决。"));
logService.saveAsLog("operate", getAttr("username"), JwtInterceptor.getIpAddr(getRequest()),
"系统管理-用户管理-修改用户-" + user.getUSERNAME() + "-修改失败", "system");
}
}
/**
* 修改Redis中的用户信息 @Time:2020年7月10日 - 上午8:48:48 @author:李德才 @param: @param user @return:
* void @throws
*/
public void updateUserForRedis(SlUser user) {
try {
Iterator<Entry<String, Object>> userIterator = user._getAttrsEntrySet().iterator();
Map<Object, Object> userMap = new HashMap<>();
Entry<String, Object> userAttr = null;
while (userIterator.hasNext()) {
userAttr = userIterator.next();
userMap.put(userAttr.getKey().toString().trim().toLowerCase(), userAttr.getValue());
}
Redis.use().hmset(user.getUSERNAME() + _INFO, userMap);
} catch (Exception e) {
e.printStackTrace();
}
}
/**
* 查询角色
*/
public void getRoleData() {
try {
String username = this.getAttr("username");
SlUser user = SlUser.dao.template("user.getUser", username).findFirst();
int userId = user.getID();
List<Record> records = Db.find(Db.getSql("user.getRolesByUserId"), userId);
List<Integer> ids = new ArrayList<Integer>();
for (Record record : records) {
ids.add(record.getInt("ROLE_ID"));
}
// LiuKexin 2020028 修改获取角色信息
Record dataList = Db.findFirst(Db.getSqlPara("user.getRole", Kv.by("ids", ids)));
if (dataList != null) {
this.renderJson(Ret.ok("list", dataList));
} else {
// LiuKexin 20200928 修改提示语
this.renderJson(Ret.fail("msg", "用户没有关联角色"));
}
} catch (Exception e) {
// LiuKexin 20200928 添加异常判断
e.printStackTrace();
this.renderJson(Ret.fail("msg", "用户没有关联角色"));
}
}
/**
* 验证原密码输入的是否正确
*/
public void validateOldPassword() {
String username = this.getAttr("username");
SlUser user = SlUser.dao.template("user.getUser", username).findFirst();
String oldPwd = getPara("oldPwd");
String encryptionString = HashKit.sha256(oldPwd);
if (encryptionString.equals(user.getPASSWARD())) {
renderJson(Ret.ok());
} else {
renderJson(Ret.fail());
}
}
/**
* 全局搜索用户信息
*/
public void getUsersByOrginId() {
Integer orginId = this.getParaToInt("orginId");
String queryData = this.getPara("queryData", "");
Integer pageSize = this.getParaToInt("pageSize", 20);
Integer currentPage = this.getParaToInt("currentPage", 1);
Page<SlUser> users = userService.getUsersByOrginId(orginId, queryData, pageSize, currentPage);
this.renderJson(Ret.ok("userList", users));
}
/**
* 创建用户
*/
public void createUser() {
String mobilePhone = this.getPara("mobile_phone");
Integer orginId = this.getParaToInt("orgin_id");
String name = this.getPara("name");
String username = this.getPara("username");
String description = this.getPara("description");
String locked = this.getPara("locked");
String eamil = this.getPara("email");
String password = this.getPara("passward");
Integer id = this.getParaToInt("id");
Integer roleId = this.getParaToInt("role_id");
Integer role = this.getParaToInt("role");
SlUser user = new SlUser();
if (id != null) {
user.setID(id);
if (!StrKit.isBlank(password)) {
user.setPASSWARD(HashKit.sha256(password));
}
} else {
boolean exist = userService.existUser(username);
if (exist) {
this.renderJson(Ret.fail("msg", "用户名已存在"));
return;
}
user.setPASSWARD(HashKit.sha256(password));
user.setERRORCOUNT(0);
}
user.setMobilePhone(mobilePhone);
user.setNAME(name);
user.setUSERNAME(username);
user.setOrginId(orginId);
user.setDESCRIPTION(description);
user.setEMAIL(eamil);
user.setLOCKED(StrKit.isBlank(locked) ? "0" : locked);
user.setRole(role);
Kv createUser = userService.createUser(user, roleId);
if (createUser.getBoolean("success")) {
this.renderJson(Ret.ok("msg", "添加成功"));
logService.saveAsLog("operate", getAttr("username"), JwtInterceptor.getIpAddr(getRequest()),
"管理与配置-用户管理-" + (id == null ? "添加用户-" + user.getUSERNAME() + "-添加成功"
: "修改用户-" + user.getUSERNAME() + "-修改成功"),
"system");
} else {
this.renderJson(Ret.fail("msg", id == null ? "添加用户失败" : "修改用户失败"));
logService.saveAsLog("operate", getAttr("username"), JwtInterceptor.getIpAddr(getRequest()),
"管理与配置-用户管理-" + (id == null ? "添加用户-" + user.getUSERNAME() + "-添加失败"
: "修改用户-" + user.getUSERNAME() + "-修改失败"),
"system");
}
}
/**
* 删除用户
*/
public void deleteUser() {
String[] idsStr = this.getPara("ids").split(",");
List<Integer> userIds = new ArrayList<Integer>();
for (int i = 0; i < idsStr.length; i++) {
int id = Integer.parseInt(idsStr[i]);
userIds.add(id);
}
Kv removeUser = userService.removeUser(userIds);
if (removeUser.getBoolean("success")) {
this.renderJson(Ret.ok("msg", "删除用户操作成功"));
logService.saveAsLogByFile("operate", getAttr("username"), "管理与配置-用户管理-删除用户-删除成功", null,
removeUser.get("loginfo"), JwtInterceptor.getIpAddr(getRequest()));
} else {
this.renderJson(Ret.fail("msg", "删除用户操作失败"));
logService.saveAsLog("operate", getAttr("username"), JwtInterceptor.getIpAddr(getRequest()),
"管理与配置-用户管理-删除用户-" + removeUser.get("loginfo") + "-删除失败", "system");
}
}
/**
* @Description: 获取角色列表
* @author xiaoying 2021-01-25
*/
public void getRoleList() {
this.renderJson(Ret.ok("roleList", SlRole.dao.findAll()));
}
/**
* @Description: 设置个人信息
* @author yangshaojun 2021-04-22
*/
public void savePersonalInfo() {
Integer id = this.getParaToInt("id");
String name = this.getPara("name");
String password = this.getPara("passward");
String mobilePhone = this.getPara("mobile_phone");
String email = this.getPara("email");
String description = this.getPara("description");
SlUser user = new SlUser();
if (id != null) {
user.setID(id);
if (!StrKit.isBlank(password)) {
user.setPASSWARD(HashKit.sha256(password));
}
} else {
this.renderJson(Ret.fail("msg", "id不能为空"));
return;
}
user.setMobilePhone(mobilePhone);
user.setNAME(name);
user.setDESCRIPTION(description);
user.setEMAIL(email);
userService.savePersonalInfo(user);
this.renderJson(Ret.ok("msg", "个人信息设置成功"));
}
}
package com.archser.sams.controller;
import java.util.List;
import com.archser.sams.interceptor.JwtInterceptor;
import com.archser.sams.model.Sl3dLibrary;
import com.archser.sams.model.Sl3dModel;
import com.archser.sams.model.SlLibrary;
import com.archser.sams.service.VrService;
import com.jfinal.aop.Clear;
import com.jfinal.aop.Inject;
import com.jfinal.core.Controller;
import com.jfinal.kit.Ret;
import com.jfinal.kit.StrKit;
import com.jfinal.plugin.activerecord.Record;
public class VrController extends Controller {
@Inject
VrService vrService;
/**
* 获取3D库房模型列表
*/
public void get3dModelList() {
List<Record> modelList = vrService.get3dModelList();
renderJson(Ret.ok("modelList", modelList));
}
/**
* 通过模型ID获取3D模型
*/
public void getModel() {
Integer id = getParaToInt("id");
String type = getPara("type");
Sl3dModel model = vrService.getModelById(id);
String file = model.getFILE();
if (type.equals("icon")) { // 模型库icon
file += ".png";
} else if (type.equals("materialImg")) { // 模型贴图 注意 大小写
file += "_material.png";
} else if (type.equals("mtl")) { // 模型材质
file += ".mtl";
} else if (type.equals("烟感")) { // 模型材质
file += ".mtl";
} else { // 模型
file += ".obj";
}
renderFile(file);
}
/**
* 获取库房列表
*/
@Clear(JwtInterceptor.class)
public void libraryList() {
List<SlLibrary> libraryList = vrService.libraryList();
renderJson(Ret.ok("libraryList", libraryList));
}
/**
* 获取3D库房信息
*/
@Clear(JwtInterceptor.class)
public void get3dLibrary() {
Integer libId = getParaToInt("libId", null);
Sl3dLibrary libraryInfo = vrService.get3dLibrary(libId);
List<Record> modelList = vrService.get3dModelListFull();
renderJson(Ret.ok("libraryInfo", libraryInfo).set("modelList", modelList));
}
/**
* 保存JSON
*/
public void save3dLibrary() {
Integer libId = getParaToInt("libId", null);
String jsonStr = getPara("jsonStr", null);
if (StrKit.isBlank(jsonStr)) {
renderJson(Ret.fail("msg", "json不允许为空!"));
return;
}
boolean result = false;
if (!vrService.exist3dLibrary(libId)) {
result = vrService.add3dLibrary(libId, jsonStr);
} else if (libId != null) {
result = vrService.update3dLibrary(libId, jsonStr);
}
if (!result) {
renderJson(Ret.fail("msg", "保存失败"));
return;
}
renderJson(Ret.ok());
}
}
package com.archser.sams.exception;
public class CallOtherServeException extends RuntimeException{
/**
* @Fields field:field:{todo}(用一句话描述这个变量表示什么)
*/
private static final long serialVersionUID = 1L;
public CallOtherServeException(String msg) {
super(msg);
}
}
package com.archser.sams.exception;
/**
* @authorAndDate: 处理文件发生异常
* @authorAndDate: ChengYaqing create on 2020/9/3 9:38
*/
public class HandleFileException extends TaskException{
public HandleFileException(String msg) {
super(msg);
}
}
package com.archser.sams.exception;
public class LackParamException extends RuntimeException{
/**
* @Fields field:field:{todo}(用一句话描述这个变量表示什么)
*/
private static final long serialVersionUID = 1L;
public LackParamException(String msg) {
super(msg);
}
public LackParamException() {
super();
}
}
package com.archser.sams.exception;
/**
* @authorAndDate: 操作数据库异常
* @authorAndDate: ChengYaqing create on 2020/8/20 16:02
*/
public class OperateDataBaseException extends RuntimeException{
/**
* @Fields field:field:{todo}(用一句话描述这个变量表示什么)
*/
private static final long serialVersionUID = 1L;
public OperateDataBaseException(String msg){
super(msg);
}
}
\ No newline at end of file
package com.archser.sams.exception;
/**
* @authorAndDate: 重复操作
* @authorAndDate: ChengYaqing create on 2020/8/21 15:01
*/
public class RepeatOperateException extends RuntimeException{
/**
* @Fields field:field:{todo}(用一句话描述这个变量表示什么)
*/
private static final long serialVersionUID = 1L;
public RepeatOperateException(String msg) {
super(msg);
}
}
\ No newline at end of file
package com.archser.sams.exception;
/**
* @authorAndDate: 查询数据出错
* @authorAndDate: ChengYaqing create on 2020/8/20 18:24
*/
public class SearchDataException extends RuntimeException{
/**
* @Fields field:field:{todo}(用一句话描述这个变量表示什么)
*/
private static final long serialVersionUID = 1L;
public SearchDataException(String msg) {
super(msg);
}
}
package com.archser.sams.exception;
/**
* @Description: 执行任务出现异常
* @authorAndDate: ChengYaqing create on 2020年8月27日
*/
public class TaskException extends RuntimeException{
/**
* @Fields field:持久化
*/
private static final long serialVersionUID = -8827074704624155923L;
public TaskException(String msg) {
super(msg);
}
public TaskException() {
super();
}
}
package com.archser.sams.exception;
/**
* @authorAndDate: 保存日志出错
* @authorAndDate: ChengYaqing create on 2020/9/10 10:04
*/
public class TaskLogException extends TaskException{
public TaskLogException(String msg){
super(msg);
}
}
package com.archser.sams.generator;
import javax.sql.DataSource;
import com.jfinal.kit.PropKit;
import com.jfinal.plugin.activerecord.dialect.MysqlDialect;
import com.jfinal.plugin.activerecord.generator.Generator;
import com.jfinal.plugin.druid.DruidPlugin;
/**
* 生成器
*
* @author dengguopqi
*
*/
public class MyGenerator extends Generator {
public MyGenerator(DataSource dataSource, String baseModelPackageName, String baseModelOutputDir,
String modelPackageName, String modelOutputDir) {
super(dataSource, baseModelPackageName, baseModelOutputDir, modelPackageName, modelOutputDir);
}
public static void main(String[] args) {
PropKit.use("config.properties");
String url = PropKit.get("jdbcUrl");
String username = PropKit.get("user");
String password = PropKit.get("password");
String driverClass = PropKit.get("jdbc.driver");
DruidPlugin dp = new DruidPlugin(url, username, password, driverClass);
dp.start();
MyGenerator g = new MyGenerator(dp.getDataSource(), "com.archser.sams.model.base",
"src/main/java/com/archser/sams/model/base", "com.archser.sams.model",
"src/main/java/com/archser/sams/model");
g.setMetaBuilder(new MyMetaBuilder(dp.getDataSource()));
// g.setRemovedTableNamePrefixes("SL_");
g.setGenerateChainSetter(false);
g.setGenerateRemarks(true);
g.setGenerateDaoInModel(true);
g.setGenerateDataDictionary(true);
g.setDialect(new MysqlDialect());
g.generate();
}
}
package com.archser.sams.generator;
import java.sql.ResultSet;
import java.sql.SQLException;
import javax.sql.DataSource;
import com.jfinal.plugin.activerecord.dialect.OracleDialect;
import com.jfinal.plugin.activerecord.generator.MetaBuilder;
public class MyMetaBuilder extends MetaBuilder {
public MyMetaBuilder(DataSource dataSource) {
super(dataSource);
}
@Override
protected boolean isSkipTable(String tableName) {
switch (tableName.toUpperCase()) {
case "SL_ALERT_LOG":
case "SL_ALERT_NOTIFICATION":
case "SL_ALERT_RELATIVE_FAILURE":
case "SL_ALERT_TYPE":
case "SL_ENVIRONMENT_LOG":
case "SL_ENVIRONMENT_THRESHOLD":
case "SL_EQUIPMENT":
case "SL_EQUIPMENT_CATEGORY":
case "SL_EQUIPMENT_MODEL":
case "SL_LIBRARY":
case "SL_LOG":
case "SL_ORGIN":
case "SL_ROLE":
case "SL_ROLE_LIBRARY":
case "SL_ROLE_USER":
case "SL_USER":
case "SL_SN_VALUE":
case "SL_ARCHIVES_CATEGORY_TOTAL":
case "SL_ARCHIVES_CATEGORY_ADD_NUM_PER_MONTH":
case "SL_ARCHIVES_USE_TIMES_PER_MONTH":
case "SL_STRATEGY":
return false;
default:
return true;
}
}
@Override
protected ResultSet getTablesResultSet() throws SQLException {
String schemaPattern = dialect instanceof OracleDialect ? dbMeta.getUserName() : null;
return dbMeta.getTables(conn.getCatalog(), schemaPattern, "%", new String[] {"TABLE"});
}
}
This diff is collapsed.
package com.archser.sams.gm;
import java.math.BigInteger;
import org.bouncycastle.crypto.InvalidCipherTextException;
import org.bouncycastle.crypto.params.ECPrivateKeyParameters;
import org.bouncycastle.crypto.params.ECPublicKeyParameters;
import org.bouncycastle.pqc.math.linearalgebra.ByteUtils;
import com.archser.sams.util.gm.SM2Util;
/**
* @used 使用国密加密和解密
* @author CoolColor
* @date 2019年12月3日
*/
public class GMTool {
/**
* @throws InvalidCipherTextException
* @used 把字符串进行国密加密
*/
public String encryptionString(String original) throws InvalidCipherTextException {
String publicKey = "04272a7c8997d9883078acc011f450f88d54fdbbd6ddab950d7856a565182aad7e0b5da415f50e1d4433c2b633752dfa3bc04de879311091361db05584d972ff06";
ECPublicKeyParameters publicKeyParameters = BCECUtil.createECPublicKeyParameters(publicKey, SM2Util.CURVE, SM2Util.DOMAIN_PARAMS);
byte[] encrypt = SM2Util.encrypt(publicKeyParameters, original.getBytes());
String later = ByteUtils.toHexString(encrypt);
//用于模拟前台登录,去掉前面的04
later=later.substring(2, later.length());
return later;
}
/**
* @throws InvalidCipherTextException
* @used 把字符串进行国密解密
*/
public String decryptionString(String original) throws InvalidCipherTextException {
original="04"+original;
byte[] encrypt = ByteUtils.fromHexString(original);
String priKey = "38627fffe8003e6d2faa76d4eae2f74fd9cd7be257ab36c356c4f01bbc17e41d";
ECPrivateKeyParameters privateKeyParameters = BCECUtil.createECPrivateKeyParameters(new BigInteger(ByteUtils.fromHexString( priKey)), SM2Util.DOMAIN_PARAMS);
byte[] decrypt = SM2Util.decrypt(privateKeyParameters, encrypt);
String later = new String(decrypt);
return later;
}
}
This diff is collapsed.
package com.archser.sams.interceptor;
import com.jfinal.kit.Ret;
import com.jfinal.render.JsonRender;
import com.jfinal.render.Render;
import com.jfinal.render.RenderFactory;
/**
* @used
* @author CoolColor
* @date 2019年12月1日
*/
public class ErrorRender extends RenderFactory{
/* (non-Javadoc)
* @see com.jfinal.render.RenderFactory#getErrorRender(int)
*/
@Override
public Render getErrorRender(int errorCode) {
if (errorCode == 401) {
return new JsonRender(Ret.fail("msg", "CSRF validation failed"));
} else if (errorCode == 403) {
return new JsonRender(Ret.fail("msg", "please use post or get"));
} else if (errorCode == 404) {
return new JsonRender(Ret.fail("msg", "request not found"));
} else if (errorCode == 500) {
return new JsonRender(Ret.fail("msg", "serve error"));
} else if (errorCode == 503) {
return new JsonRender(Ret.fail("msg", "server overload or downtime for maintenance"));
}
return super.getErrorRender(errorCode);
}
}
package com.archser.sams.interceptor;
import java.util.Arrays;
import java.util.Date;
import java.util.List;
import javax.servlet.http.HttpServletRequest;
import com.archser.sams.controller.IndexController;
import com.archser.sams.util.AesEncryptUtil;
import com.archser.sams.util.KeysUtil;
import com.jfinal.aop.Interceptor;
import com.jfinal.aop.Invocation;
import com.jfinal.core.Controller;
import com.jfinal.kit.PropKit;
import com.jfinal.kit.Ret;
import com.jfinal.kit.StrKit;
import com.jfinal.log.Log;
import io.jsonwebtoken.Claims;
import io.jsonwebtoken.ExpiredJwtException;
import io.jsonwebtoken.JwsHeader;
import io.jsonwebtoken.Jwts;
import io.jsonwebtoken.SignatureAlgorithm;
/**
* 全局登录验证
*
* @author dengguoqi
*
*/
public class JwtInterceptor implements Interceptor {
private static final Log log = Log.getLog(Controller.class);
private static final String HEADER_AUTHORIZATION = "Authorization";
private static Boolean ISEXPIRED = null;
private static String name = null;
private static int EXPIRATION = 3600 * 24 * 60 * 60 * 1000;
@Override
public void intercept(Invocation inv) {
ISEXPIRED = true;
Controller controller = inv.getController();
String method = controller.getRequest().getMethod().toUpperCase();
if (!"POST".equals(method) && !"GET".equals(method)){
inv.getController().renderError(403);
return;
}
if (this.verifyToken(inv)) {
try {
inv.invoke();
} catch (Exception e) {
e.printStackTrace();
inv.getController().renderJson(Ret.fail("msg", "未知错误、请联系管理员"));
}
} else {
if (!ISEXPIRED) {
try {
if (!StrKit.isBlank(name)) {
name = AesEncryptUtil.desEncrypt(name);
}
} catch (Exception e) {
e.printStackTrace();
}
String jws = Jwts.builder()
// 设置密匙ID
.setHeaderParam(JwsHeader.KEY_ID, IndexController.SYSTEM_KEYID)
// 赋予应用
.setSubject("sams")
// 签发时间
.setIssuedAt(new Date())
// 超期时间
.setExpiration(new Date(java.lang.System.currentTimeMillis() + EXPIRATION))
// 用户名
.claim("name", name)
.claim("ip", JwtInterceptor.getIpAddr(inv.getController().getRequest()))
// 签名
.signWith(KeysUtil.privatekey(IndexController.SYSTEM_PRIVATEKEY),
SignatureAlgorithm.RS256)
.compact();
inv.getController().renderJson("newToken", jws);
return;
}
inv.getController().renderError(401);
}
}
/**
* 验证cookie中记住的用户
*
* @param inv
* @return
*/
private boolean verifyToken(Invocation inv) {
String token = inv.getController().getHeader(HEADER_AUTHORIZATION);
name = inv.getController().getHeader("username");
if (StrKit.isBlank(token)) {
token = inv.getController().getPara("token");
}
if (StrKit.isBlank(token)) {
token = inv.getController().getCookie("token");
}
if (StrKit.isBlank(token)) {
return false;
} else {
inv.getController().setCookie("token", token, -1, true);
}
try {
// jwt解析器
Claims claims = Jwts.parser()
// 设置公钥
.setSigningKeyResolver(new JwtSigningKeyResolver())
// 解析jwt
.parseClaimsJws(token).getBody();
// 验证IP
if (!filterIpAddress(getIpAddr(inv.getController().getRequest()),
claims.get("ip", String.class))) {
return false;
}
String username = claims.get("name", String.class);
inv.getController().setAttr("username", username);
return !StrKit.isBlank(username);
} catch (ExpiredJwtException e) {
System.err.println("Token expired");
ISEXPIRED = false;
return false;
} catch (Exception e) {
log.error("JWT验证出错", e);
return false;
}
}
/**
* 过滤IP地址白名单
*
* @Title: filterIpAddress
* @param ipAddr
* @return
* @author LDC
* @date 2019-11-22 06:51:24
*/
public boolean filterIpAddress(String ipAddr, String tokenIp) {
if (tokenIp != null && !"".equals(tokenIp) && ipAddr != null && !"".equals(ipAddr)
&& tokenIp.equals(ipAddr)) {
return true;
}
String ipArray = PropKit.get("MyIpAddress");
List<String> ipList = Arrays.asList(ipArray.split(","));
for (String ip : ipList) {
if (ip.equals(ipAddr) || ip.equals(tokenIp)) {
return true;
}
}
return false;
}
/**
* 获取用户真实IP
*
* @Title: getIpAddr
* @author LDC
* @date 2019-11-21 02:23:42
*/
public static String getIpAddr(HttpServletRequest request) {
String ip = request.getHeader("x-forwarded-for");
if (ip != null && ip.length() != 0 && !"unknown".equalsIgnoreCase(ip)) {
// 多次反向代理后会有多个ip值,第一个ip才是真实ip
if (ip.indexOf(",") != -1) {
ip = ip.split(",")[0];
}
}
if (ip == null || ip.length() == 0 || "unknown".equalsIgnoreCase(ip)) {
ip = request.getHeader("Proxy-Client-IP");
}
if (ip == null || ip.length() == 0 || "unknown".equalsIgnoreCase(ip)) {
ip = request.getHeader("WL-Proxy-Client-IP");
}
if (ip == null || ip.length() == 0 || "unknown".equalsIgnoreCase(ip)) {
ip = request.getHeader("HTTP_CLIENT_IP");
}
if (ip == null || ip.length() == 0 || "unknown".equalsIgnoreCase(ip)) {
ip = request.getHeader("HTTP_X_FORWARDED_FOR");
}
if (ip == null || ip.length() == 0 || "unknown".equalsIgnoreCase(ip)) {
ip = request.getHeader("X-Real-IP");
}
if (ip == null || ip.length() == 0 || "unknown".equalsIgnoreCase(ip)) {
ip = request.getRemoteAddr();
}
return ip;
}
}
package com.archser.sams.interceptor;
import java.security.Key;
import com.archser.sams.util.KeysUtil;
import com.jfinal.kit.StrKit;
import io.jsonwebtoken.Claims;
import io.jsonwebtoken.JwsHeader;
import io.jsonwebtoken.SigningKeyResolverAdapter;
/**
* 公钥提供解析器
*
* @author dgq
*
*/
public class JwtSigningKeyResolver extends SigningKeyResolverAdapter {
@Override
public Key resolveSigningKey(@SuppressWarnings("rawtypes") JwsHeader jwsHeader, Claims claims) {
String publickey =
"MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAiU9KE+Qx749AmzPo1CjX/fuPI5TD4NmiNhrB1yH8PtCCNj"
+ "PJ/ijGmjpdEICxb0nE5DShDGbm2m2wLVF99kdZFSJnbz8XvDH3tWYC+0UhgLUeUdxnEnsImGJArltex7YSBuMalg"
+ "8GuvkiriLhW/kKVEMEbj1UreuwhJOHQe0l+I7GbqlFEAs38OY2+hWp/OycSApvt2hm6gXYOXX6oBGx3B1ggIsSQV"
+ "/DkoWiCsbLvuJrN6AamX2VLVBwNn50lBWYInSp0KFD/W1dt46+xiRqu7toaCUebQI9kYqo+sapHHIXS8GAY5hjeG"
+ "bNMgX/lHGT9qQMDTvxsafJbYcn08/d+wIDAQAB";
if (publickey == null || StrKit.isBlank(publickey)) {
return null;
}
return KeysUtil.publickey(publickey);
}
}
package com.archser.sams.interceptor;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import com.jfinal.aop.Interceptor;
import com.jfinal.aop.Invocation;
import com.jfinal.core.Controller;
import com.jfinal.kit.Ret;
/**
* @used
* @author CoolColor
* @date 2019年12月1日
*/
public class UnifiedErrorInterceptor implements Interceptor{
private Controller controller;
private HttpServletResponse response;
@Override
public void intercept(Invocation inv) {
try {
controller = inv.getController();
HttpServletRequest request = controller.getRequest();
response=controller.getResponse();
String referer = request.getHeader("referer");
StringBuffer stringBuffer = new StringBuffer();
stringBuffer.append(request.getScheme()).append("://").append(request.getServerName());
if(referer!=null&&!"".equals(referer)) {
if(referer.lastIndexOf(String.valueOf(stringBuffer))!=0) {
//验证失败
response.setStatus(401);
controller.renderJson(Ret.fail("msg","CSRF validation failed"));
return;
}
}
String method = request.getMethod();
if(!"post".equalsIgnoreCase(method)&&!"get".equalsIgnoreCase(method)) {
response.setStatus(403);
controller.renderJson(Ret.fail("msg","please use post or get"));
return;
}
inv.invoke();
} catch (Exception e) {
e.printStackTrace();
response.setStatus(500);
controller.renderJson(Ret.fail("msg","serve error"));
return;
}
}
}
package com.archser.sams.model;
public class PoiModel {
//内容
private String content;
//上一行同一位置内容
private String oldContent;
//行标
private int rowIndex;
//列标
private int cellIndex;
public String getContent() {
return content;
}
public void setContent(String content) {
this.content = content;
}
public String getOldContent() {
return oldContent;
}
public void setOldContent(String oldContent) {
this.oldContent = oldContent;
}
public int getRowIndex() {
return rowIndex;
}
public void setRowIndex(int rowIndex) {
this.rowIndex = rowIndex;
}
public int getCellIndex() {
return cellIndex;
}
public void setCellIndex(int cellIndex) {
this.cellIndex = cellIndex;
}
}
package com.archser.sams.model;
import com.archser.sams.model.base.BaseSl3dLibrary;
/**
* s Generated by JFinal.
*/
@SuppressWarnings("serial")
public class Sl3dLibrary extends BaseSl3dLibrary<Sl3dLibrary> {
public static final Sl3dLibrary dao = new Sl3dLibrary().dao();
public static final String SEQ_NEXTVAL = "SEQ_SL_3D_LIBRARY.nextval";
}
package com.archser.sams.model;
import com.archser.sams.model.base.BaseSl3dModel;
/**
* Generated by JFinal.
*/
@SuppressWarnings("serial")
public class Sl3dModel extends BaseSl3dModel<Sl3dModel> {
public static final Sl3dModel dao = new Sl3dModel().dao();
public static final String SEQ_NEXTVAL = "SEQ_SL_3D_MODEL.nextval";
}
package com.archser.sams.model;
import com.archser.sams.model.base.BaseSlAlertLog;
/**
* Generated by JFinal.
*/
@SuppressWarnings("serial")
public class SlAlertLog extends BaseSlAlertLog<SlAlertLog> {
public static final SlAlertLog dao = new SlAlertLog().dao();
public static final String SEQ_NEXTVAL = "SEQ_SL_ALERT_LOG.nextval";
}
package com.archser.sams.model;
import com.archser.sams.model.base.BaseSlAlertNotification;
/**
* Generated by JFinal.
*/
@SuppressWarnings("serial")
public class SlAlertNotification extends BaseSlAlertNotification<SlAlertNotification> {
public static final SlAlertNotification dao = new SlAlertNotification().dao();
public static final String SEQ_NEXTVAL = "SEQ_SL_ALERT_NOTIFICATION.nextval";
}
package com.archser.sams.model;
import com.archser.sams.model.base.BaseSlAlertRelativeFailure;
/**
* Generated by JFinal.
*/
@SuppressWarnings("serial")
public class SlAlertRelativeFailure extends BaseSlAlertRelativeFailure<SlAlertRelativeFailure> {
public static final SlAlertRelativeFailure dao = new SlAlertRelativeFailure().dao();
public static final String SEQ_NEXTVAL = "SEQ_SL_ALERT_RELATIVE_FAILURE.nextval";
}
package com.archser.sams.model;
import com.archser.sams.model.base.BaseSlAlertType;
/**
* Generated by JFinal.
*/
@SuppressWarnings("serial")
public class SlAlertType extends BaseSlAlertType<SlAlertType> {
public static final SlAlertType dao = new SlAlertType().dao();
public static final String SEQ_NEXTVAL = "SEQ_SL_ALERT_TYPE.nextval";
}
package com.archser.sams.model;
import com.archser.sams.model.base.BaseSlArchivesCategoryAddNumPerMonth;
/**
* Generated by JFinal.
*/
@SuppressWarnings("serial")
public class SlArchivesCategoryAddNumPerMonth extends BaseSlArchivesCategoryAddNumPerMonth<SlArchivesCategoryAddNumPerMonth> {
public static final SlArchivesCategoryAddNumPerMonth dao = new SlArchivesCategoryAddNumPerMonth().dao();
}
package com.archser.sams.model;
import com.archser.sams.model.base.BaseSlArchivesCategoryTotal;
/**
* Generated by JFinal.
*/
@SuppressWarnings("serial")
public class SlArchivesCategoryTotal extends BaseSlArchivesCategoryTotal<SlArchivesCategoryTotal> {
public static final SlArchivesCategoryTotal dao = new SlArchivesCategoryTotal().dao();
}
package com.archser.sams.model;
import com.archser.sams.model.base.BaseSlArchivesUseTimesPerMonth;
/**
* Generated by JFinal.
*/
@SuppressWarnings("serial")
public class SlArchivesUseTimesPerMonth extends BaseSlArchivesUseTimesPerMonth<SlArchivesUseTimesPerMonth> {
public static final SlArchivesUseTimesPerMonth dao = new SlArchivesUseTimesPerMonth().dao();
}
package com.archser.sams.model;
import com.archser.sams.model.base.BaseSlControl;
public class SlControl extends BaseSlControl<SlControl> {
public static final SlControl dao = new SlControl().dao();
public static final String SEQ_NEXTVAL = "SEQ_SL_CONTROL.nextval";
}
package com.archser.sams.model;
import com.archser.sams.model.base.BaseSlEnvironmentLog;
/**
* Generated by JFinal.
*/
@SuppressWarnings("serial")
public class SlEnvironmentLog extends BaseSlEnvironmentLog<SlEnvironmentLog> {
public static final SlEnvironmentLog dao = new SlEnvironmentLog().dao();
public static final String SEQ_NEXTVAL = "SEQ_SL_ENVIRONMENT_LOG.nextval";
}
package com.archser.sams.model;
import com.archser.sams.model.base.BaseSlEnvironmentThreshold;
/**
* Generated by JFinal.
*/
@SuppressWarnings("serial")
public class SlEnvironmentThreshold extends BaseSlEnvironmentThreshold<SlEnvironmentThreshold> {
public static final SlEnvironmentThreshold dao = new SlEnvironmentThreshold().dao();
public static final String SEQ_NEXTVAL = "SEQ_SL_ENVIRONMENT_THRESHOLD.nextval";
}
package com.archser.sams.model;
import com.archser.sams.model.base.BaseSlEquipment;
/**
* Generated by JFinal.
*/
@SuppressWarnings("serial")
public class SlEquipment extends BaseSlEquipment<SlEquipment> {
public static final SlEquipment dao = new SlEquipment().dao();
public static final String SEQ_NEXTVAL = "SEQ_SL_EQUIPMENT.nextval";
}
package com.archser.sams.model;
import com.archser.sams.model.base.BaseSlEquipmentCategory;
/**
* Generated by JFinal.
*/
@SuppressWarnings("serial")
public class SlEquipmentCategory extends BaseSlEquipmentCategory<SlEquipmentCategory> {
public static final SlEquipmentCategory dao = new SlEquipmentCategory().dao();
public static final String SEQ_NEXTVAL = "SEQ_SL_EQUIPMENT_CATEGORY.nextval";
}
package com.archser.sams.model;
import com.archser.sams.model.base.BaseSlEquipmentModel;
/**
* Generated by JFinal.
*/
@SuppressWarnings("serial")
public class SlEquipmentModel extends BaseSlEquipmentModel<SlEquipmentModel> {
public static final SlEquipmentModel dao = new SlEquipmentModel().dao();
public static final String SEQ_NEXTVAL = "SEQ_SL_EQUIPMENT_MODEL.nextval";
}
package com.archser.sams.model;
import com.archser.sams.model.base.BaseSlEquipmentStatusLog;
/**
* Generated by JFinal.
*/
@SuppressWarnings("serial")
public class SlEquipmentStatusLog extends BaseSlEquipmentStatusLog<SlEquipmentStatusLog> {
public static final SlEquipmentStatusLog dao = new SlEquipmentStatusLog().dao();
public static final String SEQ_NEXTVAL = "SEQ_SL_EQUIPMENT_STATUS_LOG.nextval";
}
package com.archser.sams.model;
import com.archser.sams.model.base.BaseSlLibrary;
/**
* Generated by JFinal.
*/
@SuppressWarnings("serial")
public class SlLibrary extends BaseSlLibrary<SlLibrary> {
public static final SlLibrary dao = new SlLibrary().dao();
public static final String SEQ_NEXTVAL = "SEQ_SL_LIBRARY.nextval";
}
package com.archser.sams.model;
import com.archser.sams.model.base.BaseSlLog;
/**
* Generated by JFinal.
*/
@SuppressWarnings("serial")
public class SlLog extends BaseSlLog<SlLog> {
public static final SlLog dao = new SlLog().dao();
public static final String SEQ_NEXTVAL = "SEQ_SL_LOG.nextval";
}
package com.archser.sams.model;
import com.archser.sams.model.base.BaseSlModbusCode;
public class SlModbusCode extends BaseSlModbusCode<SlModbusCode> {
public static final SlModbusCode dao = new SlModbusCode().dao();
public static final String SEQ_NEXTVAL = "SEQ_SL_MODBUS_CODE.nextval";
}
package com.archser.sams.model;
import com.archser.sams.model.base.BaseSlModbusCodeLog;
public class SlModbusCodeLog extends BaseSlModbusCodeLog<SlModbusCodeLog> {
public static final SlEquipment dao = new SlEquipment().dao();
public static final String SEQ_NEXTVAL = "SEQ_SL_MODBUS_CODE_LOG.nextval";
}
package com.archser.sams.model;
import com.archser.sams.model.base.BaseSlOrgin;
/**
* Generated by JFinal.
*/
@SuppressWarnings("serial")
public class SlOrgin extends BaseSlOrgin<SlOrgin> {
public static final SlOrgin dao = new SlOrgin().dao();
public static final String SEQ_NEXTVAL = "SEQ_SL_ORGIN.nextval";
}
package com.archser.sams.model;
import com.archser.sams.model.base.BaseSlRole;
/**
* Generated by JFinal.
*/
@SuppressWarnings("serial")
public class SlRole extends BaseSlRole<SlRole> {
public static final SlRole dao = new SlRole().dao();
public static final String SEQ_NEXTVAL = "SEQ_SL_ROLE.nextval";
}
package com.archser.sams.model;
import com.archser.sams.model.base.BaseSlRoleLibrary;
/**
* Generated by JFinal.
*/
@SuppressWarnings("serial")
public class SlRoleLibrary extends BaseSlRoleLibrary<SlRoleLibrary> {
public static final SlRoleLibrary dao = new SlRoleLibrary().dao();
public static final String SEQ_NEXTVAL = "SEQ_SL_ROLE_LIBRARY.nextval";
}
package com.archser.sams.model;
import com.archser.sams.model.base.BaseSlRoleUser;
/**
* Generated by JFinal.
*/
@SuppressWarnings("serial")
public class SlRoleUser extends BaseSlRoleUser<SlRoleUser> {
public static final SlRoleUser dao = new SlRoleUser().dao();
public static final String SEQ_NEXTVAL = "SEQ_SL_ROLE_USER.nextval";
}
package com.archser.sams.model;
import com.archser.sams.model.base.BaseSlSnValue;
/**
* Generated by JFinal.
*/
@SuppressWarnings("serial")
public class SlSnValue extends BaseSlSnValue<SlSnValue> {
public static final SlSnValue dao = new SlSnValue().dao();
public static final String SEQ_NEXTVAL = "SEQ_SL_SN_VALUE.nextval";
}
package com.archser.sams.model;
import com.archser.sams.model.base.BaseSlStrategy;
/**
* Generated by JFinal.
*/
@SuppressWarnings("serial")
public class SlStrategy extends BaseSlStrategy<SlStrategy> {
public static final SlStrategy dao = new SlStrategy().dao();
}
package com.archser.sams.model;
import com.archser.sams.model.base.BaseSlSystems;
/**
* Generated by JFinal.
*/
@SuppressWarnings("serial")
public class SlSystems extends BaseSlSystems<SlSystems> {
public static final SlSystems dao = new SlSystems().dao();
public static final String SEQ_NEXTVAL = "SEQ_SL_SYSTEMS.nextval";
}
package com.archser.sams.model;
import com.archser.sams.model.base.BaseSlUser;
/**
* Generated by JFinal.
*/
@SuppressWarnings("serial")
public class SlUser extends BaseSlUser<SlUser> {
public static final SlUser dao = new SlUser().dao();
public static final String SEQ_NEXTVAL = "SEQ_SL_USER.nextval";
}
This diff is collapsed.
package com.archser.sams.model;
import com.jfinal.plugin.activerecord.ActiveRecordPlugin;
/**
* Generated by JFinal, do not modify this file.
* <pre>
* Example:
* public void configPlugin(Plugins me) {
* ActiveRecordPlugin arp = new ActiveRecordPlugin(...);
* _MappingKit.mapping(arp);
* me.add(arp);
* }
* </pre>
*/
public class _MappingKit {
public static void mapping(ActiveRecordPlugin arp) {
arp.addMapping("SL_3D_MODEL", "ID", Sl3dModel.class);
arp.addMapping("SL_3D_LIBRARY", "ID", Sl3dLibrary.class);
arp.addMapping("SL_ALERT_LOG", "ID", SlAlertLog.class);
arp.addMapping("SL_ALERT_NOTIFICATION", "ID", SlAlertNotification.class);
arp.addMapping("SL_ALERT_RELATIVE_FAILURE", "ID", SlAlertRelativeFailure.class);
arp.addMapping("SL_ALERT_TYPE", "ID", SlAlertType.class);
arp.addMapping("SL_CONTROL", "ID", SlControl.class);
arp.addMapping("SL_ENVIRONMENT_LOG", "ID", SlEnvironmentLog.class);
arp.addMapping("SL_ENVIRONMENT_THRESHOLD", "ID", SlEnvironmentThreshold.class);
arp.addMapping("SL_EQUIPMENT", "ID", SlEquipment.class);
arp.addMapping("SL_EQUIPMENT_CATEGORY", "ID", SlEquipmentCategory.class);
arp.addMapping("SL_EQUIPMENT_MODEL", "ID", SlEquipmentModel.class);
arp.addMapping("SL_LIBRARY", "ID", SlLibrary.class);
arp.addMapping("SL_LOG", "ID", SlLog.class);
arp.addMapping("SL_MODBUS_CODE", "ID", SlModbusCode.class);
arp.addMapping("SL_MODBUS_CODE_LOG", "ID", SlModbusCodeLog.class);
arp.addMapping("SL_ORGIN", "ID", SlOrgin.class);
arp.addMapping("SL_ROLE", "ID", SlRole.class);
arp.addMapping("SL_ROLE_LIBRARY", "ID", SlRoleLibrary.class);
arp.addMapping("SL_ROLE_USER", "ID", SlRoleUser.class);
arp.addMapping("SL_USER", "ID", SlUser.class);
arp.addMapping("SL_SN_VALUE", "ID", SlSnValue.class);
arp.addMapping("SL_SYSTEMS", "ID", SlSystems.class);
arp.addMapping("SL_ARCHIVES_CATEGORY_ADD_NUM_PER_MONTH", "ID", SlArchivesCategoryAddNumPerMonth.class);
arp.addMapping("SL_ARCHIVES_CATEGORY_TOTAL", "ID,CATEGORY", SlArchivesCategoryTotal.class);
arp.addMapping("SL_ARCHIVES_USE_TIMES_PER_MONTH", "ID,USE", SlArchivesUseTimesPerMonth.class);
arp.addMapping("SL_STRATEGY", "ID", SlStrategy.class);
}
}
package com.archser.sams.model.base;
import com.jfinal.plugin.activerecord.Model;
import com.jfinal.plugin.activerecord.IBean;
/**
* Generated by JFinal, do not modify this file.
*/
@SuppressWarnings("serial")
public abstract class BaseSl3dLibrary<M extends BaseSl3dLibrary<M>> extends Model<M> implements IBean {
/**
* 主键
*/
public void setID(java.lang.Integer ID) {
set("ID", ID);
}
/**
* 主键
*/
public java.lang.Integer getID() {
return getInt("ID");
}
/**
* 外键,库房ID,SL_LIBRARY.ID
*/
public void setLIBID(java.lang.Integer LIBID) {
set("LIB_ID", LIBID);
}
/**
* 外键,库房ID,SL_LIBRARY.ID
*/
public java.lang.Integer getLIBID() {
return getInt("LIB_ID");
}
/**
* JSON配置
*/
public void setJSON(java.lang.String JSON) {
set("JSON", JSON);
}
/**
* JSON配置
*/
public java.lang.String getJSON() {
return getStr("JSON");
}
}
package com.archser.sams.model.base;
import com.jfinal.plugin.activerecord.Model;
import com.jfinal.plugin.activerecord.IBean;
/**
* Generated by JFinal, do not modify this file.
*/
@SuppressWarnings("serial")
public abstract class BaseSl3dModel<M extends BaseSl3dModel<M>> extends Model<M> implements IBean {
/**
* 主键
*/
public void setID(java.lang.Integer ID) {
set("ID", ID);
}
/**
* 主键
*/
public java.lang.Integer getID() {
return getInt("ID");
}
/**
* 外键,设施类型,SL_CATEGORY.ID
*/
public void setUSERNAME(java.lang.Integer CATEGORYID) {
set("CATEGORY_ID", CATEGORYID);
}
/**
* 外键,设施类型,SL_CATEGORY.ID
*/
public java.lang.Integer getCATEGORYID() {
return getInt("CATEGORY_ID");
}
/**
* 设施名称
*/
public void setNAME(java.lang.String NAME) {
set("NAME", NAME);
}
/**
* 设施名称
*/
public java.lang.String getNAME() {
return getStr("NAME");
}
/**
* ICON
*/
public void setICON(java.lang.String ICON) {
set("ICON", ICON);
}
/**
* ICON
*/
public java.lang.String getICON() {
return getStr("ICON");
}
/**
* FILE
*/
public void setFILE(java.lang.String FILE) {
set("FILE", FILE);
}
/**
* FILE
*/
public java.lang.String getFILE() {
return getStr("FILE");
}
}
package com.archser.sams.model.base;
import com.jfinal.plugin.activerecord.IBean;
import com.jfinal.plugin.activerecord.Model;
/**
* Generated by JFinal, do not modify this file.
*/
@SuppressWarnings("serial")
public abstract class BaseSlAlertLog<M extends BaseSlAlertLog<M>> extends Model<M> implements IBean {
/**
* 主键
*/
public void setID(Integer ID) {
set("ID", ID);
}
/**
* 主键
*/
public Integer getID() {
return getInt("ID");
}
/**
* 外键,设备ID,SL_EQUIPMENT.ID
*/
public void setEquipmentId(Integer equipmentId) {
set("EQUIPMENT_ID", equipmentId);
}
/**
* 外键,设备ID,SL_EQUIPMENT.ID
*/
public Integer getEquipmentId() {
return getInt("EQUIPMENT_ID");
}
/**
* 警情发生时间
* @param TIME
*/
public void setTIME(String TIME) {
set("TIME", TIME);
}
public void setMUTE(Integer MUTE) {
set("MUTE", MUTE);
}
/**
* 警情发生时间
*/
public java.util.Date getTIME() {
return get("TIME");
}
/**
* 警情状态(0发生,3处理中,6已处理待恢复,9已处理)
*/
public void setSTATUS(Integer STATUS) {
set("STATUS", STATUS);
}
public void setRELIEVE(Integer RELIEVE) {
set("RELIEVE", RELIEVE);
}
/**
* 警情状态(0发生,3处理中,6已处理待恢复,9已处理)
*/
public Integer getSTATUS() {
return getInt("STATUS");
}
/**
* 处警(1真实,2误报,3本设备故障,4测试)
*/
public void setSITUATION(Integer SITUATION) {
set("SITUATION", SITUATION);
}
/**
* 处警(1真实,2误报,3本设备故障,4测试)
*/
public Integer getSITUATION() {
return getInt("SITUATION");
}
/**
* 接警时间
*/
public void setReceiveTime(java.util.Date receiveTime) {
set("RECEIVE_TIME", receiveTime);
}
/**
* 接警时间
*/
public java.util.Date getReceiveTime() {
return get("RECEIVE_TIME");
}
/**
* 外键,接警人ID,SL_USER.ID
*/
public void setReceiveUid(Integer receiveUid) {
set("RECEIVE_UID", receiveUid);
}
/**
* 外键,接警人ID,SL_USER.ID
*/
public Integer getReceiveUid() {
return getInt("RECEIVE_UID");
}
/**
* 警情登记时间
*/
public void setLogTime(java.util.Date logTime) {
set("LOG_TIME", logTime);
}
/**
* 警情登记时间
*/
public java.util.Date getLogTime() {
return get("LOG_TIME");
}
/**
* 外键,警情登记人ID,SL_USER.ID
*/
public void setLogUid(Integer logUid) {
set("LOG_UID", logUid);
}
/**
* 外键,警情登记人ID,SL_USER.ID
*/
public Integer getLogUid() {
return getInt("LOG_UID");
}
/**
* 最后更新时间
*/
public void setLastUpdateTime(java.util.Date lastUpdateTime) {
set("LAST_UPDATE_TIME", lastUpdateTime);
}
/**
* 最后更新时间
*/
public java.util.Date getLastUpdateTime() {
return get("LAST_UPDATE_TIME");
}
/**
* 外键,最后更新人ID,SL_USER.ID
*/
public void setLastUpdateUid(Integer lastUpdateUid) {
set("LAST_UPDATE_UID", lastUpdateUid);
}
/**
* 外键,最后更新人ID,SL_USER.ID
*/
public Integer getLastUpdateUid() {
return getInt("LAST_UPDATE_UID");
}
/**
* 说明
*/
public void setCOMMENTS(String COMMENTS) {
set("COMMENTS", COMMENTS);
}
/**
* 说明
*/
public String getCOMMENTS() {
return getStr("COMMENTS");
}
/**
* 外键,警情类型ID,ALERT_TYPE.ID
*/
public void setAlertTypeId(Integer alertTypeId) {
set("ALERT_TYPE_ID", alertTypeId);
}
/**
* 外键,警情类型ID,ALERT_TYPE.ID
*/
public Integer getAlertTypeId() {
return getInt("ALERT_TYPE_ID");
}
/**
* 警情信息,自动生成(如:温度过高)
*/
public void setINFO(String INFO) {
set("INFO", INFO);
}
/**
* 警情信息,自动生成(如:温度过高)
*/
public String getINFO() {
return getStr("INFO");
}
}
package com.archser.sams.model.base;
import com.jfinal.plugin.activerecord.Model;
import com.jfinal.plugin.activerecord.IBean;
/**
* Generated by JFinal, do not modify this file.
*/
@SuppressWarnings("serial")
public abstract class BaseSlAlertNotification<M extends BaseSlAlertNotification<M>> extends Model<M> implements IBean {
/**
* 主键
*/
public void setID(java.lang.Integer ID) {
set("ID", ID);
}
/**
* 主键
*/
public java.lang.Integer getID() {
return getInt("ID");
}
/**
* 外键,警情ID,SL_ALERT_LOG.ID
*/
public void setAlertId(java.lang.Integer alertId) {
set("ALERT_ID", alertId);
}
/**
* 外键,警情ID,SL_ALERT_LOG.ID
*/
public java.lang.Integer getAlertId() {
return getInt("ALERT_ID");
}
/**
* 外键,用户ID,SL_USER.ID
*/
public void setUserId(java.lang.Integer userId) {
set("USER_ID", userId);
}
/**
* 外键,用户ID,SL_USER.ID
*/
public java.lang.Integer getUserId() {
return getInt("USER_ID");
}
/**
* 短信发生状态(1发送失败,3发送成功)
*/
public void setMessageStatus(java.lang.Integer messageStatus) {
set("MESSAGE_STATUS", messageStatus);
}
/**
* 短信发生状态(1发送失败,3发送成功)
*/
public java.lang.Integer getMessageStatus() {
return getInt("MESSAGE_STATUS");
}
/**
* 电话接听状态(1未拨通,2拨通未接,3拨通已接)
*/
public void setCallStatus(java.lang.Integer callStatus) {
set("CALL_STATUS", callStatus);
}
/**
* 电话接听状态(1未拨通,2拨通未接,3拨通已接)
*/
public java.lang.Integer getCallStatus() {
return getInt("CALL_STATUS");
}
}
package com.archser.sams.model.base;
import com.jfinal.plugin.activerecord.Model;
import com.jfinal.plugin.activerecord.IBean;
/**
* Generated by JFinal, do not modify this file.
*/
@SuppressWarnings("serial")
public abstract class BaseSlAlertRelativeFailure<M extends BaseSlAlertRelativeFailure<M>> extends Model<M> implements IBean {
/**
* 主键
*/
public void setID(java.lang.Integer ID) {
set("ID", ID);
}
/**
* 主键
*/
public java.lang.Integer getID() {
return getInt("ID");
}
/**
* 外键,警情ID,SL_ALERT_LOG.ID
*/
public void setAlertId(java.lang.Integer alertId) {
set("ALERT_ID", alertId);
}
/**
* 外键,警情ID,SL_ALERT_LOG.ID
*/
public java.lang.Integer getAlertId() {
return getInt("ALERT_ID");
}
/**
* 外键,关联故障设备ID,SL_EQUIPMENT.ID
*/
public void setEquipmentId(java.lang.Integer equipmentId) {
set("EQUIPMENT_ID", equipmentId);
}
/**
* 外键,关联故障设备ID,SL_EQUIPMENT.ID
*/
public java.lang.Integer getEquipmentId() {
return getInt("EQUIPMENT_ID");
}
/**
* 其他故障设施
*/
public void setOTHER(java.lang.String OTHER) {
set("OTHER", OTHER);
}
/**
* 其他故障设施
*/
public java.lang.String getOTHER() {
return getStr("OTHER");
}
}
package com.archser.sams.model.base;
import com.jfinal.plugin.activerecord.Model;
import com.jfinal.plugin.activerecord.IBean;
/**
* Generated by JFinal, do not modify this file.
*/
@SuppressWarnings("serial")
public abstract class BaseSlAlertType<M extends BaseSlAlertType<M>> extends Model<M> implements IBean {
/**
* 主键
*/
public void setID(java.lang.Integer ID) {
set("ID", ID);
}
/**
* 主键
*/
public java.lang.Integer getID() {
return getInt("ID");
}
/**
* 警情名称
*/
public void setNAME(java.lang.String NAME) {
set("NAME", NAME);
}
/**
* 警情名称
*/
public java.lang.String getNAME() {
return getStr("NAME");
}
/**
* 警情等级(1.极其紧急,2.紧急,3.一般,4.提示)
*/
public void setLEVEL(java.lang.Integer LEVEL) {
set("LEVEL", LEVEL);
}
/**
* 警情等级(1.极其紧急,2.紧急,3.一般,4.提示)
*/
public java.lang.Integer getLEVEL() {
return getInt("LEVEL");
}
}
package com.archser.sams.model.base;
import com.jfinal.plugin.activerecord.Model;
import com.jfinal.plugin.activerecord.IBean;
/**
* Generated by JFinal, do not modify this file.
*/
@SuppressWarnings("serial")
public abstract class BaseSlArchivesCategoryAddNumPerMonth<M extends BaseSlArchivesCategoryAddNumPerMonth<M>> extends Model<M> implements IBean {
/**
* 主键
*/
public void setId(java.lang.Integer id) {
set("ID", id);
}
/**
* 主键
*/
public java.lang.Integer getId() {
return getInt("ID");
}
/**
* 库房名称
*/
public void setLibrary(java.lang.String library) {
set("LIBRARY", library);
}
/**
* 库房名称
*/
public java.lang.String getLibrary() {
return getStr("LIBRARY");
}
/**
* 种类
*/
public void setCategory(java.lang.String category) {
set("CATEGORY", category);
}
/**
* 种类
*/
public java.lang.String getCategory() {
return getStr("CATEGORY");
}
/**
* 数量
*/
public void setNum(java.lang.Integer num) {
set("NUM", num);
}
/**
* 数量
*/
public java.lang.Integer getNum() {
return getInt("NUM");
}
/**
* 年度
*/
public void setTYear(java.lang.Integer tYear) {
set("T_YEAR", tYear);
}
/**
* 年度
*/
public java.lang.Integer getTYear() {
return getInt("T_YEAR");
}
/**
* 月度/季度
*/
public void setTCustom(java.lang.Integer tCustom) {
set("T_CUSTOM", tCustom);
}
/**
* 月度/季度
*/
public java.lang.Integer getTCustom() {
return getInt("T_CUSTOM");
}
/**
* 季/月,名称
*/
public void setTCustomName(java.lang.String tCustomName) {
set("T_CUSTOM_NAME", tCustomName);
}
/**
* 季/月,名称
*/
public java.lang.String getTCustomName() {
return getStr("T_CUSTOM_NAME");
}
}
package com.archser.sams.model.base;
import com.jfinal.plugin.activerecord.Model;
import com.jfinal.plugin.activerecord.IBean;
/**
* Generated by JFinal, do not modify this file.
*/
@SuppressWarnings("serial")
public abstract class BaseSlArchivesCategoryTotal<M extends BaseSlArchivesCategoryTotal<M>> extends Model<M> implements IBean {
/**
* 主键
*/
public void setId(java.lang.Integer id) {
set("ID", id);
}
/**
* 主键
*/
public java.lang.Integer getId() {
return getInt("ID");
}
/**
* 库房名称
*/
public void setLibrary(java.lang.String library) {
set("LIBRARY", library);
}
/**
* 库房名称
*/
public java.lang.String getLibrary() {
return getStr("LIBRARY");
}
/**
* 种类
*/
public void setCategory(java.lang.String category) {
set("CATEGORY", category);
}
/**
* 种类
*/
public java.lang.String getCategory() {
return getStr("CATEGORY");
}
/**
* 总数
*/
public void setTotal(java.lang.Integer total) {
set("TOTAL", total);
}
/**
* 总数
*/
public java.lang.Integer getTotal() {
return getInt("TOTAL");
}
/**
* 在库数量
*/
public void setInLibrary(java.lang.Integer inLibrary) {
set("IN_LIBRARY", inLibrary);
}
/**
* 在库数量
*/
public java.lang.Integer getInLibrary() {
return getInt("IN_LIBRARY");
}
}
package com.archser.sams.model.base;
import com.jfinal.plugin.activerecord.Model;
import com.jfinal.plugin.activerecord.IBean;
/**
* Generated by JFinal, do not modify this file.
*/
@SuppressWarnings("serial")
public abstract class BaseSlArchivesUseTimesPerMonth<M extends BaseSlArchivesUseTimesPerMonth<M>> extends Model<M> implements IBean {
/**
* 主键
*/
public void setId(java.lang.Integer id) {
set("ID", id);
}
/**
* 主键
*/
public java.lang.Integer getId() {
return getInt("ID");
}
/**
* 库房名称
*/
public void setLibrary(java.lang.String library) {
set("LIBRARY", library);
}
/**
* 库房名称
*/
public java.lang.String getLibrary() {
return getStr("LIBRARY");
}
/**
* 利用
*/
public void setUse(java.lang.String use) {
set("USE", use);
}
/**
* 利用
*/
public java.lang.String getUse() {
return getStr("USE");
}
/**
* 次数
*/
public void setTimes(java.lang.Integer times) {
set("TIMES", times);
}
/**
* 次数
*/
public java.lang.Integer getTimes() {
return getInt("TIMES");
}
/**
* 年度
*/
public void setTYear(java.lang.Integer tYear) {
set("T_YEAR", tYear);
}
/**
* 年度
*/
public java.lang.Integer getTYear() {
return getInt("T_YEAR");
}
/**
* 月度/季度
*/
public void setTCustom(java.lang.Integer tCustom) {
set("T_CUSTOM", tCustom);
}
/**
* 月度/季度
*/
public java.lang.Integer getTCustom() {
return getInt("T_CUSTOM");
}
/**
* 季/月,名称
*/
public void setTCustomName(java.lang.String tCustomName) {
set("T_CUSTOM_NAME", tCustomName);
}
/**
* 季/月,名称
*/
public java.lang.String getTCustomName() {
return getStr("T_CUSTOM_NAME");
}
}
package com.archser.sams.model.base;
import com.jfinal.plugin.activerecord.IBean;
import com.jfinal.plugin.activerecord.Model;
/**
* Generated by JFinal, do not modify this file.
*/
@SuppressWarnings("serial")
public abstract class BaseSlControl <M extends BaseSlControl<M>> extends Model<M> implements IBean {
/**
* 主键
*/
public void setID(java.lang.Integer ID) {
set("ID", ID);
}
/**
* 主键
*/
public java.lang.Integer getID() {
return getInt("ID");
}
/**
* 外键,SL_EQUIPMENT.ID,设备ID
*/
public void setEQUIPMENTID(java.lang.Integer equipmentId) {
set("EQUIPMENT_ID", equipmentId);
}
/**
* 外键,SL_EQUIPMENT.ID,设备ID
*/
public java.lang.Integer getEQUIPMENTID() {
return getInt("EQUIPMENT_ID");
}
/**
* 指令(16进制)
*/
public void setCODEID(java.lang.Integer codeId) {
set("CODE_ID", codeId);
}
/**
* 指令(16进制)
*/
public java.lang.Integer getCODEID() {
return getInt("CODE_ID");
}
/**
* 状态(0待发,1已发,2送达)
*/
public void setSTATUS(java.lang.Integer status) {
set("STATUS", status);
}
/**
* 状态(0待发,1已发,2送达)
*/
public java.lang.Integer getSTATUS() {
return getInt("STATUS");
}
}
package com.archser.sams.model.base;
import com.jfinal.plugin.activerecord.Model;
import com.jfinal.plugin.activerecord.IBean;
/**
* Generated by JFinal, do not modify this file.
*/
@SuppressWarnings("serial")
public abstract class BaseSlEnvironmentLog<M extends BaseSlEnvironmentLog<M>> extends Model<M> implements IBean {
/**
* 主键
*/
public void setID(java.lang.Integer ID) {
set("ID", ID);
}
/**
* 主键
*/
public java.lang.Integer getID() {
return getInt("ID");
}
/**
* 外键,设备ID,SL_EQUIPMENT.ID
*/
public void setEquipmentId(java.lang.Integer equipmentId) {
set("EQUIPMENT_ID", equipmentId);
}
/**
* 外键,设备ID,SL_EQUIPMENT.ID
*/
public java.lang.Integer getEquipmentId() {
return getInt("EQUIPMENT_ID");
}
/**
* 阶段开始时间
*/
public void setStartTime(java.util.Date startTime) {
set("START_TIME", startTime);
}
/**
* 阶段开始时间
*/
public java.sql.Timestamp getStartTime() {
return get("START_TIME");
}
/**
* 时段内最低气温
*/
public void setTempLo(java.math.BigDecimal tempLo) {
set("TEMP_LO", tempLo);
}
/**
* 时段内最低气温
*/
public java.math.BigDecimal getTempLo() {
return get("TEMP_LO");
}
/**
* 时段内最低气温发生时间
*/
public void setTempLoTime(java.util.Date tempLoTime) {
set("TEMP_LO_TIME", tempLoTime);
}
/**
* 时段内最低气温发生时间
*/
public java.util.Date getTempLoTime() {
return get("TEMP_LO_TIME");
}
/**
* 时段内最高气温
*/
public void setTempHi(java.math.BigDecimal tempHi) {
set("TEMP_HI", tempHi);
}
/**
* 时段内最高气温
*/
public java.math.BigDecimal getTempHi() {
return get("TEMP_HI");
}
/**
* 时段内最高气温发生时间
*/
public void setTempHiTime(java.util.Date tempHiTime) {
set("TEMP_HI_TIME", tempHiTime);
}
/**
* 时段内最高气温发生时间
*/
public java.util.Date getTempHiTime() {
return get("TEMP_HI_TIME");
}
/**
* 时段内最低湿度
*/
public void setHumidityLo(java.math.BigDecimal humidityLo) {
set("HUMIDITY_LO", humidityLo);
}
/**
* 时段内最低湿度
*/
public java.math.BigDecimal getHumidityLo() {
return get("HUMIDITY_LO");
}
/**
* 时段内最低温度发生时间
*/
public void setHumidityLoTime(java.util.Date humidityLoTime) {
set("HUMIDITY_LO_TIME", humidityLoTime);
}
/**
* 时段内最低温度发生时间
*/
public java.util.Date getHumidityLoTime() {
return get("HUMIDITY_LO_TIME");
}
/**
* 时段内最高湿度
*/
public void setHumidityHi(java.math.BigDecimal humidityHi) {
set("HUMIDITY_HI", humidityHi);
}
/**
* 时段内最高湿度
*/
public java.math.BigDecimal getHumidityHi() {
return get("HUMIDITY_HI");
}
/**
* 时段内最高湿度发生时间
*/
public void setHumidityHiTime(java.util.Date humidityHiTime) {
set("HUMIDITY_HI_TIME", humidityHiTime);
}
/**
* 时段内最高湿度发生时间
*/
public java.util.Date getHumidityHiTime() {
return get("HUMIDITY_HI_TIME");
}
/**
* 时段内PM2.5最高值
*/
public void setPm25Hi(java.math.BigDecimal pm25Hi) {
set("PM25_HI", pm25Hi);
}
/**
* 时段内PM2.5最高值
*/
public java.math.BigDecimal getPm25Hi() {
return get("PM25_HI");
}
/**
* 时段内PM2.5最高值发生时间
*/
public void setPm25HiTime(java.util.Date pm25HiTime) {
set("PM25_HI_TIME", pm25HiTime);
}
/**
* 时段内PM2.5最高值发生时间
*/
public java.util.Date getPm25HiTime() {
return get("PM25_HI_TIME");
}
/**
* 时段内PM10最高值
*/
public void setPm10Hi(java.math.BigDecimal pm10Hi) {
set("PM10_HI", pm10Hi);
}
/**
* 时段内PM10最高值
*/
public java.math.BigDecimal getPm10Hi() {
return get("PM10_HI");
}
/**
* 时段内PM10最高值发生时间
*/
public void setPm10HiTime(java.util.Date pm10HiTime) {
set("PM10_HI_TIME", pm10HiTime);
}
/**
* 时段内PM10最高值发生时间
*/
public java.util.Date getPm10HiTime() {
return get("PM10_HI_TIME");
}
/**
* 时段内CO2最高值
*/
public void setCo2Hi(java.math.BigDecimal co2Hi) {
set("CO2_HI", co2Hi);
}
/**
* 时段内CO2最高值
*/
public java.math.BigDecimal getCo2Hi() {
return get("CO2_HI");
}
/**
* 时段内SO2最高值
*/
public void setSo2Hi(java.math.BigDecimal so2Hi) {
set("SO2_HI", so2Hi);
}
/**
* 时段内So2最高值
*/
public java.math.BigDecimal getSo2Hi() {
return get("SO2_HI");
}
/**
* 时段内CH2O最高值
*/
public void setCh2oHi(java.math.BigDecimal ch2oHi) {
set("CH2O_HI", ch2oHi);
}
/**
* 时段内CH2O最高值
*/
public java.math.BigDecimal getCh2oHi() {
return get("CH2O_HI");
}
/**
* 时段内TVOC最高值
*/
public void setTvocHi(java.math.BigDecimal tvocHi) {
set("TVOC_HI", tvocHi);
}
/**
* 时段内TVOC最高值
*/
public java.math.BigDecimal getTvocHi() {
return get("TVOC_HI");
}
/**
* 时段内照度最高值
*/
public void setIlluminanceHi(java.math.BigDecimal illuminanceHi) {
set("ILLUMINANCE_HI", illuminanceHi);
}
/**
* 时段内照度最高值
*/
public java.math.BigDecimal getIlluminanceHi() {
return get("ILLUMINANCE_HI");
}
/**
* 时段内更新次数,便于调试
*/
public void setUpdateTimes(java.lang.Integer updateTimes) {
set("UPDATE_TIMES", updateTimes);
}
/**
* 时段内更新次数,便于调试
*/
public java.lang.Integer getUpdateTimes() {
return getInt("UPDATE_TIMES");
}
/**
* 最新温度
*/
public void setTEMP(java.math.BigDecimal TEMP) {
set("TEMP", TEMP);
}
/**
* 最新温度
*/
public java.math.BigDecimal getTEMP() {
return get("TEMP");
}
/**
* 最新湿度
*/
public void setHUMIDITY(java.math.BigDecimal HUMIDITY) {
set("HUMIDITY", HUMIDITY);
}
/**
* 最新湿度
*/
public java.math.BigDecimal getHUMIDITY() {
return get("HUMIDITY");
}
}
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment