【开源】基于JAVA的天然气工程运维系统
项目编号: S 022 ,文末获取源码。 \color{red}{项目编号:S022,文末获取源码。} 项目编号:S022,文末获取源码。
目录
- 一、摘要
- 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 系统管理员功能
- 分公司管理
增加、修改、删除分公司
涉及的数据项:公司编号(隐藏)、公司名字、备注,3项信息。 - 用户管理(包含授权)
增加、修改、删除用户
涉及的数据项:用户编号(隐藏)、用户名(建议使用手机号)、姓名、所在公司(或部门)、电话、密码(隐藏)、备注,6项信息。 - 使用材料管理
涉及的数据项:材料编号(隐藏)、工程分类(居民、非居民、中压等)、材料名字、材料规格、材料单价、计量单位、备注,7项信息。
2.3.2 用户服务部功能
- 项目查询
可以在系统中查询全部项目,多条件查询,查看项目详细信息,导出项目到Excel表。 - 增加项目
用户点击“增加项目”按钮,弹出窗口,填写项目详细信息,保存即可。 - 修改项目
修改的信息项同增加项目时的信息项。 - 删除项目
将项目“项目状态”修改为“删除”,项目状态为“删除”的项目,其他部门不能查询或修改信息。
2.3.3 分公司(施工单位)功能
2.3.3.1 技术员角色功能
- 技术员查询项目
查询范围:自己负责的(当前登录用户负责的项目)项目。(项目在增加时已经指定了“施工公司技术人”)。 - 技术员填写项目信息字段。
- 技术员填写项目用到的计划领用材料单。
技术员增加、修改、删除用到的材料。
①增加:选择材料名字(管理员已经设置好)、填写领用数量、(其他项目)转入数量、备注即可,单价、计量单位自动同步。
②修改:只能修改领用数量、转入数量、备注。
③删除:删除该项目的这个材料即可。
2.3.3.2 材料员角色功能
- 材料员查询项目
查询范围:自己所在分公司的全部项目。 - 完善项目用料管理
选择某一个项目后,在弹出窗口,可以填写该项目的材料的实际用量、流转去向2个字段,并保存。“工程材料确认单”在该步骤导出。 - 填写项目材料票交接日期。
2.3.4 安全质量部功能
- 项目查询
可以在系统中查询全部项目,多条件查询,查看项目详细信息,可以导出数据到Excel表格。 - 修改项目中对应本部门的字段。
2.3.5 技术设备部功能
- 项目查询(可能有特殊统计功能)
可以在系统中查询全部项目,多条件查询,查看项目详细信息,可以导出数据到Excel表格。 - 修改项目中对应本部门的字段。
2.3.6 经营计划部功能
- 项目查询
可以在系统中查询全部项目,多条件查询,查看项目详细信息,可以导出数据到Excel表格。 - 修改项目中对应本部门的字段。
2.3.7 财务部功能
- 项目查询
可以在系统中查询全部项目,多条件查询,查看项目详细信息,可以导出数据到Excel表格。 - 修改项目中对应本部门的字段。
三、研究背景和意义
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 留言,看到后会第一时间回复,相关意见会酌情考虑,但没有一定被采纳的承诺或保证。
下载本系统代码或使用本系统的用户,必须同意以下内容,否则请勿下载!
- 出于自愿而使用/开发本软件,了解使用本软件的风险,且同意自己承担使用本软件的风险。
- 利用本软件构建的网站的任何信息内容以及导致的任何版权纠纷和法律争议及后果和博主无关,博主对此不承担任何责任。
- 在任何情况下,对于因使用或无法使用本软件而导致的任何难以合理预估的损失(包括但不仅限于商业利润损失、业务中断与业务信息丢失),博主概不承担任何责任。
- 必须了解使用本软件的风险,博主不承诺提供一对一的技术支持、使用担保,也不承担任何因本软件而产生的难以预料的问题的相关责任。
相关文章:

【开源】基于JAVA的天然气工程运维系统
项目编号: S 022 ,文末获取源码。 \color{red}{项目编号:S022,文末获取源码。} 项目编号:S022,文末获取源码。 目录 一、摘要1.1 项目介绍1.2 项目录屏 二、功能模块2.1 系统角色分类2.2 核心功能2.2.1 流程…...

MyBatis的功能架构,MyBatis的框架架构设计,Mybatis都有哪些Executor执行器,Mybatis中如何指定使用哪一种Executor执行器
文章目录 MyBatis的功能架构是怎样的把Mybatis的功能架构分为三层: **MyBatis的框架架构设计**是怎么样的架构图如下Mybatis都有哪些Executor执行器?它们之间的区别是什么?Mybatis中如何指定使用哪一种Executor执行器? MyBatis的功…...

关于提示SLF4J: Class path contains multiple SLF4J bindings的问题解决
今天搭建hbase的时候启动hbase的时候shell面板输入了一大堆日志,如下: stopping hbase.....................SLF4J: Class path contains multiple SLF4J bindings.SLF4J: Found binding in [jar:file:/opt/software/hadoop-3.1.3/share/hadoop/common/l…...

外贸CRM客户管理系统是什么?外贸CRM作用?
外贸CRM客户管理系统有哪些?海洋建站如何选外贸软件? 企业的外贸业务面临着日益激烈的竞争。为了更好地管理客户关系、提高运营效率,越来越多的企业开始采用外贸CRM客户管理系统。那么,海洋建站来介绍一下,外贸CRM客户…...

python爬虫进阶篇(异步)
学习完前面的基础知识后,我们会发现这些爬虫的效率实在是太低了。那么我们需要学习一些新的爬虫方式来进行信息的获取。 异步 使用python3.7后的版本中的异步进行爬取,多线程虽然快,但是异步才是爬虫真爱。 基本概念讲解 1.什么是异步&…...
9. Mysql 模糊查询和正则表达式
一、模糊查询 1.1 LIKE运算符 在MySQL中,可以使用LIKE运算符进行模糊查询。LIKE运算符用于匹配字符串模式,其中可以使用通配符来表示任意字符或字符序列。 示例代码 SELECT * FROM table_name WHERE column_name LIKE pattern;table_name:…...
C语言题目强化-DAY14
题型指引 一、选择题二、编程题 ★★写在前面★★ 本题库源自互联网,仅作为个人学习使用,记录C语言题目练习的过程,如果对你也有帮助,那就点个赞吧。 一、选择题 1、有以下函数,该函数的功能是( ÿ…...
TypeScript和JavaScript有什么不同
TypeScript是JavaScript的一个超集,它添加了静态类型检查和其他一些高级特性。下面是TypeScript和JavaScript之间的一些主要区别: 类型系统:TypeScript引入了静态类型检查,可以在开发过程中捕获潜在的类型错误,并提供更…...
mysql使用--存储程序
1.概述 存储程序可以封装一些语句,为用户提供一种简单的方式来调用这个存储程序,从而间接执行其封装的语句。 根据调用方式的不同,可把存储程序分为存储例程、触发器、事件几种类型。其中,存储例程又可被细分为存储函数和存储过程…...

Win11修改用户名(超详细图文)
新买的电脑一般预装Windows11系统(家庭与学生版),新电脑初次开机使用微软邮箱账号登录,则系统将用户名自动设置成邮箱前5位字符。我的用户名便是一串数字【231xx】(qq邮箱前5位),看着很不舒服&a…...

【离散数学】——期末刷题题库(一阶逻辑基本概念)
🎃个人专栏: 🐬 算法设计与分析:算法设计与分析_IT闫的博客-CSDN博客 🐳Java基础:Java基础_IT闫的博客-CSDN博客 🐋c语言:c语言_IT闫的博客-CSDN博客 🐟MySQL:…...

队列实现方式、效率分析及应用场景
文章目录 一、什么是队列二、队列特性阻塞和非阻塞有界和无界单向链表和双向链表 三、Java队列接口继承图四、Java队列常用方法五、队列实现方式与效率分析六、队列的应用场景七、Python中队列与优先级队列使用 一、什么是队列 队列是一种特殊的线性表,遵循先入先出…...

使用git下载远程所有分支到本地
使用git下载远程所有分支到本地: 打开gitbash 输入以下命令即可: git clone git地址 cd git文件夹 git branch -r | grep -v \-> | while read remote; do git branch --track "${remote#origin/}" "$remote"; done git fetch -…...

解决LocalDateTime传输前端为时间的数组
问题出现如下: 问题出现原因: 默认序列化情况下会使用SerializationFeature.WRITE_DATES_AS_TIMESTAMPS。使用这个解析时就会打印出数组。 解决方法: 我在全文搜索处理方法总结如下: 1.前端自定义函数来书写 ,cols: [[ //表头{…...

01:编译lua及C调用
我们今天在windows平台编译lua,生成 lua动态库,lua.exe,luac.exe 我把这个目录上传到giee,使用下面命令获取它: git clone gitgitee.com:jameschenbo/lua_c_application.git 目录结构如下: build.cmd 是编译脚本,在…...

网络运维与网络安全 学习笔记2023.11.24
网络运维与网络安全 学习笔记 第二十五天 今日目标 DHCP中继代理、三层交换机DHCP、子网划分的原理、子网划分的应用 项目需求分析、技术方案选型、网络拓扑绘制 基础交换网络设计、内网优化、连接外网服务器 DHCP中继代理 DHCP中继概述 场景: DHCP客户端与DH…...

常见树种(贵州省):022绣线菊、月月青、金合欢、胡枝子、白刺花
摘要:本专栏树种介绍图片来源于PPBC中国植物图像库(下附网址),本文整理仅做交流学习使用,同时便于查找,如有侵权请联系删除。 图片网址:PPBC中国植物图像库——最大的植物分类图片库 一、绣线菊…...
微星主板开启VT
微星主板模拟器使用 开启VT 进入BIOS高级-》OC-》CPU特征-》intel 虚拟化技术-》允许...

【C++】类型转换 ② ( C++ 静态类型转换 static_cast | C 语言隐式转换弊端 | 代码示例 )
文章目录 一、静态类型转换 static_cast1、C 静态类型转换 static_cast2、C 语言隐式转换弊端3、代码示例 在之前写过一篇 C 类型转换的博客 【C 语言】类型转换 ( 转换操作符 | const_cast | static_cast | dynamic_cast | reinterpret_cast | 字符串转换 ) , 简单介绍了 C 类…...
14.配置Bean有哪几种方式?
配置Bean有哪几种方式? 基于xml: <bean class=“com.tuling.UserService” id=“”>基于注解: @Component(@Controller 、@Service、@Repostory) 前提:需要配置扫描包<component-scan> 反射调用构造方法基于java类配置: @Bean 可以自己控制实例化过程@Import 3种…...

业务系统对接大模型的基础方案:架构设计与关键步骤
业务系统对接大模型:架构设计与关键步骤 在当今数字化转型的浪潮中,大语言模型(LLM)已成为企业提升业务效率和创新能力的关键技术之一。将大模型集成到业务系统中,不仅可以优化用户体验,还能为业务决策提供…...

【网络安全产品大调研系列】2. 体验漏洞扫描
前言 2023 年漏洞扫描服务市场规模预计为 3.06(十亿美元)。漏洞扫描服务市场行业预计将从 2024 年的 3.48(十亿美元)增长到 2032 年的 9.54(十亿美元)。预测期内漏洞扫描服务市场 CAGR(增长率&…...
基于数字孪生的水厂可视化平台建设:架构与实践
分享大纲: 1、数字孪生水厂可视化平台建设背景 2、数字孪生水厂可视化平台建设架构 3、数字孪生水厂可视化平台建设成效 近几年,数字孪生水厂的建设开展的如火如荼。作为提升水厂管理效率、优化资源的调度手段,基于数字孪生的水厂可视化平台的…...
Python爬虫(二):爬虫完整流程
爬虫完整流程详解(7大核心步骤实战技巧) 一、爬虫完整工作流程 以下是爬虫开发的完整流程,我将结合具体技术点和实战经验展开说明: 1. 目标分析与前期准备 网站技术分析: 使用浏览器开发者工具(F12&…...

【OSG学习笔记】Day 16: 骨骼动画与蒙皮(osgAnimation)
骨骼动画基础 骨骼动画是 3D 计算机图形中常用的技术,它通过以下两个主要组件实现角色动画。 骨骼系统 (Skeleton):由层级结构的骨头组成,类似于人体骨骼蒙皮 (Mesh Skinning):将模型网格顶点绑定到骨骼上,使骨骼移动…...

select、poll、epoll 与 Reactor 模式
在高并发网络编程领域,高效处理大量连接和 I/O 事件是系统性能的关键。select、poll、epoll 作为 I/O 多路复用技术的代表,以及基于它们实现的 Reactor 模式,为开发者提供了强大的工具。本文将深入探讨这些技术的底层原理、优缺点。 一、I…...

用机器学习破解新能源领域的“弃风”难题
音乐发烧友深有体会,玩音乐的本质就是玩电网。火电声音偏暖,水电偏冷,风电偏空旷。至于太阳能发的电,则略显朦胧和单薄。 不知你是否有感觉,近两年家里的音响声音越来越冷,听起来越来越单薄? —…...

保姆级教程:在无网络无显卡的Windows电脑的vscode本地部署deepseek
文章目录 1 前言2 部署流程2.1 准备工作2.2 Ollama2.2.1 使用有网络的电脑下载Ollama2.2.2 安装Ollama(有网络的电脑)2.2.3 安装Ollama(无网络的电脑)2.2.4 安装验证2.2.5 修改大模型安装位置2.2.6 下载Deepseek模型 2.3 将deepse…...

【MATLAB代码】基于最大相关熵准则(MCC)的三维鲁棒卡尔曼滤波算法(MCC-KF),附源代码|订阅专栏后可直接查看
文章所述的代码实现了基于最大相关熵准则(MCC)的三维鲁棒卡尔曼滤波算法(MCC-KF),针对传感器观测数据中存在的脉冲型异常噪声问题,通过非线性加权机制提升滤波器的抗干扰能力。代码通过对比传统KF与MCC-KF在含异常值场景下的表现,验证了后者在状态估计鲁棒性方面的显著优…...
在 Spring Boot 项目里,MYSQL中json类型字段使用
前言: 因为程序特殊需求导致,需要mysql数据库存储json类型数据,因此记录一下使用流程 1.java实体中新增字段 private List<User> users 2.增加mybatis-plus注解 TableField(typeHandler FastjsonTypeHandler.class) private Lis…...