package com.usky.oa.service;

import com.alibaba.fastjson.JSONObject;
import com.usky.common.core.bean.CommonPage;
import com.usky.oa.domain.OaDocument;
import com.usky.common.mybatis.core.CrudService;
import com.usky.oa.service.vo.OaApprovalCountVO;

import java.util.List;

/**
 * <p>
 * 单据总表 服务类
 * </p>
 *
 * @author fu
 * @since 2024-12-26
 */
public interface OaDocumentService extends CrudService<OaDocument> {

    /**
     * @description: 我的申请
     * @author: fyc
     * @email yuchuan.fu@chinausky.com
     * @date: 2024/12/31 13:17
     * @param: []
     * @return: java.util.List<com.usky.oa.domain.OaDocument>
     **/
    CommonPage<OaDocument> myApplication(String docNo, String type, Integer status, String startTime, String endTime, Integer pageNum, Integer pageSize);

    /**
     * @description: 单据详情
     * @author: fyc
     * @email yuchuan.fu@chinausky.com
     * @date: 2024/12/31 13:17
     * @param: []
     * @return: java.util.List<com.usky.oa.domain.OaDocument>
     **/
    Object documentDetails(String docNo);

    /**
     * @description: 删除单据
     * @author: fyc
     * @email yuchuan.fu@chinausky.com
     * @date: 2024/12/31 13:17
     * @param: []
     * @return: java.util.List<com.usky.oa.domain.OaDocument>
     **/
    void delDocument(String docNo);

    /**
     * @description: 新增单据
     * @author: fyc
     * @email yuchuan.fu@chinausky.com
     * @date: 2025/1/6 16:32
     * @param: [oaDocument]
     * @return: void
     **/
    void addDoc(JSONObject oaDocument);

    /**
     * @description: 修改单据
     * @author: fyc
     * @email yuchuan.fu@chinausky.com
     * @date: 2025/1/6 16:34
     * @param: [oaDocument]
     * @return: com.usky.oa.domain.OaDocument
     **/
    void updateDoc(JSONObject jsonDocument);

    /**
     * @description: 提交单据
     * @author: fyc
     * @email yuchuan.fu@chinausky.com
     * @date: 2025/1/6 16:34
     * @param: [docNo]
     * @return: void
     **/
    void submit(String docNo, Integer docStatus);
}
