package com.yunfeiyun.agmp.fms.service;

import com.alibaba.fastjson2.JSONObject;
import com.yunfeiyun.agmp.fms.domain.TssTracecodeapply;
import com.yunfeiyun.agmp.fms.domain.reqvo.SelectCountOfScreenReqVo;
import com.yunfeiyun.agmp.fms.domain.reqvo.TssTracecodeapplyReqVo;
import com.yunfeiyun.agmp.fms.domain.resvo.TssTraceCodeApplyResVo;
import com.yunfeiyun.agmp.fms.domain.resvo.TssTracecodeapplyManagerListResVo;

import java.util.List;


/**
 * 溯源码生成单Service接口
 * 
 * @author 杨晓辉
 * @date 2023-07-04
 */
public interface ITssTracecodeapplyService 
{
    /**
     * 查询溯源码生成单
     * 
     * @param tarcecodeapplyId 溯源码生成单主键
     * @return 溯源码生成单
     */
    public TssTracecodeapply selectTssTracecodeapplyByTarcecodeapplyId(String tarcecodeapplyId);

    /**
     * 查询溯源码生成单列表
     * 
     * @param tssTracecodeapply 溯源码生成单
     * @return 溯源码生成单集合
     */
    public List<TssTracecodeapply> selectTssTracecodeapplyList(TssTracecodeapply tssTracecodeapply);

    /**
     *  查询溯源码数量
     * @param reqVo
     * @return
     */
    public Integer selectCountOfTssTracecodeapply(SelectCountOfScreenReqVo reqVo);

    /**
     * 新增溯源码生成单
     * 
     * @param tssTracecodeapply 溯源码生成单
     * @return 结果
     */
    public int insertTssTracecodeapply(TssTracecodeapply tssTracecodeapply);

    /**
     * 修改溯源码生成单
     * 
     * @param tssTracecodeapply 溯源码生成单
     * @return 结果
     */
    public int updateTssTracecodeapply(TssTracecodeapply tssTracecodeapply);

    /**
     * 批量删除溯源码生成单
     * 
     * @param tarcecodeapplyIds 需要删除的溯源码生成单主键集合
     * @return 结果
     */
    public int deleteTssTracecodeapplyByTarcecodeapplyIds(String[] tarcecodeapplyIds);

    /**
     * 删除溯源码生成单信息
     * 
     * @param tarcecodeapplyId 溯源码生成单主键
     * @return 结果
     */
    public int deleteTssTracecodeapplyByTarcecodeapplyId(String tarcecodeapplyId);

    public List<TssTracecodeapplyManagerListResVo> selectTssTracecodeapplyManagerListResVoList(TssTracecodeapplyReqVo tssTracecodeapply);
    public List<TssTraceCodeApplyResVo> selectTssTraceCodeApplyResVoList(TssTracecodeapply tssTracecodeapply);

    public JSONObject appQuerySource(String tarcecodeapplyno);

    public JSONObject appQuerySourceInfo(String tarcecodeapplyno,String tssSourceperiodId);
}
