package thyyxxk.webserver.entity.medicine;

import com.alibaba.fastjson.annotation.JSONField;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import lombok.Data;

import java.math.BigDecimal;
import java.util.List;

/**
 * @ClassName YpSelinfoSold
 * @Author hsh
 * @Date 2025/5/29 0029 9:52
 * @Version 1.0
 * @Description 商品销售/退货上传结果信息
 **/
@Data
@TableName(value = "yp_selinfo_sold")
public class YpSelinfoSold {

    /**
     * 医疗目录编码（如果没有就填默认值NMLC999）(必传)
     * */
    @JSONField(name = "med_list_codg")
    private String medListCodg;


    /**
     * 定点医药机构目录编号(必传)
     * */
    @JSONField(name = "fixmedins_hilist_id")
    @TableId(type = IdType.NONE)
    private String fixmedinsHilistId;


    /**
     * 定点医药机构目录名称(必传)
     * */
    @JSONField(name = "fixmedins_hilist_name")
    private String fixmedinsHilistName;


    /**
     * 定点医药机构批次流水号(必传)
     * */
    @JSONField(name = "fixmedins_bchno")
    private String fixmedinsBchno;


    /**
     * 开方医师证件类型
     * */
    @JSONField(name = "prsc_dr_cert_type")
    private String prscDrCertType;


    /**
     * 开方医师证件号码
     * */
    @JSONField(name = "prsc_dr_certno")
    private String prscDrCertno;


    /**
     * 开方医师姓名(必传)
     * */
    @JSONField(name = "prsc_dr_name")
    private String prscDrName;


    /**
     * 药师证件类型
     * */
    @JSONField(name = "phar_cert_type")
    private String pharCertType;


    /**
     * 药师证件号码
     * */
    @JSONField(name = "phar_certno")
    private String pharCertno;


    /**
     * 药师姓名 (必传)
     * */
    @JSONField(name = "phar_name")
    private String pharName;


    /**
     * 药师执业资格证号 (必传)
     * */
    @JSONField(name = "phar_prac_cert_no")
    private String pharPracCertNo;


    /**
     * 医保费用结算类型
     * */
    @JSONField(name = "hi_feesetl_type")
    private String hiFeesetlType;


    /**
     * 结算ID （医保病人必填）
     * */
    @JSONField(name = "setl_id")
    private String setlId;


    /**
     * 就医流水号 (必传)
     * */
    @JSONField(name = "mdtrt_sn")
    private String mdtrtSn;


    /**
     * 人员编号
     * */
    @JSONField(name = "psn_no")
    private String psnNo;


    /**
     * 人员证件类型
     * */
    @JSONField(name = "psn_cert_type")
    private String psnCertType;


    /**
     * 证件号码
     * */
    @JSONField(name = "certno")
    private String certno;


    /**
     * 人员姓名
     * */
    @JSONField(name = "psn_name")
    private String psnName;


    /**
     * 生产批号 (必传)
     * */
    @JSONField(name = "manu_lotnum")
    private String manuLotnum;


    /**
     * 生产日期 (必传 格式：yyyy-MM-dd)
     * */
    @JSONField(name = "manu_date")
    private String manuDate;


    /**
     * 有效期止 (必传 格式：yyyy-MM-dd)
     * */
    @JSONField(name = "expy_end")
    private String expyEnd;


    /**
     * 处方药标志 (必传)
     * */
    @JSONField(name = "rx_flag")
    private String rxFlag;


    /**
     * 拆零标志 (必传 0-否；1-是)
     * */
    @JSONField(name = "trdn_flag")
    private String trdnFlag;


    /**
     * 最终成交单价
     * */
    @JSONField(name = "finl_trns_pric")
    private String finlTrnsPric;


    /**
     * 处方号（医保结算时必传）
     * */
    @JSONField(name = "rxno")
    private String rxno;


    /**
     * 外购处方标志
     * */
    @JSONField(name = "rx_circ_flag")
    private String rxCircFlag;


    /**
     * 零售单据号 (必传)
     * */
    @JSONField(name = "rtal_docno")
    private String rtalDocno;


    /**
     * 销售出库单据号
     * */
    @JSONField(name = "stoout_no")
    private String stooutNo;


    /**
     * 批次号
     * */
    @JSONField(name = "bchno")
    private String bchno;


    /**
     * 药品条形码
     * */
    @JSONField(name = "drug_prod_barc")
    private String drugProdBarc;


    /**
     * 货架位
     * */
    @JSONField(name = "shelf_posi")
    private String shelfPosi;


    /**
     * 销售/退货数量 (必传)
     * */
    @JSONField(name = "sel_retn_cnt")
    private BigDecimal selRetnCnt;


    /**
     * 销售/退货时间 (必传 格式：yyyy-MM-dd HH:mm:ss)
     * */
    @JSONField(name = "sel_retn_time")
    private String selRetnTime;


    /**
     * 销售/退货经办人姓名 (必传)
     * */
    @JSONField(name = "sel_retn_opter_name")
    private String selRetnOpterName;


    /**
     * 备注
     * */
    @JSONField(name = "memo")
    private String memo;

    /**
     * 开方医师编号（医保结算必填，非电子处方不校验） （新接口没有这个字段）
     * */
    @JSONField(name = "prsc_dr_no")
    private String prscDrNo;

    /**
     * 医保药师编号（医保结算必填） （新接口没有这个字段）
     * */
    @JSONField(name = "phar_no")
    private String pharNo;

    /**
     * 就诊结算类型（1-医保结算 2-自费结算）
     * */
    @JSONField(name = "MDTRT_SETL_TYPE")
    private String mdtrtSetlType;

    /**
     * 溯源码节点信息
     * */
    @JSONField(name = "drugtracinfo")
    private List<DrugTracCodg> drugtracinfo;

    /**
     * 药品编码
     */
    private String chargeCode;
    /**
     * 药品名称
     */
    private String chargeName;
    /**
     * 上传标志
     */
    private String uploadFlag;
    /**
     * 创建时间
     */
    private String createTime;
    /**
     * 门诊号/住院号
     */
    private String patNo;
    /**
     * 门诊/住院次数
     */
    private int times;
    /**
     * 包装规格
     */
    private String serial;
    /**
     * 错误信息
     */
    private String msgErr;
    /**
     * 药房号
     */
    private String groupNo;

    private Integer receiptNo;
    private Integer orderNo;
    private Integer itemNo;
    private Integer serialNo;
    private Integer realNo;

    /**
     * 1是退药或者销售退货删除， 0是正常发药
     */
    private String isTy;
    /**
     * 追溯码集合
     */
    private String drugTracCodg;

    /**
     * 0: 药品销售退货上传；1：药品退药退货上传
     */
    @TableField(exist = false)
    private String type;

}
