【开源】SpringBoot框架开发天然气工程运维系统

在这里插入图片描述


目录

  • 一、摘要
    • 1.1 项目介绍
    • 1.2 项目录屏
  • 二、功能模块
    • 2.1 系统角色分类
    • 2.2 核心功能
    • 2.2.1 流程 1
    • 2.2.2 流程 2
    • 2.3 各角色功能
      • 2.3.1 系统管理员功能
      • 2.3.2 用户服务部功能
      • 2.3.3 分公司(施工单位)功能
        • 2.3.3.1 技术员角色功能
        • 2.3.3.2 材料员角色功能
      • 2.3.4 安全质量部功能
      • 2.3.5 技术设备部功能
      • 2.3.6 经营计划部功能
      • 2.3.7 财务部功能
  • 三、研究背景和意义
    • 3.1 研究背景
    • 3.2 研究意义
  • 四、系统展示
  • 六、核心代码
    • 6.1 工程项目查询
    • 6.2 查询领用材料
    • 6.3 查询所有分公司
    • 6.4 查询分公司员工
    • 6.5 审核工程项目
  • 七、免责说明


一、摘要

1.1 项目介绍

基于Vue+SpringBoot+MySQL的天然气工程运维系统,包含工程项目模块、材料档案模块、材料领用单模块,还包含系统自带的用户管理、部门管理、角色管理、菜单管理、日志管理、数据字典管理、文件管理、图表展示等基础模块,天然气工程运维系统基于角色的访问控制,给工程管理员、用户服务部、分公司技术员、分公司材料员、安全质量部、技术设备部、经营计划部、财务部、查询者使用,可将权限精确到按钮级别,您可以自定义角色并分配权限,系统适合设计精确的权限约束需求。

1.2 项目录屏


二、功能模块

2.1 系统角色分类

根据系统功能,系统共(确定)分为9种角色,分别是:
1、系统管理员(基本信息维护)
2、用户服务部(可以查询所有项目)
3、分公司(施工单位)(有可能是多个)(只能查询自己负责的项目)(技术员、材料员2个角色)
4、安全质量部(可以查询所有项目)
5、技术设备部(可以查询所有项目)
6、经营计划部(可以查询所有项目)
7、财务部(可以查询所有项目)
8、查询者(登录后可以查询到除“经营计划部”、“财务部”以外的数据)

2.2 核心功能

功能(基本信息维护):系统管理员在系统中增加分公司(施工单位)数据,增加分公司(施工单位)用户(技术员、材料员),增加各部门(用户服务部、安全质量部、技术设备部、经营计划部、财务部)的用户。

2.2.1 流程 1

由用户服务部用户在系统中增加一条项目信息(包含项目编号、名称等重要信息)(一个项目就是一条数据),指定项目负责的分公司,分公司可以填写该项目的数据项信息,后边安全质量部、技术设备部、经营计划部、财务部依次填写该项目自己对应的数据项信息,用户服务部用户可以查询系统中全部项目信息,可以查询单个项目的详细信息,可以导出项目列表,可以条件查询所有项目。

2.2.2 流程 2

分公司(施工公司)或技术设备部用户在系统中增加一条项目,增加的项目需要经营计划部用户审核后成为正式项目,再走流程1。(分公司申请的审核通过的项目,施工方还是该分公司)(技术设备部申请的审核通过的项目,用户服务部用户指定施工单位)。

2.3 各角色功能

在这里插入图片描述

2.3.1 系统管理员功能

  1. 分公司管理
    增加、修改、删除分公司
    涉及的数据项:公司编号(隐藏)、公司名字、备注,3项信息。
  2. 用户管理(包含授权)
    增加、修改、删除用户
    涉及的数据项:用户编号(隐藏)、用户名(建议使用手机号)、姓名、所在公司(或部门)、电话、密码(隐藏)、备注,6项信息。
  3. 使用材料管理
    涉及的数据项:材料编号(隐藏)、工程分类(居民、非居民、中压等)、材料名字、材料规格、材料单价、计量单位、备注,7项信息。

2.3.2 用户服务部功能

  1. 项目查询
    可以在系统中查询全部项目,多条件查询,查看项目详细信息,导出项目到Excel表。
  2. 增加项目
    用户点击“增加项目”按钮,弹出窗口,填写项目详细信息,保存即可。
  3. 修改项目
    修改的信息项同增加项目时的信息项。
  4. 删除项目
    将项目“项目状态”修改为“删除”,项目状态为“删除”的项目,其他部门不能查询或修改信息。

2.3.3 分公司(施工单位)功能

2.3.3.1 技术员角色功能
  1. 技术员查询项目
    查询范围:自己负责的(当前登录用户负责的项目)项目。(项目在增加时已经指定了“施工公司技术人”)。
  2. 技术员填写项目信息字段。
  3. 技术员填写项目用到的计划领用材料单。
    技术员增加、修改、删除用到的材料。
    ①增加:选择材料名字(管理员已经设置好)、填写领用数量、(其他项目)转入数量、备注即可,单价、计量单位自动同步。
    ②修改:只能修改领用数量、转入数量、备注。
    ③删除:删除该项目的这个材料即可。
2.3.3.2 材料员角色功能
  1. 材料员查询项目
    查询范围:自己所在分公司的全部项目。
  2. 完善项目用料管理
    选择某一个项目后,在弹出窗口,可以填写该项目的材料的实际用量、流转去向2个字段,并保存。“工程材料确认单”在该步骤导出。
  3. 填写项目材料票交接日期。

2.3.4 安全质量部功能

  1. 项目查询
    可以在系统中查询全部项目,多条件查询,查看项目详细信息,可以导出数据到Excel表格。
  2. 修改项目中对应本部门的字段。

2.3.5 技术设备部功能

  1. 项目查询(可能有特殊统计功能)
    可以在系统中查询全部项目,多条件查询,查看项目详细信息,可以导出数据到Excel表格。
  2. 修改项目中对应本部门的字段。

2.3.6 经营计划部功能

  1. 项目查询
    可以在系统中查询全部项目,多条件查询,查看项目详细信息,可以导出数据到Excel表格。
  2. 修改项目中对应本部门的字段。

2.3.7 财务部功能

  1. 项目查询
    可以在系统中查询全部项目,多条件查询,查看项目详细信息,可以导出数据到Excel表格。
  2. 修改项目中对应本部门的字段。

三、研究背景和意义

3.1 研究背景

对于天然气工程建设物资管理工作来说主要是对天然气工程建设物资进行采购、储存、使用等,而要提高天然气工程建设物资管理工作的有效性就需要从这些方面进行分析,从而能够将这些环节当中存在的主要问题分析出来,并通过对合理有效的解决措施的制订来对这些问题进行解决,从而能够促进天然气工程建设物资管理的发展,促进企业经济效益的提升。

目前天然气已经进入千家万户,为居民生活以及企业生产带来巨大的便利。在各类用户使用天然气的过程中,也存在故障报修、业务扩展等问题,需要天然气工程建设单位开展一系列建设、维修等工作。随着城市进程及管道燃气事业的发展,燃气工程建设范围持续扩大,尤其中低压工程项目数量多、建设期短、不可控因素多。此外,燃气安全事故时有发生,社会对燃气行业的安全关注度进一步提高,从工程源头着手,为管网安全运行保驾护航的呼声逐渐提高。为方便各项工程建设项目的开展,拟开发一套天然气工程建设项目管理系统,以信息化的手段管控业务流程,管理核心数据。

为有效解决工程项目管理过程中存在的问题,监控实际进度与计划进度的偏差,降低项目成本,提高收益,提升企业核心竞争力,实现高质量发展,实现项目全生命周期管理,建设工程项目管理系统非常必要。通过工程项目管理系统,可以实时掌握工程进度、严格把控施工质量、强化施工现场监控、精确控制工程成本,并可以实时掌控工程项目合法合规情况、工程预算及执行情况、工程现场质量安全管理情况等,进一步做到施工过程的可信、可控、可溯。

3.2 研究意义

对于天然气工程建设物资管理工作来说,需要对其投入较多的资金,同时还需要在管理工作流程不够精简或者管理工作当中存在权限混乱的情况下满足人力资源日益提高的需求,并且在物资管理工作环节当中一旦出现管理的不科学性就会引起对天然气能源的利用率降低的风险,从而不利于通过天然气能源来获取经济效益,所以对于天然气工程建设物资管理工作来说需要对管理方案的合理性进行有效提高,确保物资利用率得到提升。

对天然气工程建设物资管理的主要意义体现在以下方面:一是通过有效的开展工程建设物资管理工作能够实现对天然气工程建设物资储存环境进行保证来降低安全事故发生的概率,从而能够有效规避储存过程存在的风险,不仅能够降低经济损失,还能够保证人们的生命财产安全,有利于社会的稳定以及企业生产的安全有效性;二是通过对天然气工程建设物资管理工作中相应的采购制度的制定能够有效地使天然气工程建设物资采购预算工作得到有效的开展,从而能够确保天然气工程建设物资在生产到供应整个流程符合统一性的规划;并且在天然气工程建设物资管理工作的成本投入不断加深的情况下采取合理有效的管理措施能够明显提高天然气能源的利用率。不仅能够实现天然气能源的节约使用,还能够提高对天然气工程建设物资管理和使用的规划水平,对管理环节当中投入的人力物力也是一种节约。


四、系统展示

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述


六、核心代码

6.1 工程项目查询

@RequestMapping(value = "/getByPage", method = RequestMethod.GET)
@ApiOperation(value = "用户服务部查询项目")
public Result<IPage<Project>> getByPage(@ModelAttribute Project project ,@ModelAttribute PageVo page){
    QueryWrapper<Project> qw = new QueryWrapper<>();
    User currUser = securityUtil.getCurrUser();
    // 分公司只看自己
    QueryWrapper<User> userQw = new QueryWrapper<>();
    userQw.eq("id",currUser.getId());
    userQw.inSql("id","SELECT user_id FROM a_user_role WHERE del_flag = 0 AND (role_id = '1624586287929495552' OR role_id = '1624586441982087168')");
    if(iUserService.count(userQw) > 0L) {
        qw.eq("data12",currUser.getDepartmentTitle());
    }
    if(!ZwzNullUtils.isNull(project.getData4())) {
        qw.like("data4",project.getData4());
    }
    if(!ZwzNullUtils.isNull(project.getData3())) {
        qw.like("data3",project.getData3());
    }
    if(!ZwzNullUtils.isNull(project.getData16())) {
        if(Objects.equals("删除",project.getData16())) {
            qw.ne("data16","删除");
        } else {
            qw.eq("data16",project.getData16());
        }
    }
    IPage<Project> data = iProjectService.page(PageUtil.initMpPage(page),qw);
    return new ResultUtil<IPage<Project>>().setData(data);
}

6.2 查询领用材料

@RequestMapping(value = "/getByPage", method = RequestMethod.GET)
@ApiOperation(value = "查询材料")
public Result<IPage<MaterialScience>> getByPage(@ModelAttribute MaterialScience materialScience ,@ModelAttribute PageVo page){
    QueryWrapper<MaterialScience> qw = new QueryWrapper<>();
    if(!ZwzNullUtils.isNull(materialScience.getType())) {
        qw.eq("type",materialScience.getType());
    }
    if(!ZwzNullUtils.isNull(materialScience.getTitle())) {
        qw.like("title",materialScience.getTitle());
    }
    if(!ZwzNullUtils.isNull(materialScience.getModal())) {
        qw.like("modal",materialScience.getModal());
    }
    IPage<MaterialScience> data = iMaterialScienceService.page(PageUtil.initMpPage(page),qw);
    return new ResultUtil<IPage<MaterialScience>>().setData(data);
}

6.3 查询所有分公司

@RequestMapping(value = "/getAllSon", method = RequestMethod.GET)
@ApiOperation(value = "查询所有分公司")
public Result<List<Department>> getAllSon(){
    QueryWrapper<Department> qw = new QueryWrapper<>();
    qw.like("title","分公司");
    return new ResultUtil<List<Department>>().setData(iDepartmentService.list(qw));
}

6.4 查询分公司员工

@RequestMapping(value = "/getAllSonUser", method = RequestMethod.GET)
@ApiOperation(value = "查询分公司员工")
public Result<List<User>> getAllSonUser(@RequestParam String title){
    QueryWrapper<User> qw = new QueryWrapper<>();
    qw.eq("department_title",title);
    return new ResultUtil<List<User>>().setData(iUserService.list(qw));
}

6.5 审核工程项目

@RequestMapping(value = "/audit", method = RequestMethod.POST)
@ApiOperation(value = "审核项目")
public Result<Object> audit(@RequestParam String id){
    Project p = iProjectService.getById(id);
    if(p == null) {
        return ResultUtil.error("项目不存在");
    }
    p.setData16("正常");
    iProjectService.saveOrUpdate(p);
    return ResultUtil.success();
}

七、免责说明

  • 本项目仅供个人学习使用,商用授权请联系博主,否则后果自负。
  • 博主拥有本软件构建后的应用系统全部内容所有权及独立的知识产权,拥有最终解释权。
  • 如有问题,欢迎在仓库 Issue 留言,看到后会第一时间回复,相关意见会酌情考虑,但没有一定被采纳的承诺或保证。

下载本系统代码或使用本系统的用户,必须同意以下内容,否则请勿下载!

  1. 出于自愿而使用/开发本软件,了解使用本软件的风险,且同意自己承担使用本软件的风险。
  2. 利用本软件构建的网站的任何信息内容以及导致的任何版权纠纷和法律争议及后果和博主无关,博主对此不承担任何责任。
  3. 在任何情况下,对于因使用或无法使用本软件而导致的任何难以合理预估的损失(包括但不仅限于商业利润损失、业务中断与业务信息丢失),博主概不承担任何责任。
  4. 必须了解使用本软件的风险,博主不承诺提供一对一的技术支持、使用担保,也不承担任何因本软件而产生的难以预料的问题的相关责任。

在这里插入图片描述

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

Python算法题集_轮转数组

本文为Python算法题集之一的代码示例 题目189 题目&#xff1a;轮转数组 说明&#xff1a;给定一个整数数组 nums&#xff0c;将数组中的元素向右轮转 k 个位置&#xff0c;其中 k 是非负数。 示例 1: 输入: nums [1,2,3,4,5,6,7], k 3 输出: [5,6,7,1,2,3,4] 解释: 向右…

Hadoop3.x基础(2)- HDFS

来源&#xff1a;B站尚硅谷 目录 HDFS概述HDFS产出背景及定义HDFS优缺点HDFS组成架构HDFS文件块大小&#xff08;面试重点&#xff09; HDFS的Shell操作&#xff08;开发重点&#xff09;基本语法命令大全常用命令实操准备工作上传下载HDFS直接操作 HDFS的API操作HDFS的API案例…

微信小程序(二十八)网络请求数据进行列表渲染

注释很详细&#xff0c;直接上代码 上一篇 新增内容&#xff1a; 1.GET请求的规范 2.数据赋值的方法 源码&#xff1a; index.wxml <!-- 列表渲染基础写法&#xff0c;不明白的看上一篇 --> <view class"students"><view class"item">&…

yolov8训练自己的关键点检测模型

参考&#xff1a; https://blog.csdn.net/weixin_38807927/article/details/135036450 标注数据集 安装labelme pip install labelme -i https://pypi.tuna.tsinghua.edu.cn/simple如果报错 $ labelme 2024-01-31 03:16:20,636 [INFO ] __init__:get_config:67- Loading …

MIMIC-IV数据库, 如何提取哪些肺栓塞病人进行了溶栓手术治疗?

溶栓手术是通过药物或者手术的方式&#xff0c;使闭塞的血管再通的一种手术。 溶栓手术主要是通过药物或者手术的方式&#xff0c;使闭塞的血管再通的一种手术。常用的药物有尿激酶、链激酶等&#xff0c;这些药物可以激活纤溶酶原&#xff0c;使纤溶酶原转化为纤溶酶&#xff…

Shell的字符处理和expect

一、Here Document免交互 1.1Here Document概述 使用I/O重定向的方式将命令列表提供给交互式程序&#xff0c;标准输入的一种替代品 格式: 命令 <<标记 输入内容 标记 1.2Here Document使用注意事项 标记可以使用任意合法字符结尾的标记一定要顶格写&#xff0c;前面…

DEV-C++ ege.h库 绘图教程(九)

一、Getting Start 前情回顾&#xff1a; DEV-C ege.h库 绘图教程 今天我们将来讲一讲一些关于杂项的函数。 二、控制台函数 1.initconsole 初始化并显示控制台窗口。 &#xff08;但因为Dev C默认就是显示窗口的&#xff0c;所以这个函数一点也没用&#xff09; 但如果想…

基于C++的面向对象程序设计:类与对象的深入剖析

面向对象程序设计的基本特点 面向对象程序设计的基本特点包括&#xff1a;抽象、封装、继承、多态。 抽象 抽象是指对具体问题或对象进行概括&#xff0c;抽出其公共性质并加以描述的过程。一般情况抽象分为数据抽象和行为抽象&#xff0c;其中数据抽象是指一个对象区别于另…

二叉树顺序结构堆实现

目录 Test.c测试代码 test1 test2 test3 &#x1f387;Test.c总代码 Heap.h头文件&函数声明 头文件 函数声明 &#x1f387;Heap.h总代码 Heap.c函数实现 ☁HeapInit初始化 ☁HeapDestroy销毁 ☁HeapPush插入数据 【1】插入数据 【2】向上调整Adjustup❗ …

关于谷歌新版调试用具(Chrome Dev Tool ),网络选项(chrome-network)默认开启下拉模式的设置

今天在使用谷歌浏览器进行调试的时候&#xff0c;打开调试工具网络选项发现过滤不同模式的选项卡不见了&#xff0c;转而变成一个下拉式选项&#xff0c;如下图 这样一来使得切换不同类型查看的时候变得非常不方便&#xff0c;然后网上查了一下发现这个功能谷歌在很早版本就已…

Mysql 主从库的重新配置

1.从库和主库的数据差异实在太大&#xff0c;反复处理数据耗时耗力&#xff0c;不如重做。 2.备份主数据库(命令备份的) usr/local/mysql/bin/mysqldump -h 100.1.4.42 -P 5566 -u root -p 备份数据库 > /mysql/db/备份的名称.sql 3.停止从库复制 登录到MySQL从库&#x…

腾讯云邀请你参与【腾讯2024技术答人挑战赛】 赢取丰厚的礼品

腾讯云邀请你参与【腾讯2024技术答人挑战赛】 赢取丰厚的礼品 2024年 腾讯礼品大派送 保持技术好奇心是程序员构建护城河的重要一环&#xff0c;快来测测你现在的技术知识面在中国程序员中排第几&#xff1f; 参与答题更有iPad、Pico VR游戏机、Switch等、腾讯云官方认证证书好…

Prometheus+grafana配置监控系统

使用docker compose安装 方便拓展, 配置信息都放在在 /docker/prometheus 目录下 1.目录结构如下 . ├── conf │ └── prometheus.yml ├── grafana_data ├── prometheus_data └── prometheus_grafana.yaml2.创建目录文件 mkdir /docker/prometheus &&am…

Leetcode—2670. 找出不同元素数目差数组【简单】

2024每日刷题&#xff08;一零七&#xff09; Leetcode—2670. 找出不同元素数目差数组 实现代码 class Solution { public:vector<int> distinctDifferenceArray(vector<int>& nums) {unordered_set<int> s;int n nums.size();vector<int> dif…

CapCut - 剪映国际版11.0.0

【应用名称】&#xff1a;CapCut - 剪映国际版 【适用平台】&#xff1a;#Android 【软件标签】&#xff1a;#CapCut #剪映国际版 【应用版本】&#xff1a;11.0.0 【应用大小】&#xff1a;231MB 【软件说明】&#xff1a;软件升级更新。目前大家广泛使用的最令人惊叹、最专业…

linux环境安装git、maven、jenkins等

重启 jenkins的命令&#xff1a; systemctl start jenkins 如果没有vim 命令 可以使用 yum install vim 安装 vim git 下载包地址 https://www.kernel.org/pub/software/scm/git/git-2.28.0.tar.gz 1.安装依赖环境&#xff1a; yum install -y curl-devel expat-devel ge…

2023年03月CCF-GESP编程能力等级认证Python编程二级真题解析

一、单选题(共15题,共30分) 第1题 以下存储器中的数据不会受到附近强磁场干扰的是( )。 A:硬盘 B:U 盘 C:内存 D:光盘 答案:D 第2题 下列流程图,属于计算机的哪种程序结构?( ) A:顺序结构 B:循环结构 C:分支结构 D:数据结构 答案:C 第3题 以下选…

C#用正则表达式判断字符串是否纯数字vs用Char.IsDigit 方法遍历字符数组是否纯数字

目录 一、使用的方法 1.正则表达式 2.Char.IsDigit 方法 二、源码 1.源代码 2.生成效果 一、使用的方法 1.正则表达式 在程序运行过程中&#xff0c;经常需要用户输入数字信息&#xff0c;如输入员工年龄、工资等。使用正则表达式Regex类的IsMatch方法&#xff0c;可以有…

2015年苏州大学837复试机试C/C++

2015年苏州大学复试机试 第一题 题目 有36块砖&#xff0c;现在有36个人&#xff0c;男人能搬4块&#xff0c;女人能搬3块&#xff0c;小孩子两人搬一块&#xff0c;求一次搬完这些砖要男人&#xff0c;女人&#xff0c;小孩多少人&#xff1f; 代码 #include <iostrea…

分析HarmonyOS应用/服务的CPU活动性能

CPU Profiler 性能分析是用来分析CPU性能瓶颈的工具&#xff0c;可以实时查看应用/服务的CPU使用率和线程活动&#xff0c;也可以查看记录的方法跟踪数据、方法采样数据和系统跟踪数据的详情。基于CPU性能分析&#xff0c;您可以了解在一段时间内执行了哪些方法&#xff0c;以及…