目录
- 一、摘要
- 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 留言,看到后会第一时间回复,相关意见会酌情考虑,但没有一定被采纳的承诺或保证。
下载本系统代码或使用本系统的用户,必须同意以下内容,否则请勿下载!
- 出于自愿而使用/开发本软件,了解使用本软件的风险,且同意自己承担使用本软件的风险。
- 利用本软件构建的网站的任何信息内容以及导致的任何版权纠纷和法律争议及后果和博主无关,博主对此不承担任何责任。
- 在任何情况下,对于因使用或无法使用本软件而导致的任何难以合理预估的损失(包括但不仅限于商业利润损失、业务中断与业务信息丢失),博主概不承担任何责任。
- 必须了解使用本软件的风险,博主不承诺提供一对一的技术支持、使用担保,也不承担任何因本软件而产生的难以预料的问题的相关责任。