离线转在线任务数据上传逻辑
2024-10-16 12:28:22 0 举报
等待
作者其他创作
大纲/内容
函数中的逻辑为
是
否
此函数中执行逻辑
isOk = true成功上传,继续执行下一个操作 actionIndex++;
开始执行对当前第一个单据进行离线上传
判断order.pushed
上传失败:1.order.actions[actionIndex].pushed = false标记当前请求失败,2.给当前请求数据中添加错误次数标记,
异步
200
循环遍历order.actions工单中的请求中的标记pushed,是否有未上传完成的,如果有则给当前工单添加标记pushed=false;
如果当前的单据中FileNum不等于0则开始执行 文件上传队列
alert(弹出message错误消息)此时未改变缓存中的是数据
目前是否是离线状态,离线直接结束单据上传,在线的话
1.判断是否到达单据的最后一个
当前单据没有全部请求完成并且错误次数达到3次orderIndex ++;跳过当前单执行下一个单据
请求失败500
order.actions[actionIndex].requestType执行离线单据的请求
监听在线触发离线数据上传
获取缓存中的所有单据遍历寻找pushed=false的,对此单据错误次数,与下一次等待时间恢复默认值
若工单中存在没有上传成功的单据
1.判断actionIndex >= order.actions.length,判断当前工单中第n个请求是否到达最后一个
获取指定单据的单个单据Order数据从离线待上传的所有单据的第一个开始取
离线转在线任务数据上传流程
等待100毫秒执行,获取当前单据最新数据,执行execActionUpload
请求成功200
请求失败 不等200;不等201状态码
根据UserID获取当前用户缓存的action离线待上传的所有单据开始执行指定单的离线操作上传
当前单有错误,则跳过后续操作执行下一个单 actionIndex = 10000;
关闭loading
到达所有单的尽头,计算整个离线操作的上传情况
开启Loading转圈获取当前用户缓存中的单据数据循环遍历缓存中的数据 action类型为缓存的待上传任务数据根据工单ID与action类型获取到对应的单个单据数据,获取到后对当前的单据数据进行修改:添加errorCount(错误次数默认0次)添加nextRetryTime(下次重试时间默认为当前时间)
触发待上传列表页面,显示重试,删除按钮
indexDB
执行指定单的指定离线操作上传execActionUpload
1.更新错误次数2.添加nextRetryTime下一次等待时间
判断当前单据pushed是否为真
对缓存中的单据为srOrder的单据优先执行,其他数据在后
成功标记当前的请求数据pushed=true
获取当前用户的所有离线待上传任务,循环遍历所有的单据,存标记pushed=true的 判断FileNum是否有并且是否等于0,存在则删除当前单据缓存
重试次数是否小于等于0
函数的逻辑
isActionPushed检查当前的请求是否上成功
改变缓存中数据标识为:actions[actionIndex].pushed = true并且存储标记已提交成的请求,存储类型为:action_pushedisOk = true
当单已上传成功
不等200
0 条评论
下一页