AppDeviceLog.java 6.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220
  1. package cn.fastfun.service.entity;
  2. import cn.fastfun.controller.param.HandelFormParam;
  3. import cn.fastfun.controller.param.LibraryOutFormParam;
  4. import cn.fastfun.controller.param.TransferBySnQueryParam;
  5. import cn.fastfun.controller.param.TransferFormParam;
  6. import cn.fastfun.service.UtilService;
  7. import com.bridge.entity.DateEntity;
  8. import com.fasterxml.jackson.annotation.JsonFormat;
  9. import com.fasterxml.jackson.annotation.JsonIgnore;
  10. import com.fasterxml.jackson.annotation.JsonInclude;
  11. import io.swagger.annotations.ApiModelProperty;
  12. import io.swagger.models.auth.In;
  13. import lombok.Getter;
  14. import lombok.NoArgsConstructor;
  15. import lombok.Setter;
  16. import org.springframework.format.annotation.DateTimeFormat;
  17. import javax.annotation.Resource;
  18. import javax.persistence.Column;
  19. import javax.persistence.Entity;
  20. import javax.persistence.Table;
  21. import javax.persistence.Transient;
  22. import java.math.BigInteger;
  23. import java.util.Date;
  24. @Entity
  25. @Table(name = "app_device_log")
  26. @Setter
  27. @Getter
  28. @NoArgsConstructor
  29. @JsonInclude(JsonInclude.Include.NON_NULL)
  30. public class AppDeviceLog extends DateEntity {
  31. private static final long serialVersionUID = 1L;
  32. @ApiModelProperty(value = "类型", name = "type", required = true)
  33. @Column(name = "type")
  34. private Integer type;
  35. @ApiModelProperty(value = "操作号", name = "operateID", required = true)
  36. @Column(name = "operate_id")
  37. private Integer operateID;
  38. @ApiModelProperty(value = "IMEI", name = "imei", required = true)
  39. @Column(name = "imei")
  40. private String imei;
  41. @ApiModelProperty(value = "SN", name = "sn", required = true)
  42. @Column(name = "sn")
  43. private String sn;
  44. @ApiModelProperty(value = "出库类型", name = "outType", required = true)
  45. @Column(name = "out_type")
  46. private Integer outType;
  47. @ApiModelProperty(value = "联系人", name = "receiverName", required = true)
  48. @Column(name = "receiver_name")
  49. private String receiverName;
  50. @ApiModelProperty(value = "电话", name = "receiverPhone", required = true)
  51. @Column(name = "receiver_phone")
  52. private String receiverPhone;
  53. @ApiModelProperty(value = "出库客户", name = "outCustomId", required = true)
  54. @Column(name = "out_custom_id")
  55. private String outCustomId;
  56. @ApiModelProperty(value = "备注", name = "remarks", required = true)
  57. @Column(name = "remarks")
  58. private String remarks;
  59. @ApiModelProperty(value = "划拨设备类型", name = "tfDeviceType", required = true)
  60. @Column(name = "tf_device_type")
  61. private Integer tfDeviceType;
  62. @ApiModelProperty(value = "用途", name = "tfUsed", required = true)
  63. @Column(name = "tf_used")
  64. private String tfUsed;
  65. @ApiModelProperty(value = "描述", name = "tfDescribe", required = true)
  66. @Column(name = "tf_describe")
  67. private String tfDescribe;
  68. @ApiModelProperty(value = "划拨动作", name = "tfEvent", required = true)
  69. @Column(name = "tf_event")
  70. private Integer tfEvent;
  71. @ApiModelProperty(value = "处置类型", name = "hfEvent", required = true)
  72. @Column(name = "hf_event")
  73. private Integer hfEvent;
  74. @ApiModelProperty(value = "处置内容", name = "hfHandleContent", required = true)
  75. @Column(name = "hf_handle_content")
  76. private String hfHandleContent;
  77. @ApiModelProperty(value = "操作者", name = "operator", required = true)
  78. @Column(name = "operator")
  79. private String operator;
  80. @ApiModelProperty(value = "批次号", name = "batchNum", required = true, example = "")
  81. @Column(name = "batch_num")
  82. @JsonIgnore
  83. private String batchNum;
  84. public AppDeviceLog(String sn, String imei) {
  85. setSn(sn);
  86. setImei(imei);
  87. }
  88. // 入库属性
  89. public AppDeviceLog toInStorage(Date addTime, String batchNum, BigInteger operateID) {
  90. setType(1); // 入库
  91. setAddTime(addTime);
  92. setBatchNum(batchNum);
  93. setOperateID(operateID.intValue());
  94. return this;
  95. }
  96. // 划拨
  97. public AppDeviceLog toTransfer(TransferFormParam param, Date addTime, String batchNum, BigInteger operateID) {
  98. setType(2); // 划拨
  99. setTfEvent(param.getEvent()); //
  100. setTfDeviceType(param.getDeviceType());
  101. setTfDescribe(param.getDescribe());
  102. setTfUsed(param.getUsed());
  103. setOutCustomId(param.getCustomId());
  104. setAddTime(addTime);
  105. setBatchNum(batchNum);
  106. setOperateID(operateID.intValue());
  107. return this;
  108. }
  109. // 回调
  110. public AppDeviceLog transferBack(TransferFormParam param, Date addTime, String batchNum, BigInteger operateID) {
  111. setType(5); // 回调
  112. setTfDeviceType(param.getDeviceType());
  113. setTfDescribe(param.getDescribe());
  114. setAddTime(addTime);
  115. setBatchNum(batchNum);
  116. setOperateID(operateID.intValue());
  117. return this;
  118. }
  119. // 出库
  120. public AppDeviceLog outStorage(LibraryOutFormParam param, Date addTime, String batchNum, BigInteger operateID) {
  121. setType(3); // 出库
  122. setOutType(param.getOutType());
  123. setReceiverName(param.getReceiverName());
  124. setReceiverPhone(param.getReceiverPhone());
  125. setAddTime(addTime);
  126. setBatchNum(batchNum);
  127. setOperateID(operateID.intValue());
  128. return this;
  129. }
  130. // 处置
  131. public AppDeviceLog toHandle(HandelFormParam param, Date addTime, String batchNum, BigInteger operateID) {
  132. setType(4);
  133. setHfEvent(param.getEvent());
  134. setHfHandleContent(param.getHandleContent());
  135. setAddTime(addTime);
  136. setBatchNum(batchNum);
  137. setOperateID(operateID.intValue());
  138. return this;
  139. }
  140. // 显示名称
  141. @Transient
  142. private String typeTitle = "";
  143. @Transient
  144. private String packTitle = "";
  145. @Transient
  146. private String specTitle = "";
  147. @Transient
  148. private String expandTitle = "";
  149. /**
  150. * 属性追加来源设备信息
  151. *
  152. * @param device
  153. */
  154. public void appendFormDevice(AppDevice device) {
  155. setTypeTitle(device.getTypeTitle());
  156. setPackTitle(device.getPackTitle());
  157. setSpecTitle(device.getSpecTitle());
  158. setExpandTitle(device.getExpandTitle());
  159. }
  160. @ApiModelProperty(value = "入库时间", name = "handleTime", required = true)
  161. @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
  162. @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
  163. @Column(name = "instorage_time")
  164. private Date instorageTime;
  165. public void appendInTime(AppDevice device) {
  166. setInstorageTime(device.getInstorageTime());
  167. }
  168. }