基于spring Boot+vue的药品销售管理系统

文末获取资源,收藏关注不迷路

文章目录

  • 前言
  • 一、研究背景
  • 二、研究意义
  • 三、主要使用技术
  • 四、研究内容
  • 五、核心代码
  • 六、文章目录

前言

随着信息化社会的形成和微电子技术日新月异的发展,为药店药品销售管理提供了良好的发展环境。人们对药店药品管理的需求越来越多,也正因此,药品销售管理系统应运而生,可以为药店药品管理有效的解决很多实际问题。药店药品品类多,购买人员复杂,因此难以管理。传统的药店药品管理方法的效率无法适应现在的发展,反而更加繁琐,所以需要建立并且完善药品销售管理系统。
本系统是通过面向对象的Java语言搭建系统框架,通过关系型数据库MySQL存储数据。使用Spring框架进行药店药品的信息管理,用户只需要通过浏览器访问系统即可获取药店药品信息,并可以在线管理,实现了信息的科学管理与查询统计。本文是先对相关系统的调查和研究,提出了开发系统的意义,运用Java技术开发,满足基于Spring的药品销售管理系统的技术要求,然后分析系统需要实现的功能并进行设计。梳理业务流程,并根据功能设计数据库,最后通过编码实现,介绍实现的关键算法逻辑。在测试阶段通过测试用例来确保系统可以正常运行,并达到前期要求的目的。系统的实施方便了药店药品在线管理,将信息化技术完美的应用在基于Spring的药品销售管理系统中,使得药店药品业务管理变得简单高效。

一、研究背景

随着信息化的发展,人们生产生活逐渐转移到网络中来,大家对智能化,智能化生活方式提出越来越多的要求,对于数据库高效存储、网络宽带的及时查询速度要求也更加苛刻。未来药店的药店药品管理势必会被智能化的管理系统所覆盖,替代传统的手工低效率操作,使得药店药品业务变得简单高效。另外,药店规模的发展带来了大量的药品信息,如果不提供快捷的药店药品管理方式,将会造成信息聚集、存储混乱等问题。因此,只有快捷的药店药品查询信息才能满足未来发展的需要。
目前大家普遍关注的问题是通过简洁高效的查询方式,快速的查询到药店药品信息、图片以及文字等。基于此,本基于Spring的药品销售管理系统提供了药店药品查询、在线管理、入库、销售、进销售服务于一体的智能化基于Spring的药品销售管理系统。通过系统可以提供关键字查询,解决了传统查询效率慢的弊端。
通过基于Spring的药品销售管理系统简化了操作,降低了管理成本,帮助药店提高了管理效率,减少了人为的操作,实现了自动化批量管理,对药店现代化药店药品管理起到了非常重要的帮助。
随着药店规模的不断扩大,药店药店药品的数量越来越多,使药店药品管理工作变得越来越繁重。因此,为了提升药店药品的管理质量,保障日常工作顺利进行,本课题拟开发一个基于Spring的药品销售管理系统。

二、研究意义

当前,药店药店药品数量多、品类全,单凭人力完成药店药品管理服务,存在着时间长、效率低以及较易出错等问题。在药店药品管理中,要做到智慧化的信息查询服务,就必须使用管理系统进行管理。在此基础上,建立基于Spring的药品销售管理系统,可以减少管理成本,便于管理员对药店药品进行高效的管理,并通过二维码数据查询和数据分析等手段,快速获取药店药品信息。。
药店药品管理是自动化运维班日常一项非常重要的工作,但现有药店药品标签存在不规范、不统一的问题,造成获取药店药品信息耗时长且查看药店药品信息过程繁琐,该系统实现了药店药品的统一管理,同时方便处方药的零售,提高了工作效率,节约了成本。
目前,国外的互联网零售药店已经形成了一定规模,特别是在欧洲国家,取得了一定的市场渗透率。与此同时,也有国家仍然禁止通过互联网交易药品。但总体而言,欧洲各国允许在互联网零售药店开办准入制度,并且也有较为完善的法律体系管理零售药店的经营活动。
在药品的管理上,目前欧美等发达国家,ERP的应用,已经比较普及,如今,ERP系统的功能已经非常丰富,与几十年前的ERP系统大不相同。ERP系统是基于互联网技术平台构建,利用人工智能 (AI) 和机器学习等最新技术,能够在整个企业范围内实现智能自动化,提高企业的运营效率,并提供即时洞察。ERP软件还将内部运营与全球的业务合作伙伴和商业网络连接起来,帮助企业实现高效协作并提升敏捷性和速度,从而在当今的商业环境中保持竞争力。多数大中小企业已经采用ERP系统和先进管理方式多年,目前许多小中小企业也加入到ERP系统。

三、主要使用技术

环境需要
1.运行环境:最好是java jdk 1.8,这是目前最稳定的JDK也是被使用最多的JDK版本。
2.IDE环境:IDEA,Eclipse都可以。推荐IDEA;
3.tomcat环境:Tomcat7/Tomcat8/Tomcat9版本均可
4.硬件环境:windows 7/8/10 1G内存以上;或者 Mac OS;
5.数据库:MySql 5.7版本;
6.是否Maven项目:是;
技术栈
后端:Spring+SpringMVC+Mybatis+Springboot
前端:vue+CSS+JavaScript+jQuery+elementui

使用说明
使用Navicat或者其它工具,在mysql中创建对应名称的数据库,并导入项目的sql文件;
使用IDEA/Eclipse/MyEclipse导入项目,修改配置,运行项目;
将项目中applicationContext.xml配置文件中的数据库配置改为自己的配置,然后运行;
运行成功后,在浏览器中输入:http://localhost:8080/项目名

四、研究内容

基于spring Boot+vue的药品销售管理系统_第1张图片
基于spring Boot+vue的药品销售管理系统_第2张图片
基于spring Boot+vue的药品销售管理系统_第3张图片基于spring Boot+vue的药品销售管理系统_第4张图片
基于spring Boot+vue的药品销售管理系统_第5张图片
基于spring Boot+vue的药品销售管理系统_第6张图片
基于spring Boot+vue的药品销售管理系统_第7张图片

基于spring Boot+vue的药品销售管理系统_第8张图片
基于Spring的药品销售管理系统功能有;

  1. 登录,系统管理员通过账号密码登录进入系统。
  2. 药品库存管理;药品登记入库,药品信息查询,药品过期自动提醒,药品清理出库。
  3. 药品销售;药品销售记录,顾客购买记录查询,长期服用药物临期短信提醒顾客续购,生成处方单和上传处方单照片的功能。
    药品的登记入库是为了记录所有药品的一个入库情况,让药店能购清楚的了解库存量的多少方便后续的进货,药品的信息查询有利于知道药品的剩余量以及产地和入库时间。
    药品的过期自动提醒对于已过期的药品进行及时的处理,避免引起过期药造成的二次问题。
    药品销售记录查询,能购让管理者清晰知道销售情况,通过对顾客购买记录能够知道一些长期服用药物的人群能够起到一个提醒作用。
    生成处方单和上传处方单能够有效解决处方药物的取药,也对于患者能够更加便利。。
    首先利用html5技术对特定的网页进行编写、排版,使形成一个完整、美观大方的药品销售管理系统的基本框架结构。然后采用MySQL数据库进行数据存储,存储药店药品等数据信息,使用Spring框架与数据库能连接运行。再进一步完善整个管理系统的页面与内部结构,使最终能实现不同管理员的不同的需求,给管理员呈现出管理所需要的药店药品信息,让管理员能快捷地管理到所有客户信息管理、药店药品类型管理、药店药品管理、药店药品统计,最后进行药品销售管理系统的测试。

基于spring Boot+vue的药品销售管理系统_第9张图片
基于spring Boot+vue的药品销售管理系统_第10张图片
基于spring Boot+vue的药品销售管理系统_第11张图片
基于spring Boot+vue的药品销售管理系统_第12张图片

五、核心代码


package com.controller;


import java.util.Arrays;
import java.util.Calendar;
import java.util.Date;
import java.util.Map;

import javax.servlet.http.HttpServletRequest;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.ResponseBody;
import org.springframework.web.bind.annotation.RestController;

import com.annotation.IgnoreAuth;
import com.baomidou.mybatisplus.mapper.EntityWrapper;
import com.entity.TokenEntity;
import com.entity.UserEntity;
import com.service.TokenService;
import com.service.UserService;
import com.utils.CommonUtil;
import com.utils.MPUtil;
import com.utils.PageUtils;
import com.utils.R;
import com.utils.ValidatorUtils;

/**
 * 登录相关
 */
@RequestMapping("users")
@RestController
public class UserController{
	
	@Autowired
	private UserService userService;
	
	@Autowired
	private TokenService tokenService;

	/**
	 * 登录
	 */
	@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);
	}
	
	/**
	 * 注册
	 */
	@IgnoreAuth
	@PostMapping(value = "/register")
	public R register(@RequestBody UserEntity user){
//    	ValidatorUtils.validateEntity(user);
    	if(userService.selectOne(new EntityWrapper<UserEntity>().eq("username", user.getUsername())) !=null) {
    		return R.error("用户已存在");
    	}
        userService.insert(user);
        return R.ok();
    }

	/**
	 * 退出
	 */
	@GetMapping(value = "logout")
	public R logout(HttpServletRequest request) {
		request.getSession().invalidate();
		return R.ok("退出成功");
	}
	
	/**
     * 密码重置
     */
    @IgnoreAuth
	@RequestMapping(value = "/resetPass")
    public R resetPass(String username, HttpServletRequest request){
    	UserEntity user = userService.selectOne(new EntityWrapper<UserEntity>().eq("username", username));
    	if(user==null) {
    		return R.error("账号不存在");
    	}
    	user.setPassword("123456");
        userService.update(user,null);
        return R.ok("密码已重置为:123456");
    }
	
	/**
     * 列表
     */
    @RequestMapping("/page")
    public R page(@RequestParam Map<String, Object> params,UserEntity user){
        EntityWrapper<UserEntity> ew = new EntityWrapper<UserEntity>();
    	PageUtils page = userService.queryPage(params, MPUtil.sort(MPUtil.between(MPUtil.allLike(ew, user), params), params));
        return R.ok().put("data", page);
    }

	/**
     * 列表
     */
    @RequestMapping("/list")
    public R list( UserEntity user){
       	EntityWrapper<UserEntity> ew = new EntityWrapper<UserEntity>();
      	ew.allEq(MPUtil.allEQMapPre( user, "user")); 
        return R.ok().put("data", userService.selectListView(ew));
    }

    /**
     * 信息
     */
    @RequestMapping("/info/{id}")
    public R info(@PathVariable("id") String id){
        UserEntity user = userService.selectById(id);
        return R.ok().put("data", user);
    }
    
    /**
     * 获取用户的session用户信息
     */
    @RequestMapping("/session")
    public R getCurrUser(HttpServletRequest request){
    	Long id = (Long)request.getSession().getAttribute("userId");
        UserEntity user = userService.selectById(id);
        return R.ok().put("data", user);
    }

    /**
     * 保存
     */
    @PostMapping("/save")
    public R save(@RequestBody UserEntity user){
//    	ValidatorUtils.validateEntity(user);
    	if(userService.selectOne(new EntityWrapper<UserEntity>().eq("username", user.getUsername())) !=null) {
    		return R.error("用户已存在");
    	}
        userService.insert(user);
        return R.ok();
    }

    /**
     * 修改
     */
    @RequestMapping("/update")
    public R update(@RequestBody UserEntity user){
//        ValidatorUtils.validateEntity(user);
    	UserEntity u = userService.selectOne(new EntityWrapper<UserEntity>().eq("username", user.getUsername()));
    	if(u!=null && u.getId()!=user.getId() && u.getUsername().equals(user.getUsername())) {
    		return R.error("用户名已存在。");
    	}
        userService.updateById(user);//全部更新
        return R.ok();
    }

    /**
     * 删除
     */
    @RequestMapping("/delete")
    public R delete(@RequestBody Long[] ids){
        userService.deleteBatchIds(Arrays.asList(ids));
        return R.ok();
    }
}

六、文章目录

1系统概述 1
1.1 研究背景 1
1.2研究目的 1
1.3系统设计思想 1
2相关技术 3
2.1 MYSQL数据库 3
2.2 B/S结构 3
2.3 Spring Boot框架简介 4
2.4 VUE框架 4
3系统分析 5
3.1可行性分析 5
3.1.1技术可行性 5
3.1.2经济可行性 5
3.1.3操作可行性 5
3.2系统性能分析 6
3.2.1 系统安全性 6
3.2.2 数据完整性 6
3.3系统界面分析 6
3.4系统流程和逻辑 8
4系统概要设计 9
4.1概述 9
4.2系统结构 10
4.3.数据库设计 11
4.3.1数据库实体 11
4.3.2数据库设计表 13
5系统详细实现 17
5.1 管理员模块的实现 17
5.2用户模块的实现 19
6系统测试 21
6.1概念和意义 21
6.2特性 22
6.3重要性 22
6.4测试方法 23
6.5 功能测试 23
6.6可用性测试 24
6.7性能测试 24
6.8测试分析 24
6.9测试结果分析 25
结论 25
致谢语 26
参考文献 26

你可能感兴趣的:(spring,boot,vue.js,php)