package jnpf.model.workflow.dto;

import lombok.Data;
import lombok.ToString;

import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Arrays;
import java.util.Date;

/**
 * @Author huanglinpan
 * @Date 2024/11/1 13:55
 * @Version 1.0 （版本号）
 */

@Data
@ToString(callSuper = true)
public class AttendanceBaseForOa {

    private  String taskId;

    /** 是否审核通过 0.待审核  1.通过 2.未通过 3.撤回 */
    private Integer status;

    /** 流程任务主键 */
    private String fFlowtaskid;

    /** 流程id */
    private String fFlowid;

    /** 唯一id */
    private String uniqueId;

    /** 租户ID */
    private String tenantId;

    /** 流程标题 */
    private String flowTitle;

    /** 申请人员 */
    private String applyUser;

    /** 开始时间 */
    private Date startTime;

    /** 结束时间 */
    private Date endTime;

    /** 开始结束时间的数组 0开始  1结束*/
    private String[] time;

    /** 单位 :  1 :小时 2: 天  3.半天 */
    private Integer unit;


    public Date getStartTime() {
        if (time != null && time.length > 1) {
            if (null != unit && 3 == unit) {
                //半天时 time ['2024-1-1 上午','2024-1-1 下午']
                try {
                    return new SimpleDateFormat("yyyy-MM-dd").parse(time[0].split(" ")[0]);
                } catch (Exception e) {
                    throw new RuntimeException(e);
                }
            }
            //其他 time [1730390400000, 1730476800000]
            return new Date(Long.parseLong(time[0]));
        }
        return startTime;
    }

    public Date getEndTime() {
        if (time != null && time.length > 1) {
            if (null != unit && 3 == unit){
                //半天时 time ['2024-1-1 上午','2024-1-1 下午']
                try {
                    return new SimpleDateFormat("yyyy-MM-dd").parse(time[1].split(" ")[0]);
                } catch (Exception e) {
                    throw new RuntimeException(e);
                }
            }
            //其他 time [1730390400000, 1730476800000]
            return new Date(Long.parseLong(time[1]));
        }
        return endTime;
    }
}
