基于javaSpringboot的装修验收管理系统设计和实现
前言:
随着社会的进步和科技的发展,越来越多的人追求新颖独特,实用的居住和工作学习环境。因此,在如今的建筑装饰工程中,既要考虑到客户的需求和与建筑结构的协调统一又要考虑到成本和施工组织的安排,所以说现代装饰工程是一件相对繁琐却又必须要做好的事情。在保质保量完成工作内容的同时,还要确保施工施工验收的各项标准数据、通过一段时间对Java相关开发知识的学习,基本了解了施工过程中的各种工艺流程和特点,利用JavaSpringboot+layui简单做个一个装修验收管理系统、适用于简单学习参考使用。
主要设计:
- 水电验收
主要功能:
(1)列表查询
功能:查询、添加、修改、删除、导出。
查询字段:序号、项目名称、项目类型、项目地址、录入人、录入日期、工地负责人、设计师、监理人员、合同金额、施工日期、结束日期、材料品牌、施工人员、考核结果、备注。
(2)业务单据
功能:添加水电考核内容
操作字段:项目名称、项目类型、项目地址、录入人、录入日期、工地负责人、设计师、监理人员、合同金额、施工日期、结束日期、材料品牌、施工人员、考核结果、备注。
- 瓦工验收
(1)列表查询
功能:查询、添加、修改、删除、导出。
查询字段:序号、项目名称、项目类型、项目地址、录入人、录入日期、工地负责人、设计师、监理人员、合同金额、施工日期、结束日期、材料品牌、施工人员、考核结果、备注。
(2)业务单据
功能:添加瓦工考核内容
操作字段:项目名称、项目类型、项目地址、录入人、录入日期、工地负责人、设计师、监理人员、合同金额、施工日期、结束日期、材料品牌、施工人员、考核结果、备注。
- 木工验收
(1)列表查询
功能:查询、添加、修改、删除、导出。
查询字段:序号、项目名称、项目类型、项目地址、录入人、录入日期、工地负责人、设计师、监理人员、合同金额、施工日期、结束日期、材料品牌、施工人员、考核结果、备注。
(2)业务单据
功能:添加木工考核内容
操作字段:项目名称、项目类型、项目地址、录入人、录入日期、工地负责人、设计师、监理人员、合同金额、施工日期、结束日期、材料品牌、施工人员、考核结果、备注。
- 油漆工验收
(1)列表查询
功能:查询、添加、修改、删除、导出。
查询字段:序号、项目名称、项目类型、项目地址、录入人、录入日期、工地负责人、设计师、监理人员、合同金额、施工日期、结束日期、材料品牌、施工人员、考核结果、备注。
(2)业务单据
功能:添加油漆考核内容
操作字段:项目名称、项目类型、项目地址、录入人、录入日期、工地负责人、设计师、监理人员、合同金额、施工日期、结束日期、材料品牌、施工人员、考核结果、备注。
- 施工结束验收
(1)列表查询
功能:查询、添加、修改、删除、导出。
查询字段:序号、项目名称、项目类型、项目地址、录入人、录入日期、工地负责人、设计师、监理人员、合同金额、施工日期、结束日期、材料品牌、施工人员、考核结果、备注。
(2)业务单据
功能:添加施工结束考核内容
操作字段:项目名称、项目类型、项目地址、录入人、录入日期、工地负责人、设计师、监理人员、合同金额、施工日期、结束日期、材料品牌、施工人员、考核结果、备注。
功能截图:
管理员登录:
系统首页:
用户管理:
角色管理:
菜单管理:
SQL监控:
水电验收:
数据导出:
木工验收:
修改密码:
代码实现:
装修验收controller:
@RestController
@RequestMapping("/sys/ysWater")
public class YsWaterController extends AbstractController {@Autowiredprivate YsWaterService ysWaterervice;@Autowiredprivate YsWaterServiceImpl ysWaterServiceImpl;@RequestMapping("/waterList")public R waterList(@RequestParam Map<String, Object> params){params.put("ysType","水电装修验收");PageUtils page = ysWaterervice.queryPage(params);return R.ok().put("page", page);}@RequestMapping("/waterDjList")public R waterDjList(@RequestParam Map<String, Object> params){params.put("ysType","水电业务单据");PageUtils page = ysWaterervice.queryPage(params);return R.ok().put("page", page);}@RequestMapping("/wgList")public R wgList(@RequestParam Map<String, Object> params){params.put("ysType","瓦工装修验收");PageUtils page = ysWaterervice.queryPage(params);return R.ok().put("page", page);}@RequestMapping("/yqgList")public R yqgList(@RequestParam Map<String, Object> params){params.put("ysType","油漆工装修验收");PageUtils page = ysWaterervice.queryPage(params);return R.ok().put("page", page);}@RequestMapping("/yqgDjList")public R yqgDjList(@RequestParam Map<String, Object> params){params.put("ysType","油漆工业务单据");PageUtils page = ysWaterervice.queryPage(params);return R.ok().put("page", page);}@RequestMapping("/sgjsList")public R sgjsList(@RequestParam Map<String, Object> params){params.put("ysType","施工结束验收");PageUtils page = ysWaterervice.queryPage(params);return R.ok().put("page", page);}@RequestMapping("/wgDjList")public R wgDjList(@RequestParam Map<String, Object> params){params.put("ysType","瓦工业务单据");PageUtils page = ysWaterervice.queryPage(params);return R.ok().put("page", page);}@RequestMapping("/mgList")public R mgList(@RequestParam Map<String, Object> params){params.put("ysType","木工装修验收");PageUtils page = ysWaterervice.queryPage(params);return R.ok().put("page", page);}@RequestMapping("/mgDjList")public R mgDjList(@RequestParam Map<String, Object> params){params.put("ysType","木工业务单据");PageUtils page = ysWaterervice.queryPage(params);return R.ok().put("page", page);}@RequestMapping("/sgjsDjList")public R sgjsDjList(@RequestParam Map<String, Object> params){params.put("ysType","施工结束业务单据");PageUtils page = ysWaterervice.queryPage(params);return R.ok().put("page", page);}@RequestMapping("/info/{id}")public R info(@PathVariable("id") Long id){YsWater ysWater = ysWaterervice.getById(id);return R.ok().put("ysWater", ysWater);}@RequestMapping("/export")public R save(HttpServletResponse response, HttpServletRequest request){try {ysWaterServiceImpl.outExcelByMealOrReserve(getParametersMap(request),response);} catch (Exception e) {e.printStackTrace();}return R.ok();}/*** 将所有参数组装成Map* @return*/private Map<String, String> getParametersMap(HttpServletRequest request) throws UnsupportedEncodingException {Map<String, String> map = new HashMap<String, String>();Enumeration<String> paramNames = request.getParameterNames();String encoding = request.getCharacterEncoding();while (paramNames.hasMoreElements()) {String paramName = paramNames.nextElement();String[] paramValues = request.getParameterValues(paramName);if (paramValues.length == 1) {String paramValue = paramValues[0];if (paramValue.length() != 0) {if (!encoding.toUpperCase().equals("UTF-8")) {map.put(paramName, new String(paramValue.getBytes("ISO-8859-1"),"UTF-8"));} else {map.put(paramName, paramValue);}}}}return map;}@RequestMapping("/save")public R save(@RequestBody YsWater ysWater){ysWaterervice.save(ysWater);return R.ok();}@RequestMapping("/update")public R update(@RequestBody YsWater ysWater){ysWaterervice.updateById(ysWater);return R.ok();}@RequestMapping("/delete")public R delete(@RequestBody Long[] ids){ysWaterervice.removeByIds(Arrays.asList(ids));return R.ok();}
}
用户权限拦截放行:
/*** Shiro的配置文件**/
@Configuration
public class ShiroConfig {/*** 单机环境,session交给shiro管理*/@Bean@ConditionalOnProperty(prefix = "renren", name = "cluster", havingValue = "false")public DefaultWebSessionManager sessionManager(@Value("${renren.globalSessionTimeout:3600}") long globalSessionTimeout){DefaultWebSessionManager sessionManager = new DefaultWebSessionManager();sessionManager.setSessionValidationSchedulerEnabled(true);sessionManager.setSessionIdUrlRewritingEnabled(false);sessionManager.setSessionValidationInterval(globalSessionTimeout * 1000);sessionManager.setGlobalSessionTimeout(globalSessionTimeout * 1000);return sessionManager;}@Bean("securityManager")public SecurityManager securityManager(UserRealm userRealm, SessionManager sessionManager) {DefaultWebSecurityManager securityManager = new DefaultWebSecurityManager();securityManager.setCacheManager(new EhCacheManager());securityManager.setRealm(userRealm);securityManager.setSessionManager(sessionManager);securityManager.setRememberMeManager(null);return securityManager;}/*** 集群环境,session交给spring-session管理*/@Bean@ConditionalOnProperty(prefix = "renren", name = "cluster", havingValue = "true")public ServletContainerSessionManager servletContainerSessionManager() {return new ServletContainerSessionManager();}@Bean("shiroFilter")public ShiroFilterFactoryBean shiroFilter(SecurityManager securityManager) {ShiroFilterFactoryBean shiroFilter = new ShiroFilterFactoryBean();shiroFilter.setSecurityManager(securityManager);shiroFilter.setLoginUrl("/login.html");shiroFilter.setUnauthorizedUrl("/");Map<String, String> filterMap = new LinkedHashMap<>();filterMap.put("/swagger/**", "anon");filterMap.put("/v2/api-docs", "anon");filterMap.put("/swagger-ui.html", "anon");filterMap.put("/webjars/**", "anon");filterMap.put("/swagger-resources/**", "anon");filterMap.put("/statics/**", "anon");filterMap.put("/login.html", "anon");filterMap.put("/sys/login", "anon");filterMap.put("/favicon.ico", "anon");filterMap.put("/captcha.jpg", "anon");filterMap.put("/**", "authc");shiroFilter.setFilterChainDefinitionMap(filterMap);return shiroFilter;}@Bean("lifecycleBeanPostProcessor")public LifecycleBeanPostProcessor lifecycleBeanPostProcessor() {return new LifecycleBeanPostProcessor();}@Beanpublic AuthorizationAttributeSourceAdvisor authorizationAttributeSourceAdvisor(SecurityManager securityManager) {AuthorizationAttributeSourceAdvisor advisor = new AuthorizationAttributeSourceAdvisor();advisor.setSecurityManager(securityManager);return advisor;}
}
数据库设计:
数据库名:renren_zxys
文档版本:V1.0.0
文档描述:装修验收数据库表设计描述
表sys_config (系统配置信息表)
编号 |
名称 |
数据类型 |
长度 |
小数位 |
允许空值 |
主键 |
说明 |
1 |
id |
bigint |
20 |
0 |
N |
Y |
|
2 |
param_key |
varchar |
50 |
0 |
Y |
N |
key |
3 |
param_value |
varchar |
2000 |
0 |
Y |
N |
value |
4 |
status |
tinyint |
4 |
0 |
Y |
N |
状态 0:隐藏 1:显示 |
5 |
remark |
varchar |
500 |
0 |
Y |
N |
备注 |
表sys_dept (部门管理)
编号 |
名称 |
数据类型 |
长度 |
小数位 |
允许空值 |
主键 |
说明 |
1 |
dept_id |
bigint |
20 |
0 |
N |
Y |
|
2 |
parent_id |
bigint |
20 |
0 |
Y |
N |
上级部门ID,一级部门为0 |
3 |
name |
varchar |
50 |
0 |
Y |
N |
部门名称 |
4 |
order_num |
int |
10 |
0 |
Y |
N |
排序 |
5 |
del_flag |
tinyint |
4 |
0 |
Y |
N |
是否删除 -1:已删除 0:正常 |
表sys_dict (数据字典表)
编号 |
名称 |
数据类型 |
长度 |
小数位 |
允许空值 |
主键 |
说明 |
1 |
id |
bigint |
20 |
0 |
N |
Y |
|
2 |
name |
varchar |
100 |
0 |
N |
N |
字典名称 |
3 |
type |
varchar |
100 |
0 |
Y |
N |
字典类型 |
4 |
code |
varchar |
100 |
0 |
Y |
N |
字典码 |
5 |
value |
varchar |
1000 |
0 |
Y |
N |
字典值 |
6 |
order_num |
int |
10 |
0 |
Y |
N |
排序 |
7 |
remark |
varchar |
255 |
0 |
Y |
N |
备注 |
8 |
del_flag |
tinyint |
4 |
0 |
Y |
N |
删除标记 -1:已删除 0:正常 |
表sys_menu (菜单管理)
编号 |
名称 |
数据类型 |
长度 |
小数位 |
允许空值 |
主键 |
说明 |
1 |
menu_id |
bigint |
20 |
0 |
N |
Y |
|
2 |
parent_id |
bigint |
20 |
0 |
Y |
N |
父菜单ID,一级菜单为0 |
3 |
name |
varchar |
50 |
0 |
Y |
N |
菜单名称 |
4 |
url |
varchar |
200 |
0 |
Y |
N |
菜单URL |
5 |
perms |
varchar |
500 |
0 |
Y |
N |
授权(多个用逗号分隔,如:user:list,user:create) |
6 |
type |
int |
10 |
0 |
Y |
N |
类型 0:目录 1:菜单 2:按钮 |
7 |
icon |
varchar |
50 |
0 |
Y |
N |
菜单图标 |
8 |
order_num |
int |
10 |
0 |
Y |
N |
排序 |
表sys_role (角色)
编号 |
名称 |
数据类型 |
长度 |
小数位 |
允许空值 |
主键 |
说明 |
1 |
role_id |
bigint |
20 |
0 |
N |
Y |
|
2 |
role_name |
varchar |
100 |
0 |
Y |
N |
角色名称 |
3 |
remark |
varchar |
100 |
0 |
Y |
N |
备注 |
4 |
dept_id |
bigint |
20 |
0 |
Y |
N |
部门ID |
5 |
create_time |
datetime |
19 |
0 |
Y |
N |
创建时间 |
表sys_role_dept (角色与部门对应关系)
编号 |
名称 |
数据类型 |
长度 |
小数位 |
允许空值 |
主键 |
说明 |
1 |
id |
bigint |
20 |
0 |
N |
Y |
|
2 |
role_id |
bigint |
20 |
0 |
Y |
N |
角色ID |
3 |
dept_id |
bigint |
20 |
0 |
Y |
N |
部门ID |
表sys_role_menu (角色与菜单对应关系)
编号 |
名称 |
数据类型 |
长度 |
小数位 |
允许空值 |
主键 |
默认值 |
说明 |
1 |
id |
bigint |
20 |
0 |
N |
Y |
||
2 |
role_id |
bigint |
20 |
0 |
Y |
N |
角色ID |
|
3 |
menu_id |
bigint |
20 |
0 |
Y |
N |
菜单ID |
表sys_user (系统用户)
编号 |
名称 |
数据类型 |
长度 |
小数位 |
允许空值 |
主键 |
说明 |
1 |
user_id |
bigint |
20 |
0 |
N |
Y |
|
2 |
username |
varchar |
50 |
0 |
N |
N |
用户名 |
3 |
password |
varchar |
100 |
0 |
Y |
N |
密码 |
4 |
salt |
varchar |
20 |
0 |
Y |
N |
盐 |
5 |
|
varchar |
100 |
0 |
Y |
N |
邮箱 |
6 |
mobile |
varchar |
100 |
0 |
Y |
N |
手机号 |
7 |
status |
tinyint |
4 |
0 |
Y |
N |
状态 0:禁用 1:正常 |
8 |
dept_id |
bigint |
20 |
0 |
Y |
N |
部门ID |
9 |
create_time |
datetime |
19 |
0 |
Y |
N |
创建时间 |
表sys_user_role (用户与角色对应关系)
编号 |
名称 |
数据类型 |
长度 |
小数位 |
允许空值 |
主键 |
说明 |
1 |
id |
bigint |
20 |
0 |
N |
Y |
|
2 |
user_id |
bigint |
20 |
0 |
Y |
N |
用户ID |
3 |
role_id |
bigint |
20 |
0 |
Y |
N |
角色ID |
表ys_water
编号 |
名称 |
数据类型 |
长度 |
小数位 |
允许空值 |
主键 |
说明 |
1 |
id |
int |
10 |
0 |
N |
Y |
|
2 |
name |
varchar |
255 |
0 |
Y |
N |
项目名称 |
3 |
xm_type |
varchar |
255 |
0 |
Y |
N |
项目类型 |
4 |
xm_dizhi |
varchar |
255 |
0 |
Y |
N |
项目地址 |
5 |
username |
varchar |
255 |
0 |
Y |
N |
录入人 |
6 |
lr_time |
datetime |
19 |
0 |
Y |
N |
录入日期 |
7 |
gz_username |
varchar |
255 |
0 |
Y |
N |
工地负责人 |
8 |
sjs |
varchar |
255 |
0 |
Y |
N |
设计师 |
9 |
jlry |
varchar |
255 |
0 |
Y |
N |
监理人员 |
10 |
money |
varchar |
255 |
0 |
Y |
N |
|
11 |
sg_time |
datetime |
19 |
0 |
Y |
N |
|
12 |
js_time |
datetime |
19 |
0 |
Y |
N |
|
13 |
clpp |
varchar |
255 |
0 |
Y |
N |
材料品牌 |
14 |
sg_username |
varchar |
255 |
0 |
Y |
N |
施工人员 |
15 |
khjg |
varchar |
255 |
0 |
Y |
N |
考核结果 |
16 |
remark |
varchar |
255 |
0 |
Y |
N |
|
17 |
ys_type |
varchar |
255 |
0 |
Y |
N |
验收类型(水电 瓦工 木工 油漆工) |
个人总结:
经过近期对 java 面向对象程序设计、前端知识以及JAVA 框架的掌握和学习,以及这段时间本教育教学系统的开发,让我更加了解到 java 学习的重要性。在开发这个系统是哪个,我完成了多个实验以及地块管理管理平台的功能测试,阶段的系统开发学习当中,我从认识到熟悉java,而后到能够自主运用相关技术,我发现了它确实有很多方便之处,比如java集抽象性和封装性以及继承性和多态性于一体,实现了对代码重用和代码扩充功能,提高了整体软件开发的速度和效率。比如管理员添加用户的时候报java.lang.NullPointException、解决的方法:查看控制台打印信息、发现添加的时候未填写相关信息、报java.lang.NullPointException、通过断电调试发现用户信息为空的数据项、在前端保存的时候必须填写用户完整相关信息或者数据库设置字段可以为空都可以解决、 我学习程序设计的主要目的就是提高自己实际问题的程序解决方案的关键技能和技术。
源码获取:
大家点赞、收藏、关注、评论啦 、查看
基于javaSpringboot的装修验收管理系统设计和实现相关推荐
- 基于javaSpringboot+mybatis+layui的装修验收管理系统设计和实现
- asp毕业设计——基于asp+sqlserver的住户管理系统设计与实现(毕业论文+程序源码)——住户管理系统
基于asp+sqlserver的住户管理系统设计与实现(毕业论文+程序源码) 大家好,今天给大家介绍基于asp+sqlserver的住户管理系统设计与实现,文章末尾附有本毕业设计的论文和源码下载地址哦 ...
- asp毕业设计——基于asp+access的订单管理系统设计与实现(毕业论文+程序源码)——订单管理系统
基于asp+access的订单管理系统设计与实现(毕业论文+程序源码) 大家好,今天给大家介绍基于asp+access的订单管理系统设计与实现,文章末尾附有本毕业设计的论文和源码下载地址哦. 文章目录 ...
- asp毕业设计——基于asp+sqlserver的选题管理系统设计与实现(毕业论文+程序源码)——选题管理系统
基于asp+sqlserver的选题管理系统设计与实现(毕业论文+程序源码) 大家好,今天给大家介绍基于asp+sqlserver的选题管理系统设计与实现,文章末尾附有本毕业设计的论文和源码下载地址哦 ...
- asp毕业设计——基于asp+access的档案管理系统设计与实现(毕业论文+程序源码)——档案管理系统
基于asp+access的档案管理系统设计与实现(毕业论文+程序源码) 大家好,今天给大家介绍基于asp+access的档案管理系统设计与实现,文章末尾附有本毕业设计的论文和源码下载地址哦. 文章目录 ...
- asp毕业设计——基于asp+sqlserver的学籍管理系统设计与实现(毕业论文+程序源码)——学籍管理系统
基于asp+sqlserver的学籍管理系统设计与实现(毕业论文+程序源码) 大家好,今天给大家介绍基于asp+sqlserver的学籍管理系统设计与实现,文章末尾附有本毕业设计的论文和源码下载地址哦 ...
- 基于SSM架构的新闻管理系统设计与实现论文
标题基于SSM架构的新闻管理系统设计与实现 摘 要 当代社会发展迅速,电脑和网络已经是人们日常生活中必不可或缺的收取信息的工具,起到了至关重要的作用,而随着网络与计算机的发展,网站行业也迅速发展起来, ...
- asp毕业设计——基于asp+access的学生管理系统设计与实现(毕业论文+程序源码)——学生管理系统
基于asp+access的学生管理系统设计与实现(毕业论文+程序源码) 大家好,今天给大家介绍基于asp+access的学生管理系统设计与实现,文章末尾附有本毕业设计的论文和源码下载地址哦.需要下载开 ...
- 基于javaweb+mysql的就业管理系统设计和实现(java+springboot+ssm)
基于javaweb+mysql的就业管理系统设计和实现(java+springboot+ssm) 运行环境 Java≥8.MySQL≥5.7 开发工具 eclipse/idea/myeclipse/s ...
最新文章
- 数据结构-二叉树和二叉查找树
- 游戏的数值系统的实现和演化
- 【IneliJ 】使用IneliJ IDEA 2016将Java Web项目导出为War包
- 我用段子讲.NET之依赖注入(一)
- apache flume_Flume:使用Apache Flume收集客户产品搜索点击数据
- java查看jvm对象个数_jmap-查看 jvm 内存对象信息
- 网格布局之网格元素放置算法
- 通过数组和枚举简化GPIO操作编码
- 校园综合服务平台小程序
- Javascript中相同Function使用多个名称
- 《人月神话》——2人月神话
- uniapp引入高德地图sdk经纬度解析诚地址名称
- 计算机组成原理_在线作业1,电子科大《计算机组成原理》在线作业1
- Canvas-lms 开源在线学习管理系统源码部署(生产版)
- 期货接盘(期货接盘什么意思)
- B - The Pilots Brothers' refrigerator
- 90%以上的基础设施由OpenStack管理和提供的CERN,现在如何了?
- Google主页设计专利
- ViewPage禁止滑动原理解析
- [屌丝PM]做一个网络“拾穗者”(2)
热门文章
- JS监控手机或APP返回事件
- css3制作手风琴,CSS3实现可关闭的下拉手风琴菜单效果
- HTML5与Flash对比
- 网站快照异常预示网站优化有问题
- windows下wsl2中的ubuntu和ubuntu系统下docker使用gpu的异同
- 求日版KPW2的内核文件main_kernel.img和diags_kernel.img
- 了解自动驾驶 从ADAS开始
- 华为hybrid,pvid,lap
- 浙大计算机科学与技术专业课表,周亚金 - 浙江大学 - 计算机科学与技术
- npm - 报错:found XXX vulnerabilities (XXX low, X moderate),run `npm audit fix` to fix them, or `npm au