軟件單頁顯示幾十萬條數據,有什麼意義?程序員:客戶要求的!
這個需求來自於一家上市公司,名字我就不說了,每天有幾十萬條訂單,而這些訂單數據被放在了一個txt文檔裡面,以指定的結構存儲的,類似於CSV文件的格式吧。
客戶找到我們,需要我們將txt文檔先解析出來,然後導入到系統裡面,這還沒完,導入到系統以後,還不能存入數據庫,得先緩存在本地,因爲客戶還要對這些數據進行修改!這就是爲什麼軟件一頁要顯示幾十萬條數據的緣由!
而且,客戶那邊處理數據的人員電腦本來就配置不高,一個顯示幾十萬條數據的txt文檔一般配置的電腦打開要半天,編輯後保存也要半天,這也是客戶要做軟件的緣由!
其實,這種做法在程序員看起來,本來就很傻了,但是還有更讓人犯懵的操作!
客戶要求我們在這個頁面上做篩選條件,也就是按照他們的要求,以指定條件篩選出他們想要的數據,最後勾選這些數據,再存入數據庫!
我們覺得客戶這樣操作太麻煩,於是還給客戶做了解析後的數據Excel導出功能,但是客戶不愛用,一問才知道,他們已經習慣了這種操作方式!
在沒有讓我們公司幫他們做這個軟件的時候他們是怎麼操作的呢?
首先,把這個txt文檔中的分隔符替換成製表符(tab鍵),然後再複製整體數據到Excel文檔中,然後再在Excel文檔中進行編輯!
最讓我佩服的操作來了,他們需要一行一行去核對每一行的數據是否正確!
我當時聽到他們是這麼操作的時候,我都驚了,要知道,一天幾十萬條數據啊!
結果客戶跟我們說,他們每天有將近二十個人專門來幹這個事情!我聽完直言佩服!
當然了,最後,軟件開發完成以後,他們的效率提升了不知道多少倍,以前快二十個人的團隊直接縮減成了四個人!因爲其中最主要的核對訂單信息的這個操作被軟件給替代了,因爲他們覈對的東西很簡單,就是想要覈對訂單狀態,比如說已付款、已發貨、待收貨、已收貨等等。
我們軟件做的事情,就是將導入後的數據跟已經存入數據庫的數據進行比對,如果發現狀態異常,就在軟件前端提示客戶。
這也是爲什麼軟件一頁要顯示幾十萬條數據的原因,因爲異常訂單我們會用紅色標記給客戶明顯提示出來,這樣客戶一翻滾動條,所有信息都能看見,點一個排序按鈕,所有異常訂單都會顯示在最前面。
在知道哪些訂單異常以後,客戶還要對有異常的訂單進行人工覈對,覈對完成後再手動去把訂單狀態改過來,或者直接結單。
最後把需要傳入數據庫的訂單數據傳入數據庫,這樣雖然開始一頁數據有幾十萬條,但是隨着操作人員的操作,最後數據會越來越少,直至所有數據都處理完!
有人會問,如果軟件崩了怎麼辦?
第一,我們會提示客戶,每修改一定數據,最好將數據勾選上傳,以免丟失。
第二,如果真的不慎操作到一半,軟件崩了或者有其他情況,導致不得不重新導入數據,這時候導入的數據會跟數據庫做比對,相同狀態的數據不會顯示在界面上,這也是客戶要求的。
客戶在做完所有數據以後,也會將txt文檔重新導入,看看是否有遺漏的。
結語
所以,軟件一個頁面顯示幾十萬條數據,看似不合理,但是,這也是沒有辦法的辦法,當然也會有更好的辦法,這取決於客戶的操作習慣!
最後,針對這樣的軟殼開發需求,結合客戶的實際應用場景,您有什麼更好的辦法嗎?