package com.hotent.enterpriseDeclare.manager;

import com.hotent.base.manager.BaseManager;
import com.hotent.enterpriseDeclare.model.CostSurveyTemplateUploadData;
import com.hotent.project.req.ComprehensiveStatisticsReq;
import com.hotent.project.vo.CostSurveysVo;

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

/**
 * 成本调查表模板上传数据表 服务类
 *
 * @company 山西清众科技股份有限公司
 * @author 超级管理员
 * @since 2025-01-XX
 */
public interface CostSurveyTemplateUploadDataManager extends BaseManager<CostSurveyTemplateUploadData> {
    
    /**
     * 根据主键获取详情
     * @param id
     * @return
     */
    CostSurveyTemplateUploadData getDetail(String id);
    
    /**
     * 新建、更新数据
     * @param costSurveyTemplateUploadData
     */
    void createOrUpdate(CostSurveyTemplateUploadData costSurveyTemplateUploadData);
    
    /**
     * 根据上传记录ID查询数据列表
     * @param uploadId 上传记录ID
     * @return 数据列表
     */
    List<CostSurveyTemplateUploadData> listByUploadId(String uploadId);
    
    /**
     * 根据上传记录ID和企业ID查询数据列表
     * @param uploadId 上传记录ID
     * @return 数据列表
     */
    List<CostSurveyTemplateUploadData> listByUploadIdAndAuditedUnitId(String uploadId, String periodRecordId);
    
    /**
     * 根据行数据ID查询数据列表
     * @param rowid 行数据ID
     * @return 数据列表
     */
    List<CostSurveyTemplateUploadData> listByRowid(String rowid);
    
    /**
     * 保存数据（直接使用实体类列表，实体类中包含uploadId和auditedUnitId）
     * @param dataList 数据列表（实体类列表）
     */
    void saveData(List<CostSurveyTemplateUploadData> dataList);
    


    
    /**
     * 根据上传记录ID删除数据
     * @param uploadId 上传记录ID
     */
    void deleteByUploadId(String uploadId);

    List<CostSurveysVo> analyze(List<String> taskIds);
}

