• 基于springboot的信息化药品管理系统


    项目描述

    临近学期结束,还是毕业设计,你还在做java程序网络编程,期末作业,老师的作业要求觉得大了吗?不知道毕业设计该怎么办?网页功能的数量是否太多?没有合适的类型或系统?等等。这里根据疫情当下,你想解决的问题,今天给在家介绍一篇基于springboot的药品管理系统。

    功能需求

    本系统主要解决医院药品信息化管理,按照要求对系统功能模块划分,从多个维度分析功能需求,合理设计每个功能模块。充分的考虑功能使用者的心里需求,保证系开发出来的功能不仅解决业务需求问题,还需要让使用者操作简便易上手。下面对每个功能的细节点进行分析设计整合完成整个系统的设计。

    具备以下功能:

    登录功能目标:
    为了考虑到用户信息安全以及药品业务数据安全性,增加安全登录信息校验,用户输入账号密码,后台根据用户信息校验系统权限并展示相应的可操作菜单。
    用户信息管理功能目标:
    针对针对医院职工人员信息的管控,提高人事、用户操作管控。
    药品管理功能目标:
    对医院所有类型的药物信息管控,包括药品的分类、药品的出入库等,药品信息管理根据药品名称、剂型条件进行筛选,针对每个药品的药品基本信息、药品库存数量、药品操作项进行展示,该模块支持药品信息的新增以及删除操作。
    值班排班管理:管理员可以对员工班次进行排班,根据医院人员调配值班。
    数据统计目标:系统对各个药品使用情况以及每种类型的药物月、年度销量的统计分析。

    系统功能模块框架图

    在这里插入图片描述
    在这里插入图片描述
    药品入库流程
    在这里插入图片描述

    部分效果图

    登录注册界面:
    在这里插入图片描述

    用户管理
    在这里插入图片描述

    药品信息管理界面
    在这里插入图片描述

    药品出库管理
    在这里插入图片描述

    药品退还管理
    在这里插入图片描述

    药品销售统计
    在这里插入图片描述
    在这里插入图片描述

    药品购买管理
    在这里插入图片描述

    数据库设计

    系统中用到了16张表,针对每个表都进行了设计,下面对部分核心表进行汇总罗列展示。
    (1)用户信息表
    在这里插入图片描述

    (2)药品信息表
    在这里插入图片描述

    (3)销售统计表
    在这里插入图片描述

    (4)药品购买信息表
    在这里插入图片描述

    (5)排班信息表
    在这里插入图片描述

    部分代码
    
    /**
     * 登录
     */
    @IgnoreAuth
    @PostMapping(value = "/login")
    public R login(String username, String password, String captcha, HttpServletRequest request) {
       UserEntity user = userService.selectOne(new EntityWrapper<UserEntity>().eq("username", username));
       if(user==null || !user.getPassword().equals(password)) {
          return R.error("账号或密码不正确");
       }
       String token = tokenService.generateToken(user.getId(),username, "users", user.getRole());
       return R.ok().put("token", token);
    }
    
     /**
         * 提醒接口
         */
    	@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<YaopinrukuEntity> wrapper = new EntityWrapper<YaopinrukuEntity>();
    		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("zhibanyuangong")) {
    			wrapper.eq("yuangonggonghao", (String)request.getSession().getAttribute("username"));
    		}
    
    		int count = yaopinrukuService.selectCount(wrapper);
    		return R.ok().put("count", count);
    	}
    
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 29
    • 30
    • 31
    • 32
    • 33
    • 34
    • 35
    • 36
    • 37
    • 38
    • 39
    • 40
    • 41
    • 42
    • 43
    • 44
    • 45
    • 46
    • 47
    • 48
    • 49
    • 50
    • 51
    • 52
    • 53
    • 54
    • 55
    • 56
    • 57
    • 58
    • 59
    • 60
    • 61
    • 62
    安装部署需求

    idea运行一键启动
    在这里插入图片描述

    总体设计

    本系统是一个基于springboot的微服务架构,前端使用熟知的VUE脚本实现系统页面,在后期的发布通过Tomcat服务器部署,也可以通过nginx进行服务代理或者集成负载。
    系统设计了基于角色的权限管控,管理员可以创建不同的角色,给每个用户分配不用的角色,每个角色的用户分配不同的工作任务和权限按钮。这个系统的设计采用MVC模式,按照视图、控制、数据处理、持久层划分实现。简化了大量的配置和程序代码的耦合性。数据库采用免费开源的MySQL数据库,即节约了成本能够支撑起真个系统业务数据和信息化数据的存储。

    本项目用到的技术和框架

    1.开发语言:Java
    2.开发模式:B/S
    3.数据库:MySQL
    4.框架:springboot+mybatis+vue

    本项目中的关键点

    此系统的开发采用java语言开发,基于B/S结构,这些开发环境使系统更加完善。使用到的工具和技术都是开源免费的。

    环境工具

    开发工具 Eclipse/IDEA
    语言 JDK1.8 、VUE、springboot,mybatis
    硬件:笔记本电脑;
    软件:Tomcat9.0 Web服务器、Navicat数据库客户端、MySQL;
    操作系统:Windows 10;
    其它软件:截图工具、常用浏览器;
    微信扫下方二维码关注公众号,经常分享一些技术上的理解文章。
    在这里插入图片描述

  • 相关阅读:
    瑞吉外卖Day05
    如何利用 Python 建立多元回归方程?
    目标检测指标AP50/准确率/召回率说明
    架构,平台,框架的区别和联系
    推荐系统最通俗介绍
    ForkJoinPool在生产环境中使用遇到的一个问题
    C语言-结构体(7)
    【跨境电商平台】Magento VS Shopify,选谁进行独立站建站?
    以MacOS 13为例,VMware 16安装MacOS
    AI时代中小企业算力需求爆发,惠普发布新品战99 Monster满血高算工作站
  • 原文地址:https://blog.csdn.net/mxg74110/article/details/127747828