package com.chinaweal.aiccs.aiccs.inspect.service;

import com.chinaweal.aiccs.aiccs.inspect.entity.TSWorkNo;
import com.chinaweal.youfool.framework.springboot.mybatis.plus.BaseService;

import java.util.List;
import java.util.Map;

/**
 * <p>
 * 系统当前已使用监管文书流水号 服务类
 * </p>
 *
 * @author <a href="https://blog.lroyia.top">lroyia</a>
 * @since 2021-01-25
 */
public interface TSWorkNoService extends BaseService<TSWorkNo> {

    /**
     * 这种方式 文号当前索引号码将被 按文号类型和机构编号单条更新
     * workNoType 文号类型
     * @param workNoType
     * @param aicID
     * @return 文号
     */
    String getOperatingWrirsno(String workNoType,String aicID);

    List<String> getOperatingWrirsnoBatch(String workNoType, String aicID, int number);

    /**
     * 目前主要是针对检查表编号获取CourrentNo
     * <b>不更新编号</b>
     * @param workNoType
     * @param aicID
     * @return
     */
    String getOperatingWrirsNoCourrentNo(String workNoType,String aicID);

    /**
     * 获取文书号，且指定数量增长流水号(批吊业务)
     * workNoType 文号类型
     * @param workNoType
     * @param aicID
     * @return 文号,起始流水号
     */
    Map<String,Object> getBatchWrirsno(String workNoType, String aicID, int num);

    /**
     * 跟据数值，更新文书号的流水号
     * @param writsNo 文书号
     * @param num     要替换的新数值
     * @return
     */
    String updateWritsNo(String writsNo,int num);

    /**
     * 生成严重违法列入文书号
     * @param decorg 列入决定机关
     */
    String generateSeriousIncludeDocNo(String decorg);

    /**
     * 生成严重违法拟列入文书号
     * @param decorg 列入决定机关
     */
    String forIllOperatingBnNo(String decorg);

    String getWriteNo(String workNoType,String aicID, String currentNo);

    TSWorkNo selectTSWorkNoListByTypeComment(TSWorkNo tsWorkNoModel);

    /**
     * 通用的获取文书号方法
     * @param workNoType
     * @param decorg
     * @return
     */
    String getWritsNoCurrency(String workNoType, String decorg);

    /**
     * 通用生成文书号
     *
     * @param worknotype 文书号类型
     * @param areaCode   地区编码
     * @return docNo     文书号
     */
    String generateDocNo(String worknotype, String areaCode);

}
