QueryAdminOwnerCarsCmd.java 7.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188
  1. package com.java110.user.cmd.owner;
  2. import com.alibaba.fastjson.JSONArray;
  3. import com.alibaba.fastjson.JSONObject;
  4. import com.java110.core.annotation.Java110Cmd;
  5. import com.java110.core.context.ICmdDataFlowContext;
  6. import com.java110.core.event.cmd.Cmd;
  7. import com.java110.core.event.cmd.CmdEvent;
  8. import com.java110.dto.machine.MachineTranslateDto;
  9. import com.java110.dto.owner.OwnerCarDto;
  10. import com.java110.dto.owner.OwnerRoomRelDto;
  11. import com.java110.dto.parking.ParkingSpaceDto;
  12. import com.java110.dto.privilege.BasePrivilegeDto;
  13. import com.java110.dto.room.RoomDto;
  14. import com.java110.intf.common.IMachineTranslateV1InnerServiceSMO;
  15. import com.java110.intf.community.IMenuInnerServiceSMO;
  16. import com.java110.intf.community.IParkingSpaceInnerServiceSMO;
  17. import com.java110.intf.community.IRoomInnerServiceSMO;
  18. import com.java110.intf.user.IOwnerCarInnerServiceSMO;
  19. import com.java110.intf.user.IOwnerRoomRelInnerServiceSMO;
  20. import com.java110.utils.exception.CmdException;
  21. import com.java110.utils.util.Assert;
  22. import com.java110.utils.util.BeanConvertUtil;
  23. import com.java110.utils.util.ListUtil;
  24. import com.java110.utils.util.StringUtil;
  25. import com.java110.vo.ResultVo;
  26. import org.springframework.beans.factory.annotation.Autowired;
  27. import org.springframework.http.ResponseEntity;
  28. import java.util.ArrayList;
  29. import java.util.List;
  30. import java.util.Map;
  31. @Java110Cmd(serviceCode = "owner.queryAdminOwnerCars")
  32. public class QueryAdminOwnerCarsCmd extends Cmd {
  33. @Autowired
  34. private IOwnerCarInnerServiceSMO ownerCarInnerServiceSMOImpl;
  35. @Autowired
  36. private IMenuInnerServiceSMO menuInnerServiceSMOImpl;
  37. @Autowired
  38. private IParkingSpaceInnerServiceSMO parkingSpaceInnerServiceSMOImpl;
  39. @Autowired
  40. private IOwnerRoomRelInnerServiceSMO ownerRoomRelInnerServiceSMOImpl;
  41. @Autowired
  42. private IRoomInnerServiceSMO roomInnerServiceSMOImpl;
  43. @Autowired
  44. private IMachineTranslateV1InnerServiceSMO machineTranslateV1InnerServiceSMOImpl;
  45. @Override
  46. public void validate(CmdEvent event, ICmdDataFlowContext cmdDataFlowContext, JSONObject reqJson) throws CmdException {
  47. super.validateAdmin(cmdDataFlowContext);
  48. super.validatePageInfo(reqJson);
  49. }
  50. @Override
  51. public void doCmd(CmdEvent event, ICmdDataFlowContext cmdDataFlowContext, JSONObject reqJson) throws CmdException {
  52. OwnerCarDto ownerCarDto = BeanConvertUtil.covertBean(reqJson, OwnerCarDto.class);
  53. int row = reqJson.getIntValue("row");
  54. //查询总记录数
  55. int total = ownerCarInnerServiceSMOImpl.queryOwnerCarsCount(ownerCarDto);
  56. // int count = 0;
  57. List<OwnerCarDto> ownerCarDtoList = null;
  58. if (total > 0) {
  59. ownerCarDtoList = ownerCarInnerServiceSMOImpl.queryOwnerCars(ownerCarDto);
  60. //小区20条时刷房屋和车位信息
  61. if (row < 20) {
  62. freshPs(ownerCarDtoList);
  63. freshRoomInfo(ownerCarDtoList);
  64. //刷入同步物联网状态
  65. freshTransactionIotState(ownerCarDtoList);
  66. }
  67. } else {
  68. ownerCarDtoList = new ArrayList<>();
  69. }
  70. ResponseEntity<String> responseEntity = ResultVo.createResponseEntity((int) Math.ceil((double) total / (double) row), total, ownerCarDtoList);
  71. cmdDataFlowContext.setResponseEntity(responseEntity);
  72. }
  73. private void freshTransactionIotState(List<OwnerCarDto> ownerCarDtoList) {
  74. if (ownerCarDtoList == null || ownerCarDtoList.size() < 1) {
  75. return;
  76. }
  77. List<String> memberIds = new ArrayList<>();
  78. for (OwnerCarDto ownerCarDto : ownerCarDtoList) {
  79. if (StringUtil.isEmpty(ownerCarDto.getPsId())) {
  80. continue;
  81. }
  82. memberIds.add(ownerCarDto.getMemberId());
  83. }
  84. MachineTranslateDto machineTranslateDto = new MachineTranslateDto();
  85. machineTranslateDto.setObjIds(memberIds.toArray(new String[memberIds.size()]));
  86. List<MachineTranslateDto> machineTranslateDtos = machineTranslateV1InnerServiceSMOImpl.queryObjStateInMachineTranslates(machineTranslateDto);
  87. if (ListUtil.isNull(machineTranslateDtos)) {
  88. return;
  89. }
  90. for (OwnerCarDto ownerCarDto : ownerCarDtoList) {
  91. for (MachineTranslateDto tmpMachineTranslateDto : machineTranslateDtos) {
  92. if (!ownerCarDto.getMemberId().equals(tmpMachineTranslateDto.getObjId())) {
  93. continue;
  94. }
  95. ownerCarDto.setIotStateName(tmpMachineTranslateDto.getStateName());
  96. ownerCarDto.setIotRemark(tmpMachineTranslateDto.getRemark());
  97. }
  98. }
  99. }
  100. private void freshPs(List<OwnerCarDto> ownerCarDtoList) {
  101. if (ownerCarDtoList == null || ownerCarDtoList.size() < 1) {
  102. return;
  103. }
  104. List<String> psIds = new ArrayList<>();
  105. for (OwnerCarDto ownerCarDto : ownerCarDtoList) {
  106. if (StringUtil.isEmpty(ownerCarDto.getPsId())) {
  107. continue;
  108. }
  109. psIds.add(ownerCarDto.getPsId());
  110. }
  111. ParkingSpaceDto parkingSpaceDto = new ParkingSpaceDto();
  112. parkingSpaceDto.setCommunityId(ownerCarDtoList.get(0).getCommunityId());
  113. parkingSpaceDto.setPsIds(psIds.toArray(new String[psIds.size()]));
  114. List<ParkingSpaceDto> parkingSpaceDtos = parkingSpaceInnerServiceSMOImpl.queryParkingSpaces(parkingSpaceDto);
  115. for (ParkingSpaceDto tmpParkingSpaceDto : parkingSpaceDtos) {
  116. for (OwnerCarDto ownerCarDto : ownerCarDtoList) {
  117. if (tmpParkingSpaceDto.getPsId().equals(ownerCarDto.getPsId())) {
  118. ownerCarDto.setAreaNum(tmpParkingSpaceDto.getAreaNum());
  119. ownerCarDto.setNum(tmpParkingSpaceDto.getNum());
  120. ownerCarDto.setParkingType(tmpParkingSpaceDto.getParkingType());
  121. }
  122. }
  123. }
  124. }
  125. /**
  126. * 刷入房屋信息
  127. *
  128. * @param ownerCarDtos
  129. */
  130. private void freshRoomInfo(List<OwnerCarDto> ownerCarDtos) {
  131. for (OwnerCarDto ownerCarDto : ownerCarDtos) {
  132. doFreshRoomInfo(ownerCarDto);
  133. }
  134. }
  135. /**
  136. * 车位信息刷入房屋信息
  137. *
  138. * @param ownerCarDto
  139. */
  140. private void doFreshRoomInfo(OwnerCarDto ownerCarDto) {
  141. OwnerRoomRelDto ownerRoomRelDto = new OwnerRoomRelDto();
  142. ownerRoomRelDto.setOwnerId(ownerCarDto.getOwnerId());
  143. ownerRoomRelDto.setPage(1);
  144. ownerRoomRelDto.setRow(3); //只展示3个房屋以内 不然页面太乱
  145. List<OwnerRoomRelDto> ownerRoomRelDtos = ownerRoomRelInnerServiceSMOImpl.queryOwnerRoomRels(ownerRoomRelDto);
  146. if (ListUtil.isNull(ownerRoomRelDtos)) {
  147. ownerCarDto.setRoomName("-");
  148. return;
  149. }
  150. List<String> roomIds = new ArrayList<>();
  151. for (OwnerRoomRelDto tOwnerRoomRelDto : ownerRoomRelDtos) {
  152. roomIds.add(tOwnerRoomRelDto.getRoomId());
  153. }
  154. RoomDto roomDto = new RoomDto();
  155. roomDto.setCommunityId(ownerCarDto.getCommunityId());
  156. roomDto.setRoomIds(roomIds.toArray(new String[roomIds.size()]));
  157. List<RoomDto> roomDtos = roomInnerServiceSMOImpl.queryRooms(roomDto);
  158. String roomName = "";
  159. for (RoomDto tRoomDto : roomDtos) {
  160. roomName += (tRoomDto.getFloorNum() + "-" + tRoomDto.getUnitNum() + "-" + tRoomDto.getRoomNum() + "-" + "/");
  161. }
  162. roomName = roomName.endsWith("/") ? roomName.substring(0, roomName.length() - 1) : roomName;
  163. ownerCarDto.setRoomName(roomName);
  164. }
  165. }