目录
全栈码农以及毕业设计实战开发,CSDN平台Java领域新星创作者,专注于大学生项目实战开发、讲解和毕业答疑辅导。获取源码联系方式请查看文末
一、前言
"在当今医疗信息化快速发展的背景下,设计一个基于Spring Boot的医药管理系统显得尤为重要。该系统旨在通过高效、稳定的技术架构,实现药品从采购、库存、销售到患者用药跟踪的全链条管理。Spring Boot以其快速开发、易于部署及集成多种开源技术的优势,成为构建此类系统的理想选择。本系统不仅提升了医药企业的运营效率,还增强了药品质量追溯能力,保障了患者用药安全。通过本文,我们将深入探讨该系统的设计思路、关键技术实现及最终效果,以期为医药行业的信息化建设提供有价值的参考与借鉴。"
二、技术介绍
语言:Java
使用框架:Spring Boot
前端技术:JS、Vue 、css3
开发工具:IDEA/Eclipse
数据库:MySQL 5.7/8.0
数据库管理工具:phpstudy/Navicat
JDK版本:jdk1.8
Maven: apache-maven 3.8.1-bin
前端环境:Node.Js 12\14\16
三、系统实现
该功能主要用于实现对药品基本信息的管理,药品管理界面的运行效果见图5.1。在此界面,管理员需要对药品所治疾病,药品功效,药品库存,药品照片,供应商名称等信息进行添加,如果发现有登记错误的药品信息,管理员则可以使用修改功能及时更正,对于需要删除的药品信息则可以使用删除功能及时删除。同时,管理员也能对药品库存进行管理,包括增加药品库存,减少药品库存等操作。
该功能主要用于实现对员工基本信息的管理,员工管理界面的运行效果见图5.2。在此界面,员工的姓名,性别,员工的手机号码等信息都可以让管理员添加以及修改,同时,对于需要删除的员工信息,管理员也能及时删除。
该功能主要用于实现对供应商基本信息的管理,供应商管理界面的运行效果见图5.3。在此界面,管理员对供应商的信用等级,供应商名称,还有供应商的类型进行添加,当供应商信息比较多时,就需要管理员使用查询功能对供应商信息进行查询,查询前只需要在查询框中编辑供应商名称即可查询。
销售管理界面的运行效果见图5.4。在此界面,管理员查看销售药品的员工信息以及销售的药品信息,可以更改药品销售数据,可以使用销售编号实现对销售药品的查询。
销售药品统计报表界面的运行效果见图5.5。在此界面,管理员查看各种药品的销售数量信息,同时管理员可以下载销售药品统计报表,可以把销售药品统计报表在柱状图与折线图之间进行切换。
进货管理界面的运行效果见图5.6。在此界面,员工对药品进货详情进行查看,包括进货数量,进货时间等信息,员工也有权限新增药品进货信息,可以对药品的进货信息通过进货编号,药品编号等查询条件进行查询。
销售管理界面的运行效果见图5.7。在此界面,员工对药品销售的详情进行查看,包括销售药品名称,销售编号,销售数量等信息,员工也有权限新增药品销售信息,可以对药品销售信息通过销售编号,药品功效,所致疾病等查询条件进行查询。
药品查看界面的运行效果见图5.8。在此界面,员工查看药品库存,查看药品进价,药品售价,药品功效等信息。员工查询药品可以根据药品功效,所治疾病等字段进行查询。
四、论文参考
五、核心代码
@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("/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));
}
/**
* 保存
*/
@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);
userService.updateById(user);//全部更新
return R.ok();
}
/**
* 删除
*/
@RequestMapping("/delete")
public R delete(@RequestBody Long[] ids){
userService.deleteBatchIds(Arrays.asList(ids));
return R.ok();
}
}
六、源码获取
感谢大家点赞、收藏、关注、评论啦 、获取联系方式在个人简介绿泡泡