概要
附件操作代码以及查找逻辑
现有的附件上传接口和查找逻辑
附件操作可以调用的接口:
1.nccloud.pubitf.platform.attachment.IAttachmentService,其中有对应的upload、download等方法。
注意:
1)上传下载要传入的bucket相同才能保证文件正常上传和下载。
2)如果要控制附件的上传和下载,建议在对应节点的调用附件操作接口前进行业务判断。
可以参考的附件操作的代码
2.可以参考的附件操作的代码:
上传:nccloud.web.platform.attachment.action.AttachmentUpLoadAction.doAction(AttachmentVO)
下载:nccloud.web.platform.attachment.action.AttachmentDownLoadAction.doAction(IRequest)
查询:nccloud.web.platform.attachment.action.AttachmentQueryAction.doAction(IRequest)
实际入参需跟代码看一下入参信息,参考标准节点入参
上传的附件在文件服务器中的具体存储位置
3.上传的附件在文件服务器中的具体存储位置可以由如下三个表查询:
文档节点 (SM_PUB_FILESYSTEM)
select pk_doc from sm_pub_filesystem where filepath like ‘%文件名或者单据id%’
附件表头 (bap_fs_header)
select guid from bap_fs_header where path=‘上个sql查的pk_doc’
附件详细信息(bap_fs_body)
select storepath from bap_fs_body where headid=‘上个sql查到的guid’
小结
1)上面三个表,其中bap_fs_header和bap_fs_body是调用nccloud.pubitf.platform.attachment.IAttachmentService.upload(String, InputStream, boolean, int, String)后写进去的,sm_pub_filesystem表是调用nccloud.pubitf.platform.attachment.IAttachmentService.saveAttachDBInfo(String, NCFileVO)写进数据库的。
2)前台查询有哪些上传过的附件,是通过nccloud.web.platform.attachment.action.AttachmentQueryAction.doAction(IRequest) 入口查询的,最终是通过表sm_pub_filesystem查询的。sm_pub_filesystem的filepath值通常都是:领域+元数据+单据主键+文件名,但是有的业务节点没严格遵循该标准,遵循该标准的可以根据单据主键查询对应附件。
概述
现有的附件上传接口和查找逻辑:
1.附件操作可以调用的接口:nccloud.pubitf.platform.attachment.IAttachmentService,其中有对应的upload、download等方法。
注意:
1)上传下载要传入的bucket相同才能保证文件正常上传和下载。
2)如果要控制附件的上传和下载,建议在对应节点的调用附件操作接口前进行业务判断。
2.可以参考的附件操作的代码:上传:nccloud.web.platform.attachment.action.AttachmentUpLoadAction.doAction(AttachmentVO)
下载:nccloud.web.platform.attachment.action.AttachmentDownLoadAction.doAction(IRequest)
查询:nccloud.web.platform.attachment.action.AttachmentQueryAction.doAction(IRequest)
3.上传的附件在文件服务器中的具体存储位置可以由如下三个表查询:
select pk_doc from sm_pub_filesystem where filepath like '%文件名或者单据id%'
select guid from bap_fs_header where path='上个sql查的pk_doc'
select storepath from bap_fs_body where headid='上个sql查到的guid'
注意:
1)上面三个表,其中bap_fs_header和bap_fs_body是调用nccloud.pubitf.platform.attachment.IAttachmentService.upload(String, InputStream, boolean, int, String)后写进去的,sm_pub_filesystem表是调用nccloud.pubitf.platform.attachment.IAttachmentService.saveAttachDBInfo(String, NCFileVO)写进数据库的。
2)前台查询有哪些上传过的附件,是通过nccloud.web.platform.attachment.action.AttachmentQueryAction.doAction(IRequest)
入口查询的,最终是通过表sm_pub_filesystem查询的。sm_pub_filesystem的filepath值通常都是:领域+元数据+单据主键+文件名,但是有的业务节点没严格遵循该标准,遵循该标准的可以根据单据主键查询对应附件。