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