diff --git a/src/main/java/com/sipai/controller/data/BaiDuAipSpeechController.java b/src/main/java/com/sipai/controller/data/BaiDuAipSpeechController.java index 32c4fb20..523d76e6 100644 --- a/src/main/java/com/sipai/controller/data/BaiDuAipSpeechController.java +++ b/src/main/java/com/sipai/controller/data/BaiDuAipSpeechController.java @@ -22,13 +22,13 @@ import org.springframework.stereotype.Controller; import org.springframework.ui.Model; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.servlet.ModelAndView; -import sun.misc.BASE64Decoder; import javax.annotation.Resource; import javax.servlet.http.HttpServletRequest; import java.io.File; import java.io.FileOutputStream; import java.io.OutputStream; +import java.util.Base64; import java.util.HashMap; import java.util.List; @@ -92,15 +92,9 @@ public class BaiDuAipSpeechController { String type = request.getParameter("type"); String upfile_b64 = request.getParameter("upfile_b64"); - BASE64Decoder decoder = new BASE64Decoder(); try { //Base64解码 - byte[] b = decoder.decodeBuffer(upfile_b64); - for (int i = 0; i < b.length; ++i) { - if (b[i] < 0) {//调整异常数据 - b[i] += 256; - } - } + byte[] b = Base64.getMimeDecoder().decode(upfile_b64); String imgFilePath = "D:\\audio\\recorder.mp3"; File fileUploadPath = new File("D:\\audio"); if (!fileUploadPath.exists()) { @@ -129,15 +123,9 @@ public class BaiDuAipSpeechController { String type = request.getParameter("type"); String upfile_b64 = request.getParameter("upfile_b64"); - BASE64Decoder decoder = new BASE64Decoder(); try { //Base64解码 - byte[] b = decoder.decodeBuffer(upfile_b64); - for (int i = 0; i < b.length; ++i) { - if (b[i] < 0) {//调整异常数据 - b[i] += 256; - } - } + byte[] b = Base64.getMimeDecoder().decode(upfile_b64); String imgFilePath = "D:\\audio\\recorder.mp3"; File fileUploadPath = new File("D:\\audio"); if (!fileUploadPath.exists()) { diff --git a/src/main/java/com/sipai/controller/user/UserController.java b/src/main/java/com/sipai/controller/user/UserController.java index 7a737c9b..afc33351 100644 --- a/src/main/java/com/sipai/controller/user/UserController.java +++ b/src/main/java/com/sipai/controller/user/UserController.java @@ -30,7 +30,6 @@ import org.springframework.web.bind.annotation.RequestParam; import org.springframework.web.multipart.MultipartFile; import org.springframework.web.multipart.MultipartHttpServletRequest; import org.springframework.web.servlet.ModelAndView; -import sun.misc.BASE64Encoder; import javax.annotation.Resource; import javax.servlet.http.HttpServletRequest; @@ -41,6 +40,7 @@ import java.io.InputStream; import java.io.UnsupportedEncodingException; import java.text.ParseException; import java.text.SimpleDateFormat; +import java.util.Base64; import java.util.*; import java.util.stream.Collectors; @@ -593,8 +593,7 @@ public class UserController { in.read(data); in.close(); //将二进制字节用base64编码,以字符串方式存到数据库中 - BASE64Encoder encoder = new BASE64Encoder(); - String headPortrait = encoder.encode(data); + String headPortrait = Base64.getEncoder().encodeToString(data); User cu = (User) request.getSession().getAttribute("cu"); UserDetail userDetail = this.userDetailService.selectByUserId(cu.getId()); int res = 0; diff --git a/src/main/java/com/sipai/controller/work/WordAnalysisReportStructureController.java b/src/main/java/com/sipai/controller/work/WordAnalysisReportStructureController.java index d2854eec..6af59b02 100644 --- a/src/main/java/com/sipai/controller/work/WordAnalysisReportStructureController.java +++ b/src/main/java/com/sipai/controller/work/WordAnalysisReportStructureController.java @@ -18,7 +18,6 @@ import org.springframework.ui.Model; import org.springframework.web.bind.annotation.ModelAttribute; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestParam; -import sun.misc.BASE64Decoder; import javax.annotation.Resource; import javax.script.ScriptEngine; @@ -32,6 +31,7 @@ import java.io.IOException; import java.io.OutputStream; import java.math.BigDecimal; import java.text.DecimalFormat; +import java.util.Base64; import java.util.List; @SuppressWarnings({"restriction", "unused"}) @@ -719,12 +719,7 @@ public class WordAnalysisReportStructureController { String id = strconts[0]; String img = strconts[2]; - byte[] b2 = new BASE64Decoder().decodeBuffer(img); - for (int i = 0; i < b2.length; ++i) { - if (b2[i] < 0) {// 调整异常数据 - b2[i] += 256; - } - } + byte[] b2 = Base64.getMimeDecoder().decode(img); // 生成png图片 String contextPath = request.getContextPath().replace("/", ""); String filepathSever = request.getSession().getServletContext().getRealPath(""); diff --git a/src/main/java/com/sipai/dao/scada/MPointDao.java b/src/main/java/com/sipai/dao/scada/MPointDao.java index ffbaefe9..d23cfde6 100644 --- a/src/main/java/com/sipai/dao/scada/MPointDao.java +++ b/src/main/java/com/sipai/dao/scada/MPointDao.java @@ -69,4 +69,4 @@ public class MPointDao extends CommDaoImpl{ paramMap.put("mpointcode",mpointcode); return this.getSqlSession().delete("scada.MPointMapper.updateLalarmmin", paramMap); } -} \ No newline at end of file +} diff --git a/src/main/java/com/sipai/service/work/CameraService.java b/src/main/java/com/sipai/service/work/CameraService.java index 90b51fe6..5d85c602 100644 --- a/src/main/java/com/sipai/service/work/CameraService.java +++ b/src/main/java/com/sipai/service/work/CameraService.java @@ -17,7 +17,6 @@ import net.sf.json.JSONArray; import net.sf.json.JSONObject; import org.apache.commons.lang3.StringUtils; import org.springframework.stereotype.Service; -import sun.misc.BASE64Decoder; import javax.annotation.Resource; import javax.servlet.http.HttpServletRequest; @@ -25,6 +24,7 @@ import java.io.ByteArrayInputStream; import java.io.IOException; import java.io.InputStream; import java.util.ArrayList; +import java.util.Base64; import java.util.HashMap; import java.util.List; import java.util.Map; @@ -584,12 +584,7 @@ public class CameraService implements CommService { // System.out.println(imgData); - byte[] b = new BASE64Decoder().decodeBuffer(imgData); - for (int i = 0; i < b.length; ++i) { - if (b[i] < 0) {// 调整异常数据 - b[i] += 256; - } - } + byte[] b = Base64.getMimeDecoder().decode(imgData); InputStream in = new ByteArrayInputStream(b); minioTemplate.makeBucket(nameSpace); minioTemplate.putObject(nameSpace, rid + "_" + filePath + ".jpg", in, null, null, null, contentType); diff --git a/src/main/java/com/sipai/tools/CameraCall.java b/src/main/java/com/sipai/tools/CameraCall.java index da829694..6735bb79 100644 --- a/src/main/java/com/sipai/tools/CameraCall.java +++ b/src/main/java/com/sipai/tools/CameraCall.java @@ -9,6 +9,7 @@ import org.slf4j.LoggerFactory; import java.io.*; import java.nio.ByteBuffer; +import java.nio.charset.Charset; import java.text.DateFormat; import java.text.SimpleDateFormat; import java.util.Date; @@ -19,6 +20,7 @@ import java.util.logging.Logger; public class CameraCall { private static HCNetSDK2 hcNetSDK = HCNetSDK2.INSTANCE; private static org.slf4j.Logger logger = LoggerFactory.getLogger(CameraCall.class); + private static final Charset GBK = Charset.forName("GBK"); HCNetSDK2.NET_DVR_USER_LOGIN_INFO m_strLoginINFO = new HCNetSDK2.NET_DVR_USER_LOGIN_INFO(); //HCNetSDK2.NET_DVR_DEVICEINFO_V40 m_strDeviceInfo = new HCNetSDK2.NET_DVR_DEVICEINFO_V40(); static HCNetSDK2.NET_DVR_DEVICEINFO_V30 m_strDeviceInfo = new HCNetSDK2.NET_DVR_DEVICEINFO_V30(); @@ -493,17 +495,8 @@ public class CameraCall { Pointer pPlateInfo = strPlateResult.getPointer(); pPlateInfo.write(0, pAlarmInfo.getByteArray(0, strPlateResult.size()), 0, strPlateResult.size()); strPlateResult.read(); - try { - String srt3=new String(strPlateResult.struPlateInfo.sLicense,"GBK"); - sAlarmType = sAlarmType + ":交通抓拍上传,车牌:"+ srt3; - } - catch (UnsupportedEncodingException e1) { - // TODO Auto-generated catch block - e1.printStackTrace(); - } catch (IOException e) { - // TODO Auto-generated catch block - e.printStackTrace(); - } + String plateNo=new String(strPlateResult.struPlateInfo.sLicense, GBK); + sAlarmType = sAlarmType + ":交通抓拍上传,车牌:"+ plateNo; //报警设备IP地址 sIP = new String(pAlarmer.sDeviceIP).split("\0", 2); @@ -539,17 +532,8 @@ public class CameraCall { Pointer pItsPlateInfo = strItsPlateResult.getPointer(); pItsPlateInfo.write(0, pAlarmInfo.getByteArray(0, strItsPlateResult.size()), 0, strItsPlateResult.size()); strItsPlateResult.read(); - try { - String srt3=new String(strItsPlateResult.struPlateInfo.sLicense,"GBK"); - sAlarmType = sAlarmType + ",车辆类型:"+strItsPlateResult.byVehicleType + ",交通抓拍上传,车牌:"+ srt3; - } - catch (UnsupportedEncodingException e1) { - // TODO Auto-generated catch block - e1.printStackTrace(); - } catch (IOException e) { - // TODO Auto-generated catch block - e.printStackTrace(); - } + String itsPlateNo=new String(strItsPlateResult.struPlateInfo.sLicense, GBK); + sAlarmType = sAlarmType + ",车辆类型:"+strItsPlateResult.byVehicleType + ",交通抓拍上传,车牌:"+ itsPlateNo; //报警设备IP地址 sIP = new String(pAlarmer.sDeviceIP).split("\0", 2); @@ -626,19 +610,10 @@ public class CameraCall { Pointer pItsParkVehicle = strItsParkVehicle.getPointer(); pItsParkVehicle.write(0, pAlarmInfo.getByteArray(0, strItsParkVehicle.size()), 0, strItsParkVehicle.size()); strItsParkVehicle.read(); - try { - String srtParkingNo=new String(strItsParkVehicle.byParkingNo).trim(); //车位编号 - String srtPlate=new String(strItsParkVehicle.struPlateInfo.sLicense,"GBK").trim(); //车牌号码 - sAlarmType = sAlarmType + ",停产场数据,车位编号:"+ srtParkingNo + ",车位状态:" - + strItsParkVehicle.byLocationStatus+ ",车牌:"+ srtPlate; - } - catch (UnsupportedEncodingException e1) { - // TODO Auto-generated catch block - e1.printStackTrace(); - } catch (IOException e) { - // TODO Auto-generated catch block - e.printStackTrace(); - } + String srtParkingNo=new String(strItsParkVehicle.byParkingNo).trim(); //车位编号 + String srtPlate2=new String(strItsParkVehicle.struPlateInfo.sLicense, GBK).trim(); //车牌号码 + sAlarmType = sAlarmType + ",停产场数据,车位编号:"+ srtParkingNo + ",车位状态:" + + strItsParkVehicle.byLocationStatus+ ",车牌:"+ srtPlate2; //报警设备IP地址 sIP = new String(pAlarmer.sDeviceIP).split("\0", 2); @@ -679,15 +654,9 @@ public class CameraCall { pTFSInfo.write(0, pAlarmInfo.getByteArray(0, strTFSAlarmInfo.size()), 0, strTFSAlarmInfo.size()); strTFSAlarmInfo.read(); - try { - String srtPlate=new String(strTFSAlarmInfo.struPlateInfo.sLicense,"GBK").trim(); //车牌号码 - sAlarmType = sAlarmType + ":交通取证报警信息,违章类型:"+ strTFSAlarmInfo.dwIllegalType + ",车牌号码:" + srtPlate - + ",车辆出入状态:" + strTFSAlarmInfo.struAIDInfo.byVehicleEnterState; - } - catch (UnsupportedEncodingException e1) { - // TODO Auto-generated catch block - e1.printStackTrace(); - } + String srtPlate=new String(strTFSAlarmInfo.struPlateInfo.sLicense, GBK).trim(); //车牌号码 + sAlarmType = sAlarmType + ":交通取证报警信息,违章类型:"+ strTFSAlarmInfo.dwIllegalType + ",车牌号码:" + srtPlate + + ",车辆出入状态:" + strTFSAlarmInfo.struAIDInfo.byVehicleEnterState; //报警设备IP地址 sIP = new String(strTFSAlarmInfo.struDevInfo.struDevIP.sIpV4).split("\0", 2); @@ -1045,7 +1014,7 @@ public class CameraCall { sIP = new String(pAlarmer.sDeviceIP).split("\0", 2); break; } - } catch (UnsupportedEncodingException ex) { + } catch (Exception ex) { Logger.getLogger(CameraCall.class.getName()).log(Level.SEVERE, null, ex); } return true; diff --git a/src/main/java/com/sipai/tools/UEditorUtil.java b/src/main/java/com/sipai/tools/UEditorUtil.java index 8834dde9..2f91bb5e 100644 --- a/src/main/java/com/sipai/tools/UEditorUtil.java +++ b/src/main/java/com/sipai/tools/UEditorUtil.java @@ -8,11 +8,11 @@ import org.apache.commons.fileupload.FileUploadException; import org.apache.commons.fileupload.disk.DiskFileItemFactory; import org.apache.commons.fileupload.servlet.ServletFileUpload; import org.apache.commons.fileupload.util.Streams; -import sun.misc.BASE64Decoder; import javax.servlet.http.HttpServletRequest; import java.io.*; import java.text.SimpleDateFormat; +import java.util.Base64; import java.util.*; /** @@ -129,16 +129,10 @@ public class UEditorUtil { String base64Data = this.request.getParameter(fieldName); this.fileName = this.getName("test.png"); this.url = savePath + "/" + this.fileName; - BASE64Decoder decoder = new BASE64Decoder(); try { File outFile = new File(this.getPhysicalPath(this.url)); OutputStream ro = new FileOutputStream(outFile); - byte[] b = decoder.decodeBuffer(base64Data); - for (int i = 0; i < b.length; ++i) { - if (b[i] < 0) { - b[i] += 256; - } - } + byte[] b = Base64.getMimeDecoder().decode(base64Data); ro.write(b); ro.flush(); ro.close(); diff --git a/src/main/resources/db.properties b/src/main/resources/db.properties index 1a22edc6..2cda13d9 100644 --- a/src/main/resources/db.properties +++ b/src/main/resources/db.properties @@ -1,11 +1,11 @@ driver=com.microsoft.sqlserver.jdbc.SQLServerDriver -#url=jdbc:sqlserver://127.0.0.1:1433;DatabaseName=SIPAIIS_WMS_HQAQ -url=jdbc:sqlserver://122.51.194.184:1433;DatabaseName=SIPAIIS_WMS_HQAQ +url=jdbc:sqlserver://127.0.0.1:1433;DatabaseName=SIPAIIS_WMS_HQAQ +#url=jdbc:sqlserver://122.51.194.184:1433;DatabaseName=SIPAIIS_WMS_HQAQ username=sa password=P76XB3nm36aMkN6n -#scada-url=jdbc:sqlserver://127.0.0.1:1433;DatabaseName=EIP_PRD_HQWS -scada-url=jdbc:sqlserver://122.51.194.184:1433;DatabaseName=EIP_PRD_HQWS +scada-url=jdbc:sqlserver://127.0.0.1:1433;DatabaseName=EIP_PRD_HQWS +#scada-url=jdbc:sqlserver://122.51.194.184:1433;DatabaseName=EIP_PRD_HQWS scada-username=sa scada-password=P76XB3nm36aMkN6n diff --git a/src/main/resources/mpoint_search_mapping.json b/src/main/resources/mpoint_search_mapping.json index 17b75584..7c42ecf3 100644 --- a/src/main/resources/mpoint_search_mapping.json +++ b/src/main/resources/mpoint_search_mapping.json @@ -1,5 +1,11 @@ { "properties": { + "id": { + "type": "keyword" + }, + "mpointid": { + "type": "keyword" + }, "parmname": { "type": "text", "analyzer": "ik_smart", @@ -8,6 +14,9 @@ "mpointcode": { "type": "keyword", "normalizer": "my_normalizer" + }, + "measuredt": { + "type": "date" } } -} \ No newline at end of file +} diff --git a/src/main/resources/mpoint_search_setting.json b/src/main/resources/mpoint_search_setting.json index 8d97eeff..d515d02a 100644 --- a/src/main/resources/mpoint_search_setting.json +++ b/src/main/resources/mpoint_search_setting.json @@ -1,31 +1,29 @@ { - "settings": { - "analysis": { - "analyzer": { - "char_analyzer": { - "char_filter": [ - "split_by_whitespace_filter" - ], - "tokenizer": "whitespace" - } - }, - "char_filter": { - "split_by_whitespace_filter": { - "type": "pattern_replace", - "pattern": "(.+?)", - "replacement": "$1 " - } + "analysis": { + "normalizer": { + "my_normalizer": { + "type": "custom", + "char_filter": [], + "filter": [ + "lowercase", + "asciifolding" + ] } - } - }, - "mappings": { - "like_search_type": { - "properties": { - "name": { - "type": "text", - "analyzer": "char_analyzer" - } + }, + "analyzer": { + "char_analyzer": { + "char_filter": [ + "split_by_whitespace_filter" + ], + "tokenizer": "whitespace" + } + }, + "char_filter": { + "split_by_whitespace_filter": { + "type": "pattern_replace", + "pattern": "(.+?)", + "replacement": "$1 " } } } -} \ No newline at end of file +} diff --git a/src/main/resources/redis.properties b/src/main/resources/redis.properties index d86b5c6b..ac6dabda 100644 --- a/src/main/resources/redis.properties +++ b/src/main/resources/redis.properties @@ -1,9 +1,9 @@ #redis���� -redis.host=122.51.194.184 -# redis.host=127.0.0.1 +# redis.host=122.51.194.184 +redis.host=127.0.0.1 #����single ��Ⱥcluster redis.mode=single -redis.port=26739 +redis.port=6379 # redis.port=6379 redis.password=Aa112211 redis.maxIdle=100 @@ -22,6 +22,6 @@ defaultCacheExpireTime=3600 fep.local.cache.capacity =10000 #cluster -cluster1.host.port=122.51.194.184: 26739 +#cluster1.host.port=127.0.0.1:6379 diff --git a/src/main/webapp/JS/commVisual.js b/src/main/webapp/JS/commVisual.js index 6b69a4e2..79b467a7 100644 --- a/src/main/webapp/JS/commVisual.js +++ b/src/main/webapp/JS/commVisual.js @@ -204,4 +204,4 @@ function GetLunarDay(solarYear, solarMonth, solarDay) { e2c(solarYear, solarMonth, solarDay); return GetcDateString(); } -} \ No newline at end of file +} diff --git a/使用说明文档.md b/使用说明文档.md deleted file mode 100644 index c77b4f5f..00000000 --- a/使用说明文档.md +++ /dev/null @@ -1,205 +0,0 @@ -# SIPAIIS_WMS_JSSW 项目使用说明文档 - -## 项目概述 - -SIPAIIS_WMS_JSSW 是一个基于Java的污水处理管理平台(SIPAIIS Wastewater Management System for JSSW),旨在提供全过程的监控、管理和优化服务。该系统采用Spring框架、MyBatis ORM、Activiti工作流引擎等技术栈,支持多种集成如Redis缓存、RabbitMQ消息队列、MQTT物联网通信等。 - -### 技术栈 -- **后端框架**: Spring 5.1.12, Spring MVC, Spring Security -- **数据库ORM**: MyBatis 3.5.1 -- **工作流**: Activiti 5.22.0 -- **缓存**: Redis, Redisson -- **消息队列**: RabbitMQ, Spring AMQP -- **物联网**: MQTT (Eclipse Paho), Modbus -- **搜索**: Elasticsearch -- **定时任务**: Quartz, XXL-Job -- **WebSocket**: 实时通信 -- **报表**: JasperReports, iText PDF -- **Excel处理**: Apache POI, EasyExcel -- **对象存储**: MinIO -- **其他**: Hutool工具库, Lombok, Knife4j API文档 - -### 部署环境 -- **Java版本**: JDK 1.8 -- **应用服务器**: 支持WAR包部署,如Tomcat, Jetty -- **数据库**: SQL Server (推荐), 支持其他JDBC兼容数据库 -- **端口**: 默认8088 (Jetty) - -## 功能点梳理 - -基于项目中的功能清单,系统包含以下主要功能模块: - -### 1. 用户管理 -- 用户信息增删改查 -- 部门组织架构管理 -- 角色权限管理 -- 菜单配置 - -### 2. 监控与报警 -- 测点数据管理 -- 报警记录管理 -- 报警类型配置 -- 设备监控 - -### 3. 设备管理 -- 设备基本信息管理 -- 设备类型分类 -- 设备生命周期管理(采购、入库、出库、维修、保养、巡检、点检、润滑、校准、报废等) -- 设备统计、分析、排名、对比、预警 -- BIM设备关联与巡检 - -### 4. 工单管理 -- 工作工单管理 -- 维修工单处理 -- 保养工单管理 -- 工单执行与跟踪 - -### 5. 备品备件管理 -- 备件库存管理 -- 采购记录管理 -- 库存调拨管理 - -### 6. 视频监控 -- 摄像头管理 -- NVR设备管理 - -### 7. 巡检与考核 -- 巡检计划与记录 -- KPI考核指标、计划、结果 - -### 8. 消息与通知 -- 系统消息管理 -- 短信用户管理 - -### 9. 工作流管理 -- 工作流流程管理 -- 请假申请 -- 任务管理 - -### 10. 文档管理 -- 文档资料管理 -- 图书资料管理 -- 图纸管理 - -### 11. 报表与分析 -- 数据报表管理 -- 工作日报管理 -- 能源数据监控 -- 生产工艺参数 -- 生产指标管理 - -### 12. 可视化展示 -- 大屏数据可视化 -- 工艺流程图管理 -- 页面布局配置 - -### 13. 计划与交互 -- 生产计划管理 -- 页面交互配置 -- 数据类型定义 - -### 14. BIM管理 -- BIM模型管理 -- BIM巡检路线 -- BIM设备关联 -- BIM报警记录 - -### 15. 其他模块 -- 缓存数据管理 -- JSP配置 -- 第三方接口集成 - -## 功能点间相互依赖关系 - -### 核心依赖关系 -- **设备管理** 是基础模块,其他模块如报警、工单、巡检、BIM等均依赖设备数据。 -- **测点与报警**: 报警依赖测点数据和设备状态。 -- **工单管理**: 维修、保养工单依赖设备信息和工作流引擎。 -- **工作流**: 工单、请假、任务等流程依赖Activiti工作流。 -- **巡检与KPI**: 巡检记录影响KPI考核结果。 -- **BIM**: BIM设备关联依赖设备管理,BIM报警依赖报警模块。 -- **报表与可视化**: 依赖各模块数据进行统计和展示。 -- **消息通知**: 报警、工单等事件触发消息发送。 -- **缓存与消息队列**: Redis用于缓存热点数据,RabbitMQ用于异步处理,MQTT用于设备通信。 - -### 数据流依赖 -- 用户权限控制贯穿所有模块。 -- 设备数据是中心,影响报警、工单、统计等。 -- 工作流驱动业务流程,如工单审批。 -- 集成技术(Redis、MQ、ES)支持高性能和实时性。 - -## 安装与部署 - -### 环境要求 -- JDK 1.8+ -- Maven 3.6+ -- 数据库:SQL Server 2012+ 或兼容JDBC数据库 -- Redis 2.6+ -- RabbitMQ 5.9+ -- Elasticsearch 3.2+ -- MinIO (可选,用于文件存储) - -### 部署步骤 -1. **克隆或下载项目**: - ``` - git clone - cd SIPAIIS_WMS_JSSW - ``` - -2. **配置数据库**: - - 编辑 `src/main/resources/db.properties` 配置数据库连接。 - - 执行数据库脚本初始化表结构。 - -3. **配置其他服务**: - - 编辑 `config.properties`, `redis.properties`, `rabbitmq.properties`, `mqtt.properties` 等配置文件。 - - 启动Redis, RabbitMQ, Elasticsearch等服务。 - -4. **构建项目**: - ``` - mvn clean package - ``` - -5. **部署WAR包**: - - 将 `target/TGLW.war` 部署到Tomcat或Jetty。 - - 默认端口8088,可在 `pom.xml` 中修改。 - -6. **启动应用**: - - 访问 `http://localhost:8088/` 进入系统。 - -### 配置说明 -- **applicationContext.xml**: Spring上下文配置,XXL-Job执行器。 -- **log4j.properties**: 日志配置。 -- **xxl-job-executor.properties**: 定时任务配置。 - -## 使用指南 - -### 系统登录 -- 默认管理员账号:根据配置。 -- 登录后,根据角色权限访问不同模块。 - -### 主要操作 -- **设备管理**: 添加设备,配置参数,监控状态。 -- **报警处理**: 查看报警记录,确认处理。 -- **工单执行**: 创建工单,分配任务,跟踪进度。 -- **巡检管理**: 设置巡检计划,记录巡检结果。 -- **报表查看**: 生成各类统计报表。 -- **BIM可视化**: 查看3D模型,关联设备数据。 - -### API文档 -- 使用Knife4j查看API接口:`http://localhost:8088/doc.html` - -### 维护与监控 -- 日志文件:`logs/TGLW.log` -- 监控Redis、MQ连接状态。 -- 使用XXL-Job管理定时任务。 - -## 注意事项 -- 确保数据库和外部服务正常运行。 -- 定期备份数据。 -- 根据实际环境调整配置文件。 -- 安全配置:启用Spring Security,定期更新密码。 - -## 联系与支持 -- 项目维护者:JSSW团队 -- 版本:0.0.1-SNAPSHOT -- 更新日期:2026-04-05 diff --git a/功能清单.xlsx b/功能清单.xlsx deleted file mode 100644 index c715f2d2..00000000 --- a/功能清单.xlsx +++ /dev/null @@ -1,191 +0,0 @@ -功能名称 功能说明 接口路径 对应数据表名 页面文件 -用户管理 用户信息的增删改查 /user/user TB_USER userList.jsp -部门管理 部门组织架构管理 /user/dept TB_DEPT deptList.jsp -角色管理 系统角色权限管理 /user/role TB_ROLE roleList.jsp -菜单管理 系统菜单配置 /user/menu TB_MENU menuList.jsp -测点管理 监控测点数据管理 /work/mpoint TB_MPOINT mPointList.jsp -报警记录 报警信息记录管理 /alarm/record TB_ALARMRECORD alarmRecordList.jsp -报警类型 报警类型配置管理 /alarm/type TB_ALARMTYPE alarmTypeList.jsp -设备管理 设备基本信息管理 /equipment/card TB_EQUIPMENTCARD equipmentCardList.jsp -设备类型 设备分类管理 /equipment/class TB_EQUIPMENTCLASS equipmentClassList.jsp -工单管理 工作工单管理 /workorder/detail TB_WORKORDERDETAIL workorderList.jsp -维修工单 维修工单处理 /workorder/repair TB_WORKORDERREPAIR repairList.jsp -保养工单 设备保养工单 /workorder/maintain TB_WORKORDERMAINTAIN maintainList.jsp -备品备件 备件库存管理 /sparepart/stock TB_STOCK stockList.jsp -采购记录 备件采购记录 /sparepart/purchase TB_PURCHASERECORD purchaseList.jsp -库存调拨 库存调拨管理 /sparepart/transfer TB_STOCKTRANSFER transferList.jsp -视频监控 监控摄像头管理 /work/camera TB_CAMERA cameraList.jsp -NVR设备 网络录像机管理 /work/cameranvr TB_CAMERANVR cameraNVRList.jsp -巡检计划 设备巡检计划 /patrol/plan TB_PATROLPLAN patrolPlanList.jsp -巡检记录 巡检执行记录 /patrol/record TB_PATROLRECORD patrolRecordList.jsp -考核指标 KPI考核指标管理 /work/kpipoint TB_KPIPOINT kpiPointList.jsp -考核计划 KPI考核计划 /kpi/plan TB_KPIPLAN kpiPlanList.jsp -考核结果 KPI考核结果 /kpi/result TB_KPIRESULT kpiResultList.jsp -消息管理 系统消息通知 /msg/message TB_MESSAGE msgList.jsp -短信用户 短信发送用户 /msg/smsuser TB_SMSUSER smsUserList.jsp -工作流管理 工作流流程管理 /activiti/process TB_OEPROCESS processList.jsp -请假申请 员工请假申请 /activiti/leave TB_LEAVE leaveList.jsp -任务管理 工作任务管理 /activiti/task TB_WORKTASK taskList.jsp -文档管理 文档资料管理 /document/file TB_DOCUMENT documentList.jsp -图书资料 图书资料管理 /document/book TB_BOOK bookList.jsp -图纸管理 工程图纸管理 /document/drawing TB_DRAWING drawingList.jsp -报表管理 数据报表管理 /report/info TB_RPTINFO rptInfoList.jsp -日报管理 工作日报管理 /report/daylog TB_RPTDAYLOG rptDayLogList.jsp -能源管理 能源数据监控 /energy/manage TB_ENERGYDATA energyList.jsp -工艺参数 生产工艺参数 /process/parameter TB_PROCESSPARAM paramList.jsp -生产指标 生产指标管理 /production/index TB_PRODUCTIONINDEX productionIndexList.jsp -大屏展示 数据可视化大屏 /visual/largescreen TB_LARGESCREEN largeScreen.jsp -工艺流程 工艺流程图管理 /visual/process TB_PROCESSPIC processPicList.jsp -布局管理 页面布局配置 /visual/layout TB_LAYOUT layoutList.jsp -计划管理 生产计划管理 /plan/manage TB_PLAN planList.jsp -计划布局 计划布局配置 /plan/layout TB_PLANLAYOUT planLayoutList.jsp -交互配置 页面交互配置 /interaction/config TB_INTERACTION interactionList.jsp -数据类型 数据类型定义 /data/type TB_DATATYPE dataTypeList.jsp -缓存数据 缓存数据管理 /cache/data TB_CACHEDATA cacheDataList.jsp -JSP配置 JSP页面配置 /jsp/configure TB_JSPCONFIGURE jspConfigureList.jsp -JSP元素 JSP页面元素 /jsp/element TB_JSPELEMENT jspElementList.jsp -计划交互 计划交互配置 /plan/interaction TB_PLANINTERACTION planInteractionList.jsp -BIM管理 BIM模型管理 /bim/manage TB_BIM bimList.jsp -BIM路线 BIM巡检路线 /bim/route TB_BIMROUTE bimRouteList.jsp -BIM设备 BIM设备关联 /bim/equipment TB_BIMEQUIPMENT bimEquipmentList.jsp -报警相机 报警摄像头关联 /bim/camera TB_BIMCAMERA bimCameraList.jsp -报警记录 BIM报警记录 /bim/alarm TB_BIMALARM bimAlarmList.jsp -设备地图 设备地图展示 /eq/map TB_EQMAP eqMap.jsp -设备统计 设备统计分析 /eq/statistics TB_EQSTATISTICS eqStatistics.jsp -设备完好率 设备完好率统计 /eq/intactrate TB_EQINTACTRATE eqIntactRate.jsp -设备概况 设备概况总览 /eq/overview TB_EQOVERVIEW eqOverview.jsp -设备分析 设备数据分析 /eq/analysis TB_EQANALYSIS eqAnalysis.jsp -设备排名 设备性能排名 /eq/ranking TB_EQRANKING eqRanking.jsp -设备对比 设备对比分析 /eq/compare TB_EQCOMPARE eqCompare.jsp -设备预警 设备预警管理 /eq/warning TB_EQWARNING eqWarning.jsp -设备报警 设备报警管理 /eq/alarm TB_EQALARM eqAlarm.jsp -设备维修 设备维修管理 /eq/repair TB_EQREPAIR eqRepair.jsp -设备保养 设备保养管理 /eq/maintain TB_EQMAINTAIN eqMaintain.jsp -设备巡检 设备巡检管理 /eq/patrol TB_EQPATROL eqPatrol.jsp -设备点检 设备点检管理 /eq/check TB_EQCHECK eqCheck.jsp -设备润滑 设备润滑管理 /eq/lubricate TB_EQLUBRICATE eqLubricate.jsp -设备校准 设备校准管理 /eq/calibrate TB_EQCALIBRATE eqCalibrate.jsp -设备报废 设备报废管理 /eq/scrap TB_EQSCRAP eqScrap.jsp -设备借用 设备借用管理 /eq/borrow TB_EQBORROW eqBorrow.jsp -设备归还 设备归还管理 /eq/return TB_EQRETURN eqReturn.jsp -设备转移 设备转移管理 /eq/transfer TB_EQTRANSFER eqTransfer.jsp -设备盘点 设备盘点管理 /eq/inventory TB_EQINVENTORY eqInventory.jsp -设备验收 设备验收管理 /eq/acceptance TB_EQACCEPTANCE eqAcceptance.jsp -设备合同 设备合同管理 /eq/contract TB_EQCONTRACT eqContract.jsp -设备供应商 设备供应商管理 /eq/supplier TB_EQSUPPLIER eqSupplier.jsp -设备采购 设备采购管理 /eq/purchase TB_EQPURCHASE eqPurchase.jsp -设备入库 设备入库管理 /eq/instock TB_EQINSTOCK eqInStock.jsp -设备出库 设备出库管理 /eq/outstock TB_EQOUTSTOCK eqOutStock.jsp -设备调拨 设备调拨管理 /eq/transfer TB_EQTRANSFER2 eqTransfer2.jsp -设备借用申请 设备借用申请 /eq/borrowapply TB_EQBORROWAPPLY eqBorrowApply.jsp -设备维修申请 设备维修申请 /eq/repairapply TB_EQREPAIRAPPLY eqRepairApply.jsp -设备保养计划 设备保养计划 /eq/maintainplan TB_EQMAINTAINPLAN eqMaintainPlan.jsp -设备巡检计划 设备巡检计划 /eq/patrolplan TB_EQPATROLPLAN eqPatrolPlan.jsp -设备点检计划 设备点检计划 /eq/checkplan TB_EQCHECKPLAN eqCheckPlan.jsp -设备润滑计划 设备润滑计划 /eq/lubricateplan TB_EQLUBRICATEPLAN eqLubricatePlan.jsp -设备校准计划 设备校准计划 /eq/calibrateplan TB_EQCALIBRATEPLAN eqCalibratePlan.jsp -设备培训计划 设备培训计划 /eq/trainplan TB_EQTRAINPLAN eqTrainPlan.jsp -设备培训记录 设备培训记录 /eq/trainrecord TB_EQTRAINRECORD eqTrainRecord.jsp -设备事故记录 设备事故记录 /eq/accident TB_EQACCIDENT eqAccident.jsp -设备故障记录 设备故障记录 /eq/fault TB_EQFAULT eqFault.jsp -设备维修记录 设备维修记录 /eq/repairrecord TB_EQREPAIRRECORD eqRepairRecord.jsp -设备保养记录 设备保养记录 /eq/maintainrecord TB_EQMAINTAINRECORD eqMaintainRecord.jsp -设备巡检记录 设备巡检记录 /eq/patrolrecord TB_EQPATROLRECORD eqPatrolRecord.jsp -设备点检记录 设备点检记录 /eq/checkrecord TB_EQCHECKRECORD eqCheckRecord.jsp -设备润滑记录 设备润滑记录 /eq/lubricaterecord TB_EQLUBRICATERECORD eqLubricateRecord.jsp -设备校准记录 设备校准记录 /eq/calibraterecord TB_EQCALIBRATERECORD eqCalibrateRecord.jsp -设备台账 设备台账管理 /eq/account TB_EQACCOUNT eqAccount.jsp -设备档案 设备档案管理 /eq/archive TB_EQARCHIVE eqArchive.jsp -设备卡片 设备卡片管理 /eq/card TB_EQCARD eqCard.jsp -设备履历 设备履历管理 /eq/resume TB_EQRESUME eqResume.jsp -设备评价 设备评价管理 /eq/evaluate TB_EQEVALUATE eqEvaluate.jsp -设备评级 设备评级管理 /eq/rating TB_EQRATING eqRating.jsp -设备分类 设备分类管理 /eq/category TB_EQCATEGORY eqCategory.jsp -设备状态 设备状态管理 /eq/status TB_EQSTATUS eqStatus.jsp -设备参数 设备参数管理 /eq/parameter TB_EQPARAMETER eqParameter.jsp -设备规格 设备规格管理 /eq/specification TB_EQSPECIFICATION eqSpecification.jsp -设备型号 设备型号管理 /eq/model TB_EQMODEL eqModel.jsp -设备品牌 设备品牌管理 /eq/brand TB_EQBRAND eqBrand.jsp -设备制造商 设备制造商管理 /eq/manufacturer TB_EQMANUFACTURER eqManufacturer.jsp -设备使用年限 设备使用年限管理 /eq/age TB_EQAGE eqAge.jsp -设备折旧 设备折旧管理 /eq/depreciation TB_EQDEPRECIATION eqDepreciation.jsp -设备价值 设备价值管理 /eq/value TB_EQVALUE eqValue.jsp -设备利用率 设备利用率管理 /eq/utilization TB_EQUTILIZATION eqUtilization.jsp -设备效率 设备效率管理 /eq/efficiency TB_EQEFFICIENCY eqEfficiency.jsp -设备性能 设备性能管理 /eq/performance TB_EQPERFORMANCE eqPerformance.jsp -设备质量 设备质量管理 /eq/quality TB_EQQUALITY eqQuality.jsp -设备安全 设备安全管理 /eq/safety TB_EQSAFETY eqSafety.jsp -设备环保 设备环保管理 /eq/environmental TB_EQENVIRONMENTAL eqEnvironmental.jsp -设备能耗 设备能耗管理 /eq/energy TB_EQENERGY eqEnergy.jsp -设备成本 设备成本管理 /eq/cost TB_EQCOST eqCost.jsp -设备利润 设备利润管理 /eq/profit TB_EQPROFIT eqProfit.jsp -设备投资 设备投资管理 /eq/investment TB_EQINVESTMENT eqInvestment.jsp -设备回报 设备回报管理 /eq/return TB_EQRETURN eqReturn.jsp -设备风险 设备风险管理 /eq/risk TB_EQRISK eqRisk.jsp -设备保险 设备保险管理 /eq/insurance TB_EQINSURANCE eqInsurance.jsp -设备保修 设备保修管理 /eq/warranty TB_EQWARRANTY eqWarranty.jsp -设备服务 设备服务管理 /eq/service TB_EQSERVICE eqService.jsp -设备支持 设备支持管理 /eq/support TB_EQSUPPORT eqSupport.jsp -设备维护 设备维护管理 /eq/maintenance TB_EQMAINTENANCE eqMaintenance.jsp -设备升级 设备升级管理 /eq/upgrade TB_EQUPGRADE eqUpgrade.jsp -设备更新 设备更新管理 /eq/update TB_EQUPDATE eqUpdate.jsp -设备替换 设备替换管理 /eq/replace TB_EQREPLACE eqReplace.jsp -设备淘汰 设备淘汰管理 /eq/eliminate TB_EQELIMINATE eqEliminate.jsp -设备处置 设备处置管理 /eq/disposal TB_EQDISPOSAL eqDisposal.jsp -设备拍卖 设备拍卖管理 /eq/auction TB_EQAUCTION eqAuction.jsp -设备捐赠 设备捐赠管理 /eq/donate TB_EQDONATE eqDonate.jsp -设备报废申请 设备报废申请 /eq/scrapapply TB_EQSCRAPAPPLY eqScrapApply.jsp -设备处置申请 设备处置申请 /eq/disposalapply TB_EQDISPOSALAPPLY eqDisposalApply.jsp -设备拍卖申请 设备拍卖申请 /eq/auctionapply TB_EQAUCTIONAPPLY eqAuctionApply.jsp -设备捐赠申请 设备捐赠申请 /eq/donateapply TB_EQDONATEAPPLY eqDonateApply.jsp -设备评估 设备评估管理 /eq/assessment TB_EQASSESSMENT eqAssessment.jsp -设备估价 设备估价管理 /eq/valuation TB_EQVALUATION eqValuation.jsp -设备鉴定 设备鉴定管理 /eq/appraisal TB_EQAPPRAISAL eqAppraisal.jsp -设备检测 设备检测管理 /eq/detection TB_EQDETECTION eqDetection.jsp -设备检验 设备检验管理 /eq/inspection TB_EQINSPECTION eqInspection.jsp -设备试验 设备试验管理 /eq/test TB_EQTEST eqTest.jsp -设备验证 设备验证管理 /eq/verification TB_EQVERIFICATION eqVerification.jsp -设备确认 设备确认管理 /eq/confirmation TB_EQCONFIRMATION eqConfirmation.jsp -设备审核 设备审核管理 /eq/audit TB_EQAUDIT eqAudit.jsp -设备审批 设备审批管理 /eq/approve TB_EQAPPROVE eqApprove.jsp -设备备案 设备备案管理 /eq/record TB_EQRECORD eqRecord.jsp -设备注册 设备注册管理 /eq/register TB_EQREGISTER eqRegister.jsp -设备登记 设备登记管理 /eq/registration TB_EQREGISTRATION eqRegistration.jsp -设备申报 设备申报管理 /eq/declare TB_EQDECLARE eqDeclare.jsp -设备报备 设备报备管理 /eq/report TB_EQREPORT eqReport.jsp -设备通报 设备通报管理 /eq/notify TB_EQNOTIFY eqNotify.jsp -设备公告 设备公告管理 /eq/announcement TB_EQANNOUNCEMENT eqAnnouncement.jsp -设备通知 设备通知管理 /eq/notice TB_EQNOTICE eqNotice.jsp -设备提醒 设备提醒管理 /eq/remind TB_EQREMIND eqRemind.jsp -设备预警 设备预警管理 /eq/earlywarning TB_EQEARLYWARNING eqEarlyWarning.jsp -设备预告 设备预告管理 /eq/forecast TB_EQFORECAST eqForecast.jsp -设备预测 设备预测管理 /eq/prediction TB_EQPREDICTION eqPrediction.jsp -设备预报 设备预报管理 /eq/prediction2 TB_EQPREDICTION2 eqPrediction2.jsp -设备预检 设备预检管理 /eq/preinspection TB_EQPREINSPECTION eqPreInspection.jsp -设备预修 设备预修管理 /eq/prerepair TB_EQPREREPAIR eqPreRepair.jsp -设备预保 设备预保管理 /eq/premaintain TB_EQPREMAINTAIN eqPreMaintain.jsp -设备预巡检 设备预巡检管理 /eq/prepatrol TB_EQPREPATROL eqPrePatrol.jsp -设备预点检 设备预点检管理 /eq/precheck TB_EQPRECHECK eqPreCheck.jsp -设备预润滑 设备预润滑管理 /eq/prelubricate TB_EQPRELUBRICATE eqPreLubricate.jsp -设备预校准 设备预校准管理 /eq/precalibrate TB_EQPRECALIBRATE eqPreCalibrate.jsp -设备预培训 设备预培训管理 /eq/pretrain TB_EQPRETRAIN eqPreTrain.jsp -设备预事故 设备预事故管理 /eq/preaccident TB_EQPREACCIDENT eqPreAccident.jsp -设备预故障 设备预故障管理 /eq/prefault TB_EQPREFAULT eqPreFault.jsp -设备预维修 设备预维修管理 /eq/prerepair2 TB_EQPREREPAIR2 eqPreRepair2.jsp -设备预保养 设备预保养管理 /eq/premaintain2 TB_EQPREMAINTAIN2 eqPreMaintain2.jsp -设备预巡检 设备预巡检管理 /eq/prepatrol2 TB_EQPREPATROL2 eqPrePatrol2.jsp -设备预点检 设备预点检管理 /eq/precheck2 TB_EQPRECHECK2 eqPreCheck2.jsp -设备预润滑 设备预润滑管理 /eq/prelubricate2 TB_EQPRELUBRICATE2 eqPreLubricate2.jsp -设备预校准 设备预校准管理 /eq/precalibrate2 TB_EQPRECALIBRATE2 eqPreCalibrate2.jsp -设备预培训 设备预培训管理 /eq/pretrain2 TB_EQPRETRAIN2 eqPreTrain2.jsp -设备预事故 设备预事故管理 /eq/preaccident2 TB_EQPREACCIDENT2 eqPreAccident2.jsp -设备预故障 设备预故障管理 /eq/prefault2 TB_EQPREFAULT2 eqPreFault2.jsp -设备预维修 设备预维修管理 /eq/prerepair3 TB_EQPREREPAIR3 eqPreRepair3.jsp -设备预保养 设备预保养管理 /eq/premaintain3 TB_EQPREMAINTAIN3 eqPreMaintain3.jsp -设备预巡检 设备预巡检管理 /eq/prepatrol3 TB_EQPREPATROL3 eqPrePatrol3.jsp -设备预点检 设备预点检管理 /eq/precheck3 TB_EQPRECHECK3 eqPreCheck3.jsp -设备预润滑 设备预润滑管理 /eq/prelubricate3 TB_EQPRELUBRICATE3 eqPreLubricate3.jsp -设备预校准 设备预校准管理 /eq/precalibrate3 TB_EQPRECALIBRATE3 eqPreCalibrate3.jsp -设备预培训 设备预培训管理 /eq/pretrain3 TB_EQPRETRAIN3 eqPreTrain3.jsp -设备预事故 设备预事故管理 /eq/preaccident3 TB_EQPREACCIDENT3 eqPreAccident3.jsp -设备预故障 设备预故障管理 /eq/prefault3 TB_EQPREFAULT3 eqPreFault3.jsp \ No newline at end of file diff --git a/功能清单详细版.xlsx b/功能清单详细版.xlsx deleted file mode 100644 index 60da0873..00000000 Binary files a/功能清单详细版.xlsx and /dev/null differ diff --git a/污水处理管理平台_v7.html b/污水处理管理平台_v7.html deleted file mode 100644 index 6f8f35c6..00000000 --- a/污水处理管理平台_v7.html +++ /dev/null @@ -1,459 +0,0 @@ - - - - - - -智水云 - 污水处理全流程监控一张图 - - - - - - - -
-
- -
-

智水云 · 全流程数字化管控平台

-

SYSTEM STATUS: 2026-03-22 10:45:00

-
-
-
-
- 运行中: 24h -负荷: 78% -能效: 0.32 kW·h/m³ -
-
-
-

值班主管

-

王建国 (A组)

-
-
-
-
-
- -
-
-
- -工业进水累计 -
-
-
-

当日总量

-

10,867

-
-
-

环比

-

+2.4% ↑

-
-
-
-
-
- -生活进水累计 -
-
-
-

当日总量

-

7,569

-
-
-

环比

-

-1.8% ↓

-
-
-
-
-
- -进水流量7日趋势 (m³/d) -
- -
- -
-
- -
-
-设备运行异常 -实时监控 -
-
-
-
03
-
Active Alarms
-
-
-
待处理: 03
-
已闭环: 12/今日
-
-
-
-
- -
-
-
-
- -

全流程生产工艺实时数据概览

-
-
- 生产正常 -更新时间: 2026-03-22 10:15:30 -
-
-
- - - - - - - - - - - - - - - - - - - - - - - - - -
工艺段名称状态瞬时流量 (m³/h)关键参数 1关键参数 2关键参数 3设备ID
01. 细格栅与提升运行中1,245.8液位:1.8mpH:7.2主泵:2#P101
02. 曝气沉砂池运行中1,238.2DO:2.5mg/L速:35Hz油:0.2D205
03. 初次沉淀池运行中1,232.0SS:180mg/L泥位:0.8m刮泥:ONS302
04. A/A/O 生物反应器运行中1,230.5厌氧ORP:-180mVMLSS:3250回流:100%B401
05. 二次沉淀池组故障告警1,228.1出水SS:22.4泥层:1.2m泵组:ERRS204
06. 磁混凝高效沉淀运行中1,225.0投药:12.5mg/L磁粉:保持浊度:4.2M501
07. V型滤池运行中1,210.6滤速:6.5m/h水头失:1.2m反冲:4:30F602
08. 紫外消毒/次氯酸钠运行中1,208.5强度:35mW余氯:0.45运行:12hV501
09. 核心鼓风机房运行中254 m³压:58kPa温:62℃功率:185kWM601
10. 总出水在线监测达标运行18.5kCOD:22.4NH3:0.24TP:0.08OUT-M
11. 污泥脱水系统运行中--含水:78.2%产泥:12.5t药量:4.2W701
-
-
-
系统就绪,当前生产效率:92%
-
- - -
-
-
- -
-
-
- -实时告警列表 -
-
- - -
-
-
- -
-
-Critical -10:42:15 -
-
鼓风机房 #2 离心风机
-
- - 运行电流过载 (45.2A > 40.0A) -
-
- - -
-
- -
-
-Warning -10:05:21 -
-
2# 二沉池 吸泥机
-
- - 转速异常波动 (+/- 15%) -
-
- -
-
- -
-
-Info -09:12:05 -
-
加药间 PAC 储罐
-
- - 低液位预警 (剩余 15%) -
-
- -
-
-
- -
-
-
-

© 2026 智水云污水处理管理有限公司

-

江苏省南通市华东第二污水处理厂

-
-
-

云端数据实时同步中 (25ms)

-

生产智脑 V4.2.0-PROD

-
-
- - - \ No newline at end of file