MES訂單管理系統(tǒng)開發(fā)案例-實訓(xùn)指導(dǎo)書_第1頁
MES訂單管理系統(tǒng)開發(fā)案例-實訓(xùn)指導(dǎo)書_第2頁
MES訂單管理系統(tǒng)開發(fā)案例-實訓(xùn)指導(dǎo)書_第3頁
MES訂單管理系統(tǒng)開發(fā)案例-實訓(xùn)指導(dǎo)書_第4頁
MES訂單管理系統(tǒng)開發(fā)案例-實訓(xùn)指導(dǎo)書_第5頁
已閱讀5頁,還剩22頁未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)

文檔簡介

MES訂單管理系統(tǒng)開發(fā)案例實訓(xùn)指導(dǎo)書一、實訓(xùn)目的本課程的教學(xué)目的是讓學(xué)生掌握工業(yè)生產(chǎn)系統(tǒng)中訂單管理系統(tǒng)開發(fā)案例的開發(fā)流程和關(guān)鍵技術(shù)。從系統(tǒng)的需求分析出發(fā),了解到開發(fā)需要實現(xiàn)和滿足的實際業(yè)務(wù)功能點;然后根據(jù)功能點之間的邏輯關(guān)系,使用Modelfirst工具繪制數(shù)據(jù)庫表之間的ER關(guān)系圖。再根據(jù)每一個功能點,繪制對應(yīng)的功能界面以及使用VisualStudio2019開發(fā)工具補(bǔ)充對應(yīng)的后臺邏輯,最后形成一個完整的訂單管理系統(tǒng)功能。通過綜合實訓(xùn)幫助學(xué)生全面牢固地掌握教學(xué)內(nèi)容、培養(yǎng)學(xué)生的實踐動手能力,提高學(xué)生綜合運(yùn)用專業(yè)知識和專業(yè)技能解決實際問題的能力,強(qiáng)化課堂教學(xué)與實踐教學(xué)相結(jié)合,鍛煉學(xué)生的職業(yè)能力。二、實訓(xùn)準(zhǔn)備1、掌握C#編程開發(fā)技能。2、了解工業(yè)生產(chǎn)系統(tǒng)工藝路線、工單等相關(guān)的業(yè)務(wù)知識。3、事先學(xué)習(xí)基于SIE開發(fā)包的單表、主從表的開發(fā)課程。4、安裝好實訓(xùn)開發(fā)環(huán)境,下載實訓(xùn)工程源代碼。三、實訓(xùn)環(huán)境Windows10操作系統(tǒng)、Visual

Studio2019開發(fā)工具安裝、安裝ODAC、安裝Oracle客戶端、安裝PLSQL、安裝EAP.Modelfirst四、實訓(xùn)步驟詳細(xì)開發(fā)步驟本實訓(xùn)讓學(xué)生體驗一個完整項目從設(shè)計到開發(fā)的全過程,包括系統(tǒng)的需求分析到功能設(shè)計、數(shù)據(jù)庫設(shè)計、頁面設(shè)計、及功能實現(xiàn)等。通過本指導(dǎo)書展開詳細(xì)的開發(fā)步驟。任務(wù)一:訂單管理系統(tǒng)的實體建模和項目啟動雙擊打開ModelFirst工具,右邊的項目總管的命名層級與VS解決方案的項目工程一致,見圖1-1。圖1-1ModelFirst工具項目總管MES訂單管理系統(tǒng)的八張表的建模以及之間的關(guān)系如下:物料表以及枚舉類、之間的關(guān)系UML建模如圖1-2,目錄層級如圖1-3工序表以及枚舉類、之間的關(guān)系UML建模如圖1-4,目錄層級如圖1-5工藝路線表相關(guān)的UML建模如圖1-6,目錄層級如圖1-7工單表相關(guān)的UML建模如圖1-8,目錄層級如圖1-9附加子表-工藝路線UML建模如右圖1-10,目錄層級同1-9附加子表-報工記錄UML建模如右圖1-11,目錄層級同1-9附加子表-工單狀態(tài)日志UML建模如右圖1-12,目錄層級同1-9附加子表-任務(wù)單列表UML建模如右圖1-13,目錄層級同1-9圖1-2物料表UML建模 圖1-3物料表建模目錄層級圖1-4工序表UML建模 圖1-5工序表建模目錄層級圖1-6工藝路線表UML建模 圖1-7工藝路線建模目錄層級圖1-8工單表UML建模圖1-10附加子表-工藝路線UML建模 圖1-9工單建模目錄層級圖1-11附加子表-報工記錄UML建模圖1-12附加子表-工單狀態(tài)日志UML建模圖1-13附加子表-任務(wù)單列表UML建模MES訂單管理系統(tǒng)代碼生成:實體類代碼生成:鼠標(biāo)右鍵選中需要生成代碼的實體類,點擊生成代碼(圖1-14),在彈窗中選中2018下面的模板(Entity.mft和WebViewConfig.mft),點擊“Generate”生成代碼即可生成完畢(圖1-15)枚舉類代碼生成:鼠標(biāo)右鍵選中需要生成代碼的枚舉類,點擊生成代碼(圖1-16)。在彈窗中選中2018下面的模板(Entity.mft),點擊“Generate”生成代碼即可生成完畢(1-17)圖1-14實體類代碼生成 圖1-15實體類代碼生成選擇的模板圖1-16枚舉類代碼生成 圖1-17枚舉類代碼生成選擇的模板將生成的代碼放入指定文件夾,并解決報錯:將生成的”實體類.cs”文件連同文件夾(實體類s)一起放在SIE.Demo工程下面,并且在”實體類s”文件夾下創(chuàng)建Enum文件夾,并把生成的枚舉類放入其中。將生成的”實體類ViewConfig.cs”文件連同文件夾(實體類s)一起放在SIE.Web.Demo工程下面。點擊SIE.Demo工程下的”實體類s”文件夾下的”實體類.cs”,導(dǎo)入枚舉類相關(guān)的包、DataEntity相關(guān)的包從而解決報錯。注意:上述代碼生成會產(chǎn)生四個文件夾(Items、Processes、ProcessRoutes、WorkOrders),其中工單和其附加子表都放在WorkOrders文件夾中。配置視圖以及代碼段添加字段:物料表:點擊物料表的視圖類ItemViewConfig.cs,配置列表視圖和下拉視圖見1-18,并且在物料表實體類Item.cs的類上加上”[DisplayMember(nameof(Code))]”標(biāo)記,從而實現(xiàn)下拉物料回顯物料編碼。工序表:點擊工序視圖類ProcessViewConfig.cs,配置列表視圖和下拉視圖見1-19,并且在工序表實體類Process.cs類中加上”[DisplayMember(nameof(Name))]”標(biāo)記,從而實現(xiàn)下拉工序回顯工序名稱。工藝路線表:點擊工藝路線實體類ProcessRoute.cs,通過代碼段(PFViewProperty)添加”產(chǎn)品名稱”視圖屬性由Item.Name帶出(見圖1-20)。然后點擊工藝路線表視圖類ProcessRouteViewConfig.cs,配置列表視圖(見圖1-21)。工單表:點擊工單實體類WorkOrder.cs,通過代碼段(PFViewProperty)添加”產(chǎn)品名稱”視圖屬性由Item.Name帶出(可以參考圖1-20)。然后點擊工單視圖類WorkOrderViewConfig.cs,在配置列表視圖中添加Item的下拉編輯器帶出產(chǎn)品名稱,同圖1-21中的紅色標(biāo)注部分。修改附加子表與父表的關(guān)系:將工單的附加子表(OrderRoute.cs、ReportingJournal.cs、TaskList.cs、WorkJournal.cs)實體類中的工單外鍵(WorkOrder)的WorkOrderIdProperty屬性的ReferenceType從Normal(一般外鍵引用)改成Parent(父實體的引用),見圖1-22。附加子表添加字段:在OrderRoute.cs實體類中通過代碼段(PFProperty)添加兩個string類型的字段(圖1-23),并配置不映射數(shù)據(jù)庫(圖1-24);在WorkJournal.cs實體類中通過代碼段(PFProperty)添加一個工單狀態(tài)的枚舉字段,名為”改變后工單狀態(tài)”見圖1-25;在TaskList.cs實體類中通過代碼段(PFViewProperty)添加string類型的視圖屬性”ProcessName工序名稱”,由工序外鍵帶出(見圖1-26),并添加員工表(SIE.Common.Employees.Employee)外鍵。然后添加一些報工需要的字段(見圖1-27),配置上述員工外鍵和報工字段(圖1-27中的所有字段)不映射數(shù)據(jù)庫。配置附加子表的列表視圖:配置WorkJournalViewConfig.cs視圖類的列表視圖(圖1-28);配置ReportingJournalViewConfig.cs視圖類的列表視圖(圖1-29);配置TaskListViewConfig.cs視圖類的列表視圖(圖1-30)配置初始菜單,并啟動項目生成數(shù)據(jù)庫:在SIE.Web.Demo的DemoUiModule.cs中配置初始菜單(見圖1-31),運(yùn)行項目找到菜單功能,配置菜單,并點擊實體元數(shù)據(jù)(數(shù)據(jù)字典)生成數(shù)據(jù)庫。做完上述第一個任務(wù)就完成了,下面就進(jìn)入到了每個功能的細(xì)化開發(fā)了。圖1-18物料表配置列表視圖(左)、配置下拉視圖(右)圖1-19工序表配置列表視圖(左)、配置下拉視圖(右)圖1-20工藝路線實體類添加視圖屬性 圖1-21工藝路線配置列表視圖圖1-22改變工單的四個附加子表中的工單外鍵關(guān)系 圖1-24字段不映射數(shù)據(jù)庫圖1-23OrderRoute.cs實體類中通過代碼段添加字段 圖1-25WorkJournal.cs類中添加的枚舉字段圖1-26TaskList.cs類中代碼段添加的視圖屬性 圖1-27TaskList.cs類中代碼段添加的報工字段圖1-28WorkJournalViewConfig.cs類列表視圖 圖1-29ReportingJournalViewConfig.cs類列表視圖圖1-30TaskListViewConfig.cs類列表視圖 圖1-31在DemoUiModule.cs類中配置初始菜單任務(wù)二:物料表的開發(fā)啟用禁用的實現(xiàn):點擊Item.cs類,在類中使用代碼段(PFProperty)添加”State狀態(tài)”字段,這個字段類型是SIE.Domain.State下的枚舉類(見圖2-1)。在Item.cs類中,實現(xiàn)IStateEntity接口(SIE.Domain.IStateEntity)圖2-1Item.cs類中通過代碼段添加的”狀態(tài)”字段字段的校驗:被引用不允許刪除的校驗:在SIE.Demo項目的Items文件夾下面創(chuàng)建一個物料規(guī)則校驗類(ItemRule.cs),該類繼承:NoReferencedRule<T>,泛型T指定為我們的Item實體類(代碼見圖2-2)。標(biāo)準(zhǔn)規(guī)則進(jìn)行校驗:在Item.cs類中的ItemConfig類下面重寫AddValidations,在重寫的方法內(nèi)進(jìn)行標(biāo)準(zhǔn)規(guī)則校驗,具體見圖2-3圖2-2ItemRule.cs類被引用不允許刪除 圖2-3Item.cs實體類的參數(shù)校驗重寫查詢實現(xiàn)模糊查詢:見重寫查詢專欄重寫添加命令給物料賦初值(可用):在SIE.Web.Demo的Items文件夾下創(chuàng)建Commands文件夾,在Commands文件夾下面創(chuàng)建添加命令的js類。命名規(guī)范:命令名稱+類名.js。然后鼠標(biāo)右鍵這個命令,點擊屬性->生成操作->嵌入的資源。重寫的添加命令(見圖2-4)在ItemViewConfig.cs中的配置列表視圖中替換框架的添加命令為我們剛剛創(chuàng)建的添加命令(見圖2-5)圖2-4重寫Item表的添加命令圖2-5替換掉框架默認(rèn)的添加命令任務(wù)三:工序表的開發(fā)字段的校驗被引用不允許刪除的校驗:在SIE.Demo項目的Processes文件夾下面創(chuàng)建一個工序規(guī)則校驗類(ProcessRule.cs),該類繼承:NoReferencedRule<T>,泛型T指定為我們的Process實體類(代碼見圖3-1)標(biāo)準(zhǔn)規(guī)則進(jìn)行校驗:在Process.cs類中的ProcessConfig類下面重寫AddValidations方法,在重寫的方法內(nèi)進(jìn)行標(biāo)準(zhǔn)規(guī)則校驗,具體見圖3-2圖3-1ProcessRule.cs類被引用不允許刪除 圖3-2Process.cs實體類的參數(shù)校驗重寫查詢實現(xiàn)模糊查詢:見重寫查詢專欄任務(wù)四:工藝路線表的開發(fā)字段的校驗標(biāo)準(zhǔn)規(guī)則進(jìn)行校驗:在ProcessRoute.cs類中的ProcessRouteConfig類下面重寫AddValidations方法,在這里面進(jìn)行標(biāo)準(zhǔn)規(guī)則的校驗。具體代碼見附錄”工藝路線標(biāo)準(zhǔn)規(guī)則校驗”。重寫保存命令進(jìn)行校驗:在SIE.Web.Demo工程下的ProcessRoutes文件夾下創(chuàng)建Commands文件夾用于存放命令文件,然后重寫保存命令,記得嵌入資源。保存命令的js文件如圖4-1,cs文件見附錄”工藝路線保存命令cs”,該cs文件所調(diào)用的Controller內(nèi)的方法見圖4-2。然后在ProcessRouteViewConfig.cs類中替換框架默認(rèn)的保存命令為我們剛剛重寫的保存命令。圖4-1工藝路線保存命令js圖4-2工藝路線保存命令后端調(diào)用的controller的方法重寫查詢實現(xiàn)模糊查詢:見重寫查詢專欄任務(wù)五:工單相關(guān)功能的開發(fā)字段的校驗點擊SIE.Demo模塊下的WorkOrders文件夾中的WorkOrder.cs類,在WorkOrderConfig類中下面重寫AddValidations方法,具體見附錄”工單標(biāo)準(zhǔn)規(guī)則校驗”。配置項自動生成工單號的實現(xiàn)在SIE.Web.Demo項目的WorkOrders文件夾下創(chuàng)建Commands文件夾在Commands文件夾下面創(chuàng)建添加命令的js類。命名規(guī)范:命令名稱+類名.js。然后鼠標(biāo)右鍵這個命令,點擊屬性->生成操作->嵌入的資源。命令的js代碼見附錄”AddWorkOrderCommand.js”在SIE.Demo項目的WorkOrders文件夾下創(chuàng)建WorkOrderController.cs類,該類繼承DomainController,并寫一個獲取工單配置項規(guī)則自動生成工單號的方法(GetOrderNumber()方法),如圖5-1。在第一步的Commands文件夾下創(chuàng)建一個與第一步的添加命令同名的cs類,該類繼承ViewCommand,并重寫Excute方法,在Excute方法內(nèi)調(diào)用第二步中的GetOrderNumber()方法獲取配置項自動生成的工單號。在SIE.Web.Demo模塊中的WorkOrderViewConfig.cs類中的配置列表視圖中替換添加命令,注意這里使用typeof指定我們剛剛開發(fā)的添加命令的cs類(順便提醒一下js別忘記了嵌入資源)。記得開啟表單編輯模式(View.FormEdit())如圖5-2,然后順便配置一下明細(xì)視圖,因為表單編輯是走明細(xì)視圖的。在SIE.Demo模塊的WorkOrder.cs類中使用框架自帶的配置項生成規(guī)則(注意,等項目跑起來了可以在工單頁面的配置項中配置工單的生成規(guī)則,只要配置好了之后,就可以注釋掉這個標(biāo)記,防止配置項命令出現(xiàn)在工單中)如圖5-3在SIE.Web.Demo模塊的WorkOrders文件夾中創(chuàng)建Behaviors文件夾,并且創(chuàng)建AddWorkOrderBehavior.js行為,重寫:onCreated()方法,并且在WorkOrderViewConfig的配置明細(xì)視圖中使用該行為。如圖5-4、5-5啟動項目,在系統(tǒng)自帶的配置項功能中配置一下工單號的生成算法。配置完成之后就能在添加工單的時候,在新的tap頁中有系統(tǒng)自動生成的工單號了,然后就可以注釋掉工單實體類上的那個配置項標(biāo)記(參考5-3)。圖5-1工單controller中獲取配置項生成的工單號的方法圖5-2WorkOrderViewConfig.cs中使用添加命令圖5-3WorkOrder.cs中開啟系統(tǒng)配置項規(guī)則的標(biāo)記圖5-4在Behaviors文件夾中定義添加工單的行為圖5-5在WorkOrderViewConfig的配置明細(xì)視圖中使用行為工藝路線附加到工單SIE.Demo中的WorkOrders文件夾下創(chuàng)建擴(kuò)展文件夾(Extention),并在該文件夾下創(chuàng)建工單擴(kuò)展類(WorkOrderExtention.cs),然后通過代碼段(PFPropertyExtensionList)添加附加列表屬性。記得在擴(kuò)展類上加[SIE.ManagedProperty.CompiledPropertyDeclarer]標(biāo)記。見圖5-6在OrderRouteViewConfig.cs類中定義視圖常量OrderRouteViewGroup,并且配置該視圖(見圖5-7)。在工單的視圖配置類WorkOrderViewConfig中的配置列表視圖和配置明細(xì)視圖中使用AssociateChildrenProperty屬性進(jìn)行附加子表,其中列表視圖要指定視圖為OrderRouteViewConfig類下定義的OrderRouteViewGroup視圖常量,明細(xì)視圖不要指定。列表視圖的附加如圖5-8所示,其中用到的controller的方法見5-9。點擊OrderRouteViewConfig.cs類,配置工藝路線附加表的列表視圖(見圖5-10)。其中用到的controller內(nèi)的方法見圖(5-11)。對附加子表中的屬性進(jìn)行校驗:點擊OrderRoute.cs類,重寫AddValidations方法進(jìn)行參數(shù)校驗,代碼見附錄”附加子表-工藝路線標(biāo)準(zhǔn)規(guī)則校驗”圖5-6工藝路線擴(kuò)展屬性圖5-7定義附加子表-工藝路線的視圖圖5-8工單列表視圖-工藝路線附加到工單圖5-9上一張圖中調(diào)用的方法:獲取附加子表-工藝路線圖5-10配置OrderRouteViewConfig.cs列表視圖 圖5-11左圖中調(diào)用的方法工單屬性變更事件在之前開發(fā)的AddWorkOrderBehavior.js行為中重寫onViewReady()方法,注冊屬性變更事件,并定義實現(xiàn)該事件(圖5-12)。當(dāng)ItemId或者WorkOrderType發(fā)生改變觸發(fā)相應(yīng)的處理函數(shù),在函數(shù)中發(fā)送請求獲取數(shù)據(jù)(發(fā)送請求需導(dǎo)入myAjax函數(shù),見附錄”myAjax”),并映射到頁面中(圖5-13)。第二步的函數(shù)發(fā)送請求走的是DataQueryer類,所以我們在SIE.Web.Demo項目下創(chuàng)建DataQuerys文件夾,并創(chuàng)建WorkOrderDataQuery.cs類,該類繼承DataQueryer類,并定義第二步中請求接收的方法GetOrderRouteListByArgs,在該方法內(nèi)我們處理相應(yīng)業(yè)務(wù)邏輯(見附錄”WorkOrderDataQuery”)。其中該方法調(diào)用的controller中的方法附錄”ProcessRouteController”。圖5-12注冊并實現(xiàn)工單的物料和工單類型的屬性變更事件圖5-13屬性變更發(fā)送請求并執(zhí)行回調(diào)函數(shù)重寫工單保存命令為什么重寫工單的保存命令:為了實現(xiàn)保存后自動關(guān)閉工單頁面、并且校驗附加的子表-工藝路線是否滿足順序條件、是否滿足需求文檔上的各種條件。工單保存命令js文件如圖5-14。保存命令的cs文件的開發(fā):繼承FormSaveCommand,并且類名要和上一步的js文件一致,重寫DoSave方法,目的是為了在進(jìn)行保存的時候給一些字段賦初值,重寫Excute方法為了校驗子表數(shù)據(jù)是否滿足需求。代碼見附件”SaveWorkOrderCommand”。圖5-14重寫工單保存命令重寫工單修改命令需求分析:需求文檔上要求只能修改:發(fā)放暫停、生產(chǎn)中暫停狀態(tài)下的工單,并且兩種狀態(tài)的工單能修改的東西是不一樣的,因此需要重寫修改命令。重寫修改命令的canExecute方法,該方法判斷中判斷工單狀態(tài),如果是發(fā)放暫?;蛘呤巧a(chǎn)中暫停,返回true讓按鈕亮起,否則則返會false讓按鈕置灰(圖5-15)。在WorkOrderViewConfig的配置明細(xì)視圖中,根據(jù)工單狀態(tài)設(shè)置字段的Readonly屬性(如圖5-16)。在AddWorkOrderBehavior行為中去除修改生產(chǎn)中暫停的工單的附加子表-工藝路線的操作命令,如圖(5-17)。在WorkOrderViewConfig的配置列表視圖中使用我們剛剛重寫的修改命令。圖5-15重寫工單修改命令圖5-16配置工單明細(xì)視圖圖5-17行為中移除指定視圖中的命令工單復(fù)制新增的實現(xiàn)重寫復(fù)制新增命令(繼承SIE.cmd.Copy),在_setCopyEntity方法中發(fā)送非異步請求(發(fā)送請求記得導(dǎo)入附件的”myAjax”函數(shù))到后端獲取一個配置項自動生成的工單號,并給一些字段賦初值(代碼見附件”CopyWorkOrderCommand”)。注意:CopyWorkOrderCommand中發(fā)送請求給WorkOrderDataQuery中的GetOrderNumber方法,源碼見附件”WorkOrderDataQuery”。解決一個很奇怪的bug:在AddWorkOrderBehavior里面重寫onDataLoaded方法,該方法會在view數(shù)據(jù)加載后執(zhí)行,在該方法內(nèi)判斷view.getCurrent()[0]的工單狀態(tài)是否和view.getCurrent().data的工單狀態(tài)相同,不相同則把工單狀態(tài)設(shè)置為4(發(fā)放暫停)。Bug復(fù)現(xiàn):復(fù)制新增一筆工單,然后暫停工單(后面會開發(fā)),再去修改工單(比如修改一下計劃數(shù)量),點擊保存之后,工單狀態(tài)會變成發(fā)放。Bug產(chǎn)生的原因當(dāng)作小練習(xí),第三步只是避免這個bug的一種方式。工單數(shù)據(jù)導(dǎo)入的實現(xiàn)在工單的Commands文件夾下創(chuàng)建一個導(dǎo)入命令的js類(圖5-18)并嵌入資源,再創(chuàng)建一個cs類(如圖5-19),兩個類的名字一定要相同。在后端的WorkOrders文件夾下創(chuàng)建WorkOrderImportHandle.cs類,實現(xiàn)IDisposable,IBusinessImport接口,并且加上[Services.Service(FallbackType=typeof(WorkOrderImportHandle),ServiceLifeStyle=Services.ServiceLifeStyle.Transient)]標(biāo)記。代碼見附件”WorkOrderImportHandle”,里面注釋寫的比較清晰。在WorkOrderViewConfig中重寫ConfigImportView方法,配置導(dǎo)入模板的表頭。在WorkOrderViewConfig的配置列表視圖中使用我們重寫的導(dǎo)入命令。圖5-18重寫工單導(dǎo)入命令js圖5-19重寫工單導(dǎo)入命令cs查看工單的實現(xiàn)在工單的Commands文件夾下面創(chuàng)建一個WatchWorkOrderCommand命令,繼承修改命令,重寫showView,在showView方法內(nèi)配置視圖組(圖5-20)。在WorkOrderViewConfig中定義、授權(quán)、使用、配置查看工單的視圖組(圖5-21),工單的視圖配置類見附件”WorkOrderViewConfig”。在WorkOrderViewConfig的配置列表視圖中使用我們剛剛開發(fā)的查看工單命令。圖5-20查看工單命令圖5-21定義、授權(quán)查看工單視圖組工單狀態(tài)日志附加到工單點擊后端WorkOrders文件夾下的Extention文件下的WorkOrderExtention.cs類,代碼段(PFPropertyExtensionList)添加工單日志的擴(kuò)展列表屬性(圖5-22)。將工單狀態(tài)日志附加到查看工單視圖:點擊工單視圖配置類WorkOrderViewConfig,在WatchWorkOrderView方法內(nèi)將工單操作日志附加上去(圖5-23),附加內(nèi)調(diào)用的WorkOrderController見附件”WorkOrderController”。圖5-22工單狀態(tài)日志擴(kuò)展列表屬性圖5-23工單狀態(tài)日志附加到工單的查看工單視圖暫停工單的實現(xiàn)在WorkOrder實體類中用代碼段(PFProperty)添加兩個string類型的字段Reason(原因)、IsPause(是否暫停),并且配置不映射數(shù)據(jù)庫。在工單的Commands文件夾下創(chuàng)建命令PauseWorkOrderCommand.js,繼承修改命令,重寫canExecute判斷什么狀態(tài)的工單可以暫停,重寫setDialogAttribute方法設(shè)置彈窗大小,重寫showView彈框處理后續(xù)邏輯。代碼見附件”PauseWorkOrderCommand”。補(bǔ)充說明:PauseWorkOrderCommand.js中的saveWorkOrderJournal_1方法發(fā)送了請求到WorkOrderDataQuery,在WorkOrderDataQuery中調(diào)用了WorkOrderController中的方法,具體見附件”WorkOrderDataQuery”和”WorkOrderController”。在WorkOrderViewConfig的配置列表視圖中使用上述開發(fā)的命令,記得嵌入資源哦。在工單視圖配置類WorkOrderViewConfig中定義并授權(quán)暫停彈窗命令中使用的視圖組PurchaseOrderView,圖5-21中可以看到。然后配置一下上述視圖(見圖5-24)圖5-24配置暫停工單的彈窗視圖(后續(xù)恢復(fù)和強(qiáng)制關(guān)閉也是走這個視圖)恢復(fù)工單的實現(xiàn)在工單的Commands文件夾下創(chuàng)建命令WorkOrderLaunchCommand.js,繼承修改命令,重寫canExecute判斷什么狀態(tài)的工單可以恢復(fù),重寫setDialogAttribute設(shè)置彈窗大小,重寫showView彈框處理后續(xù)邏輯。代碼見附件”WorkOrderLaunchCommand”。在WorkOrderViewConfig的配置列表視圖中使用上述開發(fā)的命令,記得嵌入資源哦。該命令實現(xiàn)步驟類似暫停工單,可去暫停工單的實現(xiàn)查看。強(qiáng)制關(guān)閉工單的實現(xiàn)在工單的Commands文件夾下創(chuàng)建命令ShutWorkOrderCommand.js,繼承修改命令,重寫canExecute判斷什么狀態(tài)的工單可以關(guān)閉,重寫setDialogAttribute設(shè)置彈窗大小,重寫showView彈框處理后續(xù)邏輯。代碼見附件”ShutWorkOrderCommand”。在WorkOrderViewConfig的配置列表視圖中使用上述開發(fā)的命令,記得嵌入資源哦。該命令實現(xiàn)步驟類似暫停工單,可去暫停工單的實現(xiàn)查看。附加任務(wù)單列表到工單打開后端的WorkOrders文件夾下的Extention文件夾的WorkOrderExtention.cs類,添加任務(wù)單列表擴(kuò)展列表屬性(代碼段:PFPropertyExtensionList)見圖5-25。打開WorkOrderViewConfig,在工單的配置列表視圖中附加任務(wù)單列表(圖5-26),其中調(diào)用的WorkOrderController中的方法參考附件,注意,列表視圖請把工藝路線放前面,不然復(fù)制新增命令復(fù)制不到工藝路線。圖5-25附加子表-任務(wù)單列表擴(kuò)展屬性圖5-26任務(wù)單列表附加到工單列表視圖中附加報工記錄到工單打開后端的WorkOrders文件夾下的Extention文件夾的WorkOrderExtention.cs類,添加報工記錄擴(kuò)展列表屬性(代碼段:PFPropertyExtensionList)見圖5-27。打開WorkOrderViewConfig,在工單的配置列表視圖中附加報工記錄(圖5-28),其中調(diào)用的WorkOrderController中的方法參考附件,注意,列表視圖請把工藝路線放前面,不然復(fù)制新增命令復(fù)制不到工藝路線。圖5-27附加子表-報工記錄擴(kuò)展屬性圖5-28報工記錄附加到工單列表視圖中生成任務(wù)單的實現(xiàn)在工單的Commands文件夾下創(chuàng)建GenerateTaskCommand.js,并嵌入資源。繼承編輯命令,重寫canExecute判斷工單是否生成過任務(wù)單,重寫showView方法處理確認(rèn)之后的回調(diào)邏輯,具體代碼見附件”GenerateTaskCommand”。補(bǔ)充:在GenerateTaskCommand.js中調(diào)用了WorkOrderDataQuery中的GenerateTaskList方法,GenerateTaskList方法調(diào)用了WorkOrderController的GenerateTaskList方法,這幾個文件之前已經(jīng)給過了,見附錄。在WorkOrderViewConfig中的配置列表視圖中使用剛剛開發(fā)的生成任務(wù)單命令。下達(dá)功能的實現(xiàn)需求說明:點擊沒有生成過任務(wù)單的工單,生成任務(wù)單按鈕亮起,點擊生成任務(wù)單按鈕彈出對話框詢問是否確認(rèn),點擊確認(rèn)則按該工單的工藝路線來生成任務(wù)單,任務(wù)數(shù)量與工單計劃數(shù)量一致,并且進(jìn)行派工(工號為SMDC的員工)在工單的Commands文件夾下創(chuàng)建ReleaseTaskCommand.js文件,并嵌入資源。繼承編輯命令,重寫canExecute判斷工單是否生成過任務(wù)單,重寫showView方法處理確認(rèn)之后的回調(diào)邏輯。源碼見附錄”ReleaseTaskCommand”。補(bǔ)充:在ReleaseTaskCommand.js中調(diào)用了WorkOrderDataQuery中的GenTaskAndExpatriateMDC方法,GenTaskAndExpatriateMDC方法調(diào)用了WorkOrderController的GenTaskAndExpatriateMDC方法,這幾個文件之前已經(jīng)給過了,見附錄。在WorkOrderViewConfig中的配置列表視圖中使用剛剛開發(fā)的下達(dá)命令,然后啟動項目測試效果。派工功能的實現(xiàn)需求說明:點擊狀態(tài)為待派工的任務(wù)單,派工按鈕亮起。點擊派工,彈出彈窗下拉選擇員工,然后點擊確定則成功派工,派工之后要改變?nèi)蝿?wù)單狀態(tài)、記錄任務(wù)執(zhí)行對象。在工單的Commands文件夾下創(chuàng)建ExpatriateTaskListCommand.js文件,并嵌入資源。繼承編輯命令,重寫canExecute方法判斷工單是否生成過任務(wù)單,重寫showView方法處理確認(rèn)之后的回調(diào)邏輯,重寫setDialogAttribute方法設(shè)置彈窗大小。源碼見附錄中的”ExpatriateTaskListCommand”文件。補(bǔ)充:在ExpatriateTaskListCommand.js中調(diào)用了WorkOrderDataQuery中的DoExpatriate方法,DoExpatriate方法調(diào)用了WorkOrderController的DoExpatriate方法,這幾個文件之前已經(jīng)給過了,見附錄。在TaskListViewConfig.cs中的配置列表視圖中使用剛剛開發(fā)的派工命令。在TaskListViewConfig中的定義派工視圖,并授權(quán)和配置派工視圖。具體可以見圖5-29、5-30。圖5-29定義任務(wù)單列表中的派工視圖圖5-30配置任務(wù)單列表中的派工視圖報工功能的實現(xiàn)需求說明:點擊狀態(tài)為發(fā)放或生產(chǎn)中的工單下的狀態(tài)為已派工、執(zhí)行中的任務(wù)單,報工按鈕亮起。點擊報工,彈出彈窗顯示一些數(shù)量,并且可用填寫一些值,點擊確定則走報工邏輯,具體請看需求文檔。在工單的Commands文件夾下創(chuàng)建ReportingTaskListCommand.js文件,并嵌入資源。繼承編輯命令,重寫canExecute判斷工單狀態(tài)

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論