package digital.laboratory.platform.entrustment.service;

import com.baomidou.mybatisplus.extension.service.IService;
import digital.laboratory.platform.entrustment.entity.Identification;
import digital.laboratory.platform.entrustment.vo.IdentificationVO;

import java.util.List;

/**
 * 鉴定表,一个鉴定可能会有多个委托服务类
 *
 * @author Zhang Xiaolong created at  2022-07-15
 * @describe 鉴定表,一个鉴定可能会有多个委托 服务类
 */
public interface IdentificationService extends IService<Identification> {

	/**
	 * ## 鉴定编码
	 * 用于标识每一个鉴定。
	 * 有可能一个案件会有多次委托鉴定, 所以在案件编码后加4位作为顺序号。
	 *
	 * ```
	 * WT <案件编码后 22 位> <顺序号4位>
	 * 例如:
	 * WT 5201010400002020030002 0002
	 * 合计 28 位
	 * ```
	 * @param caseNo
	 * @return
	 */
	String getNewIdentificationNo();

	/**
	 * 根据 caseId 取 IdentificationVO 列表, 每个 Entrustment 一行
	 * @param caseId
	 * @return
	 */
	List<IdentificationVO> getIdentificationVOList(String caseId);

	/**
	 * 根据 caseId 取 Identification 列表, 供新建的补充委托选择老的 Identification(鉴定), 以使新建的委托作为老的鉴定的一部分
	 * @param caseId
	 * @return
	 */
	List<Identification> getIdentificationListByCaseId(String caseId);

}
