diff --git a/src/com/dims/zhushi b/src/com/dims/zhushi new file mode 100644 index 0000000..fb00dab --- /dev/null +++ b/src/com/dims/zhushi @@ -0,0 +1,1335 @@ +package com.dims.domain; + +public class Admin { // 库存管理员 + String Ano; // 编号 + String Aname; // 姓名 + boolean Asex; // 性别 (1 为男,0 为女) + int Aage; // 年龄 + String Apwd; // 登陆密码 + + public String getAno() { + return Ano; + } + + public void setAno(String ano) { + Ano = ano; + } + + public String getAname() { + return Aname; + } + + public void setAname(String aname) { + Aname = aname; + } + + public boolean isAsex() { + return Asex; + } + + public void setAsex(boolean asex) { + Asex = asex; + } + + public int getAage() { + return Aage; + } + + public void setAage(int aage) { + Aage = aage; + } + + public String getApwd() { + return Apwd; + } + + public void setApwd(String apwd) { + Apwd = apwd; + } + + @Override + public String toString() { + return "Admin [Ano=" + Ano + ", Aname=" + Aname + ", Asex=" + Asex + ", Aage=" + Aage + ", Apwd=" + Apwd + "]"; + } +} +package com.dims.domain; + +import java.util.Date; + +public class DestroyedDrug { // 已销毁药品 + String PDno; // 编号 + String PDname; // 名称 + int PDlife; // 保质期 (天数) + Date PDbatch; // 批次 (生产日期) + int PDnum; // 数量 + String Sno; // 供应商编号 + String SAno; // 入库库存管理员编号 + Date Stime; // 入库时间 + String DAno; // 销毁库存管理员编号 + Date Dtime; // 销毁时间 + + public String getPDno() { + return PDno; + } + + public void setPDno(String pDno) { + PDno = pDno; + } + + public String getPDname() { + return PDname; + } + + public void setPDname(String pDname) { + PDname = pDname; + } + + public int getPDlife() { + return PDlife; + } + + public void setPDlife(int pDlife) { + PDlife = pDlife; + } + + public Date getPDbatch() { + return PDbatch; + } + + public void setPDbatch(Date pDbatch) { + PDbatch = pDbatch; + } + + public int getPDnum() { + return PDnum; + } + + public void setPDnum(int pDnum) { + PDnum = pDnum; + } + + public String getSno() { + return Sno; + } + + public void setSno(String sno) { + Sno = sno; + } + + public String getSAno() { + return SAno; + } + + public void setSAno(String sAno) { + SAno = sAno; + } + + public Date getStime() { + return Stime; + } + + public void setStime(Date stime) { + Stime = stime; + } + + public String getDAno() { + return DAno; + } + + public void setDAno(String dAno) { + DAno = dAno; + } + + public Date getDtime() { + return Dtime; + } + + public void setDtime(Date dtime) { + Dtime = dtime; + } + + @Override + public String toString() { + return "DestroyedDrug [PDno=" + PDno + ", PDname=" + PDname + ", PDlife=" + PDlife + ", PDbatch=" + PDbatch + + ", PDnum=" + PDnum + ", Sno=" + Sno + ", SAno=" + SAno + ", Stime=" + Stime + ", DAno=" + DAno + + ", Dtime=" + Dtime + "]"; + } +} +package com.dims.domain; + +public class Doctor { // 医生 + String Dno; // 编号 + String Dname; // 姓名 + boolean Dsex; // 性别 (1 为男,0 为女) + int Dage; // 年龄 + String Dpwd; // 登陆密码 + + public String getDno() { + return Dno; + } + + public void setDno(String dno) { + Dno = dno; + } + + public String getDname() { + return Dname; + } + + public void setDname(String dname) { + Dname = dname; + } + + public boolean isDsex() { + return Dsex; + } + + public void setDsex(boolean dsex) { + Dsex = dsex; + } + + public int getDage() { + return Dage; + } + + public void setDage(int dage) { + Dage = dage; + } + + public String getDpwd() { + return Dpwd; + } + + public void setDpwd(String dpwd) { + Dpwd = dpwd; + } + + @Override + public String toString() { + return "Doctor [Dno=" + Dno + ", Dname=" + Dname + ", Dsex=" + Dsex + ", Dage=" + Dage + ", Dpwd=" + Dpwd + "]"; + } +} +package com.dims.domain; + +import java.util.List; + +public class Drug { // 药品 + String PDno; // 编号 + String PDname; // 名称 + int PDlife; // 保质期 (天数) + int PDnum; // 数量 + List inventoryDrugs; // 库存药品 + List destroyedDrugs; // 已销毁药品 + + public String getPDno() { + return PDno; + } + + public void setPDno(String pDno) { + PDno = pDno; + } + + public String getPDname() { + return PDname; + } + + public void setPDname(String pDname) { + PDname = pDname; + } + + public int getPDlife() { + return PDlife; + } + + public void setPDlife(int pDlife) { + PDlife = pDlife; + } + + public int getPDnum() { + return PDnum; + } + + public void setPDnum(int pDnum) { + PDnum = pDnum; + } + + public List getInventoryDrugs() { + return inventoryDrugs; + } + + public void setInventoryDrugs(List inventoryDrugs) { + this.inventoryDrugs = inventoryDrugs; + } + + public List getDestroyedDrugs() { + return destroyedDrugs; + } + + public void setDestroyedDrugs(List destroyedDrugs) { + this.destroyedDrugs = destroyedDrugs; + } + + @Override + public String toString() { + return "Drug [PDno=" + PDno + ", PDname=" + PDname + ", PDlife=" + PDlife + ", PDnum=" + PDnum + + ", inventoryDrugs=" + inventoryDrugs + ", destroyedDrugs=" + destroyedDrugs + "]"; + } +} +package com.dims.domain; + +import java.util.Date; + +public class InventoryDrug { // 库存药品 + String PDno; // 编号 + String PDname; // 名称 + int PDlife; // 保质期 (天数) + Date PDbatch; // 批次 (生产日期) + int PDnum; // 数量 + String Sno; // 供应商编号 + String SAno; // 入库库存管理员编号 + Date Stime; // 入库时间 + + public String getPDno() { + return PDno; + } + + public void setPDno(String pDno) { + PDno = pDno; + } + + public String getPDname() { + return PDname; + } + + public void setPDname(String pDname) { + PDname = pDname; + } + + public int getPDlife() { + return PDlife; + } + + public void setPDlife(int pDlife) { + PDlife = pDlife; + } + + public Date getPDbatch() { + return PDbatch; + } + + public void setPDbatch(Date pDbatch) { + PDbatch = pDbatch; + } + + public int getPDnum() { + return PDnum; + } + + public void setPDnum(int pDnum) { + PDnum = pDnum; + } + + public String getSno() { + return Sno; + } + + public void setSno(String sno) { + Sno = sno; + } + + public String getSAno() { + return SAno; + } + + public void setSAno(String sAno) { + SAno = sAno; + } + + public Date getStime() { + return Stime; + } + + public void setStime(Date stime) { + Stime = stime; + } + + @Override + public String toString() { + return "InventoryDrug [PDno=" + PDno + ", PDname=" + PDname + ", PDlife=" + PDlife + ", PDbatch=" + PDbatch + + ", PDnum=" + PDnum + ", Sno=" + Sno + ", SAno=" + SAno + ", Stime=" + Stime + "]"; + } +} +package com.dims.domain; + +public class Nurse { // 发药处护士 + String Nno; // 编号 + String Nname; // 姓名 + boolean Nsex; // 性别 (1 为男,0 为女) + int Nage; // 年龄 + String Npwd; // 登录密码 + + public String getNno() { + return Nno; + } + + public void setNno(String nno) { + Nno = nno; + } + + public String getNname() { + return Nname; + } + + public void setNname(String nname) { + Nname = nname; + } + + public boolean isNsex() { + return Nsex; + } + + public void setNsex(boolean nsex) { + Nsex = nsex; + } + + public int getNage() { + return Nage; + } + + public void setNage(int nage) { + Nage = nage; + } + + public String getNpwd() { + return Npwd; + } + + public void setNpwd(String npwd) { + Npwd = npwd; + } + + @Override + public String toString() { + return "Nurse [Nno=" + Nno + ", Nname=" + Nname + ", Nsex=" + Nsex + ", Nage=" + Nage + ", Npwd=" + Npwd + "]"; + } +} +package com.dims.domain; + +import java.util.Date; +import java.util.List; + +public class Prescription { + int Pno; // 编号 + String Pid; // 病人身份证号码 + String Dno; // 开出医生编号 + Date Ptime; // 开出时间 + String Nno; // 处理护士编号 + Date Htime; // 处理时间 + boolean Pstate; // 状态 (1 为已处理,0 为未处理) + List Drugs; // 处方包含的药品 + + public int getPno() { + return Pno; + } + + public void setPno(int pno) { + Pno = pno; + } + + public String getPid() { + return Pid; + } + + public void setPid(String pid) { + Pid = pid; + } + + public String getDno() { + return Dno; + } + + public void setDno(String dno) { + Dno = dno; + } + + public Date getPtime() { + return Ptime; + } + + public void setPtime(Date ptime) { + Ptime = ptime; + } + + public String getNno() { + return Nno; + } + + public void setNno(String nno) { + Nno = nno; + } + + public Date getHtime() { + return Htime; + } + + public void setHtime(Date htime) { + Htime = htime; + } + + public boolean isPstate() { + return Pstate; + } + + public void setPstate(boolean pstate) { + Pstate = pstate; + } + + public List getDrugs() { + return Drugs; + } + + public void setDrugs(List drugs) { + Drugs = drugs; + } + + @Override + public String toString() { + return "Prescription [Pno=" + Pno + ", Pid=" + Pid + ", Dno=" + Dno + ", Ptime=" + Ptime + ", Nno=" + Nno + + ", Htime=" + Htime + ", Pstate=" + Pstate + ", Drugs=" + Drugs + "]"; + } +} +package com.dims.domain; + +public class Supplier { // 供应商 + String Sno; // 编号 + String Sname; // 名称 + String Saddr; // 地址 + String Sphone; // 电话 + + public String getSno() { + return Sno; + } + + public void setSno(String sno) { + Sno = sno; + } + + public String getSname() { + return Sname; + } + + public void setSname(String sname) { + Sname = sname; + } + + public String getSaddr() { + return Saddr; + } + + public void setSaddr(String saddr) { + Saddr = saddr; + } + + public String getSphone() { + return Sphone; + } + + public void setSphone(String sphone) { + Sphone = sphone; + } + + @Override + public String toString() { + return "Supplier [Sno=" + Sno + ", Sname=" + Sname + ", Saddr=" + Saddr + ", Sphone=" + Sphone + "]"; + } +} +package com.dims.domain; + +public class User { // 用户 + public enum Role { + ADMIN, DOCTOR, NURSE + }; + + Role role; // 角色 + String no; // 编号 + String pwd; // 登陆密码 + + public Role getRole() { + return role; + } + + public void setRole(Role role) { + this.role = role; + } + + public String getNo() { + return no; + } + + public void setNo(String no) { + this.no = no; + } + + public String getPwd() { + return pwd; + } + + public void setPwd(String pwd) { + this.pwd = pwd; + } + + @Override + public String toString() { + return "User [role=" + role + ", no=" + no + ", pwd=" + pwd + "]"; + } +} +package com.dims.mapper; + +import java.util.List; + +import com.dims.domain.Admin; +import com.dims.domain.DestroyedDrug; +import com.dims.domain.Drug; +import com.dims.domain.InventoryDrug; +import com.dims.domain.Supplier; +import com.dims.domain.User; + +public interface AdminMapper { + public Admin login(User user); // 登录 + + public int countLowInventoryDrugs(); // 统计量少的库存药品种数 + + public int countClose2ExpiryPDbatches(); // 统计临期库存药品批数 + + public int countInventoryDrugs(); // 统计库存药品种数 + + public int countInventoryPDbatches(); // 统计库存药品批数 + + public int countDestroyedPDbatches(); // 统计销毁药品批数 + + public int countMyInventoryPDbatches(Admin amdin); // 统计由该名库存管理员入库的库存药品批数 + + public int countMyPDbatches(Admin admin); // 统计由该名库存管理员入库的药品总批数 + + public int countMyDestoryedPDbatches(Admin admin); // 统计由该名库存管理员销毁 (出库) 的销毁药品批数 + + public List queryAllDrugs(); // 查看药品库存列表 + + public List querySpecificPDbatches(Drug drug); // 查看某一药品的所有库存批次 + + public List queryAllDestroyedPDbatches(); // 查看已销毁药品批次列表 + + public List querySpecificDestroyedPDbatches(Drug drug); // 参看某一药品的所有已销毁批次 + + public List queryLowInventoryDrugs(); // 查看量少的库存药品列表 + + public List queryClose2ExpiryPDbatches(); // 查看临期库存药品列表 + + public List queryAllSuppliers(); // 查看药品供应商列表 + + public void addNewPDbatch(InventoryDrug newPDbatch); // 药品入库 / 添加一条库存药品记录 + + public void changeApwd(String Apwd, String Ano); // 修改登录密码 +} +package com.dims.mapper; + +import java.util.List; + +import com.dims.domain.Doctor; +import com.dims.domain.Drug; +import com.dims.domain.User; + +public interface DoctorMapper { + public Doctor login(User user); // 登录 + + public List queryAllDrugs(); // 查看药品库存列表 + + public void changeDpwd(String Dpwd, String Dno); // 修改登录密码 +} +package com.dims.mapper; + +import java.util.List; + +import com.dims.domain.Drug; +import com.dims.domain.InventoryDrug; +import com.dims.domain.Nurse; +import com.dims.domain.Prescription; +import com.dims.domain.User; + +public interface NurseMapper { + public Nurse login(User user); // 登录 + + public int countUnsolvedRxs(); // 统计未处理处方数目 + + public int countSolvedRxs(); // 统计已处理处方数目 + + public int countMySolvedRxs(Nurse nurse); // 统计由该名护士处理的处方数目 + + public List queryAllDrugs(); // 查看药品库存列表 + + public List queryAllPDbatches(Drug drug); // 查看某一药品的所有库存批次 + + public List queryAllUnsolvedRxs(); // 查看未处理处方列表 + + public List queryAllSolvedRxs(); // 查看已处理处方列表 + + public Prescription queryOneRx(Prescription rx); // 查看某一处方的具体明细 + + public List queryAllContainedDrugs(Prescription rx); // 查看某一处方包含的所有药品 + + public void changeNpwd(String Npwd, String Nno); // 修改登录密码 +} +package com.dims.mapper; + +public interface UserMapper { + +} +package com.dims.service.impl; + +import java.util.List; + +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; + +import com.dims.domain.Admin; +import com.dims.domain.DestroyedDrug; +import com.dims.domain.Drug; +import com.dims.domain.InventoryDrug; +import com.dims.domain.Supplier; +import com.dims.domain.User; +import com.dims.mapper.AdminMapper; +import com.dims.service.IAdminService; + +@Service +public class AdminServiceImpl implements IAdminService { + @Autowired + AdminMapper adminMapper; + + @Override + public Admin login(User user) { // 登录 + return adminMapper.login(user); + } + + @Override + public int countLowInventoryDrugs() { // 统计量少的库存药品种数 + return adminMapper.countLowInventoryDrugs(); + } + + @Override + public int countClose2ExpiryPDbatches() { // 统计临期库存药品批数 + return adminMapper.countClose2ExpiryPDbatches(); + } + + @Override + public int countInventoryDrugs() { // 统计库存药品种数 + return adminMapper.countInventoryDrugs(); + } + + @Override + public int countInventoryPDbatches() { // 统计库存药品批数 + return adminMapper.countInventoryPDbatches(); + } + + @Override + public int countDestroyedPDbatches() { // 统计销毁药品批数 + return adminMapper.countDestroyedPDbatches(); + } + + @Override + public int countMyInventoryPDbatches(Admin amdin) { // 统计由该名库存管理员入库的库存药品批数 + return adminMapper.countMyInventoryPDbatches(amdin); + } + + @Override + public int countMyPDbatches(Admin admin) { // 统计由该名库存管理员入库的药品总批数 + return adminMapper.countMyPDbatches(admin); + } + + @Override + public int countMyDestoryedPDbatches(Admin admin) { // 统计由该名库存管理员销毁 (出库) 的销毁药品批数 + return adminMapper.countMyDestoryedPDbatches(admin); + } + + @Override + public List queryAllDrugs() { // 查看药品库存列表 + return adminMapper.queryAllDrugs(); + } + + @Override + public List querySpecificPDbatches(Drug drug) { // 查看某一药品的所有库存批次 + return adminMapper.querySpecificPDbatches(drug); + } + + @Override + public List queryAllDestroyedPDbatches() { // 查看已销毁药品批次列表 + return adminMapper.queryAllDestroyedPDbatches(); + } + + @Override + public List querySpecificDestroyedPDbatches(Drug drug) { // 参看某一药品的所有已销毁批次 + return adminMapper.querySpecificDestroyedPDbatches(drug); + } + + @Override + public List queryLowInventoryDrugs() { // 查看量少的库存药品列表 + return adminMapper.queryLowInventoryDrugs(); + } + + @Override + public List queryClose2ExpiryPDbatches() { // 查看临期库存药品列表 + return adminMapper.queryClose2ExpiryPDbatches(); + } + + @Override + public List queryAllSuppliers() { // 查看药品供应商列表 + return adminMapper.queryAllSuppliers(); + } + + @Override + public void addNewPDbatch(InventoryDrug newPDbatch) { // 药品入库 / 添加一条库存药品记录 + adminMapper.addNewPDbatch(newPDbatch); + } + + @Override + public void changeApwd(String Apwd, String Ano) { // 修改登录密码 + adminMapper.changeApwd(Apwd, Ano); + } +} +package com.dims.service.impl; + +import java.util.List; + +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; + +import com.dims.domain.Doctor; +import com.dims.domain.Drug; +import com.dims.domain.User; +import com.dims.mapper.DoctorMapper; +import com.dims.service.IDoctorService; + +@Service +public class DoctorServiceImpl implements IDoctorService { + @Autowired + DoctorMapper doctorMapper; + + @Override + public Doctor login(User user) { // 登录 + return doctorMapper.login(user); + } + + @Override + public List queryAllDrugs() { // 查看药品库存列表 + return doctorMapper.queryAllDrugs(); + } + + @Override + public void changeDpwd(String Dpwd, String Dno) { // 修改登录密码 + doctorMapper.changeDpwd(Dpwd, Dno); + } +} +package com.dims.service.impl; + +import java.util.List; + +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; + +import com.dims.domain.Drug; +import com.dims.domain.InventoryDrug; +import com.dims.domain.Nurse; +import com.dims.domain.Prescription; +import com.dims.domain.User; +import com.dims.mapper.NurseMapper; +import com.dims.service.INurseService; + +@Service +public class NurseServiceImpl implements INurseService { + @Autowired + NurseMapper nurseMapper; + + @Override + public Nurse login(User user) { // 登录 + return nurseMapper.login(user); + } + + @Override + public int countUnsolvedRxs() { // 统计未处理处方数目 + return nurseMapper.countUnsolvedRxs(); + } + + @Override + public int countSolvedRxs() { // 统计已处理处方数目 + return nurseMapper.countSolvedRxs(); + } + + @Override + public int countMySolvedRxs(Nurse nurse) { // 统计由该名护士处理的处方数目 + return nurseMapper.countMySolvedRxs(nurse); + } + + @Override + public List queryAllDrugs() { // 查看药品库存列表 + return nurseMapper.queryAllDrugs(); + } + + @Override + public List queryAllPDbatches(Drug drug) { // 查看某一药品的所有库存批次 + return nurseMapper.queryAllPDbatches(drug); + } + + @Override + public List queryAllUnsolvedRxs() { // 查看未处理处方列表 + return nurseMapper.queryAllUnsolvedRxs(); + } + + @Override + public List queryAllSolvedRxs() { // 查看已处理处方列表 + return nurseMapper.queryAllSolvedRxs(); + } + + @Override + public Prescription queryOneRx(Prescription rx) { // 查看某一处方的具体明细 + return nurseMapper.queryOneRx(rx); + } + + @Override + public List queryAllContainedDrugs(Prescription rx) { // 查看某一处方包含的所有药品 + return nurseMapper.queryAllContainedDrugs(rx); + } + + @Override + public void changeNpwd(String Npwd, String Nno) { // 修改登录密码 + nurseMapper.changeNpwd(Npwd, Nno); + } +} +package com.dims.service; + +import java.util.List; + +import com.dims.domain.Doctor; +import com.dims.domain.Drug; +import com.dims.domain.User; + +public interface IDoctorService { + public Doctor login(User user); // 登录 + + public List queryAllDrugs(); // 查看药品库存列表 + + public void changeDpwd(String Dpwd, String Dno); // 修改登录密码 +} +package com.dims.service; + +import java.util.List; + +import com.dims.domain.Doctor; +import com.dims.domain.Drug; +import com.dims.domain.User; + +public interface IDoctorService { + public Doctor login(User user); // 登录 + + public List queryAllDrugs(); // 查看药品库存列表 + + public void changeDpwd(String Dpwd, String Dno); // 修改登录密码 +} +package com.dims.web.controller; + +import javax.servlet.http.HttpServletRequest; + +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.RequestMapping; + +import com.dims.domain.Doctor; +import com.dims.service.IDoctorService; + +@Controller +@RequestMapping(value = "/doctor") +public class DoctorController { + @Autowired + private IDoctorService doctorService; + + @RequestMapping(value = "/index") + public String index() { + // 重定向到 WEB-INF/views/doctor/welcome.jsp + return "redirect:/doctor/welcome"; + } + + @RequestMapping(value = "/welcome") + public String welcome(HttpServletRequest req) { + if (req.getSession().getAttribute("currentDoctor") == null) { + // 重定向到 WEB-INF/views/login.jsp,留在登录页面 + return "redirect:/login"; + } + + // 请求映射到 WEB-INF/views/doctor/welcome.jsp + return "doctor/welcome"; + } + + @RequestMapping(value = "/profile") + public String profile(HttpServletRequest req) { + if (req.getSession().getAttribute("currentDoctor") == null) { + // 重定向到 WEB-INF/views/login.jsp,留在登录页面 + return "redirect:/login"; + } + + req.getSession().removeAttribute("echo"); + + // 请求映射到 WEB-INF/views/doctor/profile.jsp + return "doctor/profile"; + } + + @RequestMapping(value = "/query-drug-list") + public String queryDrugList(HttpServletRequest req) { + if (req.getSession().getAttribute("currentDoctor") == null) { + // 重定向到 WEB-INF/views/login.jsp,留在登录页面 + return "redirect:/login"; + } + + // 请求映射到 WEB-INF/views/doctor/query-drug-list.jsp + return "doctor/query-drug-list"; + } + + @RequestMapping(value = "/query-solved-rx-list") + public String querySolvedRxList(HttpServletRequest req) { + if (req.getSession().getAttribute("currentDoctor") == null) { + // 重定向到 WEB-INF/views/login.jsp,留在登录页面 + return "redirect:/login"; + } + + // 请求映射到 WEB-INF/views/doctor/query-solved-rx-list.jsp + return "doctor/query-solved-rx-list"; + } + + @RequestMapping(value = "/query-unsolved-rx-list") + public String queryUnsolvedRxList(HttpServletRequest req) { + if (req.getSession().getAttribute("currentDoctor") == null) { + // 重定向到 WEB-INF/views/login.jsp,留在登录页面 + return "redirect:/login"; + } + + // 请求映射到 WEB-INF/views/doctor/query-unsolved-rx-list.jsp + return "doctor/query-unsolved-rx-list"; + } + + @RequestMapping(value = "/changeDpwd") + public String changeDpwd(HttpServletRequest req, String Dpwd1, String Dpwd2) { + if (req.getSession().getAttribute("currentDoctor") == null) { + // 重定向到 WEB-INF/views/login.jsp,留在登录页面 + return "redirect:/login"; + } + + Doctor currentDoctor = (Doctor) req.getSession().getAttribute("currentDoctor"); + + String echo; + + if (Dpwd1.equals(Dpwd2)) { + doctorService.changeDpwd(Dpwd1, currentDoctor.getDno()); + echo = "修改密码成功!"; + } else { + echo = "两次输入的密码不一致,修改密码失败!"; + } + + req.getSession().setAttribute("echo", echo); + + // 请求映射到 WEB-INF/views/doctor/profile.jsp + return "doctor/profile"; + } +} +package com.dims.web.controller; + +import java.util.List; + +import javax.servlet.http.HttpServletRequest; + +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Controller; +import org.springframework.ui.Model; +import org.springframework.web.bind.annotation.RequestMapping; + +import com.dims.domain.Drug; +import com.dims.domain.Nurse; +import com.dims.domain.Prescription; +import com.dims.service.INurseService; + +@Controller +@RequestMapping(value = "/nurse") +public class NurseController { + @Autowired + private INurseService nurseService; + + @RequestMapping(value = "/index") + public String index() { + // 重定向到 WEB-INF/views/nurse/welcome.jsp + return "redirect:/nurse/welcome"; + } + + @RequestMapping(value = "/welcome") + public String welcome(HttpServletRequest req) { + if (req.getSession().getAttribute("currentNurse") == null) { + // 重定向到 WEB-INF/views/login.jsp,留在登录页面 + return "redirect:/login"; + } + + int unsolvedRxsNum = nurseService.countUnsolvedRxs(); + int solvedRxsNum = nurseService.countSolvedRxs(); + int mySolvedRxsNum = nurseService.countMySolvedRxs((Nurse) req.getSession().getAttribute("currentNurse")); + + req.getSession().setAttribute("unsolvedRxsNum", unsolvedRxsNum); + req.getSession().setAttribute("solvedRxsNum", solvedRxsNum); + req.getSession().setAttribute("mySolvedRxsNum", mySolvedRxsNum); + + // 请求映射到 WEB-INF/views/nurse/welcome.jsp + return "nurse/welcome"; + } + + @RequestMapping(value = "/query-drug-list") + public String queryDrugList(HttpServletRequest req, Model model) { + if (req.getSession().getAttribute("currentNurse") == null) { + // 重定向到 WEB-INF/views/login.jsp,留在登录页面 + return "redirect:/login"; + } + + List drugs = nurseService.queryAllDrugs(); + + model.addAttribute("drugs", drugs); + + // 请求映射到 WEB-INF/views/nurse/query-drug-list.jsp + return "nurse/query-drug-list"; + } + + @RequestMapping(value = "/query-pdbatch-list") + public String queryPDbatchList(HttpServletRequest req, Model model) { + if (req.getSession().getAttribute("currentNurse") == null) { + // 重定向到 WEB-INF/views/login.jsp,留在登录页面 + return "redirect:/login"; + } + + List drugs = nurseService.queryAllDrugs(); + + for (Drug drug : drugs) { + drug.setInventoryDrugs(nurseService.queryAllPDbatches(drug)); + } + + model.addAttribute("drugs", drugs); + + // 请求映射到 WEB-INF/views/nurse/query-pdbatch-list.jsp + return "nurse/query-pdbatch-list"; + } + + @RequestMapping(value = "/query-unsolved-rx-list") + public String queryUnsolvedPrescriptionList(HttpServletRequest req, Model model) { + if (req.getSession().getAttribute("currentNurse") == null) { + // 重定向到 WEB-INF/views/login.jsp,留在登录页面 + return "redirect:/login"; + } + + List rxs = nurseService.queryAllUnsolvedRxs(); + + for (Prescription rx : rxs) { + rx.setDrugs(nurseService.queryAllContainedDrugs(rx)); + } + + model.addAttribute("rxs", rxs); + + // 请求映射到 WEB-INF/views/nurse/query-unsolved-rx-list.jsp + return "nurse/query-unsolved-rx-list"; + } + + @RequestMapping(value = "/query-solved-rx-list") + public String querySolvedPrescriptionList(HttpServletRequest req, Model model) { + if (req.getSession().getAttribute("currentNurse") == null) { + // 重定向到 WEB-INF/views/login.jsp,留在登录页面 + return "redirect:/login"; + } + + List rxs = nurseService.queryAllSolvedRxs(); + + for (Prescription rx : rxs) { + rx.setDrugs(nurseService.queryAllContainedDrugs(rx)); + } + + model.addAttribute("rxs", rxs); + + // 请求映射到 WEB-INF/views/nurse/query-solved-rx-list.jsp + return "nurse/query-solved-rx-list"; + } + + @RequestMapping(value = "/query-rx") + public String queryRx(HttpServletRequest req, Prescription rx, Model model) { + if (req.getSession().getAttribute("currentNurse") == null) { + // 重定向到 WEB-INF/views/login.jsp,留在登录页面 + return "redirect:/login"; + } + + rx = nurseService.queryOneRx(rx); + rx.setDrugs(nurseService.queryAllContainedDrugs(rx)); + + model.addAttribute("rx", rx); + + // 请求映射到 WEB-INF/views/nurse/query-rx.jsp + return "nurse/query-rx"; + } + + @RequestMapping(value = "/profile") + public String profile(HttpServletRequest req) { + if (req.getSession().getAttribute("currentNurse") == null) { + // 重定向到 WEB-INF/views/login.jsp,留在登录页面 + return "redirect:/login"; + } + + req.getSession().removeAttribute("echo"); + + // 请求映射到 WEB-INF/views/nurse/profile.jsp + return "nurse/profile"; + } + + @RequestMapping(value = "/changeNpwd") + public String changeNpwd(HttpServletRequest req, String Npwd1, String Npwd2) { + if (req.getSession().getAttribute("currentNurse") == null) { + // 重定向到 WEB-INF/views/login.jsp,留在登录页面 + return "redirect:/login"; + } + + Nurse currentNurse = (Nurse) req.getSession().getAttribute("currentNurse"); + + String echo; + + if (Npwd1.equals(Npwd2)) { + nurseService.changeNpwd(Npwd1, currentNurse.getNno()); + echo = "修改密码成功!"; + } else { + echo = "两次输入的密码不一致,修改密码失败!"; + } + + req.getSession().setAttribute("echo", echo); + + // 请求映射到 WEB-INF/views/nurse/profile.jsp + return "nurse/profile"; // 不要用重定向,重定向会执行 profile 方法 + } +} +package com.dims.web.controller; + +import javax.servlet.http.HttpServletRequest; + +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.RequestMapping; + +import com.dims.domain.Admin; +import com.dims.domain.Doctor; +import com.dims.domain.Nurse; +import com.dims.domain.User; +import com.dims.service.IAdminService; +import com.dims.service.IDoctorService; +import com.dims.service.INurseService; + +@Controller +@RequestMapping(value = "/") +public class UserController { + @Autowired + private IAdminService adminService; + + @Autowired + private IDoctorService doctorService; + + @Autowired + private INurseService nurseService; + + @RequestMapping(value = "index") + public String index() { + // 重定向到 WEB-INF/views/login.jsp + return "redirect:/login"; + } + + @RequestMapping(value = "login") + public String login(HttpServletRequest req) { + req.getSession().removeAttribute("echo"); + + // 请求映射到 WEB-INF/views/login.jsp + return "/login"; + } + + @RequestMapping(value = "submitLogin") + public String submitLogin(HttpServletRequest req, User user) { + String echo; + + switch (user.getRole()) { + case ADMIN: + Admin currentAdmin = adminService.login(user); + if (currentAdmin != null) { // 登录成功 + req.getSession().setAttribute("currentAdmin", currentAdmin); + + // 重定向到 WEB-INF/views/admin/index.jsp + return "redirect:/admin/index"; + } else { + echo = "登陆失败!"; + req.getSession().setAttribute("echo", echo); + + // 请求映射到 WEB-INF/views/login.jsp,留在登录页面 + return "/login"; // 不要用重定向,重定向会执行 login 方法 + } + case DOCTOR: + Doctor currentDoctor = doctorService.login(user); + if (currentDoctor != null) { // 登录成功 + req.getSession().setAttribute("currentDoctor", currentDoctor); + + // 重定向到 WEB-INF/views/doctor/index.jsp + return "redirect:/doctor/index"; + } else { + echo = "登陆失败!"; + req.getSession().setAttribute("echo", echo); + + // 请求映射到 WEB-INF/views/login.jsp,留在登录页面 + return "/login"; // 不要用重定向,重定向会执行 login 方法 + } + case NURSE: + Nurse currentNurse = nurseService.login(user); + if (currentNurse != null) { // 登录成功 + req.getSession().setAttribute("currentNurse", currentNurse); + + // 重定向到 WEB-INF/views/nurse/index.jsp + return "redirect:/nurse/index"; + } else { + echo = "登陆失败!"; + req.getSession().setAttribute("echo", echo); + + // 请求映射到 WEB-INF/views/login.jsp,留在登录页面 + return "/login"; // 不要用重定向,重定向会执行 login 方法 + } + default: + echo = "登陆失败!"; + req.getSession().setAttribute("echo", echo); + + // 请求映射到 WEB-INF/views/login.jsp,留在登录页面 + return "/login"; // 不要用重定向,重定向会执行 login 方法 + } + } + + @RequestMapping(value = "logout") + public String logout(HttpServletRequest req) { + req.getSession().invalidate(); + + // 重定向到 WEB-INF/views/login.jsp + return "redirect:/login"; + } + + @RequestMapping(value = "admin") + public String admin() { + // 重定向到 WEB-INF/views/admin/index.jsp + return "redirect:/admin/index"; + } + + @RequestMapping(value = "doctor") + public String doctor() { + // 重定向到 WEB-INF/views/doctor/index.jsp + return "redirect:/doctor/index"; + } + + @RequestMapping(value = "nurse") + public String nurse() { + // 重定向到 WEB-INF/views/nurse/index.jsp + return "redirect:/nurse/index"; + } +}