package com.zjrs.zwnw.sxgl.blo;

import org.mohrss.leaf.core.framework.domain.blo.IBLO;
import org.mohrss.leaf.core.framework.persistens.PageResult;
import com.zjrs.zwnw.sxgl.dto.*;

import java.util.List;
import java.util.Map;

public interface SxpzxxBLO extends IBLO {
    //查询事项列表
    public PageResult querySxList(SxpzxxQueryDTO dto, int page, int rows);

    //批量更新事项状态
    public Map<String, String> updateSxztByIds(SxpzxxQueryDTO dto);

    //获取事项详细信息
    public SxpzxxXsDTO getSxpzxxById(SxpzxxXsQueryDTO dto);

    //获取事项关联材料分页列表
    public PageResult getSxglclList(SxglclQueryDTO dto, int page, int rows);

    //获取事项未关联的材料分页list
    public PageResult getSxWglclList(SxWglclQueryDTO dto, int page, int rows);

    //批量关联材料
    public Map<String, String> addSxglclByIds(SxglclAddDTO dto);

    //批量删除关联材料
    public void deleteSxglclByIds(SxglclDeleteDTO dto);

    //更新事项关联材料
    public void updateSxglcl(SdszzcxxDTO dto);

    //获取事项流程环节分页list
    public PageResult getLchjList(SxgllcQueryDTO dto, int page, int rows);

    //更新事项详细信息
    public void updateSxpzxxById(SxpzxxXsUpdateDTO dto);

    //获取事项关联详细信息
    public SxglclListDTO getSxglcXx(SxglclXxQueryDTO dto);

    //下一步校验
    public Map<String, String> checkNext(CheckDTO dto);
    //根据事项编码前缀，找事项编码最大值
    public String getMaxSxbm(String sxbm);
    //更新事项编码
    public void updateSxbmById(SxpzxxLcpzQueryDTO dto);
    //判断流程是否走完
    public boolean checkProcessInstance(String id);
    //流程临时表是否存在
    public int checkLcTemp(String id);
    //根据事项ID取临时流程信息
    public PageResult getSxlcpzList(String id, int page, int rows);
    //流程正式表是否存在
    public int checkZslc(String id);

    //获取事项详细信息
    public SxpzxxLcpzDTO getSxpzxxLcpzById(SxpzxxLcpzQueryDTO dto);

    //初始化流程临时表
    public void initLcTemp(SxpzxxLcpzDTO dto);
    //转换流程到临时表
    public void changeLc2Temp(SxpzxxLcpzQueryDTO dto);

    //流程临时表是否存在科员受理环节
    public int checkLcExistKyls(String processdefid);
    //获取环节信息根据流程ID
    public SxpzxxLchjDTO getLchjxxByLcid(String processdefid);
    //新增科员受理环节
    public void addHjKysl(String processdefid);
    //保存环节
    public Map<String, String> saveHj(SxpzxxLcpzSaveHjDTO dto);

    //删除环节
    public void delHj(SxpzxxLcpzDelHjDTO dto);
    //环节设置列表
    public List<SxpzxxLcpzSetListDTO> getLcpzSetList(SxpzxxLcpzSetDTO dto);
    //保存环节设置列表
    public Map<String, String> saveSetHj(SxpzxxLcpzSetListSaveDTO dto);
    //确认流程
    public Map<String, String> confirmLcpz(SxpzxxLcpzConfirmDTO dto);
    //环节名称动态字典
    public List<HjmcDictDTO> getHjmcDict();
    //获取流程图信息
    public Map<String, List> getLcpzLct(SxpzxxLcpzGetLctDTO dto);
    //取事项配置流水号根据流程ID
    public String getRssxconfigIdByProcessdefid(String processdefid);

    //获取事项配置附件list
    public PageResult getSxpzxxFjybList(SxpzxxFjybQueryDTO dto, int page, int rows);
    //保存事项配置附件样表
    public Map<String, String> saveFjyb(SxpzxxFjybSaveDTO dto);
    //删除事项配置附件样表
    public void delFjybByIds(SxpzxxFjybDelDTO dto);
    //批量修改领导信息
    public void saveBatchLdxx(SxpzxxBatchUpdateLdxxDTO dto);
}
