项目介绍:
该系统创作于2022年4月,包含详细数据库设计。基于springboot技术,数据层为MyBatis,mysql数据库,具有完整的业务逻辑,适合选题:资产、公司OA、企业资产等。
项目功能:
管理员功能: 登录功能 用户管理:增加、修改、删除,查询员工信息 财务人员管理:增加、修改、删除,查询财务人员信息 资产管理: 资产购置:新增资产购置记录,修改或者删除记录 资产录入:进行录入,修改或者删除 资产库存管理:维护库存信息 资产领用管理:查询领用信息,审核领用信息 资产归还管理:查询归还记录 资产盘点: 资产盘点:查询资产情况,建议使用图表方式(比如折线图、饼状图等),展示资产的使用和利用情况 资产维修管理:新增维护记录,修改,删除,查询记录 资产折旧管理:新增折旧记录,修改,删除,查询记录 资产报废管理:新增报废记录,修改,删除,查询记录 财务人员功能: 登录功能 资产管理: 资产购置:新增资产购置记录,修改或者删除记录 资产录入:进行录入,修改或者删除 资产库存管理:维护库存信息 资产领用管理:查询领用信息,审核领用信息 资产归还管理:查询归还记录 资产盘点: 资产盘点:查询资产情况,建议使用图表方式(比如折线图、饼状图等),展示资产的使用和利用情况 资产维修管理:新增维护记录,修改,删除,查询记录 资产折旧管理:新增折旧记录,修改,删除,查询记录 资产报废管理:新增报废记录,修改,删除,查询记录 用户功能: 登录功能 资产信息:查询所有已录入的资产信息,已经库存状况,可以提交领用申请 资产领用管理:查询自己的领用申请,删除申请,已领用的可进行归还 资产归还管理:查看归还信息 物资借用申请:申请物资信息(比如打印机、固定资产等),修改、删除,查询信息 用户设备管理:管理设备信息 以上有修改,下面是修改部分: 资产管理员 1.资产库存、资产购置、资产领用、资产归还、资产维修、资产折旧、资产报废等都加入导出到表格的小功能点(同资产录入) 资产管理领导(新增的角色) 1.审批:之前的资产购置审批流程为资产管理员提出购置申请,系统管理员在资产管理进行审批,现在取消系统管理员的那个功能,再新增一个叫做资产管理领导的角色,由这个领导进行对资产购置的审批,以及折旧、维修、报废的二次审批(之前是由员工提出资产管理员审批,或是资产管理员直接提出,现再后边加入资产管理领导的角色进行第二轮审批) 2.资产管理领导进行审批,同时也具有部分资产管理员的功能,比如:资产购置、资产折旧、资产报废和资产维修 系统管理员 系统管理员不再有资产管理的审批功能,下属功能只有员工管理、资产管理员管理、资产管理领导管理、管理员管理
数据库表结构文档:
系统包含技术:
后端:springboot、mybatis
前端:layui,js,css等
开发工具:idea
数据库:mysql 5.7
JDK版本:jdk1.8
部分截图说明:
下面是登录注册
系统管理员-首页
系统管理员对员工管理
系统管理员管理资产管理领导
资产管理领导资产购置
资产管理领导对资产维修管理
资产管理领导对资产折旧维护
资产管理员对资产库存维护
资产管理员-资产盘点
员工查看个人信息
部分代码:
拦截器
@Override public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception { HttpSession session = request.getSession(); if(session.getAttribute("ad") != null){ return true; } // 不符合条件的给出提示信息,并转发到主页面 request.setAttribute("msg", "您还没有登录,请先登录!"); request.getRequestDispatcher("/gologin.jsp").forward(request, response); //返回true通过,返回false拦截 return false; }
资产操作
/** * 分页查询 * pageIndex 当前页码 * pageSize 显示条数 */ @RequestMapping(value = "/findAssets") public String findAssets(Integer pageIndex, Integer pageSize,String no,String name, Model model,HttpServletRequest request) { HttpSession session = request.getSession(); if(session.getAttribute("ad") == null){ session.setAttribute("msg", "对不起,请登录!"); return "login"; } Map mp = new HashMap(); String type = (String)session.getAttribute("type"); if(type.equals("02")){ Manage manage = (Manage)session.getAttribute("ad"); mp.put("mid",manage.getId()); } mp.put("no",no); mp.put("name",name); PageInfo<Assets> pageList = assetsService.findPageInfo(pageIndex,pageSize,mp); model.addAttribute("pageList",pageList); return "AssetsList"; } /** * 分页查询 * pageIndex 当前页码 * pageSize 显示条数 */ @RequestMapping(value = "/findAssets2") public String findAssets2(Integer pageIndex, Integer pageSize,String no,String name, Model model,HttpServletRequest request) { HttpSession session = request.getSession(); if(session.getAttribute("ad") == null){ session.setAttribute("msg", "对不起,请登录!"); return "login"; } Map mp = new HashMap(); String type = (String)session.getAttribute("type"); if(type.equals("02")){ Manage manage = (Manage)session.getAttribute("ad"); mp.put("mid",manage.getId()); } mp.put("no",no); mp.put("name",name); PageInfo<Assets> pageList = assetsService.findPageInfo(pageIndex,pageSize,mp); model.addAttribute("pageList",pageList); return "AssetsList2"; } /** * 添加 */ @RequestMapping(value = "/addAssets" ,method = RequestMethod.POST) @ResponseBody public String addAssets( @RequestBody Assets assets,HttpServletRequest request) { try{ HttpSession session = request.getSession(); if(session.getAttribute("ad") == null){ session.setAttribute("msg", "对不起,请登录!"); return "login"; } List<Assets> all = assetsService.getAll(); for(int i=0;i<all.size();i++){ if(all.get(i).getNo().equals(assets.getNo())){ return "202"; } } Manage manage = (Manage)session.getAttribute("ad"); assets.setMid(manage.getId()); SimpleDateFormat sf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); assets.setCreateTime(sf.format(new Date())); assetsService.addAssets(assets); return "200"; }catch (Exception e){ e.printStackTrace(); return "201"; } } /** * 导出excel */ @RequestMapping("/downExcel") public void downExcel(HttpServletRequest request, HttpServletResponse response) throws Exception{ HttpSession session = request.getSession(); String type = (String)session.getAttribute("type"); List<Assets> assetsList = new ArrayList<>(); if(type.equals("02")){ Manage manage = (Manage)session.getAttribute("ad"); Map mp = new HashMap(); mp.put("mid",manage.getId()); assetsList = assetsService.queryFilter(mp); for(int i=0;i<assetsList.size();i++){ if(assetsList.get(i).getMid()!=null){ Manage manageById = manageService.findManageById(assetsList.get(i).getMid()); assetsList.get(i).setMname(manageById.getName()); } if(assetsList.get(i).getStatus().equals("01")){ assetsList.get(i).setStatus("已申请"); } if(assetsList.get(i).getStatus().equals("02")){ assetsList.get(i).setStatus("已同意"); } if(assetsList.get(i).getStatus().equals("03")){ assetsList.get(i).setStatus("已拒绝"); } } } String[] columnNames = { "ID","资产编号","资产型号","资产名称","单价", "生产厂商", "生产日期", "入库时间", "购买人", "购买人", "资产类型", "状态", "创建时间"}; String fileName = "资产信息表"; ExportExcelUtil exportExcelUtil = new ExportExcelUtil(); exportExcelUtil.mtyExcel(fileName, fileName, columnNames, assetsList, response, ExportExcelUtil.EXCEL_FILE_2003); } /** * 删除 */ @RequestMapping( "/deleteAssets") @ResponseBody public String deleteAssets(String id) { int d = assetsService.deleteAssets(id); return "AssetsList"; } /** * 修改 */ @RequestMapping( "/updateAssets") @ResponseBody public String updateAssets(@RequestBody Assets assets) { try{ List<Assets> all = assetsService.getAll(); for(int i=0;i<all.size();i++){ if(all.get(i).getNo().equals(assets.getNo()) && !all.get(i).getId().equals(assets.getId())){ return "202"; } } assetsService.updateAssets(assets); return "200"; }catch (Exception e){ e.printStackTrace(); return "201"; } } /** * 按照ID查询 */ @RequestMapping( "/findAssetsById") @ResponseBody public Assets findAssetsById(String id,Model model,HttpServletRequest request) { Assets assets= assetsService.findAssetsById(id); return assets; }
以上就是部分功能展示,从整体上来看,本系统功能是十分完整的,界面设计简洁大方,交互友好,数据库设计也很合理,规模适中,代码工整,清晰,适合学习使用。
好了,今天就到这儿吧,小伙伴们点赞、收藏、评论,一键三连走起呀,下期见~~