AdmEquipment.java 5.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196
  1. package com.persagy.proxy.object.model;
  2. import cn.hutool.core.util.StrUtil;
  3. import com.alibaba.fastjson.annotation.JSONField;
  4. import com.persagy.proxy.adm.annotations.CascadeColumn;
  5. import com.persagy.proxy.adm.model.AdmPoint;
  6. import com.persagy.proxy.adm.model.AdmBaseEntity;
  7. import com.persagy.proxy.dictionary.model.AdmObjectType;
  8. import lombok.Data;
  9. import lombok.EqualsAndHashCode;
  10. import javax.persistence.Column;
  11. import java.util.List;
  12. import java.util.Map;
  13. /**
  14. * ADM 设备 实体
  15. * @author lvxy
  16. * @date 2021/8/17
  17. */
  18. @Data
  19. @EqualsAndHashCode(callSuper = true)
  20. public class AdmEquipment extends AdmBaseEntity<AdmEquipment> {
  21. public static final String OBJ_TYPE = "equipment";
  22. /** 设备名称 */
  23. private String name;
  24. /** 本地编码 */
  25. private String localId;
  26. /** 本地名称 */
  27. private String localName;
  28. /** 二维码内容 */
  29. private String defaultQRCode;
  30. /** 设计图纸中编码 */
  31. private String cadId;
  32. /** RFID标识 */
  33. @JSONField(name = "rFID")
  34. private String rfId;
  35. /** BIM模型中编码 */
  36. private String bimId;
  37. /** BIM构建编码 */
  38. private String bimTypeId;
  39. /** BIM模型中坐标 */
  40. private String bimLocation;
  41. /** 现场发现人员 */
  42. private String findPeople;
  43. /** 项目ID */
  44. private String projectId;
  45. /** 设备类型code */
  46. private String classCode;
  47. /** 设备所在建筑ID */
  48. private String buildingId;
  49. /** 设备所在楼层id */
  50. private String floorId;
  51. /** 设备关联的资产id */
  52. private String propertyId;
  53. /** 参见 EquipmentProSy **/
  54. /** 品牌型号id */
  55. private String dpManufacturerId;
  56. /** 供应商信息id */
  57. private String dpSupplierId;
  58. /** 维修商信息id */
  59. private String dpMaintainerId;
  60. /** 保险公司信息id */
  61. private String dpInsurerId;
  62. /** 设备型号id */
  63. private String dpSpecificationId;
  64. /** 品牌id */
  65. private String dpBrandId;
  66. /** Revit族 */
  67. private String bimFamilyName;
  68. /** Revit族类型 */
  69. private String bimFamilySymbol;
  70. /** 设备序号 */
  71. private Double equipSerial;
  72. /** 部件关联设备的id */
  73. private String parentId;
  74. /** 系统id集合 */
  75. private List<String> systemList;
  76. /** 项目自定义类型 */
  77. private String customCategory;
  78. /** 任务状态 */
  79. private Integer taskState;
  80. /** 模型id */
  81. private String modelId;
  82. /** 贴码状态 */
  83. private Integer codeType;
  84. /** 备注 */
  85. private String note;
  86. /** 客户端id */
  87. private String appId;
  88. /** 方案id */
  89. private String schemeId;
  90. /** 系统编码 */
  91. private String systemCode;
  92. /** 系统名称 */
  93. private String systemName;
  94. /** 二维码图片 */
  95. private String qrcodePic;
  96. /** 对象类型 */
  97. private String objectType = OBJ_TYPE;
  98. /** 设备分类 */
  99. private Map<String, String> equipCategory;
  100. /** 资产信息实体类 资产对应设备设施关系 资产→设备设施*/
  101. @CascadeColumn(graphCode = "Property2Mech", relCode = "Pe2Eq", selectToObj = false)
  102. private AdmProperty property;
  103. /** 建筑信息实体类 */
  104. @CascadeColumn(graphCode = "MechInArch", relCode = "Eq2Bd")
  105. private AdmBuilding building;
  106. /** 楼层信息实体类 */
  107. @CascadeColumn(graphCode = "MechInArch", relCode = "Eq2Fl")
  108. private AdmFloor floor;
  109. /** 项目信息实体类 */
  110. @CascadeColumn(graphCode = "MechSubset", relCode = "Pj2Eq", selectToObj = false)
  111. private AdmProject project;
  112. /**BIM模型中坐标json,坐标x,y,z */
  113. private AdmPoint locationJson;
  114. public AdmPoint getLocationJson() {
  115. if (StrUtil.isNotEmpty(bimLocation)){
  116. String[] split = bimLocation.split(",");
  117. AdmPoint bimLocation = new AdmPoint();
  118. if (split.length == 3){
  119. bimLocation.setX(Double.valueOf(split[0]));
  120. bimLocation.setY(Double.valueOf(split[1]));
  121. bimLocation.setZ(Double.valueOf(split[2]));
  122. }else if (split.length == 2){
  123. bimLocation.setX(Double.valueOf(split[0]));
  124. bimLocation.setY(Double.valueOf(split[1]));
  125. bimLocation.setZ(0.0);
  126. }
  127. return bimLocation;
  128. }
  129. return null;
  130. }
  131. /** 级联-设备服务所在的空 */
  132. @CascadeColumn(graphCode = "MechForArch", relCode = "Eq2Sp")
  133. private List<AdmSpace> zoneSpaceForBase;
  134. /** 级联-设备服务所在的空 */
  135. @CascadeColumn(graphCode = "MechInArch", relCode = "Eq2Sp")
  136. private List<AdmSpace> zoneSpaceInBase;
  137. /** 级联-设备所在的竖井 */
  138. @CascadeColumn(graphCode = "MechInArch", relCode = "Eq2Sh")
  139. private List<AdmShaft> shaftList;
  140. /** 资产列表 */
  141. @CascadeColumn(graphCode = "Property2Mech", relCode = "Pe2Eq", selectToObj = false)
  142. private List<AdmProperty> propertyList;
  143. /** 级联-部件 */
  144. @CascadeColumn(graphCode = "MechSubset", relCode = "Eq2Ec")
  145. private List<AdmComponent> component;
  146. /******************************** 报表使用 **************************************/
  147. /** 资产id */
  148. @Column(name = "link_id")
  149. private String linkId;
  150. /** 资产名称 */
  151. @Column(name = "link_name")
  152. private String linkEquipName;
  153. /** 资产本地名称 */
  154. @Column(name = "link_local_name")
  155. private String linkEquipLocalName;
  156. /** 资产分类 */
  157. @Column(name = "link_family")
  158. private String linkFamily;
  159. /** 系统对象 */
  160. @CascadeColumn(graphCode = "MechSubset", relCode = "Sy2Eq", selectToObj = false)
  161. private List<AdmSystem> linkSystem;
  162. /** 部件数量 */
  163. private Integer count = 0;
  164. /** 级联-部件 table 对应关系表 idColumn 对应 本类的id childIdColumn 级联对象的关系id */
  165. //@CascadeColumn(table="equipment", idColumn="class_code", childIdColumn="parent_id")
  166. private List<AdmObjectType> componentCategory;
  167. }