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