From 7924555977f6a178839d4d9e796d706e6f1bf487 Mon Sep 17 00:00:00 2001
From: wuxw <928255095@qq.com>
Date: 星期四, 14 十一月 2019 23:30:53 +0800
Subject: [PATCH] 优化业主内部类报错问题

---
 HardwareAdapationService/src/main/java/com/java110/hardwareAdapation/thread/TranslateOwnerToMachine.java |   93 +++++++++++++++++++++++++++++++++++++++++++---
 1 files changed, 86 insertions(+), 7 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 0183035..5755057 100644
--- a/HardwareAdapationService/src/main/java/com/java110/hardwareAdapation/thread/TranslateOwnerToMachine.java
+++ b/HardwareAdapationService/src/main/java/com/java110/hardwareAdapation/thread/TranslateOwnerToMachine.java
@@ -1,19 +1,24 @@
 package com.java110.hardwareAdapation.thread;
 
+import com.java110.core.factory.GenerateCodeFactory;
+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.user.IUserInnerServiceSMO;
 import com.java110.dto.OwnerDto;
+import com.java110.dto.hardwareAdapation.MachineDto;
 import com.java110.dto.order.OrderDto;
+import com.java110.hardwareAdapation.dao.IMachineTranslateServiceDao;
 import com.java110.utils.cache.MappingCache;
+import com.java110.utils.constant.BusinessTypeConstant;
+import com.java110.utils.constant.StatusConstant;
 import com.java110.utils.factory.ApplicationContextFactory;
-import com.java110.utils.util.CacheUtil;
 import com.java110.utils.util.StringUtil;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
-import org.springframework.core.annotation.Order;
 
+import java.util.HashMap;
 import java.util.List;
+import java.util.Map;
 
 /**
  * 浠庤鍗曚腑鍚屾涓氫富淇℃伅鑷宠澶囦腑闂磋〃
@@ -26,10 +31,15 @@
 
     private IOrderInnerServiceSMO orderInnerServiceSMOImpl;
     private IOwnerInnerServiceSMO ownerInnerServiceSMOImpl;
+    private IMachineInnerServiceSMO machineInnerServiceSMOImpl;
+
+    private IMachineTranslateServiceDao machineTranslateServiceDaoImpl;
 
     public TranslateOwnerToMachine() {
-        orderInnerServiceSMOImpl = ApplicationContextFactory.getBean("orderInnerServiceSMOImpl", IOrderInnerServiceSMO.class);
-        ownerInnerServiceSMOImpl = ApplicationContextFactory.getBean("ownerInnerServiceSMOImpl", IOwnerInnerServiceSMO.class);
+        orderInnerServiceSMOImpl = ApplicationContextFactory.getBean(IOrderInnerServiceSMO.class.getName(), IOrderInnerServiceSMO.class);
+        ownerInnerServiceSMOImpl = ApplicationContextFactory.getBean(IOwnerInnerServiceSMO.class.getName(), IOwnerInnerServiceSMO.class);
+        machineInnerServiceSMOImpl = ApplicationContextFactory.getBean("machineInnerServiceSMOImpl", IMachineInnerServiceSMO.class);
+        machineTranslateServiceDaoImpl = ApplicationContextFactory.getBean("machineTranslateServiceDaoImpl", IMachineTranslateServiceDao.class);
 
     }
 
@@ -62,14 +72,83 @@
                 ownerDto = new OwnerDto();
                 ownerDto.setbId(tmpOrderDto.getbId());
                 List<OwnerDto> ownerDtos = ownerInnerServiceSMOImpl.queryOwners(ownerDto);
-                dealData(tmpOrderDto, ownerDtos);
+                if (ownerDtos == null || ownerDtos.size() == 0) {
+                    continue;
+                }
+                dealData(tmpOrderDto, ownerDtos.get(0));
+                //鍒锋柊 鐘舵�佷负C1
+                orderInnerServiceSMOImpl.updateBusinessStatusCd(tmpOrderDto);
             } catch (Exception e) {
                 logger.error("鎵ц璁㈠崟浠诲姟澶辫触", e);
             }
         }
     }
 
-    private void dealData(OrderDto tmpOrderDto, List<OwnerDto> ownerDtos) {
+    /**
+     * 灏嗕笟涓绘暟鎹悓姝ョ粰鎵�鏈夎灏忓尯璁惧
+     *
+     * @param tmpOrderDto
+     * @param ownerDto
+     */
+    private void dealData(OrderDto tmpOrderDto, OwnerDto ownerDto) {
+
+        //鎷垮埌灏忓尯ID
+        String communityId = ownerDto.getCommunityId();
+
+        //鏍规嵁灏忓尯ID鏌ヨ鐜版湁璁惧
+        MachineDto machineDto = new MachineDto();
+        machineDto.setCommunityId(communityId);
+        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 {
+
+            }
+        }
+
+    }
+
+    private void saveMachineTranslate(MachineDto tmpMachineDto, OwnerDto ownerDto) {
+        Map info = new HashMap();
+        //machine_id,machine_code,status_cd,type_cd,machine_translate_id,obj_id,obj_name,state,community_id,b_id
+        info.put("machineTranslateId", GenerateCodeFactory.getGeneratorId(GenerateCodeFactory.CODE_PREFIX_machineTranslateId));
+        info.put("machineId", tmpMachineDto.getMachineId());
+        info.put("machineCode", tmpMachineDto.getMachineCode());
+        info.put("typeCd", "8899");
+        info.put("objId", ownerDto.getMemberId());
+        info.put("objName", ownerDto.getName());
+        info.put("state", "10000");
+        info.put("communityId", ownerDto.getCommunityId());
+        info.put("bId", "-1");
+        machineTranslateServiceDaoImpl.saveMachineTranslate(info);
+
+    }
+
+    private void updateMachineTranslate(MachineDto tmpMachineDto, OwnerDto ownerDto) {
+        Map info = new HashMap();
+        //machine_id,machine_code,status_cd,type_cd,machine_translate_id,obj_id,obj_name,state,community_id,b_id
+        info.put("machineId", tmpMachineDto.getMachineId());
+        info.put("objId", ownerDto.getMemberId());
+        info.put("state", "10000");
+        info.put("communityId", ownerDto.getCommunityId());
+        machineTranslateServiceDaoImpl.updateMachineTranslate(info);
+
+    }
+
+    private void deleteMachineTranslate(MachineDto tmpMachineDto, OwnerDto ownerDto) {
+        Map info = new HashMap();
+        //machine_id,machine_code,status_cd,type_cd,machine_translate_id,obj_id,obj_name,state,community_id,b_id
+        info.put("machineId", tmpMachineDto.getMachineId());
+        info.put("objId", ownerDto.getMemberId());
+        info.put("statusCd", StatusConstant.STATUS_CD_INVALID);
+        info.put("communityId", ownerDto.getCommunityId());
+        machineTranslateServiceDaoImpl.updateMachineTranslate(info);
 
     }
 

--
Gitblit v1.8.0