作者主页:夜未央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 登录
- /**
- *
- */
- 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 {
- @Resource
- AnnexService service;
-
- /**
- * 查找所有分店的数量
- * @return 分店数量
- * @author ouyang
- * @dateTime 2017年11月28日11:23:35
- */
- @RequestMapping("/findAllSize")
- @ResponseBody
- public int findAllSize(){
- return service.findAllSize(new HashMap
()); - }
-
- /**
- * 查询所有分店
- * @param page 当前页数
- * @param limit 显示行数
- * @param annexData 查询参数
- * @param annexTime 查询创建时间
- * @return 产品集合
- * @author ouyang
- * @dateTime 2017年11月28日11:23:35
- */
- @RequestMapping("/findAll")
- @ResponseBody
- public Map
findAll(int page,int limit,String annexData,String annexTime){ - Map
map = new HashMap(); - 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
data = service.findAll(map); - int count = service.findAllSize(map);
-
- Map
mapResult = new HashMap(); - //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")
- @ResponseBody
- public 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")
- @ResponseBody
- public List
showList(){ - return service.getAnnex();
- }
-
- /**
- * 初始化加载所有分店统计图
- * @author 胡鑫
- * @date 2017年12月7日10:25:27
- * @return 返回map集合
- */
- @RequestMapping("/showChar")
- @ResponseBody
- public Map
showChar(String annexId,String year,String month){ - Map
parMap = new HashMap();//定义一个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
map = new HashMap();//定义一个HashMap用于返回jsp调用参数 - Map
shouru = service.showShouChar(parMap);//收入统计 - map.put("shouruMap", shouru);
- Map
zhichu = service.showZhiChar(parMap);//支出统计 - map.put("zhichuMap", zhichu);
- return map;
- }
- }
- /**
- *
- */
- 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 {
-
- @Resource
- private AuditService auditService;//审核记录service接口
-
- /**
- * 根据业务id查询该条业务审核记录
- * @author 胡鑫
- * @date 2017年11月30日13:48:32
- * @param purcId 采购id
- * @return 返回map集合
- */
- @ResponseBody
- @RequestMapping("/showListById")
- public List
showListById(String purcId){ - Map
parMap = new HashMap();//定义一个map集合用于传入mapper查询 - parMap.put("businessId", purcId);//存入业务id
- List
list = auditService.showListById(parMap);//执行查询方法 - return list;
- }
- }
- 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 {
- @Resource
- private ErpDepaService service;//部门service
-
- /**
- * 查询部门集合、模糊查询、分页查询
- * @author 胡鑫
- * @date 2017年10月27日11:41:26
- * @param key 查询参数
- * @param page 分页开始页数
- * @param limit 每页最大显示的行数
- * @return 返回map集合
- */
- @RequestMapping("/depaFindList")
- @ResponseBody
- public Map
depaFindList(String key,String page,String limit){ - Map
parMap = new HashMap();//定义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
map = new HashMap();//定义map 用于返回至页面 - List
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")
- @ResponseBody
- public 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")
- @ResponseBody
- public 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")
- @ResponseBody
- public 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;
- }
- }
- /**
- *
- */
- 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
- */
- @Resource
- private ErpApplyService service;
- /**
- * 查询所有供应商
- * @return 返回供应商list
- */
- @RequestMapping("findErpApply")
- @ResponseBody
- public List
findErpApply(){ - List
list =service.findErpApply();//查询供货商方法 - return list;//返回list
- }
- /**
- * 显示Or查询
- * @param keywords
- * @return map
- */
- @RequestMapping("/showList")
- @ResponseBody
- public Map
selectAll(String keywords,String page,String limit){ - Map
mapPage = new HashMap();//创建一个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
map = new HashMap();//创建一个Map集合 - List
list = service.selectAll(mapPage);//查询所有供货商信息,传过去分页参数,放入list - map.put("code", 0);
- map.put("msg", "");
- map.put("count", service.applyFindRows(mapPage));//传入分页参数,规定分页
- map.put("data", list);//传入list
- return map;//返回map
- }
- /**
- * 根据ID删除 修改状态
- * @param isva
- * @param applyId
- * @return apply
- */
- @RequestMapping("/delete")
- @ResponseBody
- public 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")
- @ResponseBody
- public ErpApply showUpdate(String applyId){
- return service.selectByPrimaryKey(applyId);//传入查询ID
- }
- /**
- * 增加或修改
- * @param record
- * @return
- */
- @RequestMapping("/addOrUpdate")
- @ResponseBody
- public 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