【开源】基于SpringBoot的天然气工程运维系统的设计和实现

news2024/11/23 5:00:37

在这里插入图片描述


目录

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

项目编号: S 022 ,源码已在 B i l i b i l i 中上架,需要的朋友请自行下载。 \color{red}{项目编号:S022,源码已在 Bilibili 中上架,需要的朋友请自行下载。} 项目编号:S022,源码已在Bilibili中上架,需要的朋友请自行下载。

https://gf.bilibili.com/item/detail/1104017029

为了帮助小白入门 Java,博主录制了本项目配套的《项目手把手启动教程》,希望能给同学们带来帮助。

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. 必须了解使用本软件的风险,博主不承诺提供一对一的技术支持、使用担保,也不承担任何因本软件而产生的难以预料的问题的相关责任。

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

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

相关文章

【APUE】并发 — 信号

目录 一、异步与同步 二、信号的概念 三、signal 函数 3.1 函数原型 3.2 代码示例 四、信号的不可靠 五、可重入函数 反例1&#xff1a;函数内使用了静态数据 反例2&#xff1a;函数内使用了 malloc 或 free 反例3&#xff1a;函数内调用了标准 I/O 函数 六、标准…

基于鸡群算法的无人机航迹规划-附代码

基于鸡群算法的无人机航迹规划 文章目录 基于鸡群算法的无人机航迹规划1.鸡群搜索算法2.无人机飞行环境建模3.无人机航迹规划建模4.实验结果4.1地图创建4.2 航迹规划 5.参考文献6.Matlab代码 摘要&#xff1a;本文主要介绍利用鸡群算法来优化无人机航迹规划。 1.鸡群搜索算法 …

Docker Harbor概述及构建

Docker Harbor概述及构建 一、Docker Harbor 概述1.1、harbor 简介1.2、Harbor的优势1.3、Harbor 的核心组件1.4、Docker私有仓库 架构 二、Harbor构建Docker私有仓库2.1 环境配置2.2、部署Harbor服务2.2.1、上传dock-compose&#xff0c;并设置权限2.2.2、安装harbor-offline-…

C语言每日一题(21)删除排序数组中的重复项

力扣 26.删除排序数组中的重复项 题目描述 给你一个 非严格递增排列 的数组 nums &#xff0c;请你 原地 删除重复出现的元素&#xff0c;使每个元素 只出现一次 &#xff0c;返回删除后数组的新长度。元素的 相对顺序 应该保持 一致 。然后返回 nums 中唯一元素的个数。 考…

springboot打包后运行失败

运行jar包&#xff0c;报错如下&#xff1a; 环境描述 win11, springboot项目&#xff0c;jdk1.8&#xff0c;IDEA2022.1.3, spring-boot-maven-plugin版本2.2.6.RELEASE。 idea能正常运行&#xff0c;也能正常打成jar包。但运行jar包出错&#xff0c;报错信息如上。 问题来…

七层负载均衡 HAproxy

一、HAproxy 1、负载均衡类型&#xff1a; (1) 无负载均衡&#xff1a; 没有负载均衡&#xff0c;用户直接连接到 Web 服务器。当许多用户同时访问服务器时&#xff0c;可能无法连接。 (2) 四层负载均衡&#xff1a; 用户访问负载均衡器&#xff0c;负载均衡器将用户的请求…

时序预测 | Python实现ARIMA-LSTM差分自回归移动模型结合长短期记忆神经网络时间序列预测

时序预测 | Python实现ARIMA-LSTM差分自回归移动模型结合长短期记忆神经网络时间序列预测 目录 时序预测 | Python实现ARIMA-LSTM差分自回归移动模型结合长短期记忆神经网络时间序列预测预测效果基本介绍程序设计参考资料 预测效果 基本介绍 时序预测 | Python实现ARIMA-LSTM差…

关于数据中台的理解和思考

一、什么是数据中台 数据中台是指通过数据技术&#xff0c;对海量数据进行采集、计算、存储、加工&#xff0c;同时统一标准和口径。把数据统一后&#xff0c;会形成标准数据&#xff0c;再进行存储&#xff0c;形成大数据资产层&#xff0c;进而为客户提供高效的、可复用的服…

项目管理软件排行榜聚焦榜:选择最适合你的工具

在一个复杂的项目中&#xff0c;需要有一个好的项目管理软件来帮助协调资源、任务和时间表。然而&#xff0c;市场上有很多种不同的项目管理软件&#xff0c;每种软件都有其优点和缺点。本文综合 PCMag&#xff0c;Softwareworld&#xff0c;B2BSaaS Reviews 等产品测评网站的评…

windows下-mysql环境配置,以及使用navicat可视化数据库,便捷撰写sql语句。

文章目录 MySQL 连接到本地MySQL 下载MySQL连接基本SQL操作语句创建并查看数据库删除数据库修改数据库插入、删除、修改数据 图形化界面展示数据库 Navicat 基础操作连接本地的mysql数据库撰写sql语句 MySQL 连接到本地 MySQL 下载 直接系统自带应用商城下载&#xff0c;安装最…

【多线程面试题 一】、 创建线程有哪几种方式?

文章底部有个人公众号&#xff1a;热爱技术的小郑。主要分享开发知识、学习资料、毕业设计指导等。有兴趣的可以关注一下。为何分享&#xff1f; 踩过的坑没必要让别人在再踩&#xff0c;自己复盘也能加深记忆。利己利人、所谓双赢。 面试官&#xff1a;创建线程有哪几种方式&a…

Vuex模块化(modules)与namespaced(命名空间)的搭配

Vuex模块化&#xff08;modules&#xff09;与namespaced&#xff08;命名空间&#xff09;的搭配 Vuex模块化&#xff08;modules&#xff09;格式 原理&#xff1a;可以对Vuex的actions&#xff0c;mutations&#xff0c;state&#xff0c;getters四个属性综合成一个部分&a…

Android问题笔记四十一:JNI NewStringUTF错误的几种解决方案

点击跳转>Unity3D特效百例点击跳转>案例项目实战源码点击跳转>游戏脚本-辅助自动化点击跳转>Android控件全解手册点击跳转>Scratch编程案例点击跳转>软考全系列 &#x1f449;关于作者 专注于Android/Unity和各种游戏开发技巧&#xff0c;以及各种资源分享&…

B站视频下载工具的分享

直接解压使用1.5.9版本的就可以。 资源&#xff1a;链接&#xff1a;https://pan.baidu.com/s/1zWJWzxVss4h2lmMhCFFzDg?pwdw1v8 提取码&#xff1a;w1v8 先解压 解压 双击使用

小白的福利教学。4+共病+WGCNA+机器学习+实验,简单易复现

今天给同学们分享一篇共病WGCNA机器学习实验的生信文章“Exploring immune related gene signatures and mechanisms linking non alcoholic fatty liver disease to atrial fibrillation through transcriptome data analysis”&#xff0c;这篇文章于2023年10月16日发表在Sci…

c++学习MFC还是QT?

c学习MFC还是QT&#xff1f; 建议学习Qt, Qt开发不仅跨平台&#xff0c;而且社区活跃度和网上的资料也比较多一点&#xff0c;特别是跨平台这一点很重要&#xff0c;最近很多小伙伴找我&#xff0c;说想要一些QT资料&#xff0c;然后我根据自己从业十年经验&#xff0c;熬夜搞了…

Proteus仿真--基于51单片机的LED模拟交通灯仿真(仿真文件+程序)

本文主要介绍基于51单片机的LED模拟交通灯仿真&#xff08;完整仿真源文件及代码见文末链接&#xff09; 仿真运行视频 Proteus仿真--基于51单片机的LED模拟交通灯仿真&#xff08;仿真文件程序&#xff09; 附完整Proteus仿真资料代码资料 百度网盘链接: https://pan.baidu.c…

软件测试必问的面试题(答案+文档)

前言 &#xff08;第一个就刷掉一大批人&#xff09; 有很多“会自动化”的同学来咨询技术问题&#xff0c;他总会问到我一些元素定位的问题。元素定位其实都不算自动化面试的问题。 一般我都会问&#xff1a;你是定位不到吗&#xff1f;通常结果都是说确实定位不到。 做自…

视频剪辑高手必学:批量制作画中画效果的秘诀

随着社交媒体的兴起&#xff0c;视频制作越来越受到人们的关注。在视频制作中&#xff0c;画中画效果是一种常见的技术&#xff0c;它能够让多个画面同时出现在屏幕上&#xff0c;增强视频的视觉效果。然而&#xff0c;对于许多初学者来说&#xff0c;制作画中画效果可能是一项…

python会计应用实操-企业收入与发票比对

案例&#xff1a;企业收入与开票 公司月底或一个季度盘点一下&#xff0c;收入账款与开票数额是否匹配。 使用工具&#xff1a;jupter lab和python 数据&#xff1a; 上海电子税务局已开票统计excel表 银行流水单excel表 编程思路&#xff1a; 两个excel对比金额&#x…