package cn.fastfun.service.entity; import cn.fastfun.controller.param.HandelFormParam; import cn.fastfun.controller.param.LibraryOutFormParam; import cn.fastfun.controller.param.TransferBySnQueryParam; import cn.fastfun.controller.param.TransferFormParam; import cn.fastfun.service.UtilService; import com.bridge.entity.DateEntity; import com.fasterxml.jackson.annotation.JsonFormat; import com.fasterxml.jackson.annotation.JsonIgnore; import com.fasterxml.jackson.annotation.JsonInclude; import io.swagger.annotations.ApiModelProperty; import io.swagger.models.auth.In; import lombok.Getter; import lombok.NoArgsConstructor; import lombok.Setter; import org.springframework.format.annotation.DateTimeFormat; import javax.annotation.Resource; import javax.persistence.Column; import javax.persistence.Entity; import javax.persistence.Table; import javax.persistence.Transient; import java.math.BigInteger; import java.util.Date; @Entity @Table(name = "app_device_log") @Setter @Getter @NoArgsConstructor @JsonInclude(JsonInclude.Include.NON_NULL) public class AppDeviceLog extends DateEntity { private static final long serialVersionUID = 1L; @ApiModelProperty(value = "类型", name = "type", required = true) @Column(name = "type") private Integer type; @ApiModelProperty(value = "操作号", name = "operateID", required = true) @Column(name = "operate_id") private Integer operateID; @ApiModelProperty(value = "IMEI", name = "imei", required = true) @Column(name = "imei") private String imei; @ApiModelProperty(value = "SN", name = "sn", required = true) @Column(name = "sn") private String sn; @ApiModelProperty(value = "出库类型", name = "outType", required = true) @Column(name = "out_type") private Integer outType; @ApiModelProperty(value = "联系人", name = "receiverName", required = true) @Column(name = "receiver_name") private String receiverName; @ApiModelProperty(value = "电话", name = "receiverPhone", required = true) @Column(name = "receiver_phone") private String receiverPhone; @ApiModelProperty(value = "出库客户", name = "outCustomId", required = true) @Column(name = "out_custom_id") private String outCustomId; @ApiModelProperty(value = "备注", name = "remarks", required = true) @Column(name = "remarks") private String remarks; @ApiModelProperty(value = "划拨设备类型", name = "tfDeviceType", required = true) @Column(name = "tf_device_type") private Integer tfDeviceType; @ApiModelProperty(value = "用途", name = "tfUsed", required = true) @Column(name = "tf_used") private String tfUsed; @ApiModelProperty(value = "描述", name = "tfDescribe", required = true) @Column(name = "tf_describe") private String tfDescribe; @ApiModelProperty(value = "划拨动作", name = "tfEvent", required = true) @Column(name = "tf_event") private Integer tfEvent; @ApiModelProperty(value = "处置类型", name = "hfEvent", required = true) @Column(name = "hf_event") private Integer hfEvent; @ApiModelProperty(value = "处置内容", name = "hfHandleContent", required = true) @Column(name = "hf_handle_content") private String hfHandleContent; @ApiModelProperty(value = "操作者", name = "operator", required = true) @Column(name = "operator") private String operator; @ApiModelProperty(value = "批次号", name = "batchNum", required = true, example = "") @Column(name = "batch_num") @JsonIgnore private String batchNum; public AppDeviceLog(String sn, String imei) { setSn(sn); setImei(imei); } // 入库属性 public AppDeviceLog toInStorage(Date addTime, String batchNum, BigInteger operateID) { setType(1); // 入库 setAddTime(addTime); setBatchNum(batchNum); setOperateID(operateID.intValue()); return this; } // 划拨 public AppDeviceLog toTransfer(TransferFormParam param, Date addTime, String batchNum, BigInteger operateID) { setType(2); // 划拨 setTfEvent(param.getEvent()); // setTfDeviceType(param.getDeviceType()); setTfDescribe(param.getDescribe()); setTfUsed(param.getUsed()); setOutCustomId(param.getCustomId()); setAddTime(addTime); setBatchNum(batchNum); setOperateID(operateID.intValue()); return this; } // 回调 public AppDeviceLog transferBack(TransferFormParam param, Date addTime, String batchNum, BigInteger operateID) { setType(5); // 回调 setTfDeviceType(param.getDeviceType()); setTfDescribe(param.getDescribe()); setAddTime(addTime); setBatchNum(batchNum); setOperateID(operateID.intValue()); return this; } // 出库 public AppDeviceLog outStorage(LibraryOutFormParam param, Date addTime, String batchNum, BigInteger operateID) { setType(3); // 出库 setOutType(param.getOutType()); setReceiverName(param.getReceiverName()); setReceiverPhone(param.getReceiverPhone()); setAddTime(addTime); setBatchNum(batchNum); setOperateID(operateID.intValue()); return this; } // 处置 public AppDeviceLog toHandle(HandelFormParam param, Date addTime, String batchNum, BigInteger operateID) { setType(4); setHfEvent(param.getEvent()); setHfHandleContent(param.getHandleContent()); setAddTime(addTime); setBatchNum(batchNum); setOperateID(operateID.intValue()); return this; } // 显示名称 @Transient private String typeTitle = ""; @Transient private String packTitle = ""; @Transient private String specTitle = ""; @Transient private String expandTitle = ""; /** * 属性追加来源设备信息 * * @param device */ public void appendFormDevice(AppDevice device) { setTypeTitle(device.getTypeTitle()); setPackTitle(device.getPackTitle()); setSpecTitle(device.getSpecTitle()); setExpandTitle(device.getExpandTitle()); } @ApiModelProperty(value = "入库时间", name = "handleTime", required = true) @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8") @Column(name = "instorage_time") private Date instorageTime; public void appendInTime(AppDevice device) { setInstorageTime(device.getInstorageTime()); } }