package com.usky.oa.service;

import com.usky.common.core.bean.CommonPage;
import com.usky.oa.domain.OaApproval;
import com.usky.common.mybatis.core.CrudService;
import com.usky.oa.domain.OaDocument;
import com.usky.oa.service.vo.OaApprovalCountVO;
import org.springframework.stereotype.Service;

import java.util.List;

/**
 * <p>
 * 审批表 服务类
 * </p>
 *
 * @author fu
 * @since 2024-12-10
 */
public interface OaApprovalService extends CrudService<OaApproval> {

    /**
     * 审批统计
     * @return OaApprovalCountVO
     */
    OaApprovalCountVO approvalCount();

    /**
     * 审批列表
     * @param queryType 查询类型(1:待处理，2:已处理，3:我收到，4:我发起)
     * @param docNo 单据编号
     * @param formSign 单据类型(请假申请-QJD...按标识查询)
     * @param approvalStatus 审批状态(1：审批中，2：审批通过，3：审批不通过)
     * @param startTime 开始时间
     * @param endTime 结束时间
     * @param pageNum 页码
     * @param pageSize 页大小
     * @return CommonPage<OaApproval>
     */
    CommonPage<OaApproval> pageList(Integer queryType, String docNo, String formSign, Integer approvalStatus, String startTime, String endTime, Integer pageNum, Integer pageSize);

    /**
     * 审批
     * @param id 审批ID
     * @param approvalStatus 审批状态(1：审批中，2：审批通过，3：审批不通过)
     */
    void approve(Integer id, Integer approvalStatus, String opinion);

    String getFieldInfo(String docNo);

    // xml 流程解析测试
    // void analysisTest(Integer id);
}
