package digital.laboratory.platform.imr.vo;

import com.fasterxml.jackson.annotation.JsonFormat;
import digital.laboratory.platform.common.aop.annotation.DlpFeign;
import digital.laboratory.platform.imr.component.DateUtils;
import digital.laboratory.platform.sys.feign.RemoteOrgService;
import digital.laboratory.platform.sys.feign.RemoteUserService;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;

import java.time.LocalDateTime;

/**
 * 毒品库中关联的委托单位的送缴申请信息
 * @TableName b_drug_handing_over_apply
 */
@Data
@ApiModel(value = "DrugHandingOverApplyVO", description = "毒品库中关联的委托单位的送缴申请信息 VO")
public class DrugHandingOverApplyVO {
    /**
     * 主键标识
     */
    @ApiModelProperty("主键标识")
    private String id;

    /**
     * 送缴用户
     */
    @ApiModelProperty("送缴用户 id")
    private String handingOverUser;

    @ApiModelProperty("送缴用户 名称")
    @DlpFeign(feignClient = RemoteUserService.class, methodName = "innerGetById", params = {"handingOverUser"}, resultField = "name")
    private String handingOverUserName;

    /**
     * 送缴单位
     */
    @ApiModelProperty("送缴单位id")
    private String handingOverOrg;

    @ApiModelProperty("送缴单位名称")
    @DlpFeign(feignClient = RemoteOrgService.class, methodName = "getById", params = {"handingOverOrg"}, resultField = "name")
    private String handingOverOrgName;

    /**
     * 送缴日期
     */
    @ApiModelProperty("送缴时间")
    @JsonFormat(pattern = DateUtils.yyyy_MM_dd_HH_mm_ss, timezone = DateUtils.TIME_ZONE)
    private LocalDateTime handingOverDate;

    /**
     * 申请时间
     */
    @ApiModelProperty("申请时间")
    @JsonFormat(pattern = DateUtils.yyyy_MM_dd_HH_mm_ss, timezone = DateUtils.TIME_ZONE)
    private LocalDateTime applyDate;

    /**
     * 送缴申请状态，0 待送缴 | 3 待接收 | 5 同意接收 | -5 拒绝接收
     */
    @ApiModelProperty("送缴申请状态，0 待送缴 | 3 待接收 | 5 同意接收 | -5 拒绝接收")
    private Integer status;

    @ApiModelProperty("送缴申请状态，0 待送缴 | 3 待接收 | 5 同意接收 | -5 拒绝接收")
    private String statusName;

    /**
     * 处理该申请，决定是否接收的用户id
     */
    @ApiModelProperty("处理该申请，决定是否接收的用户id")
    private String reviewer;

    @ApiModelProperty("处理该申请，决定是否接收的用户 姓名")
    @DlpFeign(feignClient = RemoteUserService.class, methodName = "innerGetById", params = {"recipient"}, resultField = "name")
    private String reviewerName;

    /**
     * 同意/拒绝 原因
     */
    @ApiModelProperty("同意/拒绝 原因")
    private String reason;

}
