專利名稱:工藝文檔數(shù)據(jù)的處理方法及裝置的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及數(shù)據(jù)處理領(lǐng)域,具體而言,涉及一種工藝文檔數(shù)據(jù)的處理方法及裝置。
技術(shù)背景
目前市面上主流的工藝編制工具有CAXA CAPP, Excel、AutoCAD,這些工具根據(jù)生成的是文檔結(jié)構(gòu)的工藝,即工藝文檔。在工藝文檔中的工序、工裝、工時等數(shù)據(jù)的結(jié)構(gòu)復(fù)雜并且不統(tǒng)一,由于現(xiàn)有的工具很難將工藝文檔中的數(shù)據(jù)結(jié)構(gòu)化,因此現(xiàn)有的PDM或CAPP管理系統(tǒng)僅僅把工藝文檔作為文檔來進(jìn)行管理。然而PDM和CAPP管理系統(tǒng)中的產(chǎn)品、零件數(shù)據(jù)都是數(shù)據(jù)庫對象,工序、工裝、工時等數(shù)據(jù)則存在工藝文檔中,這樣用戶在使用工藝數(shù)據(jù)時無法從數(shù)據(jù)庫獲取完整的物料清單或者企業(yè)在統(tǒng)計工藝信息很不方便。
針對現(xiàn)有技術(shù)中工藝文檔的數(shù)據(jù)不是數(shù)據(jù)庫對象,從而導(dǎo)致用戶無法從數(shù)據(jù)庫中獲取完整的物料清單的問題,目如尚未提出有效的解決方案。發(fā)明內(nèi)容
針對相關(guān)技術(shù)工藝文檔的數(shù)據(jù)不是數(shù)據(jù)庫對象,從而導(dǎo)致用戶無法從數(shù)據(jù)庫中獲取完整的物料清單的問題,目前尚未提出有效的解決方案,為此,本發(fā)明的主要目的在于提供一種工藝文檔數(shù)據(jù)的處理方法及裝置,以解決上述問題。
為了實現(xiàn)上述目的,根據(jù)本發(fā)明的一個方面,提供了一種工藝文檔數(shù)據(jù)的處理方法,該包括從數(shù)據(jù)庫中提取工藝數(shù)據(jù)模型,工藝數(shù)據(jù)模型包括元素關(guān)系數(shù)據(jù)、元素屬性數(shù)據(jù);讀取工藝文檔的模板文件以及模板文件中的單元格的屬性;創(chuàng)建單元格與元素之間的對應(yīng)關(guān)系,并將對應(yīng)關(guān)系保存在配置文件中,其中,單元格的屬性與元素的屬性相對應(yīng);根據(jù)對應(yīng)關(guān)系將工藝文檔中的工藝數(shù)據(jù)插入到配置文件中,以獲取工藝數(shù)據(jù)文檔;將工藝數(shù)據(jù)文檔生成數(shù)據(jù)庫對象,并將數(shù)據(jù)庫對象保存在數(shù)據(jù)庫中。
進(jìn)一步地,根據(jù)對應(yīng)關(guān)系將工藝文檔中的工藝數(shù)據(jù)插入到配置文件中,以獲取工藝數(shù)據(jù)文檔的步驟包括從配置文件中讀取當(dāng)前配置對象;根據(jù)對應(yīng)關(guān)系讀取當(dāng)前配置對象所屬的配置元素以及當(dāng)前單元格所屬的單元格元素;檢測單元格元素與配置元素是否相同,其中,在單元格元素與配置元素相同的情況下,從工藝文檔中讀取當(dāng)前單元格的工藝數(shù)據(jù);使用工藝數(shù)據(jù)更新當(dāng)前配置對象的屬性,以獲取工藝數(shù)據(jù)文檔。
進(jìn)一步地,在檢測單元格元素與配置元素是否相同之后,方法還包括在單元格元素與配置元素不同的情況下,檢測單元格元素所屬配置元素的父元素是否相同,其中,在單元格元素與配置元素的父元素相同的情況下,根據(jù)單元格元素創(chuàng)建單元格對象,并將單元格對象作為配置對象保存在配置文件中;從工藝文檔中讀取當(dāng)前單元格的工藝數(shù)據(jù);使用工藝數(shù)據(jù)更新當(dāng)前配置對象的屬性,以獲取工藝數(shù)據(jù)文檔。
進(jìn)一步地,創(chuàng)建模板文件中的單元格與元素關(guān)系數(shù)據(jù)以及元素屬性數(shù)據(jù)之間的對應(yīng)關(guān)系,并將對應(yīng)關(guān)系保存在配置文件中的步驟包括讀取模板文件中的單元格的拆分規(guī)則;創(chuàng)建模板文件中的單元格與元素關(guān)系數(shù)據(jù)以及元素屬性數(shù)據(jù)之間的對應(yīng)關(guān)系,并將對應(yīng)關(guān)系和拆分規(guī)則保存在配置文件中。進(jìn)一步地,配置對象包括零件對象,其中,在檢測單元格元素與配置元素是否相同之前,方法還包括根據(jù)拆分規(guī)則獲取當(dāng)前配置對象的單元格范圍;檢測當(dāng)前配置對象的單元格范圍內(nèi)的當(dāng)前單元格是否為空,其中,在當(dāng)前單元格為空的情況下,檢測當(dāng)前配置對象是否為零件對象,其中,在當(dāng)前配置對象為零件對象的情況下,結(jié)束根據(jù)對應(yīng)關(guān)系將工藝文檔中的工藝數(shù)據(jù)插入到配置文件中,以獲取工藝數(shù)據(jù)文檔的步驟;在當(dāng)前配置對象不為零件對象的情況下,獲取當(dāng)前配置對象的下一對象。進(jìn)一步地,在單元格元素與配置元素不同的情況下,檢測單元格元素與配置元素的父元素是否相同之后,方法還包括在單元格元素與配置元素的父元素不同的情況下,獲取當(dāng)前單元格的下一單元格。進(jìn)一步地,在使用工藝數(shù)據(jù)更新當(dāng)前配置對象的屬性,以獲取工藝數(shù)據(jù)文檔之后,方法還包括將當(dāng)前單元格標(biāo)記為已處理單元格,并將已處理單元格的標(biāo)識保存在處理列表中。進(jìn)一步地,在根據(jù)對應(yīng)關(guān)系讀取當(dāng)前配置對象所屬的配置元素以及當(dāng)前單元格所屬的單元格元素之前,方法還包括檢測處理列表中是否存在當(dāng)前單元格的標(biāo)識,其中,在處理列表中不存在當(dāng)前單元格的標(biāo)識的情況下,執(zhí)行根據(jù)對應(yīng)關(guān)系讀取當(dāng)前配置對象所屬的配置元素以及當(dāng)前單元格所屬的單元格元素的步驟;在處理列表中存在當(dāng)前單元格的標(biāo)識的情況下,獲取當(dāng)前單元格的下一單元格。為了實現(xiàn)上述目的,根據(jù)本發(fā)明的另一方面,提供了一種工藝文檔數(shù)據(jù)的處理裝置,該裝置包括提取模塊,用于從數(shù)據(jù)庫中提取工藝數(shù)據(jù)模型,工藝數(shù)據(jù)模型包括元素關(guān)系數(shù)據(jù)、元素屬性數(shù)據(jù);第一讀取模塊,用于讀取工藝文檔的模板文件以及模板文件中的單元格的屬性;第一處理模塊,用于創(chuàng)建單元格與元素之間的對應(yīng)關(guān)系,并將對應(yīng)關(guān)系保存在配置文件中,其中,單元格的屬性與元素的屬性相對應(yīng);第二處理模塊,用于根據(jù)對應(yīng)關(guān)系將工藝文檔中的工藝數(shù)據(jù)插入到配置文件中,以獲取工藝數(shù)據(jù)文檔;第三處理模塊,用于將工藝數(shù)據(jù)文檔生成數(shù)據(jù)庫對象,并將數(shù)據(jù)庫對象保存在數(shù)據(jù)庫中。進(jìn)一步地,第二處理模塊包括第二讀取模塊,用于從配置文件中讀取當(dāng)前配置對象;第三讀取模塊,用于根據(jù)對應(yīng)關(guān)系讀取當(dāng)前配置對象所屬的配置元素以及當(dāng)前單元格所屬的單元格元素;第一檢測模塊,用于檢測單元格元素與配置元素是否相同;第四讀取模塊,用于在單元格元素與配置元素相同的情況下,從工藝文檔中讀取當(dāng)前單元格的工藝數(shù)據(jù);第一更新模塊,用于使用工藝數(shù)據(jù)更新當(dāng)前配置對象的屬性,以獲取工藝數(shù)據(jù)文檔。進(jìn)一步地,裝置還包括第二檢測模塊,用于在單元格元素與配置元素不同的情況下,檢測單元格元素所屬配置元素的父元素是否相同;第四處理模塊,用于在單元格元素與配置元素的父元素相同的情況下,根據(jù)單元格元素創(chuàng)建單元格對象,并將單元格對象作為配置對象保存在配置文件中;第四讀取模塊,用于從工藝文檔中讀取當(dāng)前單元格的工藝數(shù)據(jù);第二更新模塊,用于使用工藝數(shù)據(jù)更新當(dāng)前配置對象的屬性,以獲取工藝數(shù)據(jù)文檔。進(jìn)一步地,第一處理模塊包括第一子讀取模塊,用于讀取模板文件中的單元格的拆分規(guī)則;第一子處理模塊,用于創(chuàng)建模板文件中的單元格與元素關(guān)系數(shù)據(jù)以及元素屬性數(shù)據(jù)之間的對應(yīng)關(guān)系,并將對應(yīng)關(guān)系和拆分規(guī)則保存在配置文件中。進(jìn)一步地,配置對象包括零件對象,其中,裝置還包括第五處理模塊,用于根據(jù)拆分規(guī)則獲取當(dāng)前配置對象的單元格范圍;第三檢測模塊,用于檢測單元格范圍內(nèi)的當(dāng)前單元格是否為空;第四檢測模塊,用于在當(dāng)前單元格為空的情況下,檢測當(dāng)前配置對象是否為零件對象;第二子處理模塊,用于在當(dāng)前配置對象為零件對象的情況下,結(jié)束執(zhí)行第二處理模塊;第三子處理模塊,用于在當(dāng)前配置對象不為零件對象的情況下,獲取當(dāng)前配置對象的下一對象。進(jìn)一步地,裝置還包括第一獲取模塊,用于在單元格元素與配置元素的父元素不同的情況下,獲取當(dāng)前單元格的下一單元格。進(jìn)一步地,裝置還包括第三子處理模塊,用于將當(dāng)前單元格標(biāo)記為已處理單元格,并將已處理單元格的標(biāo)識保存在處理列表中。進(jìn)一步地,裝置還包括第五檢測模塊,用于檢測處理列表中是否存在當(dāng)前單元格的標(biāo)識;第四子處理模塊,用于在處理列表中不存在當(dāng)前單元格的標(biāo)識的情況下,觸發(fā)執(zhí)行第三讀取模塊;第二獲取模塊,用于在處理列表中存在當(dāng)前單元格的標(biāo)識的情況下,獲取當(dāng)前單元格的下一單元格。通過本發(fā)明,根據(jù)從數(shù)據(jù)庫中導(dǎo)出的工藝數(shù)據(jù)模型,根據(jù)該模型建立工藝文檔模板與工藝數(shù)據(jù)模型的對應(yīng)關(guān)系,并根據(jù)該對應(yīng)關(guān)系將工藝文檔中的工藝數(shù)據(jù)生成一個個數(shù)據(jù)庫對象,并將數(shù)據(jù)庫對象寫入到數(shù)據(jù)庫中,解決了現(xiàn)有技術(shù)中工藝文檔的數(shù)據(jù)不是數(shù)據(jù)庫對象,從而導(dǎo)致用戶無法從數(shù)據(jù)庫中獲取完整的物料清單的問題,實現(xiàn)了結(jié)構(gòu)化工藝文檔里的數(shù)據(jù)的效果,使得用戶可以通過數(shù)據(jù)庫查詢和統(tǒng)計到完整的物料清單。
此處所說明的附圖用來提供對本發(fā)明的進(jìn)一步理解,構(gòu)成本申請的一部分,本發(fā)明的示意性實施例及其說明用于解釋本發(fā)明,并不構(gòu)成對本發(fā)明的不當(dāng)限定。在附圖中圖I是根據(jù)本發(fā)明實施例的工藝文檔數(shù)據(jù)的處理裝置的結(jié)構(gòu)示意圖;圖2是根據(jù)本發(fā)明實施例的工藝文檔數(shù)據(jù)的處理方法的流程圖;圖3是根據(jù)圖2所示實施例的工藝文檔數(shù)據(jù)的處理方法的流程圖;圖4是根據(jù)圖3所示實施例的工藝文檔數(shù)據(jù)的處理方法的流程圖;以及圖5是根據(jù)圖4所示實施例的單元格范圍的示意圖。
具體實施例方式需要說明的是,在不沖突的情況下,本申請中的實施例及實施例中的特征可以相互組合。下面將參考附圖并結(jié)合實施例來詳細(xì)說明本發(fā)明。圖I是根據(jù)本發(fā)明實施例的工藝文檔數(shù)據(jù)的處理裝置的結(jié)構(gòu)示意圖。如圖I所示,該裝置包括提取模塊10,用于從數(shù)據(jù)庫中提取工藝數(shù)據(jù)模型,工藝數(shù)據(jù)模型包括元素關(guān)系數(shù)據(jù)、元素屬性數(shù)據(jù);第一讀取模塊30,用于讀取工藝文檔的模板文件以及模板文件中的單元格的屬性;第一處理模塊50,用于創(chuàng)建單元格與元素之間的對應(yīng)關(guān)系,并將對應(yīng)關(guān)系保存在配置文件中,其中,單元格的屬性與元素的屬性相對應(yīng);第二處理模塊70,用于根據(jù)對應(yīng)關(guān)系將工藝文檔中的工藝數(shù)據(jù)插入到配置文件中,以獲取工藝數(shù)據(jù)文檔;第三處理模塊90,用于將工藝數(shù)據(jù)文檔生成數(shù)據(jù)庫對象,并將數(shù)據(jù)庫對象保存在數(shù)據(jù)庫中。采用本發(fā)明,通過提取模塊從數(shù)據(jù)庫中提取工藝數(shù)據(jù)模型,工藝數(shù)據(jù)模型包括元素關(guān)系數(shù)據(jù)、元素屬性數(shù)據(jù),然后第一讀取模塊讀取工藝文檔的模板文件以及模板文件中的單元格的屬性,在第一處理模塊創(chuàng)建單元格與元素之間的對應(yīng)關(guān)系,并將對應(yīng)關(guān)系保存在配置文件中之后,第二處理模塊根據(jù)對應(yīng)關(guān)系將工藝文檔中的工藝數(shù)據(jù)插入到配置文件中,以獲取工藝數(shù)據(jù)文檔,并通過第三處理模塊將工藝數(shù)據(jù)文檔生成數(shù)據(jù)庫對象,并將數(shù)據(jù)庫對象保存在數(shù)據(jù)庫中。通過本發(fā)明,根據(jù)從數(shù)據(jù)庫中導(dǎo)出的工藝數(shù)據(jù)模型,根據(jù)該模型建立工藝文檔模板與工藝數(shù)據(jù)模型的對應(yīng)關(guān)系,并根據(jù)該對應(yīng)關(guān)系將工藝文檔中的工藝數(shù)據(jù)生成一個個數(shù)據(jù)庫對象,并將數(shù)據(jù)庫對象寫入到數(shù)據(jù)庫中,解決了現(xiàn)有技術(shù)中工藝文檔的數(shù)據(jù)不是數(shù)據(jù)庫對象,從而導(dǎo)致用戶無法從數(shù)據(jù)庫中獲取完整的物料清單的問題,實現(xiàn)了結(jié)構(gòu)化工藝文檔里的數(shù)據(jù)的效果,使得用戶可以通過數(shù)據(jù)庫查詢和統(tǒng)計到完整的物料清單。
其中,單元格的屬性包括單元格的名稱。
在本發(fā)明的上述實施例中,第二處理模塊70可以包括第二讀取模塊,用于從配置文件中讀取當(dāng)前配置對象;第三讀取模塊,用于根據(jù)對應(yīng)關(guān)系讀取當(dāng)前配置對象所屬的配置元素以及當(dāng)前單元格所屬的單元格元素;第一檢測模塊,用于檢測單元格元素與配置元素是否相同;第四讀取模塊,用于在單元格元素與配置元素相同的情況下,從工藝文檔中讀取當(dāng)前單元格的工藝數(shù)據(jù);第一更新模塊,用于使用工藝數(shù)據(jù)更新當(dāng)前配置對象的屬性, 以獲取工藝數(shù)據(jù)文檔。
根據(jù)本發(fā)明的上述實施例,裝置還可以包括第二檢測模塊,用于在單元格元素與配置元素不同的情況下,檢測單元格元素所屬配置元素的父元素是否相同;第四處理模塊, 用于在單元格元素與配置元素的父元素相同的情況下,根據(jù)單元格元素創(chuàng)建單元格對象, 并將單元格對象作為配置對象保存在配置文件中;第四讀取模塊,用于從工藝文檔中讀取當(dāng)前單元格的工藝數(shù)據(jù);第二更新模塊,用于使用工藝數(shù)據(jù)更新當(dāng)前配置對象的屬性,以獲取工藝數(shù)據(jù)文檔。
在本發(fā)明的上述實施例中,第一處理模塊50可以包括第一子讀取模塊,用于讀取模板文件中的單元格的拆分規(guī)則;第一子處理模塊,用于創(chuàng)建模板文件中的單元格與元素關(guān)系數(shù)據(jù)以及元素屬性數(shù)據(jù)之間的對應(yīng)關(guān)系,并將對應(yīng)關(guān)系和拆分規(guī)則保存在配置文件中。
根據(jù)本發(fā)明的上述實施例中,配置對象可以包括零件對象,其中,裝置還可以包括第五處理模塊,用于根據(jù)拆分規(guī)則獲取當(dāng)前配置對象的單元格范圍;第三檢測模塊,用于檢測單元格范圍內(nèi)的當(dāng)前單元格是否為空;第四檢測模塊,用于在當(dāng)前單元格為空的情況下,檢測當(dāng)前配置對象是否為零件對象;第二子處理模塊,用于在當(dāng)前配置對象為零件對象的情況下,結(jié)束執(zhí)行第二處理模塊;第三子處理模塊,用于在當(dāng)前配置對象不為零件對象的情況下,獲取當(dāng)前配置對象的下一對象。
上述實施例中的第三檢測模塊檢測當(dāng)前單元格是否為空,也即檢測當(dāng)前對象范圍內(nèi)是否有還未處理的單元格。
在本發(fā)明的上述實施例中,裝置還可以包括第一獲取模塊,用于在單元格元素與配置元素的父元素不同的情況下,獲取當(dāng)前單元格的下一單元格。
根據(jù)本發(fā)明的上述實施例,裝置還可以包括第三子處理模塊,用于將當(dāng)前單元格標(biāo)記為已處理單元格,并將已處理單元格的標(biāo)識保存在處理列表中。
在本申請的上述實施例中,裝置還可以包括第五檢測模塊,用于檢測處理列表中是否存在當(dāng)前單元格的標(biāo)識;第四子處理模塊,用于在處理列表中不存在當(dāng)前單元格的標(biāo)識的情況下,觸發(fā)執(zhí)行第三讀取模塊;第二獲取模塊,用于在處理列表中存在當(dāng)前單元格的標(biāo)識的情況下,獲取當(dāng)前單元格的下一單元格。圖2是根據(jù)本發(fā)明實施例的工藝文檔數(shù)據(jù)的處理方法的流程圖,如圖2所示該方法包括如下步驟步驟S102,從數(shù)據(jù)庫中提取工藝數(shù)據(jù)模型,工藝數(shù)據(jù)模型包括元素關(guān)系數(shù)據(jù)、元素屬性數(shù)據(jù)。步驟S104,讀取工藝文檔的模板文件以及模板文件中的單元格的屬性。步驟S106,創(chuàng)建單元格與元素之間的對應(yīng)關(guān)系,并將對應(yīng)關(guān)系保存在配置文件中,其中,單元格的屬性與元素的屬性相對應(yīng)。步驟S108,根據(jù)對應(yīng)關(guān)系將工藝文檔中的工藝數(shù)據(jù)插入到配置文件中,以獲取工藝數(shù)據(jù)文檔。步驟SI 10,將工藝數(shù)據(jù)文檔生成數(shù)據(jù)庫對象,并將數(shù)據(jù)庫對象保存在數(shù)據(jù)庫中。采用本發(fā)明,通過從數(shù)據(jù)庫中提取工藝數(shù)據(jù)模型,工藝數(shù)據(jù)模型包括元素關(guān)系數(shù)據(jù)、元素屬性數(shù)據(jù),然后讀取工藝文檔的模板文件以及模板文件中的單元格的屬性,在創(chuàng)建單元格與元素之間的對應(yīng)關(guān)系,并將對應(yīng)關(guān)系保存在配置文件中之后,根據(jù)對應(yīng)關(guān)系將工藝文檔中的工藝數(shù)據(jù)插入到配置文件中,以獲取工藝數(shù)據(jù)文檔,并將工藝數(shù)據(jù)文檔生成數(shù)據(jù)庫對象,并將數(shù)據(jù)庫對象保存在數(shù)據(jù)庫中。通過本發(fā)明,根據(jù)從數(shù)據(jù)庫中導(dǎo)出的工藝數(shù)據(jù)模型,根據(jù)該模型建立工藝文檔模板與工藝數(shù)據(jù)模型的對應(yīng)關(guān)系,并根據(jù)該對應(yīng)關(guān)系將工藝文檔中的工藝數(shù)據(jù)生成一個個數(shù)據(jù)庫對象,并將數(shù)據(jù)庫對象寫入到數(shù)據(jù)庫中,解決了現(xiàn)有技術(shù)中工藝文檔的數(shù)據(jù)不是數(shù)據(jù)庫對象,從而導(dǎo)致用戶無法從數(shù)據(jù)庫中獲取完整的物料清單的問題,實現(xiàn)了結(jié)構(gòu)化工藝文檔里的數(shù)據(jù)的效果,使得用戶可以通過數(shù)據(jù)庫查詢和統(tǒng)計到完整的物料清單。其中,單元格的屬性與元素的屬性相對應(yīng)。如圖3所示的實施例,首先執(zhí)行步驟S202,從數(shù)據(jù)庫中導(dǎo)出數(shù)據(jù)模型,保存在模型XML文件中。其中,模型XML文件中保存著元素關(guān)系信息、元素屬性信息,其中的元素在工藝文檔中具體表現(xiàn)為零件、工藝、工序等。步驟S204,獲取工藝文檔的模板文件及模板文件中的單元格的屬性。其中,模板文件中的單元格步驟S206,配置模板文件中的單元格與數(shù)據(jù)模型類屬性的對應(yīng)關(guān)系。具體地,在該步驟中的對應(yīng)關(guān)系描述了每個單元格分別對應(yīng)著哪個元素的哪個屬性。步驟S210,將對應(yīng)關(guān)系保存在XML文件中,以生成配置文件。其中,配置xml文件中描述了單元格和類屬性的對應(yīng)關(guān)系,以單元格開頭,表示某個單元格的配置信息,具體地描述了每個單元格對應(yīng)的元素名稱、元素的屬性、父元素等。步驟S212,對工藝文檔進(jìn)行格式化處理,以獲取工藝數(shù)據(jù)文檔。具體地,根據(jù)對應(yīng)關(guān)系將工藝文檔中的工藝數(shù)據(jù)插入到配置文件中,獲取數(shù)據(jù)XML文件,該數(shù)據(jù)XML文件即為工藝數(shù)據(jù)文檔。步驟S214,根據(jù)工藝數(shù)據(jù)文檔創(chuàng)建或更新數(shù)據(jù)庫對象,并將處理后的數(shù)據(jù)庫對象保存在數(shù)據(jù)庫中。
根據(jù)本發(fā)明的上述實施例,創(chuàng)建模板文件中的單元格與元素關(guān)系數(shù)據(jù)以及元素屬性數(shù)據(jù)之間的對應(yīng)關(guān)系,并將對應(yīng)關(guān)系保存在配置文件中的步驟包括讀取模板文件中的單元格的拆分規(guī)則;創(chuàng)建模板文件中的單元格與元素關(guān)系數(shù)據(jù)以及元素屬性數(shù)據(jù)之間的對應(yīng)關(guān)系,并將對應(yīng)關(guān)系和拆分規(guī)則保存在配置文件中。
具體地,在執(zhí)行步驟S210之前,還可以執(zhí)行步驟S208,配置模板文件中單元格的拆分規(guī)則。其中,拆分規(guī)則是劃分對象范圍的規(guī)則,例如序號、工序名稱、工序內(nèi)容是以工序號為拆分規(guī)則的;工裝是以工序號和工裝為拆分規(guī)則,并且工序和工裝的拆分規(guī)則不是固定的,用戶可以根據(jù)自己的需要配置,系統(tǒng)只是解析用戶配置好的拆分規(guī)則。
具體地,當(dāng)前對象的范圍是當(dāng)前對象在工藝卡片中的范圍,即工藝卡片中的哪幾行幾列表示一個數(shù)據(jù)對象,如圖5中所示的“工序號為I的工序的單元格范圍”和“工序編號為721001的工裝的單元格的范圍”,其中的前兩行表示一道工序,在圖4所示的處理過程中,在當(dāng)前對象是工藝對象時,遍歷單元格到工序號為I的單元格上,由于序號這一列的單元格關(guān)聯(lián)的元素的父元素是工藝,與當(dāng)前對象的元素相同,則創(chuàng)建一個工序?qū)ο?,同時將新創(chuàng)建的工序?qū)ο笾脼楫?dāng)前對象,并根據(jù)拆分規(guī)則計算出當(dāng)前對象在工藝文檔中的范圍。
更具體地,計算當(dāng)前對象在工藝文檔中的范圍的邏輯是在配置文件(及配置XML 文件)中描述了單元格與元素之間的對應(yīng)關(guān)系,同時描述了單元格的拆分規(guī)則,這個拆分規(guī)則就是以哪列的單元格來劃分對象的范圍的,例如工序是以序號列來劃分對象范圍的,序號這一行和下一個有值的行之間的范圍就是這道工序的范圍,如圖5示出的工序?qū)ο蟮膯卧穹秶?br>
具體地,根據(jù)對應(yīng)關(guān)系將工藝文檔中的工藝數(shù)據(jù)插入到配置文件中,以獲取工藝數(shù)據(jù)文檔的步驟可以包括從配置文件中讀取當(dāng)前配置對象;根據(jù)對應(yīng)關(guān)系讀取當(dāng)前配置對象所屬的配置元素以及當(dāng)前單元格所屬的單元格元素;檢測單元格元素與配置元素是否相同,其中,在單元格元素與配置元素相同的情況下,從工藝文檔中讀取當(dāng)前單元格的工藝數(shù)據(jù);使用工藝數(shù)據(jù)更新當(dāng)前配置對象的屬性,以獲取工藝數(shù)據(jù)文檔。
具體地,在單元格元素與配置元素不同的情況下,檢測單元格元素所屬配置元素的父元素是否相同,其中,在單元格元素與配置元素的父元素相同的情況下,根據(jù)單元格元素創(chuàng)建單元格對象,并將單元格對象作為配置對象保存在配置文件中;從工藝文檔中讀取當(dāng)前單元格的工藝數(shù)據(jù);使用工藝數(shù)據(jù)更新當(dāng)前配置對象的屬性,以獲取工藝數(shù)據(jù)文檔。
其中,在上述實施例中,也可以將整個當(dāng)前對象遍歷完之后,將所有單元格對象一起保存在配置文件中。
進(jìn)一步地,在檢測單元格元素與配置元素的父元素是否相同之后,方法還包括在單元格元素與配置元素的父元素不同的情況下,獲取當(dāng)前單元格的下一單元格。
如圖4所示,從配置文件中讀取配置對象之后,可以通過執(zhí)行如下步驟實現(xiàn)上述實施例
步驟S310,檢測單元格元素與配置元素是否相同。其中,在單元格元素與配置元素相同的情況下,執(zhí)行步驟S316,在單元格元素與配置元素不同的情況下,執(zhí)行步驟S312。
步驟S312,檢測單元格元素所屬配置元素的父元素是否相同。其中,在單元格元素與配置元素的父元素相同的情況下,執(zhí)行步驟S314,在單元格元素與配置元素的父元素不同的情況下,執(zhí)行步驟S306。
步驟S314,根據(jù)單元格元素創(chuàng)建單元格對象,并將單元格對象作為配置對象保存在配置文件中。
步驟S316,更新當(dāng)前對象的屬性。具體地,從工藝文檔中讀取當(dāng)前單元格的工藝數(shù)據(jù),使用工藝數(shù)據(jù)更新當(dāng)前配置對象的屬性,以獲取工藝數(shù)據(jù)文檔。
上述實施例中的步驟S306,獲取當(dāng)前配置對象范圍內(nèi)的下一單元格。具體地,將當(dāng)前單元格處理完成之后,對當(dāng)前單元格的下一單元格進(jìn)行處理,以遍歷當(dāng)前配置對象范圍內(nèi)的所有單元格。
具體地,當(dāng)單元格的元素和當(dāng)前對象所屬的元素相同,則說明當(dāng)前單元格是當(dāng)前對象的屬性值,則將當(dāng)前單元格的值更新到當(dāng)前對象屬性上;當(dāng)前單元格的父元素和當(dāng)前對象所屬的元素相同,則說明當(dāng)前單元格是當(dāng)前對象的子對象的屬性,這時要創(chuàng)建新的對象,并將新對象置為當(dāng)前對象,在此進(jìn)入了遞歸。
在本發(fā)明的上述實施例中,在使用工藝數(shù)據(jù)更新當(dāng)前配置對象的屬性,以獲取工藝數(shù)據(jù)文檔之后,方法還包括將當(dāng)前單元格標(biāo)記為已處理單元格,并將已處理單元格的標(biāo)識保存在處理列表中。
具體地,如圖4所示,上述實施例可以通過如下步驟實現(xiàn)
步驟S318,將當(dāng)前單元格標(biāo)記為已處理單元格,并將已處理單元格的標(biāo)識保存在處理列表中。
具體地,在根據(jù)對應(yīng)關(guān)系讀取當(dāng)前配置對象所屬的配置元素以及當(dāng)前單元格所屬的單元格元素之前,方法還可以包括檢測處理列表中是否存在當(dāng)前單元格的標(biāo)識,其中, 在處理列表中不存在當(dāng)前單元格的標(biāo)識的情況下,執(zhí)行根據(jù)對應(yīng)關(guān)系讀取當(dāng)前配置對象所屬的配置元素以及當(dāng)前單元格所屬的單元格元素的步驟;在處理列表中存在當(dāng)前單元格的標(biāo)識的情況下,獲取當(dāng)前單元格的下一單元格。
具體地,如圖4所示,上述實施例還可以包括如下步驟
步驟S320,檢測處理列表中是否存在當(dāng)前單元格的標(biāo)識。其中,在處理列表中存在當(dāng)前單元格的標(biāo)識的情況下,執(zhí)行步驟S306 ;在處理列表中不存在當(dāng)前單元格的標(biāo)識的情況下,執(zhí)行步驟S310。
在本發(fā)明的上述實施例中,配置對象包括零件對象,其中,在檢測單元格元素與配置元素是否相同之前,方法還包括根據(jù)拆分規(guī)則獲取當(dāng)前配置對象的單元格范圍;檢測當(dāng)前單元格是否為空,其中,在當(dāng)前單元格為空的情況下,檢測當(dāng)前配置對象是否為零件對象,其中,在當(dāng)前配置對象為零件對象的情況下,結(jié)束根據(jù)對應(yīng)關(guān)系將工藝文檔中的工藝數(shù)據(jù)插入到配置文件中,以獲取工藝數(shù)據(jù)文檔的步驟;在當(dāng)前配置對象不為零件對象的情況下,執(zhí)行步驟S324 :獲取當(dāng)前配置對象的下一對象。
具體地,本發(fā)明的上述實施例示出了對某一個單元格進(jìn)行處理的方法,在實際應(yīng)用中,配置對象包括零件對象、工藝對象、工序?qū)ο?,在將工藝文檔中的數(shù)據(jù)進(jìn)行結(jié)構(gòu)化處理時,優(yōu)選從零件對象開始,遍歷零件對象中的工藝對象,然后遍歷工藝對象中的工序?qū)ο螅闅v工序?qū)ο笾械乃袉卧?,以將零件對象中的所有單元格全部處理完成,也即采用遞歸處理方法,遞歸過程是先深度再一層層返回,當(dāng)返回到了零件對象,則整個遞歸結(jié)束, 即整個文檔結(jié)構(gòu)化結(jié)束。
具體地,如圖4所示的步驟S302至步驟S308
步驟S302,將當(dāng)前零件對象置為當(dāng)前配置對象。
步驟S304,通過拆分規(guī)則確立當(dāng)前配置對象的范圍。
步驟S306,獲取當(dāng)前配置對象范圍內(nèi)的下一單元格。
步驟S308,檢測當(dāng)前配置對象是否為零件對象。其中,在當(dāng)前配置對象為零件對象的情況下,結(jié)束該格式化處理;在當(dāng)前配置對象不為零件對象的情況下,獲取當(dāng)前配置對象的下一對象。
優(yōu)選地,在執(zhí)行步驟S308之前,所述方法還包括步驟S322,檢測下一單元格是否為空,其中,在下一單元格為空的情況下,執(zhí)行步驟S308 ;在下一單元格不為空的情況下, 執(zhí)行步驟S320。其中,在步驟S322中的當(dāng)前單元格即為步驟S306獲取當(dāng)前配置對象范圍內(nèi)的下一單元格。
需要說明的是,在附圖的流程圖示出的步驟可以在諸如一組計算機(jī)可執(zhí)行指令的計算機(jī)系統(tǒng)中執(zhí)行,并且,雖然在流程圖中示出了邏輯順序,但是在某些情況下,可以以不同于此處的順序執(zhí)行所示出或描述的步驟。
從以上的描述中,可以看出,本發(fā)明實現(xiàn)了如下技術(shù)效果通過本發(fā)明,根據(jù)從數(shù)據(jù)庫中導(dǎo)出的工藝數(shù)據(jù)模型,根據(jù)該模型建立工藝文檔模板與工藝數(shù)據(jù)模型的對應(yīng)關(guān)系, 并根據(jù)該對應(yīng)關(guān)系將工藝文檔中的工藝數(shù)據(jù)生成一個個數(shù)據(jù)庫對象,并將數(shù)據(jù)庫對象寫入到數(shù)據(jù)庫中,解決了現(xiàn)有技術(shù)中工藝文檔的數(shù)據(jù)不是數(shù)據(jù)庫對象,從而導(dǎo)致用戶無法從數(shù)據(jù)庫中獲取完整的物料清單的問題,實現(xiàn)了結(jié)構(gòu)化工藝文檔里的數(shù)據(jù)的效果,使得用戶可以通過數(shù)據(jù)庫查詢和統(tǒng)計到完整的物料清單。
顯然,本領(lǐng)域的技術(shù)人員應(yīng)該明白,上述的本發(fā)明的各模塊或各步驟可以用通用的計算裝置來實現(xiàn),它們可以集中在單個的計算裝置上,或者分布在多個計算裝置所組成的網(wǎng)絡(luò)上,可選地,它們可以用計算裝置可執(zhí)行的程序代碼來實現(xiàn),從而,可以將它們存儲在存儲裝置中由計算裝置來執(zhí)行,或者將它們分別制作成各個集成電路模塊,或者將它們中的多個模塊或步驟制作成單個集成電路模塊來實現(xiàn)。這樣,本發(fā)明不限制于任何特定的硬件和軟件結(jié)合。
以上所述僅為本發(fā)明的優(yōu)選實施例而已,并不用于限制本發(fā)明,對于本領(lǐng)域的技術(shù)人員來說,本發(fā)明可以有各種更改和變化。凡在本發(fā)明的精神和原則之內(nèi),所作的任何修改、等同替換、改進(jìn)等,均應(yīng)包含在本發(fā)明的保護(hù)范圍之內(nèi)。
權(quán)利要求
1.一種工藝文檔數(shù)據(jù)的處理方法,其特征在于,包括 從數(shù)據(jù)庫中提取工藝數(shù)據(jù)模型,所述工藝數(shù)據(jù)模型包括元素關(guān)系數(shù)據(jù)、元素屬性數(shù)據(jù); 讀取工藝文檔的模板文件以及所述模板文件中的單元格的屬性; 創(chuàng)建所述單元格與元素之間的對應(yīng)關(guān)系,并將所述對應(yīng)關(guān)系保存在配置文件中,其中,所述單元格的屬性與所述元素的屬性相對應(yīng); 根據(jù)所述對應(yīng)關(guān)系將所述工藝文檔中的工藝數(shù)據(jù)插入到所述配置文件中,以獲取工藝數(shù)據(jù)文檔; 將所述工藝數(shù)據(jù)文檔生成數(shù)據(jù)庫對象,并將所述數(shù)據(jù)庫對象保存在所述數(shù)據(jù)庫中。
2.根據(jù)權(quán)利要求I所述的方法,其特征在于,根據(jù)所述對應(yīng)關(guān)系將所述工藝文檔中的工藝數(shù)據(jù)插入到所述配置文件中,以獲取工藝數(shù)據(jù)文檔的步驟包括 從所述配置文件中讀取當(dāng)前配置對象; 根據(jù)所述對應(yīng)關(guān)系讀取所述當(dāng)前配置對象所屬的配置元素以及當(dāng)前單元格所屬的單元格元素; 檢測所述單元格元素與所述配置元素是否相同,其中, 在所述單元格元素與所述配置元素相同的情況下,從所述工藝文檔中讀取所述當(dāng)前單元格的工藝數(shù)據(jù); 使用所述工藝數(shù)據(jù)更新所述當(dāng)前配置對象的屬性,以獲取所述工藝數(shù)據(jù)文檔。
3.根據(jù)權(quán)利要求2所述的方法,其特征在于,在檢測所述單元格元素與所述配置元素是否相同之后,所述方法還包括 在所述單元格元素與所述配置元素不同的情況下,檢測所述單元格元素所屬配置元素的父元素是否相同,其中, 在所述單元格元素與所述配置元素的父元素相同的情況下,根據(jù)所述單元格元素創(chuàng)建單元格對象,并將所述單元格對象作為配置對象保存在所述配置文件中; 從所述工藝文檔中讀取所述當(dāng)前單元格的工藝數(shù)據(jù); 使用所述工藝數(shù)據(jù)更新所述當(dāng)前配置對象的屬性,以獲取所述工藝數(shù)據(jù)文檔。
4.根據(jù)權(quán)利要求2所述的方法,其特征在于,創(chuàng)建所述模板文件中的單元格與所述元素關(guān)系數(shù)據(jù)以及所述元素屬性數(shù)據(jù)之間的對應(yīng)關(guān)系,并將所述對應(yīng)關(guān)系保存在配置文件中的步驟包括 讀取所述模板文件中的單元格的拆分規(guī)則; 創(chuàng)建所述模板文件中的單元格與所述元素關(guān)系數(shù)據(jù)以及所述元素屬性數(shù)據(jù)之間的對應(yīng)關(guān)系,并將所述對應(yīng)關(guān)系和所述拆分規(guī)則保存在所述配置文件中。
5.根據(jù)權(quán)利要求4所述的方法,其特征在于,所述配置對象包括零件對象,其中,在檢測所述單元格元素與所述配置元素是否相同之前,所述方法還包括 根據(jù)所述拆分規(guī)則獲取所述當(dāng)前配置對象的單元格范圍; 檢測所述當(dāng)前配置對象的單元格范圍內(nèi)的所述當(dāng)前單元格是否為空,其中, 在所述當(dāng)前單元格為空的情況下,檢測當(dāng)前配置對象是否為所述零件對象,其中, 在所述當(dāng)前配置對象為所述零件對象的情況下,結(jié)束根據(jù)所述對應(yīng)關(guān)系將所述工藝文檔中的工藝數(shù)據(jù)插入到所述配置文件中,以獲取工藝數(shù)據(jù)文檔的步驟;在所述當(dāng)前配置對象不為所述零件對象的情況下,獲取所述當(dāng)前配置對象的下一對象。
6.根據(jù)權(quán)利要求3所述的方法,其特征在于,在所述單元格元素與所述配置元素不同的情況下,檢測所述單元格元素與所述配置元素的父元素是否相同之后,所述方法還包括 在所述單元格元素與所述配置元素的父元素不同的情況下,獲取所述當(dāng)前單元格的下一單元格。
7.根據(jù)權(quán)利要求2或3所述的方法,其特征在于,在使用所述工藝數(shù)據(jù)更新所述當(dāng)前配置對象的屬性,以獲取所述工藝數(shù)據(jù)文檔之后,所述方法還包括 將所述當(dāng)前單元格標(biāo)記為已處理單元格,并將所述已處理單元格的標(biāo)識保存在處理列表中。
8.根據(jù)權(quán)利要求7所述的方法,其特征在于,在根據(jù)所述對應(yīng)關(guān)系讀取所述當(dāng)前配置對象所屬的配置元素以及當(dāng)前單元格所屬的單元格元素之前,所述方法還包括 檢測所述處理列表中是否存在所述當(dāng)前單元格的標(biāo)識,其中, 在所述處理列表中不存在所述當(dāng)前單元格的標(biāo)識的情況下,執(zhí)行根據(jù)所述對應(yīng)關(guān)系讀取所述當(dāng)前配置對象所屬的配置元素以及當(dāng)前單元格所屬的單元格元素的步驟; 在所述處理列表中存在所述當(dāng)前單元格的標(biāo)識的情況下,獲取所述當(dāng)前單元格的下一單元格。
9.一種工藝文檔數(shù)據(jù)的處理裝置,其特征在于,包括 提取模塊,用于從數(shù)據(jù)庫中提取工藝數(shù)據(jù)模型,所述工藝數(shù)據(jù)模型包括元素關(guān)系數(shù)據(jù)、元素屬性數(shù)據(jù); 第一讀取模塊,用于讀取工藝文檔的模板文件以及所述模板文件中的單元格的屬性;第一處理模塊,用于創(chuàng)建所述單元格與所述元素之間的對應(yīng)關(guān)系,并將所述對應(yīng)關(guān)系保存在配置文件中,其中,所述單元格的屬性與所述元素的屬性相對應(yīng); 第二處理模塊,用于根據(jù)所述對應(yīng)關(guān)系將所述工藝文檔中的工藝數(shù)據(jù)插入到所述配置文件中,以獲取工藝數(shù)據(jù)文檔; 第三處理模塊,用于將所述工藝數(shù)據(jù)文檔生成數(shù)據(jù)庫對象,并將所述數(shù)據(jù)庫對象保存在所述數(shù)據(jù)庫中。
10.根據(jù)權(quán)利要求9所述的裝置,其特征在于,所述第二處理模塊包括 第二讀取模塊,用于從所述配置文件中讀取當(dāng)前配置對象; 第三讀取模塊,用于根據(jù)所述對應(yīng)關(guān)系讀取所述當(dāng)前配置對象所屬的配置元素以及當(dāng)前單元格所屬的單元格元素; 第一檢測模塊,用于檢測所述單元格元素與所述配置元素是否相同; 第四讀取模塊,用于在所述單元格元素與所述配置元素相同的情況下,從所述工藝文檔中讀取所述當(dāng)前單元格的工藝數(shù)據(jù); 第一更新模塊,用于使用所述工藝數(shù)據(jù)更新所述當(dāng)前配置對象的屬性,以獲取所述工藝數(shù)據(jù)文檔。
11.根據(jù)權(quán)利要求10所述的裝置,其特征在于,所述裝置還包括 第二檢測模塊,用于在所述單元格元素與所述配置元素不同的情況下,檢測所述單元格元素所屬配置元素的父元素是否相同; 第四處理模塊,用于在所述單元格元素與所述配置元素的父元素相同的情況下,根據(jù)所述單元格元素創(chuàng)建單元格對象,并將所述單元格對象作為配置對象保存在所述配置文件中; 第四讀取模塊,用于從所述工藝文檔中讀取所述當(dāng)前單元格的工藝數(shù)據(jù); 第二更新模塊,用于使用所述工藝數(shù)據(jù)更新所述當(dāng)前配置對象的屬性,以獲取所述工藝數(shù)據(jù)文檔。
12.根據(jù)權(quán)利要求10所述的裝置,其特征在于,所述第一處理模塊包括 第一子讀取模塊,用于讀取所述模板文件中的單元格的拆分規(guī)則; 第一子處理模塊,用于創(chuàng)建所述模板文件中的單元格與所述元素關(guān)系數(shù)據(jù)以及所述元素屬性數(shù)據(jù)之間的對應(yīng)關(guān)系,并將所述對應(yīng)關(guān)系和所述拆分規(guī)則保存在所述配置文件中。
13.根據(jù)權(quán)利要求12所述的裝置,其特征在于,所述配置對象包括零件對象,其中,所述裝置還包括 第五處理模塊,用于根據(jù)所述拆分規(guī)則獲取所述當(dāng)前配置對象的單元格范圍; 第三檢測模塊,用于檢測所述單元格范圍內(nèi)的所述當(dāng)前單元格是否為空; 第四檢測模塊,用于在所述當(dāng)前單元格為空的情況下,檢測當(dāng)前配置對象是否為所述零件對象; 第二子處理模塊,用于在所述當(dāng)前配置對象為所述零件對象的情況下,結(jié)束執(zhí)行所述第二處理模塊; 第三子處理模塊,用于在所述當(dāng)前配置對象不為所述零件對象的情況下,獲取所述當(dāng)前配置對象的下一對象。
14.根據(jù)權(quán)利要求11所述的裝置,其特征在于,所述裝置還包括 第一獲取模塊,用于在所述單元格元素與所述配置元素的父元素不同的情況下,獲取所述當(dāng)前單元格的下一單元格。
15.根據(jù)權(quán)利要求10或11所述的裝置,其特征在于,所述裝置還包括 第三子處理模塊,用于將所述當(dāng)前單元格標(biāo)記為已處理單元格,并將所述已處理單元格的標(biāo)識保存在處理列表中。
16.根據(jù)權(quán)利要求15所述的裝置,其特征在于,所述裝置還包括 第五檢測模塊,用于檢測所述處理列表中是否存在所述當(dāng)前單元格的標(biāo)識; 第四子處理模塊,用于在所述處理列表中不存在所述當(dāng)前單元格的標(biāo)識的情況下,觸發(fā)執(zhí)行所述第三讀取模塊; 第二獲取模塊,用于在所述處理列表中存在所述當(dāng)前單元格的標(biāo)識的情況下,獲取所述當(dāng)前單元格的下一單元格。
全文摘要
本發(fā)明公開了一種工藝文檔數(shù)據(jù)的處理方法及裝置。其中,該方法包括從數(shù)據(jù)庫中提取工藝數(shù)據(jù)模型,工藝數(shù)據(jù)模型包括元素關(guān)系數(shù)據(jù)、元素屬性數(shù)據(jù);讀取工藝文檔的模板文件以及模板文件中的單元格的屬性;創(chuàng)建單元格與元素之間的對應(yīng)關(guān)系,并將對應(yīng)關(guān)系保存在配置文件中;根據(jù)對應(yīng)關(guān)系將工藝文檔中的工藝數(shù)據(jù)插入到配置文件中,以獲取工藝數(shù)據(jù)文檔;將工藝數(shù)據(jù)文檔生成數(shù)據(jù)庫對象,并將數(shù)據(jù)庫對象保存在數(shù)據(jù)庫中。通過本發(fā)明,解決了現(xiàn)有技術(shù)中工藝文檔的數(shù)據(jù)不是數(shù)據(jù)庫對象,從而導(dǎo)致用戶無法從數(shù)據(jù)庫中獲取完整的物料清單的問題,實現(xiàn)了結(jié)構(gòu)化工藝文檔里的數(shù)據(jù)的效果,使得用戶可以通過數(shù)據(jù)庫查詢和統(tǒng)計到完整的物料清單。
文檔編號G06Q10/06GK102982422SQ20121056414
公開日2013年3月20日 申請日期2012年12月21日 優(yōu)先權(quán)日2012年12月21日
發(fā)明者張傳會, 桓永興 申請人:北京數(shù)碼大方科技股份有限公司