@SuppressWarnings({"unchecked", "rawtypes"})
  private Map<String, List<String>> checkAllApplySuccess(PassCode passCode) {

    /*
     * 检查订单中所有由非服务商发送短信、独立申码、并且开通了凭证短信合并功能
     * 的所有短信是否都已经生成,然后按服务商分组passCode
     *
     * 按服务商分组passCode的目的是,各服务商的凭证短信单独发送
     */
    Map params = new HashMap();
    params.put("orderId", passCode.getOrderId());
    List<PassPortCode> passportcodeList = passCodeService.selectAllMergeSmsByParams(params);

    int mergeCount = 0;
    if (passCode.getCodeTotal().intValue() == passportcodeList.size()) {
      for (PassPortCode passportcode : passportcodeList) {
        // 剔除非合并凭证短信的通关码
        if (!passportcode.isMergeCertificateSMS()) {
          if (otherPassportcodeList == null) {
            otherPassportcodeList = new ArrayList();
          }
          otherPassportcodeList.add(passportcode);

          continue;
        }
        mergeCount++;
      }
    } else {
      return null;
    }

    params.put("checkSmsContent", "true");
    List<PassPortCode> passportcodeStatusList = passCodeService.selectAllMergeSmsByParams(params);
    log.info(passportcodeStatusList.size());
    // 所有的合并凭证短信的码,都已经申码成功、生成短信内容片段成功
    if (mergeCount == passportcodeStatusList.size()) {
      Map<String, List<String>> groupPassPortCode = new HashMap<String, List<String>>();
      for (PassPortCode passportcode : passportcodeStatusList) {
        String providerName = passportcode.getProviderName();
        Long codeId = passportcode.getCodeId();
        List<String> codeList = groupPassPortCode.get(providerName);
        if (codeList == null) {
          codeList = new ArrayList<String>();
        }
        codeList.add(codeId.toString());
        groupPassPortCode.put(providerName, codeList);
      }
      return groupPassPortCode;
    }

    return null;
  }