作者主页:夜未央5788

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

文末获取源码

功能介绍

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

公告管理:发布公告、公告列表;
生产管理:订单列表、增加生产、订单日志;
分店采购:分店审核、采购;
总店仓库:出库管理、仓库列表、入库管理;
分店管理:分店库存、分店列表、分店财务;
商品管理:原材料、药效、商品列表、药品类型;
总店采购:采购列表、采购审核;
合同管理:合同类型管理、合同列表;
会员管理:会员列表;
质检:质检;
权限管理:人员管理、模块管理、部门管理、角色管理;
审核管理:财务审核、生产审核、采购审核;
分店销售:销售统计图、订单批发审核、订单列表、分店销售;
该项目共有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 登录

运行截图

相关代码

分店action

/*** */
package com.yidu.action.annex;import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.UUID;import javax.annotation.Resource;
import javax.servlet.http.HttpSession;import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody;import com.yidu.common.Tools;
import com.yidu.model.ErpAnnex;
import com.yidu.model.ErpStaff;
import com.yidu.service.annex.AnnexService;/*** 分店action* @author ouyang* @dateTime 2017年11月16日10:39:49*/
@Controller
@RequestMapping("/annex")
public class AnnexAction {@ResourceAnnexService service;/*** 查找所有分店的数量* @return 分店数量* @author ouyang* @dateTime 2017年11月28日11:23:35*/@RequestMapping("/findAllSize")@ResponseBodypublic int findAllSize(){return service.findAllSize(new HashMap<String, Object>());}/*** 查询所有分店* @param page 当前页数* @param limit 显示行数* @param annexData 查询参数* @param annexTime 查询创建时间* @return 产品集合* @author ouyang* @dateTime 2017年11月28日11:23:35*/@RequestMapping("/findAll")@ResponseBodypublic Map<String,Object> findAll(int page,int limit,String annexData,String annexTime){Map<String, Object> map = new HashMap<String, Object>();map.put("firstRows", limit*(page-1));map.put("limit", limit);map.put("annexData", annexData);if(annexTime!=null && !"".equals(annexTime)){System.out.println("时间:"+annexTime);String str[] = annexTime.split(" "+"-"+" ");map.put("annexTime_begin", str[0]);map.put("annexTime_end", str[1]);}List<ErpAnnex> data = service.findAll(map);int count = service.findAllSize(map);Map<String,Object> mapResult = new HashMap<String, Object>();//layui数据表格需要返回的参数map.put("count", count);map.put("data", data);map.put("code",0);map.put("msg", "");return map;}/*** 增加或修改* @param annex 分店实体类* @param session HttpSession* @return 影响行数* @author ouyang* @dateTime 2017年11月28日11:23:35*/@RequestMapping("/addOrUpdate")@ResponseBodypublic int addOrUpdate(ErpAnnex annex,HttpSession session){ErpStaff staff=(ErpStaff) session.getAttribute("staff");SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");if(staff!=null){annex.setCreater(staff.getStaId());annex.setCreatetime(sdf.format(new Date()));}int row =0;if(annex.getAnnexId()!=null && !"".equals(annex.getAnnexId())){//修改row = service.updateByPrimaryKeySelective(annex);}else{//增加annex.setAnnexId(UUID.randomUUID()+"");annex.setAnnexNumber(UUID.randomUUID()+"");annex.setIsva(1);annex.setAnnexTime(sdf.format(new Date()));row = service.insertSelective(annex);}return row;}/*** 查找所有分店集合* @return 分店集合* @author ouyang* @dateTime 2017年11月28日11:23:35*/@RequestMapping("/showList")@ResponseBodypublic List<ErpAnnex> showList(){return service.getAnnex();}/*** 初始化加载所有分店统计图* @author 胡鑫* @date 2017年12月7日10:25:27* @return 返回map集合*/@RequestMapping("/showChar")@ResponseBodypublic Map<String,Object> showChar(String annexId,String year,String month){      Map<String,Object>parMap = new HashMap<String,Object>();//定义一个map集合用于sql查询参数parMap.put("annexId", annexId);//分店id主键if(Tools.isEmpty(year)){parMap.put("year", "");//年份}else{parMap.put("year", "%"+year+"%");//年份}if(Tools.isEmpty(month)){parMap.put("month", "");//月份}else{parMap.put("month", "%"+month+"%");//月份}Map<String,Object>map = new HashMap<String,Object>();//定义一个HashMap用于返回jsp调用参数Map<String,Object> shouru = service.showShouChar(parMap);//收入统计map.put("shouruMap", shouru);Map<String,Object> zhichu = service.showZhiChar(parMap);//支出统计map.put("zhichuMap", zhichu);return map;}
}

审核记录action

/*** */
package com.yidu.action.audit;import java.util.HashMap;
import java.util.List;
import java.util.Map;import javax.annotation.Resource;import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody;import com.yidu.model.ErpAudit;
import com.yidu.service.audit.AuditService;/*** 审核记录action* @author 胡鑫* @date 2017年11月30日10:27:46*/
@Controller
@RequestMapping("auditAction")
public class AuditAction {@Resourceprivate AuditService auditService;//审核记录service接口/*** 根据业务id查询该条业务审核记录* @author 胡鑫* @date 2017年11月30日13:48:32* @param purcId 采购id* @return 返回map集合*/@ResponseBody@RequestMapping("/showListById")public List<ErpAudit> showListById(String purcId){Map<String,Object>parMap = new HashMap<String,Object>();//定义一个map集合用于传入mapper查询parMap.put("businessId", purcId);//存入业务idList<ErpAudit>list = auditService.showListById(parMap);//执行查询方法return list;}
}

部门action

package com.yidu.action.depa;import java.util.HashMap;
import java.util.List;
import java.util.Map;import javax.annotation.Resource;import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody;import com.yidu.common.Tools;
import com.yidu.model.ErpDepa;
import com.yidu.service.ErpDepa.ErpDepaService;
import com.yidu.util.Pages;
import com.yidu.util.SsmMessage;/*** 部门action* @author 胡鑫* @date 2017年10月27日*/
@Controller
@RequestMapping("/depaAction")
public class DepaAction {@Resourceprivate ErpDepaService service;//部门service/*** 查询部门集合、模糊查询、分页查询* @author 胡鑫* @date 2017年10月27日11:41:26* @param key 查询参数* @param page 分页开始页数* @param limit 每页最大显示的行数* @return 返回map集合*/@RequestMapping("/depaFindList")@ResponseBodypublic Map<String,Object> depaFindList(String key,String page,String limit){Map<String,Object> parMap = new HashMap<String, Object>();//定义map 用于存放参数Pages pages = new Pages();//定义一个分页对象pages.setCurPage(Integer.valueOf(page));//设置开始的行数pages.setMaxResult(Integer.valueOf(limit));//设置每页显示的行数parMap.put("pages", pages);//将分页对象存入map集合if(Tools.isEmpty(key)){//判断查询参数是否为空parMap.put("key", "");}else{parMap.put("key", "%"+key+"%");}Map<String,Object> map = new HashMap<String, Object>();//定义map 用于返回至页面List<ErpDepa> list = service.depaFindList(parMap);//得到部门集合map.put("data", list);//存入参数map.put("count", service.depaFindListRows(parMap));map.put("msg", "");map.put("code", 0);return map;//返回map}/*** 增加or修改* @author 胡鑫* @date 2017年10月30日15:31:45* @param depa 部门实体类* @return 返回消息类*/@RequestMapping("/addOrUpdate")@ResponseBodypublic SsmMessage addOrUpdate(ErpDepa depa){SsmMessage mes = new SsmMessage();//定义一个消息类depa.setCreatetime(Tools.getCurDateTime());//设置修改时间if(Tools.isEmpty(depa.getDepaId())){//判断部门ID是否为空 为空则进行增加 否则修改int rows = service.insertSelective(depa);//执行增加方法传入部门对象if(rows>0){mes.setMes("数据提交成功..");mes.setState(1);}else{mes.setMes("数据提交失败");mes.setState(0);}}else{int rows = service.updateByPrimaryKeySelective(depa);//修改修改方法 传入部门对象if(rows>0){mes.setMes("数据修改成功");mes.setState(1);}else{mes.setMes("数据修改失败");mes.setState(0);}}return mes;}/*** 显示修改信息 根据部门id查询该部门信息* @author 胡鑫* @date 2017年10月31日09:29:56* @param depaId 部门id* @return 返回消息类*/@RequestMapping("/showUpdate")@ResponseBodypublic ErpDepa showUpdate(String depaId){return service.selectByPrimaryKey(depaId);}/*** 根据部门id删除该部门(修改该部门的状态isva为1)* @author 胡鑫* @date 2017年10月31日15:46:49* @param depaId  部门id* @return 返回消息类*/@RequestMapping("/deleteByDepaId")@ResponseBodypublic SsmMessage deleteByDepaId(String depaId){SsmMessage mes = new SsmMessage();int rows = service.deleteByDepaId(depaId);//执行删除方法(修改isva)if(rows>0){mes.setMes("删除成功");mes.setState(1);}else{mes.setMes("删除失败");mes.setState(0);}return mes;}
}

EepApplyAction

/*** */
package com.yidu.action.ErpApply;import java.util.HashMap;
import java.util.List;
import java.util.Map;import javax.annotation.Resource;import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody;import com.yidu.common.Tools;
import com.yidu.model.ErpApply;
import com.yidu.service.ErpApply.ErpApplyService;
import com.yidu.util.Pages;
/*** 供货商* @author Gjwen* 2017年11月9日-下午2:47:00*/
@Controller
@RequestMapping("EepApplyAction")
public class EepApplyAction {/*** 注入供货商Service*/@Resourceprivate  ErpApplyService service;/*** 查询所有供应商* @return 返回供应商list*/@RequestMapping("findErpApply")@ResponseBodypublic List<ErpApply> findErpApply(){List<ErpApply> list =service.findErpApply();//查询供货商方法return list;//返回list}/*** 显示Or查询* @param keywords* @return map*/@RequestMapping("/showList")@ResponseBodypublic Map<String,Object> selectAll(String keywords,String page,String limit){Map<String,Object> mapPage = new HashMap<String,Object>();//创建一个Map集合Pages pages = new Pages();//得到分页工具类pages.setCurPage(Integer.valueOf(page));//起始页pages.setMaxResult(Integer.valueOf(limit));//结束页mapPage.put("pages", pages);//传入分页参数//判断前台传过来的值是否为空,否则进行模糊查询if(keywords==null || "".equals(keywords)){mapPage.put("keywords", "");}else{mapPage.put("keywords", "%"+keywords+"%");}Map<String,Object> map = new HashMap<String,Object>();//创建一个Map集合List<ErpApply> list = service.selectAll(mapPage);//查询所有供货商信息,传过去分页参数,放入listmap.put("code", 0);map.put("msg", "");map.put("count", service.applyFindRows(mapPage));//传入分页参数,规定分页map.put("data", list);//传入listreturn map;//返回map}/*** 根据ID删除  修改状态* @param isva* @param applyId* @return apply*/@RequestMapping("/delete")@ResponseBodypublic ErpApply delete(ErpApply isva , String applyId){ErpApply apply = new ErpApply();//得到供货商模型isva.setIsva(1);//得到状态值isva.setApplyId(applyId);//传入状态值int updateIsva = service.delete(isva);//传入ID进行修改return apply;//返回apply}/*** 根据ID查询数据* @param applyId* @return*/@RequestMapping("/showUpdate")@ResponseBodypublic ErpApply showUpdate(String applyId){return service.selectByPrimaryKey(applyId);//传入查询ID}/*** 增加或修改* @param record* @return*/@RequestMapping("/addOrUpdate")@ResponseBodypublic int addOrUpdate(ErpApply record){int rows = 0;//定义参数rows为0//判断前台传过来的值是否为空,为空就进入增加,不为空则进入修改if(record.getApplyId()!=null && !"".equals(record.getApplyId())){rows = service.updateByPrimaryKeySelective(record);}else{String serial = Tools.getDateOrderNo();//得到订单编码格式:日期格式如:20161222211800,分别代表的是年月日时分秒+5位随机字符串record.setApplyNumber("GHS-"+serial);//编号rows = service.insert(record);//传入编码}return rows;//返回rows}
}

如果也想学习本系统,下面领取。关注并回复:004ssm

Java项目:ssm+mysql医药进销存系统相关推荐

  1. java基于ssm奶茶店进销存系统

    奶茶店进销存系统是为奶茶店的经营者服务的,他不仅可以提高奶茶原材料的使用率,还可以在一定程度上提高奶茶店的服务质量,本奶茶店进销存管理系统分为管理员和员工两部分 controller:项目的主要控制文 ...

  2. ssm+mysql实现进销存系统

    作者主页:夜未央5788 简介:Java领域优质创作者.Java项目.学习资料.技术互助 文末获取源码 项目介绍 进销存库存管理系统源码,采用了ssm框架,功能结构非常简单明了,界面也比较清爽大气,非 ...

  3. Java项目:医药进销存系统(java+SSM+JSP+Layui+jQuery+Maven+mysql)

    源码获取:博客首页 "资源" 里下载! 功能介绍 医药进销存系统,主要功能包括: 公告管理:发布公告.公告列表: 生产管理:订单列表.增加生产.订单日志: 分店采购:分店审核.采购 ...

  4. java毕业生设计超市货品进销存系统前台计算机源码+系统+mysql+调试部署+lw

    java毕业生设计超市货品进销存系统前台计算机源码+系统+mysql+调试部署+lw java毕业生设计超市货品进销存系统前台计算机源码+系统+mysql+调试部署+lw 本源码技术栈: 项目架构:B ...

  5. java毕业生设计超市货品进销存系统后台计算机源码+系统+mysql+调试部署+lw

    java毕业生设计超市货品进销存系统后台计算机源码+系统+mysql+调试部署+lw java毕业生设计超市货品进销存系统后台计算机源码+系统+mysql+调试部署+lw 本源码技术栈: 项目架构:B ...

  6. SSM的医药管理系统ssm医药系统ssm药品管理系统ssm医药进销存系统医院JSP药品管理系统ssm药品进销存系统1

    SSM的医药管理系统ssm医药系统ssm药品管理系统ssm医药进销存系统医院JSP药品管理系统ssm药品进销存系统1 开发语言:Java 开发工具:Myeclispe /Eclipse 数据库:MYS ...

  7. SSM的医药管理系统ssm医药系统ssm药品管理系统ssm医药进销存系统医院JSP药品管理系统ssm药品进销存系统

    SSM的医药管理系统ssm医药系统ssm药品管理系统ssm医药进销存系统医院JSP药品管理系统ssm药品进销存系统 开发语言:Java 开发工具:Myeclispe /Eclipse 数据库:MYSQ ...

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

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

  9. JAVA计算机毕业设计超市货品进销存系统前台Mybatis+源码+数据库+lw文档+系统+调试部署

    JAVA计算机毕业设计超市货品进销存系统前台Mybatis+源码+数据库+lw文档+系统+调试部署 JAVA计算机毕业设计超市货品进销存系统前台Mybatis+源码+数据库+lw文档+系统+调试部署 ...

最新文章

  1. android点击展开textview,《Android APP可能有的东西》之UI篇:展开TextView全文
  2. JAVA 和JAVAC命令行
  3. 094、Swarm 中最重要的概念(Swarm01)
  4. 关于如何在Nomad中保护工作部署的工作流的简要历史
  5. AI基础:Numpy简易入门
  6. ubuntu下安装openfetion
  7. python的序列包括字符串列表和什么_Python基础:03序列:字符串、列表和元组
  8. python 异常回溯_关于python:在循环中捕获异常回溯,然后在脚本末尾引发错误...
  9. IBM交付第25000个高端磁盘存储方案
  10. 输入单个空格字符_字符美化丶替换丶转换
  11. 大数据奏鸣曲,听出了什么?
  12. C语言:简单实现图书管理系统
  13. centos是什么操作系统
  14. 1996年考研数学一解析pdf
  15. 计算机中1kb等于多少字节,1kb等于多少个字节
  16. 微信如何html动图文件,微信里的gif动态图片如何导出保存出来?看完本文你就知道了...
  17. 花生壳域名申请、内网映射到树莓派及与微信公众号对接
  18. 【SpringBoot】自定义starter实现详解
  19. 【MM模块】Physical Inventory  库存盘点流程
  20. WebService的简单案例记录(Java)

热门文章

  1. C语言中,#include的用法:#include 和 #include区别
  2. 开源项目:BottomBar
  3. 我理解的云桌面(或桌面云)
  4. android开发关机代码,android代码实现关机
  5. java计算机毕业设计东理咨询交流论坛源码+系统+lw文档+mysql数据库+部署
  6. YOLOV1-目标检测综述
  7. keep-alive是什么?
  8. MATLAB:巴特沃斯低通滤波器过滤信号
  9. php 限制微信登陆,thinkphp 微信用户登录 设置问题
  10. conda虚拟环境下使用pip安装包报错Retrying (Retry(total=0, connect=None, read=None, redirect=None, status=None)