package jnpf.personnels.service;

import com.baomidou.mybatisplus.extension.service.IService;
import jnpf.base.ActionResult;
import jnpf.base.vo.PageListVO;
import jnpf.model.cultivate.CultivatePage;
import jnpf.model.personnels.dto.apply.FtbPersonnelsApplyCreateDto;
import jnpf.model.personnels.dto.base.PersonnelsQueryDTO;
import jnpf.model.personnels.dto.regular.FtbPersonnelsForAppQueryDTO;
import jnpf.model.personnels.dto.regular.FtbPersonnelsSalaryAuditDto;
import jnpf.model.personnels.po.FtbPersonnelsPostApply;
import jnpf.model.personnels.vo.app.FtbPersonnelsBubbleCountVO;
import jnpf.model.personnels.vo.apply.FtbPersonnelsApplyVO;
import jnpf.model.personnels.vo.apply.FtbPersonnelsApplyWithPerVO;
import jnpf.permission.model.position.PositionInfoNewVO;

import java.util.List;

public interface FtbPersonnelsPostApplyService extends IService<FtbPersonnelsPostApply> {


    PageListVO<FtbPersonnelsApplyVO> getList(PersonnelsQueryDTO dto, CultivatePage page);

    String initiateAPromotionApplication(FtbPersonnelsApplyCreateDto createDto);

    FtbPersonnelsApplyWithPerVO viewPromotionApplications(String id, String number);

    void auditPromotionPostApplication(FtbPersonnelsSalaryAuditDto dto);

    PageListVO<FtbPersonnelsApplyVO> getListForApp(FtbPersonnelsForAppQueryDTO dto, CultivatePage page);

    List<PositionInfoNewVO> queryPostInfoByOrgAndUserId(String userId, String orgId);

    FtbPersonnelsBubbleCountVO getListCont(String flag);

    /**
     * 清除晋升数据
     * @param userIds
     */
    void clearPromotionData(List<String> userIds);

    ActionResult<Void> initiateAPromotionApplicationForOA(FtbPersonnelsApplyCreateDto createDto);


    ActionResult<Void> auditPromotionPostApplicationWithOA(FtbPersonnelsSalaryAuditDto dto);
}
