package com.persagy.proxy.adm.strategy.relationdata; import java.util.ArrayList; import java.util.List; import org.springframework.stereotype.Component; import com.fasterxml.jackson.databind.node.ObjectNode; import com.persagy.dmp.basic.dto.RequestData; import com.persagy.dmp.basic.model.QueryCriteria; import com.persagy.dmp.common.model.response.CommonResult; import com.persagy.dmp.digital.client.DigitalRelationFacade; import com.persagy.dmp.digital.entity.ObjectDigital; import com.persagy.dmp.digital.entity.ObjectRelation; import com.persagy.proxy.adm.constant.AdmCommonConstant; import com.persagy.proxy.adm.constant.AdmRelationType; import com.persagy.proxy.adm.constant.AdmRelationTypeEnum; import com.persagy.proxy.adm.constant.GraphCodeEnum; import com.persagy.proxy.adm.constant.RelCodeEnum; import com.persagy.proxy.adm.model.AdmRelationObject; import com.persagy.proxy.adm.service.IRelationReportService; /** * * @version 1.0.0 * @company persagy * @author zhangqiankun * @date 2021年9月3日 上午9:42:46 */ @Component(value = AdmRelationType.MECHINARCH_EQ2FL) public class MechInArchEq2FlRelationObject extends AbstractReportRelationObject { public MechInArchEq2FlRelationObject(IRelationReportService relationReportService) { super(relationReportService); } @Override public long countRelationObjects(String groupCode, String projectId) { QueryCriteria queryCriteria = new QueryCriteria(); ObjectNode objectNode = OBJECT_MAPPER.createObjectNode(); objectNode.put("graphCode", GraphCodeEnum.MechInArch.name()); objectNode.put("relCode", RelCodeEnum.Eq2Fl.name()); queryCriteria.setCriteria(objectNode); queryCriteria.setOnlyCount(true); CommonResult> result = DigitalRelationFacade.queryPrototype(groupCode, projectId, AdmCommonConstant.APP_ID, AdmCommonConstant.USER_ID, queryCriteria); return result == null ? 0 : (result.getCount() == null ? 0 : result.getCount()); } @Override public List queryAllRelations(String groupCode, String projectId) { RequestData requestData = new RequestData(); requestData.setGraphCode(GraphCodeEnum.MechInArch.name()); requestData.setRelCode(RelCodeEnum.Eq2Fl.name()); requestData.setPage(1L); requestData.setSize(500L); List allDigitals = new ArrayList(); this.queryPageRelations(allDigitals, requestData, groupCode, projectId); return allDigitals; } @Override protected AdmRelationObject handleObjectDigital(ObjectDigital master, ObjectDigital slave, String groupCode, String projectId) { AdmRelationObject convertObject = this.convertObject(master, "设备", slave, "楼层"); String floorName = master.getLocalName(); convertObject.setMasterFloorName(floorName); convertObject.setSlaveFloorName(floorName); return convertObject; } @Override public Object beforeSaveRelationObject(AdmRelationObject relationObject, String groupCode, String projectId, String code) { return this.beforeSaveRelationObject(relationObject, AdmRelationTypeEnum.EQ2FL, groupCode, projectId, code); } }