1背景EAS电子回单存储目前只支持(1)数据库类型mysql\oracle和(2)金蝶云盘,不能满足各客户现场第三方存储类型,针对这种情况,标准产品留出对于第三方存储类型的支持接口,需要各实施现场自行进行开发。本文中描述的规范包括1、电子回单第三方存储的设置2、电子回单第三方存储的上传文件3、电子回单第三方存储的查看文件。2规范适用对象说明本文档适用于第三方存储电子回单的业务场景,支持现场二次开发人员扩展开发。请求数据包格式规范3电子回单第三方存储上传文件3.1电子回单存储逻辑:1、入口:eas后台事务下载电子回单pdf。2、银企返回电子回单PDFValue,后台事务启动会从银企平台下载电子回单的PDFvalue到eas数据库T_BE_Ereceipt表中的PDFValue字段。3、保存pdfValue到第三方存储库,并返回第三方存储库的地址(需要二次开发)3.2扩展开发接口描述:(1)类路径:com.kingdee.eas.fm.be.app.service.EReceiptServiceForTrd备注:web菜单资金管理-电子回单-电子回单存储设置中配置的为‘其他存储(需扩展开发)’时,从银企平台下载电子回单PDF文件后,会调用此类存储到第三方存储接口保存。(2)扩展方法savePDFValuesForTrd,入口参数:EReceiptInfo为EAS电子回单表数据,其中FileValue字段为PDF文件二进制,需要写入到第三方云盘中。返回参数:String,电子回单在第三方云盘存储的地址路径,会反写到EAS电子回单表中,用于查询时,根据此路径进行查询。异常:第三方存储中的所有异常请用BOSException封装后抛出来,事务会进行回滚,以保证EAS表中数据与第三方存储一致性,即防止eas已经存储,第三方云盘未存储的情况。这种情况会进行回滚,下次执行时重新下载pdf,重新保存到eas数据库表和第三方云盘中。(3)备注,savePDFValueForTrd是每条回单调用一次,不支持批量,而连接云盘一般会需要获取token等信息,可以使用单例获取token包括文件夹id等信息,不需要每次存储时都获取一次,具体实现可以参考com.kingdee.eas.fm.be.StorageSettingInstance4电子回单库存储设置4.1界面配置入口:标准产品在原有两种存储类型(DB\金蝶云盘)的基础上,会增加一个‘其他存储(需扩展开发)’的选项。需要在此处配置第三方云盘存储的云盘账号,云盘密码,云盘组织。4.2测试云盘连通扩展开发(1)类路径:com.kingdee.eas.fm.be.app.EReceiptStorageSettingWebFacadeControllerBean备注:可以扩展EReceiptStorageSettingWebFacadeControllerBeanEx扩展类,系统会自动调用(2)扩展方法:返回true则连通正常。/***第三方云盘存储连接接口*@paramctx*@return*/protectedbooleantestTrdDrive(Contextctx){returnfalse;}5电子回单第三方存储查看文件5.1电子回单查看逻辑与标准产品逻辑一样:如果电子回单未下载,则提示pdf未下载,需要执行后台事务下载pdf进行下载。如果电子回单保存在eas库中(保存10天内的),则从eas数据库中取pdf文件查看。如果电子回单未在eas库中保存,且在回单库中保存(10天之外的),则需要调用第三方存储查看文件接口,返回电子回单pdf二进制流进行展示。5.2扩展开发接口描述(1)类路径:com.kingdee.eas.fm.be.app.service.EReceiptServiceForTrd备注:web菜单资金管理-电子回单-电子回单存储设置中配置的为‘其他存储(需扩展开发)’时,查看和打印电子回单PDF时会调用此类接口从第三方存储获取PDF二进制流。(2)扩展方法:getPDFValuesForTrd入口参数:EReceiptInfo为EAS电子回单表数据,其中FileID保存了存储电子回单时第三方存储返回的回单地址。返回参数:byte[]电子回单PDF二进制流。异常:第三方存储中的所有异常请用BOSException封装后抛出来(3)备注,getPDFValuesForTrd是每条回单调用一次,不支持批量,而连接云盘一般会需要获取token等信息,可以使用单例获取token包括文件夹id等信息,不需要每次存储时都获取一次,具体实现可以参考com.kingdee.eas.fm.be.StorageSettingInstance6电子回单第三方存储批量查看文件6.1电子回单批量查看逻辑根据业务单据id集合,批量返回对应的电子回单PDF集合6.2扩展开发接口描述(1)类路径:com.kingdee.eas.fm.erec.app.service.ThirdEreceiptBatchServiceweb菜单资金管理-电子回单-电子回单存储设置中配置的为‘其他存储(需扩展开发)’时,批量查看电子回单PDF时会调用此类接口从第三方存储获取PDF二进制流。此接口为批量接口,建议第三方存储改为批量接口,可以一次性获取多个电子回单的pdf流(2)扩展方法MapgetBatchStorePDFMap(Contextctx,ListidList)入口参数:ctx上下文,idList电子回单id集合返回值:Map,key:电子回单id,Value:key对应的电子回单pdf流异常:BOSException,EASBizExcepiton,需要将异常转化为上述异常