项目介绍:
该系统创作于2022年5月,包含详细数据库设计。基于ssm整合,数据层为MyBatis,mysql数据库,具有完整的业务逻辑,适合选题:社区、疫情、居民登记、信息登记等。
项目功能:
系统共分为用户端,管理员端。
用户端
登录注册
社区用户信息管理:填写
公告管理:查看
外来人员报备管理:填写
志愿者申请管理:填写
在线交流管理:填写对社区意见,填写完页面会显示。
物资需求管理:填写
管理员端
登录注册
用户管理:新增用户,修改,查看,删除
管理员管理:新增管理员,修改,查看,删除
社区用户信息管理:新增社区用户信息,修改,查看,删除
外来人员报备管理:新增外来人员报备信息,修改,查看,删除
志愿者申请管理:新增志愿者申请信息,修改,查看,删除
物资需求管理:新增物资需求信息,修改,查看,删除
公告管理:新增公告,修改,查看,删除
在线交流管理:新增在线交流信息,修改,查看,删除
添加功能:
1、用户新增物资需求,由管理员进行审批
2、管理员添加志愿服务模块,维护志愿服务内容,用户申请志愿者,需要对某一个志愿服务进行申请,申请后,等待管理员审核
3、统计近7日外来人员数量曲线
4、物资需求添加分类字段,统计每个分类物资需求的饼状图
5、管理员入库物资,用户的物资需求需要选择已经入库的物资,填写完成后,管理员审核通过后入库的数量会相应减少
数据模型设计:
数据库表结构文档:
系统包含技术:
后端:SSM
前端:layui,js,css等
开发工具:idea
数据库:mysql 5.7
JDK版本:jdk1.8
服务器:tomcat8
部分截图说明:
下面是登录页面
管理员首页
管理员对用户进行管理
管理员社区用户管理
管理员志愿者申请维护
在线交流
用户申请物资
修改个人信息
部分代码:
物资相关操作
/** * 分页查询 * pageIndex 当前页码 * pageSize 显示条数 */ @RequestMapping(value = "/findMeterial") public String findMeterial(Integer pageIndex, Integer pageSize,String mid, Model model,HttpServletRequest request) { HttpSession session = request.getSession(); if(session.getAttribute("ad") == null){ session.setAttribute("msg", "对不起,请登录!"); return "login"; } Map mp = new HashMap(); mp.put("mid",mid); PageInfo<Meterial> pageList = meterialService.findPageInfo(pageIndex,pageSize,mp); model.addAttribute("pageList",pageList); List<MeterialInfo> meterialInfos = meterialInfoService.getAll(); model.addAttribute("meterialInfos",meterialInfos); return "MeterialList"; } /** * 添加 */ @RequestMapping(value = "/addMeterial" ,method = RequestMethod.POST) @ResponseBody public String addMeterial( @RequestBody Meterial meterial,HttpServletRequest request) { try{ HttpSession session = request.getSession(); if(session.getAttribute("ad") == null){ session.setAttribute("msg", "对不起,请登录!"); return "login"; } MeterialInfo meterialInfoById = meterialInfoService.findMeterialInfoById(meterial.getMid()); int mnum = Integer.parseInt(meterial.getNum()); int minum = Integer.parseInt(meterialInfoById.getNum()); if(mnum>minum){ return "202"; } User user = (User)session.getAttribute("ad"); meterial.setUid(user.getId()); meterial.setStatus("01"); SimpleDateFormat sf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); meterial.setCreateTime(sf.format(new Date())); meterialService.addMeterial(meterial); //更新库存 int kucun = minum - mnum; meterialInfoById.setNum(String.valueOf(kucun)); meterialInfoService.updateMeterialInfo(meterialInfoById); return "200"; }catch (Exception e){ e.printStackTrace(); return "201"; } } /** * 删除 */ @RequestMapping( "/deleteMeterial") @ResponseBody public String deleteMeterial(String id) { int d = meterialService.deleteMeterial(id); return "MeterialList"; } /** * 修改 */ @RequestMapping( "/updateMeterial") @ResponseBody public String updateMeterial(@RequestBody Meterial meterial) { try{ meterialService.updateMeterial(meterial); return "200"; }catch (Exception e){ e.printStackTrace(); return "201"; } } /** * 审批 */ @RequestMapping( "/shenpi") @ResponseBody public String shenpi(String id,String status,HttpServletRequest request) { HttpSession session = request.getSession(); if(session.getAttribute("ad") == null){ session.setAttribute("msg", "对不起,请登录!"); return "login"; } Meterial meterial = new Meterial(); meterial.setId(id); meterial.setStatus(status); int d = meterialService.updateMeterial(meterial); if(status.equals("03")){ Meterial meterial1 = meterialService.findMeterialById(id); MeterialInfo meterialInfo = meterialInfoService.findMeterialInfoById(meterial1.getMid()); int meterial_num = Integer.parseInt(meterial1.getNum()); meterial_num = meterial_num+Integer.parseInt(meterialInfo.getNum()); meterialInfo.setNum(String.valueOf(meterial_num)); meterialInfoService.updateMeterialInfo(meterialInfo); } return "200"; }
以上就是部分功能展示,从整体上来看,本系统功能是十分完整的,界面设计简洁大方,交互友好,数据库设计也很合理,规模适中,代码工整,清晰,适合学习使用。
好了,今天就到这儿吧,小伙伴们点赞、收藏、评论,一键三连走起呀,下期见~~