package com.muchinfo.mtp3century.service;

import com.muchinfo.mtp3century.utils.AjaxResult;
import com.muchinfo.mtp3common.vo.PageResult;
import com.muchinfo.mtp3pojos.vo.common.OrganSelectResult;
import com.muchinfo.mtp3pojos.vo.organ.UserAccountReqParam;
import com.muchinfo.mtp3pojos.vo.organ.UserAccountRspResult;
import com.muchinfo.mtp3pojos.vo.organ.son.*;

import javax.servlet.http.HttpServletRequest;

public interface IOrganSonService {

    PageResult<UserAccountRspResult> querySon(UserAccountReqParam param, HttpServletRequest request);

    AjaxResult<UserAccountRspResult> getAreaAndAllChilds(HttpServletRequest request,Long areauserid);

    AjaxResult<OrganSonDetailResult> viewson(Long areaid, Integer modifystatus, HttpServletRequest request);

    AjaxResult rebackChange(Long areaid, HttpServletRequest request);

    AjaxResult delete(Long areaid, HttpServletRequest request);

    AjaxResult recover(Long areaid, HttpServletRequest request);

    AjaxResult addsonorgan(OrganAddSonOrganParam param, HttpServletRequest request);

    AjaxResult editsonorgan(OrganAddSonOrganParam param, HttpServletRequest request) throws Exception;

    AjaxResult edit(OrganAddSonOrganParam current, HttpServletRequest request);

    PageResult<UserAccountRspResult> queryaudit(UserAccountReqParam param, HttpServletRequest request);

    AjaxResult auditorganson(Long userid, Long auditflag, String msg, HttpServletRequest request);

    PageResult<UserAccountRspResult> queryOrganSonModify(UserAccountReqParam param, HttpServletRequest request);

    PageResult<OrganSonTransferResult> queryOrganSonTransfer(OrganSonTransferParam param, HttpServletRequest request);

    AjaxResult executeTransfer(HttpServletRequest request);

    AjaxResult backtranfor(Long autoid, HttpServletRequest request);

    AjaxResult<OrganSelectResult> querySonOrganPageByLevel(Integer subarealevel, String searchcode, HttpServletRequest request);

    AjaxResult organSonTransferAdd(OrganSonTransferAddParam vo, HttpServletRequest request);
}
