医药管理系统

您所在的位置:网站首页 医药信息服务包括哪些 医药管理系统

医药管理系统

2024-01-13 05:29| 来源: 网络整理| 查看: 265

github代码:https://github.com/tenglely/baseproject 医药管理系统 1. 目录 2.概述

项目背景:设计本系统,模拟医药超市的部分管理功能。业务描述:药品由专门的采购人员从医药经销商处购进医药超市,并将药品信息记录入库,顾客从超市购买药品需填写相关个人信息,每次售药需登记经办人(医药超市员工,即销售人员)的信息,以及所售药品的信息。开发环境:window10,mysql5.8, Eclipse Jee Neon

3.需求分析

功能模块 1.“信息查询”功能模块 1)查询顾客信息 2)查询经办人信息 3)查询药品信息 4)查询订单信息 注:信息查询可基于单条件查询也可基于多条件复合查询。 2.“信息录入”功能模块 1)录入顾客信息 2)录入经办人信息 3)录入药品信息 4)录入订单信息 注:信息录入时,需要考虑数据信息的完整性、有效性等。 3.“信息删除”功能模块 1)删除顾客信息 2)删除经办人信息 3)删除药品信息 4)删除订单信息 注:可单条记录删除,也可批量删除,执行该项操作时需要考虑删除所需的约束条件(如:为顾客提供服务的经办人信息不能删除,顾客已购买的药品信息不能删除)。 4.“信息修改”功能模块 1)修改顾客信息 2)修改经办人信息 3)修改药品信息 注:进行修改操作时,需要保证数据的一致性 5.“信息浏览”功能模块 1)浏览顾客信息 2)浏览经办人信息 3)浏览药品信息 4)浏览订单信息 注:通过系统提供的相关界面对client、agency、medicine等数据表中的内容进行浏览。 6.“数据报表”功能模块 1)顾客信息报表 2)经办人信息报表 3)药品信息报表 4)订单信息报表 注:按照一定的格式在相应的窗口界面上显示顾客、经办人、药品、订单等信息,并提供通过打印机打印输出的功能。 7.用户管理与用户登陆功能模块 系统可根据需要添加、删除用户,并可对已有的用户信息进行修改操作;在添加新用户时,可定义其操作权限(查询、更新、浏览、报表等权限);用户密码可进行随时修改;各种不同身份的用户登陆系统后,可享有不同的系统操作权限。

4.概念结构设计 生成基本E-R图

在这里插入图片描述 在这里插入图片描述

在这里插入图片描述 在这里插入图片描述 在这里插入图片描述 在这里插入图片描述 5.逻辑结构设计 在这里插入图片描述

6.主要模块的设计以及代码 1)给出主要模块的设计思路及关键代码,并对代码进行解释 2)详细介绍你采用的前台软件是如何链接后台数据库并操纵数据库,包括链接、前台读取修改数据、后台更新数据库等等(注意:必须结合本系统来介绍)。

登录模块:不同用户登录,将显示不同的界面。管理员跳去管理界面,经办人跳去经办人界面,录药人员跳去录药界面。 登录界面: 在这里插入图片描述 核心代码:通过用户名和密码,查询一条员工信息,如果不为null则登录,再通过sevlet层对用户类型进行判断,使其跳去相应界面 public Agency login(String username, String password) { String sql="select ano,aname,asex,aphone,aremark,apassword,aclass from agency where aname=? and apassword=? "; return super.get(sql, username,password); }

管理员界面: 在这里插入图片描述 经办人界面: 在这里插入图片描述 采购人员界面: 在这里插入图片描述

2)录入员工模块:管理员录入员工信息,定义员工用户类型(经办人,录药人员,管理员),不同用户权限功能不同 在这里插入图片描述 public int save(Agency agency) { String sql=“insert into agency(ano,aname,asex,aphone,aremark,apassword,aclass) values(?,?,?,?,?,?,?)”; return super.update(sql,agency.getAno(),agency.getAname(),agency.getAsex(),agency.getAphone(),agency.getAremark(),agency.getApassword(),agency.getAclass()); }

3)信息操作模块:管理员可以在此模块对顾客信息,员工信息,药品信息,订单信息进行查询、修改、删除操作 右侧列表: 在这里插入图片描述 顾客信息操作:点击详细查询会下滑出查询项(模糊、多值查询),右侧可进行单项删除、修改操作。点击编号可查询该用户所有订单。 在这里插入图片描述

查询顾客信息语句代码: public List getNameList(String cname) { String sql=“select cno,cname,csex,cage,caddress,cphone,cremark from client where 1=1”; sql=sql+" and cname=’"+cname+"’"; return super.getList(sql); }

@Override public List find(String csex, String cage) { String sql="select cno,cname,csex,cage,caddress,cphone,cremark from client where 1=1"; if(csex!=null && !"".equals(csex)){ sql=sql+" and csex='"+csex+"'"; } if(cage!=null && !"".equals(cage)){ int a=Integer.parseInt(cage); sql=sql+" and cage="+a; } return super.getList(sql); }

修改顾客信息语句代码: public int updateUserById(Client client) { String sql=“update client set cname=?,csex=?,cage=?,caddress=?,cphone=?,cremark=? where cno=?;”; return super.update(sql,client.getCname(),client.getCsex(),client.getCage(),client.getCaddress(),client.getCphone(),client.getCremark(),client.getCno()); } 删除顾客信息语句代码: public int deleteUserById(int id) { String sql=“delete from client where cno=?;”; return super.update(sql, id); }

员工信息操作:点击详细查询会下滑出查询项(模糊、多值查询),右侧可进行单项删除、修改操作 在这里插入图片描述 查询员工信息语句代码: public Agency get(int ano) { String sql=“select ano,aname,asex,aphone,aremark,apassword,aclass from agency where ano=?”; return super.get(sql, ano); } public List getAll() { String sql=“select ano,aname,asex,aphone,aremark,apassword,aclass from agency”; return super.getList(sql); } public List find(String aname, String aphone) { String sql=“select ano,aname,asex,aphone,aremark,apassword,aclass from agency where 1=1”; //记得空格 if(aname!=null && !"".equals(aname)){ sql=sql+" and aname like ‘%"+aname+"%’"; } if(aphone!=null && !"".equals(aphone)){ sql=sql+" and aphone like ‘%"+aphone+"%’"; } System.out.println(sql); return super.getList(sql); }

修改员工信息语句代码 public int updateUserById(Agency agency) { String sql=“update agency set aname=?,asex=?,aphone=?,aremark=?,apassword=?,aclass=? where ano=?;”; return super.update(sql,agency.getAname(),agency.getAsex(),agency.getAphone(),agency.getAremark(),agency.getApassword(),agency.getAclass(),agency.getAno()); } 删除员工信息语句代码 public int deleteUserById(int id) { String sql=“delete from agency where ano=?;”; return super.update(sql, id); }

药品信息操作:点击详细查询会下滑出查询项(模糊、多值查询),右侧可进行单项删除、修改操作(已用过的药品无法删除,点击删除会显示提示信息) 在这里插入图片描述 查询药品信息语句代码: public Medicine get(int mno) { String sql=“select mno,mname,mmode,mefficacy,mprice,mcount from medicine where mno=?”; return super.get(sql,mno); }

public List getAll() { String sql=“select mno,mname,mmode,mefficacy,mprice,mcount from medicine”; return super.getList(sql); }

public List find(String mname) { String sql=“select mno,mname,mmode,mefficacy,mprice,mcount from medicine where 1=1”; if(mname!=null&& !"".equals(mname)){ sql=sql+" and mname like ‘%"+mname+"%’"; } return super.getList(sql); } 修改药品信息语句代码: public int updateUserById(Medicine medicine) { String sql=“update medicine set mname=?,mmode=?,mefficacy=?,mprice=?,mcount=? where mno=?;”; return super.update(sql,medicine.getMname(),medicine.getMmode(),medicine.getMefficacy(),medicine.getMprice(),medicine.getMcount(),medicine.getMno()); } 删除药品信息语句代码: public int deleteUserById(int id) { String sql=“delete from medicine where mno=?;”; return super.update(sql, id); }

订单信息操作:点击详细查询会下滑出查询项(模糊、多值查询),右侧可进行单项删除操作。点击经办人编号会显示操作该订单的经办人信息,点击顾客编号会显示该订单顾客信息,点击药品编号会显示该订单所购药品信息。(当删除一个顾客所有的订单后,该顾客信息也会删除) 在这里插入图片描述 查询订单信息语句代码: public List getAll() { String sql=“select sno,ano,cno,mno,csymptom,num,price,date from buy”; return super.getList(sql); }

public List find(int ano) { String sql=“select sno,ano,cno,mno,csymptom,num,price,date from buy where 1=1”; sql=sql+" and ano="+ano; return super.getList(sql); }

public List findByCno(int cno) { String sql=“select sno,ano,cno,mno,csymptom,num,price,date from buy where 1=1”; sql=sql+" and cno="+cno; return super.getList(sql); }

public List findByMno(int mno) { String sql=“select sno,ano,cno,mno,csymptom,num,price,date from buy where 1=1”; sql=sql+" and mno="+mno; return super.getList(sql); }

public List findBySno(int sno) { String sql=“select sno,ano,cno,mno,csymptom,num,price,date from buy where 1=1”; sql=sql+" and sno="+sno; return super.getList(sql); }

public Buy get(int sno) { String sql=“select sno,ano,cno,mno,csymptom,num,price,date from buy where sno=?”; return super.get(sql, sno); }

删除订单信息语句代码: public int deleteUserById(int id) { String sql=“delete from buy where sno=?;”; return super.update(sql, id); }

4)批量删除模块:管理员对顾客信息、员工信息、药品信息、订单信息进行批量删除(勾选删除项(可全选),然后点击删除勾选项)

批量删除顾客信息界面: 在这里插入图片描述 核心代码:获取勾选的顾客信息的编号的数组,一一删除 private void delemore(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException{ String[] moreC=req.getParameterValues(“moreC”); int[] a=new int[100]; for(int i=0;i q=0; q=clientService.deleteUserById(j); } if(q==0){ req.getRequestDispatcher("/seetable?table=client").forward(req, resp); }else{ resp.sendRedirect(req.getContextPath()+"/error.jsp"); } }

批量删除员工信息界面: 在这里插入图片描述 核心代码:获取勾选的员工信息的编号的数组,一一删除 private void delemore(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException{ String[] moreA=req.getParameterValues(“moreA”); int[] a=new int[100]; for(int i=0;i q=0; q=agencyService.deleteUserById(j); } if(q==0){ req.getRequestDispatcher("/seetable?table=agency").forward(req, resp); }else{ resp.sendRedirect(req.getContextPath()+"/error.jsp"); } }

批量删除药物信息界面: 在这里插入图片描述 批量删除订单信息界面: 在这里插入图片描述 核心代码:获取勾选的订单信息的编号的数组,一一删除 private void delemore(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException{ String[] moreB=req.getParameterValues(“moreB”); int[] a=new int[100]; for(int i=0;i q=0; q=buyService.deleteUserById(j); } if(q==0){ req.getRequestDispatcher("/seetable?table=buy").forward(req, resp); }else{ resp.sendRedirect(req.getContextPath()+"/error.jsp"); } }

5)数据报表模块:管理员点击相应表,打印输出成.xml文件 在这里插入图片描述 核心代码:修改jsp头为以下,然后在内传入需导出值

6)登记模块:经办人帮顾客选择其要购买药品及数量,填写顾客信息及症状,提交 登记顾客界面: 在这里插入图片描述 核心代码:获取页面信息,生成一条顾客信息,和一条或多条订单信息(购买的一种药品为一个订单),还需减去相应药品的库存数量 private void AgencyAdd(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException{ String cname=req.getParameter(“cname”); int cage=Integer.valueOf(req.getParameter(“cage”)); String Csex=req.getParameter(“csex”); String caddress=req.getParameter(“caddress”); String cphone=req.getParameter(“cphone”); String csymptom=req.getParameter(“csymptom”); int ano=Integer.valueOf(req.getParameter(“ano”)); String cremark=req.getParameter(“cremark”); HttpSession session=req.getSession(); String num[]=(String[])session.getAttribute(“num”); Client client=new Client(); System.out.println(client.getCno()); client.setCname(cname); client.setCage(cage); client.setCsex(Csex); client.setCaddress(caddress); client.setCphone(cphone); client.setCremark(cremark); clientService.save(client); int cno = 0; List clients=clientService.getAll(); for(Client cc:clients) cno=cc.getCno(); System.out.println(cno); List list=(List)session.getAttribute(“mlist”); int j=0,i=0; for(Medicine m:list) { if(num[i]!=null&&num[i]!=""){ j=0; System.out.println(num[i]); Buy buy=new Buy(); buy.setCno(cno); buy.setCsymptom(csymptom); buy.setMno(m.getMno()); buy.setAno(ano); buy.setNum(Integer.valueOf(num[i])); Date date=new Date(); buy.setDate(date); buy.setPrice(Integer.valueOf(num[i])*m.getMprice()); System.out.println(buy); //当前库存=原来-购买的 Medicine medicine=medicineService.get(m.getMno()); int count=medicine.getMcount()-Integer.valueOf(num[i]); medicine.setMcount(count); int row=medicineService.updateUserById(medicine); j=buyService.save(buy); } i++; } if(j>0){ req.getRequestDispatcher("/findBySno.bdo?ano="+ano+"&use=‘use’").forward(req, resp); }else{ resp.sendRedirect(req.getContextPath()+"/error.jsp"); }

}

选择需买药品界面(勾选需购药品及数量,可多选): 在这里插入图片描述 7)订单记录模块:经办人可于此查看、删除自己登记过的订单信息。点击顾客编号会显示该订单顾客信息,点击药品编号会显示该订单所购药品信息。

8)录药模块:采购人员于此录入药品信息 在这里插入图片描述 录药语句代码: public int save(Medicine medicine) { String sql=“insert into medicine(mno,mname,mmode,mefficacy,mprice,mcount) values(?,?,?,?,?,?)”; return super.update(sql,medicine.getMno(),medicine.getMname(),medicine.getMmode(),medicine.getMefficacy(),medicine.getMprice(),medicine.getMcount()); }

9)管理药品模块:采购人员对药品进行删除、修改操作 在这里插入图片描述

10)员工修改信息模块:点击修改个人信息,经办人或采购人员对自身信息进行修改(用户类型不可修改,只有管理员可修改) 在这里插入图片描述 修改员工信息语句代码: public int updateUserById(Agency agency) { String sql=“update agency set aname=?,asex=?,aphone=?,aremark=?,apassword=?,aclass=? where ano=?;”; return super.update(sql,agency.getAname(),agency.getAsex(),agency.getAphone(),agency.getAremark(),agency.getApassword(),agency.getAclass(),agency.getAno()); }



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3