From a40c2eb885bcdb697c2e16dae4f43cb6cd718973 Mon Sep 17 00:00:00 2001
From: wuxw <928255095@qq.com>
Date: 星期一, 22 一月 2024 11:28:03 +0800
Subject: [PATCH] 优化小区数据

---
 service-job/src/main/java/com/java110/job/adapt/hcGov/parkArea/EditParkingAreaToHcGovAdapt.java |   57 ++++++++++++++++++++++++++++++++++++++++++++++++---------
 1 files changed, 48 insertions(+), 9 deletions(-)

diff --git a/service-job/src/main/java/com/java110/job/adapt/hcGov/parkArea/EditParkingAreaToHcGovAdapt.java b/service-job/src/main/java/com/java110/job/adapt/hcGov/parkArea/EditParkingAreaToHcGovAdapt.java
index 47c1ffb..7b63e5c 100644
--- a/service-job/src/main/java/com/java110/job/adapt/hcGov/parkArea/EditParkingAreaToHcGovAdapt.java
+++ b/service-job/src/main/java/com/java110/job/adapt/hcGov/parkArea/EditParkingAreaToHcGovAdapt.java
@@ -19,9 +19,12 @@
 import com.alibaba.fastjson.JSONObject;
 import com.java110.dto.community.CommunityAttrDto;
 import com.java110.dto.community.CommunityDto;
+import com.java110.dto.parking.ParkingAreaDto;
 import com.java110.dto.parking.ParkingSpaceDto;
-import com.java110.entity.order.Business;
+import com.java110.dto.parking.ParkingAreaAttrDto;
+import com.java110.dto.system.Business;
 import com.java110.intf.community.ICommunityInnerServiceSMO;
+import com.java110.intf.community.IParkingAreaInnerServiceSMO;
 import com.java110.intf.community.IParkingSpaceInnerServiceSMO;
 import com.java110.job.adapt.DatabusAdaptImpl;
 import com.java110.job.adapt.hcGov.HcGovConstant;
@@ -29,6 +32,7 @@
 import com.java110.po.parking.ParkingAreaPo;
 import com.java110.utils.util.Assert;
 import com.java110.utils.util.BeanConvertUtil;
+import com.java110.utils.util.StringUtil;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Component;
 
@@ -51,7 +55,8 @@
     private IParkingSpaceInnerServiceSMO parkingSpaceInnerServiceSMOImpl;
     @Autowired
     private BaseHcGovSendAsyn baseHcGovSendAsynImpl;
-
+    @Autowired
+    private IParkingAreaInnerServiceSMO parkingAreaInnerServiceSMOImpl;
 
     /**
      * @param business   褰撳墠澶勭悊涓氬姟
@@ -60,22 +65,26 @@
     @Override
     public void execute(Business business, List<Business> businesses) {
         JSONObject data = business.getData();
+        JSONArray businessOwnerCars = new JSONArray();
         if (data.containsKey(ParkingAreaPo.class.getSimpleName())) {
             Object bObj = data.get(ParkingAreaPo.class.getSimpleName());
-            JSONArray businessOwnerCars = null;
             if (bObj instanceof JSONObject) {
-                businessOwnerCars = new JSONArray();
                 businessOwnerCars.add(bObj);
             } else if (bObj instanceof List) {
                 businessOwnerCars = JSONArray.parseArray(JSONObject.toJSONString(bObj));
             } else {
                 businessOwnerCars = (JSONArray) bObj;
             }
-            //JSONObject businessOwnerCar = data.getJSONObject("businessOwnerCar");
-            for (int bOwnerCarIndex = 0; bOwnerCarIndex < businessOwnerCars.size(); bOwnerCarIndex++) {
-                JSONObject businessOwnerCar = businessOwnerCars.getJSONObject(bOwnerCarIndex);
-                doAddParkingArea(business, businessOwnerCar);
+        }else {
+            if (data instanceof JSONObject) {
+                businessOwnerCars.add(data);
             }
+        }
+
+        //JSONObject businessOwnerCar = data.getJSONObject("businessOwnerCar");
+        for (int bOwnerCarIndex = 0; bOwnerCarIndex < businessOwnerCars.size(); bOwnerCarIndex++) {
+            JSONObject businessOwnerCar = businessOwnerCars.getJSONObject(bOwnerCarIndex);
+            doAddParkingArea(business, businessOwnerCar);
         }
     }
 
@@ -103,14 +112,44 @@
         parkingSpaceDto.setPaId(parkingAreaPo.getPaId());
         int count = parkingSpaceInnerServiceSMOImpl.queryParkingSpacesCount(parkingSpaceDto);
 
+        //鏌ヨ 澶栭儴鍋滆溅
+        ParkingAreaDto parkingAreaDto = new ParkingAreaDto();
+        parkingAreaDto.setPaId(parkingAreaPo.getPaId());
+        parkingAreaDto.setCommunityId(parkingAreaPo.getCommunityId());
+        List<ParkingAreaDto> parkingAreaDtos = parkingAreaInnerServiceSMOImpl.queryParkingAreas(parkingAreaDto);
+        Assert.listOnlyOne(parkingAreaDtos, "鍋滆溅鍦轰笉瀛樺湪");
+
+        String extPaId = getExtPaId(parkingAreaDtos.get(0).getAttrs());
+
         JSONObject body = new JSONObject();
         body.put("num", parkingAreaPo.getNum());
         body.put("parkingCount", count);
         body.put("typeCd", parkingAreaPo.getTypeCd());
-        body.put("extPaId", parkingAreaPo.getPaId());
+        //濡傛灉涓虹┖ 璧版坊鍔犳帴鍙�
+        if (StringUtil.isEmpty(extPaId)) {
+            JSONObject kafkaData = baseHcGovSendAsynImpl.createHeadersOrBody(body, extCommunityId, HcGovConstant.ADD_PARKING_AREA_ACTION, HcGovConstant.COMMUNITY_SECURE);
+            baseHcGovSendAsynImpl.sendKafka(HcGovConstant.GOV_TOPIC, kafkaData, communityId, parkingAreaPo.getPaId(), HcGovConstant.COMMUNITY_SECURE);
+            return;
+        }
+        body.put("extPaId", extPaId);
 
         JSONObject kafkaData = baseHcGovSendAsynImpl.createHeadersOrBody(body, extCommunityId, HcGovConstant.EDIT_PARKING_AREA_ACTION, HcGovConstant.COMMUNITY_SECURE);
         baseHcGovSendAsynImpl.sendKafka(HcGovConstant.GOV_TOPIC, kafkaData, communityId, parkingAreaPo.getPaId(), HcGovConstant.COMMUNITY_SECURE);
     }
 
+
+    private String getExtPaId(List<ParkingAreaAttrDto> attrs) {
+
+        if (attrs == null || attrs.size() < 1) {
+            return "";
+        }
+
+        for (ParkingAreaAttrDto parkingAreaAttrDto : attrs) {
+            if (parkingAreaAttrDto.getSpecCd().equals(HcGovConstant.EXT_COMMUNITY_ID)) {
+                return parkingAreaAttrDto.getValue();
+            }
+        }
+        return "";
+    }
+
 }

--
Gitblit v1.8.0