authInitRun method

void authInitRun({
  1. required List<ShippingNoteInfo> localInfoList,
  2. SuccessBack? successBack,
})

授权自动开始未完成运单 TODO:放在程序启动时

Implementation

void authInitRun({required List<ShippingNoteInfo> localInfoList,SuccessBack? successBack}) {
  if(localInfoList.isEmpty) {
    taskListener(true, SUCCESS_CODE, "认证授权时未提供平台运单运行数据,无运单处理,已跳过认证", null);
    return;
  }
  authBack(successBack: (code,msg, dataList) {
    if (dataList.isEmpty) {
      taskListener(true, SUCCESS_CODE, "认证授权成功,没有运行中的运单,即将开始新运单,运单数量:${localInfoList.length}", localInfoList);
      startRunTask(shippingNoteInfos: localInfoList, remark: "");
      return;
    }
    //初始化服务端数据
    List<ShippingNoteInfo> runInfoList = [];
    for(ShippingNoteInfo info in localInfoList){
      for (var element in dataList) {
        if(info.shippingNoteNumber == element.shippingNoteNumber){
          info.runState = RunState.start;
          info.interval = element.interval;
          runInfoList.add(info);
          runMap[info.shippingNoteNumber!] = info;
        }
      }
    }
    if(runInfoList.isEmpty){
      taskListener(true, SUCCESS_CODE, "认证授权成功,本地运单尚未开始,即将开始新运单,运单数量:${localInfoList.length}", localInfoList);
      startRunTask(shippingNoteInfos: localInfoList, remark: "");
      return;
    }
    int interval = runInfoList[0].interval ?? DEFAULT_MILL;
    taskListener(true, SUCCESS_CODE, "认证授权成功,运单恢复发送,运单数量:${runInfoList.length},即将在${interval / 1000}秒后发送定位", runInfoList);
    taskRunTimer?.cancel();
    taskRunTimer = Timer(Duration(milliseconds: interval), () {
      _sendRunTask();
    });
    if(successBack!=null){
      successBack(code,msg, runInfoList);
    }
  });
}