当前位置 : 主页 > 编程语言 > java >

基于javaSpringboot+mybatis+layui的装修验收管理系统设计和实现

来源:互联网 收集:自由互联 发布时间:2023-02-04
基于javaSpringboot+mybatis+layui的装修验收管理系统设计和实现 博主介绍:5年java开发经验,专注Java开发、定制、远程、文档编写指导等,专注于Java技术领域作者主页 ​​​超级帅帅吴Java毕

基于javaSpringboot+mybatis+layui的装修验收管理系统设计和实现

博主介绍:5年java开发经验,专注Java开发、定制、远程、文档编写指导等,专注于Java技术领域作者主页 ​​​超级帅帅吴Java毕设项目精品实战案例《500套》​​欢迎点赞 收藏 ⭐留言

文章目录

  • ​​基于javaSpringboot+mybatis+layui的装修验收管理系统设计和实现​​
  • ​​前言:​​
  • ​​主要设计:​​
  • ​​功能截图:​​
  • ​​代码实现:​​
  • ​​个人总结:​​
  • ​​获取源码:​​

前言:

随着社会的进步和科技的发展,越来越多的人追求新颖独特,实用的居住和工作学习环境。因此,在如今的建筑装饰工程中,既要考虑到客户的需求和与建筑结构的协调统一又要考虑到成本和施工组织的安排,所以说现代装饰工程是一件相对繁琐却又必须要做好的事情。在保质保量完成工作内容的同时,还要确保施工施工验收的各项标准数据、通过一段时间对Java相关开发知识的学习,基本了解了施工过程中的各种工艺流程和特点,利用JavaSpringboot+layui简单做个一个装修验收管理系统、适用于简单学习参考使用。

主要设计:

水电验收 主要功能: (1)列表查询 功能:查询、添加、修改、删除、导出。 查询字段:序号、项目名称、项目类型、项目地址、录入人、录入日期、工地负责人、设计师、监理人员、合同金额、施工日期、结束日期、材料品牌、施工人员、考核结果、备注。 (2)业务单据 功能:添加水电考核内容 操作字段:项目名称、项目类型、项目地址、录入人、录入日期、工地负责人、设计师、监理人员、合同金额、施工日期、结束日期、材料品牌、施工人员、考核结果、备注。 瓦工验收 (1)列表查询 功能:查询、添加、修改、删除、导出。 查询字段:序号、项目名称、项目类型、项目地址、录入人、录入日期、工地负责人、设计师、监理人员、合同金额、施工日期、结束日期、材料品牌、施工人员、考核结果、备注。 (2)业务单据 功能:添加瓦工考核内容 操作字段:项目名称、项目类型、项目地址、录入人、录入日期、工地负责人、设计师、监理人员、合同金额、施工日期、结束日期、材料品牌、施工人员、考核结果、备注。 木工验收 (1)列表查询 功能:查询、添加、修改、删除、导出。 查询字段:序号、项目名称、项目类型、项目地址、录入人、录入日期、工地负责人、设计师、监理人员、合同金额、施工日期、结束日期、材料品牌、施工人员、考核结果、备注。 (2)业务单据 功能:添加木工考核内容 操作字段:项目名称、项目类型、项目地址、录入人、录入日期、工地负责人、设计师、监理人员、合同金额、施工日期、结束日期、材料品牌、施工人员、考核结果、备注。 油漆工验收 (1)列表查询 功能:查询、添加、修改、删除、导出。 查询字段:序号、项目名称、项目类型、项目地址、录入人、录入日期、工地负责人、设计师、监理人员、合同金额、施工日期、结束日期、材料品牌、施工人员、考核结果、备注。 (2)业务单据 功能:添加油漆考核内容 操作字段:项目名称、项目类型、项目地址、录入人、录入日期、工地负责人、设计师、监理人员、合同金额、施工日期、结束日期、材料品牌、施工人员、考核结果、备注。 施工结束验收 (1)列表查询 功能:查询、添加、修改、删除、导出。 查询字段:序号、项目名称、项目类型、项目地址、录入人、录入日期、工地负责人、设计师、监理人员、合同金额、施工日期、结束日期、材料品牌、施工人员、考核结果、备注。 (2)业务单据 功能:添加施工结束考核内容 操作字段:项目名称、项目类型、项目地址、录入人、录入日期、工地负责人、设计师、监理人员、合同金额、施工日期、结束日期、材料品牌、施工人员、考核结果、备注。

功能截图:

管理员登录:

基于javaSpringboot+mybatis+layui的装修验收管理系统设计和实现_spring boot

系统首页:

基于javaSpringboot+mybatis+layui的装修验收管理系统设计和实现_java_02

用户管理:

基于javaSpringboot+mybatis+layui的装修验收管理系统设计和实现_spring boot_03

基于javaSpringboot+mybatis+layui的装修验收管理系统设计和实现_java_04

角色管理:

基于javaSpringboot+mybatis+layui的装修验收管理系统设计和实现_layui_05

菜单管理:

基于javaSpringboot+mybatis+layui的装修验收管理系统设计和实现_layui_06

SQL监控:

基于javaSpringboot+mybatis+layui的装修验收管理系统设计和实现_java项目实战_07

水电验收:

基于javaSpringboot+mybatis+layui的装修验收管理系统设计和实现_layui_08

基于javaSpringboot+mybatis+layui的装修验收管理系统设计和实现_java_09

数据导出:

基于javaSpringboot+mybatis+layui的装修验收管理系统设计和实现_spring boot_10

木工验收:

基于javaSpringboot+mybatis+layui的装修验收管理系统设计和实现_mybatis_11

基于javaSpringboot+mybatis+layui的装修验收管理系统设计和实现_java_12

修改密码

基于javaSpringboot+mybatis+layui的装修验收管理系统设计和实现_spring boot_13

代码实现:

装修验收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的配置文件 * */@Configurationpublic 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; }}

个人总结:

经过近期对 java 面向对象程序设计、前端知识以及JAVA 框架的掌握和学习,以及这段时间本教育教学系统的开发,让我更加了解到 java 学习的重要性。在开发这个系统是哪个,我完成了多个实验以及地块管理管理平台的功能测试,阶段的系统开发学习当中,我从认识到熟悉java,而后到能够自主运用相关技术,我发现了它确实有很多方便之处,比如java集抽象性和封装性以及继承性和多态性于一体,实现了对代码重用和代码扩充功能,提高了整体软件开发的速度和效率。比如管理员添加用户的时候报java.lang.NullPointException、解决的方法:查看控制台打印信息、发现添加的时候未填写相关信息、报java.lang.NullPointException、通过断电调试发现用户信息为空的数据项、在前端保存的时候必须填写用户完整相关信息或者数据库设置字段可以为空都可以解决、 我学习程序设计的主要目的就是提高自己实际问题的程序解决方案的关键技能和技术。

获取源码:

大家点赞、收藏、关注、评论啦

网友评论