Ver código fonte

物业费 未开发完成

wuxw 7 anos atrás
pai
commit
9c1c628f74

+ 35 - 0
WebService/src/main/java/com/java110/web/components/fee/ViewMainFeeComponent.java

@@ -0,0 +1,35 @@
+package com.java110.web.components.fee;
+
+import com.java110.core.context.IPageData;
+import com.java110.web.smo.IFeeServiceSMO;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.http.ResponseEntity;
+import org.springframework.stereotype.Component;
+
+/**
+ * @ClassName ViewPropertyFeeConfigComponent
+ * @Description 查询主费用信息
+ * @Author wuxw
+ * @Date 2019/6/1 14:33
+ * @Version 1.0
+ * add by wuxw 2019/6/1
+ **/
+@Component("viewPropertyFeeConfig")
+public class ViewMainFeeComponent {
+
+    @Autowired
+    private IFeeServiceSMO feeServiceSMOImpl;
+
+    public ResponseEntity<String> getFee(IPageData pd) {
+        return feeServiceSMOImpl.loadFeeByRoomId(pd);
+    }
+
+
+    public IFeeServiceSMO getFeeServiceSMOImpl() {
+        return feeServiceSMOImpl;
+    }
+
+    public void setFeeServiceSMOImpl(IFeeServiceSMO feeServiceSMOImpl) {
+        this.feeServiceSMOImpl = feeServiceSMOImpl;
+    }
+}

+ 8 - 0
WebService/src/main/java/com/java110/web/smo/IFeeServiceSMO.java

@@ -16,6 +16,14 @@ public interface IFeeServiceSMO {
      */
     ResponseEntity<String> loadPropertyConfigFee(IPageData pd);
 
+    /**
+     * 查询主费用
+     *
+     * @param pd 页面数据封装对象
+     * @return 返回 ResponseEntity对象包含 http状态 信息 body信息
+     */
+    ResponseEntity<String> loadFeeByRoomId(IPageData pd);
+
     /**
      * 保存或修改物业费配置
      * @param pd 页面数据封装对象

+ 43 - 0
WebService/src/main/java/com/java110/web/smo/impl/FeeServiceSMOImpl.java

@@ -76,6 +76,37 @@ public class FeeServiceSMOImpl extends BaseComponentSMO implements IFeeServiceSM
         return responseEntity;
     }
 
+    /**
+     * 查询主费用
+     * @param pd 页面数据封装对象
+     * @return
+     */
+    @Override
+    public ResponseEntity<String> loadFeeByRoomId(IPageData pd) {
+        validateLoadFee(pd);
+
+        //校验员工是否有权限操作
+        super.checkUserHasPrivilege(pd, restTemplate, PrivilegeCodeConstant.PRIVILEGE_PROPERTY_CONFIG_FEE);
+
+        JSONObject paramIn = JSONObject.parseObject(pd.getReqData());
+        String communityId = paramIn.getString("communityId");
+        ResponseEntity responseEntity = super.getStoreInfo(pd, restTemplate);
+        if (responseEntity.getStatusCode() != HttpStatus.OK) {
+            return responseEntity;
+        }
+        Assert.jsonObjectHaveKey(responseEntity.getBody().toString(), "storeId", "根据用户ID查询商户ID失败,未包含storeId节点");
+        Assert.jsonObjectHaveKey(responseEntity.getBody().toString(), "storeTypeCd", "根据用户ID查询商户类型失败,未包含storeTypeCd节点");
+
+        String storeId = JSONObject.parseObject(responseEntity.getBody().toString()).getString("storeId");
+        String storeTypeCd = JSONObject.parseObject(responseEntity.getBody().toString()).getString("storeTypeCd");
+        //数据校验是否 商户是否入驻该小区
+        super.checkStoreEnterCommunity(pd, storeId, storeTypeCd, communityId, restTemplate);
+        responseEntity = this.callCenterService(restTemplate, pd, "",
+                ServiceConstant.SERVICE_API_URL + "/api/fee.queryFee" + mapToUrlParam(paramIn),
+                HttpMethod.GET);
+        return responseEntity;
+    }
+
     /**
      * @param pd 页面数据封装对象
      * @return
@@ -115,6 +146,18 @@ public class FeeServiceSMOImpl extends BaseComponentSMO implements IFeeServiceSM
     }
 
 
+
+    private void validateLoadFee(IPageData pd) {
+        Assert.jsonObjectHaveKey(pd.getReqData(), "communityId", "请求报文中未包含communityId节点");
+        Assert.jsonObjectHaveKey(pd.getReqData(), "roomId", "请求报文中未包含roomId节点");
+        Assert.jsonObjectHaveKey(pd.getReqData(), "feeTypeCd", "请求报文中未包含feeTypeCd节点");
+
+        JSONObject paramIn = JSONObject.parseObject(pd.getReqData());
+        Assert.hasLength(paramIn.getString("communityId"), "小区ID不能为空");
+        Assert.hasLength(paramIn.getString("roomId"), "房屋ID不能为空");
+        Assert.hasLength(paramIn.getString("feeTypeCd"), "费用类型不能为空");
+    }
+
     /**
      * 小区房屋查询数据校验
      *

+ 102 - 0
WebService/src/main/resources/components/property-fee/propertyFee.html

@@ -0,0 +1,102 @@
+<div id="component" class="wrapper wrapper-content animated fadeInRight ecommerce">
+    <vc:create name="viewMainFee"
+               feeName="物业费"
+               feeTypeCd="888800010001"
+    ></vc:create>
+    <div class="row">
+        <div class="col-lg-12">
+            <div class="ibox">
+                <div class="ibox-title">
+                    <h5>缴费历史</h5>
+                </div>
+                <div class="ibox-content">
+
+                    <div class="row">
+                        <div class="col-sm-4 m-b-xs">
+                            <input size="16" type="text" placeholder="请选择开始时间"  value="" readonly class="start_time">
+                        </div>
+                        <div class="col-sm-3 m-b-xs">
+                            <input size="16" type="text" placeholder="请选择结束时间"  value="" readonly class="end_time">
+                        </div>
+
+                        <div class="col-sm-3">
+
+                        </div>
+
+                        <div class="col-sm-2">
+                            <button type="button" class="btn btn-primary btn-sm" v-on:click="queryRoomMethod()">
+                                <i class="glyphicon glyphicon-search"></i> 马上查询</button>
+                        </div>
+
+                        </div>
+
+                    <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">房间数</th>
+                            <th data-hide="phone" >户型</th>
+                            <th data-hide="phone">建筑面积</th>
+                            <th data-hide="phone">单价</th>
+                            <th data-hide="phone">房屋状态</th>
+                            <th data-hide="phone">创建员工</th>
+                            <th data-hide="phone">备注</th>
+
+                        </tr>
+                        </thead>
+                        <tbody>
+                        <tr v-for="room in roomInfo.rooms">
+                            <td>
+                                {{room.roomId}}
+                            </td>
+                            <td>
+                                {{room.roomNum}}
+                            </td>
+                            <td>
+                                {{room.unitNum}}
+                            </td>
+                            <td>
+                                {{room.layer}}
+                            </td>
+                            <td>
+                                {{room.section}}
+                            </td>
+                            <td>
+                                {{room.apartment}}
+                            </td>
+                            <td>
+                                {{room.builtUpArea}}
+                            </td>
+                            <td>
+                                {{room.unitPrice}}
+                            </td>
+                            <td>
+                                {{vc.component.showState(room.state)}}
+                            </td>
+                            <td>
+                                {{room.userName}}
+                            </td>
+                            <td>
+                                {{room.remark}}
+                            </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>
+</div>

+ 141 - 0
WebService/src/main/resources/components/property-fee/propertyFee.js

@@ -0,0 +1,141 @@
+/**
+    入驻小区
+**/
+(function(vc){
+    var DEFAULT_PAGE = 1;
+    var DEFAULT_ROW = 10;
+    vc.extends({
+        data:{
+            roomUnits:[],
+            roomInfo:{
+                rooms:[],
+                total:0,
+                records:1,
+                floorId:'',
+                unitId:'',
+                state:'',
+                roomNum:''
+            }
+        },
+        _initMethod:function(){
+            vc.component.initDate();
+        },
+        _initEvent:function(){
+            vc.on('propertyFee','listFeeDetail',function(_param){
+                  vc.component.listRoom();
+            });
+            vc.on('room','loadData',function(_param){
+                vc.component.roomInfo.floorId = _param.floorId;
+                vc.component.roomInfo.unitId = '';
+                vc.component.roomInfo.state = '';
+                vc.component.roomInfo.roomNum = '';
+
+                vc.component.listRoom(DEFAULT_PAGE,DEFAULT_ROW);
+                vc.component.loadUnits(_param.floorId);
+            });
+            vc.on('pagination','page_event',function(_currentPage){
+                vc.component.listRoom(_currentPage,DEFAULT_ROW);
+            });
+        },
+        methods:{
+            initDate:function(){
+                $(".start_time").datetimepicker({format: 'yyyy-mm-dd'});
+                $(".end_time").datetimepicker({format: 'yyyy-mm-dd'});
+            }
+            listRoom:function(_page,_row){
+                var param = {
+                    params:{
+                        page:_page,
+                        row:_row,
+                        communityId:vc.getCurrentCommunity().communityId,
+                        floorId:vc.component.roomInfo.floorId,
+                        unitId:vc.component.roomInfo.unitId,
+                        state:vc.component.roomInfo.state,
+                        roomNum:vc.component.roomInfo.roomNum
+
+                    }
+                }
+               //发送get请求
+               vc.http.get('room',
+                            'listRoom',
+                             param,
+                             function(json,res){
+                                var listRoomData =JSON.parse(json);
+
+                                vc.component.roomInfo.total = listRoomData.total;
+                                vc.component.roomInfo.records = listRoomData.records;
+                                vc.component.roomInfo.rooms = listRoomData.rooms;
+
+                                vc.emit('pagination','init',{
+                                    total:vc.component.roomInfo.records,
+                                    currentPage:_page
+                                });
+                             },function(errInfo,error){
+                                console.log('请求失败处理');
+                             }
+                           );
+            },
+            _openEditRoomModel:function(_room){
+                _room.floorId = vc.component.roomInfo.floorId;
+                vc.emit('editRoom','openEditRoomModal',_room);
+            },
+            _openDelRoomModel:function(_room){
+                 _room.floorId = vc.component.roomInfo.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(
+                    'room',
+                    '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;
+                            /*if(tmpUnits == null || tmpUnits.length == 0){
+                                return ;
+                            }
+                            for(var unitIndex = 0; unitIndex < tmpUnits.length;unitIndex++){
+                               vc.component.addRoomInfo.units[unitIndex] = tmpUnits[unitIndex];
+                            }*/
+                            return ;
+                        }
+                        vc.message(json);
+                     },
+                     function(errInfo,error){
+                        console.log('请求失败处理');
+
+                        vc.message(errInfo);
+                     });
+            },
+            queryRoomMethod:function(){
+                vc.component.listRoom(DEFAULT_PAGE,DEFAULT_ROW);
+            },
+            showState:function(_state){
+                if(_state == '2001'){
+                    return "房屋已售";
+                }else if(_state == '2002'){
+                    return "房屋未售";
+                }else if(_state == '2003'){
+                    return "已交定金";
+                }
+                else if(_state == '2004'){
+                    return "已出租";
+                }else{
+                    return "未知";
+                }
+            }
+        }
+    });
+})(window.vc);

+ 93 - 0
WebService/src/main/resources/components/view-main-fee/viewMainFee.html

@@ -0,0 +1,93 @@
+<div class="row">
+    <div class="col-lg-12">
+        <div class="ibox ">
+            <div class="ibox-title">
+                <h5>{{mainFeeInfo.feeName}}信息</h5>
+                <div class="ibox-tools" style="top:10px;">
+                    <button type="button" class="btn btn-primary btn-sm" v-on:click="openSearchRoomModel()">
+                        <i class="glyphicon glyphicon-search"></i> 选择房屋</button>
+                    <button type="button" class="btn btn-primary btn-sm"
+                            v-if="mainFeeInfo.floorId != null && mainFeeInfo.floorId != ''"
+                            style="margin-left:10px" v-on:click="openAddRoomModel()">
+                        <i class="glyphicon glyphicon-plus" ></i> 缴费</button>
+                </div>
+            </div>
+            <div class="ibox-content">
+                <div class="row">
+                    <div class="col-sm-3">
+                        <div class="form-group">
+                            <label class="col-form-label" >费用ID:</label>
+                            <label class="">{{mainFeeInfo.feeId}}</label>
+                        </div>
+                    </div>
+                    <div class="col-sm-3">
+                        <div class="form-group">
+                            <label class="col-form-label">小区楼编号:</label>
+                            <label class="">{{mainFeeInfo.floorNum}}</label>
+                        </div>
+                    </div>
+                    <div class="col-sm-3">
+                        <div class="form-group">
+                            <label class="col-form-label" >房屋ID:</label>
+                            <label class="">{{mainFeeInfo.roomId}}</label>
+                        </div>
+                    </div>
+                    <div class="col-sm-3">
+                        <div class="form-group">
+                            <label class="col-form-label" >房屋编号:</label>
+                            <label class="">{{mainFeeInfo.roomNum}}</label>
+                        </div>
+                    </div>
+
+                </div>
+                <div class="row">
+                    <div class="col-sm-3">
+                        <div class="form-group">
+                            <label class="col-form-label" >业主ID:</label>
+                            <label class="">{{mainFeeInfo.ownerId}}</label>
+                        </div>
+                    </div>
+                    <div class="col-sm-3">
+                        <div class="form-group">
+                            <label class="col-form-label">业主名称:</label>
+                            <label class="">{{mainFeeInfo.ownerName}}</label>
+                        </div>
+                    </div>
+                    <div class="col-sm-3">
+                        <div class="form-group">
+                            <label class="col-form-label" >联系电话:</label>
+                            <label class="">{{mainFeeInfo.link}}</label>
+                        </div>
+                    </div>
+                    <div class="col-sm-3">
+                        <div class="form-group">
+                            <label class="col-form-label" >费用开始时间:</label>
+                            <label class="">{{mainFeeInfo.startTime}}</label>
+                        </div>
+                    </div>
+
+                </div>
+                <div class="row">
+                    <div class="col-sm-3">
+                        <div class="form-group">
+                            <label class="col-form-label" >费用到期时间:</label>
+                            <label class="">{{mainFeeInfo.endTime}}</label>
+                        </div>
+                    </div>
+                    <div class="col-sm-3">
+                        <div class="form-group" v-if="mainFeeInfo.amount != '-1.00'">
+                            <label class="col-form-label">费用金额:</label>
+                            <label class="">{{mainFeeInfo.amount}}</label>
+                        </div>
+                    </div>
+
+                </div>
+            </div>
+        </div>
+    </div>
+    <vc:create name="searchRoom"
+               emitChooseRoom="viewMainFee"
+               emitLoadData="propertyFee"
+    ></vc:create>
+    <vc:create name="addRoom"></vc:create>
+</div>

+ 74 - 0
WebService/src/main/resources/components/view-main-fee/viewMainFee.js

@@ -0,0 +1,74 @@
+/**
+    权限组
+**/
+(function(vc){
+
+    vc.extends({
+        propTypes: {
+            feeName:vc.propTypes.string,
+            feeTypeCd:vc.propTypes.string
+        },
+        data:{
+            mainFeeInfo:{
+                feeName:$props.feeName,
+                feeId:"",
+                floorNum:"",
+                roomId:"",
+                roomNum:"",
+                ownerId:"",
+                ownerName:"",
+                link:"",
+                startTime:"",
+                endTime:"",
+                amount:"-1.00"
+            }
+        },
+        _initMethod:function(){
+
+        },
+        _initEvent:function(){
+            vc.on('viewMainFee','chooseRoom',function(_room){
+                  vc.component.loadMainFeeInfo(_room);
+            });
+
+        },
+        methods:{
+
+            openSearchRoomModel:function(){
+                vc.emit('searchRoom','openSearchRoomModel',{});
+            },
+            openAddRoomModel:function(){
+                vc.emit($props.openAddRoomModelName,'addRoomModel',{
+                    floorId:vc.component.floorInfo.floorId
+                });
+            },
+            loadMainFeeInfo:function(_room){
+                //vc.copyObject(_fee,vc.component.mainFeeInfo);
+                var param = {
+                    params:{
+                        communityId:vc.getCurrentCommunity().communityId,
+                        roomId:_room.roomId,
+                        feeTypeCd:$props.feeTypeCd
+                    }
+                };
+
+                //发送get请求
+               vc.http.get('viewMainFee',
+                            'getFee',
+                             param,
+                             function(json,res){
+                               var _fee =JSON.parse(json);
+                               vc.copyObject(_fee,vc.component.mainFeeInfo);
+                               vc.emit('propertyFee','listFeeDetail',{
+                                    feeId:_fee.feeId
+                               });
+                             },function(errInfo,error){
+                                console.log('请求失败处理');
+                             }
+                           );
+            }
+
+        }
+    });
+
+})(window.vc);

+ 1 - 1
WebService/src/main/resources/views/propertyFeeFlow.html

@@ -20,7 +20,7 @@
         </div>
         <!-- id="component" -->
         <div class="wrapper wrapper-content animated fadeInRight">
-            <vc:create name="viewPropertyFeeConfig"></vc:create>
+            <vc:create name="propertyFee"></vc:create>
         </div>
 
         <vc:create name="copyright"></vc:create>