/*
 * Copyright (c) 2023 codvision.com All Rights Reserved.
 */

package com.codvision.workflow.mapper;

import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.codvision.workflow.entity.WorkFlowData;
import com.codvision.workflow.entity.vo.WorkFlowDataVO;
import org.apache.ibatis.annotations.Param;

import java.util.Map;

/**
 * @author hxl
 */
public interface WorkFlowDataMapper extends BaseMapper<WorkFlowData> {

    /**
     * 分页通用查询
     * @param page 分页对象
     * @param paraMap 查询条件
     * @return 列表
     */
    IPage<WorkFlowDataVO> getPageResult(IPage<Map<String, Object>> page, @Param("query") Map<String, Object> paraMap);

    /**
     * 我发起的列表
     * @param page 分页对象
     * @param paraMap 查询条件
     * @return 列表
     */
    IPage<WorkFlowDataVO> myInitiatedList(IPage<Map<String, Object>> page, @Param("query") Map<String, Object> paraMap);

    /**
     * 我待办的列表
     * @param page 分页对象
     * @param paraMap 查询条件
     * @return 列表
     */
    IPage<WorkFlowDataVO> todoList(IPage<Map<String, Object>> page, @Param("query") Map<String, Object> paraMap);


    /**
     * 我已办的列表
     * @param page 分页对象
     * @param paraMap 查询条件
     * @return 列表
     */
    IPage<WorkFlowDataVO> finishedList(IPage<Map<String, Object>> page, @Param("query") Map<String, Object> paraMap);


    /**
     * 待签收列表
     * @param page 分页对象
     * @param paraMap 查询条件
     * @return 列表
     */
    IPage<WorkFlowDataVO> claimList(IPage<Map<String, Object>> page, @Param("query") Map<String, Object> paraMap);

    /**
     * 更新表单数据
     * @param instanceId 流程实例ID
     * @param jsonData 表单数据
     */
    void updateFormDataByInstanceId(@Param("instanceId") String instanceId, @Param("jsonData") String jsonData);

}
