基于SSM的药店管理系统

项目描述

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

功能需求

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

具备以下功能:

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

系统总体设计

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

基于SSM的药店管理系统_第1张图片

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

基于SSM的药店管理系统_第2张图片

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

基于SSM的药店管理系统_第3张图片

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

基于SSM的药店管理系统_第4张图片

部分效果图基于SSM的药店管理系统_第5张图片

基于SSM的药店管理系统_第6张图片

基于SSM的药店管理系统_第7张图片
基于SSM的药店管理系统_第8张图片
基于SSM的药店管理系统_第9张图片
基于SSM的药店管理系统_第10张图片

数据库设计

数据库中本系统的表包含:基本菜单(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 基本菜单表
基于SSM的药店管理系统_第11张图片

(2)基本菜单表(base_role),主要功能是存放用户角色信息如表4-2。
表4-2 角色表
基于SSM的药店管理系统_第12张图片

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

(4)合同表(contract),主要功能是存放合同信息如表4-4。
表4-4 合同表
基于SSM的药店管理系统_第13张图片

(5)金融表(financial),主要功能是存放金融信息如表4-5。
表4-5 金融表
基于SSM的药店管理系统_第14张图片

(6)药品表(medicine),主要功能是存放药品信息如表4-6。
表4-6 药品表
基于SSM的药店管理系统_第15张图片

(7)成员表(members),主要功能是存放成员信息如表4-7。
表4-7 成员表
基于SSM的药店管理系统_第16张图片

(8)用户表(user),主要功能是存放供用户信息如表4-8。
表4-8用户表
基于SSM的药店管理系统_第17张图片

部分代码

	@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;

	}
	
安装部署需求

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;
其它软件:截图工具、常用浏览器;
以上是本系统的部分功能展示,如果你的选题正好相符,那么可以做毕业设计或课程设计使用。

你可能感兴趣的:(毕业设计,Java,Web,Java,后台,药店,管理系统,SSM)