当前位置:   article > 正文

Java项目:springboot医药进销存管理系统

Java项目:springboot医药进销存管理系统

作者主页:夜未央5788

 简介: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.是否Maven项目: 是;查看源码目录中是否包含pom.xml;若包含,则为maven项目,否则为非maven项目 

6.数据库:MySql 5.7版本;

系统框架

1.后端:SpringBoot

2.前端:HTML+Echarts+JQuery

使用说明

1. 使用IDEA/Eclipse/MyEclipse导入后端项目源码,Eclipse/MyEclipse导入时,若为maven项目请选择maven;

若为maven项目,导入成功后请执行maven clean;maven install命令,配置tomcat,然后运行;

2. 使用Navicat或者其它工具,在mysql中创建对应名称的数据库,并导入项目的sql文件;
3. 运行项目前,需要配置好MqSQL数据库,在application.properties中修改数据库对应的配置文件;
4. 配置Tomcat,在Tomcat中运行后端项目;
5. 运行成功后,在浏览器中访问:http://localhost:8888
6. 客户和员工对应数据库表t_customers和t_employees表,用户名是手机号,密码也是对应的手机号
客户账号:15133480838 密码:15133480838

员工账号:15133330551 密码:15133330551

运行截图

功能介绍

医药进销存系统,主要分两种角色:员工、客户。本系统具有进销存系统的通用性,可以修改为其它进销存系统,如家电进销存、手机进销存等;

员工登录后主要功能模块有:
我的面板:个人信息、修改信息、修改密码;
员工管理:员工添加、员工查询;
药品管理:药品类别添加、药品类别查询、药品添加、药品查询;
客户管理:客户查询;
供货商管理:供货商添加、供货商查询;
账单管理:进货添加、进货查询、退货账单、销售账单查询;
客户登录后主要功能模块有:
我的面板:个人信息、修改信息、修改密码;

购买药品:药品展示、已购药品;

演示视频:点此查看

由于本程序规模不大,可供课程设计,毕业设计学习演示之用

更多项目源码,请到“源码空间站”,地址:http://www.shuyue.fun/

环境需要

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.后端:SpringBoot

2.前端:HTML+Echarts+JQuery

使用说明

1. 使用IDEA/Eclipse/MyEclipse导入后端项目源码,Eclipse/MyEclipse导入时,若为maven项目请选择maven;

若为maven项目,导入成功后请执行maven clean;maven install命令,配置tomcat,然后运行;

2. 使用Navicat或者其它工具,在mysql中创建对应名称的数据库,并导入项目的sql文件;
3. 运行项目前,需要配置好MqSQL数据库,在application.properties中修改数据库对应的配置文件;
4. 配置Tomcat,在Tomcat中运行后端项目;
5. 运行成功后,在浏览器中访问:http://localhost:8888
6. 客户和员工对应数据库表t_customers和t_employees表,用户名是手机号,密码也是对应的手机号
客户账号:15133480838 密码:15133480838

员工账号:15133330551 密码:15133330551

运行截图

 

 

 

 

 

 

 

 

 代码相关

用户管理控制器

  1. @RestController //相当于配置文件(Controller,ResponseBody)
  2. @RequestMapping("/customer")
  3. public class CustomerController extends BaseController {
  4. @Autowired //自动装配
  5. private ICustomerService customerService;
  6. /**
  7. * 注册用户
  8. * @param user
  9. * @return 返回成功
  10. */
  11. @RequestMapping("/reg")
  12. public ResponseResult<Void> reg(Customer customer) {
  13. customerService.reg(customer);
  14. return new ResponseResult<Void>(SUCCESS);
  15. }
  16. /**
  17. * 登录
  18. * @param username
  19. * @param password
  20. * @return
  21. */
  22. @PostMapping("/login")
  23. public ResponseResult<Customer> login(String phone,String password,HttpSession session) {
  24. Customer customer = customerService.getloginCustomer(phone, password);
  25. session.setAttribute( "user", customer );
  26. session.setAttribute( "uid", customer.getUid());
  27. session.setAttribute( "username", customer.getUsername() );
  28. return new ResponseResult<Customer>(SUCCESS,customer);
  29. }
  30. /**
  31. * 查询客户数据,多条件查询
  32. * @param drugCategory
  33. * @return
  34. * @throws JsonProcessingException
  35. */
  36. @RequestMapping("/selectCustomer")
  37. public ResponseResult<PaginationVO<Customer>> selectCustomer
  38. (String username,String gender,String address,String pageNoStr,String pageSizeStr) throws JsonProcessingException {
  39. //获取参数
  40. long pageNo = 1; //如果没有传数据,默认为第一页
  41. if( pageNoStr != null && pageNoStr.trim().length()>0 ){
  42. pageNo = Long.parseLong(pageNoStr);
  43. }
  44. int pageSize = 1; //如果没有传数据,默认为10条数据
  45. if( pageSizeStr != null && pageSizeStr.trim().length()>0 ){
  46. pageSize = Integer.parseInt(pageSizeStr);
  47. }
  48. long beginNo = (pageNo-1)*pageSize;
  49. Map<String ,Object> map = new HashMap<String ,Object>();
  50. map.put("beginNo", beginNo);
  51. map.put("pageSize", pageSize);
  52. map.put("username", username);
  53. map.put("gender", gender);
  54. map.put("address", address);
  55. PaginationVO<Customer> vo = customerService.getSelectCustomer(map);
  56. return new ResponseResult<PaginationVO<Customer>>(SUCCESS,vo);
  57. }
  58. /**
  59. * 删除客户数据
  60. * @param uid
  61. * @param session
  62. * @return
  63. */
  64. @RequestMapping("/deleteCustomer")
  65. public ResponseResult<Void> deleteCustomer(Integer uid,HttpSession session){
  66. String username = (String) session.getAttribute("username");
  67. customerService.getdeleteId(uid, username);
  68. return new ResponseResult<Void>(SUCCESS);
  69. }
  70. /**
  71. * 修改客户数据
  72. */
  73. @RequestMapping("/updateCustomer")
  74. public ResponseResult<Void> updateCustomer(Customer customer,HttpSession session){
  75. String username = (String) session.getAttribute("username");
  76. customerService.getupdateCustomer(customer, username);
  77. return new ResponseResult<Void>(SUCCESS);
  78. }
  79. /**
  80. * 展示个人信息
  81. */
  82. @RequestMapping("/getfindByUid")
  83. public ResponseResult<Customer> getfindByUid(Integer uid){
  84. Customer customer = customerService.getfindByUid(uid);
  85. return new ResponseResult<Customer>(SUCCESS,customer);
  86. }
  87. /**
  88. * 修改密码
  89. */
  90. @RequestMapping("/getfindByUidPassword")
  91. public ResponseResult<Void> getfindByUidPassword(Integer uid,HttpSession session,String oldPassword,String newPassword){
  92. String username = (String) session.getAttribute("username");
  93. customerService.getfindByUidPassword(uid, username, oldPassword, newPassword);
  94. return new ResponseResult<Void>(SUCCESS);
  95. }
  96. /**
  97. * 上传头像
  98. * @param request
  99. * @param file
  100. * @return MultipartFile file
  101. */
  102. @RequestMapping("/change_avatar")
  103. public ResponseResult<String> changeAvatar(HttpServletRequest request,@RequestParam("file") MultipartFile file){
  104. if(file.isEmpty()) {
  105. throw new FileEmptyException("上传头像错误!上传文件不能为空!");
  106. }
  107. if(!UPLOAD_CONTENT_TYPE.contains(file.getContentType())) {
  108. throw new FileContentTypeException("上传头像错误!不支持所选的文件类型!");
  109. }
  110. if(file.getSize()>UPLOAD_MAX_SIZE) {
  111. throw new FileSizeException("上传文件过大!请选择小于"+UPLOAD_MAX_SIZE+"的文件!");
  112. }
  113. String parentPath = request.getServletContext().getRealPath(UPLOAD_DIR);
  114. File parent = new File(parentPath);
  115. if(!parent.exists()) {
  116. parent.mkdirs();
  117. }
  118. String originalFilename = file.getOriginalFilename();
  119. //使用系统纳秒值给头像命名
  120. //String prefic = System.nanoTime()+"";
  121. //使用uid+username为头像文件命名,新头像会将旧头像替换
  122. HttpSession session = request.getSession();
  123. String prefic = session.getAttribute("uid").toString()+session.getAttribute("username").toString();
  124. int beginIndex = originalFilename.lastIndexOf(".");
  125. String suffix = "";
  126. if(beginIndex > 0) {
  127. suffix = originalFilename.substring(beginIndex);
  128. }
  129. String filename = prefic+suffix;
  130. File dest = new File(parent,filename);
  131. try {
  132. file.transferTo(dest);
  133. } catch (IllegalStateException e) {
  134. e.printStackTrace();
  135. throw new FileIllegalStateException("上传头像错误!存储头像文件时状态异常!");
  136. } catch (IOException e) {
  137. e.printStackTrace();
  138. throw new FileIOException("上传头像错误!读写文件时出现错误!");
  139. }
  140. Integer uid = getUidFromSession(session);
  141. String avatar = "/"+UPLOAD_DIR+"/"+filename;
  142. customerService.changeAvatar(avatar,uid);
  143. return new ResponseResult<String>(SUCCESS,avatar);
  144. }
  145. /**
  146. * 查询客户的数量
  147. */
  148. @RequestMapping("/selectIdCount")
  149. public ResponseResult<Long> selectIdCount(){
  150. Long count = customerService.getselectIdCount();
  151. return new ResponseResult<Long>(SUCCESS,count);
  152. }
  153. /**
  154. * 图表展示,客户流量,输入年份,展示该年每一个月的客户注册量
  155. * @param createdTime
  156. * @return
  157. */
  158. @RequestMapping("/selectYearTime")
  159. public ResponseResult<List<CustomerTime>> selectYearTime(String createdTime){
  160. String str = createdTime.substring(0, createdTime.indexOf("-"));
  161. Map<String,Object> map = new HashMap<String,Object>();
  162. map.put("createdTime", str);
  163. List<CustomerTime> customerTimeList = customerService.getselectYearMonth(map);
  164. return new ResponseResult<List<CustomerTime>>(SUCCESS,customerTimeList);
  165. }
  166. }

药品管理控制器

  1. @RestController
  2. @RequestMapping("/drug")
  3. public class DrugController extends BaseController{
  4. @Autowired //自动装配
  5. private IDrugService drugService;
  6. @Autowired //自动装配
  7. private IDrugCategoryService drugCategoryService;
  8. /**
  9. * 添加数据。药品类别信息
  10. * @param user
  11. * @return 返回成功
  12. */
  13. @RequestMapping("/addDrug")
  14. public ResponseResult<Void> addDrug(Drug drug,HttpSession session) {
  15. String username = (String) session.getAttribute("username");
  16. drugService.addDrug(drug, username);
  17. return new ResponseResult<Void>(SUCCESS);
  18. }
  19. /**
  20. * 为添加药品时,药品类别选择所设计
  21. * @return
  22. */
  23. @RequestMapping("/selectDrugCategory")
  24. public ResponseResult<List<DrugCategory>> selectDrugCategory(){
  25. List<DrugCategory> list = drugCategoryService.getfindByCategoryIdCategoryName();
  26. return new ResponseResult<List<DrugCategory>>(SUCCESS,list);
  27. }
  28. /**
  29. * 查询药品数据(关联查询)药品类别表,后期改为多条件查询
  30. * @param drugCategory
  31. * @return
  32. * @throws JsonProcessingException
  33. */
  34. @RequestMapping("/selectDrug")
  35. public ResponseResult<PaginationVO<DrugANDDrugCategory>> selectDrug(String drugName,String unit,String origin,Integer categoryId,String pageNoStr,String pageSizeStr) throws JsonProcessingException {
  36. //获取参数
  37. long pageNo = 1; //如果没有传数据,默认为第一页
  38. if( pageNoStr != null && pageNoStr.trim().length()>0 ){
  39. pageNo = Long.parseLong(pageNoStr);
  40. }
  41. int pageSize = 1; //如果没有传数据,默认为10条数据
  42. if( pageSizeStr != null && pageSizeStr.trim().length()>0 ){
  43. pageSize = Integer.parseInt(pageSizeStr);
  44. }
  45. long beginNo = (pageNo-1)*pageSize;
  46. Map<String ,Object> map = new HashMap<String ,Object>();
  47. map.put("drugName", drugName);
  48. map.put("unit", unit);
  49. map.put("origin", origin);
  50. map.put("beginNo", beginNo);
  51. map.put("categoryId", categoryId);
  52. map.put("pageSize", pageSize);
  53. PaginationVO<DrugANDDrugCategory> vo = drugService.getselectDrug(map);
  54. return new ResponseResult<PaginationVO<DrugANDDrugCategory>>(SUCCESS,vo);
  55. }
  56. /**
  57. * 根据uid查询药品全部数据
  58. * @param uid
  59. * @return
  60. */
  61. @RequestMapping("/findId")
  62. public ResponseResult<Drug> getfindId(Integer id){
  63. Drug data = drugService.getfindId(id);
  64. return new ResponseResult<Drug>(SUCCESS,data);
  65. };
  66. /**
  67. * 修改药品数据
  68. * @param drug
  69. * @param session
  70. * @return
  71. */
  72. @RequestMapping("/updateIdDrug")
  73. public ResponseResult<Void> updateIdDrug(Drug drug,HttpSession session) {
  74. String username = (String) session.getAttribute("username");
  75. drugService.getupdateIdDrug(drug, username);
  76. return new ResponseResult<Void>(SUCCESS);
  77. }
  78. /**
  79. * 根据id删除药品数据
  80. * @param id
  81. * @param session
  82. * @return
  83. */
  84. @RequestMapping("/deleteIdDrug")
  85. public ResponseResult<Void> deleteIdDrug(String id,HttpSession session) {
  86. String[] ids = id.split(",");
  87. String username = (String) session.getAttribute("username");
  88. drugService.getdeleteIdDrug(ids, username);
  89. return new ResponseResult<Void>(SUCCESS);
  90. }
  91. /**
  92. * 查询药品的数量
  93. */
  94. @RequestMapping("/selectIdCount")
  95. public ResponseResult<Long> selectIdCount(){
  96. Long count = drugService.getselectIdCount();
  97. return new ResponseResult<Long>(SUCCESS,count);
  98. }
  99. }

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

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/不正经/article/detail/316891
推荐阅读
相关标签
  

闽ICP备14008679号