package digital.laboratory.platform.entrustment.service;

import com.baomidou.mybatisplus.extension.service.IService;
import digital.laboratory.platform.entrustment.entity.CaseEvent;
import digital.laboratory.platform.entrustment.entity.CaseEvidence;
import digital.laboratory.platform.othersys.vo.EntrustDataVo;

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

/**
 * 与案件相关的物证信息服务类
 *
 * @author Zhang Xiaolong created at  2022-03-22
 * @describe 与案件相关的物证信息服务类
 */
public interface CaseEvidenceService extends IService<CaseEvidence> {
	/**
	 * 用于标识某个案件的物证。
	 * 顺序号使用 6 位的原因, 是现勘系统的物证编码结构就是这样。有可能这 6 位编码中有不同的用途, 并不完全是顺序号。
	 * 但是我们不得而知。
	 * 如果该编码由我们系统自己生成, 则使用 6 位顺序号。
	 * ```
	 * W <案件编号后 22 位> <顺序号 6 位>
	 * 例如:
	 * W 5201010400002020030002 000001
	 * 合计 29 位
	 * ```
	 * 如果有现勘系统, 则使用现勘系统的物证编号。
	 * 如果有案事件系统, 则使用案事件系统的物证编号。
	 *
	 * 作为兼容性考虑, 如果案件编码不足 23 位, 取 除掉第 1 个字符之后的, 即去掉 "A" 字符剩下的
	 *
	 * @param caseNo
	 * @return
	 */
	String getNewEvidenceCode(String caseNo);

	long countByCaseId(String caseId);

	/**
	 * 同步禁毒数据平台上的分物证
	 *
	 * @return
	 */
	List<Map<String, String>> syncCaseEvidenceInfo(EntrustDataVo caseEventObj, CaseEvent caseId, Boolean isUpdate);
}
