excel解析过程逻辑
2019-09-12 23:36:18 0 举报
111
作者其他创作
大纲/内容
子任务内个人数据完全正确容器rightDataList
O(n)
整理索引
没有
是否还有下一个人
数据整理
用于前端通过上传订单id获取错误数据excel文件
是否还有下一条
错误数据保存到汇总allErrorDataMap.putAll(errorDataMap)
此处遍历子任务中的多个人
遍历subIndexSet
redis 统计已处理人数累加KeyA++
个人数据是否全部正确Flag
一次上传过程的进度记录,由两个key完成,KeyA表示已经完成的人数,KeyB表示需要处理的总人数
redis上传进度0/0超时时间30分钟
获取所有数据list
结束
定义总的错误数据容器allErrorDataMap容器容量list.size()
通过索引,从sourceData中获取个人的全部List<rowData> empData个人数据全部正确Flag = true默认个人数据有错误errorDataMap
无论校验成功失败,都会组装为失败数据,真正失败的数据前会有失败原因
否
是
元数据结构调整
是否有错误数据allErrorDataMap.size()>0
子任务逻辑
数据库写入行记录errorDataMap=null
false
true
Flag=false
个人数据完全正确的,批量入库rightDataList
校验rowData
redis存储上传订单id与错误文件的对应关系数据超时时间2小时
遍历list
前端查进度为100%已完成
此处遍历一个人的多条记录
有
索引集合每50人一切划分子任务subIndexSet
单人多条转为单人单条rightDataList.add(单条)
记录所有校验失败原因,“,”拼接
遍历 empDataList<rowData>
redisKeyA = indexSet.size()
校验是否通过
开始
通过文件id或url从文件存储服务获取文件
redis记录总人数KeyB = indexSet.size()超时30分钟
多线程任务处理主线程阻塞等待
收藏
收藏
0 条评论
下一页