/*
* Copyright (c) 京北方信息技术股份有限公司 Corporation 2022 . All rights reserved.
*
*/
package net.northking.cctp.executePlan.db.dao;

import net.northking.cctp.executePlan.db.entity.AtuPlanBatch;
import net.northking.cctp.executePlan.db.mapper.AtuPlanBatchMapper;
import net.northking.cctp.executePlan.dto.planBatch.AtuPlanBatchDetailDto;
import org.apache.ibatis.annotations.Param;
import org.springframework.stereotype.Repository;

import java.time.LocalDateTime;
import java.util.List;

/**
 * Mybatis数据库持久层（业务层）：计划执行批次表
 *
 * <p>文件内容由代码生成器产生，请不要手动修改！ <br>
 * createdate:  2022-12-07 17:41:08  <br>
 * @author:  maven-cctp-plugin  <br>
 * @since:  1.0 <br>
 */
@Repository
public interface AtuPlanBatchDao extends AtuPlanBatchMapper
{
    /**
     * 查询计划最大批次号计划
     * @return 结果集
     */
    List<AtuPlanBatch> queryPlanMaxBatchNumList(@Param("endTime") String endTime,
                                                @Param("fromIndex") int fromIndex,
                                                @Param("toIndex") int toIndex);

    List<AtuPlanBatch> queryBatchByPlan(String planId);

    /**
     * 根据id查询批次详情
     * @param batchId id
     * @return 详情
     */
    AtuPlanBatchDetailDto queryBatchDetailById(String batchId);

    /**
     * 统计计划批次总数-去重
     * @param endTime 结束时间
     * @return 结果
     */
    int countPlanMaxBatch(String endTime);

    /**
     * 判断批次是否完成
     * @param batchId 批次id
     * @return 结果
     */
    long countUnFinishById(String batchId);

    /**
     * 查询需要被删除的批次
     * @param localDateTime 时间参数
     * @return 批次集合
     */
    List<AtuPlanBatch> queryNeedClearBatch(@Param("localDateTime") LocalDateTime localDateTime);

    /**
     * 更新批次表附件清除字段
     * @param batchIds 批次Ids集合
     */
    void updateAttachmentClearStatusByIds(@Param("batchIds") List<String> batchIds);

    // ----      The End by Generator     ----//

}
