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.abnormal.entity.EBaseinfo;
import com.chinaweal.aiccs.aiccs.business.entity.vo.XrTaskListVo;
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.aiccs.aiccs.force.entity.vo.XrForceDeregisterSpeVo;
import com.chinaweal.aicorg.model.AICUser;
import com.chinaweal.youfool.framework.springboot.base.query.BaseQuery;

import java.util.List;

/**
 * 拟强制注销/强制注销业务表 服务类
 *
 * @author zhouxy
 * @since 2025/9/26
 */
public interface IXrForceDeregisterSpeService extends IService<XrForceDeregisterSpe> {

    IPage<XrForceDeregisterSpeVo> listXrForceDeregisterSpe(BaseQuery<ForceDeregisterSpeQueryDto> query, AICUser user);

    IPage<EBaseinfo> baseinfoListByRegOrg(BaseQuery<ForceDeregisterSpeQueryDto> query, AICUser user);

    /**
     * 启动拟强制注销待办
     *
     * @param queryDto
     * @param user
     * @return
     */
    XrTaskListVo saveSpeAcceptList(ForceDeregisterSpeQueryDto queryDto, AICUser user);

    /**
     * 生成拟强制注销公告内容
     *
     * @param user
     * @param forceSaveDto
     * @return
     */
    String getForceDeregisterContent(AICUser user, ForceDeregisterSpeSaveDto forceSaveDto);

    void processControlSpe(ForceDeregisterSpeSaveDto forceSaveDto, AICUser user);

    /**
     * 启动强制注销待办
     *
     * @param queryDto
     * @param user
     * @return
     */
    XrTaskListVo saveForceAcceptList(ForceDeregisterSpeQueryDto queryDto, AICUser user);

    void processControlForce(ForceDeregisterSpeSaveDto forceSaveDto, AICUser user);

    //    Map<String, Object> fileParamExplainLr(MultipartFile file, String type, String bizseq, AICUser aicUser);
//
    IPage<XrForceDeregisterSpe> forceDeregisterPageByRegOrg(BaseQuery<ForceDeregisterSpeQueryDto> query, AICUser user);

    /**
     * 添加待办关联的强制注销市场主体
     *
     * @param bizSeqNo 业务号
     * @param pripIdList 要添加的主体ID列表
     * @param user 当前用户
     * @return 是否添加成功
     */
    boolean addForceDeregisterSpe(String bizSeqNo, List<String> pripIdList, AICUser user);

    /**
     * 删除待办关联的强制注销市场主体
     *
     * @param forceSpeId 业务表主键
     * @param user 当前用户
     * @return 是否删除成功
     */
    boolean deleteForceDeregisterSpe(String forceSpeId, AICUser user);

}
