|
@@ -6,10 +6,16 @@ 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.dmp.basic.model.QueryCriteria;
|
|
|
+import com.persagy.dmp.common.helper.SpringHelper;
|
|
|
+import com.persagy.proxy.adm.constant.GraphCodeEnum;
|
|
|
+import com.persagy.proxy.adm.constant.RelCodeEnum;
|
|
|
import com.persagy.proxy.adm.service.impl.AbstractAdmBaseServiceImpl;
|
|
|
+import com.persagy.proxy.adm.utils.AdmContextUtil;
|
|
|
import com.persagy.proxy.object.model.AdmFloor;
|
|
|
import com.persagy.proxy.adm.request.AdmQueryCriteria;
|
|
|
import com.persagy.proxy.adm.request.AdmResponse;
|
|
|
+import com.persagy.proxy.object.model.AdmSpace;
|
|
|
import com.persagy.proxy.object.service.IAdmFloorService;
|
|
|
import com.persagy.proxy.common.entity.InstanceUrlParam;
|
|
|
import org.springframework.beans.factory.annotation.Autowired;
|
|
@@ -33,14 +39,63 @@ public class AdmFloorServiceImpl extends AbstractAdmBaseServiceImpl<AdmFloor> im
|
|
|
|
|
|
public static final Boolean QUERY = true;
|
|
|
public static final Boolean CREAT_UPDATE = false;
|
|
|
-
|
|
|
+
|
|
|
+ * Description: 根据条件查询
|
|
|
+ * @param criteria : 请求参数
|
|
|
+ * @return : com.persagy.proxy.adm.request.AdmResponse
|
|
|
+ * @author : lijie
|
|
|
+ * @date :2021/10/28 20:13
|
|
|
+ * Update By lijie 2021/10/28 20:13
|
|
|
+ */
|
|
|
@Override
|
|
|
- public AdmResponse doQuery(InstanceUrlParam context, AdmQueryCriteria request, Class<AdmFloor> clazz) {
|
|
|
- AdmResponse response = super.doQuery(context, request, clazz);
|
|
|
+ public AdmResponse query(AdmQueryCriteria criteria) {
|
|
|
+
|
|
|
+ InstanceUrlParam context = AdmContextUtil.toDmpContext();
|
|
|
+ criteria.setName(AdmFloor.OBJ_TYPE);
|
|
|
+
|
|
|
+ AdmQueryCriteria buildCriteria = new AdmQueryCriteria();
|
|
|
+ buildCriteria.setName("building");
|
|
|
+ criteria.setCascade(CollUtil.newArrayList(buildCriteria));
|
|
|
+ AdmResponse response = this.doQuery(context, criteria, AdmFloor.class);
|
|
|
+ List<AdmFloor> admFloors = (List<AdmFloor>) response.getContent();
|
|
|
+ if (CollUtil.isNotEmpty(admFloors)){
|
|
|
+ admFloors.forEach(admFloor -> {
|
|
|
+ if (null==admFloor.getBuilding()){
|
|
|
+ return;
|
|
|
+ }
|
|
|
+ admFloor.setBuildingId(admFloor.getBuilding().getId());
|
|
|
+ });
|
|
|
+ }
|
|
|
|
|
|
- ensureSpecialValues(context, (List<AdmFloor>) response.getContent(), QUERY);
|
|
|
+ ensureSpecialValues(context, admFloors, QUERY);
|
|
|
return response;
|
|
|
}
|
|
|
+
|
|
|
+ * Description: 子类重写,以便处理带buildingId
|
|
|
+ * @param dmpRequest : 中台查询参数
|
|
|
+ * @return : void
|
|
|
+ * @author : lijie
|
|
|
+ * @date :2021/10/28 20:25
|
|
|
+ * Update By lijie 2021/10/28 20:25
|
|
|
+ */
|
|
|
+ @Override
|
|
|
+ protected void processDmpCriteria(QueryCriteria dmpRequest) {
|
|
|
+ ObjectNode criteria = dmpRequest.getCriteria();
|
|
|
+ if (null==criteria){
|
|
|
+ return;
|
|
|
+ }
|
|
|
+ if (criteria.has("buildingId")){
|
|
|
+
|
|
|
+ ObjectMapper objectMapper = SpringHelper.getBean(ObjectMapper.class);
|
|
|
+ ObjectNode relationTo = objectMapper.createObjectNode();
|
|
|
+ relationTo.put("graphCode", GraphCodeEnum.ArchSubset.name());
|
|
|
+ relationTo.put("relCode", RelCodeEnum.Bd2Fl.name());
|
|
|
+ relationTo.set("objFrom",criteria.get("buildingId"));
|
|
|
+ criteria.set("relationTo",relationTo);
|
|
|
+ criteria.remove("buildingId");
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
@Override
|
|
|
public AdmResponse doQueryOutLine(InstanceUrlParam context, AdmQueryCriteria request, Class<AdmFloor> clazz) {
|
|
|
request.setProjection(null);
|
|
@@ -60,7 +115,7 @@ public class AdmFloorServiceImpl extends AbstractAdmBaseServiceImpl<AdmFloor> im
|
|
|
list.add("infos");
|
|
|
list.add("properties");
|
|
|
request.setProjection(list);
|
|
|
- AdmResponse rs = doQuery(context, request, clazz);
|
|
|
+ AdmResponse rs = query(request);
|
|
|
List<AdmFloor> vos = (List<AdmFloor>) rs.getContent();
|
|
|
ensureSpecialValues(context, vos, QUERY);
|
|
|
vos.forEach(vo->{
|
|
@@ -79,7 +134,7 @@ public class AdmFloorServiceImpl extends AbstractAdmBaseServiceImpl<AdmFloor> im
|
|
|
request.setName(AdmFloor.OBJ_TYPE);
|
|
|
request.resetRelationCond(false, "ArchSubset", "Bd2Fl", buildingId);
|
|
|
request.setOrders("floorSequenceId desc");
|
|
|
- AdmResponse rs = doQuery(context, request, AdmFloor.class);
|
|
|
+ AdmResponse rs = query(request);
|
|
|
List<AdmFloor> vos = (List<AdmFloor>) rs.getContent();
|
|
|
ensureSpecialValues(context, vos, QUERY);
|
|
|
return vos;
|