源码获取:博客首页 "资源" 里下载!

功能介绍

医药进销存系统,主要功能包括:

公告管理:发布公告、公告列表;
生产管理:订单列表、增加生产、订单日志;
分店采购:分店审核、采购;
总店仓库:出库管理、仓库列表、入库管理;
分店管理:分店库存、分店列表、分店财务;
商品管理:原材料、药效、商品列表、药品类型;
总店采购:采购列表、采购审核;
合同管理:合同类型管理、合同列表;
会员管理:会员列表;
质检:质检;
权限管理:人员管理、模块管理、部门管理、角色管理;
审核管理:财务审核、生产审核、采购审核;
分店销售:销售统计图、订单批发审核、订单列表、分店销售;
该项目共有49张表,功能比较复杂;

其他管理:供货商管理,新增、搜索、编辑、删除;

环境需要

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.是否Maven项目: 是;查看源码目录中是否包含pom.xml;若包含,则为maven项目,否则为非maven项目
6.数据库:MySql 5.7版本;

技术栈

1. 后端:Spring SpringMVC MyBatis
2. 前端:JSP+Layui+jQuery

运行说明

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

4. 运行项目,输入http://localhost:8080/medicine/page/login.jsp 登录

用户登录管理控制层:

@RestController
@RequestMapping("/user")
@CrossOrigin
public class UserController {@Autowiredprivate 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;}}

后台管理控制层:

@RestController
@CrossOrigin
@RequestMapping("/admin")
public class AdminController {@Autowiredprivate 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
@CrossOrigin
@RequestMapping("/query")
public class QueryController {@Autowiredprivate QueryService queryService;@RequestMapping("/queryMedicine")public AjaxInfo queryMedicine(HttpSession session) {AjaxInfo ajaxInfo = new AjaxInfo();if (session.getAttribute("userName") != null) {List<Medicine> medicines = queryService.queryMedicine();ajaxInfo.setCode(0);ajaxInfo.setMsg("查询成功");ajaxInfo.setData(medicines);} else {ajaxInfo.setCode(-2);ajaxInfo.setMsg("权限不足!请先登录~");}return ajaxInfo;}@RequestMapping("/queryFactory")public AjaxInfo queryFactory(HttpSession session) {AjaxInfo ajaxInfo = new AjaxInfo();if (session.getAttribute("userName") != null) {List<Factory> factories = queryService.queryFactory();ajaxInfo.setCode(0);ajaxInfo.setData(factories);} else {ajaxInfo.setCode(-2);ajaxInfo.setMsg("权限不足!请先登录~");}return ajaxInfo;}@RequestMapping("/queryBuyer")public AjaxInfo queryBuyer1(HttpSession session) {AjaxInfo ajaxInfo = new AjaxInfo();if (session.getAttribute("userName") != null) {List<Buyer> buyers = queryService.queryBuyer();ajaxInfo.setCode(0);ajaxInfo.setData(buyers);} else {ajaxInfo.setCode(-2);ajaxInfo.setMsg("权限不足!请先登录~");}return ajaxInfo;}@RequestMapping("/showInRecord")public AjaxInfo showInRecord(MedicineTable medicineTable,HttpSession session) {AjaxInfo ajaxInfo = new AjaxInfo();if (session.getAttribute("userName") != null) {int page=(medicineTable.getPage()-1)*medicineTable.getLimit();medicineTable.setPage(page);List<ShowInRecord> inRecord = queryService.getInRecord(medicineTable);ajaxInfo.setCount(queryService.getInRecordCount(medicineTable));ajaxInfo.setCode(0);ajaxInfo.setData(inRecord);} else {ajaxInfo.setCode(-2);ajaxInfo.setMsg("权限不足!请先登录~");}return ajaxInfo;}@RequestMapping("/showOutRecord")public AjaxInfo queryBuyer(MedicineTable medicineTable,HttpSession session) {AjaxInfo ajaxInfo = new AjaxInfo();if (session.getAttribute("userName") != null) {int page=(medicineTable.getPage()-1)*medicineTable.getLimit();medicineTable.setPage(page);List<ShowOutRecord> outRecord = queryService.getOutRecord(medicineTable);ajaxInfo.setCount(queryService.getOutRecordCount(medicineTable));ajaxInfo.setCode(0);ajaxInfo.setData(outRecord);} else {ajaxInfo.setCode(-2);ajaxInfo.setMsg("权限不足!请先登录~");}return ajaxInfo;}@RequestMapping("/queryMedicineByName")public AjaxInfo queryMedicineByName(MedicineTable medicineTable, HttpSession session) {AjaxInfo ajaxInfo = new AjaxInfo();System.out.println(medicineTable);if (session.getAttribute("userName") != null) {int page=(medicineTable.getPage()-1)*medicineTable.getLimit();medicineTable.setPage(page);List<Medicine> medicines = queryService.queryMedicineByName(medicineTable);ajaxInfo.setMsg("查询成功");ajaxInfo.setCount(queryService.queryMedicineByNameCount(medicineTable));ajaxInfo.setCode(0);ajaxInfo.setData(medicines);} else {ajaxInfo.setCode(-2);ajaxInfo.setMsg("权限不足!请先登录~");}return ajaxInfo;}@RequestMapping("/queryFactoryByName")public AjaxInfo queryFactoryByName(MedicineTable medicineTable, HttpSession session) {AjaxInfo ajaxInfo = new AjaxInfo();System.out.println(medicineTable);if (session.getAttribute("userName") != null) {int page=(medicineTable.getPage()-1)*medicineTable.getLimit();medicineTable.setPage(page);List<Factory> factories = queryService.queryFactoryByName(medicineTable);ajaxInfo.setMsg("查询成功");ajaxInfo.setCount(queryService.queryFactoryByNameCount(medicineTable));ajaxInfo.setCode(0);ajaxInfo.setData(factories);} else {ajaxInfo.setCode(-2);ajaxInfo.setMsg("权限不足!请先登录~");}return ajaxInfo;}@RequestMapping("/queryBuyerByName")public AjaxInfo queryBuyerByName(MedicineTable medicineTable, HttpSession session) {AjaxInfo ajaxInfo = new AjaxInfo();System.out.println(medicineTable);if (session.getAttribute("userName") != null) {int page=(medicineTable.getPage()-1)*medicineTable.getLimit();medicineTable.setPage(page);List<Buyer> buyers = queryService.queryBuyerByName(medicineTable);ajaxInfo.setMsg("查询成功");ajaxInfo.setCount(queryService.queryBuyerByNameCount(medicineTable));ajaxInfo.setCode(0);ajaxInfo.setData(buyers);} else {ajaxInfo.setCode(-2);ajaxInfo.setMsg("权限不足!请先登录~");}return ajaxInfo;}@RequestMapping("/queryUserByName")public AjaxInfo queryUserByName(MedicineTable medicineTable, HttpSession session) {AjaxInfo ajaxInfo = new AjaxInfo();System.out.println(medicineTable);if (session.getAttribute("userName") != null) {int page=(medicineTable.getPage()-1)*medicineTable.getLimit();medicineTable.setPage(page);List<User> users = queryService.queryUserByName(medicineTable);ajaxInfo.setMsg("查询成功");ajaxInfo.setCount(queryService.queryUserByNameCount(medicineTable));ajaxInfo.setCode(0);ajaxInfo.setData(users);} else {ajaxInfo.setCode(-2);ajaxInfo.setMsg("权限不足!请先登录~");}return ajaxInfo;}}

源码获取:博客首页 "资源" 里下载!

Java项目:医药进销存系统(java+SSM+JSP+Layui+jQuery+Maven+mysql)相关推荐

  1. Java项目:医药进销存管理系统(java+SpringBoot+HTML+Echarts+JQuery+maven+mysql)

    源码获取:博客首页 "资源" 里下载! 功能介绍 医药进销存系统,主要分两种角色:员工.客户.本系统具有进销存系统的通用性,可以修改为其它进销存系统,如家电进销存.手机进销存等: ...

  2. Java项目:图书进销存管理系统(java+SSM+JSP+bootstrap+Mysql)

    源码获取:俺的博客首页 "资源" 里下载! 项目介绍 本系统是基于SSM和bootstrap进行开发的项目.主要也是为了完成学校的学习任务,整体可能没有那么完美,练练手倒还行. 该 ...

  3. 基于java健身器材销售进销存系统

    jsp294健身器材销售进销存系统 健身器材销售进销存系统是使用JSP编程语言和Mysql数据库共同来完成的,采用面向对象方法,对健身器材管理系统进行设计与实现采用了java的web技术servlet ...

  4. Java项目:ssm+mysql医药进销存系统

    作者主页:夜未央5788 简介:Java领域优质创作者.Java项目.学习资料.技术互助 文末获取源码 功能介绍 医药进销存系统,主要功能包括: 公告管理:发布公告.公告列表: 生产管理:订单列表.增 ...

  5. javaweb JAVA JSP医院药品管理系统 JSP药品进销存系统 JSP医药进销存系统 JSP医药销售管理系统

    javaweb JAVA JSP医院药品管理系统 JSP药品进销存系统 JSP医药进销存系统 JSP医药销售管理系统 protected void doGet(HttpServletRequest r ...

  6. 计算机毕业设计Java超市货品进销存系统后台(源码+系统+mysql数据库+lw文档)

    计算机毕业设计Java超市货品进销存系统后台(源码+系统+mysql数据库+lw文档) 计算机毕业设计Java超市货品进销存系统后台(源码+系统+mysql数据库+lw文档) 本源码技术栈: 项目架构 ...

  7. 基于javaweb的商品进销存系统(java+vue+springboot+mybatis+mysql)

    基于javaweb的商品进销存系统(java+vue+springboot+mybatis+mysql) 运行环境 Java≥8.MySQL≥5.7.Node.js≥10 开发工具 后端:eclips ...

  8. JAVA毕业设计服装批发进销存系统计算机源码+lw文档+系统+调试部署+数据库

    JAVA毕业设计服装批发进销存系统计算机源码+lw文档+系统+调试部署+数据库 JAVA毕业设计服装批发进销存系统计算机源码+lw文档+系统+调试部署+数据库 本源码技术栈: 项目架构:B/S架构 开 ...

  9. 计算机毕业设计Java超市货品进销存系统前台(源码+系统+mysql数据库+lw文档)

    计算机毕业设计Java超市货品进销存系统前台(源码+系统+mysql数据库+lw文档) 计算机毕业设计Java超市货品进销存系统前台(源码+系统+mysql数据库+lw文档) 本源码技术栈: 项目架构 ...

最新文章

  1. docker 鱼龙混杂之基础操作篇
  2. 末日来临,你的编程语言能干嘛? | 每日趣闻
  3. 深入理解Android消息处理系统——Looper、Handler、Thread
  4. day07 数据类型间的相互转化及字符编码
  5. CSS如何实现内凹角效果 By 大漠
  6. MyBatis 问题(持续更新)
  7. 【Java并发编程】之八:多线程环境中安全使用集合API
  8. iptables端口转发命令
  9. 微软反垄断案新突破 Win10系统或需剥离可信计算
  10. 谷歌翻译无法连接网络_window10无法连接网络
  11. 1000道Python题库系列分享14(1道代码阅读题)
  12. javascript php 界面,js实现卡片式项目管理界面UI设计效果_javascript技巧
  13. 【PAT甲】1051 Pop Sequence (25分)判断出栈顺序的合法性
  14. 贴片电解电容47UF16V 6.3*4.5
  15. 什么是gnuplot
  16. 三星ARM Cortex-A8 S5PV210(蜂鸟)简介
  17. 企业微信 web 项目工业级蜕变
  18. HPUNIX环境常用查看硬件设备信息命令小结
  19. Win11无法保存打印机设置0x000006d9的解决方法
  20. AndroidStudo格式化快捷键(Ctrl+alt+L)失效·解决方法

热门文章

  1. C#中英文混合朗读文本代码
  2. 私密相册管家云盘计算机,‎私密相册管家 - 专业版加密密码照片和视频保险箱 di App Store...
  3. STM32WB55 在BLE_HeartRateFreeRTOS例程基础上修改成带rtos的p2ps透传服务
  4. 动态磁盘和基本磁盘的简要介绍
  5. 金丝雀发布、滚动更新、蓝绿发布到底有啥区别
  6. “区块链+物流运输业”能融合发展吗?
  7. MySQL进阶查询(SELECT 语句高级用法)
  8. 初遇初识初知接下来是什么_初识爱|《傲慢与偏见》书评
  9. DDCTF 北京地铁
  10. html圣杯布局,HTML+CSS实现圣杯布局!