|
|
@@ -4,18 +4,38 @@ import com.alibaba.fastjson.JSONArray;
|
|
|
import com.alibaba.fastjson.JSONObject;
|
|
|
import com.java110.dto.community.CommunityDto;
|
|
|
import com.java110.dto.community.CommunityMemberDto;
|
|
|
+import com.java110.dto.fee.FeeDto;
|
|
|
+import com.java110.dto.file.FileDto;
|
|
|
+import com.java110.dto.file.FileRelDto;
|
|
|
+import com.java110.dto.owner.OwnerCarDto;
|
|
|
+import com.java110.dto.owner.OwnerDto;
|
|
|
+import com.java110.dto.owner.OwnerRoomRelDto;
|
|
|
+import com.java110.dto.room.RoomDto;
|
|
|
import com.java110.dto.store.StoreDto;
|
|
|
import com.java110.dto.system.Business;
|
|
|
+import com.java110.intf.common.IFileInnerServiceSMO;
|
|
|
+import com.java110.intf.common.IFileRelInnerServiceSMO;
|
|
|
import com.java110.intf.community.ICommunityMemberV1InnerServiceSMO;
|
|
|
import com.java110.intf.community.ICommunityV1InnerServiceSMO;
|
|
|
+import com.java110.intf.community.IParkingSpaceV1InnerServiceSMO;
|
|
|
+import com.java110.intf.community.IRoomV1InnerServiceSMO;
|
|
|
import com.java110.intf.store.IStoreV1InnerServiceSMO;
|
|
|
+import com.java110.intf.user.IOwnerCarInnerServiceSMO;
|
|
|
+import com.java110.intf.user.IOwnerCarV1InnerServiceSMO;
|
|
|
+import com.java110.intf.user.IOwnerRoomRelV1InnerServiceSMO;
|
|
|
+import com.java110.intf.user.IOwnerV1InnerServiceSMO;
|
|
|
import com.java110.job.adapt.DatabusAdaptImpl;
|
|
|
+import com.java110.job.adapt.hcIotNew.http.ISendIot;
|
|
|
+import com.java110.utils.exception.CmdException;
|
|
|
import com.java110.utils.util.Assert;
|
|
|
+import com.java110.utils.util.ListUtil;
|
|
|
+import com.java110.vo.ResultVo;
|
|
|
import org.springframework.beans.factory.annotation.Autowired;
|
|
|
import org.springframework.http.HttpEntity;
|
|
|
import org.springframework.http.HttpMethod;
|
|
|
import org.springframework.stereotype.Component;
|
|
|
|
|
|
+import java.util.ArrayList;
|
|
|
import java.util.List;
|
|
|
|
|
|
/**
|
|
|
@@ -34,6 +54,28 @@ public class SendCommunityDataToIotAdapt extends DatabusAdaptImpl {
|
|
|
@Autowired
|
|
|
private IStoreV1InnerServiceSMO storeV1InnerServiceSMOImpl;
|
|
|
|
|
|
+ @Autowired
|
|
|
+ private ISendIot sendIotImpl;
|
|
|
+
|
|
|
+ @Autowired
|
|
|
+ private IOwnerV1InnerServiceSMO ownerV1InnerServiceSMOImpl;
|
|
|
+
|
|
|
+ @Autowired
|
|
|
+ private IFileRelInnerServiceSMO fileRelInnerServiceSMOImpl;
|
|
|
+
|
|
|
+ @Autowired
|
|
|
+ private IFileInnerServiceSMO fileInnerServiceSMOImpl;
|
|
|
+
|
|
|
+ @Autowired
|
|
|
+ private IOwnerRoomRelV1InnerServiceSMO ownerRoomRelV1InnerServiceSMOImpl;
|
|
|
+
|
|
|
+ @Autowired
|
|
|
+ private IRoomV1InnerServiceSMO roomV1InnerServiceSMOImpl;
|
|
|
+
|
|
|
+ @Autowired
|
|
|
+ private IOwnerCarInnerServiceSMO ownerCarInnerServiceSMOImpl;
|
|
|
+
|
|
|
+ public static final int DEFAULT_DEAL_COUNT = 200;
|
|
|
|
|
|
/**
|
|
|
* accessToken={access_token}
|
|
|
@@ -88,7 +130,7 @@ public class SendCommunityDataToIotAdapt extends DatabusAdaptImpl {
|
|
|
* “cityCode”:”110101”,
|
|
|
* “tel”:”18909711445”,
|
|
|
* “storeId”:”11111”,
|
|
|
- * “storeId”:”演示物业”,
|
|
|
+ * “storeName”:”演示物业”,
|
|
|
* }
|
|
|
*/
|
|
|
|
|
|
@@ -97,13 +139,205 @@ public class SendCommunityDataToIotAdapt extends DatabusAdaptImpl {
|
|
|
List<StoreDto> storeDtos = storeV1InnerServiceSMOImpl.queryStores(storeDto);
|
|
|
Assert.listOnlyOne(storeDtos, "物业不存在");
|
|
|
|
|
|
-// HttpEntity httpEntity = new HttpEntity(JSONArray.toJSONString(staffs), getHeaders());
|
|
|
-// responseEntity = outRestTemplate.exchange(url, HttpMethod.POST, httpEntity, String.class);
|
|
|
+ JSONObject paramIn = new JSONObject();
|
|
|
+ paramIn.put("communityId", communityDtos.get(0).getCommunityId());
|
|
|
+ paramIn.put("name", communityDtos.get(0).getName());
|
|
|
+ paramIn.put("address", communityDtos.get(0).getAddress());
|
|
|
+ paramIn.put("cityCode", communityDtos.get(0).getCityCode());
|
|
|
+ paramIn.put("tel", communityDtos.get(0).getTel());
|
|
|
+ paramIn.put("storeId", storeDtos.get(0).getStoreId());
|
|
|
+ paramIn.put("storeName", storeDtos.get(0).getStoreName());
|
|
|
+ ResultVo resultVo = sendIotImpl.post("/iot/api/community.addCommunityApi", paramIn);
|
|
|
|
|
|
+ if (resultVo.getCode() != ResultVo.CODE_OK) {
|
|
|
+ throw new IllegalArgumentException("同步小区物业失败:" + resultVo.getMsg());
|
|
|
+ }
|
|
|
|
|
|
}
|
|
|
|
|
|
private void sendOwner(String communityId) {
|
|
|
+
|
|
|
+ OwnerDto ownerDto = new OwnerDto();
|
|
|
+ ownerDto.setCommunityId(communityId);
|
|
|
+ int count = ownerV1InnerServiceSMOImpl.queryOwnersCount(ownerDto);
|
|
|
+
|
|
|
+ int page = 1;
|
|
|
+ int max = 15;
|
|
|
+ if (count < DEFAULT_DEAL_COUNT) {
|
|
|
+ page = 1;
|
|
|
+ max = count;
|
|
|
+ } else {
|
|
|
+ page = (int) Math.ceil((double) count / (double) DEFAULT_DEAL_COUNT);
|
|
|
+ max = DEFAULT_DEAL_COUNT;
|
|
|
+ }
|
|
|
+
|
|
|
+ ownerDto = new OwnerDto();
|
|
|
+ ownerDto.setCommunityId(communityId);
|
|
|
+
|
|
|
+ //todo 每次按200条处理
|
|
|
+ List<OwnerDto> ownerDtos = null;
|
|
|
+ for (int pageIndex = 0; pageIndex < page; pageIndex++) {
|
|
|
+ ownerDto.setPage(pageIndex + 1);
|
|
|
+ ownerDto.setRow(max);
|
|
|
+ ownerDtos = ownerV1InnerServiceSMOImpl.queryOwners(ownerDto);
|
|
|
+ // 离散费用
|
|
|
+ doSendOwners(communityId, ownerDtos);
|
|
|
+ }
|
|
|
+
|
|
|
+ }
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 推送业主
|
|
|
+ *
|
|
|
+ * @param communityId
|
|
|
+ * @param ownerDtos
|
|
|
+ */
|
|
|
+ private void doSendOwners(String communityId, List<OwnerDto> ownerDtos) {
|
|
|
+
|
|
|
+ for (OwnerDto ownerDto : ownerDtos) {
|
|
|
+ try {
|
|
|
+ doSendSimple(ownerDto);
|
|
|
+ } catch (Exception e) {
|
|
|
+ e.printStackTrace();
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ private void doSendSimple(OwnerDto ownerDto) {
|
|
|
+
|
|
|
+ JSONObject paramIn = new JSONObject();
|
|
|
+ paramIn.put("communityId", ownerDto.getCommunityId());
|
|
|
+ paramIn.put("memberId", ownerDto.getMemberId());
|
|
|
+ paramIn.put("ownerId", ownerDto.getOwnerId());
|
|
|
+ paramIn.put("name", ownerDto.getName());
|
|
|
+ paramIn.put("ownerTypeCd", ownerDto.getOwnerTypeCd());
|
|
|
+ paramIn.put("idCard", ownerDto.getIdCard());
|
|
|
+ paramIn.put("ownerPhoto", getOwnerPhoto(ownerDto));
|
|
|
+
|
|
|
+
|
|
|
+ //todo 查询业主房屋
|
|
|
+ getOwnerRoom(paramIn, ownerDto);
|
|
|
+
|
|
|
+ //todo 查询业主车辆
|
|
|
+ getOwnerCars(paramIn, ownerDto);
|
|
|
+
|
|
|
+ }
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 查询业主车辆
|
|
|
+ *
|
|
|
+ * @param paramIn
|
|
|
+ * @param ownerDto
|
|
|
+ */
|
|
|
+ private void getOwnerCars(JSONObject paramIn, OwnerDto ownerDto) {
|
|
|
+
|
|
|
+ /**
|
|
|
+ * carMemberId
|
|
|
+ * carId
|
|
|
+ * carNum
|
|
|
+ * paId
|
|
|
+ * psId
|
|
|
+ * paNum
|
|
|
+ * psNum
|
|
|
+ * carTypeCd
|
|
|
+ * startTime
|
|
|
+ * endTime
|
|
|
+ * leaseType
|
|
|
+ */
|
|
|
+ OwnerCarDto ownerCarDto = new OwnerCarDto();
|
|
|
+ ownerCarDto.setOwnerId(ownerDto.getOwnerId());
|
|
|
+ List<OwnerCarDto> ownerCarDtos = ownerCarInnerServiceSMOImpl.queryOwnerCars(ownerCarDto);
|
|
|
+
|
|
|
+ if (ListUtil.isNull(ownerCarDtos)) {
|
|
|
+ return;
|
|
|
+ }
|
|
|
+ JSONArray cars = new JSONArray();
|
|
|
+
|
|
|
+ JSONObject car = null;
|
|
|
+ for (OwnerCarDto tmpOwnerCarDto : ownerCarDtos) {
|
|
|
+ car = new JSONObject();
|
|
|
+ car.put("carMemberId", tmpOwnerCarDto.getMemberId());
|
|
|
+ car.put("carId", tmpOwnerCarDto.getCarId());
|
|
|
+ car.put("carNum", tmpOwnerCarDto.getCarNum());
|
|
|
+ car.put("paId", tmpOwnerCarDto.getPaId());
|
|
|
+ car.put("psId", tmpOwnerCarDto.getPsId());
|
|
|
+ car.put("paNum", tmpOwnerCarDto.getAreaNum());
|
|
|
+ car.put("psNum", tmpOwnerCarDto.getNum());
|
|
|
+ car.put("carTypeCd", tmpOwnerCarDto.getCarTypeCd());
|
|
|
+ car.put("startTime", tmpOwnerCarDto.getStartTime());
|
|
|
+ car.put("endTime", tmpOwnerCarDto.getEndTime());
|
|
|
+ car.put("leaseType", tmpOwnerCarDto.getLeaseType());
|
|
|
+ cars.add(car);
|
|
|
+ }
|
|
|
+
|
|
|
+ paramIn.put("cars", cars);
|
|
|
+
|
|
|
+ }
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 查询业主房屋
|
|
|
+ *
|
|
|
+ * @param paramIn
|
|
|
+ * @param ownerDto
|
|
|
+ */
|
|
|
+ private void getOwnerRoom(JSONObject paramIn, OwnerDto ownerDto) {
|
|
|
+
|
|
|
+ OwnerRoomRelDto ownerRoomRelDto = new OwnerRoomRelDto();
|
|
|
+ ownerRoomRelDto.setOwnerId(ownerDto.getOwnerId());
|
|
|
+ List<OwnerRoomRelDto> ownerRoomRelDtos = ownerRoomRelV1InnerServiceSMOImpl.queryOwnerRoomRels(ownerRoomRelDto);
|
|
|
+
|
|
|
+ if (ListUtil.isNull(ownerRoomRelDtos)) {
|
|
|
+ return;
|
|
|
+ }
|
|
|
+
|
|
|
+ List<String> roomIds = new ArrayList<>();
|
|
|
+
|
|
|
+ for (OwnerRoomRelDto tmpOwnerRoomRelDto : ownerRoomRelDtos) {
|
|
|
+ roomIds.add(tmpOwnerRoomRelDto.getRoomId());
|
|
|
+ }
|
|
|
+
|
|
|
+ RoomDto roomDto = new RoomDto();
|
|
|
+ roomDto.setRoomIds(roomIds.toArray(new String[roomIds.size()]));
|
|
|
+ roomDto.setCommunityId(ownerDto.getCommunityId());
|
|
|
+ List<RoomDto> roomDtos = roomV1InnerServiceSMOImpl.queryRooms(roomDto);
|
|
|
+
|
|
|
+ JSONArray rooms = new JSONArray();
|
|
|
+
|
|
|
+ JSONObject room = null;
|
|
|
+ for (RoomDto tmpRoomDto : roomDtos) {
|
|
|
+ room = new JSONObject();
|
|
|
+ room.put("roomId", tmpRoomDto.getRoomId());
|
|
|
+ room.put("floorId", tmpRoomDto.getFloorId());
|
|
|
+ room.put("unitId", tmpRoomDto.getUnitId());
|
|
|
+ room.put("floorNum", tmpRoomDto.getFloorNum());
|
|
|
+ room.put("unitNum", tmpRoomDto.getUnitNum());
|
|
|
+ room.put("roomNum", tmpRoomDto.getRoomNum());
|
|
|
+ rooms.add(room);
|
|
|
+ }
|
|
|
+ paramIn.put("rooms", rooms);
|
|
|
+
|
|
|
+ }
|
|
|
+
|
|
|
+ private String getOwnerPhoto(OwnerDto ownerDto) {
|
|
|
+
|
|
|
+
|
|
|
+ FileRelDto fileRelDto = new FileRelDto();
|
|
|
+ fileRelDto.setObjId(ownerDto.getMemberId());
|
|
|
+ fileRelDto.setRelTypeCd("10000");
|
|
|
+ List<FileRelDto> fileRelDtos = fileRelInnerServiceSMOImpl.queryFileRels(fileRelDto);
|
|
|
+ if (ListUtil.isNull(fileRelDtos)) {
|
|
|
+ return "";
|
|
|
+ }
|
|
|
+ FileDto fileDto = new FileDto();
|
|
|
+ fileDto.setFileId(fileRelDtos.get(0).getFileSaveName());
|
|
|
+ fileDto.setFileSaveName(fileRelDtos.get(0).getFileSaveName());
|
|
|
+ fileDto.setCommunityId(ownerDto.getCommunityId());
|
|
|
+ List<FileDto> fileDtos = fileInnerServiceSMOImpl.queryFiles(fileDto);
|
|
|
+ if (ListUtil.isNull(fileDtos)) {
|
|
|
+ return "";
|
|
|
+ }
|
|
|
+
|
|
|
+ return fileDtos.get(0).getFileName();
|
|
|
}
|
|
|
|
|
|
|