|
@@ -0,0 +1,141 @@
|
|
|
+package com.persagy.dc.digital.handler;
|
|
|
+
|
|
|
+import cn.hutool.core.collection.CollUtil;
|
|
|
+import com.fasterxml.jackson.databind.node.JsonNodeFactory;
|
|
|
+import com.fasterxml.jackson.databind.node.ObjectNode;
|
|
|
+import com.persagy.dc.common.lang.PsDateTime;
|
|
|
+import com.persagy.dc.digital.entity.ObjectDigital;
|
|
|
+import lombok.Data;
|
|
|
+
|
|
|
+import java.math.BigDecimal;
|
|
|
+import java.util.Collections;
|
|
|
+import java.util.Set;
|
|
|
+
|
|
|
+/**
|
|
|
+ * 项目消息对象
|
|
|
+ * {
|
|
|
+ * "id":"PR1395270128588939265", //项目主键Id
|
|
|
+ * "groupCode":"ICBC", //集团编码
|
|
|
+ * "projectId":"Pj8765863329", //项目ID
|
|
|
+ * "projectLocalId":"8765863329",//项目本地编码
|
|
|
+ * "areaId":"AR1381523632282435585",//区域ID
|
|
|
+ * "projectName":"项目名称", //项目名称
|
|
|
+ * "provinceCode":"", //项目所在省份
|
|
|
+ * "cityCode":"", //项目所在市
|
|
|
+ * "zoneCode":"", //项目所在区
|
|
|
+ * "location":"天府大道219号", //项目详细地址
|
|
|
+ * "openTime":1623985811012, //开业时间
|
|
|
+ * "createTime":1623985811012, //创建时间
|
|
|
+ * "updateTime":1623985811012, //更新时间
|
|
|
+ * "updateUser":"AC1372371635352403969",//最后修改人ID
|
|
|
+ * "remark":"备注", //备注
|
|
|
+ * "valid":1, //有效状态,0-无效,1-有效
|
|
|
+ * "projectFun":"E100", //项目功能
|
|
|
+ * "projectWeather":"20", //项目天气
|
|
|
+ * "projectImage":["图4.jpg","图6.jpg"],//项目图片,set集合
|
|
|
+ * "longitude":11.002, //项目经度
|
|
|
+ * "latitude":22.99, //项目纬度
|
|
|
+ * "manageZone":"高新区", //集团管理分区
|
|
|
+ * "type":"create" //通知类型,create-创建,update-修改
|
|
|
+ * }
|
|
|
+ * @author Charlie Yu
|
|
|
+ * @date 2021-06-25
|
|
|
+ */
|
|
|
+@Data
|
|
|
+public class ProjectMessageVO {
|
|
|
+
|
|
|
+ /** 项目主键Id */
|
|
|
+ private String id;
|
|
|
+ /** 集团编码 */
|
|
|
+ private String groupCode;
|
|
|
+ /** 项目ID */
|
|
|
+ private String projectId;
|
|
|
+ /** 项目本地编码 */
|
|
|
+ private String projectLocalId;
|
|
|
+ /** 区域ID */
|
|
|
+ private String areaId;
|
|
|
+ /** 项目名称 */
|
|
|
+ private String projectName;
|
|
|
+ /** 项目所在省份 */
|
|
|
+ private String provinceCode;
|
|
|
+ /** 项目所在市 */
|
|
|
+ private String cityCode;
|
|
|
+ /** 项目所在区 */
|
|
|
+ private String zoneCode;
|
|
|
+ /** 项目详细地址 */
|
|
|
+ private String location;
|
|
|
+ /** 开业时间 */
|
|
|
+ private PsDateTime openTime;
|
|
|
+ /** 创建时间 */
|
|
|
+ private PsDateTime createTime;
|
|
|
+ /** 更新时间 */
|
|
|
+ private PsDateTime updateTime;
|
|
|
+ /** 最后修改人ID */
|
|
|
+ private String updateUser;
|
|
|
+ /** 备注 */
|
|
|
+ private String remark;
|
|
|
+ /** 有效状态,0-无效,1-有效 */
|
|
|
+ private Integer valid;
|
|
|
+ /** 项目功能 */
|
|
|
+ private String projectFun;
|
|
|
+ /** 项目天气 */
|
|
|
+ private String projectWeather;
|
|
|
+ /** 项目图片,set集合 */
|
|
|
+ private Set<String> projectImage;
|
|
|
+ /** 项目经度 */
|
|
|
+ private BigDecimal longitude;
|
|
|
+ /** 项目纬度 */
|
|
|
+ private BigDecimal latitude;
|
|
|
+ /** 集团管理分区 */
|
|
|
+ private String manageZone;
|
|
|
+ /** 通知类型,create-创建,update-修改 */
|
|
|
+ private String type;
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 转换为对象
|
|
|
+ * @return
|
|
|
+ */
|
|
|
+ public ObjectDigital toObjectDigital() {
|
|
|
+ ObjectDigital project = new ObjectDigital();
|
|
|
+ project.setId(projectId);
|
|
|
+ project.setProjectId(projectId);
|
|
|
+ project.setName(projectName);
|
|
|
+ project.setLocalId(projectLocalId);
|
|
|
+ project.setObjType("project");
|
|
|
+ project.setClassCode("project");
|
|
|
+ project.setGrouping(1);
|
|
|
+ project.setVirtualInfoCodes(Collections.emptyList());
|
|
|
+ project.setValid(valid);
|
|
|
+ if("create".equalsIgnoreCase(type)) {
|
|
|
+ project.setCreateApp("bmp");
|
|
|
+ } else {
|
|
|
+ project.setUpdateApp("bmp");
|
|
|
+ }
|
|
|
+ project.setInfos(toObjectInfos());
|
|
|
+ return project;
|
|
|
+ }
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 构建infos
|
|
|
+ * @return
|
|
|
+ */
|
|
|
+ public ObjectNode toObjectInfos() {
|
|
|
+ // 构建infos
|
|
|
+ ObjectNode infos = JsonNodeFactory.instance.objectNode();
|
|
|
+ infos.put("province", provinceCode);
|
|
|
+ infos.put("city", cityCode);
|
|
|
+ infos.put("urbanZone", zoneCode);
|
|
|
+ infos.put("longitude", longitude);
|
|
|
+ infos.put("latitude", latitude);
|
|
|
+ infos.put("address", location);
|
|
|
+ infos.put("businessOpeningTime", openTime.toString("yyyyMMdd"));
|
|
|
+ infos.put("projFuncType", projectFun);
|
|
|
+ infos.put("climateZone", projectWeather);
|
|
|
+ infos.put("groupManageZone", manageZone);
|
|
|
+ // 添加图片
|
|
|
+ if(CollUtil.isNotEmpty(projectImage)) {
|
|
|
+ projectImage.forEach(p -> infos.withArray("projPic").addPOJO(p));
|
|
|
+ }
|
|
|
+ return infos;
|
|
|
+ }
|
|
|
+}
|