当前位置:   article > 正文

Java项目:实验室设备管理系统(java+SSM+jsp+layui+easyui+mysql)_layui 管理系统日志分类

layui 管理系统日志分类

源码获取:博客首页 "资源" 里下载!

项目介绍

ssm实验室设备管理系统。前台jsp+layui+easyui等框架渲染数据、后台java语言搭配ssm(spring、springmvc、mybatis、maven) 数据库mysql5.7、8.0版本均可。该系统主要分三种角色:管理员、教师、学生。主要功能学校实验设备的借、还、修以及实验课程的发布等等;


管理员主要功能:

实验室管理:实验室基本信息管理;
系统管理:系统日志查看;
权限中心:用户组信息管理、用户组权限控制、菜单管理;
信息管理-管理员:教师信息管理、学生信息管理、用户账号管理、班级信息管理、专业信息管理、实验室类型管理、信息通告管理、实验设备管理、实验室使用审批、设备借用审批;

教师主要功能:

实验管理:实验课程管理;
信息管理-教师:个人信息维护、学生信息管理、借用设备管理、设备损坏登记、设备维修登记、信息通告浏览、借用实验室管理。

学生主要功能:

信息管理-学生:个人信息维护;

信息浏览:实验课程浏览、实验设备浏览、信息通告浏览;


环境需要

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/8.0 版本均可;


技术栈

1. 后端:Spring SpringMVC MyBatis
2. 前端:jsp+layui+easyui


使用说明

1. 使用IDEA/Eclipse/MyEclipse导入项目,Eclipse/MyEclipse导入时,若为maven项目请选择maven;
   若为maven项目,导入成功后请执行maven clean;maven install命令,下载所需jar包;
2. 使用Navicat或者其它工具,在mysql中创建对应名称的数据库,并导入项目的sql文件;
3. 将项目中jdbc.properties配置文件中的数据库配置改为自己的配置
4. 配置tomcat,然后运行项目,输入localhost:8080/xxx 登录

 

 

 

 

设备管理控制层:

  1. @Controller
  2. @RequestMapping("/baseInfos")
  3. public class BaseInfoController {
  4. @Autowired
  5. private BaseInfoService baseInfoService;
  6. @Autowired
  7. private LogService logService;
  8. /**
  9. * 获取所有设备类型信息
  10. * @param map
  11. * @return
  12. */
  13. @RequestMapping("/type/list")
  14. public String listDeviceType(ModelMap map){
  15. List<DeviceType> typeList = baseInfoService.listDeviceType();
  16. map.put("typeList",typeList);
  17. return "deviceTypes::table-refresh";
  18. }
  19. /**
  20. * 添加设备类型
  21. * @param deviceType
  22. * @return
  23. */
  24. @PostMapping("/type")
  25. @ResponseBody
  26. public int addtDeviceType(DeviceType deviceType){
  27. return baseInfoService.addtDeviceType(deviceType);
  28. }
  29. /**
  30. * 删除设备类型
  31. * @param typeId
  32. * @return
  33. */
  34. @DeleteMapping("/type/{typeId}")
  35. @ResponseBody
  36. public int delteDeviceTypByid(@PathVariable("typeId") String typeId){
  37. return baseInfoService.deleteDeviceTypeById(typeId);
  38. }
  39. /**
  40. * 修改设备类型
  41. * @param deviceType
  42. * @return
  43. */
  44. @PutMapping("/type")
  45. @ResponseBody
  46. public int updateDeviceType(DeviceType deviceType){
  47. return baseInfoService.updateDeviceType(deviceType);
  48. }
  49. /**
  50. * 获取所有设备品牌信息
  51. * @param map
  52. * @return
  53. */
  54. @RequestMapping("/brand/list")
  55. public String listDeviceBrand(ModelMap map){
  56. List<DeviceBrand> brandList = baseInfoService.listDeviceBrand();
  57. map.put("brandList",brandList);
  58. return "deviceBrands::table-refresh";
  59. }
  60. /**
  61. * 添加设备品牌
  62. * @param deviceBrand
  63. * @return
  64. */
  65. @PostMapping("/brand")
  66. @ResponseBody
  67. public int addtDeviceBrand(DeviceBrand deviceBrand){
  68. return baseInfoService.addtDeviceBrand(deviceBrand);
  69. }
  70. /**
  71. * 删除设备品牌
  72. * @param brandId
  73. * @return
  74. */
  75. @DeleteMapping("/brand/{brandId}")
  76. @ResponseBody
  77. public int delteDeviceBrandByid(@PathVariable("brandId") String brandId){
  78. return baseInfoService.deleteDeviceBrandById(brandId);
  79. }
  80. /**
  81. * 修改品牌
  82. * @param deviceBrand
  83. * @return
  84. */
  85. @PutMapping("/brand")
  86. @ResponseBody
  87. public int updateDeviceBrand(DeviceBrand deviceBrand){
  88. return baseInfoService.updateDeviceBrand(deviceBrand);
  89. }
  90. /**
  91. * 获取系统日志
  92. * @param map
  93. * @return
  94. */
  95. @RequestMapping("/log")
  96. public String listLog(ModelMap map, HttpServletRequest request){
  97. String startTime = request.getParameter("startTime");
  98. String endTime = request.getParameter("endTime");
  99. List<SystemLog> logs = logService.listLogsByDate(startTime,endTime);
  100. map.put("logList",logs);
  101. return "system::logList-refresh";
  102. }
  103. }

设备维护管理控制层: 

  1. @Controller
  2. @RequestMapping("/device")
  3. public class DeviceController {
  4. @Autowired
  5. private DeviceService deviceService;
  6. /**
  7. * 获取所有设备信息
  8. * @param map
  9. * @return
  10. */
  11. @GetMapping("/list/{pageName}")
  12. public String listDevices(ModelMap map,@PathVariable("pageName") String pageName){
  13. List<DeviceDTO> deviceDTOList = deviceService.listDeviceDto();
  14. map.put("dtoList", deviceDTOList);
  15. return pageName+"::table-refresh";
  16. }
  17. /**
  18. * 按条件查询设备
  19. * @param map
  20. * @param pageName
  21. * @return
  22. */
  23. @PostMapping("/list")
  24. public String listDeviceDTOByExample(ModelMap map,DeviceDTO example,String pageName,String userName){
  25. List<DeviceDTO> deviceDTOList = deviceService.listDeviceDTOByexample(example);
  26. if(!StringUtils.isEmpty(userName)){
  27. deviceDTOList = deviceService.selectDeviceDTObyUserName(deviceDTOList,userName);
  28. }
  29. map.put("dtoList", deviceDTOList);
  30. return pageName+"::table-refresh";
  31. };
  32. /**
  33. * 根据id获取设备信息
  34. * @param map
  35. * @return
  36. */
  37. @GetMapping("/{devId}")
  38. public String getDeviceById(ModelMap map,@PathVariable("devId") String devId){
  39. DeviceDTO dto = deviceService.getDeviceDtoById(devId);
  40. map.put("detailDTO", dto);
  41. return "deviceList::modal-refresh";
  42. }
  43. /**
  44. * 新增设备
  45. * @param request
  46. * @return
  47. * @throws ParseException
  48. */
  49. @PostMapping
  50. public String addDevice(HttpServletRequest request) throws ParseException {
  51. Device device = new Device();
  52. device.setDevId(request.getParameter("devId"));
  53. device.setTypeId(request.getParameter("typeId"));
  54. device.setBrandId(request.getParameter("brandId"));
  55. device.setDevModel(request.getParameter("devModel"));
  56. device.setErpCode(request.getParameter("erpCode"));
  57. SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
  58. device.setPurchaseTime(sdf.parse(request.getParameter("purchaseTime")));
  59. device.setLastUpate(new Date());
  60. //新增设备基本信息时,触发器会自动新增设备使用信息和运行信息
  61. deviceService.addDevice(device);
  62. return "deviceManage";
  63. }
  64. /**
  65. * 检查设备id是否重复
  66. * @param devId
  67. * @return
  68. */
  69. @GetMapping("/checkDevId")
  70. @ResponseBody
  71. public int checkDevId(String devId){
  72. DeviceDTO deviceDTO = deviceService.getDeviceDtoById(devId);
  73. if (deviceDTO != null )
  74. return 0;
  75. else
  76. return 1;
  77. }
  78. /**
  79. * 修改设备基础信息
  80. * @param request
  81. * @return
  82. * @throws ParseException
  83. */
  84. @PutMapping("/baseInfo")
  85. public String updateDevicveBaseInfo(HttpServletRequest request) throws ParseException {
  86. Device device = new Device();
  87. device.setDevId(request.getParameter("devId"));
  88. device.setTypeId(request.getParameter("typeId"));
  89. device.setBrandId(request.getParameter("brandId"));
  90. device.setDevModel(request.getParameter("devModel"));
  91. device.setErpCode(request.getParameter("erpCode"));
  92. SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
  93. device.setPurchaseTime(sdf.parse(request.getParameter("purchaseTime")));
  94. device.setLastUpate(new Date());
  95. deviceService.updateDevice(device);
  96. return "deviceManage";
  97. }
  98. /**
  99. * 根据id删除设备
  100. * @param devId
  101. * @return
  102. */
  103. @DeleteMapping
  104. @ResponseBody
  105. public int deleteDeviceById(@RequestBody String devId){
  106. return deviceService.deleteDeviceById(devId);
  107. }
  108. /**
  109. * 修改设备状态
  110. * @param devId
  111. * @param status
  112. * @return
  113. */
  114. @PutMapping("/status")
  115. @ResponseBody
  116. public int updateStatus(String devId,int status){
  117. return deviceService.updateStatusByid(devId,status);
  118. }
  119. /**
  120. * 分配设备持有者
  121. * @return
  122. */
  123. @PutMapping("/owner")
  124. @ResponseBody
  125. public int updateDevOwner(HttpServletRequest request){
  126. String devId = request.getParameter("devId");
  127. String[] groups = request.getParameter("groups").split(",");
  128. return deviceService.updateDevOwnersByDevId(devId,groups);
  129. };
  130. /**
  131. * 分配设备使用部门
  132. * @param request
  133. * @return
  134. */
  135. @PutMapping("/org")
  136. @ResponseBody
  137. public int updateDevOrg(HttpServletRequest request){
  138. String devId = request.getParameter("devId");
  139. String fri_org = request.getParameter("fri_org");
  140. String sec_org = request.getParameter("sec_org");
  141. String orgid_addr = request.getParameter("orgid_addr");
  142. return deviceService.updateDevOrgsByDevId(devId,fri_org,sec_org,orgid_addr);
  143. };
  144. /**
  145. * 刷新使用信息模块
  146. * @param map
  147. * @param devId
  148. * @return
  149. */
  150. @GetMapping("/useage_info")
  151. public String allotDevice(ModelMap map,String devId){
  152. DeviceDTO deviceDTO = deviceService.getDeviceDtoById(devId);
  153. map.put("deviceDTO",deviceDTO);
  154. return "allotDevice::useage_info";
  155. }
  156. /**
  157. * 导出报表
  158. * @param response
  159. * @param request
  160. */
  161. @GetMapping("/exportExcel")
  162. public void exportExcel(HttpServletRequest request,HttpServletResponse response){
  163. String pageName = request.getParameter("pageName");
  164. String[] headers = request.getParameter("headers").split(",");
  165. deviceService.exportExcel(response,pageName,headers);
  166. }
  167. /**
  168. * 下载模板
  169. * @param request
  170. * @param response
  171. * @throws ServletException
  172. * @throws IOException
  173. */
  174. @GetMapping("/template")
  175. public void downloadServlet(HttpServletRequest request, HttpServletResponse response)
  176. throws ServletException, IOException {
  177. response.setCharacterEncoding("UTF-8");
  178. //设置ContentType字段值
  179. response.setContentType("text/html;charset=utf-8");
  180. //获取所要下载的文件名称
  181. String filename = request.getParameter("filename");
  182. //下载文件所在目录
  183. String folder = request.getServletContext().getRealPath("/WEB-INF/statics/file/");
  184. //通知浏览器以下载的方式打开
  185. response.addHeader("Content-type", "appllication/octet-stream");
  186. response.addHeader("Content-Disposition", "attachment;filename="+filename);
  187. //通知文件流读取文件
  188. // InputStream in = request.getServletContext().getResourceAsStream(folder+filename);
  189. InputStream in = new FileInputStream(folder+filename);
  190. //获取response对象的输出流
  191. OutputStream out = response.getOutputStream();
  192. byte[] buffer = new byte[1024];
  193. int len;
  194. //循环取出流中的数据
  195. while((len = in.read(buffer)) != -1){
  196. out.write(buffer,0,len);
  197. }
  198. }
  199. /**
  200. * 获取图表统计数据
  201. * @param request
  202. * @return
  203. * @throws ParseException
  204. */
  205. @GetMapping("/statistics")
  206. @ResponseBody
  207. public Map<String, Object> reloadChart(HttpServletRequest request) throws ParseException {
  208. String monthStr = request.getParameter("monthStr");
  209. monthStr = subMonth(monthStr);
  210. Map resultMap = new HashMap();
  211. //设备类型统计
  212. Map typeMap = deviceService.staDeviceByType(monthStr);
  213. resultMap.put("typeMap",typeMap);
  214. //设备品牌统计
  215. Map brandMap = deviceService.staDeviceByBrand(monthStr);
  216. resultMap.put("brandMap",brandMap);
  217. //设备部门统计
  218. Map orgMap = deviceService.staDeviceByOrg(monthStr);
  219. resultMap.put("orgMap",orgMap);
  220. //设备状态统计
  221. Map statusMap = deviceService.staDeviceByStatus(monthStr);
  222. resultMap.put("statusMap",statusMap);
  223. return resultMap;
  224. }
  225. /**
  226. * 传入具体日期 ,返回具体日期增加一个月。
  227. * @param date 日期
  228. * @return 2017-05-13
  229. * @throws ParseException
  230. */
  231. private String subMonth(String date) throws ParseException {
  232. SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM");
  233. Date dt = sdf.parse(date);
  234. Calendar rightNow = Calendar.getInstance();
  235. rightNow.setTime(dt);
  236. rightNow.add(Calendar.MONTH, 1);
  237. Date dt1 = rightNow.getTime();
  238. String reStr = sdf.format(dt1);
  239. return reStr;
  240. }
  241. @PostMapping("/file")
  242. @ResponseBody
  243. public Map uploadFile(HttpServletRequest request) throws Exception {
  244. System.out.println("文件上传");
  245. //文件上传的位置
  246. String path = request.getSession().getServletContext().getRealPath("/upload");
  247. File file = new File(path);
  248. if(!file.exists()){
  249. file.mkdirs();
  250. }
  251. //解析request对象,获取文件上传项
  252. DiskFileItemFactory factory = new DiskFileItemFactory();
  253. ServletFileUpload fileUpload = new ServletFileUpload(factory);
  254. //解析
  255. List<FileItem> list = fileUpload.parseRequest(request);
  256. //遍历
  257. for (FileItem item:list
  258. ) {
  259. if(item.isFormField()){//普通表单项
  260. } else{
  261. String fileName = item.getName()+UUID.randomUUID();
  262. //完成文件上传
  263. item.write(new File(path,fileName));
  264. //删除临时文件
  265. item.delete();
  266. return deviceService.fileRead(path+"/"+fileName);
  267. }
  268. }
  269. return null;
  270. }
  271. }

用户管理控制层:

  1. @Controller
  2. @RequestMapping("/account")
  3. public class AccountController {
  4. //自动注入服务类
  5. @Autowired
  6. private AccountService accountService;
  7. /**
  8. * 管理员账户信息
  9. * @return
  10. */
  11. @GetMapping("/admins")
  12. public String listAdmins(ModelMap map){
  13. List<AccountDTO> adminList = accountService.listAccountByLevel(2);
  14. List<AccountDTO> superAdminList = accountService.listAccountByLevel(1);
  15. adminList.addAll(superAdminList);
  16. map.put("adminsList", adminList);
  17. return "system::table-refresh";
  18. }
  19. /**
  20. * 获取所有账户信息
  21. * @param map
  22. * @return
  23. */
  24. @GetMapping("/list")
  25. public String listAccounts(ModelMap map){
  26. List<AccountDTO> accountList = accountService.listAccount();
  27. map.put("accountDTOList", accountList);
  28. return "account::table-refresh";
  29. }
  30. /**
  31. * 通过用户名称搜索用户
  32. * @param map
  33. * @param userName
  34. * @return
  35. */
  36. @GetMapping("/list/{userName}")
  37. public String listAccountsByUserName(ModelMap map,@PathVariable("userName")String userName){
  38. List<AccountDTO> accountList = accountService.listAccountByName(userName);
  39. map.put("accountDTOList", accountList);
  40. return "account::table-refresh";
  41. }
  42. /**
  43. * 添加管理员页面
  44. * @param map
  45. * @return
  46. */
  47. @GetMapping("/users")
  48. public String listUsers(ModelMap map){
  49. List<AccountDTO> accountList = accountService.listAccountByLevel(3);
  50. map.put("usersDTOList", accountList);
  51. return "system::list-refresh";
  52. }
  53. /**
  54. * 获取设备使用人信息
  55. * @param map
  56. * @param devId
  57. * @return
  58. */
  59. @GetMapping("/ownerList")
  60. public String getOwnerList(ModelMap map, String devId){
  61. Map resMap = accountService.listOwenrByDevId(devId);
  62. map.put("ownerMap", resMap);
  63. return "allotDevice::list-refresh";
  64. }
  65. /**
  66. * 添加账户
  67. * @param account
  68. * @return
  69. */
  70. @PostMapping
  71. @ResponseBody
  72. public int addAccount(Account account){
  73. return accountService.addAccount(account);
  74. }
  75. /**
  76. * 根据uuid删除账户
  77. * @param uuid
  78. * @return
  79. */
  80. @DeleteMapping("/{uuid}")
  81. @ResponseBody
  82. public int deleteAccount(@PathVariable("uuid")String uuid){
  83. return accountService.deleteAccountById(uuid);
  84. }
  85. /**
  86. * 修改账户密码
  87. * @param uuid
  88. * @param password
  89. * @return
  90. */
  91. @PutMapping("/password")
  92. @ResponseBody
  93. public int updatePassword(String uuid, String password){
  94. return accountService.updatePasswordByid(uuid,password);
  95. }
  96. /**
  97. * 修改账户状态
  98. * @param uuid
  99. * @param status
  100. * @return
  101. */
  102. @PutMapping("/status")
  103. @ResponseBody
  104. public int updateStatus(String uuid,int status){
  105. return accountService.updateStatusByid(uuid,status);
  106. }
  107. /**
  108. * 更改管理员
  109. * @return
  110. */
  111. @PutMapping("/admins")
  112. @ResponseBody
  113. public int updateDevOwner(HttpServletRequest request){
  114. String[] groups = request.getParameter("groups").split(",");
  115. int level = Integer.parseInt(request.getParameter("level"));
  116. return accountService.updateAccountLevel(level,groups);
  117. };
  118. }

源码获取:博客首页 "资源" 里下载! 

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/知新_RL/article/detail/753639
推荐阅读
相关标签
  

闽ICP备14008679号