1. 解決方法:
修改文件根目錄下crmeb/services/ExcelService.php文件中的exportFinancial方法數(shù)據(jù)查詢時(shí)的排序字段,將之前的
create_time(添加時(shí)間)更換成financial_record_id(eb_financial_record表的主鍵)
如下圖:
2. 原理分析:
同一個(gè)訂單可能會(huì)產(chǎn)生多條財(cái)務(wù)數(shù)據(jù),大致在三四條左右,create_time(添加時(shí)間)精確到秒,同一個(gè)訂單產(chǎn)生的財(cái)務(wù)數(shù)據(jù)基本上create_time(添加時(shí)間)都是一樣的。所以create_time(添加時(shí)間)排序時(shí),每次請求時(shí)同一個(gè)訂單產(chǎn)生的財(cái)務(wù)數(shù)據(jù)的順序是會(huì)變化的。簡單舉例說明
以上三條數(shù)據(jù)都是由同一個(gè)訂單產(chǎn)生的,暫且定義為數(shù)據(jù)6,7,8。按create_time(添加時(shí)間)排序時(shí),第一次接口請求順序可能為6,7,8,第二次可能為7,6,8。
數(shù)據(jù)導(dǎo)出是由前端通過接口輪詢獲取數(shù)據(jù),由前端做的數(shù)據(jù)整合以及導(dǎo)出,例如輪詢獲取數(shù)據(jù)時(shí),每次獲取十條數(shù)據(jù),假如第一次請求時(shí)獲取前十條數(shù)據(jù),上面的數(shù)據(jù)6排在當(dāng)前數(shù)據(jù)的最后一條。第二次請求的是第十一條到二十條數(shù)據(jù),此次數(shù)據(jù)7排到了第十位,數(shù)據(jù)6排到了第十一位,所以導(dǎo)出的數(shù)據(jù)就有兩條數(shù)據(jù)6,沒有數(shù)據(jù)7。
3. 解決方法:
修改排序字段為主鍵,主鍵為自增id,所以不會(huì)出現(xiàn)因?yàn)榕判驅(qū)е碌臄?shù)據(jù)重復(fù)和丟失問題
注釋: 2.1.1?版本和2.2?版本基本相同,對應(yīng)的代碼行數(shù)和方法接口結(jié)構(gòu)可能有點(diǎn)變化,只修改排序字段就行