分布式项目___某污水处理项目

一.分布式项目___污水处理项目

项目地址:https://gitee.com/yanyigege/collaborative-water-springboot.git

​ 1.项目背景

总公司在全国各地有处理污水的项目部,各项目部处理自己的污水,总部需要监控各地分项目部每天处理污水的原料用量,掌握各分部的污水处理情况

​ 2.功能需求(这里只做部分主要功能,具体项目过大,这里主要展示后端实现)

①:能够将给定的excel表格的数据导入到对应的数据库中

②:能够将数据库的内容统计并得出报表,得到某项目部某星期的各种数据

③:能够将某项目部xx年xx月xx日到xx年xx月xx日的数据导出为excel,方便抽查分部的日利润,重要工作汇报和大额费用支出

④:能够实现报警功能,在数据库中的数据发生异常(如某分部某个过程中某原料含量超标,这里是调节池COD含量前后两天差值>500)后,向管理者的邮箱(这里用qq邮箱)发送警告,管理者的手机发送短信警告,并且在项目部群中@全体成员发送警告

⑤:实现站内信功能(使用前端定时器每5秒刷新一次)

​ 3.如何实现

​ 导入与导出用到了easyExcel(可以使用easy-poi),统计报表用到了Echarts,报警上使用定时器,定时扫描数据库中是否有异常数据,在有异常时,采用消息队列(rabbitMq)发送警告,同时使用redis避免同一警告重复报警

​ 4.环境搭建

​ 项目环境:jdk:1.8

​ mysql:8.0.37(8.x版本)

​ nacos:2.4.3(集中管理服务配置,注册服务信息)

​ centos7:在虚拟机运行rabbitMq消息队列

​ redis:3.2.100(因做演示,redis在本地运行)

​ 5.具体实现

​ 导入功能(因做演示,不演示前端页面,使用postman测试功能):

image-20241230105055143

报警功能(采用消息队列+定时器):

image-20241230111147718

在这里插入图片描述

在这里插入图片描述

image-20241230111637179

统计报表功能:

image-20241230121230284
image-20241230121335406
导出功能:image-20241230122327831

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/891202.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

网页排名:PageRank 算法的前世今生

PageRank算法全解析:从理论到实践 引言 PageRank 是由拉里佩奇(Larry Page)和谢尔盖布林(Sergey Brin)在1996年发明的一种链接分析算法,最初用于Google搜索引擎来评估网页的重要性。该算法通过模拟随机浏览…

Nginx详细安装配置过程

目录 1.nginx环境准备 1.1 在配置好yum源之后,安装如下的编译工具 1.2 安装nginx所需的依赖库 1.3 关闭防火墙,selinux,并确保网络正常 2.nginx的编译安装 2.1从nginx官网复制下载链接,wget 下载 2.2? 解压nginx源代码 2…

滴滴数据分析80道面试题及参考答案

如何衡量分类好坏? 衡量分类好坏有多种方法,常用的有准确率、精确率、召回率、F1 值、ROC 曲线与 AUC 值等。 准确率:是指分类正确的样本数占总样本数的比例,计算公式为:准确率 = (分类正确的样本数)/(总样本数)。准确率越高,说明分类器整体的分类效果越好,但在正负…

C语言内存管理函数

面试里会遇到让自己编写一个内存管理函数 1. memset 将指定的内存区域的每个字节设置为指定的值 函数原型: void *memset(void *s, int c, size_t n); 参数: s: 指向要填充的内存块的指针。c: 要设置的值(会被转换为无符号字符)。n: 要设置的字节数。…

2025年阿里云认证改版新消息!2025年阿里云认证考试内容有变!

阿里云认证已经确定在2025年要进行大改,这次改动幅度会比2023年改动更大,2023年主要改变是在考试题型上的变化,这次则主要是考试内容的变化了! 2023年阿里云ACP认证考试的改版变化主要有: (一&#xff09…

【Scala】图书项目系统代码演练3.1/BookService

package org.app package serviceimport models.{BookModel, BorrowRecordModel}import org.app.dao.{BookDAO, BorrowRecordDAO}import java.time.LocalDateTime import scala.collection.mutable.ListBuffer// 图书业务逻辑层 class BookService {private val bookDAO new B…

面试题 2024-12-30

1. 鸿蒙系统中的 WebSocket 心跳协议 原理:在鸿蒙应用开发里,WebSocket 心跳协议的底层逻辑和通用的 WebSocket 心跳一致。由于鸿蒙系统也会运行在各类智能设备上,网络环境复杂多变,为维持长连接,客户端与服务器需定时…

Ajax数据爬取

有时我们用requests 抓取页面得到的结果,可能和在浏览器中看到的不一样:在浏览器中可以看到正常显示的页面数据,而使用requests 得到的结果中并没有这些数据。这是因为 requests 获取的都是原始 HTML 文档,而浏览器中的页面是JavaScript 处理…

回顾python3中的字典

一. 简介 前面文章学习了python3中字典的一些操作。本文来回顾一下 python3中字典。主要包括字典的创建,访问字典中键值对,更改或删除字典中元素。 二. 回顾python3中的字典 字典是另一种可变的数据类型,且可存储任意类型对象。 1. 创建字…

SpringCloud整合skywalking实现链路追踪和日志采集

1.部署skywalking https://blog.csdn.net/qq_40942490/article/details/144701194 2.添加依赖 <!-- 日志采集 --><dependency><groupId>org.apache.skywalking</groupId><artifactId>apm-toolkit-logback-1.x</artifactId><version&g…

E卷-恢复数字序列(100分)

🔗 OD专栏订阅 恢复数字序列 问题描述 对于一个由连续正整数组成的序列,可以将其拼接成一个字符串,然后将字符串中的部分字符打乱顺序。例如,序列 8 9 10 11 12 拼接成的字符串为 89101112,打乱一部分字符后可能得到 90811211,其中原来的正整数 10 被拆成了 0 和 1。…

oracle基础:理解 Oracle SQL 中的 WHERE 后的 (+) 用法

在使用 Oracle 数据库进行 SQL 查询时&#xff0c;可能会遇到 WHERE 子句后带有 () 的语法。这是 Oracle 专有的外连接&#xff08;Outer Join&#xff09;表示法。虽然现代 SQL 标准推荐使用 LEFT JOIN 和 RIGHT JOIN 语法&#xff0c;但在某些遗留系统中&#xff0c;这种写法…

12.30 Redis网络模型基础 IO NIO多路复用

图片引用自黑马程序员redis 网络模型 上图引用自java guide javaguide NIO

【智行安全】基于Synaptics SL1680的AI疲劳驾驶检测方案

随著车载技术的快速进步&#xff0c;驾驶安全越来越受到重视&#xff0c;而疲劳驾驶是造成交通事故的重要原因之一。传统的驾驶监控技术因精度不足或反应迟缓&#xff0c;无法满足实时监测需求。因此&#xff0c;结合人工智能技术的疲劳驾驶检测系统成为行业新方向&#xff0c;…

手机实时提取SIM卡打电话的信令声音-智能拨号器的SIP线路-双卡双待单通方案

手机实时提取SIM卡打电话的信令声音 --智能拨号器的SIP线路-双卡双待单通方案 一、前言 蓝牙电话的技术方案最初是从蓝牙耳机和车机蓝牙的使用领域延伸出来的技术方式。通过蓝牙的HFP协议&#xff0c;把手机通话的声音和通话事件状态提取出来进行复用和处理。但中国大陆现行…

HTML——26.像素单位

<!DOCTYPE html> <html><head><meta charset"UTF-8"><title>像素</title></head><body><!--像素&#xff1a;1.指设备屏幕上的一个点&#xff0c;单位px&#xff0c;如led屏上的小灯朱2.当屏幕分辨率固定时&…

【C语言】库函数常见的陷阱与缺陷(三):内存分配函数[4]--free

C语言中的free函数用于释放之前通过malloc、calloc或realloc动态分配的内存。然而,在使用free函数时,开发者可能会遇到一些陷阱和缺陷。 一、功能与用法 free 函数是 C 语言中用于释放动态分配内存的关键函数。在程序使用 malloc、calloc 或 realloc 等函数在堆上分配了内存…

LeetCode:513.找二叉树左下角的

跟着carl学算法&#xff0c;本系列博客仅做个人记录&#xff0c;建议大家都去看carl本人的博客&#xff0c;写的真的很好的&#xff01; 代码随想录 LeetCode&#xff1a;513.找二叉树左下角的 给定一个二叉树的 根节点 root&#xff0c;请找出该二叉树的 最底层 最左边 节点的…

微服务-Sentinel新手入门指南

微服务为什么要使用流控降级组件 为了提高系统运行期间的稳定性和可用性 在微服务环境下&#xff0c;服务之间存在复杂的调用关系&#xff0c;单个服务的故障或过载可能会迅速影响到整个系统&#xff0c;导致服务雪崩效应。流控组件可以限制进入系统的流量&#xff0c;防止系…

如何使用 ChatGPT Prompts 写学术论文?

第 1 部分:学术写作之旅:使用 ChatGPT Prompts 进行学术写作的结构化指南 踏上学术写作过程的结构化旅程,每个 ChatGPT 提示都旨在解决特定方面,确保对您的主题进行全面探索。 制定研究问题: “制定一个关于量子计算的社会影响的研究问题,确保清晰并与您的研究目标保持一…