本技術(shù)涉及數(shù)據(jù)處理,尤其是涉及一種批處理生成報文的通用方法、系統(tǒng)、設(shè)備及存儲介質(zhì)。
背景技術(shù):
1、小貸報送主要體現(xiàn)的就是報送數(shù)據(jù),小貸合規(guī)要求,每個小貸都需報送數(shù)據(jù)到對應(yīng)監(jiān)管,各監(jiān)管報送方式都不一樣,有xml文件報送、txt文件報送、接口報送等,在資源回收情況下,以前是各小貸單獨一個服務(wù),現(xiàn)在是融合到一個服務(wù),因此,對服務(wù)器內(nèi)存開支要求更加高,目前大多數(shù)小貸監(jiān)管機(jī)構(gòu),報送數(shù)據(jù)都是采用文件的方式報送數(shù)據(jù),還存在全量報送,增加了服務(wù)器內(nèi)存開支,并且容錯能力較差。
技術(shù)實現(xiàn)思路
1、本技術(shù)旨在提出一種批處理生成報文的通用方法、系統(tǒng)、設(shè)備及存儲介質(zhì),能夠減少服務(wù)器內(nèi)存開支,提高容錯能力。
2、第一方面,本技術(shù)實施例提供了一種批處理生成報文的通用方法,所述方法包括:
3、獲取報送計劃中的待生成報文列表;
4、生成所述待生成報文列表中單個待生成報文的報文文件記錄,其中,所述報文文件記錄用于記錄所述待生成報文的報文狀態(tài);
5、若所述報文文件記錄中記錄所述報文狀態(tài)為報文未生成或報文生成中,則獲取所述單個待生成報文的流水記錄,其中,所述流水記錄為用于獲取所述單個待生成報文中未生成報文的相關(guān)數(shù)據(jù)的信息指示;
6、根據(jù)所述流水記錄,獲取所述單個待生成報文中未生成報文的相關(guān)數(shù)據(jù),并采用事務(wù),分頁生成所述單個待生成報文所有的報文明細(xì);
7、分頁獲取所述報文明細(xì),并將所述報文明細(xì)通過追加式寫入報文文件,直到所述單個待生成報文對應(yīng)的所有報文明細(xì)都寫入所述報文文件,完成所述單個待生成報文的報文生成;
8、輪詢所述待生成報文列表中所有單個待生成報文的報文生成,當(dāng)所有單個待生成報文都完成報文生成時,完成所述待生成報文列表的報文生成。
9、與現(xiàn)有技術(shù)相比,本技術(shù)第一方面具有以下有益效果:
10、本方法通過生成待生成報文列表中單個待生成報文的報文文件記錄,若報文文件記錄中記錄報文狀態(tài)為報文未生成或報文生成中,則獲取單個待生成報文的流水記錄,其中,流水記錄為用于獲取單個待生成報文中未生成報文的相關(guān)數(shù)據(jù)的信息指示,只需獲取報文未生成或報文生成中的部分未生成報文的相關(guān)數(shù)據(jù)進(jìn)行后期的報文生成,即使發(fā)生異常情況,也無需對已經(jīng)生成的報文重復(fù)進(jìn)行報文生成,節(jié)約了服務(wù)器的內(nèi)存開銷。然后根據(jù)流水記錄,獲取單個待生成報文中未生成報文的相關(guān)數(shù)據(jù),并采用事務(wù),分頁生成單個待生成報文所有的報文明細(xì),通過分頁和事務(wù)處理,能夠保證數(shù)據(jù)的完整性、一致性和正確性,從而提高容錯能力。再通過分頁獲取報文明細(xì),并將報文明細(xì)通過追加式寫入報文文件,直到單個待生成報文對應(yīng)的所有報文明細(xì)都寫入報文文件,完成單個待生成報文的報文生成,通過將生成報文明細(xì)和生成報文文件分開,有利于修改和添加數(shù)據(jù)重新生成報文文件。
11、在一些實施方式中,所述報文文件記錄還用于記錄所述待生成報文的生成報文數(shù)據(jù)量,在獲取所述單個待生成報文相關(guān)數(shù)據(jù)后,所述方法還包括:
12、若在采用事務(wù),分頁生成所述單個待生成報文的報文明細(xì)過程中出現(xiàn)異常退出事務(wù),則判斷所述報文文件記錄是否存在;
13、若所述報文文件記錄存在,則獲取所述報文文件記錄中記錄的所述生成報文數(shù)據(jù)量;
14、除所述單個待生成報文中所述生成報文數(shù)據(jù)量對應(yīng)的已生成報文外,得到剩余未生成報文,并采用事務(wù)分頁生成所述剩余未生成報文的報文明細(xì),直到生成所述單個待生成報文的所有報文明細(xì)。
15、在一些實施方式中,所述根據(jù)所述流水記錄,獲取所述單個待生成報文中未生成報文的相關(guān)數(shù)據(jù),并采用事務(wù),分頁生成所述單個待生成報文所有的報文明細(xì),包括:
16、根據(jù)所述流水記錄中的借據(jù)號,獲取所述單個待生成報文中未生成報文的相關(guān)數(shù)據(jù);
17、采用事務(wù)對分頁獲取的所述單個待生成報文中未生成報文的相關(guān)數(shù)據(jù)生成報文明細(xì),直到所有分頁獲取的相關(guān)數(shù)據(jù)都生成報文明細(xì),完成所述單個待生成報文所有的報文明細(xì)生成。
18、在一些實施方式中,在采用事務(wù)對分頁獲取的所述單個待生成報文中未生成報文的相關(guān)數(shù)據(jù)生成報文明細(xì)后,所述方法還包括:
19、對所述報文明細(xì)中部分字段進(jìn)行碼值轉(zhuǎn)換,得到碼值轉(zhuǎn)換后的報文明細(xì),并對碼值轉(zhuǎn)換后的報文明細(xì)和不需進(jìn)行碼值轉(zhuǎn)換的報文明細(xì)進(jìn)行保存;
20、獲取碼值轉(zhuǎn)換后的報文明細(xì)和不需進(jìn)行碼值轉(zhuǎn)換的報文明細(xì)對應(yīng)的報文數(shù)據(jù)量;
21、根據(jù)所述報文數(shù)據(jù)量,更新所述報文文件記錄中記錄的所述生成報文數(shù)據(jù)量和所述流水記錄。
22、在一些實施方式中,在分頁獲取所述報文明細(xì)之前,所述方法還包括:
23、刪除生成的歷史報文文件,所述歷史報文文件為當(dāng)前待生成報文的上一個待生成報文對應(yīng)的已生成報文的報文文件。
24、在一些實施方式中,在完成所述單個待生成報文的報文生成之后,所述方法還包括:
25、在完成所述單個待生成報文的報文生成之后,生成有本地文件;
26、刪除所述本地文件。
27、在一些實施方式中,在完成所述單個待生成報文的報文生成之后,所述方法還包括:
28、獲取所述報送計劃中的已生成報文列表;
29、在完成所述單個待生成報文的報文生成之后,更新所述已生成報文列表。
30、第二方面,本技術(shù)實施例還提供了一種批處理生成報文的通用系統(tǒng),所述系統(tǒng)包括:
31、第一數(shù)據(jù)獲取單元,用于獲取報送計劃中的待生成報文列表;
32、第一數(shù)據(jù)生成單元,用于生成所述待生成報文列表中單個待生成報文的報文文件記錄,其中,所述報文文件記錄用于記錄所述待生成報文的報文狀態(tài);
33、第二數(shù)據(jù)獲取單元,用于若所述報文文件記錄中記錄所述報文狀態(tài)為報文未生成或報文生成中,則獲取所述單個待生成報文的流水記錄,其中,所述流水記錄為用于獲取所述單個待生成報文中未生成報文的相關(guān)數(shù)據(jù)的信息指示;
34、第二數(shù)據(jù)生成單元,用于根據(jù)所述流水記錄,獲取所述單個待生成報文中未生成報文的相關(guān)數(shù)據(jù),并采用事務(wù),分頁生成所述單個待生成報文所有的報文明細(xì);
35、單個報文完成單元,用于分頁獲取所述報文明細(xì),并將所述報文明細(xì)通過追加式寫入報文文件,直到所述單個待生成報文對應(yīng)的所有報文明細(xì)都寫入所述報文文件,完成所述單個待生成報文的報文生成;
36、所有報文完成單元,用于輪詢所述待生成報文列表中所有單個待生成報文的報文生成,當(dāng)所有單個待生成報文都完成報文生成時,完成所述待生成報文列表的報文生成。
37、第三方面,本技術(shù)實施例還提供了一種電子設(shè)備,包括至少一個控制處理器和用于與所述至少一個控制處理器通信連接的存儲器;所述存儲器存儲有可被所述至少一個控制處理器執(zhí)行的指令,所述指令被所述至少一個控制處理器執(zhí)行,以使所述至少一個控制處理器能夠執(zhí)行如上所述的一種批處理生成報文的通用方法。
38、第四方面,本技術(shù)實施例還提供了一種計算機(jī)可讀存儲介質(zhì),所述計算機(jī)可讀存儲介質(zhì)存儲有計算機(jī)可執(zhí)行指令,所述計算機(jī)可執(zhí)行指令用于使計算機(jī)執(zhí)行如上所述的一種批處理生成報文的通用方法。
39、可以理解的是,上述第二方面至第四方面與相關(guān)技術(shù)相比存在的有益效果與上述第一方面與相關(guān)技術(shù)相比存在的有益效果相同,可以參見上述第一方面中的相關(guān)描述,在此不再贅述。