setAttributes($params); $this->initSearchParams(); $pagination = new Pagination(); $pagination->setPageSize($this->pageSize); $data['page'] = $this->page; $data['pageSize'] = $pagination->getPageSize(); if ($this->orderBy) { $data['orderBy'] = $this->orderBy; } if (!empty($this->search['value']) && trim($this->search['value']) !== '') { $data['search'] = trim($this->search['value']); } if ($this->start_time && ($inStartTime = strtotime($this->start_time))) { $data['inStartTime'] = $inStartTime; } if ($this->end_time && ($inEndTime = strtotime($this->end_time))) { $data['inEndTime'] = $inEndTime; } $data['status'] = $this->status; $data['batch_no'] = $this->batch_no; if ($this->pageSize > 1000) { if (\Yii::$app->getRequest()->isAjax) { \Yii::$app->getResponse()->redirect(Url::current(), UserAgentHelper::isIE() ? 200 : 302); } else { $this->exportXls($data); } \Yii::$app->end(); } $api = new RemitApi(); $result = $api->getFinanceRemitList($data); // $result = $this->multiQuery($api, 'getFinanceRemitList', $data); $models = []; if ($result['code'] == 1) { $models = (array)$result['data']['dataList']; $pagination->totalCount = (int)$result['data']['totalCount']; } $dataProvider = new ArrayDataProvider([ 'models' => $models, 'pagination' => $pagination, 'totalCount' => $pagination->totalCount, ]); return $dataProvider; } /** * @param array $params */ protected function exportXls($params) { ExcelHelper::init(); $attachmentName = "财务打款审核记录_" . date('Y-m-d') . '.xls'; $header = ['打款批次号', '打款笔数', '打款总额(CNY)', '创建时间', '审核状态', '初审时间', '初审不通过原因', '初审人员', '复审时间', '复审不通过原因', '复审人员']; $source = []; $api = new RemitApi(); $leftSize = $this->pageSize; while ($leftSize > 0) { // 重新计算页数和分页大小 start $pageSize = $leftSize > 1000 ? 1000 : $leftSize; $params['pageSize'] = $pageSize; $params['page'] = ceil($this->start / $pageSize) + 1; $result = $api->getFinanceRemitList($params); if ($result['code'] == 1 && !empty($result['data']['dataList'])) { foreach ((array)$result['data']['dataList'] as $key => $row) { $arr = []; $arr[] = ' '.$row['batch_no']; $arr[] = $row['batch_count']; $arr[] = $row['cny_amount']; $arr[] = !empty($row['create_time']) ? date('Y-m-d H:i:s', intval($row['create_time'])) : ''; $audit_status = ''; if (isset($row['audit_status']) && (int)$row['audit_status'] == 0) { $audit_status = '未审核'; } elseif ((int)$row['audit_status'] == 1) { $audit_status = '初审通过'; } elseif ((int)$row['audit_status'] == 2) { $audit_status = '复审通过'; } elseif ((int)$row['audit_status'] == 3) { $audit_status = '初审未通过'; } elseif ((int)$row['audit_status'] == 4) { $audit_status = '复审未通过'; } $arr[] = $audit_status; $arr[] = !empty($row['audit_time']) ? date('Y-m-d H:i:s', intval($row['audit_time'])) : ''; $arr[] = $row['audit_reason']; $arr[] = $row['audit_name']; $arr[] = !empty($row['reaudit_time']) ? date('Y-m-d H:i:s', intval($row['reaudit_time'])) : ''; $arr[] = $row['reaudit_reason']; $arr[] = $row['reaudit_name']; $source[] = $arr; } } else { break; } $this->start += $pageSize; $leftSize -= $pageSize; if ($this->start >= $result['data']['totalCount']) { break; } } ExcelHelper::output($source, $header, $attachmentName); } /** * @param $data */ private function exportXlsx($data) { \Yii::$app->getResponse()->setDownloadHeaders("财务打款审核记录_" . date('Y-m-d') . '.xls')->send(); if (!ob_get_level()) { ob_start(); } echo ''; echo ''; echo ''; $api = new RemitApi(); $leftSize = $this->pageSize; while ($leftSize > 0) { // 重新计算页数和分页大小 start $pageSize = $leftSize > 1000 ? 1000 : $leftSize; $data['pageSize'] = $pageSize; $data['page'] = ceil($this->start / $pageSize) + 1; // 重新计算页数和分页大小 end $result = $api->getFinanceRemitList($data); if ($result['code'] == 1 && $result['data']['dataList']) { foreach ((array)$result['data']['dataList'] as $key => $row) { $str = ''; $str .= ""; $str .= ""; $str .= ""; $str .= ""; if ((int)$row['audit_status'] == 0) { $str .= ""; } elseif ((int)$row['audit_status'] == 1) { $str .= ""; } elseif ((int)$row['audit_status'] == 2) { $str .= ""; } elseif ((int)$row['audit_status'] == 3) { $str .= ""; } elseif ((int)$row['audit_status'] == 4) { $str .= ""; } $str .= ""; $str .= ""; $str .= ""; $str .= ""; $str .= ""; $str .= ""; $str .= ""; echo $str; } ob_flush(); flush(); } else { break; } $this->start += $pageSize; $leftSize -= $pageSize; if ($this->start >= $result['data']['totalCount']) { break; } } echo "
打款批次号打款笔数打款总额(CNY)创建时间审核状态初审时间初审不通过原因初审人员复审时间复审不通过原因复审人员
{$row['batch_no']}{$row['batch_count']}{$row['cny_amount']}".date('Y-m-d H:i:s', intval($row['create_time']))."未审核初审通过复审通过初审未通过复审未通过".date('Y-m-d H:i:s', intval($row['audit_time']))."{$row['audit_reason']}{$row['audit_name']}".date('Y-m-d H:i:s', intval($row['reaudit_time']))."{$row['reaudit_reason']}{$row['reaudit_name']}
"; if (ob_get_level()) { ob_end_flush(); } } }