JavaEE企業(yè)級(jí)項(xiàng)目開(kāi)發(fā)(第3版)課件 微課5-9:任務(wù)5.3考勤統(tǒng)計(jì)設(shè)計(jì)_第1頁(yè)
JavaEE企業(yè)級(jí)項(xiàng)目開(kāi)發(fā)(第3版)課件 微課5-9:任務(wù)5.3考勤統(tǒng)計(jì)設(shè)計(jì)_第2頁(yè)
JavaEE企業(yè)級(jí)項(xiàng)目開(kāi)發(fā)(第3版)課件 微課5-9:任務(wù)5.3考勤統(tǒng)計(jì)設(shè)計(jì)_第3頁(yè)
JavaEE企業(yè)級(jí)項(xiàng)目開(kāi)發(fā)(第3版)課件 微課5-9:任務(wù)5.3考勤統(tǒng)計(jì)設(shè)計(jì)_第4頁(yè)
JavaEE企業(yè)級(jí)項(xiàng)目開(kāi)發(fā)(第3版)課件 微課5-9:任務(wù)5.3考勤統(tǒng)計(jì)設(shè)計(jì)_第5頁(yè)
已閱讀5頁(yè),還剩7頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶(hù)提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

主講人:閭楓延遲符任務(wù)5.3考勤統(tǒng)計(jì)設(shè)計(jì)SpringAOP任務(wù)分析考勤統(tǒng)計(jì)模塊功能是根據(jù)輸入部門(mén)名稱(chēng)、開(kāi)始日期、結(jié)束日期統(tǒng)計(jì)該部門(mén)的考勤情況,同時(shí)記錄考勤統(tǒng)計(jì)信息到日志表中。本任務(wù)重點(diǎn)是將日志業(yè)務(wù)類(lèi)聲明為切面類(lèi),在切面類(lèi)的方法中聲明切入點(diǎn)與切入時(shí)機(jī)??记诮y(tǒng)計(jì)設(shè)計(jì)延遲符step01step02step03step04step05step066.視圖層2.Service層4.Controller控制層1.Mapper層3.考勤統(tǒng)計(jì)日志切面類(lèi)5.Spring配置文件考勤統(tǒng)計(jì)設(shè)計(jì)延遲符//統(tǒng)計(jì)考勤信息publicList<Map<String,Object>>countCheck(@Param("departName")StringdepartName,@Param("startDate")StringstartDate,@Param("endDate")StringendDate);<!--統(tǒng)計(jì)考勤信息

這里由三張表生成了一張視圖tb_countcheck--><selectid="countCheck"resultType="java.util.Map">select*fromtb_countcheckwheredepartName=#{departName}andcheckTimebetween#{startDate}and#{endDate}</select>1.Mapper層接口:CheckMapper.java映射文件:CheckMapper.xml考勤統(tǒng)計(jì)設(shè)計(jì)延遲符2.Service層//統(tǒng)計(jì)考勤信息publicListcountCheck(StringdepartName,StringstartDate,StringendDate);//統(tǒng)計(jì)考勤信息publicListcountCheck(StringdepartName,StringstartDate,StringendDate){returncheckMapper.countCheck(departName,startDate,endDate);}服務(wù)層接口:ICheckService.java服務(wù)層實(shí)現(xiàn)類(lèi):CheckService.java考勤統(tǒng)計(jì)設(shè)計(jì)延遲符3.考勤統(tǒng)計(jì)日志切面類(lèi)@Aspect@ComponentpublicclassCheckLogAspect{@AutowiredprivateICheckLogServicecheckLogService;privateHttpServletRequestrequest;publicHttpServletRequestgetRequest(){returnrequest;}publicvoidsetRequest(HttpServletRequestrequest){this.request=request;}//定義切入點(diǎn)表達(dá)式@Pointcut("execution(*cn.js.ccit.service.CheckService.countCheck(..))")publicvoidmypc1(){}

切面類(lèi):CheckLogAspect.java//切入時(shí)@After("mypc1()")publicvoidafterCountLog(JoinPointjoinPoint)throwsThrowable{HttpSessionsession=request.getSession();//記錄統(tǒng)計(jì)考勤的時(shí)間Datedate=newDate();DateFormatdateFormat=newSimpleDateFormat("yyyy-MM-ddHH:mm:ss");StringcheckTime=""+dateFormat.format(date);//設(shè)置用戶(hù)的IdIntegeruserId=0;//獲取查詢(xún)的IP地址Stringip=(String)session.getAttribute("ip");//設(shè)置考勤統(tǒng)計(jì)日志對(duì)象CheckLogcheckLog=newCheckLog();checkLog.setCheckTime(checkTime);checkLog.setUserId(userId);checkLog.setCheckIp(ip);//保存考勤統(tǒng)計(jì)信息到日志表中checkLogService.addCheckLog(checkLog);}}考勤統(tǒng)計(jì)設(shè)計(jì)延遲符4.Controller控制層publicvoidcountCheck(HttpServletRequestrequest,HttpServletResponseresponse)throwsIOException,ServletException{//獲取查詢(xún)的條件StringdepartName=request.getParameter("departName");StringstartDate=request.getParameter("startDate");StringendDate=request.getParameter("endDate");//將IP地址保存到會(huì)話(huà)中Stringip=request.getRemoteAddr();HttpSessionsession=request.getSession();session.setAttribute("ip",ip);//獲取Spring容器中的Bean實(shí)例ServletContextsc=this.getServletContext();WebApplicationContextwac=WebApplicationContextUtils.getWebApplicationContext(sc);//獲取考勤日志切面,保存請(qǐng)求對(duì)象CheckLogAspectcheckLogAspect=(CheckLogAspect)wac.getBean("checkLogAspect");checkLogAspect.setRequest(request);

控制端類(lèi):CheckController.java//獲取代理后的CheckService對(duì)象,對(duì)統(tǒng)計(jì)考勤方法進(jìn)行日志切入ICheckServicecheckService=(ICheckService)wac.getBean("checkService");//調(diào)用考勤服務(wù)的統(tǒng)計(jì)考勤信息方法ListcountcheckList=checkService.countCheck(departName,startDate,endDate);System.out.println(countcheckList);//保存統(tǒng)計(jì)考勤數(shù)據(jù)到會(huì)話(huà)中session.setAttribute("countcheckList",countcheckList);//跳轉(zhuǎn)到結(jié)果顯示頁(yè)面response.sendRedirect("/webOA4/countcheckinfo.jsp");}考勤統(tǒng)計(jì)設(shè)計(jì)延遲符5.Spring配置文件<h3>考勤統(tǒng)計(jì)</h3><formaction="/webOA4/check">

部門(mén)名稱(chēng):<inputtype="text"name="departName"/><br>

開(kāi)始日期:<inputtype="text"name="startDate"/><br>

結(jié)束日期:<inputtype="text"name="endDate"/><br><inputtype="submit"value="統(tǒng)計(jì)"></form>

<aop:aspectj-autoproxy/>6.視圖層考勤統(tǒng)計(jì)申請(qǐng)頁(yè)面:countcheck.jsp考勤統(tǒng)計(jì)設(shè)計(jì)延遲符<h3align="center">考勤統(tǒng)計(jì)信息</h3><tableborder="1"align="center"width="50%"cellspacing="0"bordercolor="#000000">…..<%List<Map<String,Object>>countcheckList=(ArrayList)session.getAttribute("countcheckList");for(inti=0;i<countcheckList.size();i++){Mapmap=(Map)countcheckList.get(i);Collection<String>values=map.values();List<String>list=newArrayList<>();list.addAll(values);StringcheckTime=list.get(0);StringuserName=list.get(1);StringdepartName=list.get(3);%><tr><tdalign="center"><%=i+1%></td><tdalign="center"><%=userName%></td

溫馨提示

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

評(píng)論

0/150

提交評(píng)論