/**
 * 上报业务对象
 */
import {BusinessDoc} from "./businessDoc.domain";
import { ReportDatas } from './reportDatas.domain';
import {BusinessImportantList} from "./businessImportantList.domain";
import {BusinessRunRecordList} from "./businessRunRecordList.domain";
import { FillInTheTarget } from './fillInTheTarget.domain';

export class ReportBusinessData extends BusinessDoc {
    ReportName: string; // 上报名称
    FillInItemInstanceId: string; // 填报项实例标识
    ReportDatas: ReportDatas; // 上报数据
    State: number; // 提交状态(1：待填/2：已填/3:草稿)
    ReportTime: string; // 上报时间
    ReportMan: string; // 上报人（nickName）
    FillInTheTarget: FillInTheTarget; // 上报单位
    TaskId: string; // 任务id
    UserPhone: string;//联系电话
    UserArea: string; // 区域
    Usertag: string; // 标签


    constructor(options: {
        BusCode?: string;
        CreateTime?: Date | string;
        OperUserId?: string;
        WorkID?: string;
        Status?: number;
        BusinessType?: number;
        EndTime?: Date | string;
        OverdueDay?: number;
        OverdueTime?: Date | string;
        ImportantDocs?: BusinessImportantList;
        BusinessDocRunRecords?: BusinessRunRecordList;
        Remark?: string;
        ReportName?: string;
        FillInItemInstanceId?: string;
        ReportDatas?: ReportDatas;
        State?: number;
        ReportTime?: string;
        ReportMan?: string;
        FillInTheTarget?: FillInTheTarget;
        TaskId?: string;
        UserPhone?: string;
        UserArea?: string;
        Usertag?: string;
    } = {}) {
        super();
        this.ReportName = options.ReportName || '';
        this.FillInItemInstanceId = options.FillInItemInstanceId || '';
        this.ReportDatas = new ReportDatas(options.ReportDatas || {});
        this.State = !options.State ? 0 : Number.parseFloat(options.State.toString());
        this.ReportTime = options.ReportTime || new Date().toString();
        this.ReportMan = options.ReportMan || '';
        this.FillInTheTarget = new FillInTheTarget(options.FillInTheTarget || {});
        this.TaskId = options.TaskId || '';
        this.UserArea = options.UserArea || '';
        this.Usertag = options.Usertag || '';
        this.UserPhone = options.UserPhone || '';
    }
}
