package org.dromara.personnel.domain.vo;

import java.math.BigDecimal;
import java.util.Date;
import com.fasterxml.jackson.annotation.JsonFormat;
import org.dromara.personnel.domain.OpsCaigouPlan;
import cn.idev.excel.annotation.ExcelIgnoreUnannotated;
import cn.idev.excel.annotation.ExcelProperty;
import org.dromara.common.excel.annotation.ExcelDictFormat;
import org.dromara.common.excel.convert.ExcelDictConvert;
import io.github.linpeilie.annotations.AutoMapper;
import lombok.Data;
import org.dromara.personnel.domain.bo.OpsCaigouPlanChanpinBo;
import org.dromara.personnel.domain.bo.OpsCaigouPlanFilesBo;

import java.io.Serial;
import java.io.Serializable;
import java.util.Date;
import java.util.List;


/**
 * 运维-物资-采购计划单视图对象 ops_caigou_plan
 *
 * @author LionLi
 * @date 2025-09-24
 */
@Data
@ExcelIgnoreUnannotated
@AutoMapper(target = OpsCaigouPlan.class)
public class OpsCaigouPlanVo implements Serializable {

    @Serial
    private static final long serialVersionUID = 1L;

    /**
     * id
     */
    @ExcelProperty(value = "id")
    private Long id;

    /**
     * 项目id
     */
    @ExcelProperty(value = "项目id")
    private Long projectId;

    /**
     * 计划名称
     */
    @ExcelProperty(value = "计划名称")
    private String jihuaName;

    /**
     * 计划编号
     */
    @ExcelProperty(value = "计划编号")
    private String jihuaBianhao;

    /**
     * 采购单位（当前登录人部门）
     */
    private Long caigouDanwei;
    @ExcelProperty(value = "采购单位", converter = ExcelDictConvert.class)
    private String caigouDanweiName;

    /**
     * 经办人
     */
    @ExcelProperty(value = "经办人")
    private Long jingbanren;

    /**
     * 经办人名称
     */
    @ExcelProperty(value = "经办人名称")
    private String jingbanrenName;

    /**
     * 合同类型
     */
    @ExcelProperty(value = "合同类型")
    private String hetonType;

    /**
     * 采购类型
     */
    @ExcelProperty(value = "采购类型")
    private String caigouType;

    /**
     * 仓库地址
     */
    @ExcelProperty(value = "仓库地址")
    private String cangkuUrl;

    /**
     * 合同名称
     */
    @ExcelProperty(value = "合同名称")
    private String hetonName;

    /**
     * 供应商id
     */
    @ExcelProperty(value = "供应商id")
    private Long gonyingshangId;
    private String gonyingshangName;

    /**
     * 出货时间
     */
    @ExcelProperty(value = "出货时间")
    private Date chuhuoTime;

    /**
     * 付款条件
     */
    @ExcelProperty(value = "付款条件")
    private String fukuantiaojian;

    /**
     * 发票开具方式
     */
    @ExcelProperty(value = "发票开具方式")
    private String fapiaoKjfs;

    /**
     * 提交状态（1、草稿，2、已提交）
     */
    @ExcelProperty(value = "提交状态", converter = ExcelDictConvert.class)
    @ExcelDictFormat(readConverterExp = "1=、草稿，2、已提交")
    private String status;

    /**
     * 审核状态
     */
    @ExcelProperty(value = "审核状态")
    private String shenheStatus;

    /**
     * 预计金额
     */
    private BigDecimal yujiJine;
    /**
     * 实际已采购金额
     */
    private BigDecimal shijiJine;

    private Date createTime;

    /**
     * 申请原因
     */
    private String reason;


    /**
     * 附件
     */
    private List<OpsCaigouPlanFilesVo> opsCaigouPlanFilesVos;
    /**
     * 产品信息
     */
    private List<OpsCaigouPlanChanpinVo> opsCaigouPlanChanpinVos;

}
