版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
圖15所示:圖SEQ圖\*ARABIC15人事模塊的處理流程圖系統(tǒng)模塊功能實(shí)現(xiàn)由于基于JSP的自動(dòng)辦公系統(tǒng)涉及到的功能較多,在此只對(duì)重要的模塊即材料模塊和業(yè)務(wù)模塊的實(shí)現(xiàn)做說(shuō)明。材料模塊類別管理功能用戶登錄系統(tǒng)后,點(diǎn)擊菜單中的“材料類別”,出現(xiàn)材料類別的查看界面,在該界面點(diǎn)擊“添加類別”(或“修改”),跳轉(zhuǎn)到添加類別的界面[4](或修改類別的界面),如下圖16所示:圖SEQ圖\*ARABIC16類別管理的界面類別管理功能的關(guān)鍵代碼如下:…………//添加類別this.typeService.addType(type);//調(diào)用typeService類addType()函數(shù)…………//修改類別this.typeService.uppType(type);//調(diào)用typeService類uppType()函數(shù)…………//刪除類別this.typeService.delType(type);//調(diào)用typeService類delType()函數(shù)…………材料信息管理功能用戶登錄系統(tǒng)后,點(diǎn)擊菜單中的“材料列表”,出現(xiàn)材料的查看界面,在該界面點(diǎn)擊“添加材料信息”(或“修改”),跳轉(zhuǎn)添加材料界面[5](或修改界面),如下圖17所示:圖SEQ圖\*ARABIC17材料信息管理的界面材料信息管理功能的關(guān)鍵代碼如下:…………//添加product.setPCount(0);//將現(xiàn)庫(kù)存量默認(rèn)設(shè)置為0ductServcie.addProduct(product);//調(diào)用productService類…………//刪除ductServcie.delProduct(p_id);//調(diào)用productService類…………//修改ductServcie.uppProduct(product);//調(diào)用productService類…………材料入庫(kù)管理功能用戶登錄系統(tǒng)后,點(diǎn)擊菜單中的“入庫(kù)管理”,出現(xiàn)材料入庫(kù)的查看界面,在該界面點(diǎn)擊“錄入入庫(kù)信息”(或“修改”),跳轉(zhuǎn)添加材料入庫(kù)界面[6](或修改界面),如下圖18所示:圖SEQ圖\*ARABIC18材料入庫(kù)管理的界面添加材料入庫(kù)信息功能的關(guān)鍵代碼如下://點(diǎn)擊“添加”時(shí)的關(guān)鍵代碼//判斷入庫(kù)量和現(xiàn)在的庫(kù)存量之和是否小于最大庫(kù)存if(product.getPCount()+inorder.getICount()<=product.getPInventory()){…………sb.append("添加成功!");//返回添加成功}else{ sb.append("庫(kù)存量超出最大庫(kù)存了!");//大于最大庫(kù)添加失敗}…………//點(diǎn)擊“修改”時(shí)的關(guān)鍵代碼…………this.inorderService.uppOrder(inorder);//調(diào)用inorderService類…………材料出庫(kù)管理功能用戶登錄系統(tǒng)后,點(diǎn)擊菜單中的“出庫(kù)管理”,出現(xiàn)材料出庫(kù)的查看頁(yè)面,在該界面點(diǎn)擊“錄入出庫(kù)信息”(或“修改”),跳轉(zhuǎn)添加材料出庫(kù)界面[7](或修改界面),如下圖19所示:圖SEQ圖\*ARABIC19材料出庫(kù)管理的界面添加材料出庫(kù)信息功能的關(guān)鍵代碼如下://點(diǎn)擊“添加”時(shí)的關(guān)鍵代碼//判斷材料的庫(kù)存是否夠if(product.getPCount()>=outorder.getOCount()){//修改材料現(xiàn)庫(kù)存量 product.setPCount(product.getPCount()-outorder.getOCount());…………sb.append("添加成功!\n");//返回添加成功//判斷添加成功后是否低于預(yù)警值if(product.getPCount()-outorder.getOCount()<=product.getPFirm()){//低于預(yù)警值返回低于預(yù)警值 sb.append("已經(jīng)低于預(yù)警值了,請(qǐng)盡快采購(gòu)!");}}else{ sb.append("庫(kù)存不足");//材料不足}…………//點(diǎn)擊“修改”時(shí)的關(guān)鍵代碼…………this.outService.uppOutorder(outorder);//調(diào)用outService類…………業(yè)務(wù)模塊客戶級(jí)別管理功能用戶登錄系統(tǒng)后,點(diǎn)擊菜單中的“級(jí)別管理”,出現(xiàn)級(jí)別的查看頁(yè)面,在該界面點(diǎn)擊“添加級(jí)別”(或“修改”),跳轉(zhuǎn)添加級(jí)別界面(或修改界面),如下圖20所示:圖SEQ圖\*ARABIC20級(jí)別管理的界面級(jí)別管理功能的關(guān)鍵代碼如下://點(diǎn)擊“添加”時(shí)的關(guān)鍵代碼StringmyFileDir="/rankimages";//定義一個(gè)存放上傳文件的文件夾名稱Stringpath=ServletActionContext.getRequest().getRealPath("/upload")+myFileDir;//獲取存放路徑Filedir=newFile(path);//創(chuàng)建path路徑if(!dir.exists()){//如果dir不存在,就創(chuàng)建一個(gè)dir根目錄 dir.mkdirs();}StringoldName=this.rank.getFileFileName();//獲取舊文件名StringnewName=this.updateName(oldName);//更新文件名//上傳FiledeskFile=newFile(path,newName);//新建newname文件try{ FileUtils.copyFile(this.rank.getFile(),deskFile);//復(fù)制文件}catch(IOExceptione){//捕獲異常 e.printStackTrace();//打印異常}StringnewPath="upload"+myFileDir+"/"+newName;//文件路徑this.rank.setRImg(newPath);//將文件路徑賦rank對(duì)象的Image屬性…………//點(diǎn)擊“刪除”時(shí)的關(guān)鍵代碼StringmyFileDir="/rankimages";//圖片在服務(wù)器的路徑Stringpath=ServletActionContext.getRequest().getRealPath("/upload")+myFileDir;//獲取存放路徑Filedir=newFile(path);//創(chuàng)建path路徑if(!dir.exists()){//如果dir不存在,就創(chuàng)建一個(gè)dir根目錄 dir.mkdirs();}intlength=("/upload"+myFileDir).length();//獲取大小StringoldPath=path.substring(0,path.length()-length)+"/"+rank.getRImg();//獲取原來(lái)圖片的路徑Filefile=newFile(oldPath);//獲取圖片file.delete();//調(diào)用delete函數(shù)刪除圖片this.rankService.delRank(r_id);//調(diào)用delRank函數(shù)刪除表中的記錄…………客戶管理功能用戶登錄系統(tǒng)后,點(diǎn)擊菜單中的“客戶列表”,出現(xiàn)客戶的查看界面,點(diǎn)擊菜單中的“客戶轉(zhuǎn)移”出現(xiàn)員工列表界面。在客戶的查看界面點(diǎn)擊“錄入客戶”(或“修改”),跳轉(zhuǎn)添加客戶界面(或修改界面)。在員工列表界面點(diǎn)擊目標(biāo)員工的員工姓名(或在查詢框中輸入員工姓名查詢,再在查詢結(jié)果中點(diǎn)擊員工姓名),跳轉(zhuǎn)到客戶轉(zhuǎn)移界面。客戶管理功能的相關(guān)界面如下圖21和圖22所示:圖SEQ圖\*ARABIC21客戶管理界面圖SEQ圖\*ARABIC22客戶轉(zhuǎn)移界面新增資料信息功能的關(guān)鍵代碼如下://點(diǎn)擊“添加”時(shí)的關(guān)鍵代碼//獲取當(dāng)前登錄員工的ide_id=Integer.parseInt(session.getAttribute("e_id").toString());…………this.customService.addCustom(custom);//調(diào)用addCustom函數(shù)添加…………//點(diǎn)擊“轉(zhuǎn)移”時(shí)的關(guān)鍵代碼this.custom=this.customService.getCustomOne(m_id);//獲取客戶idTEmpemps=newTEmp();//實(shí)例化一個(gè)TEmp類emps.setEId(eid);//將eid賦值給emps對(duì)象的EId屬性this.custom.setTEmp(emps);//給要轉(zhuǎn)移的客戶設(shè)置轉(zhuǎn)移后的員工this.customService.uppCustom(custom);//調(diào)用uppCustom修改custom…………任務(wù)單管理功能用戶登錄系統(tǒng)后,點(diǎn)擊菜單中的“客戶列表”出現(xiàn)客戶列表頁(yè)面,點(diǎn)擊目標(biāo)客戶列表中的員工的姓名,跳轉(zhuǎn)到該客戶任務(wù)單的查看的界面,在該界面點(diǎn)擊“錄入項(xiàng)目”(或“修改”),跳轉(zhuǎn)到添加任務(wù)單的界面(或修改界面),如下圖23所示:圖SEQ圖\*ARABIC23任務(wù)單管理界面任務(wù)單管理功能的關(guān)鍵代碼如下://修改任務(wù)單的關(guān)鍵代碼StringmyFileDir="/tasks";//定義一個(gè)存放上傳文件的文件夾名稱Stringpath=ServletActionContext.getRequest().getRealPath( "/upload")+myFileDir;//獲取存放路徑Filedir=newFile(path);//創(chuàng)建path路徑if(!dir.exists()){//如果dir不存在,就創(chuàng)建一個(gè)dir根目錄 dir.mkdirs(); }intlength=("/upload"+myFileDir).length();//獲取大小StringoldPath=path.substring(0,path.length()-length)+"/"+this.task.getTDoc();//獲取原來(lái)文件的路徑Filefile=newFile(oldPath);//file.delete();//調(diào)用StringoldName=this.task.getFileFileName();//獲取原來(lái)的名稱StringnewName=this.updateName(oldName);//更改名稱//上傳FiledeskFile=newFile(path,newName);//新建一個(gè)deskFile文件try{//將源文件復(fù)制給deskFile文件 FileUtils.copyFile(this.task.getFile(),deskFile);}catch(IOExceptione){//捕獲異常 e.printStackTrace();//輸出異常}StringnewPath="upload"+myFileDir+"/"+newName;//文件路徑this.task.setTDoc(newPath);//將文件路徑賦值給task的TDoc屬性…………洽談表管理功能用戶登錄系統(tǒng)后,在客戶任務(wù)單列表的頁(yè)界面,點(diǎn)擊目標(biāo)任務(wù)單名稱,跳轉(zhuǎn)到該任務(wù)單的洽談列表界面,在該界面點(diǎn)擊“錄入洽談?dòng)涗洝保ɑ颉靶薷摹保D(zhuǎn)到添加洽談表的界面(或修改界面),如下圖24所示:圖SEQ圖\*ARABIC24洽談表管理界面洽談管理功能的關(guān)鍵代碼如下://點(diǎn)擊“添加”時(shí)的關(guān)鍵代碼if(oldName.length()>0){StringmyFileDir="/negotiates";//定義一個(gè)存放上傳文件的文件夾名稱Stringpath=ServletActionContext.getRequest().getRealPath("/upload")+myFileDir;//獲取存放路徑…………this.negotiate.setNSign(1);//設(shè)置為有合同}else{ this.negotiate.setNSign(0);//設(shè)置為無(wú)合同 this.negotiate.setNDoc("null");//將NDoc屬性設(shè)置為空}…………this.negotiateService.addNegotiate(negotiate);//調(diào)用addNegotiate函數(shù)添加negotiate}…………流程掛鉤功能用戶登錄系統(tǒng)后,點(diǎn)擊菜單中的“流程掛鉤”出現(xiàn)需掛鉤任務(wù)列表界面,點(diǎn)擊“選擇流程”,跳轉(zhuǎn)到流程列表,如下25所示:圖SEQ圖\*ARABIC25流程掛鉤界面流程掛鉤功能的關(guān)鍵代碼如下://將流程的整個(gè)流程節(jié)點(diǎn)添加到審批表for(inti=0;i<this.flowparentList.size();i++){ ………… flow.setFId(this.f_id);//將f_id賦值給flow對(duì)象的FId屬性 approval.setTFlow(flow);//添加審批流程節(jié)點(diǎn)到審批表 ………… approval.setTEmp(emp);//添加審批人到審批表中 ………… if(i==0){ approval.setASign(1);//將第一個(gè)流程節(jié)點(diǎn)的設(shè)置為可審批 }else{ approval.setASign(0);//將不是第一個(gè)流程節(jié)點(diǎn)的設(shè)置為不可審批 } …………//調(diào)用addApproval函數(shù)添加approval this.approvalService.addApproval(approval); } ………… negotiate.setNSign(2);//設(shè)置合同已選擇流程 this.negotiateService.uppNegotiate(negotiate);…………在線審批功能用戶登錄系統(tǒng)后,點(diǎn)擊菜單中的“待審批列表”待審批列表頁(yè)面,如下圖26所示:圖SEQ圖\*ARABIC26審批界面在線審批功能的關(guān)鍵代碼如下:approval1.setASign(0);//將當(dāng)前正審批的審批表設(shè)置為不可審批 intstep=approval1.getAStep();//獲取當(dāng)前的步驟 intnextstep=step+1;//得到下一步 if(approval1.getAFlag()==1){ this.approvalService.uppSing(nextstep,approval1.getTTask() .getTId());//將標(biāo)記修改為可審批 this.approvalService.uppOneApp(approval1);//更新approval1 }else{ this.approvalService.uppOneApp(approval1);//更新approval1 }系統(tǒng)測(cè)試方案測(cè)試環(huán)境Web服務(wù)器:操作系統(tǒng)WIN7,內(nèi)存2G或以上。數(shù)據(jù)庫(kù)服務(wù)器:操作系統(tǒng)WIN7,數(shù)據(jù)庫(kù)SQLSERVER2005。客戶端:操作系統(tǒng)WIN7,IE7.0。測(cè)試策略以單元測(cè)試為基礎(chǔ)[8],進(jìn)行集成測(cè)試等相關(guān)測(cè)試,主要關(guān)注系統(tǒng)功能實(shí)現(xiàn)的正確性,數(shù)據(jù)流動(dòng)的正確性,系統(tǒng)對(duì)事件的響應(yīng)時(shí)間,事務(wù)處理速率和其他與時(shí)間相關(guān)的需求進(jìn)行評(píng)測(cè)和評(píng)估。單元測(cè)試和集成測(cè)試都采用的是測(cè)試用例的方法進(jìn)行測(cè)試。單元測(cè)試單元測(cè)試的對(duì)象是軟件設(shè)計(jì)的最小單位——模塊。單元測(cè)試的目的就是根據(jù)詳細(xì)設(shè)計(jì)說(shuō)明書分析程序內(nèi)部的各個(gè)處理邏輯,設(shè)計(jì)程序測(cè)試項(xiàng)目(PCL),檢驗(yàn)各個(gè)程序模塊是否滿足程序功能設(shè)計(jì)和業(yè)務(wù)處理的要求。下面是以材料出庫(kù)為例的部分功能測(cè)試用例,如下表15所示:表SEQ表\*ARABIC15功能測(cè)試用例序號(hào)輸入預(yù)期輸出是否正常備注1點(diǎn)擊“添加出庫(kù)信息”跳轉(zhuǎn)到新增頁(yè)面,頁(yè)面中無(wú)數(shù)據(jù)是2點(diǎn)擊“修改”跳轉(zhuǎn)到修改頁(yè)面,頁(yè)面中顯示原始數(shù)據(jù)是4在新增頁(yè)面中點(diǎn)擊“保存”按鈕成功提交新增信息,并將記錄顯示在頁(yè)面上是5在修改頁(yè)面中點(diǎn)擊“修改”按鈕成功修改,并將更新后的記錄更新到頁(yè)面上是7在新增頁(yè)面中錄入信息時(shí)候,不填寫必備信息系統(tǒng)給予提示是集成測(cè)試在單元測(cè)試的基礎(chǔ)上,需要將模塊按照設(shè)計(jì)要求組裝成為系統(tǒng)。這時(shí)需要考慮的問(wèn)題是:把各個(gè)模塊連接起來(lái)的時(shí),穿越模塊接口的數(shù)據(jù)是否會(huì)丟失;一個(gè)模塊的功能是否會(huì)對(duì)另一個(gè)模塊的功能產(chǎn)生不利的影響;各個(gè)子功能組合起來(lái),能否達(dá)到預(yù)期要求的父功能;全局?jǐn)?shù)據(jù)結(jié)構(gòu)是否有問(wèn)題;單個(gè)模塊的誤差累積起來(lái),是否會(huì)放大,從而達(dá)到不能接受的程度。在單元測(cè)試的同時(shí)可進(jìn)行集成測(cè)試,發(fā)現(xiàn)并排除在模塊連接中可能出現(xiàn)的問(wèn)題,最終構(gòu)成要求的軟件系統(tǒng)。子系統(tǒng)的集成測(cè)試特別稱為部件測(cè)試,所做的工作是要找出集成后的子系統(tǒng)與系統(tǒng)需求規(guī)格說(shuō)明之間的不一致。下面是集成后的材料模塊的測(cè)試用例,如下表16所示:表SEQ表\*ARABIC16功能測(cè)試用例序號(hào)輸入預(yù)期輸出是否正常備注1在材料出庫(kù)新增頁(yè)面中點(diǎn)擊“保存”按鈕(出庫(kù)數(shù)量大于現(xiàn)庫(kù)存量)保存失敗,彈出庫(kù)存不足的提示框是2在材料出庫(kù)新增頁(yè)面中點(diǎn)擊“保存”按鈕(現(xiàn)庫(kù)存數(shù)量與出庫(kù)量的差大預(yù)警值)保存成功,并將新增的記錄添加到頁(yè)面上是3在材料出庫(kù)新增頁(yè)面中點(diǎn)擊“保存”按鈕(現(xiàn)庫(kù)存數(shù)量與出庫(kù)量的差大于0,且小于預(yù)警值)保存成功,提示添加成功且?guī)齑嬉研∮陬A(yù)警值了,將新增的記錄添加到頁(yè)面上是4在材料入庫(kù)新增頁(yè)面中點(diǎn)擊“保存”按鈕(入庫(kù)數(shù)量和現(xiàn)庫(kù)存量之和小于最大庫(kù)存)保存成功,并將新增的記錄添加到頁(yè)面上是5在材料入庫(kù)新增頁(yè)面中點(diǎn)擊“保存”按鈕(入庫(kù)數(shù)量和現(xiàn)庫(kù)存量之和大于最大庫(kù)存)保存失敗,彈出超出最大庫(kù)存的提示框是測(cè)試結(jié)論基于JSP的自動(dòng)系統(tǒng)的功能符合需求分析的要求。在響應(yīng)時(shí)間上,添加材料時(shí),反應(yīng)有待提高。界面交互人性化,符合辦公系統(tǒng)的風(fēng)格。系統(tǒng)的功能以及邏輯基本符合要求。
結(jié)論基于JSP的自動(dòng)化辦公系統(tǒng)是一個(gè)將企業(yè)管理及基礎(chǔ)辦公需求作為核心,基于B/S模式的信息服務(wù)系統(tǒng),集先進(jìn)的計(jì)算機(jī)技術(shù)與辦公自動(dòng)化理論于一身,適應(yīng)當(dāng)今辦公自動(dòng)化系統(tǒng)的開(kāi)發(fā)需求。通過(guò)調(diào)研以及細(xì)致合理的規(guī)劃分析,采用結(jié)構(gòu)化和原型法相結(jié)合的開(kāi)發(fā)方法,并采用模塊化的開(kāi)發(fā)機(jī)制,使用流行的系統(tǒng)開(kāi)發(fā)技術(shù),經(jīng)過(guò)三個(gè)月的開(kāi)發(fā)與設(shè)計(jì),辦公自動(dòng)化系統(tǒng)的用戶身份驗(yàn)證模塊和其他基本功能模塊已開(kāi)發(fā)成為一個(gè)較完善的信息交互平臺(tái),初步具備實(shí)際使用的能力。由于開(kāi)發(fā)設(shè)計(jì)能力有限,開(kāi)發(fā)經(jīng)驗(yàn)不足,系統(tǒng)仍存在一些不足,與實(shí)際應(yīng)用中還有一定差距,比如:需求分析不徹底、功能不完善、頁(yè)面需進(jìn)一步美化、容錯(cuò)設(shè)計(jì)方面需進(jìn)一步加強(qiáng)等。在這次開(kāi)發(fā)過(guò)程中得到了很多的收獲。從最初的設(shè)計(jì),到最后的系統(tǒng)實(shí)現(xiàn),每一步都是大學(xué)學(xué)習(xí)的最寶貴的經(jīng)驗(yàn)。在這次開(kāi)發(fā)過(guò)程中,遇到了不少的困難,比如雖然學(xué)了很多的專業(yè)理論知識(shí),但本次設(shè)計(jì)的綜合性相當(dāng)?shù)膹?qiáng),這就要求重新去學(xué)習(xí)相關(guān)的知識(shí)來(lái)完成本次設(shè)計(jì)。為此,上網(wǎng)查找相關(guān)資
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 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ì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 高頻電子企業(yè)面試題及答案
- 病歷書寫考試題附答案
- n1叉車考試試題及答案
- 影城員工考試題及答案
- 電大經(jīng)濟(jì)法律試題及答案
- 大一上西方經(jīng)濟(jì)學(xué)試題及答案
- 2026黑龍江大慶市大同區(qū)城市建設(shè)投資開(kāi)發(fā)有限公司招聘勞務(wù)派遣人員12人參考題庫(kù)附答案
- 中共廣安市廣安區(qū)肖溪鎮(zhèn)紀(jì)律檢查委員會(huì)選用2名片區(qū)紀(jì)檢監(jiān)督員的參考題庫(kù)必考題
- 中央統(tǒng)戰(zhàn)部直屬事業(yè)單位2026年度應(yīng)屆高校畢業(yè)生招聘34人備考題庫(kù)必考題
- 北京市懷柔區(qū)政務(wù)服務(wù)和數(shù)據(jù)管理局招聘行政輔助人員3人備考題庫(kù)必考題
- 2025年證券市場(chǎng)交易操作與規(guī)范指南
- 2025-2026學(xué)年北京市西城區(qū)高三(上期)期末考試生物試卷(含答案)
- 2026廣西北部灣大學(xué)公開(kāi)招聘高層次人才76人筆試參考題庫(kù)及答案解析
- 2026屆湖北省襄陽(yáng)第四中學(xué)數(shù)學(xué)高一上期末考試模擬試題含解析
- 2025年時(shí)事政治必考試題庫(kù)完整參考答案及參考答案詳解
- 2026年常州工業(yè)職業(yè)技術(shù)學(xué)院?jiǎn)握新殬I(yè)技能測(cè)試題庫(kù)含答案詳解
- 2026年安徽糧食工程職業(yè)學(xué)院?jiǎn)握芯C合素質(zhì)考試題庫(kù)含答案詳解
- 混凝土施工作業(yè)環(huán)境管理方案
- 2025貴州黔西南州安龍縣選聘城市社區(qū)工作者工作61人備考題庫(kù)完整答案詳解
- 工廠裝修吊頂施工實(shí)施方案
- 墓碑銷售合同范本
評(píng)論
0/150
提交評(píng)論