From 44b18c5c1e44895eb4bcf8e809a44a5ff9154fd1 Mon Sep 17 00:00:00 2001
From: java110 <928255095@qq.com>
Date: 星期四, 10 十二月 2020 10:41:54 +0800
Subject: [PATCH] 优化代码
---
service-job/src/main/java/com/java110/job/adapt/ximoIot/XimoAddMachineTransactionIotAdapt.java | 111 +++++++++++++++++++++++++++++++++++++++++++++++++++++++
1 files changed, 110 insertions(+), 1 deletions(-)
diff --git a/service-job/src/main/java/com/java110/job/adapt/ximoIot/XimoAddMachineTransactionIotAdapt.java b/service-job/src/main/java/com/java110/job/adapt/ximoIot/XimoAddMachineTransactionIotAdapt.java
index f1848be..17883cc 100644
--- a/service-job/src/main/java/com/java110/job/adapt/ximoIot/XimoAddMachineTransactionIotAdapt.java
+++ b/service-job/src/main/java/com/java110/job/adapt/ximoIot/XimoAddMachineTransactionIotAdapt.java
@@ -17,9 +17,19 @@
import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject;
+import com.java110.dto.RoomDto;
+import com.java110.dto.communityLocation.CommunityLocationDto;
+import com.java110.dto.file.FileDto;
+import com.java110.dto.file.FileRelDto;
import com.java110.dto.machine.MachineDto;
+import com.java110.dto.owner.OwnerDto;
import com.java110.entity.order.Business;
+import com.java110.intf.common.IFileInnerServiceSMO;
+import com.java110.intf.common.IFileRelInnerServiceSMO;
import com.java110.intf.common.IMachineInnerServiceSMO;
+import com.java110.intf.community.ICommunityLocationInnerServiceSMO;
+import com.java110.intf.community.IRoomInnerServiceSMO;
+import com.java110.intf.user.IOwnerInnerServiceSMO;
import com.java110.job.adapt.DatabusAdaptImpl;
import com.java110.job.adapt.ximoIot.asyn.IXimoMachineAsyn;
import com.java110.po.machine.MachinePo;
@@ -30,6 +40,7 @@
import org.springframework.util.LinkedMultiValueMap;
import org.springframework.util.MultiValueMap;
+import java.util.ArrayList;
import java.util.List;
/**
@@ -44,6 +55,21 @@
private IXimoMachineAsyn ximoMachineAsynImpl;
@Autowired
IMachineInnerServiceSMO machineInnerServiceSMOImpl;
+
+ @Autowired
+ private ICommunityLocationInnerServiceSMO communityLocationInnerServiceSMOImpl;
+
+ @Autowired
+ private IOwnerInnerServiceSMO ownerInnerServiceSMOImpl;
+
+ @Autowired
+ private IRoomInnerServiceSMO roomInnerServiceSMOImpl;
+
+ @Autowired
+ private IFileRelInnerServiceSMO fileRelInnerServiceSMOImpl;
+
+ @Autowired
+ private IFileInnerServiceSMO fileInnerServiceSMOImpl;
/**
* accessToken={access_token}
@@ -90,6 +116,12 @@
Assert.listOnlyOne(machineDtos, "鏈壘鍒拌澶�");
+ if (!"9999".equals(machineDtos.get(0).getMachineTypeCd())) {
+ return;
+ }
+
+ List<MultiValueMap<String, Object>> ownerDtos = getOwners(machinePo);
+
MultiValueMap<String, Object> postParameters = new LinkedMultiValueMap<>();
postParameters.add("extCommunityUuid", machinePo.getCommunityId());
@@ -98,6 +130,83 @@
postParameters.add("name", machinePo.getMachineName());
postParameters.add("positionType", "0");
postParameters.add("positionUuid", machinePo.getCommunityId());
- ximoMachineAsynImpl.send(postParameters);
+ ximoMachineAsynImpl.send(postParameters, ownerDtos);
+ }
+
+ private List<MultiValueMap<String, Object>> getOwners(MachinePo machinePo) {
+ //鎷垮埌灏忓尯ID
+ String communityId = machinePo.getCommunityId();
+
+ List<MultiValueMap<String, Object>> ownerDtos = new ArrayList<>();
+
+ List<OwnerDto> owners = null;
+ //鏍规嵁灏忓尯ID鏌ヨ鐜版湁璁惧
+ OwnerDto ownerDto = new OwnerDto();
+ ownerDto.setCommunityId(communityId);
+ String locationTypeCd = machinePo.getLocationTypeCd();
+ CommunityLocationDto communityLocationDto = new CommunityLocationDto();
+ communityLocationDto.setLocationId(locationTypeCd);
+ communityLocationDto.setCommunityId(machinePo.getCommunityId());
+ List<CommunityLocationDto> communityLocationDtos = communityLocationInnerServiceSMOImpl.queryCommunityLocations(communityLocationDto);
+
+ if (communityLocationDtos == null || communityLocationDtos.size() < 1) {
+ return ownerDtos;
+ }
+ communityLocationDto = communityLocationDtos.get(0);
+
+ if ("1000".contains(communityLocationDto.getLocationType())) {//鏌ヨ鏁翠釜灏忓尯鐨勪笟涓�
+ owners = ownerInnerServiceSMOImpl.queryOwnerMembers(ownerDto);
+ } else if ("2000".equals(communityLocationDto.getLocationType())) {//2000 鍗曞厓闂� 锛屽垯杩欎釜鍗曞厓涓嬬殑涓氫富鍚屾
+ //鍏堟牴鎹崟鍏冮棬ID 鏌ヨ 鎴垮眿
+ RoomDto roomDto = new RoomDto();
+ roomDto.setUnitId(machinePo.getLocationObjId());
+ roomDto.setCommunityId(machinePo.getCommunityId());
+ List<RoomDto> roomDtos = roomInnerServiceSMOImpl.queryRooms(roomDto);
+ if (roomDtos == null || roomDtos.size() == 0) { // 鍗曞厓涓嬫病鏈夋埧灞�
+ return ownerDtos;
+ }
+ ownerDto.setRoomIds(getRoomIds(roomDtos));
+ owners = ownerInnerServiceSMOImpl.queryOwnerMembers(ownerDto);
+ } else if ("3000".equals(communityLocationDto.getLocationType())) {// 3000 鎴垮眿闂�
+ ownerDto.setRoomId(machinePo.getLocationObjId());
+ owners = ownerInnerServiceSMOImpl.queryOwnerMembers(ownerDto);
+ }
+
+ for (OwnerDto tOwnerDto : owners) {
+ FileRelDto fileRelDto = new FileRelDto();
+ fileRelDto.setObjId(tOwnerDto.getMemberId());
+ fileRelDto.setRelTypeCd("10000");
+ List<FileRelDto> fileRelDtos = fileRelInnerServiceSMOImpl.queryFileRels(fileRelDto);
+ if (fileRelDtos == null || fileRelDtos.size() != 1) {
+ continue;
+ }
+ FileDto fileDto = new FileDto();
+ fileDto.setFileId(fileRelDtos.get(0).getFileSaveName());
+ fileDto.setFileSaveName(fileRelDtos.get(0).getFileSaveName());
+ fileDto.setCommunityId(tOwnerDto.getCommunityId());
+ List<FileDto> fileDtos = fileInnerServiceSMOImpl.queryFiles(fileDto);
+ if (fileDtos == null || fileDtos.size() != 1) {
+ continue;
+ }
+ MultiValueMap<String, Object> postParameters = new LinkedMultiValueMap<>();
+
+ postParameters.add("extCommunityUuid", tOwnerDto.getCommunityId());
+ postParameters.add("addAuthorizationDevSn", machinePo.getMachineCode());
+ postParameters.add("uuid", tOwnerDto.getMemberId());
+ postParameters.add("name", tOwnerDto.getName());
+ postParameters.add("faceFileBase64Array", fileDtos.get(0).getContext());
+
+ ownerDtos.add(postParameters);
+ }
+
+ return ownerDtos;
+ }
+
+ private String[] getRoomIds(List<RoomDto> roomDtos) {
+ List<String> roomIds = new ArrayList<String>();
+ for (RoomDto roomDto : roomDtos) {
+ roomIds.add(roomDto.getRoomId());
+ }
+ return roomIds.toArray(new String[roomIds.size()]);
}
}
--
Gitblit v1.8.0