package com.engine.htxc.contract.service;

import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject;
import com.engine.htxc.contract.dto.ContractProcessDTO;
import com.engine.htxc.contract.dto.ProcessInfoDTO;
import com.engine.htxc.contract.entity.CghtMainEntity;
import weaver.hrm.User;

import java.util.Map;

/**
 * @author K1810015
 * @version 1.0.0
 * @ClassName ContractService.java
 * @createTime 2022年07月01日 09:59:00
 */
public interface ContractService {

    /**
     * <p>备份出一个新的附件</p>
     * @title getfileinfo
     * @author K1810015
     * @updateTime 2022/9/5 10:51
     */
    public JSONArray getfileinfo(User user,Map<String, Object> map);

    /**
     * <p>获取附件的详细细信息</p>
     * @title getdocimagefileinfo
     * @author K1810015
     * @updateTime 2022/9/5 10:52
     */
    public JSONArray getdocimagefileinfo(User user,Map<String, Object> map);

    /**
     * <p>修改合同状态</p>
     * @title updateStatus
     * @author K1810015
     * @updateTime 2022/9/5 10:51
     */
    public boolean updateStatus(User user,Map<String,Object> map);

    public boolean updateContractenType(User user,Map<String,Object> map);

    /**
     * <p>合同建模发起流程取消关联</p>
     * @title unLinkMode
     * @author K1810015
     * @updateTime 2022/9/5 10:51
     */
    public String unLinkMode(User user,Map<String,Object> map);

    /**
     * <p>合同建模发起流程关联</p>
     * @title linkMode
     * @author K1810015
     * @updateTime 2022/9/5 10:50
     */
    public String linkMode(User user,Map<String,Object> map);

    /**
     * <p>分送节点人员下一步骤必填选项</p>
     * @title WorkflowNextJudge
     * @author K1810015
     * @updateTime 2022/8/26 14:37
     */
    public String workflowNextJudge(User user,Map<String,Object> map);

    public String guidePages(User user,Map<String,Object> map);

    /**
     * <p>根据获取合同建模里所有印章的名称</p>
     * @title todosealname
     * @author K1810015
     * @updateTime 2022/9/5 10:47
     */
    public String todosealname(User user,Map<String,Object> map);


    /**
     * 采购发起合同草稿
     * @param cghtMainEntity
     * @return
     */
    CghtMainEntity createCghtqc(CghtMainEntity cghtMainEntity);


    /**
     * 创建合同并发起合同流程
     * @param user 系统用户
     * @param contractProcessDTO 合同流程数据
     * @return
     */
    ProcessInfoDTO startContractProcess(User user, ContractProcessDTO contractProcessDTO);

    Map<String,Object> saveBankInfoToCounterparty(Map<String,Object> paramMap);

}
