import { type ActiveRecord, FunctionOptions, GenericFunctionService, type RuntimeModel } from '@oinone/kunlun-engine'; import { Condition } from '@oinone/kunlun-request'; import type { PdfPrintTask } from '../typing'; export class PrintService { public static createPrintTask( model: RuntimeModel, documentId: string, condition: Condition | string, options: FunctionOptions ) { return PrintService.createPrintTaskByTask(model, { documentDefinitionId: documentId }, condition, options); } public static async createPrintTaskByTask( model: RuntimeModel, task: Partial, condition: Condition | string, options: FunctionOptions ): Promise { let queryData: ActiveRecord | undefined; if (condition instanceof Condition) { queryData = condition.getConditionBodyData(); condition = condition.toString(); } const data: PdfPrintTask = { ...task, conditionWrapper: { rsql: condition, queryData } }; const result = await GenericFunctionService.INSTANCE.executeByFun( model.model, 'createPrintTask', { deep: 1 // ...options }, data ); if (!result) { throw new Error('Failed to create print job'); } return result; // fixme @zbh 20240805 5.1 using static metadata // return FunctionService.INSTANCE.simpleExecute( // model, // StaticFileFunction.createExportTask, // { // ...options, // requestModels: [ // StaticMetadata.QueryWrapper, // StaticFileMetadata.ExcelWorkbookDefinition, // StaticFileMetadata.ExcelExportTask // ], // responseModels: [StaticFileMetadata.ExcelExportTask] // }, // data // ); } }