package jnpf.dmsService; import jnpf.dmsEntity.recordprint.form.DmsRecordPrintHuishouForm; import jnpf.dmsEntity.recordprint.form.DmsRecordPrintIssueForm; import jnpf.dmsEntity.recordprint.vo.DmsRecordPrintConfirmVO; import jnpf.dmsEntity.recordprint.vo.DmsRecordPrintPrepareVO; import jnpf.dmsEntity.recordprint.vo.DmsRecordPrintSerialVO; import jnpf.dmsEntity.print.vo.DmsWorkflowPrintFilesGrantResultVO; import jnpf.exception.DataException; /** * 记录文件打印准备服务。 */ public interface DmsRecordPrintService { /** * 按流程申请为申请人永久授予全部记录文件版本的打印权限。 * * @param flowId 流程实例 ID * @param flowTaskId 流程任务 ID * @return 文件打印授权结果 * @throws DataException 申请、明细或文件版本无效,或者授权调用失败 */ DmsWorkflowPrintFilesGrantResultVO authorize( String flowId, String flowTaskId) throws DataException; /** * 批量发放记录打印流水并登记接收信息。 * * @param form 电子签名及发放明细 * @throws DataException 参数无效、流水不存在或条码已经发放 */ void issue(DmsRecordPrintIssueForm form) throws DataException; /** * 批量回收记录打印流水并登记接收信息。 * * @param form 电子签名及回收明细 * @throws DataException 参数无效、流水不存在或条码已经回收 */ void huishou(DmsRecordPrintHuishouForm form) throws DataException; /** * 根据流水号查询未发放的打印记录及对应文件信息。 * * @param serialNumber 打印流水号 * @param chazhaoLeixing 查找类型 * @return 流水记录及文件信息 * @throws DataException 流水号为空、记录不存在或已经签收/发放 */ DmsRecordPrintSerialVO findBySerialNumber(String serialNumber, String chazhaoLeixing) throws DataException; /** * 为打印预览预占连续流水号,不写入打印业务表。 * * @param printItemId B 表打印申请子项主键 * @return 打印单元与流水号对应关系 * @throws DataException 申请无效、已经打印、文件页码无效或预占失败 */ DmsRecordPrintPrepareVO prepare(String printItemId) throws DataException; /** * 将预览阶段预占的流水号正式写入打印流水表。 * * @param reservationId 打印预占标识 * @return 已确认的打印单元及数据库记录主键 * @throws DataException 预占无效、已经过期或打印申请状态已变化 */ DmsRecordPrintConfirmVO confirm(String reservationId) throws DataException; /** 按打印申请子项主键将打印状态更新为打印完成。 */ void complete(String printItemId) throws DataException; }