王曉哲
(四川大學(xué)計算機學(xué)院,成都 610065)
物流費用管理系統(tǒng)的設(shè)計與實現(xiàn)
王曉哲
(四川大學(xué)計算機學(xué)院,成都 610065)
物流費用的管理是進(jìn)出口企業(yè)物流管理的核心,對進(jìn)出口企業(yè)提升管理效率和管理水平、降低風(fēng)險具有重要意義?;赨ML建模語言,結(jié)合B/S系統(tǒng)架構(gòu),ASP.NET開發(fā)框架,SQL Server數(shù)據(jù)庫管理技術(shù)完成進(jìn)出口企業(yè)物流費用管理系統(tǒng)的設(shè)計與實現(xiàn),一方面能夠預(yù)防貨運不合理請款和重復(fù)請款,另一方面提高進(jìn)出口企業(yè)信息化管理水平。
進(jìn)出口企業(yè);物流;費用管理;EasyUI
物流的崛起,使得管理理念以及模式發(fā)生了很大的改變,例如物流規(guī)定在管理時必須根據(jù)整個供應(yīng)鏈的全方位去思考怎樣才能獲得最好的效率,通過平衡的形式解決“二律背反”現(xiàn)象等[2]。尤其對成本管理上的影響很大,在引進(jìn)物流以后,期待可以切實挖掘物流成本并進(jìn)行精確的計算,來達(dá)到減少物流成本的目的。傳統(tǒng)會計所采用的核算方法已經(jīng)無法算出物流費用的成本,所以目前找出一種全新的有關(guān)物流成本核算的方法已經(jīng)成為亟待解決的問題,這樣便可對物流體系中的指定商品、顧客、物流途徑和物流活動相對應(yīng)的成本輕易的就可查詢到,這就要求對物流成本核算的探討顯色十分緊迫[3]。
物流費用系統(tǒng)開發(fā)中涉及的技術(shù)如下。
EasyUI是一組基于JQuery的UI插件集合體,而EasyUI的目標(biāo)就是幫助Web開發(fā)者更輕松的打造出功能豐富并且美觀的UI界面。EasyUI框架提供了創(chuàng)建網(wǎng)頁所需的一切,幫助您輕松建立站點。EasyUI是一個基于jQuery的框架,集成了各種用戶界面插件。EasyUI框架提供建立現(xiàn)代化的具有交互性的JavaScript應(yīng)用的
WebService屬于可編程的Web的先進(jìn)程序,具有以下3個的特點:自包含、平臺獨立與松耦合,其應(yīng)用程序可通過開放的XML標(biāo)準(zhǔn)進(jìn)行說明、公布,以及發(fā)現(xiàn)、協(xié)調(diào)與配置,能夠完成開發(fā)分布式的互操作。Web?Service平臺必須通過協(xié)議才能完成建立分布式的應(yīng)用程序,每個平臺都有其系統(tǒng)類型與有關(guān)數(shù)據(jù)表示方法,若要做到互操作,則WebService平臺一定要具有標(biāo)準(zhǔn)、規(guī)范的類型系統(tǒng),以與組件模型、編程語言,及其他平臺內(nèi)的類型系統(tǒng)進(jìn)行聯(lián)系,現(xiàn)階段,這類協(xié)議有:XML與XSD協(xié)議、SOAP協(xié)議、WSDL協(xié)議。
物流費用管理系統(tǒng)通過WebService技術(shù)完成和外部數(shù)據(jù)的對接,通過對外開發(fā)WebService接口和其他等系統(tǒng)對接,通過財務(wù)系統(tǒng)的WebService接口完成物流費用管理系統(tǒng)中費用送簽數(shù)據(jù)的對接。
必要的功能。對于開發(fā)物流費用管理系統(tǒng)的而言其支持一些常見的 UI控件如:accordion,combobox,menu,dialog,tabs,validatebox,datagrid,window,tree 等等,十分易于開發(fā)人員使用,其次這個EasyUI使用簡潔美觀十分適合物流費用管理系統(tǒng)的開發(fā)。
ASP.NET是進(jìn)出口企業(yè)物流費用管理系統(tǒng)開發(fā)使用的開發(fā)框架,使用ASP.NET之后,程序升級與發(fā)布工作就變得更加簡化了,其提供了一些代碼使得編寫起來比較方便?,F(xiàn)如今是一個技術(shù)豐富的年代,在軟件行業(yè)存在多種Web系統(tǒng)的構(gòu)建技術(shù),例如PHP、JSP、Phython和.NET。在此筆者經(jīng)過多方考量最終選定ASP.NET作為本物流費用管理系統(tǒng)主要的開發(fā)技術(shù),因為在企業(yè)的需求調(diào)研的過程中發(fā)現(xiàn)其內(nèi)部一些信息管理系統(tǒng)都是運用.NET平臺進(jìn)行開發(fā)的,此外在公司內(nèi)容主要使用的電腦和服務(wù)器也都為Windows平臺。這樣使用ASP.NET就有天然的優(yōu)勢,方便企業(yè)內(nèi)部各類信息系統(tǒng)之間互相數(shù)據(jù)傳輸?shù)炔僮鳌?/p>
XML一種標(biāo)記語言,具有一定的可擴展性,它屬于定義語義標(biāo)記的一種規(guī)則,文檔被各標(biāo)記分為很多部件,且對所有的部件進(jìn)行標(biāo)識。
XML主要含有以下3個功能:即XSL(可擴展樣式語言)、XML Schema與XLL(可擴展鏈接語言),其中,XSL這種語言主要是對文檔的樣式做出規(guī)定,它可通過客戶端的操作來直接更換文檔的表示法,使瀏覽器無須再和服務(wù)器交互;XML Schema對XML文件里面的所有元素,以及各元素的屬性及相互之間的關(guān)系進(jìn)行了定義,并對其中的邏輯結(jié)構(gòu)做了規(guī)定,非常有助于對程序檢驗文件相關(guān)標(biāo)記的合法性進(jìn)行分析。
XLL屬于一種鏈接語言,比較類似于HTML里面的鏈接,但發(fā)揮的作用要更好,它不僅能夠應(yīng)用于超級文本定義下最簡單的鏈接,而且,還對Web現(xiàn)在的一些簡單鏈接做了更大的擴展。
XML技術(shù)主要用于編寫物流費用管理系統(tǒng)和財務(wù)系統(tǒng)對接的消息,這類消息是使用標(biāo)準(zhǔn)的XML語言進(jìn)行編寫的。同時,物流費用管理系統(tǒng)中大量的配置都以XML形式組織在配置文件中。
進(jìn)出口企業(yè)物流費用管理系統(tǒng)的網(wǎng)絡(luò)拓?fù)鋱D如圖1所示。
進(jìn)出口企業(yè)物流費用管理系統(tǒng)運行在網(wǎng)絡(luò)環(huán)境中,進(jìn)出口企業(yè)物流費用管理系統(tǒng)用戶能夠通過瀏覽器直接訪問系統(tǒng),這樣的結(jié)構(gòu)能夠幫助減少服務(wù)器的運行壓力,由瀏覽器負(fù)責(zé)和用戶進(jìn)行交互和數(shù)據(jù)采集,由服務(wù)器業(yè)務(wù)邏輯,這在很大程度上減少用戶端負(fù)載,因此這樣的結(jié)構(gòu)對用戶終端的配置要求較低。
圖1 系統(tǒng)網(wǎng)絡(luò)拓?fù)鋱D
在進(jìn)出口企業(yè)物流費用管理業(yè)務(wù)流程進(jìn)行充分調(diào)研的基礎(chǔ)上,對業(yè)務(wù)邏輯進(jìn)行抽象后得出了系統(tǒng)數(shù)據(jù)庫中的實例及其屬性,以及實例間的相互關(guān)系,通過數(shù)據(jù)庫E-R圖的方式對這些內(nèi)容進(jìn)行展示。
進(jìn)出口企業(yè)物流費用管理系統(tǒng)數(shù)據(jù)庫總體E-R圖如圖2所示。
圖2 系統(tǒng)總體E-R圖
物流費用管理系統(tǒng)中存在大量費用賬單單據(jù),在系統(tǒng)中完成費用賬單后,需要將費用賬單數(shù)據(jù)對接至財務(wù)系統(tǒng)中,但由于費用賬單數(shù)據(jù)內(nèi)容復(fù)雜等原因,人工輸入將會增加人工輸入錯誤幾率,因此物流費用管理系統(tǒng)提供了對接財務(wù)系統(tǒng)的功能。
首先,財務(wù)系統(tǒng)提供數(shù)據(jù)對接規(guī)范中要求使用as、mq、jms等傳輸協(xié)議,消息中間件產(chǎn)品為MQ消息隊列,傳輸?shù)南⑹褂肵ML文件進(jìn)行編寫。XML具有數(shù)據(jù)格式規(guī)范,兼容性強等特點,賬單數(shù)據(jù)對接財務(wù)系統(tǒng)時需要對物流費用管理系統(tǒng)中數(shù)據(jù)狀況進(jìn)行控制,以提高數(shù)據(jù)發(fā)送的準(zhǔn)確性。目前將物流費用管理系統(tǒng)賬單數(shù)據(jù)狀態(tài)劃分為Initial初始、Made已生成賬單、CheckSent已送審、Submitted已審核、Sent已發(fā)送、Cleared已處理和Deleted已刪除。物流費用管理系統(tǒng)中賬單數(shù)據(jù)狀態(tài)轉(zhuǎn)換圖如圖3所示。
圖3 賬單數(shù)據(jù)狀態(tài)轉(zhuǎn)換圖
由賬單數(shù)據(jù)狀態(tài)轉(zhuǎn)換圖分析可知,賬單的初始狀態(tài)為:Initial初始,當(dāng)物流人員完成制單后進(jìn)入Made已生成賬單狀態(tài),進(jìn)行送審操作后進(jìn)入CheckSent已送審狀態(tài),初始狀態(tài)、已生成賬單和已送審狀態(tài)能夠進(jìn)行刪除操作,刪除后進(jìn)入Deleted已刪除狀態(tài),當(dāng)審核人員完成審核操作后進(jìn)入Submitted已審核狀態(tài),在系統(tǒng)中點擊發(fā)送按鈕后進(jìn)入Sent已發(fā)送,當(dāng)賬單完成處理后數(shù)據(jù)進(jìn)入Cleared已處理狀態(tài)。
由進(jìn)出口費用生成功能時序圖分析可知,用戶在進(jìn)入進(jìn)出口界面后,由貨運人員輸入重量、體積等費用參數(shù)信息,由數(shù)據(jù)庫執(zhí)行費用參數(shù)更新腳本并返回執(zhí)行結(jié)果,貨運人員登記物流信息工作結(jié)束后,由物流人員完善進(jìn)出口數(shù)據(jù)并點擊保存,在點擊保存的過程中,系統(tǒng)觸發(fā)并執(zhí)行物流費用計算邏輯,由數(shù)據(jù)庫更新費用計算結(jié)果,最后系統(tǒng)顯示費用計算結(jié)果。
圖4 進(jìn)出口費用生成功能時序圖
財務(wù)系統(tǒng)對接消息屬于XML格式信息,根據(jù)財務(wù)接口規(guī)范,通過XmlDocument對象完成XmlNode信息節(jié)點的創(chuàng)建。信息的發(fā)送主要依靠TaskFactory實現(xiàn)的定時接口,在用戶完成TimeConfig.xml接口配置后,使用工廠模式生成不同的Task任務(wù),通過配置文件中的設(shè)定為任務(wù)設(shè)定不同的執(zhí)行TimeSpan時間間隔。在Task任務(wù)中,通過
消息發(fā)送的具體方式是通過微軟的MessageQueue消息隊列,MessageQueue對象被封裝在System.Messag?ing.dll程序集中,通過MessageQueueSendByte方法完成向具有固定IP的服務(wù)器消息隊列的發(fā)送,ipAddress參數(shù)為消息隊列接收服務(wù)器IP地址,lbl為消息發(fā)送的類型,由財務(wù)系統(tǒng)指定。doc為XmlDocument類型的報文文件,通過queue.Send方法完成消息的發(fā)送。
費用生成與對賬為系統(tǒng)的核心功能模塊,通過費用生成與對賬模塊,系統(tǒng)關(guān)聯(lián)基礎(chǔ)數(shù)據(jù)、費用計費標(biāo)準(zhǔn)和進(jìn)出口費用參數(shù),完成對費用明細(xì)的產(chǎn)生,異常費用的審核,進(jìn)出口費用的預(yù)估,進(jìn)出口費用對賬單的生成,領(lǐng)導(dǎo)對對賬單的審核,以及費用和財務(wù)系統(tǒng)的對接。費用生成與對賬模塊中進(jìn)出口費用對賬單界面如圖5所示。
圖5 進(jìn)出口費用對賬單界面
由進(jìn)出口費用對賬單界面分析可知,對賬人員在界面維護(hù)請款單位和實際進(jìn)廠時間區(qū)間等信息后,能夠?qū)υ摃r間區(qū)間內(nèi)產(chǎn)生的物流費用進(jìn)行查詢,勾選費用明細(xì)后,能夠完成貨運行發(fā)票的更新,確認(rèn)賬單總金額和發(fā)票金額一致后,進(jìn)行生成賬單并送審動作,賬單生成成功后,領(lǐng)導(dǎo)人員在費用對賬單審核界面進(jìn)行下一步處理。進(jìn)出口費用對賬單功能代碼如下所示。
if(comVENDOR_CODE.SelectedItem==null)
{
AjaxAlert("請選擇請款單位!");
return;
}
if(txtCREATE_DATE_FROM.Text== "" ||txtCREATE_DATE_TO.Text=="")
{
AjaxAlert("請選擇實際進(jìn)廠時間!");
return;
}
string flag="N";
if(ddlIEType.SelectedIndex!=-1)
{if(ddlIEType.SelectedIndex==1)
{
flag="Y";
}
if(ddlIEType.SelectedIndex==2)
{
flag="";
}
}
string sql1="EXEC dbo.GET_IMPORT_DETAL'"+Curren?
tUser.OrgID+"','"+txtCREATE_DATE_FROM.Date.ToString
("yyyy/MM/dd")+"','"+txtCREATE_DATE_TO.Date.ToString
("yyyy/MM/dd")+"','"+vendorCode+"','"+deliverType+"',
'"+tradeTrem+"','"+sysNo+"','"+flag+"'";
DataTable dt1=new DataTable();
dt1=DataAccess.GetTable(sql1);
dt1.TableName="WHList";
DataView dv=dt1.DefaultView;
GridWorSheet_WEBGIM050.TotalSummary.Clear();
ASPxSummaryItem item1 = new ASPxSummaryItem("TO?
TAL_USD",SummaryItemType.Sum);
ASPxSummaryItem item2 = new ASPxSummaryItem("TO?
TAL_RMB",SummaryItemType.Sum);
GridWorSheet_WEBGIM050.TotalSummary.Add(item1);
GridWorSheet_WEBGIM050.TotalSummary.Add(item2);
微信設(shè)計原理如下:微信OAuth2.0授權(quán)讓微信用戶使用微信身份安全登錄第三方應(yīng)用或網(wǎng)站,在微信用戶授權(quán)登錄已接入微信OAuth2.0的第三方應(yīng)用后,第三方可以獲取到用戶的接口調(diào)用憑證(access_to?ken),通過access_token可以進(jìn)行微信開放平臺授權(quán)關(guān)系接口調(diào)用,從而可實現(xiàn)獲取微信用戶基本開放信息和幫助用戶實現(xiàn)基礎(chǔ)開放功能等。第三方發(fā)起微信授權(quán)登錄請求,微信用戶允許授權(quán)第三方應(yīng)用后,微信會重定向到第三方網(wǎng)站,并且?guī)鲜跈?quán)臨時票據(jù)code參數(shù)。通過code參數(shù)加上AppID和AppSecret等,通過API換取access_token。通過access_token進(jìn)行接口調(diào)用,獲取用戶基本數(shù)據(jù)資源或幫助用戶實現(xiàn)基本操作。在微信授權(quán)過程中,OnAuthorizationCallback.aspx.cs授權(quán)回調(diào)頁面中,通過state參數(shù)用于標(biāo)識微信授權(quán)的結(jié)果,如狀態(tài)標(biāo)志正常,則通過GetAccessToken方法換取access_token,其中 code票據(jù)、AppID、AppSecret為調(diào)用參數(shù),通過向OAuthApi對象的GetUserInfo()方法傳遞access_token等參數(shù)后,獲取到微信授權(quán)用戶信息user?Info,userInfo中包含用戶 OPENID、用戶昵稱 wxnick?name,將授權(quán)信息Insert到物流費用管理系統(tǒng)數(shù)據(jù)庫中,等待執(zhí)行登錄操作。
授權(quán)后系統(tǒng)自動登錄時,在登錄界面每隔500毫秒執(zhí)行l(wèi)oginself()自動登錄方法,方法中通過AJAX技術(shù)向Login.ashx一般處理程序發(fā)送post請求,一般處理程序中關(guān)聯(lián)用戶表中OPENID和微信授權(quán)信息,執(zhí)行用戶自動登錄操作,完成用戶自動登錄后,標(biāo)記微信授權(quán)信息,通過window.location.href方法將頁面重定向至物流費用管理系統(tǒng)主頁,從而完成整個微信用戶授權(quán)登錄的過程。微信用戶授權(quán)成功界面如下圖所示。
圖6 微信用戶授權(quán)成功界面
本文對物流管理系統(tǒng)中的技術(shù)基礎(chǔ)進(jìn)行了介紹,對系統(tǒng)概要設(shè)計、數(shù)據(jù)庫設(shè)計和功能設(shè)計過程進(jìn)行分析,對數(shù)據(jù)對接、費用賬單和微信授權(quán)登錄等內(nèi)容的實現(xiàn)過程進(jìn)行了介紹。
[1]朱偉生,張洪革.物流成本管理[M].北京:機械工業(yè)版社,2013.
[2]鄧鳳祥.現(xiàn)代物流成本管理-消除“物流冰山”:獲取利潤之第三源泉[M].北京:經(jīng)濟(jì)管理出版社,2013.
[3]王之泰.現(xiàn)代物流學(xué)[M].北京:中國物資出版社,2014.
Abstract:The management of logistics cost is the core of logistics management of import and export enterprises.It is of great significance to improve management efficiency and management level and reduce risk.Based on UML modeling language,combining with B/S system architecture,ASP.NET development framework,SQL Server database management technology to complete the import and export enterprise logistics cost management system design and implementation,on the one hand can prevent unreasonable freight please,please,and repeat on the other hand,improve the level of information management system of import and export enterprises.
Keywords:Import and Export Enterprises;Logistics;Fee Management;EasyUI
Design and Implementation of Logistics Expense Management System
WANG Xiao-zhe
(College of Computer Science,Sichuan University,Chengdu 610065)
1007-1423(2017)26-0079-06
10.3969/j.issn.1007-1423.2017.26.020
王曉哲(1986-),男,河南鄭州人,在讀碩士研究生,研究方向為計算機科學(xué)與技術(shù)
2017-09-02
2017-09-10