基于JavaWeb开发的java+Springboot操作系统教学交流平台详细设计实现

ops/2024/12/23 1:13:56/

javaSpringbootmybatislayui_0">基于JavaWeb开发的javaSpringboot+mybatis+layui的装修验收管理系统设计和实现

🍅 作者主页 网顺技术团队
🍅 欢迎点赞 👍 收藏 ⭐留言 📝
🍅 文末获取源码联系方式 📝
🍅 查看下方微信号获取联系方式 承接各种定制系统 📝
🚀🚀🚀精彩系列推荐
👇🏻 精彩专栏推荐订阅👇🏻 不然下次找不到哟
Java毕设项目精品实战案例《1000套》
感兴趣的可以先收藏起来,还有大家在毕设选题,项目以及论文编写等相关问题都可以给我留言咨询,希望帮助更多的人

文章目录

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

前言:

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

主要设计:

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

功能截图:

管理员登录:
在这里插入图片描述
系统首页:
在这里插入图片描述
用户管理:
在这里插入图片描述
在这里插入图片描述
角色管理:
在这里插入图片描述
菜单管理:
在这里插入图片描述
SQL监控:
在这里插入图片描述
水电验收:
在这里插入图片描述
v
数据导出:
在这里插入图片描述
木工验收:
在这里插入图片描述
在这里插入图片描述
修改密码:
在这里插入图片描述

代码实现:

装修验收controller:

java"> 
@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("/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();}
}

用户权限拦截放行:

java"> 
/*** 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();}@Beanpublic AuthorizationAttributeSourceAdvisor authorizationAttributeSourceAdvisor(SecurityManager securityManager) {AuthorizationAttributeSourceAdvisor advisor = new AuthorizationAttributeSourceAdvisor();advisor.setSecurityManager(securityManager);return advisor;}
}

个人总结:

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

获取源码
总体来说这个项目功能相对还是比较简单优秀的、适合初学者作为课程设计和毕业设计参考
🍅 查看下方微信号获取联系方式 承接各种定制系统 📝
🚀🚀🚀精彩系列推荐
Java毕设项目精品实战案例《1000套》
感兴趣的可以先收藏起来,还有大家在毕设选题,项目以及论文编写等相关问题都可以给我留言咨询,希望帮助更多的人


http://www.ppmy.cn/ops/113449.html

相关文章

使用canal.deployer-1.1.7和canal.adapter-1.1.7实现mysql数据同步

1、下载地址 --查看是否开启bin_log日志&#xff0c;value on表示开启 SHOW VARIABLES LIKE log_bin; -- 查看bin_log日志文件 SHOW BINARY LOGS; --查看bin_log写入状态 SHOW MASTER STATUS; --查看bin_log存储格式 row SHOW VARIABLES LIKE binlog_format; --查看数据库服…

秋招自我介绍

1min 尊敬的面试官您好&#xff0c;感谢您百忙之中参加我的面试。我是来自北京大学的王峰。 在实习经历方面&#xff0c;我曾在美团和小米公司实习。在美团主要负责核身、质检、词云项目。 在核身项目中&#xff0c;完整的经历从0-1的项目上线过程 在质检项目中&#xff0c;进…

linux命令行快捷键

第一章 linux之帮助命令 第二章 linux命令行快捷键 文章目录 linux命令行快捷键 linux命令行快捷键 Tab 命令补全或文件补全Ctrlu 删除或剪切光标之前的命令Ctrla 将光标移动到命令行开头Ctrle 将光标移动到命令行结尾ctrlc 终止当前命令ctrll 清屏ctrly 粘贴ctrlu的内容 参考…

《ElementUI/Plus 踩坑》el-table + sortablejs 拖拽顺序错乱(Vue2/3适用)

如图所示&#xff1a; 把第一行拖到最后一行&#xff0c;鼠标up&#xff1b;该行莫名其妙的跳到倒数第二行&#xff1b; 最后发现没有设置 el-table 属性 row-key &#xff0c;即行数据的 Key&#xff0c;用来优化 table 的渲染&#xff1b; 属性 row-key 描述如下&#xf…

Vim使用技巧——第一章 Vim解决问题的方式

1、认识 . 命令 . 命令可以“重复上次修改”。 x 会删除光标下字符 u 撤销上次下修改 dd 删除当前行 >G 增加从当前行到文档末尾的缩进层级 . 命令是一个微型的宏 2、不要自我重复 对于在行尾添加内容的常见操作&#xff0c;如添加分号&#xff0c;vim提供了合并操作…

vulhub搭建漏洞环境docker-compose up -d命令执行报错以及解决方法汇总

在利用vulhub靶场搭建环境进行漏洞复现时&#xff0c;我们通常要使用这一步命令&#xff1a; docker-compose up -d 但是经常报错&#xff0c;今天我们来说几个常见的报错以及解决方法&#xff1a; 1.报错提示&#xff1a; ERROR: Couldnt connect to Docker daemon at httpdoc…

Vue|mixin混入

目录 mixin混入什么是mixin代码准备如何混入?全局混合 在 Vue 中&#xff0c;混入&#xff08;Mixins&#xff09;是一种灵活的分发功能&#xff0c;可以将可复用的代码片段和功能注入到多个组件中。简单来说&#xff0c;混入允许你在多个组件之间共享逻辑&#xff0c;而无需重…

DEPLOT: One-shot visual language reasoning by plot-to-table translation论文阅读

文章链接&#xff1a;https://arxiv.org/abs/2308.01979http://arxiv.org/abs/2212.10505https://arxiv.org/abs/2308.01979 源码链接&#xff1a;https://github.com/cse-ai-lab/RealCQA 启发&#xff1a;two-stage方法可能是未来主要研究方向&#xff0c;能够增强模型可解释…