• 基于springboot的张仲景药房(药店)管理系统


    博主主页猫头鹰源码

    博主简介:Java领域优质创作者、CSDN博客专家、公司架构师、全网粉丝5万+、专注Java技术领域和毕业设计项目实战

    主要内容:毕业设计(Javaweb项目|小程序等)、简历模板、学习资料、面试题库、技术咨询

    文末联系获取

    项目介绍:

    张仲景药房管理系统在设计过程中使用的程序设计更加人性化,如果出现了错误信息系统可以及时处理和反应。其中系统的主要内容是数据库设计的具体分析数据采用MySQL数据库,选择maven作为版本管理工具,系统后端使用了Spring Boot框架,前端使用了Layui框架进行了开发,整体结构为非前后端分离。

    项目功能: 

    针对张仲景药房管理系统,主要包括系统管理员、操作员、普通用户三个用户角色,由于用户角色不同,所对应的功能模块不同。普通用户可以根据自己的需求进行查看药品信息、购买药品等操作;操作员可以根据中自己的需求对药品信息进行维护和对前台普通用户购买的订单进行处理;系统管理员主要是综合光明药店管理系统中的所有的药品数据信息,按照自己的需求进行操作,例如:对普通用户管理、权限管理、药品信息管理、公告管理、统计管理、订单管理等操作;张仲景药房管理系统的整体结构就是围绕普通用户的购买以及系统管理员和操作员对库存的药品信息及不同用户的权限进行相应的管理操作。

    系统主要分为八个功能模块:

    1. 药品管理:系统管理员和操作员对所进货的药品创建新的药品信息,可以选择入库操作之后更新库存信息。
    2. 类型管理:对添加的药品进行药品的分类。
    3. 销售管理:添加完成的药品可以在用户购买界面显示购买。
    4. 订单管理:系统管理员和操作员可以浏览前台的销售情况,同时还可以统计已经销售的药品情况。
    5. 统计管理:系统管理员和操作员在此模块统计药品的销售情况。
    6. 用户管理:系统管理员在这个模块下可以维护用户的信息。
    7. 权限管理:针对用户的角色不同,系统管理员在这个模块下给予他们不同的使用权限。
    8. 公告管理:针对用户的角色不同,系统管理员在系统界面发布不同的公告信息并进行管理。

    系统包含技术:

    后端:springboot,mybatis
    前端:layui、js、css等
    开发工具:idea
    数据库:mysql 5.7
    JDK版本:jdk1.8

    部分截图说明:

    下面是销售页面

    登录页面

    管理员首页

     管理员对用户操作

     管理员对药品进行维护

     管理员对药品类型维护

     管理员对库存维护

     统计管理

     管理员对角色进行管理

     管理员对菜单进行维护

    用户对药材进行查看

    用户可以查看处方

    部分代码: 

    配置拦截器等

    1. public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception {
    2. if (!(handler instanceof HandlerMethod)) {
    3. return true;
    4. }
    5. //判断用户的token信息是否满足
    6. User user = (User) request.getSession().getAttribute("user");
    7. if (user != null){
    8. return true;
    9. }
    10. //当前不满足条件,直接跳转拦截
    11. response.sendRedirect("/loginPage");
    12. return false;
    13. }

    药房维护

    1. @RequestMapping("/get")
    2. public Object get(Integer page,Integer limit){
    3. DrugsExample drugsExample = new DrugsExample();
    4. drugsExample.createCriteria().andStatusEqualTo(1);
    5. List<Drugs> drugs = drugsMapper.selectByExample(drugsExample);
    6. Pager<Drugs> pager = new Pager<>();
    7. pager.setCurentPageIndex(page);
    8. pager.setCountPerpage(limit);
    9. pager.setBigList(drugs);
    10. return LayuiResult.LayuiData(0,"success",pager.getSmallList(),pager.getRecordCount());
    11. }
    12. @RequestMapping("/getAll")
    13. public Object getAll(){
    14. DrugsExample drugsExample = new DrugsExample();
    15. drugsExample.createCriteria().andStatusEqualTo(1);
    16. List<Drugs> drugsList = drugsMapper.selectByExample(drugsExample);
    17. return LayuiResult.LayuiData(0,"success",drugsList);
    18. }
    19. @RequestMapping("/update")
    20. public Object update(@RequestBody Drugs drugs){
    21. drugsMapper.updateByPrimaryKeySelective(drugs);
    22. return LayuiResult.LayuiData(0,"药材信息修改成功",null);
    23. }
    24. @RequestMapping("/delete/{id}")
    25. public Object delete(@PathVariable Integer id){
    26. Drugs drugs = new Drugs();
    27. drugs.setId(id);
    28. drugs.setStatus(0);
    29. drugsMapper.updateByPrimaryKeySelective(drugs);
    30. return LayuiResult.LayuiData(0,"该记录删除成功",null);
    31. }
    32. @RequestMapping("/search/{drugParam}")
    33. public Object search(@PathVariable String drugParam,Integer page,Integer limit){
    34. DrugParam dp = JsonUtils.jsonToPojo(drugParam,DrugParam.class);
    35. DrugsExample drugsExample = new DrugsExample();
    36. DrugsExample.Criteria criteria = drugsExample.createCriteria().andStatusEqualTo(1);
    37. if (!dp.getDrugName().equals("")) {
    38. criteria = criteria.andDrugNameLike("%" + dp.getDrugName() + "%");
    39. }
    40. if(!dp.getDrugType().equals("")){
    41. criteria = criteria.andDrugTypeEqualTo(dp.getDrugType());
    42. }
    43. if(!dp.getAnotherName().equals("")){
    44. criteria = criteria.andAnotherNameLike("%" + dp.getAnotherName() + "%");
    45. }
    46. if(!dp.getFeatures().equals("")){
    47. criteria = criteria.andFeaturesLike("%" + dp.getFeatures() + "%");
    48. }
    49. List<Drugs> drugs = drugsMapper.selectByExample(drugsExample);
    50. Pager<Drugs> pager = new Pager<>();
    51. pager.setCurentPageIndex(page);
    52. pager.setCountPerpage(limit);
    53. pager.setBigList(drugs);
    54. return LayuiResult.LayuiData(0,"success",pager.getSmallList(),pager.getRecordCount());
    55. }

    以上就是部分功能展示,从整体上来看,本系统功能是十分完整的,界面设计简洁大方,交互友好,数据库设计也很合理,规模适中,代码工整,清晰,适合学习使用。

    好了,今天就到这儿吧,小伙伴们点赞、收藏、评论,一键三连走起呀,下期见~~

  • 相关阅读:
    Apache Shiro 配置
    快速上手thymeleaf
    开源|商品识别推荐系统
    000-基于Sklearn的机器学习入门:工作环境搭建与配置
    oracle,CLOB转XML内存不足,ORA-27163: out of memory ORA-06512: at “SYS.XMLTYPE“,
    Software caused connection abort: recv failed
    AUTOSAR规范与ECU软件开发(实践篇)9.4 AUTOSAR安全机制的存储空间分区
    CSDN 每日一练 小鱼的航程(改进版)
    基于Qt 多线程(继承 QObject 的线程)
    【oceanbase】安装ocp,ocp部署oceanbase
  • 原文地址:https://blog.csdn.net/mtyedu/article/details/126682945