View Javadoc
1   package gboat2.attachment.service;
2   
3   /**
4    * Copyright By Grandsoft Company Limited.  
5    * 2012-4-13 下午01:57:18
6    */
7   
8   import gboat2.base.core.service.IBaseService;
9   import gboat2.attachment.model.AttachConfig;
10  import gboat2.attachment.model.Attachment;
11  import gboat2.attachment.model.AttachmentOperEnum;
12  import gboat2.attachment.model.AttachmentVO;
13  import gboat2.attachment.model.DownloadRecord;
14  
15  import java.io.IOException;
16  import java.util.List;
17  
18  public interface IAttachmentService extends IBaseService {
19  
20  	/**
21  	 * 上传文件,返回附件id
22  	 * @param attach Attachment instanse
23  	 * @return 附件id
24  	 */
25  	public String saveAttachment(Attachment attach);
26  
27  	/**
28  	 * 保存二进制数据附件
29  	 * @param base64pdf
30  	 * 			附件内容(BASE64Encoder转码过的文件内容) 
31  	 * @param belongId
32  	 * 			附件附属id
33  	 * @param attachName
34  	 * 			附件原始名称
35  	 * @param attachType
36  	 * 			附件保存的类型名称
37  	 * @param configId
38  	 * 			附件类型的配置id
39  	 * @param attOperEnum
40  	 * 			附件的操作枚举(保存,更新...)
41  	 * @return Attachment
42  	 * @throws IOException
43  	 */
44  	public Attachment generateAttachment(byte[] base64pdf, String belongId, String attachName, String attachType, String configId,
45  			AttachmentOperEnum attOperEnum) throws IOException;
46  
47  	/**
48  	 * 删除附件(可以删除多个,id以,分隔)
49  	 * @param attachIds Attachment的id组成的字符串数组
50  	 */
51  	public void deleteAttachments(String[] attachIds);
52  
53  	/**
54  	 * 删除附件
55  	 * @param attachId Attachment id
56  	 */
57  	public void deleteAttachment(String attachId);
58  
59  	/**
60  	 * 根据从属id取得附件
61  	 * @param belongid 附件所属对象的id(外键)
62  	 * @return belongid 的所有附件
63  	 */
64  	public List<Attachment> getAttachmentsByBelongId(String belongid);
65  
66  	/**
67  	 * 根据id取得附件,带出类型名字
68  	 * @param belongId
69  	 * @return
70  	 */
71  	public List<AttachmentVO> getAttachmentVOsByBelongId(String belongId);
72  
73  	/**
74  	 * 根据belongId和attachType获取附件
75  	 * @param belongId belongId
76  	 * @param attachType attachType
77  	 * @return 附件列表
78  	 */
79  	public List<Attachment> getAttachmentsBy(String belongId, String attachType);
80  
81  	/**
82  	 * 批量更新附件的belongId
83  	 * @param attachIds
84  	 * @param belongId
85  	 * @return
86  	 */
87  	public void updateAttachsBelongId(String[] attachIds, String belongId);
88  
89  	/**
90  	 * 
91  	 * 根据附件id获取附件被下载记录
92  	 * @param attachmentId
93  	 */
94  	public DownloadRecord getDownLoad(String attachmentId);
95  
96  	/**
97  	 * 删除 附件 by belongId
98  	 * @param belongId
99  	 * 		主对象的主键,同时又是附件的belongId
100 	 */
101 	public void deleteAttachmentByBelongId(String belongId);
102 
103 	/**
104 	 * 虚拟删除附件,即删除数据库相应记录,不删除实际文件
105 	 * @param attachId
106 	 */
107 	public void virtualDelete(String attachId);
108 
109 	/**
110 	 * 根据attachNames查询对应附件
111 	 * @param belongId
112 	 * @param attachNames
113 	 * @return
114 	 */
115 	public List<Attachment> getAttachmentsBy(String belongId, String[] attachNames);
116 
117 	/**
118 	 * 查看当前登录人员是否下载过资格预审文件 或者 招标文件 或者 答疑文件
119 	 * @param organId
120 	 * @param belongId
121 	 * @param attachType
122 	 * @return
123 	 */
124 	public Boolean isDownLoadFile(String organId, String belongId, String attachType);
125 
126 	/**
127 	 * 取的最新一条下载记录
128 	 * @param organId
129 	 * @param belongId
130 	 * @param attachType
131 	 * @return
132 	 */
133 	public DownloadRecord getLastDownloadRecord(String organId, String belongId, String attachType);
134 
135 	/**获取附件与附件类型的VO 对象集合
136 	 * @param belongId
137 	 * 		附件所属ID
138 	 * @param attachType
139 	 * 		config中的附件类型名称
140 	 * @return  List<AttachmentVO>
141 	 */
142 	public List<AttachmentVO> getAttachmentVOBy(String belongId, String attachType);
143 
144 	/**根据belongId 和 configId,获取附件对象,
145 	 * @param belongId
146 	 * 			附件所属ID
147 	 * @param configId
148 	 * 			config中的附件类型Id
149 	 * @return List<Attachment> 
150 	 */
151 	public List<Attachment> getAttachmentsByBelongIdAndConfigId(String belongId, String configId);
152 
153 	/**
154 	 * @deprecated replaced by {@link #getAvailableAttachTypesByCode(String)}
155 	 * 根据附件编码查询模块启用的附件类型(每个模块对应唯一一个附件编码)
156 	 * @param attachCode
157 	 */
158 	public String[][] getAvailableAttachTypeByCode(String attachCode);
159 
160 	/**
161 	 * 根据附件编码查询模块所有的附件类型(每个模块对应唯一一个附件编码)
162 	 * @param attachCode
163 	 * @return
164 	 */
165 	List<AttachConfig> getAvailableAttachTypesByCode(String attachCode);
166 
167 	/**根据附件类型集编码 和 附件类型名称 查询获取 附件类型配置对象
168 	 * @param attachCode
169 	 * 		附件类型集编码
170 	 * @param attachType
171 	 * 		附件类型名称 
172 	 * @return AttachConfig
173 	 */
174 	public AttachConfig getAttachConfigBy(String attachCode, String attachType);
175 
176 	/**根据附件类型集编码 和 附件类型名称 查询获取 附件类型配置对象的主键id
177 	 * @param attachCode
178 	 * 		附件类型集编码
179 	 * @param attachType
180 	 * 		附件类型名称 
181 	 * @return String configId
182 	 */
183 	public String getAttachConfigIdBy(String attachCode, String attachType);
184 
185 	Attachment getAttachment(String attachId);
186 	
187 	/**
188 	 *根据附件主键s批量查询
189 	 * @param attachIds
190 	 * @return
191 	 */
192 	public List<Attachment> getAttachmentsByAttachIds(String attachIds);
193 	
194 }