package com.jeeplus.business.workContractInfo.service.dto;

import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.extension.handlers.JacksonTypeHandler;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.jeeplus.business.workClientInfo.domain.JyWorkClientLinkman;
import com.jeeplus.business.workContractInfo.domain.JyContractParticipant;
import com.jeeplus.core.service.dto.BaseDTO;
import com.jeeplus.sys.domain.WorkAttachmentInfo;
import lombok.Data;

import java.io.Serializable;
import java.lang.reflect.Array;
import java.util.Date;
import java.util.List;
import java.util.Map;

@Data
public class JyWorkContractInfoDto extends BaseDTO implements Serializable {

    //合同编号-其他（字典值）
    public static final String BIZ_CODE1 = "35";

    //合同编号-水土保持（字典值）
    public static final String BIZ_CODE2 = "34";

    //合同编号-环境影响评价（字典值）
    public static final String BIZ_CODE3 = "33";

    //合同编号-环境监测（字典值）
    public static final String BIZ_CODE4 = "32";

    /**
     * 客户id
     */
    private String customerId;

    /**
     * 客户名称
     */
    private String clientName;

    /**
     * 客户编号
     */
    private String clientNo;

    /**
     * 合同编号
     */
    private String no;

    /**
     * 合同名称
     */
    private String contractName;

    /**
     * 签订日期
     */
    @JsonFormat(pattern = "yyyy-MM-dd")
    private Date contractDate;

    /**
     * 合同生效日期
     */
    @JsonFormat(pattern = "yyyy-MM-dd")
    private Date effectiveDate;

    /**
     * 合同终止日期
     */
    @JsonFormat(pattern = "yyyy-MM-dd")
    private Date closingDate;

    /**
     * 所属部门
     */
    private String department;

    /**
     * 合同类型(小类)
     */
    @TableField(typeHandler = JacksonTypeHandler.class)
    private List<List<String>> contractTypes;
    private List<String> contractTypeList;
    private String contractType;

    /**
     * 合同类型(大类)
     */
    private String contractTypeFirst;


    /**
     * 合同金额类别
     */
    private String contractAmountType;

    /**
     * 合同金额
     */
    private String contractAmount;

    /**
     * 对方合同编号
     */
    private String contractOpposite;

    /**
     * 收费标准
     */
    private String contractFee;

    private String fees;

    /**
     * 付款摘要
     */
    private String paymentDescribe;

    /**
     * 合同特别条款
     */
    private String contractSpecial;

    /**
     * 备注
     */
    private String remarks;

    /**
     * 状态
     */
    private String status;

    /**
     * 附件信息
     */
    private List<WorkAttachmentInfo> workAttachmentList;

    private String contractFileId;

    private String filedType;

    /**
     * 主委托方
     */
    private String primaryLinkman;

    /**
     * 主委托方信息
     */
    private List<JyWorkClientLinkman> linkmanList;

    /**
     * 委托方
     */
    private String linkman;

    private List<JyContractParticipant> cwWorkClientContactDTOList;

    /**
     * 盒号
     */
    private String filedNo;

    private String updateById;

    private String taskId;

}
