Browse Source

结报管理 列表 结报接口

master
wanghongjun 11 months ago
parent
commit
347c7b4a6e
  1. 61
      app/controller/admin/InvoiceFinalReport.php
  2. 68
      app/service/invoice/InvoiceIssuanceService.php
  3. 2
      route/app.php

61
app/controller/admin/InvoiceFinalReport.php

@ -0,0 +1,61 @@
<?php
namespace app\controller\admin;
use app\service\invoice\InvoiceIssuanceService;
use app\util\ReturnCode;
use think\facade\Db;
use think\Response;
use app\model\InvoiceFinalReport as InvoiceFinalReportModel;
class InvoiceFinalReport extends Base
{
public function index(): Response
{
$param = $this->request->get();
$limit = $this->request->get('size', config('apiadmin.ADMIN_LIST_DEFAULT'));
$where = [['status', '=', 3]];
if (isset($param['expire_time']) && !empty($param['expire_time'])) {
$where = ['expire_time', '=', strtotime($param['expire_time'])];
}
$list = Db::table('invoice_issuance')
->where($where)
->field('expire_time, sum(amount) as amount_sum')
->group('expire_time')
->page($limit)
->select()
->toArray();
$select = Db::table('invoice_issuance')->where('status', 3)->field('count(expire_time)')->group('expire_time')->select();
$total = count($select);
foreach ($list as &$item) {
$count = (new InvoiceFinalReportModel())->where('report_time', $item['expire_time'])->count();
$item['status'] = $count ? 1 : 0;
$item['status_str'] = $item['status'] == 1 ? '已结报' : '未结报';
$item['expire_time'] = date("Y-m", $item['expire_time']);
}
return $this->buildSuccess([
'list' => $list,
'total' => $total
]);
}
public function report(): Response
{
try {
$param = $this->request->get();
validate()->rule(['report_time|结报日期' => 'require|date'])->check($param);
$report_time = $param['report_time'];
$InvoiceIssuanceService = new InvoiceIssuanceService();
$result = $InvoiceIssuanceService->summaryReport(strtotime($report_time));
if ($result !== true) throw new \Exception($result);
return $this->buildSuccess();
} catch (\Exception $e) {
return $this->buildFailed(ReturnCode::EMPTY_PARAMS, $e->getMessage());
}
}
}

68
app/service/invoice/InvoiceIssuanceService.php

@ -406,46 +406,46 @@ class InvoiceIssuanceService
/**
* 汇总结报 (汇总、结报)
* @return bool
* @throws FuncException
* @throws \think\db\exception\DataNotFoundException
* @throws \think\db\exception\DbException
* @throws \think\db\exception\ModelNotFoundException
* @param int $final_report_date
* @return bool|string
*/
public function summaryReport()
public function summaryReport(int $final_report_date = 0)
{
$final_report_date = time();
$invoiceDate = $this->getInvoiceDate($final_report_date);
$bdznsrsbh = $this->getTaxNumber(0); // 被征纳税人
$ChinaTaxes = new ChinaTaxes([], $invoiceDate);
$daiZhengSummaryQuery = $ChinaTaxes->daiZhengSummaryQuery($bdznsrsbh);
$ydzse = 0;
$save = [];
foreach ($daiZhengSummaryQuery['cxwjbList'] as $value) {
foreach ($value['cxwjbVO'] as $val) {
$sbpch = $val['sbpch']; // 申报批次号
$ydzse += $val['ydzse']; // 应代征税额
$save[] = [
'sbpch' => $sbpch,
'ydzse' => $ydzse,
'report_time' => strtotime($invoiceDate['skssqq']),
'create_time' => time()
];
try {
if ($final_report_date <= 0) $final_report_date = time();
$invoiceDate = $this->getInvoiceDate($final_report_date);
$bdznsrsbh = $this->getTaxNumber(0); // 被征纳税人
$ChinaTaxes = new ChinaTaxes([], $invoiceDate);
$daiZhengSummaryQuery = $ChinaTaxes->daiZhengSummaryQuery($bdznsrsbh);
$ydzse = 0;
$save = [];
foreach ($daiZhengSummaryQuery['cxwjbList'] as $value) {
foreach ($value['cxwjbVO'] as $val) {
$sbpch = $val['sbpch']; // 申报批次号
$ydzse += $val['ydzse']; // 应代征税额
$save[] = [
'sbpch' => $sbpch,
'ydzse' => $ydzse,
'report_time' => strtotime($invoiceDate['skssqq']),
'create_time' => time()
];
}
}
}
if ($ydzse > 0) {
$result = $ChinaTaxes->daiZhengSummaryReport($ydzse);
if ($save && $result['code'] == 200) {
(new InvoiceFinalReport())->saveAll($save);
if ($ydzse > 0) {
$result = $ChinaTaxes->daiZhengSummaryReport($ydzse);
if ($save && $result['code'] == 200) {
(new InvoiceFinalReport())->saveAll($save);
} else {
throw new FuncException($result['message'] ?? '结报失败');
}
} else {
return $result['message'] ?? '';
throw new FuncException($daiZhengSummaryQuery['message'] ?? '结报失败');
}
} else {
return $daiZhengSummaryQuery['message'] ?? '';
return true;
} catch (\Exception $e) {
return $e->getMessage();
}
return true;
}
public function writeLog($e)

2
route/app.php

@ -77,4 +77,6 @@ Route::group('admin', function() {
Route::rule('Config/index', 'admin.Config/index', 'get')->middleware([app\middleware\AdminAuth::class, app\middleware\AdminPermission::class, app\middleware\AdminLog::class, app\middleware\AdminResponse::class]);
Route::rule('Config/editIndex', 'admin.Config/editIndex', 'get')->middleware([app\middleware\AdminAuth::class, app\middleware\AdminPermission::class, app\middleware\AdminLog::class, app\middleware\AdminResponse::class]);
Route::rule('Config/add', 'admin.Config/add', 'post')->middleware([app\middleware\AdminAuth::class, app\middleware\AdminPermission::class, app\middleware\AdminLog::class, app\middleware\AdminResponse::class]);
Route::rule('InvoiceFinalReport/index', 'admin.InvoiceFinalReport/index', 'get')->middleware([app\middleware\AdminAuth::class, app\middleware\AdminPermission::class, app\middleware\AdminLog::class, app\middleware\AdminResponse::class]);
Route::rule('InvoiceFinalReport/report', 'admin.InvoiceFinalReport/report', 'get')->middleware([app\middleware\AdminAuth::class, app\middleware\AdminPermission::class, app\middleware\AdminLog::class, app\middleware\AdminResponse::class]);
});

Loading…
Cancel
Save