pauseRunTask method

void pauseRunTask({
  1. String? remark,
  2. required List<ShippingNoteInfo> shippingNoteInfos,
  3. SuccessBack? successBack,
})

暂停 切换司机 TODO:暂停/切换司机/车辆时先点击

Implementation

void pauseRunTask({String? remark, required List<ShippingNoteInfo> shippingNoteInfos, SuccessBack? successBack}) {
  if (shippingNoteInfos.isEmpty) {
    taskListener(false, "SYSTEM", "暂停失败,您传入的运单数量为0,已跳过", shippingNoteInfos);
    return;
  }
  for (ShippingNoteInfo element in shippingNoteInfos) {
    if (element.runState != RunState.start) {
      taskListener(false, "SYSTEM", "暂停失败,您传入的运单中存在未开始的运单,无法暂停,请先过滤掉未开始的运单", shippingNoteInfos);
      return;
    }
  }
  XbrNetworkFreight.pause(
    vehicleNumber: shippingNoteInfos[0].vehicleNumber,
    driverName: shippingNoteInfos[0].driverName,
    shippingNoteInfos: shippingNoteInfos,
    remark: remark,
    returnBack: (ReqReturn ret) {
      if (ret.success == null || ret.success == false) {
        if (ret.code == NO_AUTH_CODE) {
          taskListener(false, NO_AUTH_CODE, "运单暂停时返回认证授权失效,正在恢复认证重新发送", shippingNoteInfos);
          authBack(successBack:(String code,String msg, List<ShippingNoteInfo> _){
            pauseRunTask(remark: remark, shippingNoteInfos: shippingNoteInfos,successBack:successBack);
          });
          return;
        }
        taskListener(false, ret.code, "运单暂停失败:${ret.msg},请重新提交命令", shippingNoteInfos);
        return;
      }
      for (var element in shippingNoteInfos) {
        element.runState = RunState.pause;
        runMap.remove(element.shippingNoteNumber);
      }
      taskListener(true, SUCCESS_CODE, "运单暂停成功,已标记运单暂停状态,现在可以换司机/换车", shippingNoteInfos);
      if(successBack!=null){
        successBack(ret.code??OTHER_ERR_CODE,ret.msg??"",shippingNoteInfos);
      }
    },
  );
}