Java项目:springboot药品管理系统

news2024/12/26 23:29:18

作者主页:源码空间站2022

 简介:Java领域优质创作者、Java项目、学习资料、技术互助

文末获取源码

项目介绍

本项目属于前后端分离的项目,分为两个角色药品管理员和取药处人员
药品管理员:
登录、退出、药品信息录入、药厂信息录入、采购员信息录入、药品信息浏览、药厂信息浏览、采购人员信息浏览、药品信息查询入库修改删除、药厂信息入库修改删除、采购员信息入库修改删除、入库记录浏览、出库记录浏览、系统帮助

取药处人员:

登录、退出、药品信息浏览、药厂信息浏览、采购员信息浏览、药品信息查询出库、出库记录浏览、系统帮助

环境需要

1.运行环境:最好是java jdk 1.8,我们在这个平台上运行的。其他版本理论上也可以。
2.IDE环境:IDEA,Eclipse,Myeclipse都可以。推荐IDEA;
3.tomcat环境:Tomcat 7.x,8.x,9.x版本均可
4.硬件环境:windows 7/8/10 1G内存以上;或者 Mac OS; 
5.数据库:MySql 5.7版本;

6.是否Maven项目:是

技术栈

1. 后端:SpringBoot

2. 前端:html+layui+jquery+bootstrap+echarts

使用说明

1. 使用Navicat或者其它工具,在mysql中创建对应名称的数据库,并导入项目的sql文件;
2. 使用IDEA/Eclipse/MyEclipse导入项目,Eclipse/MyEclipse导入时,若为maven项目请选择maven;
若为maven项目,导入成功后请执行maven clean;maven install命令,然后运行;
3. 将项目中application.yml配置文件中的数据库配置改为自己的配置;

4. 运行项目,后端输入localhost:8081/

运行截图

管理员界面

取药员界面

其他

代码相关

管理端控制器

@RestController
@CrossOrigin
@RequestMapping("/admin")
public class AdminController {
    @Autowired
    private AdminService adminService;

    @RequestMapping("/insertStorage")
    public AjaxInfo insertStroage(@RequestBody Instorage instorage, HttpSession session) {
        System.out.println(instorage);
        AjaxInfo ajaxInfo = new AjaxInfo();
        Instorage in = new Instorage();
        if (session.getAttribute("userName") != null) {
            Medicine med = adminService.getMedicineBymedId(instorage.getMedId());
            SimpleDateFormat time = new SimpleDateFormat("yyyy-MM-dd HH:mm");
            Date date = new Date();
            in.setMedId(instorage.getMedId());
            in.setBuyerId(instorage.getBuyerId());
            in.setInDate(time.format(date));
            in.setInStorageNum(instorage.getInStorageNum());
            if (med == null) {
                ajaxInfo.setCode(-1);
                ajaxInfo.setMsg("入库失败,该药品不存在!");
            } else {
                adminService.insertInstorage(in);
                adminService.updateMedStorage(instorage.getMedId(), instorage.getInStorageNum()+med.getMedStorage());
                ajaxInfo.setMsg("入库成功~");
                ajaxInfo.setCode(0);
            }

            return ajaxInfo;

        } else {
            ajaxInfo.setCode(-2);
            ajaxInfo.setMsg("权限不足!请先登录~");
        }
        return ajaxInfo;

    }

    @RequestMapping("/insertMedicine")
    public AjaxInfo insertMedicine(@RequestBody Medicine medicine, HttpSession session) {
        System.out.println(medicine);
        AjaxInfo ajaxInfo = new AjaxInfo();
        if (session.getAttribute("userName") != null) {
            Medicine med = adminService.getMedicineBymedId(medicine.getMedId());
            if (med == null) {
                adminService.insertMedicine(medicine);
                ajaxInfo.setMsg("插入信息成功~");
                ajaxInfo.setCode(0);
            } else {
                ajaxInfo.setMsg("该药品已存在~");
                ajaxInfo.setCode(-1);
            }
            return ajaxInfo;
        } else {
            ajaxInfo.setCode(-2);
            ajaxInfo.setMsg("权限不足!请先登录~");
        }
        return ajaxInfo;
    }

    @RequestMapping("/queryMedicine")
    public AjaxInfo queryMedicine(@RequestBody Medicine medicine, HttpSession session) {
        AjaxInfo ajaxInfo = new AjaxInfo();
        if (session.getAttribute("userName") != null) {
            Medicine med = adminService.getMedicineBymedId(medicine.getMedId());
            if (med == null) {
                ajaxInfo.setMsg("该药品不存在,请重新输入!");
                ajaxInfo.setCode(-1);
            } else {
                ajaxInfo.setMsg("查询成功!");
                ajaxInfo.setData(med);
                ajaxInfo.setCode(0);
                System.out.println(med);
            }
            return ajaxInfo;
        } else {
            ajaxInfo.setMsg("权限不足!请先登录~");
            ajaxInfo.setCode(-2);
        }

        return ajaxInfo;
    }

    @RequestMapping("/updateMedicine")
    public AjaxInfo updateMedicine(@RequestBody Medicine medicine, HttpSession session) {
        AjaxInfo ajaxInfo = new AjaxInfo();
        if (session.getAttribute("userName") != null) {
            adminService.updateMedicine(medicine);
            ajaxInfo.setMsg("更新成功!");
            ajaxInfo.setCode(0);
        } else {
            ajaxInfo.setCode(-2);
            ajaxInfo.setMsg("权限不足!请先登录~");
        }
        return ajaxInfo;
    }

    @RequestMapping("/deleteMedicine")
    public AjaxInfo deleteMedicine(@RequestBody Medicine medicine, HttpSession session) {
        AjaxInfo ajaxInfo = new AjaxInfo();
        if (session.getAttribute("userName") != null) {
            adminService.deleteMedicine(medicine.getMedId());
            ajaxInfo.setMsg("删除成功!");
            ajaxInfo.setCode(0);
        } else {
            ajaxInfo.setMsg("权限不足!请先登录~");
        }
        return ajaxInfo;
    }
    @RequestMapping("/insertFactory")
    public AjaxInfo insertFactory(@RequestBody Factory factory, HttpSession session) {
        AjaxInfo ajaxInfo = new AjaxInfo();
        if (session.getAttribute("userName") != null) {
            Factory fId = adminService.getFactoryByfactoryId(factory.getFactoryId());
            if (fId == null) {
                adminService.insertFactory(factory);
                ajaxInfo.setMsg("插入信息成功~");
                ajaxInfo.setCode(0);
            } else {
                ajaxInfo.setMsg("该药厂已存在~");
                ajaxInfo.setCode(-1);
            }
            return ajaxInfo;
        } else {
            ajaxInfo.setCode(-2);
            ajaxInfo.setMsg("权限不足!请先登录~");
        }
        return ajaxInfo;
    }
    @RequestMapping("/queryFactory")
    public AjaxInfo queryFactory(@RequestBody Factory factory, HttpSession session) {
        AjaxInfo ajaxInfo = new AjaxInfo();
        if (session.getAttribute("userName") != null) {
            Factory fId = adminService.getFactoryByfactoryId(factory.getFactoryId());
            if (fId == null) {
                ajaxInfo.setMsg("该药厂不存在,请重新输入!");
                ajaxInfo.setCode(-1);
            } else {
                ajaxInfo.setMsg("查询成功!");
                ajaxInfo.setData(fId);
                ajaxInfo.setCode(0);
                System.out.println(fId);
            }
            return ajaxInfo;
        } else {
            ajaxInfo.setMsg("权限不足!请先登录~");
            ajaxInfo.setCode(-2);
        }
        return ajaxInfo;
    }
    @RequestMapping("/updateFactory")
    public AjaxInfo updateFactory(@RequestBody Factory factory, HttpSession session) {
        System.out.println(factory);
        AjaxInfo ajaxInfo = new AjaxInfo();
        if (session.getAttribute("userName") != null) {
            adminService.updateFactory(factory);
            ajaxInfo.setMsg("更新成功!");
            ajaxInfo.setCode(0);
        } else {
            ajaxInfo.setCode(-2);
            ajaxInfo.setMsg("权限不足!请先登录~");
        }
        return ajaxInfo;
    }

    @RequestMapping("/deleteFactory")
    public AjaxInfo deleteFactory(@RequestBody Factory factory, HttpSession session) {
        AjaxInfo ajaxInfo = new AjaxInfo();
        if (session.getAttribute("userName") != null) {
            adminService.deleteFactory(factory.getFactoryId());
            ajaxInfo.setMsg("删除成功!");
            ajaxInfo.setCode(0);
        } else {
            ajaxInfo.setCode(-2);
            ajaxInfo.setMsg("权限不足!请先登录~");
        }
        return ajaxInfo;
    }
}

 用户端控制器

@RestController
@RequestMapping("/user")
@CrossOrigin
public class UserController {
    @Autowired
    private UserService userService;

    @RequestMapping("/login")
    public AjaxInfo login(@RequestBody User user, HttpSession session) {

        AjaxInfo ajaxInfo = new AjaxInfo();
        System.out.println(session.getId());
        User user1 = userService.findUser(user);
        if (user1 != null) {
            ajaxInfo.setCode(user1.getUserRight());
            ajaxInfo.setMsg("登陆成功!");
            ajaxInfo.setData(user1.getUserName());
            session.setAttribute("userName", user1.getUserName());
            System.out.println(session.getAttribute("userName"));
        } else {
            ajaxInfo.setCode(-1);
            ajaxInfo.setMsg("账号或密码错误!");
        }
        return ajaxInfo;
    }

    @RequestMapping("/logout")
    public String login(HttpSession session) {

        System.out.println(session.getId());
        System.out.println(session.getAttribute("userName"));
        session.removeAttribute("userName");
        return "success";
    }

    @RequestMapping("/registUser")
    public AjaxInfo regist(@RequestBody User user, HttpSession session) {
        AjaxInfo ajaxInfo = new AjaxInfo();

        User userByAcc = userService.getUserByAcc(user.getUserAcc());
        if (session.getAttribute("userName") != null) {
            if (userByAcc == null) {
                userService.registUser(user);
                ajaxInfo.setMsg("注册成功!");
            } else {
                ajaxInfo.setMsg("账号已存在!请重新输入~");
            }
            return ajaxInfo;
        } else {
            ajaxInfo.setMsg("权限不足!请先登录~");
        }
        return ajaxInfo;
    }

    @RequestMapping("/queryUser")
    public AjaxInfo queryUser(@RequestBody User user, HttpSession session) {
        System.out.println(user);
        AjaxInfo ajaxInfo = new AjaxInfo();

        if (session.getAttribute("userName") != null) {
            User userByAcc = userService.getUserByAcc(user.getUserAcc());
            if (userByAcc == null||userByAcc.getUserRight()!=2) {
                ajaxInfo.setMsg("该取药员不存在,请重新输入!");
                ajaxInfo.setCode(-1);
            } else {
                ajaxInfo.setMsg("查询成功!");
                ajaxInfo.setCode(0);
                ajaxInfo.setData(userByAcc);
            }
            return ajaxInfo;
        } else {
            ajaxInfo.setCode(-2);
            ajaxInfo.setMsg("权限不足!请先登录~");
        }
        return ajaxInfo;
    }

    @RequestMapping("/deleteUser")
    public AjaxInfo deleteUser(@RequestBody User user, HttpSession session) {
        AjaxInfo ajaxInfo = new AjaxInfo();

        if (session.getAttribute("userName") != null) {
            userService.deleteUser(user.getUserAcc());
            ajaxInfo.setMsg("删除成功!");
        } else {
            ajaxInfo.setMsg("权限不足!请先登录~");
        }
        return ajaxInfo;
    }

    @RequestMapping("/registBuyer")
    public AjaxInfo registBuyer(@RequestBody Buyer buyer, HttpSession session) {
        AjaxInfo ajaxInfo = new AjaxInfo();
        System.out.println("======"+buyer);
        Buyer buyerByUserId = userService.getBuyerById(buyer.getBuyerId());
        if (session.getAttribute("userName") != null) {
            if (buyerByUserId == null) {
                userService.registBuyer(buyer);
                ajaxInfo.setMsg("注册成功!");
            } else {
                ajaxInfo.setMsg("ID已存在!");
            }
            return ajaxInfo;
        } else {
            ajaxInfo.setMsg("权限不足!请先登录~");
        }
        return ajaxInfo;
    }

    @RequestMapping("/queryBuyer")
    public AjaxInfo queryBuyer(@RequestBody Buyer buyer, HttpSession session) {
        AjaxInfo ajaxInfo = new AjaxInfo();
        System.out.println(buyer);

        if (session.getAttribute("userName") != null) {
            Buyer buyer1 = userService.getBuyerById(buyer.getBuyerId());
            if (buyer1 == null) {
                ajaxInfo.setMsg("该采购员不存在,请重新输入!");
                ajaxInfo.setCode(-1);
            } else {
                ajaxInfo.setMsg("查询成功!");
                ajaxInfo.setData(buyer1);
                ajaxInfo.setCode(0);
            }

        } else {
            ajaxInfo.setCode(-2);
            ajaxInfo.setMsg("权限不足!请先登录~");
        }
        System.out.println("================="+ajaxInfo.getCode());
        return ajaxInfo;
    }

    @RequestMapping("/deleteBuyer")
    public AjaxInfo deleteBuyer(@RequestBody Buyer buyer, HttpSession session) {
        AjaxInfo ajaxInfo = new AjaxInfo();
        if (session.getAttribute("userName") != null) {
            userService.deleteBuyer(buyer.getBuyerId());
            ajaxInfo.setMsg("删除成功!");
        } else {
            ajaxInfo.setMsg("权限不足!请先登录~");
        }
        return ajaxInfo;
    }

    @RequestMapping("/updateBuyer")
    public AjaxInfo updateBuyer(@RequestBody Buyer buyer, HttpSession session) {
        AjaxInfo ajaxInfo = new AjaxInfo();
        if (session.getAttribute("userName") != null) {
            userService.updateBuyer(buyer);
            ajaxInfo.setMsg("更新成功!");
        } else {
            ajaxInfo.setMsg("权限不足!请先登录~");
        }
        return ajaxInfo;
    }

}

如果也想学习本系统,下面领取。回复:085springboot

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/114904.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Huawei Certified ICT Professional work (一)

文章目录一, 要求二,搭建拓扑图三,配置接口IP和环回IP四,进行RIP版本的配置并且宣告网段五,实现不同版本的连通,在交界处配置对端的版本号六,R3访问R7的环回地址走R5,改变R4的度量值…

Java项目:SpringBoot+MyBatis送水公司管理系统

作者主页:源码空间站2022 简介:Java领域优质创作者、Java项目、学习资料、技术互助 文末获取源码 项目介绍 这个项目是一个基于SpringBootMyBatis的送水公司管理系统 管理员权限包括: 客户管理 送水工管理 送水历史管理 计算工资 统计送水数…

79页智慧应急指挥平台1 6 N体系建设方案

【版权声明】本资料来源网络,仅用于行业知识分享,供个人学习参考,请勿商用。【侵删致歉】如有侵权请联系小编,将在收到信息后第一时间进行删除! 完整资料领取见文末,部分资料内容: 行业专网解决…

ARM_SMMU_下

SMMU驱动代码分析 本文主要分析linux kernel中SMMUv3的代码(drivers/iommu/arm-smmu-v3.c) linux kernel版本是linux 5.7, 体系结构是aarch64 SMMU的作用是把CPU提交给设备的VA地址,直接作为设备发出的地址,变成正确的物理地址,访问到物理内…

五、传输层(一)传输层的功能

目录 1.1传输层的主要功能 1.2传输层的寻址与端口 1.2.1端口的作用 1.2.2端口号 1.2.3套接字 1.3无连接服务与面向连接服务 1.1传输层的主要功能 物理层、数据链路层和网络层共同解决了主机通过异构网络互联起来所面临的问题,实现了主机到主机的通信。然而在…

【iOS】CAlayer的认识与使用

什么是CALayer CALayer是UIView里的一个图层,其主要功能是负责显示视图与动画。CALayer和UIView 功能是一致的、 不过因为其 更加底层 所以 CALayer 有一些接口、 UIView 里面没有。 CALayer与UIView UIView:用于管理视图的容器。每次创建UIView对象时…

当我阳了之后是如何用Python来自动买药的

人生苦短,我用Python序言准备工作代码实战序言 哈喽兄弟们,我是郑再阳,马上要成杨过了! 读者:在下羊了个羊! 最近总是听说哪里哪里阳了,哪个公司又团灭了,emmm~ 于是乎看了几天后…

【exgcd】扩展欧几里得

主要介绍扩展欧几里的和总结一些常用性质 首先介绍裴蜀定理 对于任意整数a,b,存在一对整数x,y 满足 axbygcd(a,b) 即存在x0,y0使得ax0by0gcd(a,b) 扩展欧几里得可以求出x0,y0 从而当axbyc 可以求出其通解 设dgcd(a,b) 显然当c%d!0时无整数解 通解可以表示为 x(c/d)x0k…

Java项目:springboot访客管理系统

作者主页:源码空间站2022 简介:Java领域优质创作者、Java项目、学习资料、技术互助 文末获取源码 项目介绍 springboot搭建的访客管理系统,针对高端基地做严格把控来访人员信息管理,用户后端可以设置多个管理员帐号,给…

力扣(LeetCode)207. 课程表(C++)

拓扑排序 根据示例看出,课程表是否存在环,是问题的关键。这题的环,和数组、链表的环不一样,不好判,要转化成图判拓扑序列。 考虑向右和向左的方向,拓扑序列的所有边可以指向同一方向。 无环图进行重排序…

论文阅读Measuring Regularity of Individual Travel Patterns

这是一篇发表在IEEE TRANSACTIONS ON INTELLIGENT TRANSPORTATION SYSTEMS上的论文,论文主要描述了一种刻画出行规律性的方法。 1.论文概述 论文主要描述了一种刻画出行规律性的方法。首先,论文给出了对出行活动序列(travel event&#xff…

因果推断3--DRNet(个人笔记)

目录 Learning Counterfactual Representations for Estimating Individual Dose-Response Curves 1介绍 2相关工作 3方法 4实验 5结果和讨论 6结论 7理解 论文标题 Learning Counterfactual Representations for Estimating Individual Dose-Response Curves 收录会…

深度学习-AlexNet(第一个深度卷积网络)

文章目录简介数据集模型搭建模型训练模型测试前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不住分享一下给大家。点击跳转到网站。 简介 AlexNet是第一个深度卷积网络模型,赢得了2012年ImageNet图像分类竞赛的冠军…

Java项目:springboot销售团队后台管理系统

作者主页:源码空间站2022 简介:Java领域优质创作者、Java项目、学习资料、技术互助 文末获取源码 项目介绍 该项目为后管系统,主要功能包括: 看板、业务机会管理、客户管理、联系人管理、我的日报、团队日报、主数据管理&#x…

【Linux】进程间通信之共享内存

目录🌈前言🌸1、System V共享内存🍡1.1、概念🍢1.2、原理🌺2、共享内存相关函数和指令🍡2.1、shmget函数(创建)🍢2.2、shmctl函数(控制)&#x1f…

TCP 的重传机制、选择确认、缓存与流量控制、连接管理、拥塞控制(计算机网络-运输层)

目录 TCP 的重传机制 TCP 的选择确认 TCP 的缓存与流量控制 TCP 的连接管理 TCP的拥塞控制 TCP 的重传机制 TCP 每发送一个报文段就设置一个超时计时器; TCP 使用指数加权移动平均算法计算 RTT 及其偏差的估计值,并据此计算超时重传时间&#xff1b…

8 NP完全性理论

8 NP完全性理论 p问题 NP问题 NP完全问题 NPC(complete ) NP难问题NP-hard p问题 是一类能够用**(确定的)算法**在多项式时间内求解的可判定问题 ●这种问题类型也称为多项式类型 NP问题 是一类能够用不确定算法在多项式时间内求解的可判定问题 在确定性计算模型下多项式时…

程序员高手解决问题,都是从正确的提问开始

回顾各大技术网站、社区、问答,我们发现:真正的程序员高手都极度擅长提问。 好的提问不但能得到建设性的解决方案,更加能激发人们的好奇心、创造力和学习的动力。 毫不夸张地说,会提问的程序员一开口就赢了! 所以今…

HashMap源码剖析(下)——java集合

系列文章目录 文章目录系列文章目录前言一、 回顾总结二、HashMap数据插入流程JDK1.8 HashMap的put方法源码如下:2.1 扩容机制2.2 链表树化2.3 红黑树转链三、查找总结四、删除五、遍历前言 既上一节内容 本节内容是,HashMap还有基本的数据功能;存储、删…

(三)GNSS定位中的定位系统和误差源

翻看了一下记录,离上一次GNSS内容的更新已经过去9个月了。时间过的太快,硕士生涯已经过去一半,有遗憾也有收获,过去的9个月经历了各种喜怒哀乐以及迷茫。永远相信美好的事情即将发生,GO LONG CHINA! 今天写…