Przeglądaj źródła

fix : 楼层信息点处理

lvxianyun 3 lat temu
rodzic
commit
00363d7cfe

+ 4 - 3
src/main/java/com/persagy/proxy/object/controller/AdmFloorController.java

@@ -19,6 +19,7 @@ import com.persagy.proxy.object.service.IAdmEquipmentService;
 import com.persagy.proxy.object.service.IAdmFloorService;
 import com.persagy.proxy.object.service.IAdmISpaceService;
 import com.persagy.proxy.object.service.IAdmSpaceService;
+import com.persagy.proxy.object.service.impl.AdmFloorServiceImpl;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.web.bind.annotation.PostMapping;
 import org.springframework.web.bind.annotation.RequestBody;
@@ -58,7 +59,7 @@ public class AdmFloorController {
     @PostMapping("/create")
     public AdmResponse create(@RequestBody AdmCreateRequest<AdmFloor> createRequest) throws Exception {
         List<AdmFloor> vos = createRequest.getContent();
-        service.ensureSpecialValues(AdmContextUtil.toDmpContext(), vos, false);
+        service.ensureSpecialValues(AdmContextUtil.toDmpContext(), vos, AdmFloorServiceImpl.CREAT_UPDATE);
         for(AdmFloor floor : vos){
             if(StrUtil.isEmpty(floor.getName())){
                 floor.setName(ObjectNameUtil.objectName("楼层-"));
@@ -173,7 +174,7 @@ public class AdmFloorController {
     @PostMapping("/update")
     public AdmResponse update(@RequestBody AdmCreateRequest<AdmFloor> admFloor) throws Exception {
         List<AdmFloor> vos = CollUtil.newArrayList(admFloor.getContent());
-        service.ensureSpecialValues(AdmContextUtil.toDmpContext(), vos, false);
+        service.ensureSpecialValues(AdmContextUtil.toDmpContext(), vos, AdmFloorServiceImpl.CREAT_UPDATE);
         /** 遍历楼层列表 */
         Map<String, AdmFloor> admFloorBdMap = CollUtil.fieldValueMap(vos, "buildingId");
         if (CollUtil.isNotEmpty(admFloorBdMap)){
@@ -250,7 +251,7 @@ public class AdmFloorController {
         request.setName(AdmFloor.OBJ_TYPE);
         AdmResponse rs = service.doQuery(AdmContextUtil.toDmpContext(), request, AdmFloor.class);
         List<AdmFloor> vos = (List<AdmFloor>) rs.getContent();
-        service.ensureSpecialValues(AdmContextUtil.toDmpContext(), vos, true);
+        service.ensureSpecialValues(AdmContextUtil.toDmpContext(), vos, AdmFloorServiceImpl.QUERY);
         rs.setContent(vos);
         return rs;
     }

+ 7 - 3
src/main/java/com/persagy/proxy/object/service/impl/AdmFloorServiceImpl.java

@@ -27,11 +27,15 @@ import java.util.List;
 public class AdmFloorServiceImpl extends AbstractAdmBaseServiceImpl<AdmFloor> implements IAdmFloorService {
     @Autowired
     private ObjectMapper objectMapper;
+
+    public static final Boolean QUERY = true;
+    public static final Boolean CREAT_UPDATE = false;
+
     @Override
     public AdmResponse doQuery(InstanceUrlParam context, AdmQueryCriteria request, Class<AdmFloor> clazz) {
         AdmResponse response = super.doQuery(context, request, clazz);
         // 处理properteies 特殊属性
-        ensureSpecialValues(context, (List<AdmFloor>) response.getContent(), true);
+        ensureSpecialValues(context, (List<AdmFloor>) response.getContent(), QUERY);
         return response;
     }
     @Override
@@ -50,7 +54,7 @@ public class AdmFloorServiceImpl extends AbstractAdmBaseServiceImpl<AdmFloor> im
         request.setProjection(list);
         AdmResponse rs = doQuery(context, request, clazz);
         List<AdmFloor> vos = (List<AdmFloor>) rs.getContent();
-        ensureSpecialValues(context, vos, true);
+        ensureSpecialValues(context, vos, QUERY);
         rs.setContent(vos);
         return rs;
     }
@@ -63,7 +67,7 @@ public class AdmFloorServiceImpl extends AbstractAdmBaseServiceImpl<AdmFloor> im
         request.setOrders("floorSequenceId desc");
         AdmResponse rs = doQuery(context, request, AdmFloor.class);
         List<AdmFloor> vos = (List<AdmFloor>) rs.getContent();
-        ensureSpecialValues(context, vos, true);
+        ensureSpecialValues(context, vos, QUERY);
         return vos;
     }
 

+ 6 - 0
src/main/java/com/persagy/proxy/report/controller/ComponentBuildingController.java

@@ -10,11 +10,13 @@ import com.persagy.proxy.object.service.IAdmBuildingService;
 import com.persagy.proxy.object.service.IAdmFloorService;
 import com.persagy.proxy.adm.utils.AdmContextUtil;
 import com.persagy.proxy.common.entity.InstanceUrlParam;
+import com.persagy.proxy.object.service.impl.AdmFloorServiceImpl;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.web.bind.annotation.RequestBody;
 import org.springframework.web.bind.annotation.RequestMapping;
 import org.springframework.web.bind.annotation.RestController;
 
+import java.util.ArrayList;
 import java.util.List;
 
 /**
@@ -67,11 +69,14 @@ public class ComponentBuildingController {
 			return;
 		}
 		// 按建筑计算模型数量 - 这里先这样写,这种统计不太合理,统计建筑里所有楼层模型总计被使用次数。确认是否需要后再考虑是否移除
+		// 收集建筑下的楼层,处理信息点
+		List<AdmFloor> admFloors = new ArrayList<>(16);
 		for(AdmBuilding building:buildings) {
 			List<AdmFloor> floors = building.getFloor();
 			if(CollUtil.isEmpty(floors)) {
 				continue;
 			}
+			admFloors.addAll(floors);
 			// 收集所有模型Id
 			List<Object> modelIds = CollUtil.getFieldValues(floors, "modelId", true);
 			if(CollUtil.isEmpty(modelIds)) {
@@ -86,5 +91,6 @@ public class ComponentBuildingController {
 			// 设置次数
 			building.setCount(floorRs.getCount());
 		}
+		floorService.ensureSpecialValues(AdmContextUtil.toDmpContext(), admFloors, AdmFloorServiceImpl.QUERY);
 	}
 }