package com.chinaweal.aiccs.aiccs.force.service;

import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.service.IService;
import com.chinaweal.aiccs.aiccs.business.entity.dto.ApprovalFormDto;
import com.chinaweal.aiccs.aiccs.business.entity.vo.XrTaskListVo;
import com.chinaweal.aiccs.aiccs.force.entity.XrForceDeregisterRem;
import com.chinaweal.aiccs.aiccs.force.entity.XrForceDeregisterSpe;
import com.chinaweal.aiccs.aiccs.force.entity.querydto.ForceDeregisterSpeQueryDto;
import com.chinaweal.aiccs.aiccs.force.entity.querydto.ForceDeregisterSpeSaveDto;
import com.chinaweal.aicorg.model.AICUser;
import com.chinaweal.youfool.framework.springboot.base.query.BaseQuery;

/**
 * 终止强制注销业务表 服务类
 *
 * @author zhouxy
 * @since 2025/9/29
 */
public interface IXrForceDeregisterRemService extends IService<XrForceDeregisterRem> {

    IPage<XrForceDeregisterRem> listXrForceDeregisterRem(BaseQuery<ForceDeregisterSpeQueryDto> query, AICUser user);

    IPage<XrForceDeregisterSpe> forceSpePageByRegOrg(BaseQuery<ForceDeregisterSpeQueryDto> query, AICUser user);

    XrTaskListVo saveIvdAcceptList(ForceDeregisterSpeQueryDto queryDto, AICUser user);

    /**
     * 终止拟强制注销的流程控制
     *
     * @param forceSaveDto
     * @param user
     */
    void processControlRem(ForceDeregisterSpeSaveDto forceSaveDto, AICUser user);

    String generateDecisionContent(AICUser user,XrForceDeregisterRem xrForceDeregisterRem);

    /**
     * 恢复登记申请的流程控制
     *
     * @param forceSaveDto
     * @param user
     */
    void processControlRecovery(ForceDeregisterSpeSaveDto forceSaveDto, AICUser user);

    ApprovalFormDto getApprovalFormByBizSeqNo(String bizSeqNo, String forceRemId);

}
