基于javaSpringboot+mybatis+layui的装修验收管理系统设计和实现
Posted java李杨勇
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了基于javaSpringboot+mybatis+layui的装修验收管理系统设计和实现相关的知识,希望对你有一定的参考价值。
🍅 作者主页:Java李杨勇
🍅 简介:Java领域优质创作者🏆、【java李杨勇】公号作者✌ 简历模板、学习资料、面试题库【关注我,都给你】
🍅文末获取源码联系和送书🍅
前言:
随着社会的进步和科技的发展,越来越多的人追求新颖独特,实用的居住和工作学习环境。因此,在如今的建筑装饰工程中,既要考虑到客户的需求和与建筑结构的协调统一又要考虑到成本和施工组织的安排,所以说现代装饰工程是一件相对繁琐却又必须要做好的事情。在保质保量完成工作内容的同时,还要确保施工施工验收的各项标准数据、通过一段时间对Java相关开发知识的学习,基本了解了施工过程中的各种工艺流程和特点,利用JavaSpringboot+layui简单做个一个装修验收管理系统、适用于简单学习参考使用。
主要设计:
- 水电验收
主要功能:
(1)列表查询
功能:查询、添加、修改、删除、导出。
查询字段:序号、项目名称、项目类型、项目地址、录入人、录入日期、工地负责人、设计师、监理人员、合同金额、施工日期、结束日期、材料品牌、施工人员、考核结果、备注。
(2)业务单据
功能:添加水电考核内容
操作字段:项目名称、项目类型、项目地址、录入人、录入日期、工地负责人、设计师、监理人员、合同金额、施工日期、结束日期、材料品牌、施工人员、考核结果、备注。
- 瓦工验收
(1)列表查询
功能:查询、添加、修改、删除、导出。
查询字段:序号、项目名称、项目类型、项目地址、录入人、录入日期、工地负责人、设计师、监理人员、合同金额、施工日期、结束日期、材料品牌、施工人员、考核结果、备注。
(2)业务单据
功能:添加瓦工考核内容
操作字段:项目名称、项目类型、项目地址、录入人、录入日期、工地负责人、设计师、监理人员、合同金额、施工日期、结束日期、材料品牌、施工人员、考核结果、备注。
- 木工验收
(1)列表查询
功能:查询、添加、修改、删除、导出。
查询字段:序号、项目名称、项目类型、项目地址、录入人、录入日期、工地负责人、设计师、监理人员、合同金额、施工日期、结束日期、材料品牌、施工人员、考核结果、备注。
(2)业务单据
功能:添加木工考核内容
操作字段:项目名称、项目类型、项目地址、录入人、录入日期、工地负责人、设计师、监理人员、合同金额、施工日期、结束日期、材料品牌、施工人员、考核结果、备注。
- 油漆工验收
(1)列表查询
功能:查询、添加、修改、删除、导出。
查询字段:序号、项目名称、项目类型、项目地址、录入人、录入日期、工地负责人、设计师、监理人员、合同金额、施工日期、结束日期、材料品牌、施工人员、考核结果、备注。
(2)业务单据
功能:添加油漆考核内容
操作字段:项目名称、项目类型、项目地址、录入人、录入日期、工地负责人、设计师、监理人员、合同金额、施工日期、结束日期、材料品牌、施工人员、考核结果、备注。
- 施工结束验收
(1)列表查询
功能:查询、添加、修改、删除、导出。
查询字段:序号、项目名称、项目类型、项目地址、录入人、录入日期、工地负责人、设计师、监理人员、合同金额、施工日期、结束日期、材料品牌、施工人员、考核结果、备注。
(2)业务单据
功能:添加施工结束考核内容
操作字段:项目名称、项目类型、项目地址、录入人、录入日期、工地负责人、设计师、监理人员、合同金额、施工日期、结束日期、材料品牌、施工人员、考核结果、备注。
功能截图:
管理员登录:
系统首页:
用户管理:
角色管理:
菜单管理:
SQL监控:
水电验收:
数据导出:
木工验收:
修改密码:
代码实现:
装修验收controller:
@RestController
@RequestMapping("/sys/ysWater")
public class YsWaterController extends AbstractController
@Autowired
private YsWaterService ysWaterervice;
@Autowired
private 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("/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("/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("/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;
/**
* 集群环境,session交给spring-session管理
*/
@Bean
@ConditionalOnProperty(prefix = "renren", name = "cluster", havingValue = "true")
public ServletContainerSessionManager servletContainerSessionManager()
return new ServletContainerSessionManager();
@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;
@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();
@Bean
public 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_log (系统日志)
编号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 说明 |
1 | id | bigint | 20 | 0 | N | Y | |
2 | username | varchar | 50 | 0 | Y | N | 用户名 |
3 | operation | varchar | 50 | 0 | Y | N | 用户操作 |
4 | method | varchar | 200 | 0 | Y | N | 请求方法 |
5 | params | varchar | 5000 | 0 | Y | N | 请求参数 |
6 | time | bigint | 20 | 0 | N | N | 执行时长(毫秒) |
7 | ip | varchar | 64 | 0 | Y | N | IP地址 |
8 | create_date | datetime | 19 | 0 | Y | N | 创建时间 |
表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 | 基于JavaSpringboot+vue国风汉服文化交流宣传系统 基于JavaSpringboot+vue国风汉服文化交流宣传系统 基于JavaSpringBoot+Vue+uniapp微信小程序实现校园宿舍管理系统 基于JavaSpringBoot+Vue+uniapp微信小程序实现校园宿舍管理系统 |