基于springboot vue的企業(yè)OA系統(tǒng)設計與實現(xiàn)_第1頁
基于springboot vue的企業(yè)OA系統(tǒng)設計與實現(xiàn)_第2頁
基于springboot vue的企業(yè)OA系統(tǒng)設計與實現(xiàn)_第3頁
基于springboot vue的企業(yè)OA系統(tǒng)設計與實現(xiàn)_第4頁
基于springboot vue的企業(yè)OA系統(tǒng)設計與實現(xiàn)_第5頁
已閱讀5頁,還剩77頁未讀 繼續(xù)免費閱讀

付費下載

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權,請進行舉報或認領

文檔簡介

目錄第一章. 緒論 [19]。通過本次系統(tǒng)的設計與實現(xiàn),充分的讓我將平時所學的知識應用到實際的系統(tǒng)當中去,讓我認識到開發(fā)系統(tǒng)需要提前準備和學習哪些方面的知識,根據(jù)系統(tǒng)需要和企業(yè)方面需求而設計實現(xiàn)相應的功能和開發(fā)系統(tǒng)會用到的技術來作為我的需求分析。這次企業(yè)OA系統(tǒng)的設計和實現(xiàn)使用了兩種不同的角色權限:用戶(也稱職員)和管理員(包括企業(yè)管理者),以實現(xiàn)系統(tǒng)整個體系的設計,使其能夠在系統(tǒng)中對業(yè)務模塊和其他信息進行操作管理,讓企業(yè)使用人員對系統(tǒng)界面的簡潔性和簡單而有效的操作有了更佳的體驗感,同時也會大大增加職員及企業(yè)管理崗對工作的滿意程度。但就我個人自身情況而言,知識肯定是不足的,需要更長時間的學習,能力也是慢慢在生活中一點一點磨礪出來的,所經(jīng)歷的必定有些許不足,希望在今后的時光,辛苦各位良師益友辛苦賜教,萬分感謝參考文獻陳嘉杰.基于.NET的企業(yè)OA系統(tǒng)的設計與實現(xiàn)[D].華南理工大學[2024-04-23].DOI:CNKI:CDMD:2.2010.228212.趙俊.SG公司辦公自動化(OA)系統(tǒng)實施項目的全面質(zhì)量管理研究[D].北京郵電大學,2023.DOI:10.26969/ki.gbydu.2023.000939.趙俊.SG公司辦公自動化(OA)系統(tǒng)實施項目的全面質(zhì)量管理研究[D].北京郵電大學,2023.DOI:10.26969/ki.gbydu.2023.000939.董京茁.X人壽保險股份有限公司OA系統(tǒng)實施案例研究[D].河北工業(yè)大學,2022.DOI:10.27105/ki.ghbgu.2022.001065.郭慧芳.X公司協(xié)同辦公信息系統(tǒng)優(yōu)化研究[D].河北工業(yè)大學,2022.DOI:10.27105/ki.ghbgu.2022.001015.洪孜穎.基于OA系統(tǒng)的企業(yè)內(nèi)部審批流程優(yōu)化研究[D].汕頭大學,2022.DOI:10.27295/ki.gstou.2022.000401.ZhengM,LiangJ,HuangX,etal.Navigatingoffshoreaquaculture:Efficientstrategiesforpolicymakersintransition[J].OceanandCoastalManagement,2024,249107019-.ZixinJ,ZhipengD,XuezhengW,etal.PANDEMIC:Occupancydrivenpredictiveventilationcontroltominimizeenergyconsumptionandinfectionrisk[J].AppliedEnergy,2023,334120676-120676.YingX,YaC,YujianT,etal.DesignandImplementationofOfficeAutomationSystemBasedonInternetofThingsTechnology[J].WirelessCommunicationsandMobileComputing,2022,2022ZhangX.Designandimplementationofcross-regionalofficeautomationsystembasedoncloudcomputing[J].ComputerInformatizationandMechanicalSystem,2023,6(5):68-72.ZhangX.Classificationofgraphicofficeinformationinintelligentofficeautomationsystem[J].AcademicJournalofComputingInformationScience,2022,5(14):Spring官網(wǎng).SpringBoot中文文檔[EB/OL].SpringBoot中文文檔(),[引用日期2024-04-23]Vue.js.什么是Vue?.[EB/OL].簡介|Vue.js(),[引用日期2024-04-23]都霓凱,解佳慧,蔣杰.基于SpringBoot的競賽設備共享平臺后端開發(fā)探析[J].中國設備工程,2023,(14):264-269.尚盟人.指紋細化算法的研究及應用[D].阜陽師范大學,2023.DOI:10.27846/ki.gfysf.2023.000205高衛(wèi)東,侯方迪,張勇等.電力調(diào)度信息披露系統(tǒng)登錄權限管控模型[J].微型電腦應用,2023,39(05):88-90+98.張洪哲.Y公司移動協(xié)同辦公管理效率優(yōu)化研究[D].中國政法大學,2023.DOI:10.27656/ki.gzgzu.2023.000016張晶.基于OA辦公自動化系統(tǒng)在醫(yī)院信息化管理的實踐與應用[J].辦公自動化,2023,28(07):14-14+27YangY.DesignandImplementationofStudentInformationManagementSystemBasedonSpringboot[J].AdvancesinComputer,SignalsandSystems,2022,6(6):王雅瓊.基于北斗衛(wèi)星導航系統(tǒng)的油氣田落地應用場景及物聯(lián)網(wǎng)架構研究[C]//中國石油新疆油田分公司(新疆礫巖油藏實驗室),西安石油大學,陜西省石油學會.2022油氣田勘探與開發(fā)國際會議論文集Ⅲ.華北石油通信有限公司;,2022:7.DOI:10.26914/kihy.2022.061626代麗,羅波,趙冬鳳等.生產(chǎn)經(jīng)營一體化SEC儲量評估對策研究與應用[C]//中國石油新疆油田分公司(新疆礫巖油藏實驗室),西安石油大學,陜西省石油學會.2022油氣田勘探與開發(fā)國際會議論文集Ⅰ.大港油田分公司勘探開發(fā)研究院;中國石油大學(北京)CNPC物探重點實驗室;,2022:9.DOI:10.26914/kihy.2022.060863ChenJX,LiuZJ,QiaoPL.ResearchonSupportingPlatformforEnterpriseOASoftwareSystem[J].AdvancedMaterialsResearch,2013,2649(791-793):1644-1645.羅翔.企業(yè)應用系統(tǒng)[EB/OL].(2024-1-17)[2024-4-23]程序員二師兄(aaluoxiang)-G.附錄通訊錄controller層主要代碼 @RequestMapping("addrmanage") publicStringaddrmanage(@SessionAttribute("userId")LonguserId,Modelmodel, @RequestParam(value="page",defaultValue="0")intpage, @RequestParam(value="size",defaultValue="10")intsize ){ Useruser=uDao.findOne(userId); Set<String>catalogs=auDao.findByUser(user); Pageablepa=newPageRequest(page,size,newSort(Direction.ASC,"dept")); Page<User>userspage=uDao.findAll(pa); List<User>users=userspage.getContent(); List<DirectorUser>nothandles=auDao.findByUserAndShareuserNotNullAndHandle(user,false); model.addAttribute("count",nothandles.size()); model.addAttribute("catalogs",catalogs); model.addAttribute("users",users); model.addAttribute("page",userspage); model.addAttribute("url","inaddresspaging"); return"address/addrmanage"; }考勤controller層主要代碼@Controller@RequestMapping("/")publicclassAttendceController{ Loggerlog=LoggerFactory.getLogger(getClass()); @Autowired AttendceDaoattenceDao; @Autowired AttendceServiceattendceService; @Autowired UserDaouDao; @Autowired UserServiceuserService; @Autowired TypeDaotypeDao; @Autowired StatusDaostatusDao; List<Attends>alist; List<User>uList;Datestart,end;Stringmonth_; //格式轉(zhuǎn)化導入 DefaultConversionServiceservice=newDefaultConversionService(); //考勤前面的簽到 @RequestMapping("singin") publicStringDatag(HttpSessionsession,Modelmodel,HttpServletRequestrequest)throwsInterruptedException,UnknownHostException{ //首先獲取ip InetAddressia=null; ia=ia.getLocalHost(); Stringattendip=ia.getHostAddress(); //時間規(guī)范 Stringstart="08:00:00",end="17:00:00"; service.addConverter(newStringtoDate()); //狀態(tài)默認是正常 longtypeId,statusId=10; Attendsattends=null; LonguserId=Long.parseLong(session.getAttribute("userId")+""); Useruser=uDao.findOne(userId); SimpleDateFormatsdf=newSimpleDateFormat("yyyy-MM-dd"); Datedate=newDate(); Stringnowdate=sdf.format(date); //星期判斷該日期是星期幾 SimpleDateFormatsdf3=newSimpleDateFormat("EEEE"); //截取時分 SimpleDateFormatsdf4=newSimpleDateFormat("HH:mm"); //截取時分秒 SimpleDateFormatsdf5=newSimpleDateFormat("HH:mm:ss"); //一周當中的星期幾 Stringweekofday=sdf3.format(date); //時分 Stringhourmin=sdf4.format(date); //時分秒 Stringhourminsec=sdf5.format(date); //System.out.println("星期"+weekofday+"時分"+hourmin+"時分秒"+hourminsec); //System.out.println(date); Longaid=null; //查找用戶當天的所有記錄 Integercount=attenceDao.countrecord(nowdate,userId); if(pareTo(end)>0){ //在17之后簽到無效 System.out.println("不能簽到"); model.addAttribute("error","1"); } if(pareTo("05:00:00")<0){ //在凌晨5點之前不能簽到 System.out.println("不能簽到"); model.addAttribute("error","2"); } elseif((pareTo("05:00:00")>0)&&(pareTo(end)<0)){ //明確一點就是一個用戶一天只能產(chǎn)生兩條記錄 if(count==0){ if(pareTo(end)<0){ //沒有找到當天的記錄就表示此次點擊是上班就是用來判斷該記錄的類型 //上班id8 typeId=8; //上班就只有遲到和正常 if(pareTo(start)>0){ //遲于規(guī)定時間遲到 statusId=11; }elseif(pareTo(start)<0){ statusId=10; } attends=newAttends(typeId,statusId,date,hourmin,weekofday,attendip,user); attenceDao.save(attends); } } if(count==1){ //找到當天的一條記錄就表示此次點擊是下班 //下班id9 typeId=9; //下班就只有早退和正常 if(pareTo(end)>0){ //在規(guī)定時間晚下班正常 statusId=10; }elseif(pareTo(end)<0){ //在規(guī)定時間早下班早退 statusId=12; } attends=newAttends(typeId,statusId,date,hourmin,weekofday,attendip,user); attenceDao.save(attends); } if(count>=2){ //已經(jīng)是下班的狀態(tài)了大于2就是修改考勤時間了 //下班id9 if(pareTo(end)>0){//最進一次簽到在規(guī)定時間晚下班正常 statusId=10; }elseif(pareTo(end)<0){ //最進一次簽到在規(guī)定時間早下班早退 statusId=12; } aid=attenceDao.findoffworkid(nowdate,userId); Attendsattends2=attenceDao.findOne(aid); attends2.setAttendsIp(attendip); attenceDao.save(attends2); attendceService.updatetime(date,hourmin,statusId,aid); AttendsaList=attenceDao.findlastest(nowdate,userId); } } //顯示用戶當天最新的記錄 AttendsaList=attenceDao.findlastest(nowdate,userId); if(aList!=null){ Stringtype=typeDao.findname(aList.getTypeId()); model.addAttribute("type",type); } model.addAttribute("alist",aList); return"systemcontrol/signin"; }討論區(qū)controller層主要代碼/** *討論區(qū)超級管理員管理 *@return */ @RequestMapping("adminmanage") publicStringadminManage(@RequestParam(value="page",defaultValue="0")intpage,HttpSessionsession, @SessionAttribute("userId")LonguserId,Modelmodel){ Page<Discuss>page2=disService.paging(page,null,1L,null,null,null); setPagintMess(model,page2,"/chattable","manage","超級管理員"); session.removeAttribute("returnUrl"); session.setAttribute("returnUrl","adminmanage"); return"chat/chatmanage"; } /** *討論區(qū)管理 *@return */ @RequestMapping("chatmanage") publicStringchatManage(@RequestParam(value="page",defaultValue="0")intpage, @SessionAttribute("userId")LonguserId,Modelmodel,HttpSessionsession){ Page<Discuss>page2=disService.pagingMe(page,null,userId,null,null,null); setPagintMess(model,page2,"/metable","manage","我的管理"); model.addAttribute("me","me"); session.removeAttribute("returnUrl"); session.setAttribute("returnUrl","chatmanage"); return"chat/chatmanage"; } /** *討論區(qū)列表 *@parampage *@parammodel *@return */ @RequestMapping("chatlist") publicStringchatList(@RequestParam(value="page",defaultValue="0")intpage,Modelmodel,HttpSessionsession){ Page<Discuss>page2=disService.paging(page,null,null,null,null,null); setPagintMess(model,page2,"/seetable",null,"討論列表"); session.removeAttribute("returnUrl"); session.setAttribute("returnUrl","chatlist"); return"chat/chatmanage"; }日程controller層主要代碼@RequestMapping("daymanage") privateStringdaymanage(@SessionAttribute("userId")Longuserid, Modelmodel,@RequestParam(value="page",defaultValue="0")intpage, @RequestParam(value="size",defaultValue="10")intsize ){ List<SystemTypeList>types=typedao.findByTypeModel("aoa_schedule_list"); List<SystemStatusList>statuses=statusdao.findByStatusModel("aoa_schedule_list"); List<Order>orders=newArrayList<>(); orders.add(newOrder(Direction.DESC,"statusId")); orders.add(newOrder(Direction.DESC,"createTime")); Sortsort=newSort(orders); Pageablepa=newPageRequest(page,size,sort); Useruser=udao.findOne(userid); Page<ScheduleList>myday=daydao.findByUser(user,pa); List<ScheduleList>scheduleLists=myday.getContent(); model.addAttribute("schedules",scheduleLists); model.addAttribute("types",types); model.addAttribute("statuses",statuses); model.addAttribute("page",myday); model.addAttribute("url","daymanagepaging"); model.addAttribute("ismyday",1); return"daymanage/daymanage"; } @RequestMapping("daymanagepaging") privateStringdaymanagepaging(@SessionAttribute("userId")Longuserid, Modelmodel,@RequestParam(value="page",defaultValue="0")intpage, @RequestParam(value="size",defaultValue="10")intsize ){ List<SystemTypeList>types=typedao.findByTypeModel("aoa_schedule_list"); List<SystemStatusList>statuses=statusdao.findByStatusModel("aoa_schedule_list"); Sortsort=newSort(newOrder(Direction.ASC,"user")); Pageablepa=newPageRequest(page,size,sort); Useruser=udao.findOne(userid); Page<ScheduleList>myday=daydao.findByUser(user,pa); List<ScheduleList>scheduleLists=myday.getContent(); model.addAttribute("types",types); model.addAttribute("statuses",statuses); model.addAttribute("schedules",scheduleLists); model.addAttribute("page",myday); model.addAttribute("url","daymanagepaging"); model.addAttribute("ismyday",1); return"daymanage/daymanagepaging"; }文件controller層主要代碼 @RequestMapping("filemanage") publicStringusermanage(@SessionAttribute("userId")Longuserid,Modelmodel){ System.out.println(userid); Useruser=udao.findOne(userid); FilePathfilepath=fpdao.findByPathName(user.getUserName()); System.out.println(filepath); if(filepath==null){ FilePathfilepath1=newFilePath(); filepath1.setParentId(1L); filepath1.setPathName(user.getUserName()); filepath1.setPathUserId(user.getUserId()); filepath=fpdao.save(filepath1); } model.addAttribute("nowpath",filepath); model.addAttribute("paths",fs.findpathByparent(filepath.getId())); model.addAttribute("files",fs.findfileBypath(filepath)); model.addAttribute("userrootpath",filepath); model.addAttribute("mcpaths",fs.findpathByparent(filepath.getId())); return"file/filemanage"; }通知面板controller層主要代碼 @RequestMapping("infrommanagepaging") publicStringinform(@RequestParam(value="page",defaultValue="0")intpage, @RequestParam(value="baseKey",required=false)StringbaseKey, @RequestParam(value="type",required=false)Stringtype, @RequestParam(value="status",required=false)Stringstatus, @RequestParam(value="time",required=false)Stringtime, @RequestParam(value="icon",required=false)Stringicon,@SessionAttribute("userId")LonguserId, Modelmodel,HttpServletRequestreq){ System.out.println("baseKey:"+baseKey); setSomething(baseKey,type,status,time,icon,model); Page<NoticesList>page2=informService.pageThis(page,userId,baseKey,type,status,time); List<NoticesList>noticeList=page2.getContent(); List<Map<String,Object>>list=informService.fengZhuang(noticeList); model.addAttribute("url","infrommanagepaging"); model.addAttribute("list",list); model.addAttribute("page",page2); return"inform/informtable"; }登錄controller層主要代碼@RequestMapping(value="logins",method=RequestMethod.GET) publicStringlogin(){ return"login/login"; } @RequestMapping("loginout") publicStringloginout(HttpSessionsession){ session.removeAttribute("userId"); return"redirect:/logins"; }郵件controller層主要代碼 @RequestMapping("mail") publicStringindex(@SessionAttribute("userId")LonguserId,Modelmodel, @RequestParam(value="page",defaultValue="0")intpage, @RequestParam(value="size",defaultValue="10")intsize){ //查找用戶 Useruser=udao.findOne(userId); //查找未讀郵件 List<Mailreciver>noreadlist=mrdao.findByReadAndDelAndReciverId(false,false,user); //查找創(chuàng)建了但是卻沒有發(fā)送的郵件 List<Inmaillist>nopushlist=imdao.findByPushAndDelAndMailUserid(false,false,user); //查找發(fā)件條數(shù) List<Inmaillist>pushlist=imdao.findByPushAndDelAndMailUserid(true,false,user); //查找收件箱刪除的郵件條數(shù) List<Mailreciver>rubbish=mrdao.findByDelAndReciverId(true,user); //分頁及查找 Page<Pagemail>pagelist=mservice.recive(page,size,user,null,"收件箱"); List<Map<String,Object>>maillist=mservice.mail(pagelist); model.addAttribute("page",pagelist); model.addAttribute("maillist",maillist); model.addAttribute("url","mailtitle"); model.addAttribute("noread",noreadlist.size()); model.addAttribute("nopush",nopushlist.size()); model.addAttribute("push",pushlist.size()); model.addAttribute("rubbish",rubbish.size()); model.addAttribute("mess","收件箱"); model.addAttribute("sort","&title=收件箱"); return"mail/mail"; }筆記controller層主要代碼 @RequestMapping(value="noteview",method=RequestMethod.GET) publicStringtest(Modelmodel,HttpServletRequestrequest,HttpSessionsession, @RequestParam(value="page",defaultValue="0")intpage, @RequestParam(value="baseKey",required=false)StringbaseKey, @RequestParam(value="type",required=false)Stringtype, @RequestParam(value="status",required=false)Stringstatus, @RequestParam(value="time",required=false)Stringtime, @RequestParam(value="icon",required=false)Stringicon){ Longuserid=Long.parseLong(session.getAttribute("userId")+""); cataloglist=(List<Catalog>)catalogDao.findcatauser(userid); setSomething(baseKey,type,status,time,icon,model,null,null); Page<Note>upage=NoteService.sortpage(page,baseKey,userid,null,null,null,type,status,time); model.addAttribute("sort","&userid="+userid); paging(model,upage); typestatus(request); model.addAttribute("url","notewrite"); model.addAttribute("calist",cataloglist); return"note/noteview"; }計劃controller層主要代碼 @RequestMapping(value="planview",method=RequestMethod.GET) publicStringtest(Modelmodel,HttpSessionsession, @RequestParam(value="page",defaultValue="0")intpage, @RequestParam(value="baseKey",required=false)StringbaseKey, @RequestParam(value="type",required=false)Stringtype, @RequestParam(value="status",required=false)Stringstatus, @RequestParam(value="time",required=false)Stringtime, @RequestParam(value="icon",required=false)Stringicon){ System.out.println("11"+baseKey); sortpaging(model,session,page,baseKey,type,status,time,icon); return"plan/planview"; } @RequestMapping(value="planviewtable",method=RequestMethod.GET) publicStringtestdd(Modelmodel,HttpSessionsession, @RequestParam(value="page",defaultValue="0")intpage, @RequestParam(value="baseKey",required=false)StringbaseKey, @RequestParam(value="type",required=false)Stringtype, @RequestParam(value="status",required=false)Stringstatus, @RequestParam(value="time",required=false)Stringtime, @RequestParam(value="icon",required=false)Stringicon){ System.out.println("222"+baseKey); sortpaging(model,session,page,baseKey,type,status,time,icon); return"plan/planviewtable"; }OA首頁controller層主要代碼 @RequestMapping("index") publicStringindex(HttpServletRequestreq,Modelmodel){ HttpSessionsession=req.getSession(); if(StringUtils.isEmpty(session.getAttribute("userId"))){ return"login/login"; } LonguserId=Long.parseLong(session.getAttribute("userId")+""); Useruser=uDao.findOne(userId); menuService.findMenuSys(req,user); List<ScheduleList>aboutmenotice=dayser.aboutmeschedule(userId); for(ScheduleListscheduleList:aboutmenotice){ if(scheduleList.getIsreminded()!=null&&!scheduleList.getIsreminded()){ System.out.println(scheduleList.getStartTime()); SimpleDateFormatsimpleDateFormat=newSimpleDateFormat("yyyy-MM-ddHH-mm-ss");//24小時制// simpleDateFormat.parse(scheduleList.getStartTime()).getTime(); Stringstart=simpleDateFormat.format(scheduleList.getStartTime()); Stringnow=simpleDateFormat.format(newDate()); try{ longnow2=simpleDateFormat.parse(now).getTime(); longstart2=simpleDateFormat.parse(start).getTime(); longcha=start4-now2; if(0<cha&&cha<86400000){ NoticesListremindnotices=newNoticesList(); remindnotices.setTypeId(11L); remindnotices.setStatusId(15L); remindnotices.setTitle("您有一個日程即將開始"); remindnotices.setUrl("/daycalendar"); remindnotices.setUserId(userId); remindnotices.setNoticeTime(newDate()); NoticesListremindnoticeok=informService.save(remindnotices); informrelationservice.save(newNoticeUserRela

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經(jīng)權益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
  • 6. 下載文件中如有侵權或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論