Selaa lähdekoodia

加入房屋设置费用功能

wuxw 6 vuotta sitten
vanhempi
commit
9fd76b4f84

+ 208 - 0
Api/src/main/java/com/java110/api/listener/fee/ListRoomsWhereFeeSetListener.java

@@ -0,0 +1,208 @@
+package com.java110.api.listener.fee;
+
+import com.alibaba.fastjson.JSONObject;
+import com.java110.api.listener.AbstractServiceApiListener;
+import com.java110.core.annotation.Java110Listener;
+import com.java110.core.context.DataFlow;
+import com.java110.core.context.DataFlowContext;
+import com.java110.core.smo.fee.IFeeConfigInnerServiceSMO;
+import com.java110.core.smo.owner.IOwnerInnerServiceSMO;
+import com.java110.core.smo.owner.IOwnerRoomRelInnerServiceSMO;
+import com.java110.core.smo.room.IRoomInnerServiceSMO;
+import com.java110.dto.RoomDto;
+import com.java110.dto.fee.FeeConfigDto;
+import com.java110.dto.owner.OwnerDto;
+import com.java110.dto.owner.OwnerRoomRelDto;
+import com.java110.event.service.api.ServiceDataFlowEvent;
+import com.java110.utils.constant.ServiceCodeFeeConfigConstant;
+import com.java110.utils.util.Assert;
+import com.java110.utils.util.BeanConvertUtil;
+import com.java110.vo.api.ApiRoomDataVo;
+import com.java110.vo.api.ApiRoomVo;
+import com.java110.vo.api.feeConfig.ApiFeeConfigDataVo;
+import com.java110.vo.api.feeConfig.ApiFeeConfigVo;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.http.HttpMethod;
+import org.springframework.http.HttpStatus;
+import org.springframework.http.ResponseEntity;
+
+import java.security.acl.Owner;
+import java.util.ArrayList;
+import java.util.List;
+
+
+/**
+ * 查询需要设置费用的房屋
+ */
+@Java110Listener("listRoomsWhereFeeSetListener")
+public class ListRoomsWhereFeeSetListener extends AbstractServiceApiListener {
+
+
+    @Autowired
+    private IRoomInnerServiceSMO roomInnerServiceSMOImpl;
+
+    @Autowired
+    private IOwnerInnerServiceSMO ownerInnerServiceSMOImpl;
+
+    @Autowired
+    private IOwnerRoomRelInnerServiceSMO ownerRoomRelInnerServiceSMOImpl;
+
+    @Override
+    public String getServiceCode() {
+        return ServiceCodeFeeConfigConstant.LIST_ROOMS_WHERE_FEE_SET;
+    }
+
+    @Override
+    public HttpMethod getHttpMethod() {
+        return HttpMethod.GET;
+    }
+
+
+    @Override
+    public int getOrder() {
+        return DEFAULT_ORDER;
+    }
+
+
+    @Override
+    protected void validate(ServiceDataFlowEvent event, JSONObject reqJson) {
+        super.validatePageInfo(reqJson);
+        Assert.hasKeyAndValue(reqJson, "communityId", "未包含小区ID");
+    }
+
+    @Override
+    protected void doSoService(ServiceDataFlowEvent event, DataFlowContext context, JSONObject reqJson) {
+
+        ApiRoomVo apiRoomVo = new ApiRoomVo();
+        //根据 业主来定位房屋信息
+        if (reqJson.containsKey("ownerName") || reqJson.containsKey("idCard")) {
+            queryRoomByOwnerInfo(apiRoomVo, reqJson, context);
+
+            return;
+        }
+
+        RoomDto roomDto = BeanConvertUtil.covertBean(reqJson, RoomDto.class);
+        //查询总记录数
+        int total = roomInnerServiceSMOImpl.queryRoomsCount(BeanConvertUtil.covertBean(reqJson, RoomDto.class));
+        apiRoomVo.setTotal(total);
+        if (total > 0) {
+            List<RoomDto> roomDtoList = roomInnerServiceSMOImpl.queryRooms(roomDto);
+
+            refreshRoomOwners(reqJson.getString("communityId"), roomDtoList);
+
+            apiRoomVo.setRooms(BeanConvertUtil.covertBeanList(roomDtoList, ApiRoomDataVo.class));
+        }
+        int row = reqJson.getInteger("row");
+        apiRoomVo.setRecords((int) Math.ceil((double) total / (double) row));
+
+        ResponseEntity<String> responseEntity = new ResponseEntity<String>(JSONObject.toJSONString(apiRoomVo), HttpStatus.OK);
+        context.setResponseEntity(responseEntity);
+
+    }
+
+    /**
+     * 根据业主查询 房屋信息
+     *
+     * @param apiRoomVo
+     * @param reqJson
+     */
+    private void queryRoomByOwnerInfo(ApiRoomVo apiRoomVo, JSONObject reqJson, DataFlowContext context) {
+
+        OwnerRoomRelDto ownerRoomRelDto = BeanConvertUtil.covertBean(reqJson, OwnerRoomRelDto.class);
+        ownerRoomRelDto.setByOwnerInfo(true);
+        int total = ownerRoomRelInnerServiceSMOImpl.queryOwnerRoomRelsCount(ownerRoomRelDto);
+
+        apiRoomVo.setTotal(total);
+        if (total > 0) {
+            List<OwnerRoomRelDto> ownerRoomRelDtos = ownerRoomRelInnerServiceSMOImpl.queryOwnerRoomRels(ownerRoomRelDto);
+            List<RoomDto> roomDtoList = null;
+
+            roomDtoList = refreshOwnerRooms(reqJson.getString("communityId"), ownerRoomRelDtos);
+
+            apiRoomVo.setRooms(BeanConvertUtil.covertBeanList(roomDtoList, ApiRoomDataVo.class));
+        }
+        int row = reqJson.getInteger("row");
+        apiRoomVo.setRecords((int) Math.ceil((double) total / (double) row));
+
+        ResponseEntity<String> responseEntity = new ResponseEntity<String>(JSONObject.toJSONString(apiRoomVo), HttpStatus.OK);
+        context.setResponseEntity(responseEntity);
+    }
+
+    private List<RoomDto> refreshOwnerRooms(String communityId, List<OwnerRoomRelDto> ownerRoomRelDtos) {
+
+        List<String> roomIds = new ArrayList<>();
+
+        for (OwnerRoomRelDto ownerRoomRelDto : ownerRoomRelDtos) {
+            roomIds.add(ownerRoomRelDto.getRoomId());
+        }
+        RoomDto roomDto = new RoomDto();
+        roomDto.setCommunityId(communityId);
+        roomDto.setRoomIds(roomIds.toArray(new String[roomIds.size()]));
+        List<RoomDto> roomDtos = roomInnerServiceSMOImpl.queryRooms(roomDto);
+
+        for (RoomDto tmpRoomDto : roomDtos) {
+            for (OwnerRoomRelDto ownerRoomRelDto : ownerRoomRelDtos) {
+                if (tmpRoomDto.getRoomId().equals(ownerRoomRelDto.getRoomId())) {
+                    tmpRoomDto.setOwnerId(ownerRoomRelDto.getOwnerId());
+                    tmpRoomDto.setOwnerName(ownerRoomRelDto.getOwnerName());
+                    tmpRoomDto.setIdCard(ownerRoomRelDto.getIdCard());
+                    tmpRoomDto.setLink(ownerRoomRelDto.getLink());
+                }
+            }
+        }
+
+        return roomDtos;
+    }
+
+    /**
+     * 刷入房屋业主信息
+     *
+     * @param roomDtos
+     */
+    private void refreshRoomOwners(String communityId, List<RoomDto> roomDtos) {
+
+        List<String> roomIds = new ArrayList<>();
+        for (RoomDto roomDto : roomDtos) {
+            roomIds.add(roomDto.getRoomId());
+        }
+        OwnerDto ownerDto = new OwnerDto();
+        ownerDto.setCommunityId(communityId);
+        ownerDto.setRoomIds(roomIds.toArray(new String[roomIds.size()]));
+        List<OwnerDto> ownerDtos = ownerInnerServiceSMOImpl.queryOwnersByRoom(ownerDto);
+
+        for (RoomDto roomDto : roomDtos) {
+            for (OwnerDto tmpOwnerDto : ownerDtos) {
+                if (roomDto.getRoomId().equals(tmpOwnerDto.getRoomId())) {
+                    roomDto.setOwnerId(tmpOwnerDto.getOwnerId());
+                    roomDto.setOwnerName(tmpOwnerDto.getName());
+                    roomDto.setIdCard(tmpOwnerDto.getIdCard());
+                    roomDto.setLink(tmpOwnerDto.getLink());
+                }
+            }
+        }
+    }
+
+    public IRoomInnerServiceSMO getRoomInnerServiceSMOImpl() {
+        return roomInnerServiceSMOImpl;
+    }
+
+    public void setRoomInnerServiceSMOImpl(IRoomInnerServiceSMO roomInnerServiceSMOImpl) {
+        this.roomInnerServiceSMOImpl = roomInnerServiceSMOImpl;
+    }
+
+    public IOwnerInnerServiceSMO getOwnerInnerServiceSMOImpl() {
+        return ownerInnerServiceSMOImpl;
+    }
+
+    public void setOwnerInnerServiceSMOImpl(IOwnerInnerServiceSMO ownerInnerServiceSMOImpl) {
+        this.ownerInnerServiceSMOImpl = ownerInnerServiceSMOImpl;
+    }
+
+    public IOwnerRoomRelInnerServiceSMO getOwnerRoomRelInnerServiceSMOImpl() {
+        return ownerRoomRelInnerServiceSMOImpl;
+    }
+
+    public void setOwnerRoomRelInnerServiceSMOImpl(IOwnerRoomRelInnerServiceSMO ownerRoomRelInnerServiceSMOImpl) {
+        this.ownerRoomRelInnerServiceSMOImpl = ownerRoomRelInnerServiceSMOImpl;
+    }
+}

+ 53 - 0
WebService/src/main/java/com/java110/web/components/fee/RoomCreateFeeComponent.java

@@ -0,0 +1,53 @@
+package com.java110.web.components.fee;
+
+import com.java110.core.context.IPageData;
+import com.java110.web.smo.IFloorServiceSMO;
+import com.java110.web.smo.IUnitServiceSMO;
+import com.java110.web.smo.feeConfig.IListRoomsWhereFeeSetSMO;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.http.ResponseEntity;
+import org.springframework.stereotype.Component;
+
+/**
+ * @ClassName RoomCreateFeeComponent
+ * @Description TODO 房屋创建费用
+ * @Author wuxw
+ * @Date 2020/1/30 21:35
+ * @Version 1.0
+ * add by wuxw 2020/1/30
+ **/
+@Component("roomCreateFee")
+public class RoomCreateFeeComponent {
+
+    @Autowired
+    private IFloorServiceSMO floorServiceSMOImpl;
+
+    @Autowired
+    private IUnitServiceSMO unitServiceSMOImpl;
+
+    @Autowired
+    private IListRoomsWhereFeeSetSMO listRoomsWhereFeeSetSMOImpl;
+
+    public ResponseEntity<String> listRoom(IPageData pd){
+        return listRoomsWhereFeeSetSMOImpl.listRooms(pd);
+    }
+    /**
+     * 根据 floorId 查询单元信息
+     *
+     * @param pd 包含floorId 和小区ID 页面封装对象
+     * @return 单元信息
+     */
+    public ResponseEntity<String> loadFloor(IPageData pd) {
+        return floorServiceSMOImpl.getFloor(pd);
+    }
+
+    /**
+     * 根据 floorId 查询单元信息
+     *
+     * @param pd 包含floorId 和小区ID 页面封装对象
+     * @return 单元信息
+     */
+    public ResponseEntity<String> loadUnits(IPageData pd) {
+        return unitServiceSMOImpl.listUnits(pd);
+    }
+}

+ 17 - 0
WebService/src/main/java/com/java110/web/smo/feeConfig/IListRoomsWhereFeeSetSMO.java

@@ -0,0 +1,17 @@
+package com.java110.web.smo.feeConfig;
+
+import com.java110.core.context.IPageData;
+import org.springframework.http.ResponseEntity;
+
+/**
+ * @ClassName IListRoomsWhereFeeSet
+ * @Description TODO 查询将要设置费用的房屋
+ * @Author wuxw
+ * @Date 2020/1/30 21:47
+ * @Version 1.0
+ * add by wuxw 2020/1/30
+ **/
+public interface IListRoomsWhereFeeSetSMO {
+
+    ResponseEntity<String> listRooms(IPageData pd);
+}

+ 67 - 0
WebService/src/main/java/com/java110/web/smo/feeConfig/impl/ListRoomsWhereFeeSetSMOImpl.java

@@ -0,0 +1,67 @@
+package com.java110.web.smo.feeConfig.impl;
+
+import com.alibaba.fastjson.JSONObject;
+import com.java110.core.component.AbstractComponentSMO;
+import com.java110.core.context.IPageData;
+import com.java110.entity.component.ComponentValidateResult;
+import com.java110.utils.constant.ServiceConstant;
+import com.java110.utils.exception.SMOException;
+import com.java110.utils.util.Assert;
+import com.java110.utils.util.BeanConvertUtil;
+import com.java110.web.smo.feeConfig.IListFeeConfigsSMO;
+import com.java110.web.smo.feeConfig.IListRoomsWhereFeeSetSMO;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.http.HttpMethod;
+import org.springframework.http.ResponseEntity;
+import org.springframework.stereotype.Service;
+import org.springframework.web.client.RestTemplate;
+
+import java.util.Map;
+
+/**
+ * 查询设置费用房屋
+ */
+@Service("listRoomsWhereFeeSetSMOImpl")
+public class ListRoomsWhereFeeSetSMOImpl extends AbstractComponentSMO implements IListRoomsWhereFeeSetSMO {
+
+    @Autowired
+    private RestTemplate restTemplate;
+
+    @Override
+    public ResponseEntity<String> listRooms(IPageData pd) throws SMOException {
+        return businessProcess(pd);
+    }
+
+    @Override
+    protected void validate(IPageData pd, JSONObject paramIn) {
+
+        super.validatePageInfo(pd);
+        Assert.hasKeyAndValue(paramIn, "communityId", "未包含小区ID");
+        //super.checkUserHasPrivilege(pd, restTemplate, PrivilegeCodeConstant.AGENT_HAS_LIST_FEECONFIG);
+    }
+
+    @Override
+    protected ResponseEntity<String> doBusinessProcess(IPageData pd, JSONObject paramIn) {
+        ComponentValidateResult result = super.validateStoreStaffCommunityRelationship(pd, restTemplate);
+
+        Map paramMap = BeanConvertUtil.beanCovertMap(result);
+        paramIn.putAll(paramMap);
+
+        String apiUrl = ServiceConstant.SERVICE_API_URL + "/api/fee.listRoomsWhereFeeSet" + mapToUrlParam(paramIn);
+
+
+        ResponseEntity<String> responseEntity = this.callCenterService(restTemplate, pd, "",
+                apiUrl,
+                HttpMethod.GET);
+
+        return responseEntity;
+    }
+
+    public RestTemplate getRestTemplate() {
+        return restTemplate;
+    }
+
+    public void setRestTemplate(RestTemplate restTemplate) {
+        this.restTemplate = restTemplate;
+    }
+}

+ 163 - 0
WebService/src/main/resources/components/feePackage/roomCreateFee/roomCreateFee.html

@@ -0,0 +1,163 @@
+<div id="component">
+    <div class="row">
+        <div class="col-lg-12">
+            <div class="ibox ">
+                <div class="ibox-title">
+                    <h5>查询条件</h5>
+                    <div class="ibox-tools" style="top:10px;">
+                        <button type="button" class="btn btn-link btn-sm" style="margin-right:10px;"
+                                v-on:click="_moreCondition()">{{roomCreateFeeInfo.moreCondition == true?'隐藏':'更多'}}
+                        </button>
+                    </div>
+                </div>
+                <div class="ibox-content">
+                    <div class="row">
+
+                        <div class="col-sm-4">
+                            <div class="form-group input-group">
+                                <input type="text" placeholder="请选择楼栋"
+                                       v-model="roomCreateFeeInfo.conditions.floorName" class=" form-control">
+                                <div class="input-group-prepend">
+                                    <button type="button" class="btn btn-primary btn-sm"
+                                            v-on:click="_openChooseFloorMethod()"><i
+                                            class="glyphicon glyphicon-search"></i> 选择
+                                    </button>
+                                </div>
+                            </div>
+
+                        </div>
+                        <div class="col-sm-3">
+                            <div class="form-group">
+                                <select class="form-control-sm form-control input-s-sm inline"
+                                        v-model="roomCreateFeeInfo.conditions.unitId">
+                                    <option selected value="">请选择单元</option>
+                                    <option v-for="(unit,index) in roomUnits" :key="index" v-bind:value="unit.unitId">
+                                        {{unit.unitNum}}单元
+                                    </option>
+                                </select>
+                            </div>
+                        </div>
+                        <div class="col-sm-4">
+                            <div class="form-group">
+                                <input type="text" placeholder="请填写房屋编号" class="form-control form-control-sm"
+                                       v-model="roomCreateFeeInfo.conditions.roomNum">
+                            </div>
+                        </div>
+                        <div class="col-sm-1">
+                            <button type="button" class="btn btn-primary btn-sm" v-on:click="_queryRoomMethod()"><i
+                                    class="glyphicon glyphicon-search"></i> 查询
+                            </button>
+                        </div>
+
+                    </div>
+                    <div class="row" v-if="roomCreateFeeInfo.moreCondition == true">
+                        <div class="col-sm-4">
+                            <div class="form-group">
+                                <input type="text" placeholder="请填写房屋ID" class="form-control form-control-sm"
+                                       v-model="roomCreateFeeInfo.conditions.roomId">
+                            </div>
+                        </div>
+                        <div class="col-sm-3">
+                            <input type="text" placeholder="请填写业主名称" class="form-control form-control-sm"
+                                   v-model="roomCreateFeeInfo.conditions.ownerName">
+                        </div>
+                        <div class="col-sm-4">
+                            <input type="text" placeholder="请填写业主身份证号" class="form-control form-control-sm"
+                                   v-model="roomCreateFeeInfo.conditions.idCard">
+                        </div>
+                    </div>
+
+                </div>
+            </div>
+        </div>
+    </div>
+
+    <div class="row">
+        <div class="col-lg-12">
+            <div class="ibox">
+                <div class="ibox-title">
+                    <h5>房屋信息</h5>
+                    <div class="ibox-tools" style="top:10px;">
+                        <button type="button" class="btn btn-primary btn-sm"
+                                style="margin-left:10px" v-on:click="_openAddRoom()">
+                            <i class="glyphicon glyphicon-plus"></i> 批量创建收费
+                        </button>
+                        <button type="button" class="btn btn-primary btn-sm"
+                                style="margin-left:10px" v-on:click="_openAddRoom()">
+                            <i class="glyphicon glyphicon-plus"></i> 批量取消收费
+                        </button>
+                        <button type="button" class="btn btn-primary btn-sm"
+                                style="margin-left:10px" v-on:click="_openAddRoom()">
+                            <i class="glyphicon glyphicon-plus"></i> 查看收费
+                        </button>
+                    </div>
+                </div>
+                <div class="ibox-content">
+
+                    <table class="footable table table-stripped toggle-arrow-tiny" style="margin-top:10px"
+                           data-page-size="10">
+                        <thead>
+                        <tr>
+                            <th>房屋ID</th>
+                            <th data-hide="phone">房屋编号</th>
+                            <th data-hide="phone">楼层</th>
+                            <th data-hide="phone">建筑面积</th>
+                            <th data-hide="phone">业主ID</th>
+                            <th data-hide="phone">业主名称</th>
+                            <th data-hide="phone">业主身份证</th>
+                            <th class="text-right">操作</th>
+
+                        </tr>
+                        </thead>
+                        <tbody>
+                        <tr v-for="room in roomCreateFeeInfo.rooms">
+                            <td>
+                                {{room.roomId}}
+                            </td>
+                            <td>
+                                {{room.floorNum}}号楼{{room.unitNum}}单元{{room.roomNum}}室
+                            </td>
+                            <td>
+                                {{room.layer}}层
+                            </td>
+                            <td>
+                                {{room.ownerId}}
+                            </td>
+                            <td>
+                                {{room.ownerName}}
+                            </td>
+                            <td>
+                                {{room.idCard}}
+                            </td>
+                            <td class="text-right">
+                                <div class="btn-group">
+                                    <button class="btn-white btn btn-xs" v-on:click="_openEditRoomModel(room)">创建收费
+                                    </button>
+                                </div>
+                                <div class="btn-group">
+                                    <button class="btn-white btn btn-xs" v-on:click="_openDelRoomModel(room)">取消收费
+                                    </button>
+                                </div>
+                            </td>
+                        </tr>
+                        </tbody>
+                        <tfoot>
+                        <tr>
+                            <td colspan="7">
+                                <ul class="pagination float-right"></ul>
+                            </td>
+                        </tr>
+                        </tfoot>
+                    </table>
+                    <!-- 分页 -->
+                    <vc:create name="pagination"></vc:create>
+
+                </div>
+            </div>
+        </div>
+    </div>
+    <vc:create name="searchFloor"
+               emitChooseFloor="room"
+               emitLoadData="room"
+    ></vc:create>
+</div>

+ 172 - 0
WebService/src/main/resources/components/feePackage/roomCreateFee/roomCreateFee.js

@@ -0,0 +1,172 @@
+/**
+    入驻小区
+**/
+(function(vc){
+    var DEFAULT_PAGE = 1;
+    var DEFAULT_ROW = 10;
+    vc.extends({
+        data:{
+            roomUnits:[],
+            roomCreateFeeInfo:{
+                rooms:[],
+                total:0,
+                records:1,
+                floorId:'',
+                unitId:'',
+                state:'',
+                roomNum:'',
+                moreCondition:false,
+                conditions:{
+                    floorId:'',
+                    floorName:'',
+                    unitId:'',
+                    roomNum:'',
+                    roomId:'',
+                    state:'',
+                    section:''
+                }
+            }
+        },
+        _initMethod:function(){
+            vc.component.roomCreateFeeInfo.conditions.floorId = vc.getParam("floorId");
+            vc.component.roomCreateFeeInfo.conditions.floorName = vc.getParam("floorName");
+            vc.component.listRoom(DEFAULT_PAGE,DEFAULT_ROW);
+        },
+        _initEvent:function(){
+            vc.on('room','chooseFloor',function(_param){
+                vc.component.roomCreateFeeInfo.conditions.floorId = _param.floorId;
+                vc.component.roomCreateFeeInfo.conditions.floorName = _param.floorName;
+                vc.component.loadUnits(_param.floorId);
+
+            });
+            vc.on('pagination','page_event',function(_currentPage){
+                vc.component.listRoom(_currentPage,DEFAULT_ROW);
+            });
+        },
+        methods:{
+
+            listRoom:function(_page,_row){
+
+                vc.component.roomCreateFeeInfo.conditions.page=_page;
+                vc.component.roomCreateFeeInfo.conditions.row=_row;
+                vc.component.roomCreateFeeInfo.conditions.communityId = vc.getCurrentCommunity().communityId;
+                var param = {
+                    params:vc.component.roomCreateFeeInfo.conditions
+                };
+
+               //发送get请求
+               vc.http.get('roomCreateFee',
+                            'listRoom',
+                             param,
+                             function(json,res){
+                                var listRoomData =JSON.parse(json);
+
+                                vc.component.roomCreateFeeInfo.total = listRoomData.total;
+                                vc.component.roomCreateFeeInfo.records = listRoomData.records;
+                                vc.component.roomCreateFeeInfo.rooms = listRoomData.rooms;
+
+                                vc.emit('pagination','init',{
+                                    total:vc.component.roomCreateFeeInfo.records,
+                                    dataCount: vc.component.roomCreateFeeInfo.total,
+                                    currentPage:_page
+                                });
+                             },function(errInfo,error){
+                                console.log('请求失败处理');
+                             }
+                           );
+            },
+            _openAddRoom:function(){
+                vc.jumpToPage("/flow/addRoomBindingFlow");
+            },
+            _openEditRoomModel:function(_room){
+                //_room.floorId = vc.component.roomCreateFeeInfo.conditions.floorId;
+                vc.emit('editRoom','openEditRoomModal',_room);
+            },
+            _openDelRoomModel:function(_room){
+                 //_room.floorId = vc.component.roomCreateFeeInfo.conditions.floorId;
+                 vc.emit('deleteRoom','openRoomModel',_room);
+            },
+            /**
+                根据楼ID加载房屋
+            **/
+            loadUnits:function(_floorId){
+                vc.component.addRoomUnits = [];
+                var param = {
+                    params:{
+                        floorId:_floorId,
+                        communityId:vc.getCurrentCommunity().communityId
+                    }
+                }
+                vc.http.get(
+                    'roomCreateFee',
+                    'loadUnits',
+                     param,
+                     function(json,res){
+                        //vm.menus = vm.refreshMenuActive(JSON.parse(json),0);
+                        if(res.status == 200){
+                            var tmpUnits = JSON.parse(json);
+                            vc.component.roomUnits = tmpUnits;
+
+                            return ;
+                        }
+                        vc.message(json);
+                     },
+                     function(errInfo,error){
+                        console.log('请求失败处理');
+
+                        vc.message(errInfo);
+                     });
+            },
+            _queryRoomMethod:function(){
+                vc.component.listRoom(DEFAULT_PAGE,DEFAULT_ROW);
+            },
+            _loadDataByParam: function(){
+                vc.component.roomCreateFeeInfo.conditions.floorId = vc.getParam("floorId");
+                vc.component.roomCreateFeeInfo.conditions.floorId = vc.getParam("floorName");
+                //如果 floodId 没有传 则,直接结束
+               /* if(!vc.notNull(vc.component.roomCreateFeeInfo.conditions.floorId)){
+                    return ;
+                }*/
+
+                var param = {
+                    params:{
+                        communityId:vc.getCurrentCommunity().communityId,
+                        floorId:vc.component.roomCreateFeeInfo.conditions.floorId
+                    }
+                }
+
+                vc.http.get(
+                    'roomCreateFee',
+                    'loadFloor',
+                     param,
+                     function(json,res){
+                        if(res.status == 200){
+                            var _floorInfo = JSON.parse(json);
+                            var _tmpFloor = _floorInfo.apiFloorDataVoList[0];
+                            /*vc.emit('roomSelectFloor','chooseFloor', _tmpFloor);
+                            */
+
+                            return ;
+                        }
+                        vc.message(json);
+                     },
+                     function(errInfo,error){
+                        console.log('请求失败处理');
+
+                        vc.message(errInfo);
+                     });
+
+            },
+            _moreCondition:function(){
+                if(vc.component.roomCreateFeeInfo.moreCondition){
+                    vc.component.roomCreateFeeInfo.moreCondition = false;
+                }else{
+                    vc.component.roomCreateFeeInfo.moreCondition = true;
+                }
+            },
+            _openChooseFloorMethod:function(){
+                vc.emit('searchFloor','openSearchFloorModel',{});
+            }
+        }
+    });
+})(window.vc);

+ 37 - 0
WebService/src/main/resources/views/roomCreateFeeFlow.html

@@ -0,0 +1,37 @@
+<!DOCTYPE html>
+<html lang="en"
+      xmlns="http://www.w3.org/1999/xhtml"
+      xmlns:th="http://www.thymeleaf.org"
+      xmlns:vc="http://www.thymeleaf.org">
+<head>
+    <meta charset="UTF-8"/>
+    <title>房屋创建收费|java110</title>
+    <vc:create name="commonTop"></vc:create>
+</head>
+<body>
+<vc:create name="bodyTop"></vc:create>
+<div id="wrapper">
+    <vc:create name="menu"></vc:create>
+
+
+    <div id="page-wrapper" class="gray-bg dashbard-1">
+        <div class="row border-bottom">
+            <vc:create name="nav"></vc:create>
+        </div>
+        <div class="wrapper wrapper-content" style="padding-bottom: 0px;">
+            <vc:create name="breadcrumb"></vc:create>
+        </div>
+        <!-- id="component" -->
+        <div  class="wrapper wrapper-content animated fadeInRight">
+            <vc:create name="unit"></vc:create>
+        </div>
+
+
+        <vc:create name="copyright"></vc:create>
+
+    </div>
+</div>
+
+<vc:create name="commonBottom"></vc:create>
+</body>
+</html>

+ 27 - 0
java110-bean/src/main/java/com/java110/dto/RoomDto.java

@@ -31,6 +31,9 @@ public class RoomDto extends PageDto implements Serializable {
     private String floorNum;
     private String userName;
     private String ownerId;
+    private String ownerName;
+    private String idCard;
+    private String link;
 
 
     private String state;
@@ -222,4 +225,28 @@ public class RoomDto extends PageDto implements Serializable {
     public void setApartmentName(String apartmentName) {
         this.apartmentName = apartmentName;
     }
+
+    public String getOwnerName() {
+        return ownerName;
+    }
+
+    public void setOwnerName(String ownerName) {
+        this.ownerName = ownerName;
+    }
+
+    public String getIdCard() {
+        return idCard;
+    }
+
+    public void setIdCard(String idCard) {
+        this.idCard = idCard;
+    }
+
+    public String getLink() {
+        return link;
+    }
+
+    public void setLink(String link) {
+        this.link = link;
+    }
 }

+ 36 - 0
java110-bean/src/main/java/com/java110/dto/owner/OwnerRoomRelDto.java

@@ -19,9 +19,13 @@ public class OwnerRoomRelDto extends PageDto implements Serializable {
     private String remark;
     private String state;
     private String ownerId;
+    private String ownerName;
+    private String idCard;
+    private String link;
     private String userId;
     private String roomId;
     private String bId;
+    private boolean byOwnerInfo = false;
 
 
     private Date createTime;
@@ -101,4 +105,36 @@ public class OwnerRoomRelDto extends PageDto implements Serializable {
     public void setbId(String bId) {
         this.bId = bId;
     }
+
+    public boolean isByOwnerInfo() {
+        return byOwnerInfo;
+    }
+
+    public void setByOwnerInfo(boolean byOwnerInfo) {
+        this.byOwnerInfo = byOwnerInfo;
+    }
+
+    public String getOwnerName() {
+        return ownerName;
+    }
+
+    public void setOwnerName(String ownerName) {
+        this.ownerName = ownerName;
+    }
+
+    public String getIdCard() {
+        return idCard;
+    }
+
+    public void setIdCard(String idCard) {
+        this.idCard = idCard;
+    }
+
+    public String getLink() {
+        return link;
+    }
+
+    public void setLink(String link) {
+        this.link = link;
+    }
 }

+ 37 - 0
java110-bean/src/main/java/com/java110/vo/api/ApiRoomDataVo.java

@@ -28,6 +28,11 @@ public class ApiRoomDataVo implements Serializable {
     private String apartment;
     private String apartmentName;
 
+    private String ownerId;
+    private String ownerName;
+    private String idCard;
+    private String link;
+
 
 
     public String getUnitPrice() {
@@ -150,4 +155,36 @@ public class ApiRoomDataVo implements Serializable {
     public void setApartmentName(String apartmentName) {
         this.apartmentName = apartmentName;
     }
+
+    public String getOwnerId() {
+        return ownerId;
+    }
+
+    public void setOwnerId(String ownerId) {
+        this.ownerId = ownerId;
+    }
+
+    public String getOwnerName() {
+        return ownerName;
+    }
+
+    public void setOwnerName(String ownerName) {
+        this.ownerName = ownerName;
+    }
+
+    public String getIdCard() {
+        return idCard;
+    }
+
+    public void setIdCard(String idCard) {
+        this.idCard = idCard;
+    }
+
+    public String getLink() {
+        return link;
+    }
+
+    public void setLink(String link) {
+        this.link = link;
+    }
 }

+ 32 - 0
java110-db/src/main/resources/mapper/user/OwnerRoomRelServiceDaoImplMapper.xml

@@ -84,8 +84,27 @@ rel_id,operate,remark,state,owner_id,b_id,user_id,room_id
     <select id="getOwnerRoomRelInfo" parameterType="Map" resultType="Map">
         select t.rel_id,t.rel_id relId,t.status_cd,t.status_cd statusCd,t.remark,t.state,t.owner_id,t.owner_id
         ownerId,t.b_id,t.b_id bId,t.user_id,t.user_id userId,t.room_id,t.room_id roomId
+        <if test="byOwnerInfo == true">
+            ,bow.name ownerName,bow.id_card idCard,bow.link
+        </if>
         from building_owner_room_rel t
+        <if test="byOwnerInfo == true">
+            ,building_owner bow
+        </if>
         where 1 =1
+        <if test="byOwnerInfo == true">
+           and t.owner_id = bow.owner_id
+            and bow.status_cd = '0'
+        </if>
+        <if test="byOwnerInfo == true and ownerName !=null and ownerName != ''">
+            and bow.name like concat('%',#{ownerName},'%')
+        </if>
+        <if test="byOwnerInfo == true and idCard !=null and idCard != ''">
+            and bow.id_card = #{idCard}
+        </if>
+        <if test="relId !=null and relId != ''">
+            and t.rel_id= #{relId}
+        </if>
         <if test="relId !=null and relId != ''">
             and t.rel_id= #{relId}
         </if>
@@ -152,7 +171,20 @@ rel_id,operate,remark,state,owner_id,b_id,user_id,room_id
     <select id="queryOwnerRoomRelsCount" parameterType="Map" resultType="Map">
         select count(1) count
         from building_owner_room_rel t
+        <if test="byOwnerInfo == true">
+            ,building_owner bow
+        </if>
         where 1 =1
+        <if test="byOwnerInfo == true">
+            and t.owner_id = bow.owner_id
+            and bow.status_cd = '0'
+        </if>
+        <if test="byOwnerInfo == true and ownerName !=null and ownerName != ''">
+            and bow.name like concat('%',#{ownerName},'%')
+        </if>
+        <if test="byOwnerInfo == true and idCard !=null and idCard != ''">
+            and bow.id_card = #{idCard}
+        </if>
         <if test="relId !=null and relId != ''">
             and t.rel_id= #{relId}
         </if>

+ 6 - 0
java110-utils/src/main/java/com/java110/utils/constant/ServiceCodeFeeConfigConstant.java

@@ -28,4 +28,10 @@ public class ServiceCodeFeeConfigConstant {
     public static final String LIST_FEECONFIGS = "feeConfig.listFeeConfigs";
 
 
+    /**
+     * 查询  需要设置费用房屋
+     */
+    public static final String LIST_ROOMS_WHERE_FEE_SET = "fee.listRoomsWhereFeeSet";
+
+
 }