ludc
2024-09-12 aed7f0e9be4e88a4ed632f9ca7aca05fa1e7f6b8
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
package com.vci.web.service;
 
import com.vci.dto.VciFileObjectDTO;
import com.vci.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<VciFileObjectVO> shareFilesToBO(String sourceBtmName, String sourceBusinessOid, String btmName, String businessOid) throws VciBaseException;
 
    /**
     * 将文件共享到其他的业务类型下
     * @param fileOid 文件主键
     * @param btmName 业务类型
     * @param businessOid 业务数据主键
     * @return 共享后的文件显示对象
     * @throws VciBaseException 参数为空或者保存出错的时候抛出异常
     */
    BaseResult<VciFileObjectVO> shareFilesToBO(String fileOid, String btmName, String businessOid) throws VciBaseException;
 
    /**
     * 批量将文件共享到其他的业务类型下
     * @param fileOidCollection 文件主键集合
     * @param btmName 业务类型
     * @param businessOid 业务数据主键
     * @return 共享后的文件显示对象列表
     * @throws VciBaseException 参数为空或者保存出错的时候抛出异常
     */
    BaseResult<VciFileObjectVO> shareFilesToBO(Collection<String> fileOidCollection, String btmName, String businessOid) throws VciBaseException;
 
    /**
     * 分片上传。
     * @param multipartFile 片文件
     * @param offSet 文件偏移位置
     * @param fileOid 文件主键
     * @return
     * @throws VciBaseException
     */
    BaseResult<VciFileObjectVO> uploadFileForOtherService(MultipartFile multipartFile, long offSet, String fileOid) throws VciBaseException;
 
    /**
     * 其他服务上传文件之前初始化文件信息
     * @param vciFileObjectDTOS 文件信息传输对象对象
     * @return
     * @throws VciBaseException
     */
    BaseResult initUploadFileInfo(Collection<VciFileObjectDTO> vciFileObjectDTOS) throws VciBaseException;
 
    /**
     * 将原业务数据下的非表单相关文件共享到其他的业务类型下
     * @param sourceBtmName 原业务类型
     * @param sourceBusinessOid 原业务数据主键
     * @param btmName 业务类型
     * @param businessOid 业务数据主键
     * @return 共享后的文件显示对象
     * @throws VciBaseException 参数为空或者保存出错的时候抛出异常
     */
    BaseResult<VciFileObjectVO> shareAnnexFilesToBO(String sourceBtmName, String sourceBusinessOid, String btmName, String businessOid) throws VciBaseException;
}