package com.casic.missiles.service.system;

import com.alibaba.fastjson.JSONObject;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.casic.missiles.dto.ReturnDTO;
import com.casic.missiles.dto.system.FlowDeleteRequest;
import com.casic.missiles.dto.system.FlowListRequest;
import com.casic.missiles.dto.system.FlowProcDefDTO;
import com.casic.missiles.dto.system.FlowUpdateStateRequest;

import java.lang.reflect.InvocationTargetException;
import java.util.List;

/**
 * @Description:
 * @Author: wangpeng
 * @Date: 2022/12/12 18:07
 */
public interface IFlowDefService {
    ReturnDTO jsonToBpmn(JSONObject jsonObject) throws InvocationTargetException, IllegalAccessException;

    List<FlowProcDefDTO> listPage(Page<FlowProcDefDTO> page, FlowListRequest request);

    ReturnDTO update(JSONObject jsonObject) throws InvocationTargetException, IllegalAccessException;

    ReturnDTO<JSONObject> detail(String formId);

    ReturnDTO updateState(FlowUpdateStateRequest request);

    ReturnDTO delete(FlowDeleteRequest request);

    List<FlowProcDefDTO> list(FlowListRequest request);

    List<FlowProcDefDTO> listByIds(List<String> ids);
}
