From bdfb519e59d7119dcf5835a4b6ebd6c4d2006470 Mon Sep 17 00:00:00 2001
From: wuxw <928255095@qq.com>
Date: 星期一, 16 十二月 2019 18:33:13 +0800
Subject: [PATCH] 合并代码

---
 HardwareAdapationService/src/main/java/com/java110/hardwareAdapation/thread/TranslateOwnerToMachine.java |   83 +++++++++++++++++++++++++++++++----------
 1 files changed, 62 insertions(+), 21 deletions(-)

diff --git a/HardwareAdapationService/src/main/java/com/java110/hardwareAdapation/thread/TranslateOwnerToMachine.java b/HardwareAdapationService/src/main/java/com/java110/hardwareAdapation/thread/TranslateOwnerToMachine.java
index fe877e0..604b5bc 100644
--- a/HardwareAdapationService/src/main/java/com/java110/hardwareAdapation/thread/TranslateOwnerToMachine.java
+++ b/HardwareAdapationService/src/main/java/com/java110/hardwareAdapation/thread/TranslateOwnerToMachine.java
@@ -5,7 +5,11 @@
 import com.java110.core.smo.hardwareAdapation.IMachineInnerServiceSMO;
 import com.java110.core.smo.order.IOrderInnerServiceSMO;
 import com.java110.core.smo.owner.IOwnerInnerServiceSMO;
+import com.java110.core.smo.owner.IOwnerRoomRelInnerServiceSMO;
+import com.java110.core.smo.room.IRoomInnerServiceSMO;
 import com.java110.dto.OwnerDto;
+import com.java110.dto.OwnerRoomRelDto;
+import com.java110.dto.RoomDto;
 import com.java110.dto.hardwareAdapation.MachineDto;
 import com.java110.dto.order.OrderDto;
 import com.java110.hardwareAdapation.dao.IMachineTranslateServiceDao;
@@ -13,10 +17,12 @@
 import com.java110.utils.constant.BusinessTypeConstant;
 import com.java110.utils.constant.StatusConstant;
 import com.java110.utils.factory.ApplicationContextFactory;
+import com.java110.utils.util.Assert;
 import com.java110.utils.util.StringUtil;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
+import java.util.ArrayList;
 import java.util.HashMap;
 import java.util.List;
 import java.util.Map;
@@ -32,7 +38,9 @@
 
     private IOrderInnerServiceSMO orderInnerServiceSMOImpl;
     private IOwnerInnerServiceSMO ownerInnerServiceSMOImpl;
+    private IOwnerRoomRelInnerServiceSMO ownerRoomRelInnerServiceSMOImpl;
     private IMachineInnerServiceSMO machineInnerServiceSMOImpl;
+    private IRoomInnerServiceSMO roomInnerServiceSMOImpl;
 
     private IMachineTranslateServiceDao machineTranslateServiceDaoImpl;
 
@@ -40,6 +48,8 @@
         TRANSLATE_STATE = state;
         orderInnerServiceSMOImpl = ApplicationContextFactory.getBean(IOrderInnerServiceSMO.class.getName(), IOrderInnerServiceSMO.class);
         ownerInnerServiceSMOImpl = ApplicationContextFactory.getBean(IOwnerInnerServiceSMO.class.getName(), IOwnerInnerServiceSMO.class);
+        ownerRoomRelInnerServiceSMOImpl = ApplicationContextFactory.getBean(IOwnerRoomRelInnerServiceSMO.class.getName(), IOwnerRoomRelInnerServiceSMO.class);
+        roomInnerServiceSMOImpl = ApplicationContextFactory.getBean(IRoomInnerServiceSMO.class.getName(), IRoomInnerServiceSMO.class);
         machineInnerServiceSMOImpl = ApplicationContextFactory.getBean("machineInnerServiceSMOImpl", IMachineInnerServiceSMO.class);
         machineTranslateServiceDaoImpl = ApplicationContextFactory.getBean("machineTranslateServiceDaoImpl", IMachineTranslateServiceDao.class);
 
@@ -70,21 +80,38 @@
         List<OrderDto> orderDtos = orderInnerServiceSMOImpl.queryOwenrOrders(orderDto);
         for (OrderDto tmpOrderDto : orderDtos) {
             try {
-                logger.debug("寮�濮嬪鐞嗚鍗�"+ JSONObject.toJSONString(tmpOrderDto));
-                //鏍规嵁bId 鏌ヨ涓氫富淇℃伅
+                logger.debug("寮�濮嬪鐞嗚鍗�" + JSONObject.toJSONString(tmpOrderDto));
                 ownerDto = new OwnerDto();
-                ownerDto.setbId(tmpOrderDto.getbId());
+                if (BusinessTypeConstant.BUSINESS_TYPE_SAVE_OWNER_ROOM_REL.equals(tmpOrderDto.getBusinessTypeCd())) {
+                    //鍒ゆ柇鏄惁涓烘坊鍔犳埧灞�
+                    OwnerRoomRelDto ownerRoomRelDto = new OwnerRoomRelDto();
+                    ownerRoomRelDto.setbId(tmpOrderDto.getbId());
+                    List<OwnerRoomRelDto> ownerRoomRelDtos = ownerRoomRelInnerServiceSMOImpl.queryOwnerRoomRels(ownerRoomRelDto);
+                    Assert.listOnlyOne(ownerRoomRelDtos, "鏁版嵁閿欒 涓氫富鎴垮眿鍏崇郴鏈壘鍒帮紝鎴栨壘鍒板鏉�");
+                    ownerDto.setOwnerId(ownerRoomRelDtos.get(0).getOwnerId());
+                } else {
+                    ownerDto.setbId(tmpOrderDto.getbId());
+                }
+
+                //鏍规嵁bId 鏌ヨ涓氫富淇℃伅
+
                 List<OwnerDto> ownerDtos = ownerInnerServiceSMOImpl.queryOwnerMembers(ownerDto);
+
+                // 鎴垮眿淇℃伅
                 if (ownerDtos == null || ownerDtos.size() == 0) {
                     //鍒锋柊 鐘舵�佷负C1
                     orderInnerServiceSMOImpl.updateBusinessStatusCd(tmpOrderDto);
-                    logger.debug("娌℃湁鏁版嵁鏁版嵁鐩存帴鍒蜂负C1"+ JSONObject.toJSONString(tmpOrderDto));
+                    logger.debug("娌℃湁鏁版嵁鏁版嵁鐩存帴鍒蜂负C1" + JSONObject.toJSONString(tmpOrderDto));
                     continue;
                 }
-                dealData(tmpOrderDto, ownerDtos.get(0));
+                RoomDto roomDto = new RoomDto();
+                roomDto.setOwnerId(ownerDtos.get(0).getOwnerId());
+                List<RoomDto> rooms = roomInnerServiceSMOImpl.queryRoomsByOwner(roomDto);
+
+                dealData(tmpOrderDto, ownerDtos, rooms);
                 //鍒锋柊 鐘舵�佷负C1
                 orderInnerServiceSMOImpl.updateBusinessStatusCd(tmpOrderDto);
-                logger.debug("澶勭悊璁㈠崟缁撴潫"+ JSONObject.toJSONString(tmpOrderDto));
+                logger.debug("澶勭悊璁㈠崟缁撴潫" + JSONObject.toJSONString(tmpOrderDto));
 
             } catch (Exception e) {
                 logger.error("鎵ц璁㈠崟浠诲姟澶辫触", e);
@@ -96,28 +123,42 @@
      * 灏嗕笟涓绘暟鎹悓姝ョ粰鎵�鏈夎灏忓尯璁惧
      *
      * @param tmpOrderDto
-     * @param ownerDto
+     * @param ownerDtos
      */
-    private void dealData(OrderDto tmpOrderDto, OwnerDto ownerDto) {
+    private void dealData(OrderDto tmpOrderDto, List<OwnerDto> ownerDtos, List<RoomDto> roomDtos) {
 
         //鎷垮埌灏忓尯ID
-        String communityId = ownerDto.getCommunityId();
-
+        String communityId = ownerDtos.get(0).getCommunityId();
         //鏍规嵁灏忓尯ID鏌ヨ鐜版湁璁惧
         MachineDto machineDto = new MachineDto();
         machineDto.setCommunityId(communityId);
+        //String[] locationObjIds = new String[]{communityId};
+        List<String> locationObjIds = new ArrayList<>();
+        locationObjIds.add(communityId);
+        for (RoomDto roomDto : roomDtos) {
+            locationObjIds.add(roomDto.getUnitId());
+            locationObjIds.add(roomDto.getRoomId());
+        }
+        machineDto.setLocationObjIds(locationObjIds.toArray(new String[locationObjIds.size()]));
         List<MachineDto> machineDtos = machineInnerServiceSMOImpl.queryMachines(machineDto);
 
-        for (MachineDto tmpMachineDto : machineDtos) {
-            if (BusinessTypeConstant.BUSINESS_TYPE_SAVE_OWNER_INFO.equals(tmpOrderDto.getBusinessTypeCd())) {
-                saveMachineTranslate(tmpMachineDto, ownerDto);
-            } else if (BusinessTypeConstant.BUSINESS_TYPE_UPDATE_OWNER_INFO.equals(tmpOrderDto.getBusinessTypeCd())) {
-                updateMachineTranslate(tmpMachineDto, ownerDto);
-            } else if (BusinessTypeConstant.BUSINESS_TYPE_DELETE_OWNER_INFO.equals(tmpOrderDto.getBusinessTypeCd())) {
-                deleteMachineTranslate(tmpMachineDto, ownerDto);
-            } else {
+        for (OwnerDto ownerDto : ownerDtos) {
 
+            for (MachineDto tmpMachineDto : machineDtos) {
+                if (BusinessTypeConstant.BUSINESS_TYPE_SAVE_OWNER_INFO.equals(tmpOrderDto.getBusinessTypeCd())
+                        || BusinessTypeConstant.BUSINESS_TYPE_SAVE_OWNER_ROOM_REL.equals(tmpOrderDto.getBusinessTypeCd())) {
+                    saveMachineTranslate(tmpMachineDto, ownerDto);
+                } else if (BusinessTypeConstant.BUSINESS_TYPE_UPDATE_OWNER_INFO.equals(tmpOrderDto.getBusinessTypeCd())) {
+                    updateMachineTranslate(tmpMachineDto, ownerDto);
+                } else if (BusinessTypeConstant.BUSINESS_TYPE_DELETE_OWNER_INFO.equals(tmpOrderDto.getBusinessTypeCd())
+                        || BusinessTypeConstant.BUSINESS_TYPE_DELETE_OWNER_ROOM_REL.equals(tmpOrderDto.getBusinessTypeCd())
+                ) {
+                    deleteMachineTranslate(tmpMachineDto, ownerDto);
+                } else {
+
+                }
             }
+
         }
 
     }
@@ -128,9 +169,9 @@
         paramInfo.put("objId", ownerDto.getMemberId());
 
         int count = machineTranslateServiceDaoImpl.queryMachineTranslatesCount(paramInfo);
-        if(count >0){
-            updateMachineTranslate(tmpMachineDto,ownerDto);
-            return ;
+        if (count > 0) {
+            updateMachineTranslate(tmpMachineDto, ownerDto);
+            return;
         }
         Map info = new HashMap();
         //machine_id,machine_code,status_cd,type_cd,machine_translate_id,obj_id,obj_name,state,community_id,b_id

--
Gitblit v1.8.0