Sprint10接口详设
<h1>标准签V2.0技术方案-文档分类管理及批量操作</h1>
<h2><em> 功能列表 </em></h2>
<pre><code>* 1.获取文件夹列表
* 2.添加文件夹
* 3.删除文件夹
* 4.编辑(重命名)文件夹
* 5.批量获取流程文档信息
* 6.根据文件夹查询流程文档
* 7.批量签署(下期开发)
* 8.批量删除流程(下期开发)
* 9.批量下载(下期开发)
* 10.批量移动文档到指定文件夹(下期开发)
* 11. 批量从指定文件夹移出文档</code></pre>
<h2>1. 功能设计</h2>
<h3>1.1. 功能说明</h3>
<pre><code>基于用户需求考虑,需增加以下功能点:
* 支持用户创建自定义文件夹。
* 支持用户批量选择流程并根据用户个人意愿将相应流程移动到指定文件下
* 支持用户批量选择流程文档进行批量签署,签署时默认对文档列表中页数最少的文档进行签署,
其他文档签署位置与当前文档一致,计费时按照选中的流程数进行计费</code></pre>
<h3>1.2. 接口规范</h3>
<ul>
<li>Response规范</li>
</ul>
<pre><code>
{
&quot;success&quot;: true,
&quot;msg&quot;: null,
&quot;errCode&quot;: 0,
&quot;errShow&quot;: false,
&quot;data&quot;: //数据
}</code></pre>
<h3>1.3. 数据库设计&缓存设计</h3>
<p><strong>a. 新增表</strong></p>
<ul>
<li>user_folder 用户文件夹表</li>
</ul>
<pre><code>
CREATE TABLE `user_folder` (
`id` varchar(36) NOT NULL COMMENT '主键id',
`account_uid` varchar(36) NOT NULL COMMENT '用户账号Uid',
`folder_name` varchar(20) NOT NULL COMMENT '文件夹名称',
`parent_folder` varchar(36) DEFAULT NULL COMMENT '上一层文件夹Id',
`is_deleted` bit(1) NOT NULL COMMENT '是否删除,1-删除 0-有效',
`create_time` datetime NOT NULL COMMENT '创建时间',
`update_time` datetime DEFAULT NULL COMMENT '修改时间',
PRIMARY KEY (`id`),
KEY `Index_user_folder_folder_name` (`accountUid`,`folder_name`,`is_deleted`) USING BTREE,
KEY `Index_user_folder_parent_folder` (`accountUid`,`parent_folder`,`is_deleted`) USING BTREE
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
</code></pre>
<ul>
<li>user_folder_flow_ref 用户文件夹流程映射表</li>
</ul>
<pre><code>
CREATE TABLE `user_folder_flow_ref` (
`id` varchar(36) NOT NULL COMMENT '主键id',
`user_folder_id` varchar(36) NOT NULL COMMENT '用户文件夹Id',
`flow_id` varchar(36) NOT NULL COMMENT '流程ID',
`account_uid` varchar(36) NOT NULL,
`is_deleted` bit(1) NOT NULL COMMENT '是否删除,1-删除 0-有效',
`create_time` datetime NOT NULL COMMENT '创建时间',
`update_time` datetime DEFAULT NULL COMMENT '修改时间',
PRIMARY KEY (`id`),
KEY `Index_user_folder_maping_folder` (`user_folder_id`) USING BTREE,
KEY `Index_user_folder_maping_flow` (`flow_id`) USING BTREE
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
</code></pre>
<p><strong>a. 修改表</strong></p>
<ul>
<li><del>sign_flow_participant 流程参与人表</del></li>
</ul>
<pre><code>ALTER TABLE `sign_flow_participant`
ADD COLUMN `user_folder_id` varchar(36) NULL COMMENT '流程分类到用户指定文件夹,值对应user_folder表的id',
ADD INDEX `Index_participant_user_folder_id`(`receiver_id`,`user_folder_id`)</code></pre>
<h3>1.4. 依赖服务</h3>
<pre><code>无</code></pre>
<h3>1.5. 核心功能设计</h3>
<h3>1.5.1. 获取文件夹列表</h3>
<ul>
<li>
<p>概述 </p>
<p>获取文件夹列表,当前不需要分页</p>
</li>
<li>
<p>请求uri </p>
<p>/rest/v1/userfolder/query</p>
</li>
<li>
<p>请求方式</p>
<p>GET</p>
</li>
<li>请求参数说明</li>
</ul>
<pre><code>
{
&quot;accountUid&quot;:&quot;xxxxx&quot;,
&quot;source&quot;:&quot;esign&quot;
}
</code></pre>
<table>
<thead>
<tr>
<th style="text-align: center;">参数名称</th>
<th style="text-align: center;">参数类型</th>
<th style="text-align: center;">是否必须</th>
<th style="text-align: center;">参数说明</th>
</tr>
</thead>
<tbody>
<tr>
<td style="text-align: center;">accountUid</td>
<td style="text-align: center;">string</td>
<td style="text-align: center;">是</td>
<td style="text-align: center;">需查询的用户Uid</td>
</tr>
<tr>
<td style="text-align: center;">source</td>
<td style="text-align: center;">string</td>
<td style="text-align: center;">是</td>
<td style="text-align: center;">数据来源</td>
</tr>
</tbody>
</table>
<ul>
<li>返回参数说明</li>
</ul>
<pre><code>
{
&quot;folderList&quot;: [
{
&quot;userFolderId&quot;: &quot;b0031b97-c9e8-406e-9287-1befbb5ecf61&quot;,
&quot;userFolderName&quot;: &quot;测试合同2&quot;,
&quot;createTime&quot;: 1527497878000,
&quot;updateTime&quot;: 1527499063000
},
{
&quot;userFolderId&quot;: &quot;fc9eff9c-b8fa-4e8b-ad64-e2595a3ab2ed&quot;,
&quot;userFolderName&quot;: &quot;测试合同&quot;,
&quot;createTime&quot;: 1527496052000,
&quot;updateTime&quot;: 1527510070000
}
]
}</code></pre>
<ul>
<li>流程图</li>
</ul>
<p><img src="https://i.imgur.com/JiMwiSZ.png" alt="" /></p>
<h3>1.5.2. 添加文件夹</h3>
<ul>
<li>
<p>概述 </p>
<p>用户添加新的自定义文件夹</p>
</li>
<li>
<p>请求uri </p>
<p>/rest/v1/userfolder/add</p>
</li>
<li>
<p>请求方式</p>
<p>POST application/json</p>
</li>
<li>请求参数说明</li>
</ul>
<pre><code>
{
&quot;userFolderName&quot;:&quot;d27bb400-5610-4dd5-9899-d48c804a319e&quot;,
&quot;source&quot;:&quot;esign&quot;
}</code></pre>
<table>
<thead>
<tr>
<th style="text-align: right;">参数名称</th>
<th style="text-align: center;">参数类型</th>
<th style="text-align: center;">是否必须</th>
<th style="text-align: left;">参数说明</th>
</tr>
</thead>
<tbody>
<tr>
<td style="text-align: right;">userFolderName</td>
<td style="text-align: center;">String</td>
<td style="text-align: center;">是</td>
<td style="text-align: left;">文件夹名称</td>
</tr>
<tr>
<td style="text-align: right;">accountUid</td>
<td style="text-align: center;">String</td>
<td style="text-align: center;">是</td>
<td style="text-align: left;">用户Uid, 默认为当前登录人的账号Uid</td>
</tr>
<tr>
<td style="text-align: right;">source</td>
<td style="text-align: center;">String</td>
<td style="text-align: center;">是</td>
<td style="text-align: left;">数据来源</td>
</tr>
</tbody>
</table>
<ul>
<li>返回参数说明</li>
</ul>
<pre><code>
{
&quot;userFolderId&quot;: &quot;xxxxxx&quot;
}</code></pre>
<table>
<thead>
<tr>
<th style="text-align: center;">参数名称</th>
<th style="text-align: center;">参数类型</th>
<th style="text-align: left;">参数说明</th>
</tr>
</thead>
<tbody>
<tr>
<td style="text-align: center;">userFolderId</td>
<td style="text-align: center;">string</td>
<td style="text-align: left;">用户文件夹Id</td>
</tr>
</tbody>
</table>
<ul>
<li>流程图</li>
</ul>
<p><img src="https://i.imgur.com/n1xZ8b4.png" alt="" /></p>
<h3>1.5.3. 删除文件夹</h3>
<ul>
<li>
<p>概述 </p>
<p>删除文件夹</p>
</li>
<li>
<p>请求uri </p>
<p>/rest/v1/userfolder/delete</p>
</li>
<li>
<p>请求方式</p>
<p>POST </p>
</li>
<li>请求参数说明</li>
</ul>
<pre><code>
{
&quot;userFolderId&quot;:&quot;d27bb400-5610-4dd5-9899-d48c804a319e&quot;,
&quot;source&quot;:&quot;esign&quot;
}</code></pre>
<table>
<thead>
<tr>
<th style="text-align: center;">参数名称</th>
<th style="text-align: center;">参数类型</th>
<th style="text-align: center;">是否必须</th>
<th style="text-align: left;">参数说明</th>
</tr>
</thead>
<tbody>
<tr>
<td style="text-align: center;">source</td>
<td style="text-align: center;">string</td>
<td style="text-align: center;">是</td>
<td style="text-align: left;">数据来源</td>
</tr>
<tr>
<td style="text-align: center;">userFolderId</td>
<td style="text-align: center;">String</td>
<td style="text-align: center;">是</td>
<td style="text-align: left;">用户文件夹Id</td>
</tr>
</tbody>
</table>
<ul>
<li>
<p>返回参数说明</p>
<p>返回成功或失败</p>
</li>
<li>流程图</li>
</ul>
<p><img src="https://i.imgur.com/HHAuEp3.png" alt="" /></p>
<h3>1.5.4. 编辑(重命名)文件夹</h3>
<ul>
<li>
<p>概述 </p>
<p>获取签署流程详情,包含签署人等信息</p>
</li>
<li>
<p>请求uri </p>
<p>/rest/v1/userfolder/rename</p>
</li>
<li>
<p>请求方式</p>
<p>POST </p>
</li>
<li>请求参数说明</li>
</ul>
<pre><code>
{
&quot;userFolderId&quot;:&quot;xxxxxxxxxxxxxxx&quot;,
&quot;userFolderName&quot;:&quot;d27bb400-5610-4dd5-9899-d48c804a319e&quot;,
&quot;source&quot;:&quot;esign&quot;
}</code></pre>
<table>
<thead>
<tr>
<th style="text-align: center;">参数名称</th>
<th style="text-align: center;">参数类型</th>
<th style="text-align: center;">是否必须</th>
<th style="text-align: left;">参数说明</th>
</tr>
</thead>
<tbody>
<tr>
<td style="text-align: center;">userFolderId</td>
<td style="text-align: center;">String</td>
<td style="text-align: center;">是</td>
<td style="text-align: left;">用户文件夹Id</td>
</tr>
<tr>
<td style="text-align: center;">userFolderName</td>
<td style="text-align: center;">String</td>
<td style="text-align: center;">是</td>
<td style="text-align: left;">新的文件夹名</td>
</tr>
<tr>
<td style="text-align: center;">source</td>
<td style="text-align: center;">string</td>
<td style="text-align: center;">是</td>
<td style="text-align: left;">数据来源</td>
</tr>
</tbody>
</table>
<ul>
<li>
<p>返回参数说明</p>
<p>返回成功或失败</p>
</li>
<li>流程图</li>
</ul>
<p><img src="https://i.imgur.com/JJR0Uc1.png" alt="" /></p>
<h3>1.5.5. 批量获取流程文档信息</h3>
<ul>
<li>
<p>概述 </p>
<p>批量获取流程文档信息</p>
</li>
<li>
<p>请求uri </p>
<p>/rest/v1/signflow/docInfos/batch</p>
</li>
<li>
<p>请求方式</p>
<p>POST application/json</p>
</li>
<li>请求参数说明</li>
</ul>
<pre><code>
{
&quot;participantList&quot;:[&quot;xxxxx&quot;,&quot;xxxxxx&quot;],
&quot;source&quot;:&quot;esign&quot;
}</code></pre>
<table>
<thead>
<tr>
<th style="text-align: center;">参数名称</th>
<th style="text-align: center;">参数类型</th>
<th style="text-align: center;">是否必须</th>
<th style="text-align: left;">参数说明</th>
</tr>
</thead>
<tbody>
<tr>
<td style="text-align: center;">userFolderId</td>
<td style="text-align: center;">String</td>
<td style="text-align: center;">是</td>
<td style="text-align: left;">用户文件夹Id</td>
</tr>
<tr>
<td style="text-align: center;">participantList</td>
<td style="text-align: center;">List<String></td>
<td style="text-align: center;">是</td>
<td style="text-align: left;">需获取文档信息的参与人记录列表</td>
</tr>
<tr>
<td style="text-align: center;">source</td>
<td style="text-align: center;">string</td>
<td style="text-align: center;">是</td>
<td style="text-align: left;">操作来源</td>
</tr>
</tbody>
</table>
<ul>
<li>返回参数说明</li>
</ul>
<pre><code>
{
&quot;docList&quot;: [
{
&quot;flowDocId&quot;: &quot;b2bd5188-2b11-40c5-8fff-a8fd4bfd05fb&quot;,
&quot;userFileId&quot;: &quot;f5c412ab-55a5-43a4-be38-c88f3f58831c&quot;,
&quot;flowDocName&quot;: &quot;概要设计说明书模板.docx&quot;,
&quot;posList&quot;: null,
&quot;ossKey&quot;: &quot;web/761ff5b1-4fdc-4036-8cda-4deae51d33ae.pdf&quot;,
&quot;url&quot;: &quot;https://esignoss.oss-cn-hangzhou.aliyuncs.com/web/761ff5b1-4fdc-4036-8cda-4deae51d33ae.pdf?Expires=1505944747&amp;OSSAccessKeyId=FBzUaPMorqiiUAfb&amp;Signature=unLiXfk6G4RfMjcf1vrGm%2B5JDrA%3D&quot;,
&quot;reviewUrl&quot;: &quot;https://esignoss.oss-cn-hangzhou.aliyuncs.com/pdf2Image/RPbPoGA_mg83PCdiC52jnnQxN9K3mbSiw0fIlio2nik%3D_5_1_50?Expires=1505912667&amp;OSSAccessKeyId=FBzUaPMorqiiUAfb&amp;Signature=frekki3IYqml0ILN8ij7tpzkqUs%3D&quot;,
&quot;page&quot;: 5
}
]
}</code></pre>
<table>
<thead>
<tr>
<th style="text-align: left;">参数名</th>
<th style="text-align: left;">类型</th>
<th>说明</th>
</tr>
</thead>
<tbody>
<tr>
<td style="text-align: left;">flowDocId</td>
<td style="text-align: left;">String</td>
<td>签署流程文档ID</td>
</tr>
<tr>
<td style="text-align: left;">userFileId</td>
<td style="text-align: left;">String</td>
<td>用户文件Id</td>
</tr>
<tr>
<td style="text-align: left;">flowDocName</td>
<td style="text-align: left;">String</td>
<td>文件名称</td>
</tr>
<tr>
<td style="text-align: left;">posList</td>
<td style="text-align: left;">List</td>
<td>指定位置信息</td>
</tr>
<tr>
<td style="text-align: left;">ossKey</td>
<td style="text-align: left;">String</td>
<td>文件的ossKey</td>
</tr>
<tr>
<td style="text-align: left;">url</td>
<td style="text-align: left;">String</td>
<td>文件的下载地址</td>
</tr>
<tr>
<td style="text-align: left;">reviewUrl</td>
<td style="text-align: left;">String</td>
<td>文件首页预览地址</td>
</tr>
<tr>
<td style="text-align: left;">page</td>
<td style="text-align: left;">int</td>
<td>文件页数</td>
</tr>
</tbody>
</table>
<ul>
<li>流程图</li>
</ul>
<p><img src="https://i.imgur.com/xLfSSJ2.png" alt="" /></p>
<h3>1.5.6. 根据文件夹查询流程文档</h3>
<ul>
<li>
<p>概述 </p>
<p>根据文件夹查询流程文档</p>
</li>
<li>
<p>请求uri </p>
<p>/rest/v1/signflow/query</p>
</li>
<li>
<p>请求方式</p>
<p>GET</p>
</li>
<li>请求参数说明</li>
</ul>
<pre><code>
{
&quot;userFolderId&quot;:&quot;3733dac8-d5bf-40a9-b8b2-0eed3c5f7867&quot;,
&quot;page&quot;:1,
&quot;pageSize&quot;:10,
&quot;source&quot;:&quot;esign&quot;
}</code></pre>
<table>
<thead>
<tr>
<th style="text-align: left;">参数名</th>
<th style="text-align: left;">必选</th>
<th style="text-align: left;">类型</th>
<th>说明</th>
</tr>
</thead>
<tbody>
<tr>
<td style="text-align: left;">accountUid</td>
<td style="text-align: left;">是</td>
<td style="text-align: left;">String</td>
<td>用户账号UID, 标准签可不传,若不传默认为当前登录人UID</td>
</tr>
<tr>
<td style="text-align: left;">userFolderId</td>
<td style="text-align: left;">是</td>
<td style="text-align: left;">String</td>
<td>用户文件夹Id</td>
</tr>
<tr>
<td style="text-align: left;">page</td>
<td style="text-align: left;">是</td>
<td style="text-align: left;">int</td>
<td>页码</td>
</tr>
<tr>
<td style="text-align: left;">pageSize</td>
<td style="text-align: left;">是</td>
<td style="text-align: left;">int</td>
<td>每页数据大小</td>
</tr>
<tr>
<td style="text-align: left;">showReceivers</td>
<td style="text-align: left;">否</td>
<td style="text-align: left;">int</td>
<td>是否显示参与人信息 0-否 1-是, 默认不显示</td>
</tr>
<tr>
<td style="text-align: left;">source</td>
<td style="text-align: left;">是</td>
<td style="text-align: left;">String</td>
<td>请求来源,例如:’dingding’ , ’esign’ , ’esign_h5’ , ’alipay’</td>
</tr>
</tbody>
</table>
<ul>
<li>返回参数说明</li>
</ul>
<pre><code>
{
&quot;total&quot;: 18, //记录统计
&quot;page&quot;: 2,
&quot;pageSize&quot;: 10,
&quot;signFlows&quot;: [
{
&quot;participantId&quot;: &quot;5395bc64-eca4-4671-bfc8-7f3191f471f2&quot;,
&quot;flowDetailId&quot;: null,
&quot;flowId&quot;: &quot;5340df21-6538-4c96-93bc-2aea16ac4866&quot;,
&quot;senderId&quot;: &quot;942B054820E94283967F38B98C3899FA&quot;,
&quot;senderName&quot;: &quot;李苏婵&quot;,
&quot;isOwner&quot;: 1,
&quot;flowType&quot;: 3,
&quot;status&quot;: 2,
&quot;docName&quot;: &quot;单独签测试&quot;,
&quot;createTime&quot;: 1504842878000,
&quot;deadline&quot;: null,
&quot;isRead&quot;: 1,
&quot;isApplication&quot;: 0,
&quot;modifyDate&quot;: 1504843734000,
&quot;isInitiated&quot;: 1,
&quot;reason&quot;: null,
&quot;lastOperation&quot;: null,
&quot;receiverList&quot;: null
}
]
}
}
</code></pre>
<table>
<thead>
<tr>
<th style="text-align: left;">参数名</th>
<th style="text-align: left;">类型</th>
<th>说明</th>
</tr>
</thead>
<tbody>
<tr>
<td style="text-align: left;">participantId</td>
<td style="text-align: left;">String</td>
<td>签署流程参与人Id</td>
</tr>
<tr>
<td style="text-align: left;">flowDetailId</td>
<td style="text-align: left;">String</td>
<td>签署流程详情Id, 为兼容钉钉,目前无使用场景</td>
</tr>
<tr>
<td style="text-align: left;">flowId</td>
<td style="text-align: left;">String</td>
<td>签署流程ID</td>
</tr>
<tr>
<td style="text-align: left;">senderId</td>
<td style="text-align: left;">String</td>
<td>发起人accountUid</td>
</tr>
<tr>
<td style="text-align: left;">senderName</td>
<td style="text-align: left;">String</td>
<td>发起人姓名</td>
</tr>
<tr>
<td style="text-align: left;">isOwner</td>
<td style="text-align: left;">int</td>
<td>当前用户是否发起人, 0-否 1-是</td>
</tr>
<tr>
<td style="text-align: left;">flowType</td>
<td style="text-align: left;">int</td>
<td>签署流程类型,0-仅自己签 1-顺序签 2-无序签 3-单独签 4-云文件 5-无流程 6-批量签</td>
</tr>
<tr>
<td style="text-align: left;">status</td>
<td style="text-align: left;">int</td>
<td>签署流程状态,0-草稿,2-待我签,3,-待他人签,6-已拒签,7-已撤回,8-已过期,9-已完成,10-已处理</td>
</tr>
<tr>
<td style="text-align: left;">docName</td>
<td style="text-align: left;">String</td>
<td>签署流程名称</td>
</tr>
<tr>
<td style="text-align: left;">createTime</td>
<td style="text-align: left;">long</td>
<td>创建时间</td>
</tr>
<tr>
<td style="text-align: left;">signDeadline</td>
<td style="text-align: left;">long</td>
<td>截止时间</td>
</tr>
<tr>
<td style="text-align: left;">isRead</td>
<td style="text-align: left;">int</td>
<td>是否已读,0-未读 1- 已读</td>
</tr>
<tr>
<td style="text-align: left;">isApplication</td>
<td style="text-align: left;">int</td>
<td>是否用印申请或转签记录, 0-否 1-是</td>
</tr>
<tr>
<td style="text-align: left;">modifyDate</td>
<td style="text-align: left;">long</td>
<td>修改时间</td>
</tr>
<tr>
<td style="text-align: left;">isInitiated</td>
<td style="text-align: left;">int</td>
<td>流程是否已发起,0-未发起 1-已发起</td>
</tr>
<tr>
<td style="text-align: left;">reason</td>
<td style="text-align: left;">String</td>
<td>拒签原因或撤回原因</td>
</tr>
<tr>
<td style="text-align: left;">lastOperation</td>
<td style="text-align: left;">OperationLogData</td>
<td>最近一次操作记录</td>
</tr>
<tr>
<td style="text-align: left;">transferTimes</td>
<td style="text-align: left;">int</td>
<td>转签次数,默认为0 [添加于2018-03-06, 转签次数,用于限制参与人是否可以执行转签操作,目前设置的最大转签次数为5次,限制逻辑由前端判断]</td>
</tr>
<tr>
<td style="text-align: left;">receiverList</td>
<td style="text-align: left;">List</td>
<td>签署参与人列表,目前只有H5页面会返回列表值</td>
</tr>
</tbody>
</table>
<ul>
<li>流程图</li>
</ul>
<p><img src="https://i.imgur.com/LVtIp5V.png" alt="" /></p>
<h3>1.5.7. 批量签署</h3>
<ul>
<li>
<p>概述 </p>
<p>批量签署</p>
</li>
<li>
<p>请求uri </p>
<p>/rest/v1/signflow/batchSign</p>
</li>
<li>
<p>请求方式</p>
<p>POST application/json</p>
</li>
<li>请求参数说明</li>
</ul>
<pre><code>
{
&quot;participantList&quot;:[&quot;d27bb400-5610-4dd5-9899-d48c804a319e&quot;],
&quot;source&quot;:&quot;esign&quot;, //操作来源
&quot;isAutoComplete&quot;:0, //是否自动校验流程完结并存证
&quot;validateType&quot;: 0, //意愿认证类型, 0-验证码校验 1-签署密码
&quot;code&quot;:&quot;7712&quot;, //验证码或签署密码
&quot;docSignInfoList&quot;:[{
&quot;flowDocId&quot;:&quot;db906aa3-00bb-4adb-be52-09fd46c8a4af&quot;,
&quot;posArray&quot;:[{
&quot;sealId&quot;:&quot;33867baa-ce64-4a6e-80ca-eb419adf26dc&quot;,
&quot;posX&quot;:50, //签署位置横坐标
&quot;posY&quot;:50, //签署位置纵坐标
&quot;posPage&quot;:1, //文档的签署页码
&quot;signType&quot;: 0, //签章类型
}]
}]
}</code></pre>
<table>
<thead>
<tr>
<th style="text-align: left;">参数名</th>
<th style="text-align: left;">必选</th>
<th style="text-align: left;">类型</th>
<th>说明</th>
</tr>
</thead>
<tbody>
<tr>
<td style="text-align: left;">participantId</td>
<td style="text-align: left;">是</td>
<td style="text-align: left;">String</td>
<td>签署流程参与人Id</td>
</tr>
<tr>
<td style="text-align: left;">accountUid</td>
<td style="text-align: left;">否</td>
<td style="text-align: left;">String</td>
<td>当前用户的accountUid, 标准签中可以不传,默认为当前登录账号的accountUid</td>
</tr>
<tr>
<td style="text-align: left;">isAutoComplete</td>
<td style="text-align: left;">否</td>
<td style="text-align: left;">int</td>
<td>是否自动完结,默认1</td>
</tr>
<tr>
<td style="text-align: left;">validateType</td>
<td style="text-align: left;">是</td>
<td style="text-align: left;">int</td>
<td>意愿认证类型, 0-验证码校验 1-签署密码</td>
</tr>
<tr>
<td style="text-align: left;">docSignInfoList</td>
<td style="text-align: left;">是</td>
<td style="text-align: left;">List</td>
<td>包含文档Id: flowDocId 以及签署位置及印章信息</td>
</tr>
<tr>
<td style="text-align: left;">code</td>
<td style="text-align: left;">是</td>
<td style="text-align: left;">String</td>
<td>验证码</td>
</tr>
<tr>
<td style="text-align: left;">source</td>
<td style="text-align: left;">是</td>
<td style="text-align: left;">String</td>
<td>请求来源,例如:’dingding’ , ’esign’ , ’esign_h5’ , ’alipay’</td>
</tr>
</tbody>
</table>
<ul>
<li>返回参数说明</li>
</ul>
<pre><code>{
&quot;success&quot;: true,
&quot;msg&quot;: &quot;成功&quot;,
&quot;total&quot;: null,
&quot;errCode&quot;: 0,
&quot;errShow&quot;: false,
&quot;data&quot;: {
&quot;docList&quot;: [
{
&quot;flowDocId&quot;: &quot;b2bd5188-2b11-40c5-8fff-a8fd4bfd05fb&quot;,
&quot;userFileId&quot;: &quot;f5c412ab-55a5-43a4-be38-c88f3f58831c&quot;,
&quot;flowDocName&quot;: &quot;概要设计说明书模板.docx&quot;,
&quot;posList&quot;: null,
&quot;ossKey&quot;: &quot;web/761ff5b1-4fdc-4036-8cda-4deae51d33ae.pdf&quot;,
&quot;url&quot;: &quot;https://esignoss.oss-cn-hangzhou.aliyuncs.com/web/761ff5b1-4fdc-4036-8cda-4deae51d33ae.pdf?Expires=1505944747&amp;OSSAccessKeyId=FBzUaPMorqiiUAfb&amp;Signature=unLiXfk6G4RfMjcf1vrGm%2B5JDrA%3D&quot;,
&quot;reviewUrl&quot;: &quot;https://esignoss.oss-cn-hangzhou.aliyuncs.com/pdf2Image/RPbPoGA_mg83PCdiC52jnnQxN9K3mbSiw0fIlio2nik%3D_5_1_50?Expires=1505912667&amp;OSSAccessKeyId=FBzUaPMorqiiUAfb&amp;Signature=frekki3IYqml0ILN8ij7tpzkqUs%3D&quot;,
&quot;page&quot;: 5
}
]
}
}</code></pre>
<p><strong>返回参数</strong></p>
<table>
<thead>
<tr>
<th style="text-align: left;">参数名</th>
<th style="text-align: left;">类型</th>
<th>说明</th>
</tr>
</thead>
<tbody>
<tr>
<td style="text-align: left;">flowDocId</td>
<td style="text-align: left;">String</td>
<td>签署流程文档ID</td>
</tr>
<tr>
<td style="text-align: left;">userFileId</td>
<td style="text-align: left;">String</td>
<td>用户文件Id</td>
</tr>
<tr>
<td style="text-align: left;">flowDocName</td>
<td style="text-align: left;">String</td>
<td>文件名称</td>
</tr>
<tr>
<td style="text-align: left;">posList</td>
<td style="text-align: left;">List</td>
<td>指定位置信息</td>
</tr>
<tr>
<td style="text-align: left;">ossKey</td>
<td style="text-align: left;">String</td>
<td>文件的ossKey</td>
</tr>
<tr>
<td style="text-align: left;">url</td>
<td style="text-align: left;">String</td>
<td>文件的下载地址</td>
</tr>
<tr>
<td style="text-align: left;">reviewUrl</td>
<td style="text-align: left;">String</td>
<td>文件首页预览地址</td>
</tr>
<tr>
<td style="text-align: left;">page</td>
<td style="text-align: left;">int</td>
<td>文件页数</td>
</tr>
</tbody>
</table>
<ul>
<li>流程图</li>
</ul>
<p><img src="https://i.imgur.com/p4laxlq.png" alt="" /></p>
<h3>1.5.10. 批量移动文档到指定文件夹</h3>
<ul>
<li>
<p>概述 </p>
<p>批量移动文档到指定文件夹</p>
</li>
<li>
<p>请求uri </p>
<p>/rest/v1/signflow/moveTo</p>
</li>
<li>
<p>请求方式</p>
<p>POST application/json</p>
</li>
<li>请求参数说明</li>
</ul>
<pre><code>
{
&quot;userFolderId&quot;:&quot;d27bb400-5610-4dd5-9899-d48c804a319e&quot;,
&quot;participantList&quot;:[&quot;xxxxx&quot;,&quot;xxxxxx&quot;],
&quot;source&quot;:&quot;esign&quot;
}</code></pre>
<table>
<thead>
<tr>
<th style="text-align: center;">参数名称</th>
<th style="text-align: center;">参数类型</th>
<th style="text-align: center;">是否必须</th>
<th style="text-align: left;">参数说明</th>
</tr>
</thead>
<tbody>
<tr>
<td style="text-align: center;">userFolderId</td>
<td style="text-align: center;">String</td>
<td style="text-align: center;">是</td>
<td style="text-align: left;">用户文件夹Id</td>
</tr>
<tr>
<td style="text-align: center;">participantId</td>
<td style="text-align: center;">String</td>
<td style="text-align: center;">否</td>
<td style="text-align: left;">需移动的参与人记录Id, participantId和participantList至少一个不能为空</td>
</tr>
<tr>
<td style="text-align: center;">participantList</td>
<td style="text-align: center;">List<String></td>
<td style="text-align: center;">否</td>
<td style="text-align: left;">需移动的参与人记录列表, participantId和participantList至少一个不能为空</td>
</tr>
<tr>
<td style="text-align: center;">source</td>
<td style="text-align: center;">string</td>
<td style="text-align: center;">是</td>
<td style="text-align: left;">操作来源</td>
</tr>
</tbody>
</table>
<ul>
<li>
<p>返回参数说明</p>
<p>返回成功或失败</p>
</li>
<li>流程图</li>
</ul>
<p><img src="https://i.imgur.com/xLfSSJ2.png" alt="" /></p>
<h3>1.5.11. 批量从指定文件夹移出文档</h3>
<ul>
<li>
<p>概述 </p>
<p>批量从指定文件夹移出文档</p>
</li>
<li>
<p>请求uri </p>
<p>/rest/v1/signflow/moveOut</p>
</li>
<li>
<p>请求方式</p>
<p>POST application/json</p>
</li>
<li>请求参数说明</li>
</ul>
<pre><code>
{
&quot;userFolderId&quot;:&quot;d27bb400-5610-4dd5-9899-d48c804a319e&quot;,
&quot;participantList&quot;:[&quot;xxxxx&quot;,&quot;xxxxxx&quot;],
&quot;source&quot;:&quot;esign&quot;
}</code></pre>
<table>
<thead>
<tr>
<th style="text-align: center;">参数名称</th>
<th style="text-align: center;">参数类型</th>
<th style="text-align: center;">是否必须</th>
<th style="text-align: left;">参数说明</th>
</tr>
</thead>
<tbody>
<tr>
<td style="text-align: center;">userFolderId</td>
<td style="text-align: center;">String</td>
<td style="text-align: center;">是</td>
<td style="text-align: left;">用户文件夹Id</td>
</tr>
<tr>
<td style="text-align: center;">participantId</td>
<td style="text-align: center;">String</td>
<td style="text-align: center;">否</td>
<td style="text-align: left;">需移出的参与人记录Id, participantId和participantList至少一个不能为空</td>
</tr>
<tr>
<td style="text-align: center;">participantList</td>
<td style="text-align: center;">List<String></td>
<td style="text-align: center;">否</td>
<td style="text-align: left;">需移出的参与人记录列表, participantId和participantList至少一个不能为空</td>
</tr>
<tr>
<td style="text-align: center;">source</td>
<td style="text-align: center;">string</td>
<td style="text-align: center;">是</td>
<td style="text-align: left;">操作来源</td>
</tr>
</tbody>
</table>
<ul>
<li>
<p>返回参数说明</p>
<p>返回成功或失败</p>
</li>
</ul>