Kaynağa Gözat

不根据房间空置面积计算楼层空置面积,适配房间建筑面积可空的改动

ximinghao 2 hafta önce
ebeveyn
işleme
c76e9f1ba3

+ 34 - 29
src/main/java/com/skyversation/xjcy/computer/ParkPreCounter.java

@@ -256,14 +256,18 @@ public class ParkPreCounter {
             String roomSaleType = room.getString(String.valueOf(ParkKey.c_room_sale_type));
             boolean isForSale = "3".equals(roomSaleType);
             boolean isForRent = "1".equals(roomSaleType);
-            Double BuildArea = room.getDouble(String.valueOf(ParkKey.c_building_area));
-
-            JSONDataTool.updateDoubleValue(room, String.valueOf(ParkKey.c_self_used_area), 0d, parkNeedUploadId);
-            JSONDataTool.updateDoubleValue(room, String.valueOf(ParkKey.c_sellable_area), isForSale ? BuildArea : 0d, parkNeedUploadId);
-            JSONDataTool.updateDoubleValue(room, String.valueOf(ParkKey.c_sold_area), 0d, parkNeedUploadId);
-            JSONDataTool.updateDoubleValue(room, String.valueOf(ParkKey.c_rentable_area), isForRent ? BuildArea : 0d, parkNeedUploadId);
-            JSONDataTool.updateDoubleValue(room, String.valueOf(ParkKey.c_rented_area), 0d, parkNeedUploadId);
-            JSONDataTool.updateDoubleValue(room, String.valueOf(ParkKey.c_vacant_area), isForRent || isForSale ? BuildArea : 0d, parkNeedUploadId);
+            Double buildArea = room.getDouble(String.valueOf(ParkKey.c_building_area));
+            if(buildArea == null){
+                emptyRoomComputeArea(room);
+            }else {
+                JSONDataTool.updateDoubleValue(room, String.valueOf(ParkKey.c_self_used_area), 0d, parkNeedUploadId);
+                JSONDataTool.updateDoubleValue(room, String.valueOf(ParkKey.c_sellable_area), isForSale ? buildArea : 0d, parkNeedUploadId);
+                JSONDataTool.updateDoubleValue(room, String.valueOf(ParkKey.c_sold_area), 0d, parkNeedUploadId);
+                JSONDataTool.updateDoubleValue(room, String.valueOf(ParkKey.c_rentable_area), isForRent ? buildArea : 0d, parkNeedUploadId);
+                JSONDataTool.updateDoubleValue(room, String.valueOf(ParkKey.c_rented_area), 0d, parkNeedUploadId);
+                JSONDataTool.updateDoubleValue(room, String.valueOf(ParkKey.c_vacant_area), isForRent || isForSale ? buildArea : 0d, parkNeedUploadId);
+            }
+
         } else {
             //绑定企业信息
             JSONDataTool.updateStringValue(room,
@@ -294,18 +298,31 @@ public class ParkPreCounter {
 
             //更新面积数据
 
-            Double BuildArea = room.getDouble(String.valueOf(ParkKey.c_building_area));
-
-            JSONDataTool.updateDoubleValue(room, String.valueOf(ParkKey.c_self_used_area), isForSelfUsed ? BuildArea : 0d, parkNeedUploadId);
-            JSONDataTool.updateDoubleValue(room, String.valueOf(ParkKey.c_sellable_area), 0d, parkNeedUploadId);
-            JSONDataTool.updateDoubleValue(room, String.valueOf(ParkKey.c_sold_area), isForSale ? BuildArea : 0d, parkNeedUploadId);
-            JSONDataTool.updateDoubleValue(room, String.valueOf(ParkKey.c_rentable_area), 0d, parkNeedUploadId);
-            JSONDataTool.updateDoubleValue(room, String.valueOf(ParkKey.c_rented_area), isForRent ? BuildArea : 0d, parkNeedUploadId);
-            JSONDataTool.updateDoubleValue(room, String.valueOf(ParkKey.c_vacant_area), 0d, parkNeedUploadId);
+            Double buildArea = room.getDouble(String.valueOf(ParkKey.c_building_area));
+
+            if(buildArea == null){
+                emptyRoomComputeArea(room);
+            }else {
+                JSONDataTool.updateDoubleValue(room, String.valueOf(ParkKey.c_self_used_area), isForSelfUsed ? buildArea : 0d, parkNeedUploadId);
+                JSONDataTool.updateDoubleValue(room, String.valueOf(ParkKey.c_sellable_area), 0d, parkNeedUploadId);
+                JSONDataTool.updateDoubleValue(room, String.valueOf(ParkKey.c_sold_area), isForSale ? buildArea : 0d, parkNeedUploadId);
+                JSONDataTool.updateDoubleValue(room, String.valueOf(ParkKey.c_rentable_area), 0d, parkNeedUploadId);
+                JSONDataTool.updateDoubleValue(room, String.valueOf(ParkKey.c_rented_area), isForRent ? buildArea : 0d, parkNeedUploadId);
+                JSONDataTool.updateDoubleValue(room, String.valueOf(ParkKey.c_vacant_area), 0d, parkNeedUploadId);
+            }
         }
 
     }
 
+    private void emptyRoomComputeArea(JSONObject room) {
+        JSONDataTool.updateDoubleValue(room, String.valueOf(ParkKey.c_self_used_area), 0d, parkNeedUploadId);
+        JSONDataTool.updateDoubleValue(room, String.valueOf(ParkKey.c_sellable_area), 0d, parkNeedUploadId);
+        JSONDataTool.updateDoubleValue(room, String.valueOf(ParkKey.c_sold_area), 0d, parkNeedUploadId);
+        JSONDataTool.updateDoubleValue(room, String.valueOf(ParkKey.c_rentable_area), 0d, parkNeedUploadId);
+        JSONDataTool.updateDoubleValue(room, String.valueOf(ParkKey.c_rented_area), 0d, parkNeedUploadId);
+        JSONDataTool.updateDoubleValue(room, String.valueOf(ParkKey.c_vacant_area), 0d, parkNeedUploadId);
+    }
+
     private void updateLeaseLast(JSONObject newWorkingLease, List<JSONObject> oldWorkingLeases) {
         oldWorkingLeases.forEach(v -> JSONDataTool.updateStringValue(v, String.valueOf(LeaseKey.c_is_latest_lease),
                 "1", leaseNeedUploadId));
@@ -430,19 +447,7 @@ public class ParkPreCounter {
             JSONDataTool.updateDoubleValue(father, String.valueOf(ParkKey.c_sold_area), countResult.soldArea.doubleValue(), parkNeedUploadId);
             JSONDataTool.updateDoubleValue(father, String.valueOf(ParkKey.c_rented_area), countResult.rentedArea.doubleValue(), parkNeedUploadId);
             JSONDataTool.updateDoubleValue(father, String.valueOf(ParkKey.c_self_used_area), countResult.selfUseArea.doubleValue(), parkNeedUploadId);
-            //空置面积按建筑面积减去三个使用面积
-            Double buildArea =  father.getDouble(String.valueOf(ParkKey.c_building_area));
-            buildArea = buildArea == null ? 0 : buildArea;
-            BigDecimal buildingArea = BigDecimal.valueOf(buildArea);
-            JSONDataTool.updateDoubleValue(
-                    father,
-                    String.valueOf(ParkKey.c_vacant_area),
-                    buildingArea
-                            .subtract(countResult.soldArea)
-                            .subtract(countResult.rentedArea)
-                            .subtract(countResult.selfUseArea)
-                            .doubleValue(),
-                    parkNeedUploadId);
+            //不计算空置面积
         }else {
             JSONDataTool.updateDoubleValue(father, String.valueOf(ParkKey.c_building_area), countResult.buildArea.doubleValue(), parkNeedUploadId);
             JSONDataTool.updateDoubleValue(father, String.valueOf(ParkKey.c_sellable_area), countResult.sellableArea.doubleValue(), parkNeedUploadId);