package org.jeecg.module.custom.ocr.api.entity;

import cn.hutool.core.date.DateTime;
import lombok.Data;
import org.apache.commons.lang.time.DateFormatUtils;

/**
 * 全量拉取时异步线程，回写对象
 * 包含执行情况
 * 拉取数量
 *
 * @author hugh(shuli.yao) 1397940314@qq.com
 * @version 1.0
 * @date 2024/5/17 15:56
 */
@Data
public class PictureSourceAllPullMsg {

    /**
     * 租户id
     */
    private Long tenantNo;

    /**
     * 业务主体id
     */
    private Long accountNo;

    /**
     * 当前执行页码
     */
    private Integer page = 0;

    /**
     * 当前拉取日期
     */
    private String timeStr;


    /**
     * 当前日期任务总数
     */
    private int timeTaskCount = 0;

    /**
     * 已拉取任务总数
     */
    private int pullTaskCount = 0;

    /**
     * 拉取开始日期
     */
    private DateTime beginDateTime;

    /**
     * 拉取截止日期
     */
    private DateTime endDateTime;


    /**
     * 执行锁，防止重复执行全量拉取任务。
     */
    private boolean lock = false;

    /**
     * 获取执行消息
     * @return
     */
    public String getMsg() {
        StringBuffer stringBuffer = new StringBuffer();
        stringBuffer.append("任务执行中...");
        stringBuffer.append(", 租户:"+this.tenantNo);
        stringBuffer.append(", 业务主体:"+this.accountNo);
        stringBuffer.append(", 开始时间:"+DateFormatUtils.format(this.beginDateTime,"yyyy-MM-dd"));
        stringBuffer.append(", 结束时间:"+DateFormatUtils.format(this.endDateTime,"yyyy-MM-dd"));
        stringBuffer.append(", 已拉取任务数:"+this.pullTaskCount);
        stringBuffer.append(", 当前拉取时间:"+this.timeStr);
        stringBuffer.append(", 页码:"+this.page+" 每页200条");
        stringBuffer.append(", 当前拉取时间任务总数: "+this.timeTaskCount);
        return stringBuffer.toString();
    }


    /**
     * 重置参数
     * @return
     */
    public boolean reset(){
        this.tenantNo = null;
        this.accountNo = null;
        this.beginDateTime = null;
        this.endDateTime = null;
        this.pullTaskCount = 0;
        this.timeStr = null;
        this.page = null;
        this.timeTaskCount = 0;
        this.lock = false;
        return true;
    }

}
