摘要
装修项目管理系统是一种集成化的信息管理工具,专为装修行业设计,以优化项目流程、提高管理效率并确保项目质量。该系统通过集中化的数据管理,帮助装修企业实现项目计划、进度、预算、资源、质量、风险等多方面的全面监控和协调。软件旨在提高装修项目的执行效率、优化资源配置、降低运营成本,并提升客户满意度。该系统通过集成项目管理、进度控制、成本预算、材料管理、人员管理等多个功能模块,为装修企业提供了一个全面、高效的项目管理平台。
本系统要尝试以前后端分离的开发模式,利用现有的技术和工具,通过对需求分心、系统设计和功能实现来设计一个装修项目管理系统。预期成果包括:平台界面设计与开发、用户注册与登录、合同管理、装修进度管理等功能的实现,满足装修公司和房主的各种需求。最终提交成果物一套,实物原型,包括硬件和软件系统。本系统的集成开发环境是Eclipse,前端使用了VUE+JavaScript等技术,数据库管理运用了MySQL,Web服务器采用Tomcat,另外还采用SpringBoot框架技术和B/S结构。
通过装修项目管理系统的应用,企业可以更加高效地进行项目管理,降低成本,提高客户满意度,从而在激烈的市场竞争中脱颖而出。装修项目管理系统还具有高度的可扩展性和灵活性,可根据企业的实际需求进行定制开发,满足企业的个性化管理需求。通过引入该系统,装修企业可以实现项目管理的标准化、规范化和信息化,提升企业的核心竞争力。
关键词:装修项目管理系统;MySQL数据库;SpringBootBoot技术B/S
第1章 需求分析
2.1 业务需求
2.1.1 业务流程
在房主流程中,项目经理到系统后,项目经理受理业务并将返工进展、修改、删除和更新进度操作装修项目,其房主流程总体业务如图2.1所示。
图2.1 房主管理流程总体业务
在项目经理流程中,管理员可以管理项目经理信息后,通过业务逻辑处理,将项目经理信息插入到数据库中,其项目经理流程总体业务如图2.1所示。
图2.2 项目经理管理业务
在用户注册总体业务中,用户到注册,管理人员将根据用户情况进行注册,其用户注册流程总体业务如图2.3所示。
图2.3 用户注册流程总体业务
第2章 系统设计
3.1 技术路线
3.1.1 Java语言介绍
Java语言作为当前备受欢迎的高级编程语言之一,汲取了C语言和C++的精华,同时摒弃了它们的不足之处。在Java的世界中,一切都被视为对象,这种设计极大地提升了Java语言的开发效率。JDK作为Java语言的核心开发环境,为开发者提供了完整的编写工具。然而,为了提高开发效率,众多知名软件公司推出了更为便捷的可视化开发工具,其中Eclipse和IDEA尤为出色。
Java语言的应用领域广泛,不仅可用于系统开发,还能开发网站及硬件设备所需的程序。其卓越的可移植性使得Java能够在各类操作系统,甚至是手机上实现高效运行,这些特点使得Java相较于其他语言更具优势。
随着Java用户群体的不断壮大,越来越多的开发者投身于Java框架的研发中。目前,SSH、Spring Boot、Spring Cloud等框架均备受推崇。值得一提的是,Java语言还是一种开源且免费的语言,这一特性使其深受广大开发者的喜爱。
3.1.2 Spring Boot介绍
Spring是一个开源的Java架构,其显著特点在于实现了注解、注入和反转控制机制。通过运用@RequestMapping注解,Spring能够便捷地实现方法的映射与控制。一旦在控制层标注了@RequestMapping对应的方法,用户即可通过浏览器直接访问和操作这些方法。
SpringMVC作为Spring框架的一个组成部分,是一个轻量级的三层架构。它继承了传统MVC模式的思想,旨在提升Spring的开发效率,成为Spring特有的开发框架。
在Spring Boot中,MyBatis扮演了举足轻重的角色。MyBatis主要负责与SQL进行交互,它颠覆了传统将SQL语句嵌入页面或Java类的做法。传统方式下,数据库结构的变动往往意味着对代码的重新编辑和处理。然而,MyBatis创新地将SQL语句存储在M系统er文件中,这些文件通常以XML格式存在。这种做法显著降低了程序的耦合度,使得在数据库结构发生变化时,仅需修改M系统er文件内的内容即可。这极大地提高了程序开发的效率,并为程序的升级和维护奠定了坚实的基础。
3.1.3 MySQL数据库介绍
在数据库的选择上,本系统采用了广泛使用的MySQL数据库。虽然市面上存在多种主流数据库,如微软的SQL Server和甲骨文公司的Oracle,但MySQL凭借其独特优势,在众多选项中脱颖而出。相较于其他数据库,MySQL更加轻便且功能完备,涵盖了诸如视图、存储过程和事务等常用功能。同时,它支持标准的SQL结构化查询语言,为用户提供了极大的便利。尤为值得一提的是,MySQL不仅免费,而且是一个跨平台的数据存储介质,这些特点使得MySQL在市场上备受青睐,成为本系统数据库选择的理想之选。
3.2 软件体系结构设计
3.2.1 功能结构
根据需求调研结果确定本系统主要包括以下功能模块,如图3.1所示。
图3.1系统功能结构图
3.2.2 系统架构
系统架构图如图3.2所示。
图3.2 系统架构图
系统架构选用SpringBoot3.0架构。作为在Java领域最为成功的开源软件之一,SpringBoot在Java EE 开发中使用者众多。SpringBoot抽象了我们在目前许多应用开发中所遇到的最共性的问题,同时作为一个轻量级的应用开发框架,SpringBoot和传统的J2EE开发相比,有其自身特有的特点。SpringBoot通过这些自身特有的特点充分体现了它的设计理念:在Java EE的应用开发中,支持POJO(JavaBean)的开发方式,使应用能够面向接口开发,充分支持OO(面向对象)的设计方法。在IOC容器和AOP面向切面编程的核心模块的支持下,使得程序员能够高度简化了Java EE的开发过程。为应用开发提供了极其丰富的系统组件,通过这些组件,为企业应用服务的实现提供驱动支持。
3.3 数据库设计
3.3.1 概念结构设计
针对装修项目管理系统的功能性需求方面的了解,系统概念模型(ER图)如图3.3所示。
图3.3 系统概念模型ER图
3.4 对象设计
在一般的管理人员管理项目经理中,包括项目经理的增加、删除、修改。其用例与管理人员管理装修项目的增加、删除、修改和管理人员管理房主的增加、删除、修改类似。限于篇幅所限,这里将只显示管理人员更改项目经理信息的情况,用例的对象设计如下
3.4.1 管理项目经理用例对象设计
该模块的基本作用是项目经理管理。
图3-1 项目经理模块时序图
3.4.2 管理装修项目用例对象设计
该模块的基本作用是装修项目管理。装修项目模块时序图。
装修项目模块时序图,如图4-2所示。
图3-2 装修项目模块时序图
3.4.3 管理客户需求用例对象设计
该模块的基本作用是客户需求管理。系统进入个客户需求管理,对其进行操作。
客户需求模块时序图,如图3-3所示。
图3-3 客户需求模块时序图
第3章 系统实现
4.1登录模块的实现
当管理员输入用户名称及密码后,按「登录」键,系统会比对资料库中储存的资料,若用户名称及密码符合资料库储存资料;系统会跳跃到使用者页面,如果不是,会有提示错误,将会出现登录页。图5.1系统登录界面。
图5.1系统登录界面
该模块控制层主要代码:
<div :style='{"width":"80%","textAlign":"center","margin":"20px auto"}' v-if="roles.length>1" prop="loginInRole" class="list-type">
<el-radio v-if="loginType==1||(loginType==2&&item.roleName!='管理员')" v-for="item in roles" v-bind:key="item.roleName" v-model="rulesForm.role" :label="item.roleName">{{item.roleName}}</el-radio>
</div>
<div :style='{"row-gap":"10px","padding":"0 10%","margin":"20px auto","alignItems":"center","columnGap":"10px","flexWrap":"wrap","display":"flex","width":"100%","justifyContent":"center"}'>
<el-button v-if="loginType==1" :style='{"border":"0","cursor":"pointer","padding":"0 24px","margin":"0","outline":"none","color":"#fff","borderRadius":"4px","background":"rgba(44, 55, 66, 0.9)","width":"100%","fontSize":"14px","height":"44px"}' type="primary" @click="login()" class="loginInBt">登录</el-button>
</div>
</el-form>
</div>{
4.2管理员管理模块
管理员登录系统后,可以对系统首页、项目经理管理、房主管理、装修项目管理、项目进度管理、客户需求管理、项目问题管理、返工进展管理、客户流失管理、营销机会管理、我的信息等功能进行相应操作,如图5-2所示。
图5.2首页信息界面
该模块控制层主要代码:
* 列表
*/
@RequestMapping(“/page”)
public R page(@RequestParam Map<String, Object> params,UsersEntity user){
EntityWrapper ew = new EntityWrapper();
PageUtils page = userService.queryPage(params, MPUtil.sort(MPUtil.between(MPUtil.allLike(ew, user), params), params));
return R.ok().put(“data”, page);
}
/**
* 列表
*/
@RequestMapping("/list")
public R list( UsersEntity user){
EntityWrapper<UsersEntity> ew = new EntityWrapper<UsersEntity>();
ew.allEq(MPUtil.allEQMapPre( user, "user"));
return R.ok().put("data", userService.selectListView(ew));
}
/**
* 信息
*/
@RequestMapping("/info/{id}")
public R info(@PathVariable("id") String id){
UsersEntity user = userService.selectById(id);
return R.ok().put("data", user);
}
/**
* 获取用户的session用户信息
*/
@RequestMapping("/session")
public R getCurrUser(HttpServletRequest request){
Long id = (Long)request.getSession().getAttribute("userId");
UsersEntity user = userService.selectById(id);
return R.ok().put("data", user);
}
4.3房主管理模块
管理员可以对房主的信息进行查看、删除、增加及更新操作。程序成效图如下图5-3所示:
图5.3 房主信息界面