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.base.PersonnelsQueryDTO;
import jnpf.model.personnels.dto.regular.FtbPersonnelsForAppQueryDTO;
import jnpf.model.personnels.dto.regular.FtbPersonnelsRegularCreateDTO;
import jnpf.model.personnels.dto.regular.FtbPersonnelsSalaryAuditDto;
import jnpf.model.personnels.po.FtbPersonnelsRegularManagement;
import jnpf.model.personnels.vo.app.FtbPersonnelsBubbleCountVO;
import jnpf.model.personnels.vo.regular.FtbPersonnelsRegularInfoVO;
import jnpf.model.personnels.vo.regular.FtbPersonnelsRegularManagementVO;

import java.util.List;

public interface FtbPersonnelsRegularManagementService extends IService<FtbPersonnelsRegularManagement> {


    void cancellationOfApplicationForRectification(String id, String taskId);

    void regularizationApproval(FtbPersonnelsSalaryAuditDto auditDto);

    PageListVO<FtbPersonnelsRegularManagementVO> pageList(PersonnelsQueryDTO dto, CultivatePage page, Boolean export);

    String applyForRegularization(FtbPersonnelsRegularCreateDTO createDTO);

    FtbPersonnelsRegularInfoVO checkTheDetailsOfRegularizationApproval(String id);

    PageListVO<FtbPersonnelsRegularManagementVO> pageForAppList(FtbPersonnelsForAppQueryDTO dto, CultivatePage page);

    FtbPersonnelsBubbleCountVO getListCont(String flag);

    /**
     * 清除历史转正数据
     * @param userIds
     */
    void clearHistoricalConversionData(List<String> userIds);

    ActionResult<Void> applyForRegularizationForOA(FtbPersonnelsRegularCreateDTO createDTO);


    ActionResult<Void> regularizationApprovalForOA(FtbPersonnelsSalaryAuditDto auditDto);

    /**
     * 同步转正状态
     */
    void  syncRegularStatus(String tenantId);

    /**
     * 花名册导入批量转正
     */
    void applyForRegularizationBatch(List<FtbPersonnelsRegularCreateDTO> createDTO);
}
