package com.vci.web.service; import com.vci.file.dto.VciFileObjectDTO; import com.vci.file.pagemodel.VciFileObjectVO; import com.vci.starter.web.exception.VciBaseException; import com.vci.starter.web.pagemodel.BaseResult; import org.springframework.web.multipart.MultipartFile; import java.util.Collection; /** * 文件上传的服务 * 是指把文件上传到文件存储服务,不是web或者其他客户端上传到后台服务 * @author weidy * @date 2020/3/11 */ public interface VciFileUploadServiceI { /** * 上传单个文件。 * @param multipartFile 上传的媒体文件 * @param fileObjectDTO 文件的数据传输对象,其中文件支持文件对象或者二进制数组,谨慎使用二进制数组,因为占用内存太大 * @return 文件的显示对象 * @throws VciBaseException 上传文件出错的时候抛出异常 */ BaseResult uploadFile(MultipartFile multipartFile, VciFileObjectDTO fileObjectDTO) throws VciBaseException; /** * 将原业务数据下的所有文件共享到其他的业务类型下 * @param sourceBtmName 原业务类型 * @param sourceBusinessOid 原业务数据主键 * @param btmName 业务类型 * @param businessOid 业务数据主键 * @return 共享后的文件显示对象 * @throws VciBaseException 参数为空或者保存出错的时候抛出异常 */ BaseResult shareFilesToBO(String sourceBtmName, String sourceBusinessOid, String btmName, String businessOid) throws VciBaseException; /** * 将文件共享到其他的业务类型下 * @param fileOid 文件主键 * @param btmName 业务类型 * @param businessOid 业务数据主键 * @return 共享后的文件显示对象 * @throws VciBaseException 参数为空或者保存出错的时候抛出异常 */ BaseResult shareFilesToBO(String fileOid, String btmName, String businessOid) throws VciBaseException; /** * 批量将文件共享到其他的业务类型下 * @param fileOidCollection 文件主键集合 * @param btmName 业务类型 * @param businessOid 业务数据主键 * @return 共享后的文件显示对象列表 * @throws VciBaseException 参数为空或者保存出错的时候抛出异常 */ BaseResult shareFilesToBO(Collection fileOidCollection, String btmName, String businessOid) throws VciBaseException; /** * 分片上传。 * @param multipartFile 片文件 * @param offSet 文件偏移位置 * @param fileOid 文件主键 * @return * @throws VciBaseException */ BaseResult uploadFileForOtherService(MultipartFile multipartFile, long offSet, String fileOid) throws VciBaseException; /** * 其他服务上传文件之前初始化文件信息 * @param vciFileObjectDTOS 文件信息传输对象对象 * @return * @throws VciBaseException */ BaseResult initUploadFileInfo(Collection vciFileObjectDTOS) throws VciBaseException; /** * 将原业务数据下的非表单相关文件共享到其他的业务类型下 * @param sourceBtmName 原业务类型 * @param sourceBusinessOid 原业务数据主键 * @param btmName 业务类型 * @param businessOid 业务数据主键 * @return 共享后的文件显示对象 * @throws VciBaseException 参数为空或者保存出错的时候抛出异常 */ BaseResult shareAnnexFilesToBO(String sourceBtmName, String sourceBusinessOid, String btmName, String businessOid) throws VciBaseException; }