花生肉泥 Blog

基于JAVA的闽江学院实验室设备管理系统

2016/07/11 Share

功能需求

upload successful

开发与运行环境

1
2
3
4
5
6
系统开发平台:Myeclipse 10;
系统开发语言:Java;
数据库管理系统:MySQL;
系统运行平台:Windows XP 、Windows Vista、Windows 7或更高版本的操作系统;
系统运行环境:Microsoft.NET Framework 3.5或更高;
分辨率:采用响应式网页设计,在各个主流分辨率下都有良好的表现性。

功能模块

upload successful

系统流程

upload successful

数据库设计

upload successful

数据表结构设计

upload successful

详细设计

用户表

用于保存系统使用人员的信息,数据表命名为“t_user”
upload successful

维修历史表

用于保存设备维修历史的信息,数据表命名为“t_repair”
upload successful

设备类型表

用于保存设备类型的信息,数据表命名为“t_equipmenttype ”
upload successful

设备信息表

用于保存设备状态的信息,数据表命名为“t_equiomentstate ”
upload successful

设备管理表

用于保存设备的详细信息,数据表命名为“t_equipment”
upload successful
upload successful

部门信息表

用于保存部门的详细信息,数据表命名为“t_department”
upload successful

设备采购状态表

用于保存采购设备状态的信息,数据表命名为“t_buystate”
upload successful

系统实现

登录与退出

upload successful
如图
upload successful
代码如下

1
2
3
4
5
6
7
8
9
10
11
public String login(User user,HttpServletRequest request){
User resultUser=userService.login(user);
// 判断用户登陆 若成功则将信息保存到session中并跳转到主页面,否则提示错误信息。
if(resultUser.getId()==null){
request.setAttribute("user", user);
request.setAttribute("errorMsg", "用户名或密码错误!");
return "login";
}else{HttpSession session=request.getSession();
session.setAttribute("buyCount", buyCount);
session.setAttribute("currentUser", resultUser);
return "redirect:/main.jsp";}}

用户管理

upload successful
如图
upload successful

添加用户

upload successful
代码

1
2
3
4
5
6
   public String save(User user){
// 判断 如果id的值为空,即为添加,如果id的值不为空,则是进行更新操作
if(user.getId()==null){
userService.add(user);
}else{userService.update(user);}
return "redirect:/user/list.do";}

删除用户

代码

1
2
3
4
5
6
public void delete(@RequestParam(value="id")String id,HttpServletResponse response)throws Exception{
JSONObject result=new JSONObject();
// 传入获取到的用户ID,删除用户
userService.delete(Integer.parseInt(id));
result.put("success", true);
ResponseUtil.write(result, response);}

修改用户

upload successful
代码

1
2
3
4
5
6
public String save(User user){
// 修改用户信息,如果用户ID的值不为空,则执行update功能
if(user.getId()==null){
userService.add(user);
}else{userService.update(user);}
return "redirect:/user/list.do";}

重置密码

upload successful
代码

1
2
3
4
5
6
public void resetpassword(@RequestParam(value="id")String id,HttpServletResponse response)throws Exception{
JSONObject result=new JSONObject();
// 调用resetpassword方法重置用户ID为XX的用户的密码,默认修改为“888888
userService.resetpassword(Integer.parseInt(id));
result.put("success", true);
ResponseUtil.write(result, response);}

查询用户

代码

1
2
3
4
5
6
7
if(StringUtil.isEmpty(page)){
page="1";
session.setAttribute("s_user", s_user);
}else{s_user=(User) session.getAttribute("s_user");}
PageBean pageBean=new PageBean(Integer.parseInt(page),10);
// 匹配页面上的查询返回最终查询的结果
List<User> userList=userService.find(pageBean, s_user);

部门管理

upload successful
upload successful

添加部门

upload successful
代码

1
2
3
4
5
6
public String save(Department department){
// 判断如果没有获取到id值,则调用添加功能
if(department.getId()==null){
departmentService.add(department);
}else{departmentService.update(department);}
return "redirect:/department/list.do";}

删除部门
1
2
3
4
5
6
7
8
9
10
public void delete(@RequestParam(value="id")String id,HttpServletResponse response)throws Exception{
JSONObject result=new JSONObject();
// 首先判断用户表中是否有用户属于该部门,若有,则删除失败
if(userService.existUserByDeptId(Integer.parseInt(id))){
result.put("errorInfo", "该部门下存在用户,不能删除!");
}else{
// 若部门下没有用户,则可以删除,并在完成后提示删除成功
departmentService.delete(Integer.parseInt(id));
result.put("success", true);
}ResponseUtil.write(result, response);}
修改部门

upload successful
代码

1
2
3
4
5
6
public String save(Department department){
// 判断有无获取到ID值,若没有ID值,则为添加功能
if(department.getId()==null){
departmentService.add(department);
}else{departmentService.update(department);}
return "redirect:/department/list.do";}

查询部门
1
2
3
4
5
6
7
if(StringUtil.isEmpty(page)){
page="1";
session.setAttribute("s_department", s_department);
}else{s_department=(Department) session.getAttribute("s_department");}
PageBean pageBean=new PageBean(Integer.parseInt(page),10);
// 将匹配页面查询信息的数据查询出来后赋值到list
List<Department> departmentList=departmentService.find(pageBean, s_department);

设备类型管理

upload successful
upload successful

添加设备类型

upload successful
代码

1
2
3
4
5
6
public String save(EquipmentType equipmentType){
// 判断是否有ID值,若没有,则为添加
if(equipmentType.getId()==null){
equipmentTypeService.add(equipmentType);
}else{equipmentTypeService.update(equipmentType);}
return "redirect:/equipmentType/list.do";}

删除设备类型

upload successful
代码

1
2
3
4
5
6
7
8
9
public void delete(@RequestParam(value="id")String id,HttpServletResponse response)throws Exception{
JSONObject result=new JSONObject();
// 首先查找设备表返回是否存在改设备类型正在被使用,若有,则不能删除
if(equipmentService.existEquipmentByTypeId(Integer.parseInt(id))){
result.put("errorInfo", "该设备类型下存在设备,不能删除!");
}else{// 若无设备使用,则删除成功,并提示
equipmentTypeService.delete(Integer.parseInt(id));
result.put("success", true);}
ResponseUtil.write(result, response);}

修改设备类型

upload successful
代码

1
2
3
4
5
6
7
8
public String save(EquipmentType equipmentType){
// 判断是否获取到设备ID 若获取到,则为修改
if(equipmentType.getId()==null){
equipmentTypeService.add(equipmentType);
}else{
// 调用update功能更新设备信息
equipmentTypeService.update(equipmentType);}
return "redirect:/equipmentType/list.do";}

查询设备类型

代码

1
2
3
4
5
6
7
if(StringUtil.isEmpty(page)){
page="1";
session.setAttribute("s_department", s_department);
}else{s_department=(Department) session.getAttribute("s_department");}
PageBean pageBean=new PageBean(Integer.parseInt(page),10);
// 将匹配界面查询条件的查询结果赋值到list中
List<Department> departmentList=departmentService.find(pageBean, s_department);

采购管理
upload successful
upload successful

采购设备申请
upload successful
代码

1
2
3
4
5
6
7
8
public String savebuyinfo(Equipment equipment) {
// 判断是否有ID值,有的话则为添加采购申请
if (equipment.getId() == null) {
// 调用addbuyequipment方法添加采购申请
equipmentService.addbuyequipment(equipment);
} else {equipmentService.updateBuyequipment(equipment);}
logger.debug("savebuyinfo");
return "redirect:/equipment/list.do";}

修改采购设备

upload successful
代码

1
2
3
4
5
6
7
if (StringUtil.isNotEmpty(id)) {
System.out.println("modification/修改采购信息");
mav.addObject("actionName", "修改采购申请");
// 调用采购申请功能
Equipment equipment = equipmentService.loadById(Integer.parseInt(id));
mav.addObject("equipment", equipment);
}

删除采购信息

代码

1
2
3
4
5
6
public void delete(@RequestParam(value = "id") String id,HttpServletResponse response) throws Exception {
JSONObject result = new JSONObject();
// 调用delete方法删除
equipmentService.delete(Integer.parseInt(id));
result.put("success", true);
ResponseUtil.write(result, response);}

详细采购信息

upload successful
代码

1
2
3
4
5
if (StringUtil.isNotEmpty(id)) {
mav.addObject("actionName", "设备详情");
// 通过选择的ID值查出选中设备的详细信息
Equipment equipment = equipmentService.loadById(Integer.parseInt(id));
mav.addObject("equipment", equipment);}

查询采购信息

代码

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
	if (StringUtil.isEmpty(page)) {
// 通过匹配界面查询条件将符合条件的结果返回到页面中
page = "1";
session.setAttribute("s_equipment", s_equipment);
} else {s_equipment = (Equipment) session.getAttribute("s_equipment");}
```

#### 使用设备管理
![upload successful](\images\pasted-372.png)
![upload successful](\images\pasted-373.png)

##### 详细信息
![upload successful](\images\pasted-374.png)
代码
``` PYTHON
if (StringUtil.isNotEmpty(id)) {
mav.addObject("actionName", "设备详情");
// 通过选中设备ID值查询设备详细信息
Equipment equipment = equipmentService.loadById(Integer.parseInt(id));
mav.addObject("equipment", equipment);}

设备报修

upload successful
代码

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
public ModelAndView repairEquipment(@RequestParam(value = "id", required = false) String id) {
ModelAndView mav = new ModelAndView();
// 获取所有设备报修烈面
List<Equipment> equipmentList = equipmentService.findBuyInfo(null, null);
mav.addObject("mainPage", "equipment/repairshowinfo.jsp");
mav.addObject("modeName", "设备报修");
mav.addObject("equipmentTypeList", equipmentList);
mav.setViewName("main");
if (StringUtil.isNotEmpty(id)) {
// 获取选中设备的详细信息
mav.addObject("actionName", "设备报修");
Equipment equipment = equipmentService.loadById(Integer.parseInt(id));
mav.addObject("equipment", equipment);
} else {mav.addObject("actionName", "设备报修");}
return mav; }

导出设备详细信息

upload successful
代码

1
2
3
4
5
public String exportEquipmentInfo() {
// 调用exportEquipmentInfo()方法生成excel表格
equipmentService.exportEquipmentInfo();
// 返货设备使用界面
return "redirect:/equipment/userList.do";}

查询使用设备信息

代码

1
2
3
4
5
6
7
if (StringUtil.isEmpty(page)) {
page = "1";
session.setAttribute("s_equipment", s_equipment);
} else {s_equipment = (Equipment) session.getAttribute("s_equipment");}
PageBean pageBean = new PageBean(Integer.parseInt(page), 10);
// 将匹配界面查询条件的结果返回并赋值给equipmentList
List<Equipment> equipmentList = equipmentService.findByInfo2(pageBean,s_equipment);

设备维修管理

upload successful
upload successful

维修完成

代码

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
public void finishRepair(@RequestParam(value = "id") String id,
@RequestParam(value = "repairId") String repairId,
@RequestParam(value = "success") boolean success,
HttpSession session, HttpServletResponse response) throws Exception {
String repairMan = ((User) session.getAttribute("currentUser")).getTrueName();
JSONObject result = new JSONObject();
// 通过设备ID 将设备状态更新为正常
equipmentService.updateRepair(Integer.parseInt(id),Integer.parseInt(repairId), repairMan, success);
result.put("success", true);
ResponseUtil.write(result, response);}
```

##### 设备报废操作
![upload successful](\images\pasted-379.png)
代码
``` PYTHON
public void finishRepair(@RequestParam(value = "id") String id,
@RequestParam(value = "repairId") String repairId,
@RequestParam(value = "success") boolean success,
HttpSession session, HttpServletResponse response) throws Exception {
String repairMan = ((User) session.getAttribute("currentUser")).getTrueName();
JSONObject result = new JSONObject();
// 将设备状态更新为“报废”
equipmentService.updateRepair(Integer.parseInt(id),Integer.parseInt(repairId), repairMan, success);
result.put("success", true);
ResponseUtil.write(result, response);}

保修详细信息

upload successful
代码

1
2
3
4
5
6
7
8
9
10
11
12
13
14
public ModelAndView repairinfo(@RequestParam(value = "id", required = false) String id) {
ModelAndView mav = new ModelAndView();
List<Repair> repairList = repairService.find(null, null);
mav.addObject("mainPage", "equipment/repairinfo.jsp");
mav.addObject("modeName", "维修设备管理");
mav.addObject("repairList", repairList);
mav.setViewName("main");
if (StringUtil.isNotEmpty(id)) {
mav.addObject("actionName", "报修详情");
// 根据获取到的ID查询出设备详细信息
Repair repair = repairService.findById(Integer.parseInt(id));
mav.addObject("repair", repair);
} else {mav.addObject("actionName", "报修详情");}
return mav;}

查询维修设备信息
1
2
3
4
5
6
7
8
9
10
11
12
ModelAndView mav = new ModelAndView();
HttpSession session = request.getSession();
// 刷新未处理记录条数
int repairCount = equipmentService.getRepairCount();
session.setAttribute("repairCount", repairCount);
if (StringUtil.isEmpty(page)) {
page = "1";
session.setAttribute("s_repair", s_repair);
} else {s_repair = (Repair) session.getAttribute("s_repair");}
s_repair.setFinishState(1);
// 将匹配页面查询条件的结果返回到页面
PageBean pageBean = new PageBean(Integer.parseInt(page), 10);

维修历史

upload successful
upload successful

维修历史查询

代码

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
public ModelAndView repairHistory(@RequestParam(value = "page", required = false) String page,Repair s_repair, HttpServletRequest request) {
ModelAndView mav = new ModelAndView();
HttpSession session = request.getSession();
if (StringUtil.isEmpty(page)) {page = "1";
session.setAttribute("s_repair", s_repair);
} else {s_repair = (Repair) session.getAttribute("s_repair");}
s_repair.setFinishState(2);
PageBean pageBean = new PageBean(Integer.parseInt(page), 10);
// 将维修历史记录的所有数据查询赋值到repairList中
List<Repair> repairList = repairService.findRepair(pageBean, s_repair);
int total = repairService.count(s_repair);
String pageCode = PageUtil.getPagation(request.getContextPath()
+ "/equipment/repairHistory.do", total, Integer.parseInt(page),10);
mav.addObject("pageCode", pageCode);
mav.addObject("modeName", "维修设备历史");
mav.addObject("repairList", repairList);
mav.addObject("mainPage", "equipment/repairHistory.jsp");
mav.setViewName("main");
return mav;}

导出维修历史

upload successful
代码

1
2
3
4
public String exportslx() {
// 调用exportxls()方法生成excel表格
repairDao.exportxls();
return "redirect:/equipment/repairHistory.do";}

采购申请处理

upload successful
upload successful

处理申请信息

upload successful
代码

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
public ModelAndView buyEquipmentInfo(@RequestParam(value = "id", required = false) String id){    ModelAndView mav = new ModelAndView();
// 获取设备采购申请信息
List<Equipment> equipmentList = equipmentService.findBuyInfo(null, null);
mav.addObject("mainPage", "buyapple/showinfobuy.jsp");
mav.addObject("modeName", "采购申请处理");
mav.addObject("equipmentTypeList", equipmentList);
mav.setViewName("main");
if (StringUtil.isNotEmpty(id))
{ mav.addObject("actionName", "申请详情");
Equipment equipment = equipmentService.loadById(Integer.parseInt(id));
mav.addObject("equipment", equipment);
} else{mav.addObject("actionName", "申请详情");}
// 获取部门信息
List<Department> departmentList = departmentService.find(null, null);
// 获取设备类型信息
List<EquipmentType> equipmentTypeList = equipmentTypeService.find(null,null);
mav.addObject("departmentList", departmentList);
mav.addObject("equipmentTypeList", equipmentTypeList);
return mav;}

删除处理信息

代码

1
2
3
4
5
6
public void delete(@RequestParam(value = "id") String id,HttpServletResponse response) throws Exception {
JSONObject result = new JSONObject();
// 通过ID调用delete方法删除订单处理
equipmentService.delete(Integer.parseInt(id));
result.put("success", true);
ResponseUtil.write(result, response);}

修改密码

upload successful
upload successful
代码

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
public ModelAndView alertpasswordinfo(User user,HttpServletRequest request){
ModelAndView mav=new ModelAndView();
String oldpassword = request.getParameter("oldpassword"); //当前旧密码
String oldpassword1 = request.getParameter("oldpassword1"); //输入的旧密码
String newpassword = request.getParameter("password"); // 新密码
// 将界面输入的密码MD5加密匹配数据库的旧密码
if(oldpassword.equals(md5oldpassword1)){
// 若相同则可以修改,完成后再页面提示修改成功
userService.updatepassword(user, newpassword);
mav.addObject("mainPage", "user/alertpassword.jsp");
mav.addObject("modeName", "密码修改");
mav.setViewName("main");
mav.addObject("actionName", "密码修改");
mav.addObject("succ", "<div class='alert alert-success'><a href='../login.jsp' class='alert-link'>修改成,点此返回登录页面。</a></div>");
return mav;
}else{
// 若不匹配则提示密码错误
mav.addObject("mainPage", "user/alertpassword.jsp");
mav.addObject("modeName", "密码修改");
mav.setViewName("main");
mav.addObject("actionName", "密码修改");
mav.addObject("errorinfo", "<font color='red'>原密码错误!</font>");
return mav;
}
}

CATALOG
  1. 1. 功能需求
  2. 2. 开发与运行环境
  3. 3. 功能模块
  4. 4. 系统流程
  5. 5. 数据库设计
    1. 5.1. 数据表结构设计
    2. 5.2. 详细设计
      1. 5.2.1. 用户表
      2. 5.2.2. 维修历史表
      3. 5.2.3. 设备类型表
      4. 5.2.4. 设备信息表
      5. 5.2.5. 设备管理表
      6. 5.2.6. 部门信息表
      7. 5.2.7. 设备采购状态表
  6. 6. 系统实现
    1. 6.1. 登录与退出
    2. 6.2. 用户管理
      1. 6.2.1. 添加用户
      2. 6.2.2. 删除用户
      3. 6.2.3. 修改用户
      4. 6.2.4. 重置密码
      5. 6.2.5. 查询用户
    3. 6.3. 部门管理
      1. 6.3.1. 添加部门
      2. 6.3.2. 删除部门
      3. 6.3.3. 修改部门
      4. 6.3.4. 查询部门
    4. 6.4. 设备类型管理
      1. 6.4.1. 添加设备类型
      2. 6.4.2. 删除设备类型
      3. 6.4.3. 修改设备类型
      4. 6.4.4. 查询设备类型
    5. 6.5. 修改采购设备
      1. 6.5.1. 删除采购信息
      2. 6.5.2. 详细采购信息
      3. 6.5.3. 查询采购信息
      4. 6.5.4. 设备报修
      5. 6.5.5. 导出设备详细信息
      6. 6.5.6. 查询使用设备信息
    6. 6.6. 设备维修管理
      1. 6.6.1. 维修完成
      2. 6.6.2. 保修详细信息
      3. 6.6.3. 查询维修设备信息
    7. 6.7. 维修历史
      1. 6.7.1. 维修历史查询
      2. 6.7.2. 导出维修历史
    8. 6.8. 采购申请处理
      1. 6.8.1. 处理申请信息
      2. 6.8.2. 删除处理信息
    9. 6.9. 修改密码