java110 лет назад: 5
Родитель
Сommit
f15ae49857

+ 9 - 0
java110-bean/src/main/java/com/java110/dto/notice/NoticeDto.java

@@ -36,6 +36,7 @@ public class NoticeDto extends PageDto implements Serializable {
     private String noticeId;
     private String objType;
     private String objId;
+    private String objName;
     private String state;
     private String stateName;
 
@@ -167,4 +168,12 @@ public class NoticeDto extends PageDto implements Serializable {
     public void setStateName(String stateName) {
         this.stateName = stateName;
     }
+
+    public String getObjName() {
+        return objName;
+    }
+
+    public void setObjName(String objName) {
+        this.objName = objName;
+    }
 }

+ 36 - 0
java110-bean/src/main/java/com/java110/vo/api/notice/ApiNoticeDataVo.java

@@ -15,6 +15,10 @@ public class ApiNoticeDataVo implements Serializable {
     private String noticeTypeCdName;
     private String state;
     private String stateName;
+    private String objId;
+    private String objType;
+    private String objName;
+    private String communityId;
 
     public String getNoticeId() {
         return noticeId;
@@ -95,4 +99,36 @@ public class ApiNoticeDataVo implements Serializable {
     public void setStateName(String stateName) {
         this.stateName = stateName;
     }
+
+    public String getObjId() {
+        return objId;
+    }
+
+    public void setObjId(String objId) {
+        this.objId = objId;
+    }
+
+    public String getObjType() {
+        return objType;
+    }
+
+    public void setObjType(String objType) {
+        this.objType = objType;
+    }
+
+    public String getObjName() {
+        return objName;
+    }
+
+    public void setObjName(String objName) {
+        this.objName = objName;
+    }
+
+    public String getCommunityId() {
+        return communityId;
+    }
+
+    public void setCommunityId(String communityId) {
+        this.communityId = communityId;
+    }
 }

+ 182 - 4
service-api/src/main/java/com/java110/api/listener/notice/ListNoticesListener.java

@@ -2,13 +2,17 @@ package com.java110.api.listener.notice;
 
 import com.alibaba.fastjson.JSONObject;
 import com.java110.api.listener.AbstractServiceApiListener;
-import com.java110.utils.constant.ServiceCodeConstant;
-import com.java110.utils.util.BeanConvertUtil;
 import com.java110.core.annotation.Java110Listener;
 import com.java110.core.context.DataFlowContext;
-import com.java110.intf.community.INoticeInnerServiceSMO;
-import com.java110.dto.notice.NoticeDto;
 import com.java110.core.event.service.api.ServiceDataFlowEvent;
+import com.java110.dto.FloorDto;
+import com.java110.dto.RoomDto;
+import com.java110.dto.community.CommunityDto;
+import com.java110.dto.notice.NoticeDto;
+import com.java110.dto.unit.FloorAndUnitDto;
+import com.java110.intf.community.*;
+import com.java110.utils.constant.ServiceCodeConstant;
+import com.java110.utils.util.BeanConvertUtil;
 import com.java110.vo.api.notice.ApiNoticeDataVo;
 import com.java110.vo.api.notice.ApiNoticeVo;
 import org.springframework.beans.factory.annotation.Autowired;
@@ -29,6 +33,18 @@ public class ListNoticesListener extends AbstractServiceApiListener {
     @Autowired
     private INoticeInnerServiceSMO noticeInnerServiceSMOImpl;
 
+    @Autowired
+    private ICommunityInnerServiceSMO communityInnerServiceSMOImpl;
+
+    @Autowired
+    private IFloorInnerServiceSMO floorInnerServiceSMOImpl;
+
+    @Autowired
+    private IUnitInnerServiceSMO unitInnerServiceSMOImpl;
+
+    @Autowired
+    private IRoomInnerServiceSMO roomInnerServiceSMOImpl;
+
     @Override
     public String getServiceCode() {
         return ServiceCodeConstant.SERVICE_CODE_LIST_NOTICES;
@@ -70,6 +86,7 @@ public class ListNoticesListener extends AbstractServiceApiListener {
 
         if (count > 0) {
             notices = BeanConvertUtil.covertBeanList(noticeInnerServiceSMOImpl.queryNotices(noticeDto), ApiNoticeDataVo.class);
+            refreshNotice(notices);
         } else {
             notices = new ArrayList<>();
         }
@@ -85,4 +102,165 @@ public class ListNoticesListener extends AbstractServiceApiListener {
         context.setResponseEntity(responseEntity);
 
     }
+
+    private void refreshNotice(List<ApiNoticeDataVo> notices) {
+
+        //批量处理 小区
+        refreshCommunitys(notices);
+
+        //刷新楼栋
+        refreshFloors(notices);
+
+        //批量处理单元信息
+        refreshUnits(notices);
+
+        //批量处理 房屋信息
+        refreshRooms(notices);
+
+
+    }
+
+    /**
+     * 获取批量小区
+     *
+     * @param notices 设备信息
+     * @return 批量userIds 信息
+     */
+    private void refreshCommunitys(List<ApiNoticeDataVo> notices) {
+        List<String> communityIds = new ArrayList<String>();
+        List<ApiNoticeDataVo> tmpNoticeDtos = new ArrayList<>();
+        for (ApiNoticeDataVo noticeDto : notices) {
+
+            if (NoticeDto.OBJ_TYPE_COMMUNITY.equals(noticeDto.getObjType())
+            ) {
+                communityIds.add(noticeDto.getObjId());
+                tmpNoticeDtos.add(noticeDto);
+            }
+        }
+
+        if (communityIds.size() < 1) {
+            return;
+        }
+        String[] tmpCommunityIds = communityIds.toArray(new String[communityIds.size()]);
+
+        CommunityDto communityDto = new CommunityDto();
+        communityDto.setCommunityIds(tmpCommunityIds);
+        //根据 userId 查询用户信息
+        List<CommunityDto> communityDtos = communityInnerServiceSMOImpl.queryCommunitys(communityDto);
+
+        for (ApiNoticeDataVo noticeDto : tmpNoticeDtos) {
+            for (CommunityDto tmpCommunityDto : communityDtos) {
+                if (noticeDto.getObjId().equals(tmpCommunityDto.getCommunityId())) {
+                    noticeDto.setObjName(tmpCommunityDto.getName());
+                }
+            }
+        }
+    }
+
+    /**
+     * 获取批量单元
+     *
+     * @param notices 设备信息
+     * @return 批量userIds 信息
+     */
+    private void refreshFloors(List<ApiNoticeDataVo> notices) {
+        List<String> floorIds = new ArrayList<String>();
+        List<ApiNoticeDataVo> tmpNoticeDtos = new ArrayList<>();
+        for (ApiNoticeDataVo noticeDto : notices) {
+            if (NoticeDto.OBJ_TYPE_UNIT.equals(noticeDto.getObjType())) {
+                floorIds.add(noticeDto.getObjId());
+                tmpNoticeDtos.add(noticeDto);
+            }
+        }
+
+        if (floorIds.size() < 1) {
+            return;
+        }
+        String[] tmpFloorIds = floorIds.toArray(new String[floorIds.size()]);
+
+        FloorDto floorDto = new FloorDto();
+        floorDto.setFloorIds(tmpFloorIds);
+        //根据 userId 查询用户信息
+        List<FloorDto> floorDtos = floorInnerServiceSMOImpl.queryFloors(floorDto);
+
+        for (ApiNoticeDataVo noticeDto : tmpNoticeDtos) {
+            for (FloorDto tmpFloorDto : floorDtos) {
+                if (noticeDto.getObjId().equals(tmpFloorDto.getFloorId())) {
+                    noticeDto.setObjName(tmpFloorDto.getFloorNum() + "栋");
+                }
+            }
+        }
+    }
+
+    /**
+     * 获取批量单元
+     *
+     * @param notices 设备信息
+     * @return 批量userIds 信息
+     */
+    private void refreshUnits(List<ApiNoticeDataVo> notices) {
+        List<String> unitIds = new ArrayList<String>();
+        List<ApiNoticeDataVo> tmpNoticeDtos = new ArrayList<>();
+        for (ApiNoticeDataVo noticeDto : notices) {
+            if (NoticeDto.OBJ_TYPE_UNIT.equals(noticeDto.getObjType())) {
+                unitIds.add(noticeDto.getObjId());
+                tmpNoticeDtos.add(noticeDto);
+            }
+        }
+
+        if (unitIds.size() < 1) {
+            return;
+        }
+        String[] tmpUnitIds = unitIds.toArray(new String[unitIds.size()]);
+
+        FloorAndUnitDto floorAndUnitDto = new FloorAndUnitDto();
+        floorAndUnitDto.setUnitIds(tmpUnitIds);
+        //根据 userId 查询用户信息
+        List<FloorAndUnitDto> unitDtos = unitInnerServiceSMOImpl.getFloorAndUnitInfo(floorAndUnitDto);
+
+        for (ApiNoticeDataVo noticeDto : tmpNoticeDtos) {
+            for (FloorAndUnitDto tmpUnitDto : unitDtos) {
+                if (noticeDto.getObjId().equals(tmpUnitDto.getUnitId())) {
+                    noticeDto.setObjName(tmpUnitDto.getFloorNum() + "栋" + tmpUnitDto.getUnitNum() + "单元");
+                }
+            }
+        }
+    }
+
+    /**
+     * 获取批量单元
+     *
+     * @param notices 设备信息
+     * @return 批量userIds 信息
+     */
+    private void refreshRooms(List<ApiNoticeDataVo> notices) {
+        List<String> roomIds = new ArrayList<String>();
+        List<ApiNoticeDataVo> tmpNoticeDtos = new ArrayList<>();
+        for (ApiNoticeDataVo noticeDto : notices) {
+            if (NoticeDto.OBJ_TYPE_ROOM.equals(noticeDto.getObjType())) {
+                if ("3000".equals(noticeDto.getObjType())) {
+                    roomIds.add(noticeDto.getObjId());
+                    tmpNoticeDtos.add(noticeDto);
+                }
+            }
+            if (roomIds.size() < 1) {
+                return;
+            }
+            String[] tmpRoomIds = roomIds.toArray(new String[roomIds.size()]);
+
+            RoomDto roomDto = new RoomDto();
+            roomDto.setRoomIds(tmpRoomIds);
+            roomDto.setCommunityId(notices.get(0).getCommunityId());
+            //根据 userId 查询用户信息
+            List<RoomDto> roomDtos = roomInnerServiceSMOImpl.queryRooms(roomDto);
+
+            for (ApiNoticeDataVo tmpNoticeDto : tmpNoticeDtos) {
+                for (RoomDto tmpRoomDto : roomDtos) {
+                    if (tmpNoticeDto.getObjId().equals(tmpRoomDto.getRoomId())) {
+                        tmpNoticeDto.setObjName(tmpRoomDto.getFloorNum() + "栋" + tmpRoomDto.getUnitNum() + "单元" + tmpRoomDto.getRoomNum() + "室");
+                    }
+                }
+            }
+        }
+    }
 }