王慶喜+鐘家民
摘要:基礎(chǔ)數(shù)據(jù)是一個系統(tǒng)運行的前提條件,其作用舉足輕重。為了保證系統(tǒng)的正常使用以及系統(tǒng)的靈活性和易維護性,實現(xiàn)了物流管理系統(tǒng)的基礎(chǔ)數(shù)據(jù)管理功能。該功能模塊采用Java、JSON技術(shù)以及Struts2、Hibernate和Spring三大框架。其實現(xiàn)簡單,功能穩(wěn)定可靠。
關(guān)鍵詞:物流管理系統(tǒng);基礎(chǔ)數(shù)據(jù);流程
中圖分類號:TP315 文獻標(biāo)識碼:A 文章編號:1009-3044(2017)06-0017-02
1 流程定義
通過ProcessdefinitionAction中的list方法,并在list方法中調(diào)用Service層中的listAllProcessDefinitions方法,查詢所有的流程定義信息列表,并且將流程定義列表信息經(jīng)過JSON序列化后顯示在頁面上,代碼如下。
Map
List
.createProcessDefinitionQuery().orderAsc(ProcessDefinitionQuery.PROPERTY_VERSION).list();
for (ProcessDefinition processDefinition : processDefinitions) {
map.put(processDefinition.getKey(), processDefinition);
}
調(diào)用ProcessdefinitionAction的viewpng方法,并且在viewpng方法中還調(diào)用了Service層中的findPngByPDId方法,通過點擊按鈕,把id傳遞給了findPngByPDId方法,在findPngByPDId方法中通過id,查看流程定義的圖片,代碼如下。
ProcessDefinitionQuery processDefinitionQuery = processEngine.getRepositoryService()
.createProcessDefinitionQuery().deploymentId(deploymentid);
String pngName = processDefinitionQuery.uniqueResult().getImageResourceName();
InputStream in = processEngine.getRepositoryService().getResourceAsStream(deploymentid, pngName);
先要上傳一個ZIP格式的流程定義,這個ZIP格式的流程定義包括一個XML文件和一張png格式的圖片,然后經(jīng)過ZIP打包。選擇要發(fā)布的ZIP文件后,將數(shù)據(jù)提交到ProcessdefinitionAction中,然后調(diào)用該Action中的deploy方法,然后在deploy方法中又調(diào)用了Service層中的deployProcessDefinition方法,完成流程發(fā)布的功能。我想要強調(diào)的是以上流程發(fā)布要用到Struts2的上傳組件,為了加強軟件的健壯性,還應(yīng)該在struts.xml配置文件中,明確的限定文件上傳的格式以及其他要求。
2 收派標(biāo)準(zhǔn)
通過StandardAction中的list方法,并且在list方法中調(diào)用了Service層中的findPagigationData方法,查詢所有的收派標(biāo)準(zhǔn)列表信息,并且將模塊列表信息經(jīng)過JSON序列化后顯示在頁面上,代碼如下。
PageRequestBean pageRequestBean=new PageRequestBean();
PageResponseBean pageResponseBean=standardService.findPagigationData(pageRequestBean);
JSONSerializer jsonSerializer=new JSONSerializer();
jsonSerializer.exclude("*.class","*.role");
String resultJson=jsonSerializer.deepSerialize(pageResponseBean);
新增收派標(biāo)準(zhǔn)信息時,在填完收派標(biāo)準(zhǔn)信息后,信息將會提交給StandardAction中的save方法,然后在StandardAction中的save方法中就會調(diào)用Service層中的addStandard方法,添加新的收派標(biāo)準(zhǔn)信息,代碼如下。
User existUser=(User)ServletActionContext.getRequest().getSession().getAttribute("existUser");
standard.setUser(existUser);
standardService.addStandard(standard);
修改收派標(biāo)準(zhǔn)信息時,獲取到該條收派標(biāo)準(zhǔn)信息的id值,然后可以根據(jù)StandardAction中的view方法,接收一個參數(shù)id查詢出該條收派標(biāo)準(zhǔn)的信息回顯到修改頁面上,然后填寫修改后的收派標(biāo)準(zhǔn)信息,點擊“保存”按鈕,將數(shù)據(jù)提交給StandardAction中的update方法,然后在StandardAction中就會調(diào)用Service層中的updateStandard方法,來完成收派標(biāo)準(zhǔn)信息的修改。
在刪除收派標(biāo)準(zhǔn)信息時,將該條信息的id傳遞給了StandardAction中的delete方法,然后在StandardAction中調(diào)用Service層中的deleteStandard方法來完成收派標(biāo)準(zhǔn)信息的刪除,代碼如下。
for(String id : ids){
Standard standard=standardDAO.findById(Standard.class, id);
standard.setDeltag("1");
}
3 定區(qū)管理
通過該Action中的list方法,并且在list方法中調(diào)用了Service層中的findPagigationData方法,查詢所有的定區(qū)列表信息,并且將定區(qū)列表信息經(jīng)過JSON序列化后顯示在頁面上。注意在定區(qū)信息列表中,不僅顯示定區(qū)信息,還有把和定區(qū)對應(yīng)的分區(qū)信息、取派員信息和關(guān)聯(lián)的客戶信息。這些功能都是通過主外建關(guān)聯(lián)操作完成的功能,代碼如下。
PageRequestBean pageRequestBean = new PageRequestBean();
pageRequestBean.setCriteria(detachedCriteria);
PageResponseBean pageResponseBean =decidedzoneService.findPagigationData(pageRequestBean);
JSONSerializer jsonSerializer = new JSONSerializer();
jsonSerializer.exclude("*.class","*.subareas","*.customers","*.standard");
String result = jsonSerializer.deepSerialize(pageResponseBean);
對于添加定區(qū)信息,跳轉(zhuǎn)到添加定區(qū)頁面,首先填寫定區(qū)編號和名稱,然后就是選擇在定區(qū)范圍內(nèi)的取派負(fù)責(zé)人,然后選擇要關(guān)聯(lián)的分區(qū)信息,填寫完畢,點擊“保存”按鈕,則數(shù)據(jù)就提交的DecidedzoneAction中,通過該Action中的save方法,并且在save方法中首先是關(guān)聯(lián)分區(qū),往定區(qū)數(shù)據(jù)表中添加所選分區(qū)的Id,然后再往定區(qū)中添加所選取派負(fù)責(zé)人的Id,然后在用Service層中的addDecidedzone方法,完成定區(qū)信息的添加。
對于定區(qū)信息的修改,進入DecidedzoneAction中,并在該Action中調(diào)用update方法,在update方法中,首先要查詢到所對應(yīng)的分區(qū)信息和取派負(fù)責(zé)人信息,關(guān)聯(lián)客戶信息,然后調(diào)用Service層中的updateDecidedzone方法,完成對定區(qū)信息的修改。
關(guān)聯(lián)客戶信息,進入了CustomerAction中,在CustomerAction中調(diào)用findnoassociation得到未關(guān)聯(lián)的客戶信息,調(diào)用findhasassociation得到已經(jīng)關(guān)聯(lián)過的客戶的信息,然后用associationDecidedzone方法,為定區(qū)關(guān)聯(lián)客戶,并調(diào)用Service層中的association的方法,完成客戶關(guān)聯(lián)定區(qū)的功能。
4 結(jié)束語
本文對物流管理系統(tǒng)的基礎(chǔ)數(shù)據(jù)管理進行開發(fā),主要包括流程定義、收派標(biāo)準(zhǔn)和定區(qū)管理等基礎(chǔ)數(shù)據(jù)的維護。功能實現(xiàn)采用S2SH三大框架和EasyUI框架,數(shù)據(jù)傳遞采用JSON字符串。功能模塊運行穩(wěn)定可靠,并且易于維護和擴展。
參考文獻:
[1] 寧曉菊,陳艷,朱偉軍,等. 基于RFID的工業(yè)園區(qū)SHIP智能物流管理系統(tǒng)[J]. 制造業(yè)自動化, 2014(2): 10-13.
[2] 李吟龍. 基于J2EE技術(shù)的高速公路物流管理系統(tǒng)[J]. 電子設(shè)計工程, 2016,24(19): 79-82.
[3] 屈展,李嬋. JSON在Ajax數(shù)據(jù)交換中的應(yīng)用研究[J]. 西安石油大學(xué)學(xué)報:自然科學(xué)版,2011,26(1): 95-98.