package com.junmp.jyzb.api.bean.req;


import com.baomidou.mybatisplus.annotation.TableField;
import com.junmp.jyzb.api.bean.Validator.IsNumber;
import com.junmp.v2.common.bean.request.BaseRequest;
import lombok.Data;
import lombok.EqualsAndHashCode;

import javax.validation.constraints.NotBlank;
import javax.validation.constraints.NotNull;
import java.io.Serializable;
import java.math.BigDecimal;
import java.util.Date;
import java.util.List;

@Data
@EqualsAndHashCode(callSuper = true)
public class UpdateOrderReq extends BaseRequest implements Serializable {
    @NotBlank(message = "id不能为空",groups = {edit.class,delete.class})
    private String id;
    private String userId;
    private String examineState;
    private String orderState;
    /**
     * 单据类型：入库单/出库单
     */
    @NotNull(message = "状态不能为空", groups = {updateStatus.class})
    private String orderType;
    /**
     * 工作流ID
     */
    private String  processDefinitionId;

    /**
     * 工作流实例id
     */
    private String processId;
    /**
     * 单据业务类型
     */
    private String  bussinessType;
    /**
     * 订单号
     */
    private String  orderCode;

    /**
     * 业务单据单号
     */
    private String bussinessCode;
    /**
     * 发物单位
     */
//    @IsNumber(message = "startOrgId必须是数字",groups = {add.class})
    private String  startOrgId;
    /**
     * 发物单位名称
     */
    private String  startOrgName;

    /**
     * 收物单位
     */
    private Long  endOrgId;
    /**
     * 收物单位名称
     */
    private String  endOrgName;
    /**
     * 供应商id
     */
    private String supplierId;
    /**
     * 供应商名称
     */
    private String supplierName;

    /**
     * 发物单位负责人id
     */
//    @IsNumber(message = "startOrgUserId必须是数字",groups = {add.class})
    private String  startOrgUserId;
    /**
     * 发物单位负责人姓名
     */
    private String  startOrgUserName;
    /**
     * 收物单位负责人id
     */
    @IsNumber(message = "endOrgUserId必须是数字",groups = {add.class})
    private String  endOrgUserId;
    /**
     * 收物单位负责人姓名
     */
    private String  endOrgUserName;
    /**
     * 总价格
     */
    private BigDecimal price;
    /**
     * 应入库数量
     */
    private Integer  inventoryQuantity;
    /**
     * 实际入库数量
     */
    private Integer actualQuantity;
    /**
     * 附件地址
     */
    private String  attachmentLocation;
    /**
     * 单据包含的物资集合
     */
    private String  invList;
    /**
     * 表单内容
     */
    private String  formItem;

//    /**
//     * 表单内容
//     */
//    private String  detailList;
    /**
     * 删除装备列表
     */
    private List<Long>  deleteList;
    /**
     * 明细列表
     */
    private List<UpdateOrderDetailReq>  detailList;


    /**
     * 调拨类型（2支拨，1价拨），调拨出入库才有
     */
    private String allocateType;

    /**
     * 归还人id，归还入库特有(相当于领用人)
     */
    private String returnUserId;

    private String returnUser;

    private Date useDate;

    private String createUser;
    private String updateUser;

    //备注
    private String note;
    /**
     * 移入仓库id
     */
    private String locationId;
    /**
     * 移入仓库名称
     */
    private String locationName;

    /**
     * 移入仓库id
     */
    private String removeLocationId;
    /**
     * 移入仓库名称
     */
    private String removeLocationName;
    //消息类型（）
    private String api;

    //是否打印
    private String isPrint;

    private Long logSummaryId;

    private Date createTime;
    //计划子单json
    private String eqsJson;

    private Integer orderCurrentState;

    /**
     * 是否可见全部单子（1是，0否）
     */
    private Integer isAllVisible;
}

