package com.dgtly.wxportal.service;

import com.dgtly.wxportal.domain.OrderFile;

import java.io.IOException;

/**
 * @description:签署服务API
 * @author:qxm
 * @date:2020/10/13 10:29
 */
public interface IEsignSignService {

    public String oneStepFlowempowerByAuth(String businessScene, String fileId,float posX,float posY, String fileName, String signerAccountId, String authorizedAccountId,String redirectUrl);
    /**
     * @description: 司机授权书
     * @param: [businessScene, fileId, posX, posY, posX2, posY2, fileName, signerAccountId, authorizedAccountId, redirectUrl]
     * @return: java.lang.String
     * @author: njs     
     * @date: 2023/3/1 10:32
     */
    public String oneStepFlowDriver(String businessScene, String fileId,float posX,float posY,float posX2,float posY2, String fileName, String signerAccountId, String authorizedAccountId,String redirectUrl);
    /**
     * @description: 一步发起签署
     * @param: [accountId]
     * @return: java.lang.String
     * @author: qxm
     * @date: 2020/10/12 16:05
     */
    public String oneStepFlow(String businessScene, String fileId,float posX,float posY,String fileName, String signerAccountId, String authorizedAccountId,String redirectUrl);

    /**
     * @description: 开启签署流程
     * @param: [flowId]
     * @return: java.lang.String
     * @author: qxm
     * @date: 2020/10/12 16:05
     */
    public String processStart(String flowId);

    /**
     * @description: 设置静默签署
     * @param: [accountId]
     * @return: java.lang.String
     * @author: qxm
     * @date: 2020/10/12 16:05
     */
    public String signAuth(String accountId);

    /**
     * @description: 查询签署人列表
     * @param: [flowId]
     * @return: java.lang.String
     * @author: qxm
     * @date: 2020/10/12 16:05
     */
    public String processExecuteSigners(String flowId);

    /**
     * @description: 获取签署地址
     * @param: [flowId，accountId]
     * @return: java.lang.String
     * @author: qxm
     * @date: 2020/10/12 16:05
     */
    public String processExecuteUrl(String flowId,String accountId,String organizeId);

    /**
     * @description: 流程归档
     * @param: [flowId]
     * @return: java.lang.String
     * @author: qxm
     * @date: 2020/10/12 16:05
     */
    public String processArchiv(String flowId);

    /**
     * @description: 文件下载
     * @param: [flowId]
     * @return: java.lang.String
     * @author: qxm
     * @date: 2020/10/12 16:05
     */
    public String processDocumentDownload(String flowId);

    void callbackNotice(OrderFile orderFlag);

    void saveFile(String flowId, OrderFile orderFlag) throws IOException;

    void tmsCertificate(String orders,String certificateUrl) throws IOException;

}
