一、效果演示
二、前言介绍
随着科学技术的飞速发展,各行各业都在努力与现代先进技术接轨,通过科技手段提高自身的优势;对于幼儿园管理系统当然也不能排除在外,随着网络技术的不断成熟,带动了幼儿园管理系统,它彻底改变了过去传统的管理方式,不仅使服务管理难度变低了,还提升了管理的灵活性。这种个性化的平台特别注重交互协调与管理的相互配合,激发了管理人员的创造性与主动性,对幼儿园管理系统而言非常有利。
本系统采用的数据库是Mysql,使用SpringBoot框架开发,运行环境使用Tomcat服务器,ECLIPSE
是本系统的开发平台。在设计过程中,充分保证了系统代码的良好可读性、实用性、易扩展性、通用性、便于后期维护、操作方便以及页面简洁等特点。
三、主要技术
技术名 | 作用 |
Springboot | 后端框架 |
Vue | 前端框架 |
MySQL | 数据库 |
四、系统设计(部分)
4.1、主要功能模块设计
4.2、系统登录设计
五、运行截图
5.1、用户功能模块
用户点击进入到系统操作界面,可以对首页、个人中心、幼儿信息管理、缴费信息管理、幼儿请假管理、儿童体检管理、菜谱信息管理等功能模块。
5.1.1、个人信息
图5-1个人信息界面图
5.1.2、缴费信息管理
图5-2缴费信息管理界面图
5.1.3、儿童体检管理
图5-3儿童体检管理界面图
5.2、管理员功能模块
管理员通过用户名和密码、角色填写完成后进行登录,如图5-4所示。管理员登录成功后进入到系统操作界面,可以对首页、个人中心、用户管理、教师管理、幼儿信息管理、班级信息管理、工作日志管理、会议记录管理、待办事项管理、职工考核管理、请假信息管理、缴费信息管理、幼儿请假管理、儿童体检管理、资源信息管理、原料信息管理、菜谱信息管理等功能模块进行相对应操作。
5.2.1、管理员登录
图5-4管理员登录页面
5.2.2、用户管理
图5-5用户管理页面
5.2.3、教师管理
图5-6教师管理界面图
5.2.4、资源信息管理
图5-7资源信息管理界面图
5.2.5、原料信息管理
图5-8原料信息管理界面图
5.2.6、菜谱信息管理
图5-9菜谱信息管理界面图
5.2.7、班级信息管理
图5-10班级信息管理界面图
5.3、教师功能模块
教师点击进入到系统操作界面,可以对首页、个人中心、幼儿信息管理、班级信息管理、工作日志管理、会议记录管理、待办事项管理、职工考核管理、请假信息管理、缴费信息管理、幼儿请假管理、儿童体检管理、资源信息管理、原料信息管理、菜谱信息管理等功能模块,幼儿信息管理:通过列表可以获取用户名、家长姓名、幼儿姓名、性别、手机、年龄、班级名称、备注、工号、教师姓名并进行修改操作,如图5-11所示。
图5-11幼儿信息管理界面图
5.3.1、缴费信息管理
图5-12缴费信息管理界面图
5.3.2、儿童体检管理
图5-13儿童体检管理界面图
5.3.3、资源信息管理
图5-14资源信息管理界面图
5.3.4、原料信息管理
图5-15原料信息管理界面图
六、数据库设计(部分)
每个数据库的应用它们都是和区分开的,当运行到一定的程序当中,它就会与自己相关的协议与客户端进行通讯。那么这个系统就会对使这些数据进行连接。当我们选择哪个桥段的时候,接下来就会简单的叙述这个数据库是如何来创建的。当点击完成按钮的时候就会自动在对话框内弹出数据源的名称,在进行点击下一步即可,直接在输入相对应的身份验证和登录密码。
幼儿园管理系统的数据流程:
图4-4 系统数据流程图
教师管理实体E-R图,如图4.5所示。
图4.5教师管理E-R图
七、代码参考
package com.controller; import java.text.SimpleDateFormat; import java.util.ArrayList; import java.util.Arrays; import java.util.Calendar; import java.util.Map; import java.util.HashMap; import java.util.Iterator; import java.util.Date; import java.util.List; import javax.servlet.http.HttpServletRequest; import com.utils.ValidatorUtils; import org.apache.commons.lang3.StringUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.format.annotation.DateTimeFormat; import org.springframework.web.bind.annotation.PathVariable; import org.springframework.web.bind.annotation.RequestBody; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestParam; import org.springframework.web.bind.annotation.RestController; import com.baomidou.mybatisplus.mapper.EntityWrapper; import com.baomidou.mybatisplus.mapper.Wrapper; import com.annotation.IgnoreAuth; import com.entity.BanjixinxiEntity; import com.entity.view.BanjixinxiView; import com.service.BanjixinxiService; import com.service.TokenService; import com.utils.PageUtils; import com.utils.R; import com.utils.MD5Util; import com.utils.MPUtil; import com.utils.CommonUtil; /** * 班级信息 * 后端接口 * @author * @email * @date 2021-03-18 15:04:00 */ @RestController @RequestMapping("/banjixinxi") public class BanjixinxiController { @Autowired private BanjixinxiService banjixinxiService; /** * 后端列表 */ @RequestMapping("/page") public R page(@RequestParam Map<String, Object> params,BanjixinxiEntity banjixinxi, HttpServletRequest request){ String tableName = request.getSession().getAttribute("tableName").toString(); if(tableName.equals("jiaoshi")) { banjixinxi.setGonghao((String)request.getSession().getAttribute("username")); } EntityWrapper<BanjixinxiEntity> ew = new EntityWrapper<BanjixinxiEntity>(); PageUtils page = banjixinxiService.queryPage(params, MPUtil.sort(MPUtil.between(MPUtil.likeOrEq(ew, banjixinxi), params), params)); return R.ok().put("data", page); } /** * 前端列表 */ @RequestMapping("/list") public R list(@RequestParam Map<String, Object> params,BanjixinxiEntity banjixinxi, HttpServletRequest request){ EntityWrapper<BanjixinxiEntity> ew = new EntityWrapper<BanjixinxiEntity>(); PageUtils page = banjixinxiService.queryPage(params, MPUtil.sort(MPUtil.between(MPUtil.likeOrEq(ew, banjixinxi), params), params)); return R.ok().put("data", page); } /** * 列表 */ @RequestMapping("/lists") public R list( BanjixinxiEntity banjixinxi){ EntityWrapper<BanjixinxiEntity> ew = new EntityWrapper<BanjixinxiEntity>(); ew.allEq(MPUtil.allEQMapPre( banjixinxi, "banjixinxi")); return R.ok().put("data", banjixinxiService.selectListView(ew)); } /** * 查询 */ @RequestMapping("/query") public R query(BanjixinxiEntity banjixinxi){ EntityWrapper< BanjixinxiEntity> ew = new EntityWrapper< BanjixinxiEntity>(); ew.allEq(MPUtil.allEQMapPre( banjixinxi, "banjixinxi")); BanjixinxiView banjixinxiView = banjixinxiService.selectView(ew); return R.ok("查询班级信息成功").put("data", banjixinxiView); } /** * 后端详情 */ @RequestMapping("/info/{id}") public R info(@PathVariable("id") Long id){ BanjixinxiEntity banjixinxi = banjixinxiService.selectById(id); return R.ok().put("data", banjixinxi); } /** * 前端详情 */ @RequestMapping("/detail/{id}") public R detail(@PathVariable("id") Long id){ BanjixinxiEntity banjixinxi = banjixinxiService.selectById(id); return R.ok().put("data", banjixinxi); } /** * 后端保存 */ @RequestMapping("/save") public R save(@RequestBody BanjixinxiEntity banjixinxi, HttpServletRequest request){ banjixinxi.setId(new Date().getTime()+new Double(Math.floor(Math.random()*1000)).longValue()); //ValidatorUtils.validateEntity(banjixinxi); banjixinxiService.insert(banjixinxi); return R.ok(); } /** * 前端保存 */ @RequestMapping("/add") public R add(@RequestBody BanjixinxiEntity banjixinxi, HttpServletRequest request){ banjixinxi.setId(new Date().getTime()+new Double(Math.floor(Math.random()*1000)).longValue()); //ValidatorUtils.validateEntity(banjixinxi); banjixinxiService.insert(banjixinxi); return R.ok(); } /** * 修改 */ @RequestMapping("/update") public R update(@RequestBody BanjixinxiEntity banjixinxi, HttpServletRequest request){ //ValidatorUtils.validateEntity(banjixinxi); banjixinxiService.updateById(banjixinxi);//全部更新 return R.ok(); } /** * 删除 */ @RequestMapping("/delete") public R delete(@RequestBody Long[] ids){ banjixinxiService.deleteBatchIds(Arrays.asList(ids)); return R.ok(); } /** * 提醒接口 */ @RequestMapping("/remind/{columnName}/{type}") public R remindCount(@PathVariable("columnName") String columnName, HttpServletRequest request, @PathVariable("type") String type,@RequestParam Map<String, Object> map) { map.put("column", columnName); map.put("type", type); if(type.equals("2")) { SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd"); Calendar c = Calendar.getInstance(); Date remindStartDate = null; Date remindEndDate = null; if(map.get("remindstart")!=null) { Integer remindStart = Integer.parseInt(map.get("remindstart").toString()); c.setTime(new Date()); c.add(Calendar.DAY_OF_MONTH,remindStart); remindStartDate = c.getTime(); map.put("remindstart", sdf.format(remindStartDate)); } if(map.get("remindend")!=null) { Integer remindEnd = Integer.parseInt(map.get("remindend").toString()); c.setTime(new Date()); c.add(Calendar.DAY_OF_MONTH,remindEnd); remindEndDate = c.getTime(); map.put("remindend", sdf.format(remindEndDate)); } } Wrapper<BanjixinxiEntity> wrapper = new EntityWrapper<BanjixinxiEntity>(); if(map.get("remindstart")!=null) { wrapper.ge(columnName, map.get("remindstart")); } if(map.get("remindend")!=null) { wrapper.le(columnName, map.get("remindend")); } String tableName = request.getSession().getAttribute("tableName").toString(); if(tableName.equals("jiaoshi")) { wrapper.eq("gonghao", (String)request.getSession().getAttribute("username")); } int count = banjixinxiService.selectCount(wrapper); return R.ok().put("count", count); } }