This commit is contained in:
liu
2026-08-13 00:35:09 +08:00
parent 91ea91784d
commit 79e3ed4a8a
5 changed files with 66 additions and 18 deletions
@@ -3,6 +3,7 @@
namespace App\Http\Controllers\Purchase;
use App\Exceptions\RepositoryException;
use App\Exports\PurchaseOrderExport;
use App\Http\Requests\Purchase\PurchaseCellUpdateRequest;
use App\Http\Requests\Purchase\PurchaseRowUpdateRequest;
use App\Models\ProductModel;
@@ -15,11 +16,13 @@ use App\Services\PurchaseGenerateService;
use Illuminate\Http\JsonResponse;
use Illuminate\Http\Request;
use Illuminate\Support\Facades\DB;
use Maatwebsite\Excel\Facades\Excel;
use Modules\AnnoRoute\Attribute\GetRoute;
use Modules\AnnoRoute\Attribute\PostRoute;
use Modules\AnnoRoute\Attribute\PutRoute;
use Modules\AnnoRoute\Attribute\RequestAttribute;
use Modules\Common\Http\Controllers\BaseController;
use Symfony\Component\HttpFoundation\Response;
use Throwable;
/**
@@ -190,6 +193,27 @@ class PurchaseOrderController extends BaseController
);
}
/**
* C2/C3 导出采购单(Excel 表格):?type=all 全品类 / category 仅蔬果分类
*/
#[GetRoute(route: '/{id}/export', authorize: 'export', where: ['id' => '[0-9]+'])]
public function export(int $id, Request $request): Response
{
$purchase = PurchaseOrderModel::find($id);
if (empty($purchase)) {
throw new RepositoryException('采购单不存在');
}
$type = (string) $request->query('type', 'all');
if (! in_array($type, ['all', 'category'], true)) {
throw new RepositoryException('导出类型参数不正确(all 全品类 / category 蔬果分类)');
}
return Excel::download(
new PurchaseOrderExport($purchase, $type),
$purchase->purchase_no . '_采购单.xlsx',
);
}
/**
* 单元格下钻:采购单中某门店某商品的全部订货明细
*/