• 基于SSM的药店管理系统


    项目描述

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

    功能需求

    经过调查分析,管理员一个药房、药品管理系统的具体要求如下:
    1、药品管理系统方便实时监控药物信息,尤其是通过库存、药物信息管理来控制药物。
    2、管理者需要看清楚药品销售情况和库存情况,根据信息来控制药物的种类和数量。
    3、工作人员对药品信息的增删改查。
    4、报表信息管理,药房管理者需要对药品的信息进行归纳总结,继而根据情况进行调整。可以调整药品的价格为药店带来更大的利润。
    5、管理员可以通过该系统找到名单上的顾客看买药记录。

    具备以下功能:

    本文课题的研究的是利用互联网技术构建药店管理系统,综合评价了我国目前药店发展现状和以及今后的发展趋势,进而分析药店管理系统实现理念和价值,针对每个页面的样式以及该页面实现的功能目的都要说明,设计药店管理系统功能点。
    该系统后台管理员使用的功能包括以下几个模块:
    系统管理:角色管理、用户管理、菜单管理、角色菜单配置、密码修改。
    采购管理:采购合同管理、采购合同审核、采购清单管理、供应商管理。
    仓库管理:药品信息管理。
    销售管理:销售清单管理、销售清单审核、会员管理。
    财务管理:财务报表管理、财务报表制作。

    系统总体设计

    管理员可以进行系统管理、采购管理、仓库管理、销售管理、财务管理,如图2-4-1。

    在这里插入图片描述

    销售员进行销售管理,可以销售清单管理,销售清单审核,会员管理,如图2-4-2。

    在这里插入图片描述

    采购员进行采购管理,可以进行合同管理,合同审核,清单管理,清单审核,供应商管理。仓库管理可以进行药品信息管理,如图2-4-3。

    在这里插入图片描述

    财务管理员进行财务管理,可以导出财务报表,财务报表制作,如图2-4-4。

    在这里插入图片描述

    部分效果图在这里插入图片描述

    在这里插入图片描述

    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述

    数据库设计

    数据库中本系统的表包含:基本菜单(base_menu、基本角色(base_role)、基本角色菜单(base_rolemenu)、合同表(contract)、金融表(financial)、药品表(medicine)、成员表(members)、成员信息表(member_info)、采购表(purchase)、采购记录表(purchase_info)、销售表(sale)、销售记录表(sale_info)、供货商表表(supplier)、用户表表(base_user)。每个表的数据结构如下:。
    (1)基本菜单表(base_menu),主要功能是菜单信息存储进入后台数据库,如表4-1。
    表4-1 基本菜单表
    在这里插入图片描述

    (2)基本菜单表(base_role),主要功能是存放用户角色信息如表4-2。
    表4-2 角色表
    在这里插入图片描述

    (3)基本角色菜单(base_rolemenu),主要功能是存放角色和菜单的关系如表4-3。
    表4-3 角色菜单关系表
    在这里插入图片描述

    (4)合同表(contract),主要功能是存放合同信息如表4-4。
    表4-4 合同表
    在这里插入图片描述

    (5)金融表(financial),主要功能是存放金融信息如表4-5。
    表4-5 金融表
    在这里插入图片描述

    (6)药品表(medicine),主要功能是存放药品信息如表4-6。
    表4-6 药品表
    在这里插入图片描述

    (7)成员表(members),主要功能是存放成员信息如表4-7。
    表4-7 成员表
    在这里插入图片描述

    (8)用户表(user),主要功能是存放供用户信息如表4-8。
    表4-8用户表
    在这里插入图片描述

    部分代码
    
    	@RequestMapping(value = {"/list"})
    	public String getList(FinancialBean bean,Model model) throws Exception{
    
    		List<FinancialBean> list = mapperService.selectList(bean);
    		//int stupage = medicineDao.getPage(stu);
    		model.addAttribute("list", list);
    		model.addAttribute("stupage", 1);
    		return "financiallist";
    	}
    	//编辑页面
    	@RequestMapping(value = {"/editor"})
    	public String editor(String id,String startDate,String endDate,Model model) throws Exception{
    		FinancialBean bean = null;
    		if(StringUtils.isEmpty(id)) {
    			if(!StringUtils.isEmpty(StringUtils.isEmpty(startDate))&&!StringUtils.isEmpty(StringUtils.isEmpty(endDate))) {
    				 bean = mapperService.selectByDate(startDate,endDate);
    			}
    		}else {
    			 bean = mapperService.selectById(id);
    		}
    		model.addAttribute("bean",bean);
    		return "financialeditor";
    	}
    	
    	//编辑页面
    	@RequestMapping(value = {"/delete"})
    	@ResponseBody
    	public BaseReturn delete(String id) throws Exception{
    		BaseReturn baseReturn = new BaseReturn(BaseCode.SUCCESS);
    		try {
    			if(!StringUtils.isEmpty(id)) {
    				mapperService.deleteById(id);
    				baseReturn.setMessage("删除成功!");
    			}
    		}catch (Exception e) {
    			baseReturn.setState(BaseCode.FAILURE);
    			baseReturn.setMessage(e.getMessage());
    			e.printStackTrace();
    		}		
    		return baseReturn;
    
    	}
    	
    	//得到在编辑页面编辑好一个学生的各科成绩的list,循环存入数据库中后,在返回存入结果
    	@RequestMapping(value = {"/add"},method = RequestMethod.POST)
    	@ResponseBody
    	public BaseReturn add(@RequestBody FinancialBean bean) {
    		BaseReturn baseReturn = new BaseReturn(BaseCode.SUCCESS);
    		String id1 = null;
    		try {
    			if(StringUtils.isEmpty(bean.getId())) {
    				String maxid = mapperService.getMaxId();
    				if(StringUtils.isEmpty(maxid)) {
    					maxid ="0";
    				}
    				int id =Integer.parseInt(maxid)+1;
    			    id1 =String.format("%04d", id);
    				bean.setId(id1);
    				bean.setState("1");
    				String date = DateUtils.getDate();
    				CurrentUser user = SecurityUserHolder.getCurrentUser();
    				bean.setCreateDate(date);
    				bean.setCreateUserId(user.getUserId()+"");
    				bean.setCreateUserName(user.getUserName());
    				mapperService.insert(bean);
    			}else {
    				CurrentUser user = SecurityUserHolder.getCurrentUser();
    				bean.setUpdateDate(DateUtils.getDate());
    				bean.setUpdateUserId(user.getUserId()+"");
    				bean.setUpdateUserName(user.getUserName());
    				mapperService.updateById(bean);
    				
    			}
    		}catch (Exception e) {
    			baseReturn.setData(id1);
    			baseReturn.setState(BaseCode.FAILURE);
    			baseReturn.setMessage(e.getMessage());
    			e.printStackTrace();
    		}
    		
    		return baseReturn;
    		
    	}
    	//编辑页面
    	@RequestMapping(value = {"/editor"})
    	public String editor(String id,Boolean readOnly,Model model) throws Exception{
    		SaleBean bean = mapperService.selectById(id);
    		List<SaleInfoBean> list = SaleInfoService.selectBySaleId(id);
    
    		model.addAttribute("bean",bean);
    		model.addAttribute("list",list);
    		model.addAttribute("readOnly",readOnly);
    
    		return "saleeditor";
    	}
    	
    	//编辑页面
    	@RequestMapping(value = {"/delete"})
    	@ResponseBody
    	public BaseReturn delete(String id) throws Exception{
    		BaseReturn baseReturn = new BaseReturn(BaseCode.SUCCESS);
    		try {
    			if(!StringUtils.isEmpty(id)) {
    				List<SaleInfoBean> list = SaleInfoService.selectBySaleId(id);
    				for(SaleInfoBean info : list) {
    					MedicineBean medicine = medicineService.selectByNo(info.getMedicineNo(),info.getSupplierId());
    					int number =Integer.parseInt(medicine.getNumber())+Integer.parseInt(info.getNum());
    					medicine.setNumber(number+"");
    					medicineService.updateById(medicine);					
    					//SaleInfoService.deleteById(info.getId());;
    				}
    				SaleInfoService.deleteBySaleId(id);
    				mapperService.deleteById(id);
    				baseReturn.setMessage("删除成功!");
    			}
    		}catch (Exception e) {
    			baseReturn.setState(BaseCode.FAILURE);
    			baseReturn.setMessage(e.getMessage());
    			e.printStackTrace();
    		}		
    		return baseReturn;
    
    	}
    	
    	//编辑页面
    	@RequestMapping(value = {"/submit"})
    	@ResponseBody
    	public BaseReturn submit(String id,String state) throws Exception{
    		BaseReturn baseReturn = new BaseReturn(BaseCode.SUCCESS);
    		try {
    			if(!StringUtils.isEmpty(id)) {
    				SaleBean bean = mapperService.selectById(id);
    				bean.setState(state);
    				mapperService.updateById(bean);
    				baseReturn.setMessage("操作成功!");
    			}
    		}catch (Exception e) {
    			baseReturn.setState(BaseCode.FAILURE);
    			baseReturn.setMessage(e.getMessage());
    			e.printStackTrace();
    		}		
    		return baseReturn;
    
    	}
    	
    
    • 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
    • 63
    • 64
    • 65
    • 66
    • 67
    • 68
    • 69
    • 70
    • 71
    • 72
    • 73
    • 74
    • 75
    • 76
    • 77
    • 78
    • 79
    • 80
    • 81
    • 82
    • 83
    • 84
    • 85
    • 86
    • 87
    • 88
    • 89
    • 90
    • 91
    • 92
    • 93
    • 94
    • 95
    • 96
    • 97
    • 98
    • 99
    • 100
    • 101
    • 102
    • 103
    • 104
    • 105
    • 106
    • 107
    • 108
    • 109
    • 110
    • 111
    • 112
    • 113
    • 114
    • 115
    • 116
    • 117
    • 118
    • 119
    • 120
    • 121
    • 122
    • 123
    • 124
    • 125
    • 126
    • 127
    • 128
    • 129
    • 130
    • 131
    • 132
    • 133
    • 134
    • 135
    • 136
    • 137
    • 138
    • 139
    • 140
    • 141
    • 142
    • 143
    • 144
    • 145
    • 146
    安装部署需求

    eclipse、idea运行启动

    系统部署

    系统开发后,在生产环境配置项目运行环境,具体步骤如下:
    安装linux或者windows10操作系统;
    安装JDK1.8并配置环境变量;
    安装MySQL5.7版本以上版本数据库,创建数据库并执行脚本创建表;
    在IDEA中编辑进行打包;
    下载并配置Tomcat8.0服务器,配置系统服务,上传项目打包文件

    本项目用到的技术和框架

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

    本项目中的关键点

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

    环境工具

    开发工具 Eclipse/IDEA
    语言 JDK1.8 、jsp、CSS、SSM
    硬件:笔记本电脑;
    软件:Tomcat8.0 Web服务器、Navicat数据库客户端、MySQL;
    操作系统:Windows 10;
    其它软件:截图工具、常用浏览器;
    以上是本系统的部分功能展示,如果你的选题正好相符,那么可以做毕业设计或课程设计使用。

  • 相关阅读:
    7.19模拟赛总结
    深入react源码看setState究竟做了什么?
    TiDB Lightning 命令行参数
    647. 回文子串 516.最长回文子序列
    接扫理解.exe文件的结构原理即运行过程
    飞桨产业级开源模型库:加速企业AI任务开发与应用
    【红外双目有监督】CATS系列数据集探索&加载器
    如何编译linux驱动ko
    安卓FirstStageMount阶段解析【连载】(一)创建设备Create
    Vue - 判断访问网页客户端设备是手机移动端还是 PC 电脑端(判断设备类型是否是移动端手机)
  • 原文地址:https://blog.csdn.net/mxg74110/article/details/128000599