BpmDefService.java 3.49 KB
package com.hotent.bpmModel.manager;


import com.hotent.base.model.CommonResult;
import com.hotent.base.model.ImportCheckResult;
import com.hotent.base.query.PageList;
import com.hotent.base.query.QueryFilter;
import com.hotent.bpm.api.model.process.nodedef.ext.extmodel.Button;
import com.hotent.bpm.persistence.model.DefaultBpmDefinition;
import com.hotent.bpmModel.params.DefBoSetVo;
import com.hotent.bpmModel.params.DefPropSaveVo;
import com.hotent.bpmModel.params.DefaultBpmDefinitionVo;
import org.springframework.web.multipart.MultipartHttpServletRequest;

import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
import java.util.List;
import java.util.Map;
import java.util.Optional;

/**
 * 描述:流程定义管理接口
 */
public interface BpmDefService {
    /**
     * flex流程设计器保存
     * @param bpmDefinitionVo
     * @return
     */
    CommonResult<String> flexDefSave(DefaultBpmDefinitionVo bpmDefinitionVo);

    /**
     * 绑定指定表单的流程定义列表(分页条件查询)数据
     * @param boCode
     * @param formKey
     * @param queryFilter
     * @return
     */
    PageList<DefaultBpmDefinition> formDeflist(String boCode, String formKey, QueryFilter<DefaultBpmDefinition> queryFilter);

    /**
     * 保存流程定义
     * @param bpmVo
     * @return
     */
    Object save(DefaultBpmDefinitionVo bpmVo);

    /**
     * 保存流程设置的BO设置
     * @param defBoSetVo
     * @return
     */
    CommonResult<String> saveSetBos(DefBoSetVo defBoSetVo) throws Exception;

    /**
     * 保存代理信息
     * @param typeId
     * @param word
     */
    void getFlowListByTypeId(String typeId, String word,HttpServletResponse response) throws IOException;

    /**
     * 流程在线设计,根据defId获取流程对应的详细信息
     * @param defId
     * @param response
     */
    void flexGet(String defId, HttpServletResponse response) throws IOException;

    /**
     * 获取流程其他属性的参数
     * @param defId
     * @return
     */
    Map<String, Object> getOtherParam(String defId);

    /**
     * 获取流程其他属性的参数
     * @param defPropVo
     * @return
     */
    CommonResult<String> saveProp(DefPropSaveVo defPropVo);

    /**
     * 展示流程节点BO设置
     * @param defId
     * @param topDefKey
     * @return
     */
    Object nodeBos(String defId, String topDefKey) throws Exception;

    /**
     * 流程导入前校验,通过校验则直接导入,如有重复流程,则返回流程xml的缓存key,待用户确认覆盖后再次导入
     * @param request
     * @param response
     * @return
     */
    Object importCheck(MultipartHttpServletRequest request, HttpServletResponse response, Optional<String> typeId) throws Exception ;
    
    

    /**
     * 得到某个节点自定义按钮
     * @param defId
     * @param nodeId
     * @param action
     * @return
     * @throws Exception
     */
    List<Button> getNodeSet(String defId, String nodeId, int action) throws Exception;

    /**
     * 初始化所有按钮
     * @param defId
     * @param nodeId
     * @return
     */
    CommonResult<String> initNodeBtn(String defId, String nodeId);

    /**
     * 检测bo是否已绑定流程
     * @param boCode
     * @param formKey
     * @return
     */
    CommonResult<Boolean> isBoBindFlowCheck(String boCode, String formKey);

    DefaultBpmDefinition getDefDesignByDefId(String defId);

    List<ImportCheckResult> importFlowCheck(Map<String, Object> param) throws Exception;
}