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