【开源】基于JAVA的天然气工程业务管理系统

news2024/11/26 20:47:29

在这里插入图片描述
项目编号: S 021 ,文末获取源码。 \color{red}{项目编号:S021,文末获取源码。} 项目编号:S021,文末获取源码。


目录

  • 一、摘要
    • 1.1 项目介绍
    • 1.2 项目录屏
  • 二、功能模块
  • 三、使用角色
    • 3.1 施工人员
    • 3.2 管理员
  • 四、数据库设计
    • 4.1 用户表
    • 4.2 分公司表
    • 4.3 角色表
    • 4.4 数据字典表
    • 4.5 工程项目表
    • 4.6 使用材料表
    • 4.7 使用材料领用表
    • 4.8 整体E-R图
  • 五、系统展示
  • 六、核心代码
    • 6.1 查询工程项目
    • 6.2 工程物资申请
    • 6.3 新增工程进度
  • 七、免责说明


一、摘要

1.1 项目介绍

基于Vue+SpringBoot+MySQL的天然气工程业务管理系统,包含工程项目档案模块、项目进度模块、项目现场照片模块、物资档案模块、物资领用单模块、工程资金申请模块,还包含系统自带的用户管理、部门管理、角色管理、菜单管理、日志管理、数据字典管理、文件管理、图表展示等基础模块,天然气工程业务管理系统基于角色的访问控制,给天然气管理员、施工队长、财务人员使用,可将权限精确到按钮级别,您可以自定义角色并分配权限,系统适合设计精确的权限约束需求。

在这里插入图片描述

1.2 项目录屏

源码下载


二、功能模块

本课题研究的内容是开发天然气工程建设项目管理系统,要实现内容包括以下 11 11 11 点。

在这里插入图片描述

  1. 登录功能,实现基于账号、密码和图形验证码的登录;
  2. 人员信息管理,实现对用户的增删改查操作;
  3. 预算管理,实现对预算项目的增删改查操作;
  4. 结算管理,实现对订单的结算操作;
  5. 工程进度管理,实现对工程项目的增删改查操作;
  6. 资金申请/审批,实现对资金申请单的增删改查和审批的操作;
  7. 统计报表;
  8. 组织架构管理,实现对天然气公司内部组织架构的维护;
  9. 日志管理模块,实现对用户操作进行自动化记录;
  10. 文件管理模块,对系统中涉及到的图片、文档进行统一化管理;
  11. 菜单权限管理,实现就与角色的访问控制,对以上模块的数据进行统计分析。同时系统运行稳定、操作简易、逻辑清楚、权限划分明确。

就整个系统面向用户而言,需要划分两个不同用户角色:系统管理员、施工人员和财务人员,施工人员可以发起对预算、结算、工程、资金的申请;财务人员可以对资金申请单进行划扣、审核,对工程进度、预算等明细进行监控;系统管理员拥有系统的全部权限,包括日志管理、用户管理、部门管理、文件管理、数据字典的增删改查操作。

运行在浏览器上的模块可分为“施工人员管理”和“管理员管理”两大模块;其中“施工人员管理”属于前台管理,施工人员可以登录该平台,进入管理界面。


三、使用角色

3.1 施工人员

在这里插入图片描述

3.2 管理员

在这里插入图片描述


四、数据库设计

4.1 用户表

在这里插入图片描述

4.2 分公司表

在这里插入图片描述

4.3 角色表

在这里插入图片描述

4.4 数据字典表

在这里插入图片描述

4.5 工程项目表

在这里插入图片描述

4.6 使用材料表

在这里插入图片描述

4.7 使用材料领用表

在这里插入图片描述

4.8 整体E-R图

在这里插入图片描述


五、系统展示

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


六、核心代码

6.1 查询工程项目

@RequestMapping(value = "/getByPage", method = RequestMethod.GET)
@ApiOperation(value = "查询工程项目")
public Result<IPage<ProjectData>> getByPage(@ModelAttribute ProjectData projectData ,@ModelAttribute PageVo page){
    QueryWrapper<ProjectData> qw = new QueryWrapper<>();
    if(!ZwzNullUtils.isNull(projectData.getTitle())) {
        qw.like("title",projectData.getTitle());
    }
    if(!ZwzNullUtils.isNull(projectData.getType())) {
        qw.eq("type",projectData.getType());
    }
    if(!ZwzNullUtils.isNull(projectData.getUserName())) {
        qw.like("user_name",projectData.getUserName());
    }
    IPage<ProjectData> data = iProjectDataService.page(PageUtil.initMpPage(page),qw);
    return new ResultUtil<IPage<ProjectData>>().setData(data);
}

6.2 工程物资申请

@RequestMapping(value = "/addOne", method = RequestMethod.POST)
@ApiOperation(value = "新增物资使用上报单")
public Result<MaterialOrder> addOne(@RequestParam String itemId, @RequestParam BigDecimal number,@RequestParam String projectId,@RequestParam String purpose){
    MaterialOrder order = new MaterialOrder();
    order.setItemId(itemId);
    order.setProjectId(projectId);
    order.setNumber(number);
    order.setPurpose(purpose);
    ProjectData p = iProjectDataService.getById(projectId);
    if(p == null) {
        return ResultUtil.error("工程项目不存在");
    }
    order.setProjectName(p.getTitle() + "-" + p.getType() + "-" + p.getDaySize() + "天");
    MaterialData m = iMaterialDataService.getById(order.getItemId());
    if(m == null) {
        return ResultUtil.error("物资品类不存在");
    }
    order.setTitle(m.getTitle());
    order.setType(m.getType());
    order.setScene(m.getScene());
    order.setStatus("未审核");
    iMaterialOrderService.saveOrUpdate(order);
    return ResultUtil.success();
}

6.3 新增工程进度

@RequestMapping(value = "/insert", method = RequestMethod.POST)
@ApiOperation(value = "新增工程进度")
public Result<ProjectProgress> insert(ProjectProgress projectProgress){
    ProjectData p = iProjectDataService.getById(projectProgress.getItemId());
    if(p == null) {
        return ResultUtil.error("项目不存在");
    }
    projectProgress.setItemName(p.getTitle() + "-" + p.getType() + "-" + p.getDaySize() + "天");
    User currUser = securityUtil.getCurrUser();
    projectProgress.setUserId(currUser.getId());
    projectProgress.setUserName(currUser.getNickname());
    projectProgress.setProTime(DateUtil.now());
    iProjectProgressService.saveOrUpdate(projectProgress);
    return new ResultUtil<ProjectProgress>().setData(projectProgress);
}

七、免责说明

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

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

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

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

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

相关文章

超声波清洗机可以干嘛、比较推荐的超声波清洗机

超声波清洗机是一种神奇的家用电器&#xff0c;它可以通过高频振动将物体表面的污渍和细菌清洗干净。可以把眼镜放在超声波清洗机里&#xff0c;只需几分钟&#xff0c;就可以将眼镜上的污渍和细菌清洗得干干净净&#xff0c;不单可以清洗眼镜&#xff0c;像生活中的一些小物件…

安全风险综合监测预警平台建设指南(2023 版)》正式发布,汉威科技方案领跑行业

11月24日&#xff0c;国务院安委会办公室印发《城市安全风险综合监测预警平台建设指南&#xff08;2023版&#xff09;》&#xff08;以下简称“指南”&#xff09;&#xff0c;引发行业密切关注。 据悉&#xff0c;“指南”在总结前期18 个试点城市&#xff08;区&#xff09;…

idea 快速选择类文件内的方法名或全局变量

IDEA快速生成lambda表达式的方法-CSDN博客 上面这个链接的标题可能不对

Spring框架体系及Spring IOC思想

目录 Spring简介Spring体系结构SpringIOC控制反转思想自定义对象容器Spring实现IOCSpring容器类型容器接口容器实现类对象的创建方式使用构造方法使用工厂类的方法使用工厂类的静态方法对象的创建策略对象的销毁时机生命周期方法获取Bean对象的方式通过id/name获取通过类型获取…

activiti工作流 定义 TaskListener 无效

使用activiti 5.22 想全局定义任务监听器&#xff0c;结果试了多次发现没有效果。 最后看了看activiti的相关源码发现&#xff0c;流程定义里边没有处理 TaskListener 相关的操作&#xff0c;发现TaskListener 处理是在Task里边处理的&#xff0c;所以把TaskListener 定义在Ta…

vue.js如何根据后台返回来的图片url进行图片下载

原创/朱季谦 最近在做一个前端vue.js对接的功能模块时&#xff0c;需要实现一个下载图片的功能&#xff0c;后台返回来的是一串图片url&#xff0c;试了很多种方法&#xff0c;发现点击下载时出来的效果&#xff0c;都是跳到一个新的图片网页&#xff0c;后来经过一番琢磨&…

在vue页面中添加组件到底有多方便

修改vue写的前端页面到底有多方便&#xff1f;如果熟练的话&#xff0c;出乎你想象的快。 原来的页面&#xff1a;/admin/stock 原来的文件地址&#xff1a;src\views\admin\stock\Stock.vue 另一个页面有个入库功能&#xff0c;需要转移到上面的页面中&#xff1a; 路径&…

01-AI大模型智能客服 V0.1「上」

你好&#xff0c;我是悦创。 首发&#xff1a;https://mp.weixin.qq.com/s/6MTkpWZCEbFWOcUn0Vexvw V0.1 版本我将分为上中下三篇进行书写和发布&#xff0c;欢迎分享和我微信进讨论群&#xff1a;Jiabcdefh。 计划&#xff1a; 会迭代好几个版本&#xff0c;看阅读量和点赞…

A100 A800 H100 H800 模块

老美对A100、A800、H100和H800在内的多款AI芯片实施了出口限制&#xff0c; 目前&#xff0c;具体限制的时长并没有明确的公开信息。 科研人员在面对此类限制 &#xff0c;可能需要寻找替代的供应渠道&#xff0c;加强国内外合作&#xff0c; 或者加大在本土技术研发的投入&a…

数据结构 | 堆排序

数据结构 | 堆排序 文章目录 数据结构 | 堆排序建立大堆排序结果以及全部代码 如果没有看过堆的实现的话可以先看前面的一章堆的实现&#xff0c;然后再来看这个堆排序&#xff0c;都是比较简单的~~ 这里堆排序首先建堆&#xff0c;建堆是要建小堆还是大堆呢&#xff1f; 在堆排…

cpp中虚实继承问题

1.一个基类base&#xff0c;被类a虚继承&#xff0c;类a被其他的类继续继承&#xff0c;那么base中的初始化必须由派生类的最后一个完成&#xff0c;其中任意一个都不能代替完成基类&#xff0c;如果在最后一个派生类里不进行这个base的初始化&#xff0c;那么就会调用相应的无…

Vatee万腾的数字探险之旅:vatee科技创新的新纪元

在数字时代的潮流中&#xff0c;Vatee万腾以其独特的数字探险之旅引领着科技创新的新纪元。这不仅是一次技术的进步&#xff0c;更是一场数字领域的探险&#xff0c;让我们一同探索Vatee在科技创新中的前沿地带。 Vatee万腾的数字探险起源于对未知的渴望和对创新的不懈追求。在…

新购服务器项目部署指南—— Express + Vue + Nginx+ pm2 Nodejs项目部署全流程

目录 一、部署Express项目1.1、安装Node1.2、安装pm2进程管理器1.3、部署Express后端项目 二、部署Vue前端项目2.1、Nginx的下载安装与SLL配置2.2、打包Vue项目2.3、上传项目到Nginx目录2.4、配置Nginx 附录pm2命令速览Nginx命令速览 最后 书接上回&#xff1a;新购服务器开荒记…

不幸被封号!后续来了...

之前发文说过&#xff0c;视频号“技术领导力”被封号3天&#xff0c;无法直播了&#xff1b;购物车被禁用7天。经过多渠道申诉、跟官方沟通均无效。 对事件不了解的可以看这里《被封号了~》&#xff0c;简单来说就是转播了某位大V的直播&#xff0c;因为某些说不清道不明的原因…

快速了解软件工程学概述(5种软件过程模型)

目录 1 、什么是软件&#xff1f;特点有哪些 &#xff1f; 2 、 软件危机 定义&#xff1a; 软件危机产生的原因 消除软件危机的方法 3 、软件工程 1.软件工程的介绍 &#xff08;1&#xff09;概念 &#xff08;2&#xff09;本质特征 (3)软件工程方法学&#xff08;方…

什么样的CRM系统更值得使用?

CRM系统发展到了2023年&#xff0c;经过了无数次迭代与更新&#xff0c;各种概念开始层出不穷。当您的企业准备实施一套CRM系统&#xff0c;在选型前有个问题需要思考&#xff1a;您到底需要什么样的CRM系统&#xff1f; CRM系统早已经从当初的管理客户关系变为了“十项全能”—…

死磕MybatisPlus系列:Mapper的奇妙之旅

Mybatis Plus源码解析系列篇之Mapper的奇妙之旅 一、MybatisPlus初体验 MybatisPlus是一个基于mybatis的开源orm框架&#xff0c;其内置的Mapper、Service让开发者仅需简单的配置&#xff0c;就能获得强大的CRUD能力&#xff1b;其强大的条件构造器&#xff0c;可以满足各类需…

Walrus 0.4发布:单一配置、多态运行,体验下一代应用交付模型

今天&#xff0c;我们高兴地宣布云原生统一应用平台 Walrus 0.4 正式发布&#xff0c;这是一个里程碑式的版本更新。新版本采用了全新的应用模型——仅需进行单一配置&#xff0c;即可在多种模态的基础设施及环境中运行包括应用服务及周边依赖资源在内的完整应用系统。“You bu…

keil5下使用RAM运行程序的配置过程

本用例是展示HC32F4A0片上2M flash的擦除和读写功能&#xff0c;由于默认配置是程序写入flash中&#xff0c;并从flash中运行程序&#xff0c;所以需要将程序配置为从RAM中运行&#xff0c;这样才能正确运行此程序。默认配置如下&#xff1a; 可以看到MCU的内部flash为2M&#…