• SpringBoot+Vue项目校园防疫管理系统


    文末获取源码

    开发语言:Java

    使用框架:spring boot

    前端技术:JavaScript、Vue.js 、css3

    开发工具:IDEA/MyEclipse/Eclipse、Visual Studio Code

    数据库:MySQL 5.7/8.0

    数据库管理工具:phpstudy/Navicat

    JDK版本:Java jdk8

    Maven:apache-maven 3.8.1-bin

    目录

    一、前言介绍 

    二、系统设计规则

    三、管理员功能模块

    3.1系统登录页面

    3.2采购计划管理页面

    3.3物资信息管理页面

    3.4入库管理管理页面 

    3.5疫情数据管理页面 

    四、操作员功能模块

    4.1采购计划页面

    4.2出库管理页面 

    4.3供应商信息页面 

    4.4公告信息页面

    4.5疫情数据页面 

    五、部分核心代码 

    5.1采购计划关键代码

    5.2入库管理关键代码

    5.3疫情数据关键代码


    一、前言介绍 

    本系统前端框架采用了比较流行的渐进式JavaScript框架Vue.js。使用Vue-Router和Vuex实现动态路由和全局状态管理,Ajax实现前后端通信,Element UI组件库使页面快速成型。后端部分:采用springboot作为开发框架,同时集成MyBatis、Redis等相关技术。

    校园防疫管理,主要的模块包括查看首页、用户管理(管理员、操作员、)更多管理(采购计划、物资信息、分类管理、入库管理、出库管理、供应商信息、公告信息、疫情数据)等功能。系统中管理员主要是为了安全有效地存储和管理各类信息,还可以对系统进行管理与更新维护等操作,并且对后台有相应的操作权限。

    要想实现校园防疫管理的各项功能,需要后台数据库的大力支持。管理员验证注册信息,收集的用户信息,并由此分析得出的关联信息等大量的数据都由数据库管理系统管理。本文中数据库服务器端采用了Mysql作为后台数据库,使Web与数据库紧密联系起来。在设计过程中,充分保证了系统代码的良好可读性、实用性、易扩展性、通用性、便于后期维护、操作方便以及页面简洁等特点。

    本系统的开发使获取校园防疫管理信息能够更加方便快捷,同时也使校园防疫管理管理信息变的更加系统化、有序化。系统界面较友好,易于操作。

    二、系统设计规则

    本校园防疫管理采用Java技术,Mysql数据库开发,充分保证了系统稳定性、完整性。

    校园防疫管理的设计与实现的设计思想如下:

    操作简单方便、系统界面安全良好:简单明了的页面布局,方便查询校园防疫管理管理的相关信息。

    2、即时可见:对校园防疫管理信息的处理将立马在对应地点可以查询到,从而实现“即时发布、即时见效”的系统功能。

    3、功能的完善性:可以管理首页、用户管理(管理员、操作员、)更多管理(采购计划、物资信息、分类管理、入库管理、出库管理、供应商信息、公告信息、疫情数据)系统管理模块的修改和维护操作。

    三、管理员功能模块

    3.1系统登录页面

    3.2采购计划管理页面

    3.3物资信息管理页面

    3.4入库管理管理页面 

    3.5疫情数据管理页面 

    四、操作员功能模块

    4.1采购计划页面

    4.2出库管理页面 

    4.3供应商信息页面 

    4.4公告信息页面

    4.5疫情数据页面 

    五、部分核心代码 

    5.1采购计划关键代码

    1. @RequestMapping(value = {"/count_group", "/count"})
    2. public Map<String, Object> count(HttpServletRequest request) {
    3. Query count = service.count(service.readQuery(request), service.readConfig(request));
    4. return success(count.getResultList());
    5. }

    5.2入库管理关键代码

    1. @PostMapping("/add")
    2. @Transactional
    3. public Map<String, Object> add(HttpServletRequest request) throws IOException {
    4. service.insert(service.readBody(request.getReader()));
    5. return success(1);
    6. }
    7. @Transactional
    8. public Map<String, Object> addMap(Map<String,Object> map){
    9. service.insert(map);
    10. return success(1);
    11. }
    12. public Map<String,Object> readBody(BufferedReader reader){
    13. BufferedReader br = null;
    14. StringBuilder sb = new StringBuilder("");
    15. try{
    16. br = reader;
    17. String str;
    18. while ((str = br.readLine()) != null){
    19. sb.append(str);
    20. }
    21. br.close();
    22. String json = sb.toString();
    23. return JSONObject.parseObject(json, Map.class);
    24. }catch (IOException e){
    25. e.printStackTrace();
    26. }finally{
    27. if (null != br){
    28. try{
    29. br.close();
    30. }catch (IOException e){
    31. e.printStackTrace();
    32. }
    33. }
    34. }
    35. return null;
    36. }
    37. public void insert(Map<String,Object> body){
    38. StringBuffer sql = new StringBuffer("INSERT INTO ");
    39. sql.append("`").append(table).append("`").append(" (");
    40. for (Map.Entry<String,Object> entry:body.entrySet()){
    41. sql.append("`"+humpToLine(entry.getKey())+"`").append(",");
    42. }
    43. sql.deleteCharAt(sql.length()-1);
    44. sql.append(") VALUES (");
    45. for (Map.Entry<String,Object> entry:body.entrySet()){
    46. Object value = entry.getValue();
    47. if (value instanceof String){
    48. sql.append("'").append(entry.getValue()).append("'").append(",");
    49. }else {
    50. sql.append(entry.getValue()).append(",");
    51. }
    52. }
    53. sql.deleteCharAt(sql.length() - 1);
    54. sql.append(")");
    55. log.info("[{}] - 插入操作:{}",table,sql);
    56. Query query = runCountSql(sql.toString());
    57. query.executeUpdate();
    58. }

    5.3疫情数据关键代码

    1. @PostMapping("/set")
    2. @Transactional
    3. public Map<String, Object> set(HttpServletRequest request) throws IOException {
    4. service.update(service.readQuery(request), service.readConfig(request), service.readBody(request.getReader()));
    5. return success(1);
    6. }
    7. public Map<String,String> readConfig(HttpServletRequest request){
    8. Map<String,String> map = new HashMap<>();
    9. map.put(FindConfig.PAGE,request.getParameter(FindConfig.PAGE));
    10. map.put(FindConfig.SIZE,request.getParameter(FindConfig.SIZE));
    11. map.put(FindConfig.LIKE,request.getParameter(FindConfig.LIKE));
    12. map.put(FindConfig.ORDER_BY,request.getParameter(FindConfig.ORDER_BY));
    13. map.put(FindConfig.FIELD,request.getParameter(FindConfig.FIELD));
    14. map.put(FindConfig.GROUP_BY,request.getParameter(FindConfig.GROUP_BY));
    15. map.put(FindConfig.MAX_,request.getParameter(FindConfig.MAX_));
    16. map.put(FindConfig.MIN_,request.getParameter(FindConfig.MIN_));
    17. return map;
    18. }
    19. public Map<String,String> readQuery(HttpServletRequest request){
    20. String queryString = request.getQueryString();
    21. if (queryString != null && !"".equals(queryString)) {
    22. String[] querys = queryString.split("&");
    23. Map<String, String> map = new HashMap<>();
    24. for (String query : querys) {
    25. String[] q = query.split("=");
    26. map.put(q[0], q[1]);
    27. }
    28. map.remove(FindConfig.PAGE);
    29. map.remove(FindConfig.SIZE);
    30. map.remove(FindConfig.LIKE);
    31. map.remove(FindConfig.ORDER_BY);
    32. map.remove(FindConfig.FIELD);
    33. map.remove(FindConfig.GROUP_BY);
    34. map.remove(FindConfig.MAX_);
    35. map.remove(FindConfig.MIN_);
    36. return map;
    37. }else {
    38. return new HashMap<>();
    39. }
    40. }
    41. @Transactional
    42. public void update(Map<String,String> query,Map<String,String> config,Map<String,Object> body){
    43. StringBuffer sql = new StringBuffer("UPDATE ").append("`").append(table).append("`").append(" SET ");
    44. for (Map.Entry<String,Object> entry:body.entrySet()){
    45. Object value = entry.getValue();
    46. if (value instanceof String){
    47. sql.append("`"+humpToLine(entry.getKey())+"`").append("=").append("'").append(value).append("'").append(",");
    48. }else {
    49. sql.append("`"+humpToLine(entry.getKey())+"`").append("=").append(value).append(",");
    50. }
    51. }
    52. sql.deleteCharAt(sql.length()-1);
    53. sql.append(toWhereSql(query,"0".equals(config.get(FindConfig.LIKE))));
    54. log.info("[{}] - 更新操作:{}",table,sql);
    55. Query query1 = runCountSql(sql.toString());
    56. query1.executeUpdate();
    57. }
    58. public String toWhereSql(Map<String,String> query, Boolean like) {
    59. if (query.size() > 0) {
    60. try {
    61. StringBuilder sql = new StringBuilder(" WHERE ");
    62. for (Map.Entry<String, String> entry : query.entrySet()) {
    63. if (entry.getKey().contains(FindConfig.MIN_)) {
    64. String min = humpToLine(entry.getKey()).replace("_min", "");
    65. sql.append("`"+min+"`").append(" >= '").append(URLDecoder.decode(entry.getValue(), "UTF-8")).append("' and ");
    66. continue;
    67. }
    68. if (entry.getKey().contains(FindConfig.MAX_)) {
    69. String max = humpToLine(entry.getKey()).replace("_max", "");
    70. sql.append("`"+max+"`").append(" <= '").append(URLDecoder.decode(entry.getValue(), "UTF-8")).append("' and ");
    71. continue;
    72. }
    73. if (like == true) {
    74. sql.append("`"+humpToLine(entry.getKey())+"`").append(" LIKE '%").append(URLDecoder.decode(entry.getValue(), "UTF-8")).append("%'").append(" and ");
    75. } else {
    76. sql.append("`"+humpToLine(entry.getKey())+"`").append(" = '").append(URLDecoder.decode(entry.getValue(), "UTF-8")).append("'").append(" and ");
    77. }
    78. }
    79. sql.delete(sql.length() - 4, sql.length());
    80. sql.append(" ");
    81. return sql.toString();
    82. } catch (UnsupportedEncodingException e) {
    83. log.info("拼接sql 失败:{}", e.getMessage());
    84. }
    85. }
    86. return "";
    87. }
  • 相关阅读:
    java毕业设计企业级工位管理系统mybatis+源码+调试部署+系统+数据库+lw
    Python逐日填补Excel中的日期并用0值填充缺失日期的数据
    健身房管理系统
    使用自定义的keep-alive组件,将公共页面缓存多份,都有自己的生命周期
    【如何看待Unity收费】对标中小公司的待就业者的该如何做
    架设好传奇登录器显示无法连接服务器,完美登录器使用常见问题解决办法
    Eolink是国产API接口管理的无冕之王
    实验九—基本统计分析(二)
    造个Python轮子,实现根据Excel生成Model和数据导入脚本
    Hadoop3教程(十):MapReduce中的InputFormat
  • 原文地址:https://blog.csdn.net/m0_49113107/article/details/128068484