|
@@ -1,12 +1,19 @@
|
|
|
package com.persagy.proxy.adm.service.impl;
|
|
|
|
|
|
+import cn.hutool.core.collection.CollUtil;
|
|
|
+import cn.hutool.core.util.StrUtil;
|
|
|
+import cn.hutool.json.JSONUtil;
|
|
|
+import com.fasterxml.jackson.databind.ObjectMapper;
|
|
|
+import com.fasterxml.jackson.databind.node.ObjectNode;
|
|
|
import com.persagy.proxy.adm.model.AdmFloor;
|
|
|
import com.persagy.proxy.adm.request.AdmQueryCriteria;
|
|
|
import com.persagy.proxy.adm.request.AdmResponse;
|
|
|
import com.persagy.proxy.adm.service.IAdmFloorService;
|
|
|
import com.persagy.proxy.common.entity.InstanceUrlParam;
|
|
|
+import org.springframework.beans.factory.annotation.Autowired;
|
|
|
import org.springframework.stereotype.Service;
|
|
|
|
|
|
+import java.io.IOException;
|
|
|
import java.util.ArrayList;
|
|
|
import java.util.List;
|
|
|
|
|
@@ -17,6 +24,8 @@ import java.util.List;
|
|
|
*/
|
|
|
@Service
|
|
|
public class AdmFloorServiceImpl extends AbstractAdmBaseServiceImpl<AdmFloor> implements IAdmFloorService {
|
|
|
+ @Autowired
|
|
|
+ private ObjectMapper objectMapper;
|
|
|
|
|
|
@Override
|
|
|
public AdmResponse doQueryOutLine(InstanceUrlParam context, AdmQueryCriteria request, Class<AdmFloor> clazz) {
|
|
@@ -32,7 +41,11 @@ public class AdmFloorServiceImpl extends AbstractAdmBaseServiceImpl<AdmFloor> im
|
|
|
list.add("infos");
|
|
|
list.add("properties");
|
|
|
request.setProjection(list);
|
|
|
- return doQuery(context, request, clazz);
|
|
|
+ AdmResponse rs = doQuery(context, request, clazz);
|
|
|
+ List<AdmFloor> vos = (List<AdmFloor>) rs.getContent();
|
|
|
+ ensureSpecialValues(context, vos, true);
|
|
|
+ rs.setContent(vos);
|
|
|
+ return rs;
|
|
|
}
|
|
|
|
|
|
@Override
|
|
@@ -42,6 +55,40 @@ public class AdmFloorServiceImpl extends AbstractAdmBaseServiceImpl<AdmFloor> im
|
|
|
request.resetRelationCond(false, "ArchSubset", "Bd2Fl", buildingId);
|
|
|
request.setOrders("floorSequenceId desc");
|
|
|
AdmResponse rs = doQuery(context, request, AdmFloor.class);
|
|
|
- return (List<AdmFloor>) rs.getContent();
|
|
|
+ List<AdmFloor> vos = (List<AdmFloor>) rs.getContent();
|
|
|
+ ensureSpecialValues(context, vos, true);
|
|
|
+ return vos;
|
|
|
+ }
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 楼层自定义信息点处理 新增,properties 转化为String类型,放到propertiesInfo信息点存储,查询相关,propertiesInfo转为为properties 页面展示
|
|
|
+ * @param context
|
|
|
+ * @param queryFlag true 查询,false 更新或者新增
|
|
|
+ * @return
|
|
|
+ */
|
|
|
+ @Override
|
|
|
+ public void ensureSpecialValues(InstanceUrlParam context, List<AdmFloor> vos, boolean queryFlag) {
|
|
|
+ if(CollUtil.isNotEmpty(vos)){
|
|
|
+ if(queryFlag){//查询
|
|
|
+ vos.stream().forEach(admFloor -> {
|
|
|
+ if(StrUtil.isNotEmpty(admFloor.getPropertiesInfo())){
|
|
|
+ try {
|
|
|
+ ObjectNode properties = (ObjectNode) objectMapper.readTree(admFloor.getPropertiesInfo());
|
|
|
+ admFloor.setProperties(properties);
|
|
|
+ admFloor.setPropertiesInfo(null);
|
|
|
+ } catch (IOException e) {
|
|
|
+ e.printStackTrace();
|
|
|
+ }
|
|
|
+ }
|
|
|
+ });
|
|
|
+ }else{//新增或者更新
|
|
|
+ vos.stream().forEach(admFloor -> {
|
|
|
+ if(!JSONUtil.isNull(admFloor.getProperties())){
|
|
|
+ admFloor.setPropertiesInfo(admFloor.getProperties().toString());
|
|
|
+ admFloor.setProperties(null);
|
|
|
+ }
|
|
|
+ });
|
|
|
+ }
|
|
|
+ }
|
|
|
}
|
|
|
}
|