• SSM+Vue+Element-UI实现医院设备管理系统


    文末获取源码

    开发语言:Java
    框架:ssm
    JDK版本:JDK1.8
    服务器:tomcat7
    数据库:mysql 5.7/8.0
    数据库工具:Navicat11
    开发软件:eclipse/myeclipse/idea
    Maven包:Maven3.3.9
    浏览器:谷歌浏览器

    前言介绍  

    系统管理也都将通过计算机进行整体智能化操作,对于医院设备管理系统所牵扯的管理及数据保存都是非常多的,例如管理员:首页、个人中心、科室员管理、维修员管理、设备领用管理、设备信息管理、设备入库管理、设备出库管理、设备报废管理、设备借用管理、设备归还管理、论坛管理、管理员管理、系统管理,维修员;首页、个人中心、设备报修管理、设备维修管理、保养预约管理、设备巡查管理、维修评价管理,科室员;首页、个人中心、设备领用管理、设备报修管理、设备维修管理、保养预约管理,前台首页:首页、论坛、新闻资讯、个人中心、后台管理、客服。这给管理者的工作带来了巨大的挑战,面对大量的信息,传统的管理系统,都是通过笔记的方式进行详细信息的统计,后来出现电脑,通过电脑输入软件将纸质的信息统计到电脑上,这种方式比较传统,而且想要统计数据信息比较麻烦,还受时间和空间的影响,所以为此开发了医院设备管理系统为用户提供了方便管理平台,方便管理员查看及维护,并且可以通过需求进行内容的编辑及维护等;对于用户而言,可以随时进行查询所需信息,管理员可以足不出户就可以获取到系统的数据信息等,而且还能节省用户很多时间,所以开发医院设备管理系统给管理者带来了很大的方便,同时也方便管理员对用户信息进行处理。

    项目设计目标与原则 

    1、关于医院设备管理系统的基本要求

    1)管理员功能要求:可以管理首页、个人中心、科室员管理、维修员管理、设备领用管理、设备信息管理、设备入库管理、设备出库管理、设备报废管理、设备借用管理、设备归还管理、论坛管理、管理员管理、系统管理等功能模块。

    2)维修员功能要求:首页、个人中心、设备报修管理、设备维修管理、保养预约管理、设备巡查管理、维修评价管理。

    3)科室员功能要求:首页、个人中心、设备领用管理、设备报修管理、设备维修管理、保养预约管理。

    4)性能:在不同操作系统上均能无差错实现在不同类型的用户登入相应界面后能不出差错、方便地进行预期操作。

    5)安全与保密要求:用户都必须通过账号、密码才能进入系统。

    6)环境要求:支持Windows系列、Vista系统等多种操作系统使用。

    2、开发目标

    医院设备管理系统的主要开发目标如下:

    1)实现管理系统信息关系的系统化、规范化和自动化;

    2)减少维护人员的工作量以及实现用户对信息的控制和管理;

    3)方便查询信息及管理信息等;

    4)通过网络操作,提高改善处理问题和操作人员工作的效率;

    5)考虑到用户多样性特点,要求界面和操作简便易懂。

    系统体系结构

    医院设备管理系统的结构图 

    登录系统结构图,如图

     

    系统结构图,如图

     

    前台首页功能模块

    医院设备管理系统,在系统首页可以查看首页、论坛、新闻资讯、个人中心、后台管理、客服等内容,如图

     

    科室员登录

    通过输入账号、密码等信息进行登录,如图

     

    个人中心

    在个人中心进行查看科室员工号、科室员姓名、头像、性别、科室、手机号码、邮箱并进行更新信息、退出登录等操作如图

    我的发布

    在我的发布页面可以查看标题、发布时间等内容进行提交,如图

     

    管理员功能模块

    管理员登录,通过填写用户名、密码、角色等信息,输入完成后选择登录即可进入医院设备管理系统,如图 

    管理员登录进入医院设备管理系统可以查看首页、个人中心、科室员管理、维修员管理、设备领用管理、设备信息管理、设备入库管理、设备出库管理、设备报废管理、设备借用管理、设备归还管理、论坛管理、管理员管理、系统管理等内容,如图

     

    维修员管理

    在维修员管理页面可以查看维修员工号、维修员姓名、头像、性别、手机号码、邮箱等信息,并可根据需要对维修员管理进行详情,修改,删除或查看详细内容等操作,如图

    设备信息管理

    在设备信息管理页面可以查看设备名称、规格型号、品牌、生产日期、设备详情等信息,并可根据需要对设备信息管理进行详情,修改、删除或查看详细内容等操作,如图 

    设备入库管理

    在设备入库管理页面可以查看设备名称、入库数量、入库日期、备注等信息,并可根据需要对设备入库管理进行详情,修改、删除或查看详细内容操作,如图 

    设备出库管理

    在设备出库管理页面可以查看设备名称、出库数量、出库日期、备注等内容,并可根据需要对设备出库管理进行查看详情,修改,删除或查看详细内容等操作,如图 

    论坛管理

    在论坛管理页面可以查看帖子标题、用户名、状态等信息,并可根据需要对论坛管理进行详情,修改、删除或查看详细内容等操作,如图 

    轮播图

    该页面为轮播图管理界面。管理员可以在此页面进行首页轮播图的管理,通过新建操作可在轮播图中加入新的图片,还可以对以上传的图片进行修改操作,以及图片的删除操作,如图 

    科室员功能模块

    科室员登录,科室员通过填写用户名、密码、角色限等信息,输入完成后选择登录即可进入医院设备管理系统,如图

    科室员登录进入医院设备管理系统可以查看首页、个人中心、设备领用管理、设备报修管理、设备维修管理、保养预约管理等内容,如图

    保养预约管理

    在保养预约管理页面可以查看预约单号、设备名称、保养内容、预约日期、科室员工号、科室员姓名、科室、审核回复、审核状态、审核等详细进行详情、删除,如图 

    维修员功能模块

    维修员登录,维修员通过填写用户名、密码、角色等信息,输入完成后选择登录即可进入医院设备管理系统,如图

    维修员登录进入医院设备管理系统可以查看首页、个人中心、设备报修管理、设备维修管理、保养预约管理、设备巡查管理、维修评价管理等内容,如图 

    保养预约管理

    在保养预约管理页面通过查看预约单号、设备名称、保养内容、预约日期、科室员工号、科室员姓名、科室、审核回复、审核状态、审核等信息,并可根据需要对保养预约管理进行详情、修改、删除,如图 

    部分核心代码 

    保养预约

    1. /**
    2. * 保养预约
    3. * 后端接口
    4. * @author
    5. * @email
    6. * @date 2021-03-09 10:45:47
    7. */
    8. @RestController
    9. @RequestMapping("/baoyangyuyue")
    10. public class BaoyangyuyueController {
    11. @Autowired
    12. private BaoyangyuyueService baoyangyuyueService;
    13. /**
    14. * 后端列表
    15. */
    16. @RequestMapping("/page")
    17. public R page(@RequestParam Map<String, Object> params,BaoyangyuyueEntity baoyangyuyue, HttpServletRequest request){
    18. String tableName = request.getSession().getAttribute("tableName").toString();
    19. if(tableName.equals("keshiyuan")) {
    20. baoyangyuyue.setKeshiyuangonghao((String)request.getSession().getAttribute("username"));
    21. }
    22. EntityWrapper<BaoyangyuyueEntity> ew = new EntityWrapper<BaoyangyuyueEntity>();
    23. PageUtils page = baoyangyuyueService.queryPage(params, MPUtil.sort(MPUtil.between(MPUtil.likeOrEq(ew, baoyangyuyue), params), params));
    24. return R.ok().put("data", page);
    25. }
    26. /**
    27. * 前端列表
    28. */
    29. @RequestMapping("/list")
    30. public R list(@RequestParam Map<String, Object> params,BaoyangyuyueEntity baoyangyuyue, HttpServletRequest request){
    31. EntityWrapper<BaoyangyuyueEntity> ew = new EntityWrapper<BaoyangyuyueEntity>();
    32. PageUtils page = baoyangyuyueService.queryPage(params, MPUtil.sort(MPUtil.between(MPUtil.likeOrEq(ew, baoyangyuyue), params), params));
    33. return R.ok().put("data", page);
    34. }
    35. /**
    36. * 列表
    37. */
    38. @RequestMapping("/lists")
    39. public R list( BaoyangyuyueEntity baoyangyuyue){
    40. EntityWrapper<BaoyangyuyueEntity> ew = new EntityWrapper<BaoyangyuyueEntity>();
    41. ew.allEq(MPUtil.allEQMapPre( baoyangyuyue, "baoyangyuyue"));
    42. return R.ok().put("data", baoyangyuyueService.selectListView(ew));
    43. }
    44. /**
    45. * 查询
    46. */
    47. @RequestMapping("/query")
    48. public R query(BaoyangyuyueEntity baoyangyuyue){
    49. EntityWrapper< BaoyangyuyueEntity> ew = new EntityWrapper< BaoyangyuyueEntity>();
    50. ew.allEq(MPUtil.allEQMapPre( baoyangyuyue, "baoyangyuyue"));
    51. BaoyangyuyueView baoyangyuyueView = baoyangyuyueService.selectView(ew);
    52. return R.ok("查询保养预约成功").put("data", baoyangyuyueView);
    53. }
    54. /**
    55. * 后端详情
    56. */
    57. @RequestMapping("/info/{id}")
    58. public R info(@PathVariable("id") Long id){
    59. BaoyangyuyueEntity baoyangyuyue = baoyangyuyueService.selectById(id);
    60. return R.ok().put("data", baoyangyuyue);
    61. }
    62. /**
    63. * 前端详情
    64. */
    65. @RequestMapping("/detail/{id}")
    66. public R detail(@PathVariable("id") Long id){
    67. BaoyangyuyueEntity baoyangyuyue = baoyangyuyueService.selectById(id);
    68. return R.ok().put("data", baoyangyuyue);
    69. }
    70. /**
    71. * 后端保存
    72. */
    73. @RequestMapping("/save")
    74. public R save(@RequestBody BaoyangyuyueEntity baoyangyuyue, HttpServletRequest request){
    75. baoyangyuyue.setId(new Date().getTime()+new Double(Math.floor(Math.random()*1000)).longValue());
    76. //ValidatorUtils.validateEntity(baoyangyuyue);
    77. baoyangyuyueService.insert(baoyangyuyue);
    78. return R.ok();
    79. }
    80. /**
    81. * 前端保存
    82. */
    83. @RequestMapping("/add")
    84. public R add(@RequestBody BaoyangyuyueEntity baoyangyuyue, HttpServletRequest request){
    85. baoyangyuyue.setId(new Date().getTime()+new Double(Math.floor(Math.random()*1000)).longValue());
    86. //ValidatorUtils.validateEntity(baoyangyuyue);
    87. baoyangyuyueService.insert(baoyangyuyue);
    88. return R.ok();
    89. }
    90. /**
    91. * 修改
    92. */
    93. @RequestMapping("/update")
    94. public R update(@RequestBody BaoyangyuyueEntity baoyangyuyue, HttpServletRequest request){
    95. //ValidatorUtils.validateEntity(baoyangyuyue);
    96. baoyangyuyueService.updateById(baoyangyuyue);//全部更新
    97. return R.ok();
    98. }
    99. /**
    100. * 删除
    101. */
    102. @RequestMapping("/delete")
    103. public R delete(@RequestBody Long[] ids){
    104. baoyangyuyueService.deleteBatchIds(Arrays.asList(ids));
    105. return R.ok();
    106. }
    107. /**
    108. * 提醒接口
    109. */
    110. @RequestMapping("/remind/{columnName}/{type}")
    111. public R remindCount(@PathVariable("columnName") String columnName, HttpServletRequest request,
    112. @PathVariable("type") String type,@RequestParam Map<String, Object> map) {
    113. map.put("column", columnName);
    114. map.put("type", type);
    115. if(type.equals("2")) {
    116. SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
    117. Calendar c = Calendar.getInstance();
    118. Date remindStartDate = null;
    119. Date remindEndDate = null;
    120. if(map.get("remindstart")!=null) {
    121. Integer remindStart = Integer.parseInt(map.get("remindstart").toString());
    122. c.setTime(new Date());
    123. c.add(Calendar.DAY_OF_MONTH,remindStart);
    124. remindStartDate = c.getTime();
    125. map.put("remindstart", sdf.format(remindStartDate));
    126. }
    127. if(map.get("remindend")!=null) {
    128. Integer remindEnd = Integer.parseInt(map.get("remindend").toString());
    129. c.setTime(new Date());
    130. c.add(Calendar.DAY_OF_MONTH,remindEnd);
    131. remindEndDate = c.getTime();
    132. map.put("remindend", sdf.format(remindEndDate));
    133. }
    134. }
    135. Wrapper<BaoyangyuyueEntity> wrapper = new EntityWrapper<BaoyangyuyueEntity>();
    136. if(map.get("remindstart")!=null) {
    137. wrapper.ge(columnName, map.get("remindstart"));
    138. }
    139. if(map.get("remindend")!=null) {
    140. wrapper.le(columnName, map.get("remindend"));
    141. }
    142. String tableName = request.getSession().getAttribute("tableName").toString();
    143. if(tableName.equals("keshiyuan")) {
    144. wrapper.eq("keshiyuangonghao", (String)request.getSession().getAttribute("username"));
    145. }
    146. int count = baoyangyuyueService.selectCount(wrapper);
    147. return R.ok().put("count", count);
    148. }
    149. }

    登录

    1. */
    2. @RequestMapping("users")
    3. @RestController
    4. public class UserController{
    5. @Autowired
    6. private UserService userService;
    7. @Autowired
    8. private TokenService tokenService;
    9. /**
    10. * 登录
    11. */
    12. @IgnoreAuth
    13. @PostMapping(value = "/login")
    14. public R login(String username, String password, String captcha, HttpServletRequest request) {
    15. UserEntity user = userService.selectOne(new EntityWrapper().eq("username", username));
    16. if(user==null || !user.getPassword().equals(password)) {
    17. return R.error("账号或密码不正确");
    18. }
    19. String token = tokenService.generateToken(user.getId(),username, "users", user.getRole());
    20. return R.ok().put("token", token);
    21. }
    22. /**
    23. * 注册
    24. */
    25. @IgnoreAuth
    26. @PostMapping(value = "/register")
    27. public R register(@RequestBody UserEntity user){
    28. // ValidatorUtils.validateEntity(user);
    29. if(userService.selectOne(new EntityWrapper().eq("username", user.getUsername())) !=null) {
    30. return R.error("用户已存在");
    31. }
    32. userService.insert(user);
    33. return R.ok();
    34. }
    35. /**
    36. * 退出
    37. */
    38. @GetMapping(value = "logout")
    39. public R logout(HttpServletRequest request) {
    40. request.getSession().invalidate();
    41. return R.ok("退出成功");
    42. }
    43. /**
    44. * 密码重置
    45. */
    46. @IgnoreAuth
    47. @RequestMapping(value = "/resetPass")
    48. public R resetPass(String username, HttpServletRequest request){
    49. UserEntity user = userService.selectOne(new EntityWrapper().eq("username", username));
    50. if(user==null) {
    51. return R.error("账号不存在");
    52. }
    53. user.setPassword("123456");
    54. userService.update(user,null);
    55. return R.ok("密码已重置为:123456");
    56. }
    57. /**
    58. * 列表
    59. */
    60. @RequestMapping("/page")
    61. public R page(@RequestParam Map params,UserEntity user){
    62. EntityWrapper ew = new EntityWrapper();
    63. PageUtils page = userService.queryPage(params, MPUtil.sort(MPUtil.between(MPUtil.allLike(ew, user), params), params));
    64. return R.ok().put("data", page);
    65. }
    66. /**
    67. * 列表
    68. */
    69. @RequestMapping("/list")
    70. public R list( UserEntity user){
    71. EntityWrapper ew = new EntityWrapper();
    72. ew.allEq(MPUtil.allEQMapPre( user, "user"));
    73. return R.ok().put("data", userService.selectListView(ew));
    74. }
    75. /**
    76. * 信息
    77. */
    78. @RequestMapping("/info/{id}")
    79. public R info(@PathVariable("id") String id){
    80. UserEntity user = userService.selectById(id);
    81. return R.ok().put("data", user);
    82. }
    83. /**
    84. * 获取用户的session用户信息
    85. */
    86. @RequestMapping("/session")
    87. public R getCurrUser(HttpServletRequest request){
    88. Long id = (Long)request.getSession().getAttribute("userId");
    89. UserEntity user = userService.selectById(id);
    90. return R.ok().put("data", user);
    91. }
    92. /**
    93. * 保存
    94. */
    95. @PostMapping("/save")
    96. public R save(@RequestBody UserEntity user){
    97. // ValidatorUtils.validateEntity(user);
    98. if(userService.selectOne(new EntityWrapper().eq("username", user.getUsername())) !=null) {
    99. return R.error("用户已存在");
    100. }
    101. userService.insert(user);
    102. return R.ok();
    103. }
    104. /**
    105. * 修改
    106. */
    107. @RequestMapping("/update")
    108. public R update(@RequestBody UserEntity user){
    109. // ValidatorUtils.validateEntity(user);
    110. userService.updateById(user);//全部更新
    111. return R.ok();
    112. }
    113. /**
    114. * 删除
    115. */
    116. @RequestMapping("/delete")
    117. public R delete(@RequestBody Long[] ids){
    118. userService.deleteBatchIds(Arrays.asList(ids));
    119. return R.ok();
    120. }
    121. }

  • 相关阅读:
    Scss
    安科瑞变电站综合自动化系统在变电站的应用-Susie 周
    React报错之Property 'value' does not exist on type EventTarget
    ERROR: [Synth 8-439] module ‘xxx‘ not found not found 错误解决办法
    【阿旭机器学习实战】【7】岭回归基本原理及其λ的选取方法
    MongoDB——window11安装mongodb5.0.21版本服务端(图解版)
    STM32-无人机-电机-定时器基础知识与PWM输出原理
    昇腾Ascend 随记 —— 昇腾 AI 的基本架构
    Breakpad Windows 集成概述
    Accelerate 0.24.0文档 三:超大模型推理(内存估算、Sharded checkpoints、bitsandbytes量化、分布式推理)
  • 原文地址:https://blog.csdn.net/m0_49113107/article/details/126363012