java开发的ERP.docx
packagecom.tsO17.zjh:importjava.text.NumbcrFonnat;importjava.uti1.Iterator;importjava.uti1.1.ist;importjava.uti1.Map:importjava,ti1.Scanner:importco®.tsO17.zjh.dao.II)eptD0:importcoo.tsO17.zjh.<tao.IEmpDAO:importcoa.tsO17.zjh.dao.factory.DAOFactory;importco®.tsO17.zjh.vo.Department;importco®.tsO17.zjh.vo.Emp1.oyee:pub1.icc1.assDcpartmentOperate(privateIDcptDAOdao=nu1.I;Scannersen=nu1.1.;pub1.icDcpartnicntOpcrateO(this.dao=I)AOactory.getIDemptDAOInstanceO;sen=newScanner(System,in);pub1.icvoidUddDepartmerit()System.out.print1.n():System,out.print1.n(H添加制门悟息"hSystem.out.print111(m=*);System.out.Print("清输入部门名称:");Stringdept,Namc=sen.nextO:DepartmentrepeatDept=getDepartmentByName(deptName);if(repeat1.>ept!=nu1.1.)Isten.out.PrirH1.n(您输入的部名巳存在');return:Departmentdept=newDepartmentO:dept.SCtDeptNaec(dcptNamc):boo1.eanf1.ag=fa1.se;tryf1.ag=this.dao.doCrea1.c(dept);catch(Exceptione)e.printStackTrace();if(f1.ag)(.print1.n("添加部门成功.):>e1.seSystem.out.PrintInc1.添加部门失败");pub1.icvoidde1.Depnrtment()System,out.print1.n():System.out.Print("清输入要划除的部1编号:");intdeptId=sen.next1.nt();Departmentdept=gctDci>art«cntById(dcptId):if(dept=nu1.1.)(System.out.PrinUn(您输入的部门不存在");return:IEmpDAOempD0=DAOFactory.getI1.impDxW1.nstanceO:1.ist<Emp1.oyee>eps=nu1.1.:try(cmps三e11p1.)A0.findByDeptId(deptId);catch(Exceptione)e.PrintStackTraceO:if(emps!=nu1.1.)(this.ShowDepnrtment(dept):if(emps.sizeO>0).SyS1.Cm.OUhprini1.nC该部门中有员工存在.若就除该部门,则相应的员工也会被超除.确定S*¾(yn)?*);Stringopt=sen.next();if(opt.Cqua1.sIgnoreCase(wy,>)boo1.eanf1.ag=fa1.se:try(empD().doth?IeteByDeptId(deptId);f1.ag=this.dao.doDeIete(deptId):catch(Exceptionc)(e.printStackTrace();)if(f1.ag)System,out.Prin1.InC粼除部门成功):e1.seSystem.out.PrintJnC田除部门失S):)e1.seSystem,out.PriInIn("魂定要的,除该部门信息吗(yn)?*):Stringopt三sen.next();if(opt.equa1sIgnoreCase(wyw)Ixxi1.eanf1.ag=fa1.se:tryIf1.ag=this.dao.doDeIete(deptId);catch(Exceptione)(e.PrintStackTraceO:)if(f1.ag)System,out.PrintIn('itt除部门成功.):e1.se(System.out.printing剧除部门失JS.):)pub1.icvoidfindA11()1.ist<Department>depts=nu1.1:try(depts=this.dao.FindA1.1.0:catch(Exceptione)e.printStackTrace();if<<kts!=nu1.1.&adepts.sizc!=0)(this.Showftcpartment(depts);e1.se(Systen.out.Print1.nC没有部f信息);pubIicvoidfindDepartmentO(intopt;do(this.ShouFindMenuO:opt=sen.nextIntO:switch(opt)case1:this.findByDe>tIdO:break:CaSe2:this.fir1.ByDctnameO:break;case0:return:whi1.e(opt!=0);pub1.icvoidfindByDeptnameOSystem.out.print1.n();System.out.PrirHc请输入查找的部门名称:"):Stringdcp1.Name=sen.nextO;Departmentdept=get1.>epartBentByNa11e(deptNa三e);if(dept!=nu1.1.)this.ShouDcpartment(dept):e1.seSystem.out.PrintIn(.相关信息不存在");pub1.icvoidFindByDeptIdO(Systmout.rint1.n();System.out.Print("i1输入要查找的部门号:*);intdeptId=sen.nextInt();Departmentdept=geiDepart*entById(deptId):if(dept!=nu1.1.)(this.ShouDepartment(dept);e1.seSystem.out.Prin1.In("相关信息不存在");pub1.icvoidUpdateDepartmentOSystem.out.print1.n():SySum.。U1.mih输入要更新的部:编号:int<ktId=sen.ncxt1.nt():Departmentdept=getOepartBentById(deptId);if(dept=nu1.1.)ISystem.out.PrintIn("您输入的部门不存在");return:this.ShowDepartment(dept);System.out.print1.n("更蓊部门信息”):System,out.print111("=");System.out.print请输入新的部门名称:*);StringdeptName=sen.next();DepartmentrepeatDcpt=get1.karx11cn1.ByNamc(dcptNa11c):whi1.e(repeatDept!=nu1.1.)(:cm.out.Prirn1.n(您输入的部名杯已存在,请更新输入.):de)tNaroe=sen.nextO:repeatDcpt=getDcpartmentByNaroe(dciNano):Departmentnew1.)ept=newDeparteent():new1.)ept.SetDeptId(deptId);ncwDept.SCtDeptName(dcptme):boo1.eanf1.ag=fa1.se:try(f1.ag=this.dao.doUpdate(nevDept):CatCh(Exceptione)e.printStackTrace();if(f1.ag)(System.out.PrintIr(更新员工信息成功;e1.seSystem.out.PriZ1.n("更新员工信息失败"):pub1.icvoidsho*CroupAvgSaIaryAboutDeptO(Map<Integer.Departmcnt>加PtMdPnu1.1.;Map<Integer.Doub!e>avgSa1.ary=nu1.1.:try(<tetMap=this.dao.RetDepartrncntWapO:avgSa1.arythis.dao.getAverageSaIiiryByGroupO;catch(Exceptione)e.PrintStackTraceO:System.out.print1.n();System.out.print1.n("t部门平均薪水System.out.print1.n();System.out.print1.n("t部门熔号V部门名称t平均薪水.):System,out.printIn("=*):Iterator<Irteger>it=avgS<1.ary.keySet().iterator();NumberFormatfouat=NumberFoi-Bat.ge11nstance();t11rriat.SetMaxiHuaFraction1.)iNISa):whi1.e(it.hasNcxiO)(Integerid=it.next();System,out.printIn(,t*+id.intVa1.ue(),tt"+(ieptMap.get(id),getIteptNamt?O,tr+format,format(avgSa1.ary.get(id):System.out.print1.n();pub1.icvoidShowEnipCountAboutDept()Map<Integer,Integer>empCountMap=nu1.1.:Map<In1.CRer.Dcpartment>deptMap=nu1.1.;tryempCountMap=this.dao.getE三pCountyGroup();dept>=this.dao.getDepartment>():CatCh(Exceptionc)e.PrintStackTraceO;System,out.print1.n():Systmout.rint1.n("t部门员工信息V;System.out.print1.n();System.out.print1.n("tt名称t人数");System,<.t.rint1.n("=r):Iterator<Intcger>it=cmContMa.kcySct().itorator0:whi1.e(it.hasNext()(Integerid=it.next();System.out.print1.n(',t-+id.intVa1.ue()rtr+deptMap.get(id),getDcptNamcOt1."+empCountMap.get(id);System,out.print1.n<):pub1.icvoidShowTopAnd1.owSa1.aryAboutDeptOIMa<Integer.Doub1.e>IopSa1.aryMap=nu1.1.:Map<Integer.Doub1.e>IowSaIaryMiip二nu1.1;Map<Integer.Department>depts=nu1.1.:try(topSaIaryMap=this.dao.getTopSaIaryByGroupO;Iou-Sa1.aryMap=this.dao.get1.owSa1.aryByGroup():depts=this.dao.getDeparImentMapO:catch(Exceptione)e.PrintStackTraceO;System.out.print1.n(Htt部门最高薪水与最低薪水.);System.out.pri11t1.n();System.out.print1.n("t部门编号H部门名称1.最高薪水k最低薪水”);Systef1.I.<ut.printInc='):Itcrator<Intcger>It=CopSa1.aryIfap.keySe1.O.iterator0:NumberFormatfo!-三atNumberForaat.getInstanceO:foikit.SRtMaxiBUiiFrac1.ionDigiIs;whi1.e(it.hasNext()(Integerid=it.next0:System.out.printIn("t*+id.intVa1.ue()tt"+depts,get(id),getDeptNameO+tt",t.11r.,t<.Hiiat(ps.ity1.ii.get(id).f1.atVa1.ue()"t+fo11nat.format(IowSa1.aryMap.get(id),f1.oatVa1.uc():System.out.print1.n();pub1.icvoidShowDepartmentNoEepO1.ist<Department>depts=nu1.1.:trydepts三this,d<o.getDepartmentWithoutE11p();catch(Exceptione)e.PrintStackTraceO:System.out.print1.n("t员工数为零的部门”);System,out.print1.n():System.out.print1.n(i,t部门海号部门名称D;System.out.print1.nC"=*);Iterator<Department>it=depts,iteratorO;whi1.e(it.hasNcxiO)(Departmentdept三it.next();System,out.printIn(,t*+dept.getDeptId()+*t*+dept.getDeptName():System.out.print1.n();pub1.icvoidshow1.)epartmentSu11三arize()(i11opt:do(this.shouSu11三arizeMenu();opt=sen.nextIntO:switch(opt)caseI:this.showGrou>vgSa1.aryAbout1.>e>tO:break;case2:this.ShowEBpCountAboutDept();break:case3:this.ShovTopAnd1.ovSaIaryAboutDept();break;case4:this.ShowDepartmentNoEmpO:break;case0:return:defau1.t:SyStem.out.pIaintIn("隽的输入有误”);whi1.e(opt!=O);privateDePartmntgetDepartmentById(intdeptId)Departmentdept=nu1.1.:trydept=this.dao.findById(deptId);catch(Exceptione)e.PrintStackTraceO:returndept:privateDepartmentgotDepatmentByNainc(StringdcptNa三e)DepartmentrepeatDept三nu1.1.;tryrepeat1.k*pt=this.dao.findBymo(deptName):M1.Ch(Exceptione1.)(e1.PrintStackTraceO:returnrepeatDept:privatevoidShowDcpartment(Departmentdept)(System.out.print1.n();System,out.print1.n("t部1信息,);S?-t.<11.jIrin11n(r=,):Systmout.print1.n(Htf1.>"1:"+dept,getDeptIdO):SyStea1.OUtprint1.n("t部门名称:*+dept,getDeptNameO);System.out.print1.n();privatevoidShowDepartment(1.ist<Department>depts)(System,out.print1.n():System,out.print1.n(Ht部门信息.);System.out.print1.n();System.out.print1.n(Ht¼t名r);System,out.prin11n(n=r);Iterator<Department>it=depts,iter<tor();whi1.e(it.hasNext()(Departmen1.dept=it.nextO;System.out.print1.n(,t*+dept.gctDetId()+9t+dept.getDeptName();System.out.print1.n():privatevoidShowFindMenuOSystem,out.print1.n():System.out.print1.n(Ht部门信息交询”);System.out.printIn("=System.out.print1.n(Rt1.按部门编号查询D:System.out.print1.n("2.按部门名称查询V:System.out.print1.n(HtO.退出查询.);System.out.print1.n();System.out.print("请选择:'):privatevoidshowSu11三arizeMenu()(System,out.print1.n():System.out.print1.n(Ht%看部1汇总");System.out.prin11n("=SyStea<m.print1.n("t1.查看部门平均薪水”):System.out.print1.n(Ht2.Sysi<H.<.u.jint1.n("t3.System.out.print1.n("t4.System.out.print1.n(HtO.System.out.print1.n();System,out.print<"查看部门员工数;专看部门最商最低工费”):查看没有员工的部门h退出操作);请选择:>:packagecom.tsO17.zjh:importjava.text.NumberFonmit;importjava.uti1.HashSet;importjava.uti1.Iterator:importjava.uti1.1.ist:importjava.uti1.Map;importjava,uti1.Scanner;importjava,uti!.Set:importCof1.1.tsO17.zjh.d<o.IDeptDAO;importco®.tsO17.zjh.dao.IEmpDAO:importco三.tsO17.zjh.dao.factory.DAOFactory;importcom.ts017.zjh.vo.Department;importco®.tsO17.zjh.vo.Emp1.oyee;pub1.icc1.a5sErnpIoyeeOperai.privateIEttpDAOdao=nu1.1.:Scannersen三nu1.1.;pub1.icEmp1.oyeeOperateOhis.dao=DAOFactory.getIEepDAOIns1.anceO;sen=newScanner(System,in);pub1.icvoidaddE三p()<System.out.print1.n():System.out.print1.n("t1.f66±,0r):System,out.prin11n("=w);EBPIQyoeemp=inputNewEmpInfoO:boo1.eanf1.ag=fa1.se:tryf1.ag=this.dao.doCreate(emp):catch(Exceptione)e.printStackTrace();if(f1.ag)(System.out.printIn(r1.f6±1Q,t,:,);e1.seSystem.out.printInC1.I6±10f§*0,):pub1.icvoidUpdateEmp0System.out.print1.n();System.out.print(nCefaenOAA±,:"):intCmD1.d三sen.nextIntO:Emp1.oyeeOmP=get1.mp1.oyeeBy1.d(emp1.d):if(em>=nu1.1.)System.out.Prin1.In("A0f36A0±1CP»®6U"):return;this.ShowEmp(e«p):System.out.printt¢DAAO±1QDATCe):System.out.prin11n(,=t)Emp1.oyeenewKmp=inputNewEBpInfo():ncwEmp.sct&npk1.(crn1.d>:boo1.eanf1.ag=fa1.se;try(f1.ag=this.dao.doUpdate(newCmp):catch(Exceptione)e.printStackTrace();if(f1.ag)(System.out.print1.n(,±1Q,ODA5t1.:,);e1.seSystem.out.printIn(r6±1Q.(1。AC§'O');pub1.icvoidfind1.mp()intopt:do(ShowFindHenuO:opt=sen.nextIntO;switch(opt)ease1:this.findByEapId();break:CaSe2:this.findBypName();break;case3:this.HndBySex0:break;case4:this.findByDepartment();break:case5:this.findByPassport0;break;case0:return;whi1.e(opt!=0):pub1.icvoidFindByPassport()(Systmout.rint1.n();System.out.print(t*£3E电6'6OA1YQA:;Stringpassport=sen.next();Emp1.oyeeemp=getEmpIoyeeByPassport(passport):if<etnp!=nu1.1.)this,shodp(enp);e1.seSystem.out.print1.nCf,OT10DAVC,):pub1.icvoidfIndByDepartmentOSystem,out.print111(mEate2iAA±6。At);intdeptId=inputDepartnent1dO:Departmentdept三getDeparteentById(deptId);if(dept=nu1.1.)(System.out.print1.n(rAdfa¢e2cAA2»三U"):return;1.ist<Emp1.oyee>cups二nu1.1.;try(emps=this.dao.findByDept1.d(r1.eptId);Ca1.Ch(Exceptione)e.PrintStackTraceO;if(Cff1.DS!=nu1.1.&&cms.sizc!=0)(this,shovrfp(enps);e1.seSystem.out.print1.n(r.2iAAA6÷,CT):pub1.icvoidfJndBySex0(System.out.print1.n();System,out.print(*,eEaEeAif1.,6A6±,0D±:*);Stringsex=sen.next():1.ist<Emp1.oyee>caps=getEmpIoyeesBySex(sex);if(e<nps!=nu1.14&emps.size()!=O)this,shoufp(eps):e1.seSystem.out.print1.n(",r1.10DAIC*);pub1.icvoidFindByEmpName()System,out.print1.n():System.out.print("CftA2<OOA÷1C50OAQ:"):StringempNa11?=sen.next();1.ist<Emp1.oyee>e三ps=get1.mp1.OyeesByName(er(>Na三e):if(CmPSI=nu1.1.&&emps.sizeO!=O)(this.shovE三p(e三ps);e1.seSystem.out.printInCfOi10DAIC,):pub1.icvoidfindByEmpIdOfSystem.out.print1.n():System.out.print("C2cOOA±1口&A:H):internp1.d=sen.nextIntO;pIoyecemp=getEmp1oyeeById(empId):if(emp!=nu1.1.)this.ShoUEBP(enp):e1.seSystem.out.printIn(*,tOO,AO±,11DAIC*):pub1.icvoidfindA1.1.O1.ist<Emp1.oyee>caps=nu1.1.;try(Cf1.ips=this.dao.findA1.1.O:catch(Exceptione)e.printStackTraceO;>if(emps!=nu1.1crops,size()!=O)(this.showp(eBps):e1.seSystem,out.printInCA»D±100ATC,):pub1.icvoid(Ic1.ctcEmpOSystem.out.print1.n("t):System.out.print("Cefafeet,yA±,A£"):intc<nr>Id=sen.nextIntO:Eep1.oyeeemp=get1.mp1.oyeeById(empId);if(e<n>nu1.1.)(System.out.Prin1.1.n("AUCaEeAO±'QOATC2»aeUw);return;this.ShowErnp(c«p):System.out.print("6I1.*t%iyjA6±,0A(yn)?t);Stringopt=sen.nextO;if(opt.Cqua1.sIgnoreCase(,Y,)Iboo1.eanf1.ag=fa1.se:try(f1.ag=this.dao.doDe1.ore(cropId):catch(Exceptione)e.printStackTrace();if(f1.ag)(System.out.print1.n(*6±1CIDAIC0NE3y:e1.seSys1.cm.out.Prin1.In("6±1OfC,yf§°0”):privateintinputDep<rtme11tId()IDeptDAOdeptPAO=DAOFactory.getIOemptDAO1.nstanceO:1.isi<Depart11cnt>depts=nu1.1.:trydepts=deptDAO.findA1.10:catch(Exceptione)e.PrintStackTraceO:intdeptId:boo1.eanva1.id=fa1.se;Set<IntC8er>CMPIdS=newHashSetX1.ntc«er>0:do(System.out.print1.n()三System.out.print1.n(rtfij62iAAAO±1r);System.out.print1.n(*t÷At0,A,):System,out.print1.n(*,=三=三=三=三=w);Iterator<Department>it=depts,iterator();DePar1.meIHdept=nu1.1:whi1.e(it.hasNcxt()(dept=it.next();CmPIds.add(dept.getDeptId();System.out.print1.n(",t"+dept,get1.)ept1.d+"tdept.RetDcptNamcO);System.out.print(reRi:r):deptId三sen.nextInt();va1.id=emp1.ds.contains(deptId):if(!va1.id)(System,out.print1.n(*taEeA2eAA2A6t6");whi1.e(!va1.id):returndept1.d;privateKmp1.oyeeinputNewEmpInfo()(System,out.printCCeEaEeO±1QOOAu:9);StringenpName=sen.nextO:Systmout.print(*CESt#±1QOO±f1.:,);StringempSex三sen.next();System.out.print("Qet4iOnO±1QEiiOUaeAA:9):intdept1.d=this.inputDepartentIdO:System,out.print(HCE3t±1G1YOQsA:"):Stringpassport三sen.nextO;System,out.printCeEaEe±1QOE:t);douh1.esa1.ary=sen.nextDoub1.e():Eap1.oyeenewEmp三newEmp1.oyee();newEmp.SetEmpName(empName):newEmp.set)Sex(e三pSex):ncwEm.SetDeptId(deptId):newEmp.setPassport(passport);new1.mp.setSaIary(sa1ary):returnncwErnp:privateEmp1.oyeegetEmp1oyeeById(intemp1.d)IEmp1.oyeeemp=nu1.1.:try«np=this.dao.findyId<CBpId);catch(Exceptione)e.PrintStackTraceO:returnemp;private1.ist<E11p1.oyee>getEmp1OyeesByName(Stringe三pName)1.ist<Emp1.oyee>e三ps=nu1.1.;tryCtnps=this.dao.fIndByName(empName):catch(Exceptione)e.printStackTrace();returncrops:private1.ist<E11p1.oyee>getEmp1OyeesBySex(Stringsex)(1.ist<Emp1.oyee>e三ps=nu1.1.;try(Cff1.PS=this.dao.findBySex(sex);Cateh(Exceptione)e.printStackTrace();returnemps:privateEmp1.oyeego11j11p1<yeeByPas