Просмотр исходного кода

Merge branch 'master' of https://github.com/java110/MicroCommunity

wuxw лет назад: 6
Родитель
Сommit
7f29572770

+ 176 - 1
Api/src/main/java/com/java110/api/listener/applicationKey/ListApplicationKeysListener.java

@@ -4,8 +4,16 @@ import com.alibaba.fastjson.JSONObject;
 import com.java110.api.listener.AbstractServiceApiListener;
 import com.java110.core.annotation.Java110Listener;
 import com.java110.core.context.DataFlowContext;
+import com.java110.core.smo.community.ICommunityInnerServiceSMO;
+import com.java110.core.smo.floor.IFloorInnerServiceSMO;
 import com.java110.core.smo.hardwareAdapation.IApplicationKeyInnerServiceSMO;
+import com.java110.core.smo.room.IRoomInnerServiceSMO;
+import com.java110.core.smo.unit.IUnitInnerServiceSMO;
+import com.java110.dto.RoomDto;
+import com.java110.dto.community.CommunityDto;
 import com.java110.dto.hardwareAdapation.ApplicationKeyDto;
+import com.java110.dto.hardwareAdapation.ApplicationKeyDto;
+import com.java110.dto.unit.FloorAndUnitDto;
 import com.java110.event.service.api.ServiceDataFlowEvent;
 import com.java110.utils.constant.ServiceCodeApplicationKeyConstant;
 import com.java110.utils.util.Assert;
@@ -30,6 +38,18 @@ public class ListApplicationKeysListener extends AbstractServiceApiListener {
     @Autowired
     private IApplicationKeyInnerServiceSMO applicationKeyInnerServiceSMOImpl;
 
+    @Autowired
+    private ICommunityInnerServiceSMO communityInnerServiceSMOImpl;
+
+
+    @Autowired
+    private IFloorInnerServiceSMO floorInnerServiceSMOImpl;
+
+    @Autowired
+    private IUnitInnerServiceSMO unitInnerServiceSMOImpl;
+
+    @Autowired
+    private IRoomInnerServiceSMO roomInnerServiceSMOImpl;
     @Override
     public String getServiceCode() {
         return ServiceCodeApplicationKeyConstant.LIST_APPLICATIONKEYS;
@@ -72,7 +92,10 @@ public class ListApplicationKeysListener extends AbstractServiceApiListener {
         List<ApiApplicationKeyDataVo> applicationKeys = null;
 
         if (count > 0) {
-            applicationKeys = BeanConvertUtil.covertBeanList(applicationKeyInnerServiceSMOImpl.queryApplicationKeys(applicationKeyDto), ApiApplicationKeyDataVo.class);
+            List<ApplicationKeyDto> applicationKeyDtos = applicationKeyInnerServiceSMOImpl.queryApplicationKeys(applicationKeyDto);
+            // 刷新 位置信息
+            refreshMachines(applicationKeyDtos);
+            applicationKeys = BeanConvertUtil.covertBeanList(applicationKeyDtos, ApiApplicationKeyDataVo.class);
         } else {
             applicationKeys = new ArrayList<>();
         }
@@ -88,4 +111,156 @@ public class ListApplicationKeysListener extends AbstractServiceApiListener {
         context.setResponseEntity(responseEntity);
 
     }
+
+
+    private void refreshMachines(List<ApplicationKeyDto> applicationKeyDtos) {
+
+        //批量处理 小区
+        refreshCommunitys(applicationKeyDtos);
+
+        //批量处理单元信息
+        refreshUnits(applicationKeyDtos);
+
+        //批量处理 房屋信息
+        refreshRooms(applicationKeyDtos);
+
+    }
+
+    /**
+     * 获取批量小区
+     *
+     * @param applicationKeyDtos 设备信息
+     * @return 批量userIds 信息
+     */
+    private void refreshCommunitys(List<ApplicationKeyDto> applicationKeyDtos) {
+        List<String> communityIds = new ArrayList<String>();
+        List<ApplicationKeyDto> tmpApplicationKeyDtos = new ArrayList<>();
+        for (ApplicationKeyDto applicationKeyDto : applicationKeyDtos) {
+
+            if (!"2000".equals(applicationKeyDto.getLocationTypeCd())
+                    && !"3000".equals(applicationKeyDto.getLocationTypeCd())
+            ) {
+                communityIds.add(applicationKeyDto.getLocationObjId());
+                tmpApplicationKeyDtos.add(applicationKeyDto);
+            }
+        }
+
+        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 (ApplicationKeyDto applicationKeyDto : tmpApplicationKeyDtos) {
+            for (CommunityDto tmpCommunityDto : communityDtos) {
+                if (applicationKeyDto.getLocationObjId().equals(tmpCommunityDto.getCommunityId())) {
+                    applicationKeyDto.setLocationObjName(tmpCommunityDto.getName() + " " + applicationKeyDto.getLocationTypeName());
+                }
+            }
+        }
+    }
+
+
+    /**
+     * 获取批量单元
+     *
+     * @param applicationKeyDtos 设备信息
+     * @return 批量userIds 信息
+     */
+    private void refreshUnits(List<ApplicationKeyDto> applicationKeyDtos) {
+        List<String> unitIds = new ArrayList<String>();
+        List<ApplicationKeyDto> tmpApplicationKeyDtos = new ArrayList<>();
+        for (ApplicationKeyDto applicationKeyDto : applicationKeyDtos) {
+
+            if ("2000".equals(applicationKeyDto.getLocationTypeCd())) {
+                unitIds.add(applicationKeyDto.getLocationObjId());
+                tmpApplicationKeyDtos.add(applicationKeyDto);
+            }
+        }
+
+        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 (ApplicationKeyDto applicationKeyDto : tmpApplicationKeyDtos) {
+            for (FloorAndUnitDto tmpUnitDto : unitDtos) {
+                if (applicationKeyDto.getLocationObjId().equals(tmpUnitDto.getUnitId())) {
+                    applicationKeyDto.setLocationObjName(tmpUnitDto.getFloorNum() + "栋" + tmpUnitDto.getUnitNum() + "单元");
+                    BeanConvertUtil.covertBean(tmpUnitDto, applicationKeyDto);
+                }
+            }
+        }
+    }
+
+    /**
+     * 获取批量单元
+     *
+     * @param applicationKeyDtos 设备信息
+     * @return 批量userIds 信息
+     */
+    private void refreshRooms(List<ApplicationKeyDto> applicationKeyDtos) {
+        List<String> roomIds = new ArrayList<String>();
+        List<ApplicationKeyDto> tmpApplicationKeyDtos = new ArrayList<>();
+        for (ApplicationKeyDto applicationKeyDto : applicationKeyDtos) {
+
+            if ("3000".equals(applicationKeyDto.getLocationTypeCd())) {
+                roomIds.add(applicationKeyDto.getLocationObjId());
+                tmpApplicationKeyDtos.add(applicationKeyDto);
+            }
+        }
+        if (roomIds.size() < 1) {
+            return;
+        }
+        String[] tmpRoomIds = roomIds.toArray(new String[roomIds.size()]);
+
+        RoomDto roomDto = new RoomDto();
+        roomDto.setRoomIds(tmpRoomIds);
+        roomDto.setCommunityId(applicationKeyDtos.get(0).getCommunityId());
+        //根据 userId 查询用户信息
+        List<RoomDto> roomDtos = roomInnerServiceSMOImpl.queryRooms(roomDto);
+
+        for (ApplicationKeyDto applicationKeyDto : tmpApplicationKeyDtos) {
+            for (RoomDto tmpRoomDto : roomDtos) {
+                if (applicationKeyDto.getLocationObjId().equals(tmpRoomDto.getRoomId())) {
+                    applicationKeyDto.setLocationObjName(tmpRoomDto.getFloorNum() + "栋" + tmpRoomDto.getUnitNum() + "单元" + tmpRoomDto.getRoomNum() + "室");
+                    BeanConvertUtil.covertBean(tmpRoomDto, applicationKeyDto);
+                }
+            }
+        }
+    }
+
+
+    public IFloorInnerServiceSMO getFloorInnerServiceSMOImpl() {
+        return floorInnerServiceSMOImpl;
+    }
+
+    public void setFloorInnerServiceSMOImpl(IFloorInnerServiceSMO floorInnerServiceSMOImpl) {
+        this.floorInnerServiceSMOImpl = floorInnerServiceSMOImpl;
+    }
+
+    public IUnitInnerServiceSMO getUnitInnerServiceSMOImpl() {
+        return unitInnerServiceSMOImpl;
+    }
+
+    public void setUnitInnerServiceSMOImpl(IUnitInnerServiceSMO unitInnerServiceSMOImpl) {
+        this.unitInnerServiceSMOImpl = unitInnerServiceSMOImpl;
+    }
+
+    public IRoomInnerServiceSMO getRoomInnerServiceSMOImpl() {
+        return roomInnerServiceSMOImpl;
+    }
+
+    public void setRoomInnerServiceSMOImpl(IRoomInnerServiceSMO roomInnerServiceSMOImpl) {
+        this.roomInnerServiceSMOImpl = roomInnerServiceSMOImpl;
+    }
 }

+ 31 - 0
WebService/src/main/resources/components/applicationKeyPackage/edit-applicationKey/editApplicationKey.js

@@ -33,6 +33,37 @@
                 vc.component.refreshEditApplicationKeyInfo();
                // $('#editApplicationKeyModel').modal('show');
                 vc.copyObject(_params, vc.component.editApplicationKeyInfo);
+                if (vc.component.editApplicationKeyInfo.locationTypeCd == '2000') {
+                    vc.emit('editApplicationKey','floorSelect2','setFloor',{
+                        floorId:vc.component.editApplicationKeyInfo.floorId,
+                        floorNum:vc.component.editApplicationKeyInfo.floorNum
+                    });
+                    vc.emit('editApplicationKey','unitSelect2','setUnit',{
+                        floorId:vc.component.editApplicationKeyInfo.floorId,
+                        floorNum:vc.component.editApplicationKeyInfo.floorNum,
+                        unitId:vc.component.editApplicationKeyInfo.unitId,
+                        unitNum:vc.component.editApplicationKeyInfo.unitNum,
+                    });
+                } else if (vc.component.editApplicationKeyInfo.locationTypeCd == '3000') {
+                    vc.emit('editApplicationKey','floorSelect2','setFloor',{
+                        floorId:vc.component.editApplicationKeyInfo.floorId,
+                        floorNum:vc.component.editApplicationKeyInfo.floorNum
+                    });
+                    vc.emit('editApplicationKey','unitSelect2','setUnit',{
+                        floorId:vc.component.editApplicationKeyInfo.floorId,
+                        floorNum:vc.component.editApplicationKeyInfo.floorNum,
+                        unitId:vc.component.editApplicationKeyInfo.unitId,
+                        unitNum:vc.component.editApplicationKeyInfo.unitNum,
+                    });
+                    vc.emit('editApplicationKey','roomSelect2','setRoom',{
+                        floorId:vc.component.editApplicationKeyInfo.floorId,
+                        floorNum:vc.component.editApplicationKeyInfo.floorNum,
+                        unitId:vc.component.editApplicationKeyInfo.unitId,
+                        unitNum:vc.component.editApplicationKeyInfo.unitNum,
+                        roomId:vc.component.editApplicationKeyInfo.roomId,
+                        roomNum:vc.component.editApplicationKeyInfo.roomNum,
+                    });
+                }
                 vc.component.editApplicationKeyInfo.communityId = vc.getCurrentCommunity().communityId;
             });
 

+ 90 - 0
java110-bean/src/main/java/com/java110/dto/hardwareAdapation/ApplicationKeyDto.java

@@ -27,6 +27,16 @@ public class ApplicationKeyDto extends PageDto implements Serializable {
     private String state;
     private String age;
     private String communityId;
+    private String locationTypeCd;
+    private String locationTypeName;
+    private String locationObjId;
+    private String locationObjName;
+    private String floorId;
+    private String floorNum;
+    private String unitId;
+    private String unitNum;
+    private String roomId;
+    private String roomNum;
 
 
     private Date createTime;
@@ -148,4 +158,84 @@ public class ApplicationKeyDto extends PageDto implements Serializable {
     public void setEndTime(String endTime) {
         this.endTime = endTime;
     }
+
+    public String getLocationTypeCd() {
+        return locationTypeCd;
+    }
+
+    public void setLocationTypeCd(String locationTypeCd) {
+        this.locationTypeCd = locationTypeCd;
+    }
+
+    public String getLocationTypeName() {
+        return locationTypeName;
+    }
+
+    public void setLocationTypeName(String locationTypeName) {
+        this.locationTypeName = locationTypeName;
+    }
+
+    public String getLocationObjId() {
+        return locationObjId;
+    }
+
+    public void setLocationObjId(String locationObjId) {
+        this.locationObjId = locationObjId;
+    }
+
+    public String getLocationObjName() {
+        return locationObjName;
+    }
+
+    public void setLocationObjName(String locationObjName) {
+        this.locationObjName = locationObjName;
+    }
+
+    public String getFloorId() {
+        return floorId;
+    }
+
+    public void setFloorId(String floorId) {
+        this.floorId = floorId;
+    }
+
+    public String getFloorNum() {
+        return floorNum;
+    }
+
+    public void setFloorNum(String floorNum) {
+        this.floorNum = floorNum;
+    }
+
+    public String getUnitId() {
+        return unitId;
+    }
+
+    public void setUnitId(String unitId) {
+        this.unitId = unitId;
+    }
+
+    public String getUnitNum() {
+        return unitNum;
+    }
+
+    public void setUnitNum(String unitNum) {
+        this.unitNum = unitNum;
+    }
+
+    public String getRoomId() {
+        return roomId;
+    }
+
+    public void setRoomId(String roomId) {
+        this.roomId = roomId;
+    }
+
+    public String getRoomNum() {
+        return roomNum;
+    }
+
+    public void setRoomNum(String roomNum) {
+        this.roomNum = roomNum;
+    }
 }

+ 88 - 0
java110-bean/src/main/java/com/java110/vo/api/applicationKey/ApiApplicationKeyDataVo.java

@@ -14,6 +14,16 @@ public class ApiApplicationKeyDataVo implements Serializable {
     private String idCard;
     private String startTime;
     private String endTime;
+    private String locationTypeCd;
+    private String locationTypeName;
+    private String locationObjId;
+    private String locationObjName;
+    private String floorId;
+    private String floorNum;
+    private String unitId;
+    private String unitNum;
+    private String roomId;
+    private String roomNum;
 
     public String getApplicationKeyId() {
         return applicationKeyId;
@@ -87,5 +97,83 @@ public class ApiApplicationKeyDataVo implements Serializable {
         this.endTime = endTime;
     }
 
+    public String getLocationTypeCd() {
+        return locationTypeCd;
+    }
+
+    public void setLocationTypeCd(String locationTypeCd) {
+        this.locationTypeCd = locationTypeCd;
+    }
+
+    public String getLocationTypeName() {
+        return locationTypeName;
+    }
+
+    public void setLocationTypeName(String locationTypeName) {
+        this.locationTypeName = locationTypeName;
+    }
+
+    public String getLocationObjId() {
+        return locationObjId;
+    }
+
+    public void setLocationObjId(String locationObjId) {
+        this.locationObjId = locationObjId;
+    }
+
+    public String getLocationObjName() {
+        return locationObjName;
+    }
+
+    public void setLocationObjName(String locationObjName) {
+        this.locationObjName = locationObjName;
+    }
+
+    public String getFloorId() {
+        return floorId;
+    }
+
+    public void setFloorId(String floorId) {
+        this.floorId = floorId;
+    }
 
+    public String getFloorNum() {
+        return floorNum;
+    }
+
+    public void setFloorNum(String floorNum) {
+        this.floorNum = floorNum;
+    }
+
+    public String getUnitId() {
+        return unitId;
+    }
+
+    public void setUnitId(String unitId) {
+        this.unitId = unitId;
+    }
+
+    public String getUnitNum() {
+        return unitNum;
+    }
+
+    public void setUnitNum(String unitNum) {
+        this.unitNum = unitNum;
+    }
+
+    public String getRoomId() {
+        return roomId;
+    }
+
+    public void setRoomId(String roomId) {
+        this.roomId = roomId;
+    }
+
+    public String getRoomNum() {
+        return roomNum;
+    }
+
+    public void setRoomNum(String roomNum) {
+        this.roomNum = roomNum;
+    }
 }

+ 10 - 3
java110-db/src/main/resources/mapper/hardwareAdapation/ApplicationKeyServiceDaoImplMapper.xml

@@ -124,8 +124,12 @@ application_key_id,id_card,sex,end_time,machine_id,operate,type_cd,name,tel,star
         select t.application_key_id,t.application_key_id applicationKeyId,t.id_card,t.id_card
         idCard,t.sex,t.status_cd,t.status_cd statusCd,t.end_time,t.end_time endTime,t.machine_id,t.machine_id
         machineId,t.type_cd,t.type_cd typeCd,t.name,t.tel,t.start_time,t.start_time
-        startTime,t.state,t.community_id,t.community_id communityId,t.b_id,t.b_id bId,t.age
-        from application_key t
+        startTime,t.state,t.community_id,t.community_id communityId,t.b_id,t.b_id bId,t.age,
+        m.`location_type_cd` locationTypeCd,m.`location_obj_id` locationObjId
+        from application_key t,machine m
+        where 1 =1
+        and t.machine_id = m.machine_id
+        and m.status_cd = '0'
         where 1 =1
         <if test="applicationKeyId !=null and applicationKeyId != ''">
             and t.application_key_id= #{applicationKeyId}
@@ -228,8 +232,10 @@ application_key_id,id_card,sex,end_time,machine_id,operate,type_cd,name,tel,star
     <!-- 查询钥匙申请数量 add by wuxw 2018-07-03 -->
     <select id="queryApplicationKeysCount" parameterType="Map" resultType="Map">
         select count(1) count
-        from application_key t
+        from application_key t,machine m
         where 1 =1
+        and t.machine_id = m.machine_id
+        and m.status_cd = '0'
         <if test="applicationKeyId !=null and applicationKeyId != ''">
             and t.application_key_id= #{applicationKeyId}
         </if>
@@ -265,6 +271,7 @@ application_key_id,id_card,sex,end_time,machine_id,operate,type_cd,name,tel,star
         </if>
         <if test="communityId !=null and communityId != ''">
             and t.community_id= #{communityId}
+            and m.community_id= #{communityId}
         </if>
         <if test="bId !=null and bId != ''">
             and t.b_id= #{bId}