/*
 * Copyright ©2023 CJB-CNIT Team. All rights reserved
 */
package com.openhis.yb.dto;

import java.util.Date;

import com.alibaba.fastjson.annotation.JSONField;

import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.experimental.Accessors;

/**
 * 【3511】
 *
 * @author SunJQ
 * @date 2025-09-26
 */
@Data
@Accessors(chain = true)
@EqualsAndHashCode(callSuper = false)
public class MedicalInventory3511Param {
    /**
     * 定点医药机构编号 类型：字符型，长度30，必填项
     */
    @JSONField(name = "fixmedins_code")
    private String fixmedinsCode;

    /**
     * 医药机构目录编码 类型：字符型，长度150，必填项（与定点医药机构批次流水号二选一）
     */
    @JSONField(name = "medins_list_codg")
    private String medinsListCodg;

    /**
     * 定点医药机构批次流水号 类型：字符型，长度30，必填项（与医药机构目录编码二选一）
     */
    @JSONField(name = "fixmedins_bchno")
    private String fixmedinsBchno;

    /**
     * 开始日期 类型：日期型，格式yyyy-MM-dd，必填项
     */
    @JSONField(name = "begndate", format = "yyyy-MM-dd")
    private Date begndate;

    /**
     * 结束日期 类型：日期型，格式yyyy-MM-dd，必填项
     */
    @JSONField(name = "enddate", format = "yyyy-MM-dd")
    private Date enddate;

    /**
     * 定点医药机构商品销售流水号 类型：字符型，长度30，非必填
     */
    @JSONField(name = "medins_prod_sel_no")
    private String medinsProdSelNo;

    /**
     * 医疗目录编码 类型：字符型，长度50，非必填
     */
    @JSONField(name = "med_list_codg")
    private String medListCodg;

    /**
     * 医药机构目录名称 类型：字符型，长度100，非必填
     */
    @JSONField(name = "medins_list_name")
    private String medinsListName;

    /**
     * 开单医师证件类型 类型：字符型，长度3，非必填
     */
    @JSONField(name = "prsc_dr_cert_type")
    private String prscDrCertType;

    /**
     * 开单医师证件号码 类型：字符型，长度50，非必填
     */
    @JSONField(name = "prsc_dr_certno")
    private String prscDrCertno;

    /**
     * 开单医师姓名 类型：字符型，长度50，非必填
     */
    @JSONField(name = "bilg_dr_name")
    private String bilgDrName;

    /**
     * 药师证件类型 类型：字符型，长度3，非必填
     */
    @JSONField(name = "phar_cert_type")
    private String pharCertType;

    /**
     * 药师证件号码 类型：字符型，长度50，非必填
     */
    @JSONField(name = "phar_certno")
    private String pharCertno;

    /**
     * 药师姓名 类型：字符型，长度50，非必填
     */
    @JSONField(name = "phar_name")
    private String pharName;

    /**
     * 药师执业资格证号 类型：字符型，长度50，非必填
     */
    @JSONField(name = "phar_prac_cert_no")
    private String pharPracCertNo;

    /**
     * 医保费用结算类型 类型：字符型，长度6，必填项
     */
    @JSONField(name = "hi_feesetl_type")
    private String hiFeesetlType;

    /**
     * 结算ID 类型：字符型，长度30，非必填
     */
    @JSONField(name = "setl_id")
    private String setlId;

    /**
     * 人员编号 类型：字符型，长度30，非必填
     */
    @JSONField(name = "psn_no")
    private String psnNo;

    /**
     * 人员证件类型 类型：字符型，长度6，必填项
     */
    @JSONField(name = "psn_cert_type")
    private String psnCertType;

    /**
     * 证件号码 类型：字符型，长度600，非必填
     */
    @JSONField(name = "certno")
    private String certno;

    /**
     * 人员姓名 类型：字符型，长度50，非必填
     */
    @JSONField(name = "psn_name")
    private String psnName;

    /**
     * 生产批号 类型：字符型，长度30，非必填
     */
    @JSONField(name = "manu_lotnum")
    private String manuLotnum;

    /**
     * 生产日期 类型：日期型，格式yyyy-MM-dd，非必填
     */
    @JSONField(name = "manu_date", format = "yyyy-MM-dd")
    private Date manuDate;

    /**
     * 有效期止 类型：日期型，格式yyyy-MM-dd，非必填
     */
    @JSONField(name = "expy_end", format = "yyyy-MM-dd")
    private Date expyEnd;

    /**
     * 电子监管编码 类型：字符型，长度20，非必填
     */
    @JSONField(name = "elec_supn_codg")
    private String elecSupnCodg;

    /**
     * 处方药标志 类型：字符型，长度3，必填项
     */
    @JSONField(name = "rx_flag")
    private String rxFlag;

    /**
     * 目录特项标志 类型：字符型，长度3，必填项
     */
    @JSONField(name = "list_sp_item_flag")
    private String listSpItemFlag;

    /**
     * 拆零标志 类型：字符型，长度3，必填项
     */
    @JSONField(name = "trdn_flag")
    private String trdnFlag;

    /**
     * 销售/退货时间 类型：日期时间型，格式yyyy-MM-dd HH:mm:ss，非必填
     */
    @JSONField(name = "sel_retn_time", format = "yyyy-MM-dd HH:mm:ss")
    private Date selRetnTime;

    /**
     * 销售/退货经办人姓名 类型：字符型，长度50，非必填
     */
    @JSONField(name = "sel_retn_opter_name")
    private String selRetnOpterName;

    /**
     * 备注 类型：字符型，长度500，非必填
     */
    @JSONField(name = "memo")
    private String memo;

    /**
     * 有效标志 类型：字符型，长度3，必填项
     */
    @JSONField(name = "vali_flag")
    private String valiFlag;

    /**
     * 数据唯一记录号 类型：字符型，长度40，非必填
     */
    @JSONField(name = "rid")
    private String rid;

    /**
     * 创建人ID 类型：字符型，长度20，非必填
     */
    @JSONField(name = "crter_id")
    private String crterId;

    /**
     * 创建人姓名 类型：字符型，长度50，非必填
     */
    @JSONField(name = "crter_name")
    private String crterName;

    /**
     * 创建机构编号 类型：字符型，长度20，非必填
     */
    @JSONField(name = "crte_optins_no")
    private String crteOptinsNo;

    /**
     * 经办人ID 类型：字符型，长度20，非必填
     */
    @JSONField(name = "opter_id")
    private String opterId;

    /**
     * 经办人姓名 类型：字符型，长度50，非必填
     */
    @JSONField(name = "opter_name")
    private String opterName;

    /**
     * 经办机构编号 类型：字符型，长度20，非必填
     */
    @JSONField(name = "optins_no")
    private String optinsNo;

    /**
     * 统筹区编号 类型：字符型，长度6，非必填
     */
    @JSONField(name = "poolarea_no")
    private String poolareaNo;
}
