Kaynağa Gözat

优化添加业主功能

wuxw 7 yıl önce
ebeveyn
işleme
0d1b91e1d8
23 değiştirilmiş dosya ile 254 ekleme ve 249 silme
  1. 0 165
      Api/src/main/java/com/java110/api/listener/owner/BindingAddOwnerListener.java
  2. 75 0
      Api/src/main/java/com/java110/api/listener/owner/SaveOwnerListener.java
  3. 49 9
      WebService/src/main/java/com/java110/web/smo/addOwner/impl/AddOwnerBindingSMOImpl.java
  4. 1 1
      WebService/src/main/resources/components/businessTypePackage/list_business_type/listBusinessType.html
  5. 29 19
      WebService/src/main/resources/components/floorPackage/choose-floor/chooseFloor.html
  6. 3 1
      WebService/src/main/resources/components/floorPackage/choose-floor/chooseFloor.js
  7. 1 1
      WebService/src/main/resources/components/floorPackage/view-floor-info/viewFloorInfo.html
  8. 3 1
      WebService/src/main/resources/components/floorPackage/view-floor-info/viewFloorInfo.js
  9. 0 0
      WebService/src/main/resources/components/ownerPackage/add-owner/addOwner.html
  10. 0 0
      WebService/src/main/resources/components/ownerPackage/add-owner/addOwner.js
  11. 5 4
      WebService/src/main/resources/components/ownerPackage/addOwner/addOwner.html
  12. 10 5
      WebService/src/main/resources/components/ownerPackage/addOwner/addOwner.js
  13. 32 30
      WebService/src/main/resources/components/ownerPackage/addOwnerView/addOwnerView.html
  14. 3 3
      WebService/src/main/resources/components/ownerPackage/list-owner/listOwner.html
  15. 2 1
      WebService/src/main/resources/components/ownerPackage/list-owner/listOwner.js
  16. 12 5
      WebService/src/main/resources/components/roomPackage/search-room/searchRoom.html
  17. 8 0
      WebService/src/main/resources/components/roomPackage/search-room/searchRoom.js
  18. 6 1
      WebService/src/main/resources/components/roomPackage/sell-room-select-room/sellRoomSelectRoom.js
  19. 2 0
      WebService/src/main/resources/components/roomPackage/sell-room/sellRoom.html
  20. 7 0
      WebService/src/main/resources/static/js/vc-validate.js
  21. 1 1
      WebService/src/main/resources/views/addOwnerFlow.html
  22. 3 0
      java110-common/src/main/java/com/java110/common/constant/PrivilegeCodeConstant.java
  23. 2 2
      java110-common/src/main/java/com/java110/common/constant/ServiceCodeAddOwnerConstant.java

+ 0 - 165
Api/src/main/java/com/java110/api/listener/owner/BindingAddOwnerListener.java

@@ -1,165 +0,0 @@
-package com.java110.api.listener.owner;
-
-import com.alibaba.fastjson.JSONArray;
-import com.alibaba.fastjson.JSONObject;
-import com.java110.common.util.StringUtil;
-import com.java110.api.listener.AbstractServiceApiListener;
-import com.java110.common.util.Assert;
-import com.java110.core.context.DataFlowContext;
-import com.java110.entity.center.AppService;
-import com.java110.event.service.api.ServiceDataFlowEvent;
-import org.springframework.http.HttpHeaders;
-import org.springframework.http.HttpMethod;
-import org.springframework.http.ResponseEntity;
-import com.java110.common.constant.CommonConstant;
-import com.java110.common.constant.ServiceCodeConstant;
-import com.java110.common.constant.BusinessTypeConstant;
-import com.java110.core.factory.GenerateCodeFactory;
-import com.java110.common.constant.ServiceCodeAddOwnerConstant;
-
-
-import com.java110.core.annotation.Java110Listener;
-
-/**
- * 保存小区侦听
- * add by wuxw 2019-06-30
- */
-@Java110Listener("bindingAddOwnerListener")
-public class BindingAddOwnerListener extends AbstractServiceApiListener {
-    @Override
-    protected void validate(ServiceDataFlowEvent event, JSONObject reqJson) {
-        //Assert.hasKeyAndValue(reqJson, "xxx", "xxx");
-        JSONArray infos = reqJson.getJSONArray("data");
-
-        Assert.hasKeyByFlowData(infos, "addOwner", "name", "必填,名称不能为空");
-        Assert.hasKeyByFlowData(infos, "addOwner", "sex", "必填,请选择性别");
-        Assert.hasKeyByFlowData(infos, "addOwner", "age", "必填,请填写年龄");
-
-    }
-
-    @Override
-    protected void doSoService(ServiceDataFlowEvent event, DataFlowContext context, JSONObject reqJson) {
-
-        HttpHeaders header = new HttpHeaders();
-        context.getRequestCurrentHeaders().put(CommonConstant.HTTP_ORDER_TYPE_CD, "D");
-        JSONArray businesses = new JSONArray();
-
-        AppService service = event.getAppService();
-
-
-        JSONArray infos = reqJson.getJSONArray("data");
-
-
-        JSONObject viewFloorInfo = getObj(infos, "viewFloorInfo");
-        JSONObject sellRoomSelectRoom = getObj(infos, "sellRoomSelectRoom");
-        JSONObject addOwner = getObj(infos, "addOwner");
-        if (!hasKey(viewFloorInfo, "floorId")) {
-            viewFloorInfo.put("floorId", GenerateCodeFactory.getGeneratorId(GenerateCodeFactory.CODE_PREFIX_floorId));
-            viewFloorInfo.put("userId", context.getRequestCurrentHeaders().get(CommonConstant.HTTP_USER_ID));
-            businesses.add(addBusinessFloor(viewFloorInfo, context));
-        }
-        if (!hasKey(sellRoomSelectRoom, "roomId")) {
-            sellRoomSelectRoom.put("roomId", GenerateCodeFactory.getGeneratorId(GenerateCodeFactory.CODE_PREFIX_roomId));
-            sellRoomSelectRoom.put("userId", context.getRequestCurrentHeaders().get(CommonConstant.HTTP_USER_ID));
-            businesses.add(addBusinessRoom(sellRoomSelectRoom, context));
-        }
-        if (!hasKey(addOwner, "ownerId")) {
-            addOwner.put("ownerId", GenerateCodeFactory.getGeneratorId(GenerateCodeFactory.CODE_PREFIX_ownerId));
-            addOwner.put("userId", context.getRequestCurrentHeaders().get(CommonConstant.HTTP_USER_ID));
-            businesses.add(addBusinessOwner(addOwner, context));
-        }
-
-
-        JSONObject paramInObj = super.restToCenterProtocol(businesses, context.getRequestCurrentHeaders());
-
-        //将 rest header 信息传递到下层服务中去
-        super.freshHttpHeader(header, context.getRequestCurrentHeaders());
-
-        ResponseEntity<String> responseEntity = this.callService(context, service.getServiceCode(), paramInObj);
-
-        context.setResponseEntity(responseEntity);
-    }
-
-    @Override
-    public String getServiceCode() {
-        return ServiceCodeAddOwnerConstant.BINDING_ADDOWNER;
-    }
-
-    @Override
-    public HttpMethod getHttpMethod() {
-        return HttpMethod.POST;
-    }
-
-    @Override
-    public int getOrder() {
-        return DEFAULT_ORDER;
-    }
-
-
-    private JSONObject addBusinessFloor(JSONObject paramInJson, DataFlowContext dataFlowContext) {
-        JSONObject business = JSONObject.parseObject("{\"datas\":{}}");
-        business.put(CommonConstant.HTTP_BUSINESS_TYPE_CD, BusinessTypeConstant.BUSINESS_TYPE_SAVE_FLOOR_INFO);
-        business.put(CommonConstant.HTTP_SEQ, DEFAULT_SEQ);
-        business.put(CommonConstant.HTTP_INVOKE_MODEL, CommonConstant.HTTP_INVOKE_MODEL_S);
-        JSONObject businessObj = new JSONObject();
-        businessObj.putAll(paramInJson);
-        //计算 应收金额
-        business.getJSONObject(CommonConstant.HTTP_BUSINESS_DATAS).put("businessFloor", businessObj);
-        return business;
-    }
-
-    private JSONObject addBusinessRoom(JSONObject paramInJson, DataFlowContext dataFlowContext) {
-        JSONObject business = JSONObject.parseObject("{\"datas\":{}}");
-        business.put(CommonConstant.HTTP_BUSINESS_TYPE_CD, BusinessTypeConstant.BUSINESS_TYPE_SAVE_ROOM_INFO);
-        business.put(CommonConstant.HTTP_SEQ, DEFAULT_SEQ);
-        business.put(CommonConstant.HTTP_INVOKE_MODEL, CommonConstant.HTTP_INVOKE_MODEL_S);
-        JSONObject businessObj = new JSONObject();
-        businessObj.putAll(paramInJson);
-        //计算 应收金额
-        business.getJSONObject(CommonConstant.HTTP_BUSINESS_DATAS).put("businessRoom", businessObj);
-        return business;
-    }
-
-    private JSONObject addBusinessOwner(JSONObject paramInJson, DataFlowContext dataFlowContext) {
-        JSONObject business = JSONObject.parseObject("{\"datas\":{}}");
-        business.put(CommonConstant.HTTP_BUSINESS_TYPE_CD, BusinessTypeConstant.BUSINESS_TYPE_SAVE_OWNER_INFO);
-        business.put(CommonConstant.HTTP_SEQ, DEFAULT_SEQ);
-        business.put(CommonConstant.HTTP_INVOKE_MODEL, CommonConstant.HTTP_INVOKE_MODEL_S);
-        JSONObject businessObj = new JSONObject();
-        businessObj.putAll(paramInJson);
-        //计算 应收金额
-        business.getJSONObject(CommonConstant.HTTP_BUSINESS_DATAS).put("businessOwner", businessObj);
-        return business;
-    }
-
-
-    private boolean hasKey(JSONObject info, String key) {
-        if (!info.containsKey(key)
-                || StringUtil.isEmpty(info.getString(key))
-                || info.getString(key).startsWith("-")) {
-            return false;
-        }
-        return true;
-
-    }
-
-    private JSONObject getObj(JSONArray infos, String flowComponent) {
-
-        JSONObject serviceInfo = null;
-
-        for (int infoIndex = 0; infoIndex < infos.size(); infoIndex++) {
-
-            Assert.hasKeyAndValue(infos.getJSONObject(infoIndex), "flowComponent", "未包含服务流程组件名称");
-
-            if (flowComponent.equals(infos.getJSONObject(infoIndex).getString("flowComponent"))) {
-                serviceInfo = infos.getJSONObject(infoIndex);
-                Assert.notNull(serviceInfo, "未包含服务信息");
-                return serviceInfo;
-            }
-        }
-
-        throw new IllegalArgumentException("未找到组件编码为【" + flowComponent + "】数据");
-    }
-
-
-}

+ 75 - 0
Api/src/main/java/com/java110/api/listener/owner/SaveOwnerListener.java

@@ -5,6 +5,7 @@ import com.alibaba.fastjson.JSONObject;
 import com.java110.api.listener.AbstractServiceApiDataFlowListener;
 import com.java110.common.constant.*;
 import com.java110.common.util.Assert;
+import com.java110.common.util.DateUtil;
 import com.java110.core.annotation.Java110Listener;
 import com.java110.core.context.DataFlowContext;
 import com.java110.core.factory.GenerateCodeFactory;
@@ -73,6 +74,15 @@ public class SaveOwnerListener extends AbstractServiceApiDataFlowListener {
             businesses.add(addCommunityMember(paramObj));
         }
 
+        //有房屋信息,则直接绑定房屋和 业主的关系
+        if(paramObj.containsKey("roomId")){
+            //添加单元信息
+            businesses.add(sellRoom(paramObj, dataFlowContext));
+
+            //添加物业费用信息
+            businesses.add(addPropertyFee(paramObj, dataFlowContext));
+        }
+
         JSONObject paramInObj = super.restToCenterProtocol(businesses, dataFlowContext.getRequestCurrentHeaders());
 
         //将 rest header 信息传递到下层服务中去
@@ -149,6 +159,59 @@ public class SaveOwnerListener extends AbstractServiceApiDataFlowListener {
         return business;
     }
 
+
+    /**
+     * 售卖房屋信息
+     *
+     * @param paramInJson     接口调用放传入入参
+     * @param dataFlowContext 数据上下文
+     * @return 订单服务能够接受的报文
+     */
+    private JSONObject sellRoom(JSONObject paramInJson, DataFlowContext dataFlowContext) {
+
+
+        JSONObject business = JSONObject.parseObject("{\"datas\":{}}");
+        business.put(CommonConstant.HTTP_BUSINESS_TYPE_CD, BusinessTypeConstant.BUSINESS_TYPE_SAVE_OWNER_ROOM_REL);
+        business.put(CommonConstant.HTTP_SEQ, DEFAULT_SEQ);
+        business.put(CommonConstant.HTTP_INVOKE_MODEL, CommonConstant.HTTP_INVOKE_MODEL_S);
+        JSONObject businessUnit = new JSONObject();
+        businessUnit.putAll(paramInJson);
+        businessUnit.put("relId", "-1");
+        businessUnit.put("userId", dataFlowContext.getRequestCurrentHeaders().get(CommonConstant.HTTP_USER_ID));
+        business.getJSONObject(CommonConstant.HTTP_BUSINESS_DATAS).put("businessOwnerRoomRel", businessUnit);
+
+        return business;
+    }
+
+    /**
+     * 添加物业费用
+     *
+     * @param paramInJson     接口调用放传入入参
+     * @param dataFlowContext 数据上下文
+     * @return 订单服务能够接受的报文
+     */
+    private JSONObject addPropertyFee(JSONObject paramInJson, DataFlowContext dataFlowContext) {
+
+
+        JSONObject business = JSONObject.parseObject("{\"datas\":{}}");
+        business.put(CommonConstant.HTTP_BUSINESS_TYPE_CD, BusinessTypeConstant.BUSINESS_TYPE_SAVE_FEE_INFO);
+        business.put(CommonConstant.HTTP_SEQ, DEFAULT_SEQ + 1);
+        business.put(CommonConstant.HTTP_INVOKE_MODEL, CommonConstant.HTTP_INVOKE_MODEL_S);
+        JSONObject businessUnit = new JSONObject();
+        businessUnit.put("feeId", "-1");
+        businessUnit.put("feeTypeCd", FeeTypeConstant.FEE_TYPE_PROPERTY);
+        businessUnit.put("incomeObjId", paramInJson.getString("storeId"));
+        businessUnit.put("amount", "-1.00");
+        businessUnit.put("startTime", DateUtil.getNow(DateUtil.DATE_FORMATE_STRING_A));
+        businessUnit.put("endTime", DateUtil.getNow(DateUtil.DATE_FORMATE_STRING_A));
+        businessUnit.put("communityId", paramInJson.getString("communityId"));
+        businessUnit.put("payerObjId", paramInJson.getString("roomId"));
+        businessUnit.put("userId", dataFlowContext.getRequestCurrentHeaders().get(CommonConstant.HTTP_USER_ID));
+        business.getJSONObject(CommonConstant.HTTP_BUSINESS_DATAS).put("businessFee", businessUnit);
+
+        return business;
+    }
+
     /**
      * 数据校验
      * <p>
@@ -170,6 +233,18 @@ public class SaveOwnerListener extends AbstractServiceApiDataFlowListener {
         Assert.jsonObjectHaveKey(paramIn, "sex", "请求报文中未包含sex");
         Assert.jsonObjectHaveKey(paramIn, "ownerTypeCd", "请求报文中未包含sex");
         Assert.jsonObjectHaveKey(paramIn, "communityId", "请求报文中未包含communityId");
+
+        JSONObject paramObj = JSONObject.parseObject(paramIn);
+
+        if(paramObj.containsKey("roomId")){
+
+            Assert.jsonObjectHaveKey(paramObj, "state", "请求报文中未包含state节点");
+            Assert.jsonObjectHaveKey(paramObj, "storeId", "请求报文中未包含storeId节点");
+
+            Assert.hasLength(paramObj.getString("roomId"), "roomId不能为空");
+            Assert.hasLength(paramObj.getString("state"), "state不能为空");
+            Assert.hasLength(paramObj.getString("storeId"), "storeId不能为空");
+        }
     }
 
 

+ 49 - 9
WebService/src/main/java/com/java110/web/smo/addOwner/impl/AddOwnerBindingSMOImpl.java

@@ -3,9 +3,10 @@ package com.java110.web.smo.addOwner.impl;
 import com.alibaba.fastjson.JSONObject;
 import com.alibaba.fastjson.JSONArray;
 import com.java110.common.constant.PrivilegeCodeConstant;
-import com.java110.common.constant.ServiceCodeAddOwnerConstant;
+import com.java110.common.constant.ServiceCodeAddOwnerBindingConstant;
 import com.java110.common.constant.ServiceConstant;
 import com.java110.common.util.Assert;
+import com.java110.entity.component.ComponentValidateResult;
 import com.java110.web.smo.addOwner.IAddOwnerBindingSMO;
 import org.springframework.web.client.RestTemplate;
 import com.java110.core.context.IPageData;
@@ -30,27 +31,66 @@ public class AddOwnerBindingSMOImpl extends AbstractComponentSMO implements IAdd
 
         //super.validatePageInfo(pd);
         JSONArray infos = paramIn.getJSONArray("data");
-        //Assert.hasKeyAndValue(paramIn, "xxx", "xxx");
-        Assert.hasKeyByFlowData(infos, "addOwner", "name", "必填,名称不能为空");
-        Assert.hasKeyByFlowData(infos, "addOwner", "sex", "必填,请选择性别");
-        Assert.hasKeyByFlowData(infos, "addOwner", "age", "必填,请填写年龄");
+        Assert.hasKeyAndValue(paramIn, "communityId", "未包含小区信息");
 
+        if (infos.size() != 3) {
+            throw new IllegalArgumentException("数据被篡改");
+        }
 
-        super.checkUserHasPrivilege(pd, restTemplate, PrivilegeCodeConstant.PRIVILEGE_ROOM);
+        Assert.hasKeyByFlowData(infos, "viewFloorInfo", "floorId", "必填,未选择楼栋");
+        Assert.hasKeyByFlowData(infos, "sellRoomSelectRoom", "roomId", "必填,未选择房屋");
+        Assert.hasKeyByFlowData(infos, "addOwnerBinding", "name", "必填,名称不能为空");
+        Assert.hasKeyByFlowData(infos, "addOwnerBinding", "sex", "必填,请选择性别");
+        Assert.hasKeyByFlowData(infos, "addOwnerBinding", "age", "必填,请填写年龄");
+
+
+        super.checkUserHasPrivilege(pd, restTemplate, PrivilegeCodeConstant.ADD_OWNER);
 
     }
 
     @Override
     protected ResponseEntity<String> doBusinessProcess(IPageData pd, JSONObject paramIn) {
         ResponseEntity<String> responseEntity = null;
-        super.validateStoreStaffCommunityRelationship(pd, restTemplate);
+        ComponentValidateResult result = super.validateStoreStaffCommunityRelationship(pd, restTemplate);
+
+        JSONArray infos = paramIn.getJSONArray("data");
+        //JSONObject viewFloorInfo = getObj(infos, "viewFloorInfo");
+        JSONObject sellRoomSelectRoom = getObj(infos, "sellRoomSelectRoom");
+        JSONObject addOwner = getObj(infos, "addOwner");
 
-        responseEntity = this.callCenterService(restTemplate, pd, paramIn.toJSONString(),
-                ServiceConstant.SERVICE_API_URL + "/api/" + ServiceCodeAddOwnerConstant.BINDING_ADDOWNER,
+        String communityId = paramIn.getString("communityId");
+        addOwner.put("ownerTypeCd", "1001");
+        addOwner.put("roomId", sellRoomSelectRoom.getString("roomId"));
+        addOwner.put("communityId", communityId);
+        addOwner.put("userId", pd.getUserId());
+        addOwner.put("storeId", result.getStoreId());
+        addOwner.put("state", "2002");
+        responseEntity = this.callCenterService(restTemplate, pd, addOwner.toJSONString(),
+                ServiceConstant.SERVICE_API_URL + "/api/owner.saveOwner",
                 HttpMethod.POST);
         return responseEntity;
     }
 
+
+    private JSONObject getObj(JSONArray infos, String flowComponent) {
+
+        JSONObject serviceInfo = null;
+
+        for (int infoIndex = 0; infoIndex < infos.size(); infoIndex++) {
+
+            Assert.hasKeyAndValue(infos.getJSONObject(infoIndex), "flowComponent", "未包含服务流程组件名称");
+
+            if (flowComponent.equals(infos.getJSONObject(infoIndex).getString("flowComponent"))) {
+                serviceInfo = infos.getJSONObject(infoIndex);
+                Assert.notNull(serviceInfo, "未包含服务信息");
+                return serviceInfo;
+            }
+        }
+
+        throw new IllegalArgumentException("未找到组件编码为【" + flowComponent + "】数据");
+    }
+
+
     @Override
     public ResponseEntity<String> bindingAddOwner(IPageData pd) {
         return super.businessProcess(pd);

+ 1 - 1
WebService/src/main/resources/components/businessTypePackage/list_business_type/listBusinessType.html

@@ -64,7 +64,7 @@
     </div>
 
    <!-- <vc:create
-            name="addOwner"
+            name="addOwnerBinding"
             notifyLoadDataComponentName="listOwner"
     ></vc:create>
     <vc:create

+ 29 - 19
WebService/src/main/resources/components/floorPackage/choose-floor/chooseFloor.html

@@ -1,4 +1,5 @@
-<div id = "chooseFloorModel" class="modal fade" tabindex="-1" role="dialog" aria-labelledby="chooseFloorModelLabel" aria-hidden="true" >
+<div id="chooseFloorModel" class="modal fade" tabindex="-1" role="dialog" aria-labelledby="chooseFloorModelLabel"
+     aria-hidden="true">
     <div class="modal-dialog modal-lg">
         <div class="modal-content">
             <div class="modal-header">
@@ -14,12 +15,20 @@
                             <div class="row">
 
                                 <div class="col-sm-7 m-b-xs">
+                                    <div class="input-group">
+                                        <input placeholder="输入楼栋编码" type="text"
+                                               v-model="chooseFloorInfo._currentFloorNum"
+                                               class="form-control form-control-sm">
+                                    </div>
                                 </div>
                                 <div class="col-sm-5">
                                     <div class="input-group">
-                                        <input placeholder="输入楼名称" type="text" v-model="chooseFloorInfo._currentFloorName" class="form-control form-control-sm">
+                                        <input placeholder="输入楼栋名称" type="text"
+                                               v-model="chooseFloorInfo._currentFloorName"
+                                               class="form-control form-control-sm">
                                         <span class="input-group-append">
-                                                <button type="button" class="btn btn-sm btn-primary" v-on:click="queryFloors()">查询</button>
+                                                <button type="button" class="btn btn-sm btn-primary"
+                                                        v-on:click="queryFloors()">查询</button>
                                             </span>
                                     </div>
                                 </div>
@@ -27,26 +36,27 @@
                             <div class="table-responsive" style="margin-top:15px">
                                 <table class="table table-striped">
                                     <thead>
-                                        <tr>
-                                                                        <th class="text-center">楼ID</th>
-                            <th class="text-center">楼名称</th>
-                            <th class="text-center">楼编号</th>
-                            <th class="text-center">备注</th>
-                            <th class="text-center">操作</th>
+                                    <tr>
+                                        <th class="text-center">楼ID</th>
+                                        <th class="text-center">楼名称</th>
+                                        <th class="text-center">楼编号</th>
+                                        <th class="text-center">备注</th>
+                                        <th class="text-center">操作</th>
 
-                                        </tr>
+                                    </tr>
                                     </thead>
                                     <tbody>
-                                        <tr v-for="floor in chooseFloorInfo.floors">
-                                                                        <td class="text-center">{{floor.floorId}}</td>
-                            <td class="text-center">{{floor.floorName}}</td>
-                            <td class="text-center">{{floor.floorNum}}</td>
-                            <td class="text-center">{{floor.remark}}</td>
+                                    <tr v-for="floor in chooseFloorInfo.floors">
+                                        <td class="text-center">{{floor.floorId}}</td>
+                                        <td class="text-center">{{floor.floorName}}</td>
+                                        <td class="text-center">{{floor.floorNum}}</td>
+                                        <td class="text-center">{{floor.remark}}</td>
 
-                                            <td>
-                                                <button class="btn btn-primary btn-xs" v-on:click="chooseFloor(floor)">选择</button>
-                                            </td>
-                                        </tr>
+                                        <td>
+                                            <button class="btn btn-primary btn-xs" v-on:click="chooseFloor(floor)">选择
+                                            </button>
+                                        </td>
+                                    </tr>
                                     </tbody>
                                 </table>
                             </div>

+ 3 - 1
WebService/src/main/resources/components/floorPackage/choose-floor/chooseFloor.js

@@ -8,6 +8,7 @@
             chooseFloorInfo:{
                 floors:[],
                 _currentFloorName:'',
+                _currentFloorNum:'',
             }
         },
         _initMethod:function(){
@@ -26,7 +27,8 @@
                         page:_page,
                         row:_row,
                         communityId:vc.getCurrentCommunity().communityId,
-                        name:_name
+                        name:_name,
+                        floorNum:vc.component.chooseFloorInfo._currentFloorNum
                     }
                 };
 

+ 1 - 1
WebService/src/main/resources/components/floorPackage/view-floor-info/viewFloorInfo.html

@@ -9,7 +9,7 @@
                         <i class="glyphicon glyphicon-search"></i> 选择楼
                     </button>
 
-                    <button type="button" v-if="viewFloorInfo.index != 2" class="btn btn-primary btn-sm"
+                    <button type="button" v-if="viewFloorInfo.index != 2 && viewFloorInfo.showAddFloorButton== 'true'" class="btn btn-primary btn-sm"
                             v-on:click="_openAddFloorInfoModel()">
                         <i class="glyphicon glyphicon-plus"></i> 添加楼
                     </button>

+ 3 - 1
WebService/src/main/resources/components/floorPackage/view-floor-info/viewFloorInfo.js

@@ -6,12 +6,14 @@
     vc.extends({
         propTypes: {
            callBackListener:vc.propTypes.string, //父组件名称
-           callBackFunction:vc.propTypes.string //父组件监听方法
+           callBackFunction:vc.propTypes.string, //父组件监听方法
+           showAddFloorButton:vc.propTypes.string = 'true'
         },
         data:{
             viewFloorInfo:{
                 index:0,
                 flowComponent:'viewFloorInfo',
+                showAddFloorButton:$props.showAddFloorButton,
                 floorId:'',
                 floorName:'',
                 floorNum:'',

WebService/src/main/resources/components/ownerPackage/add-owner-tmp/addOwnerTmp.html → WebService/src/main/resources/components/ownerPackage/add-owner/addOwner.html


WebService/src/main/resources/components/ownerPackage/add-owner-tmp/addOwnerTmp.js → WebService/src/main/resources/components/ownerPackage/add-owner/addOwner.js


+ 5 - 4
WebService/src/main/resources/components/ownerPackage/addOwner/addOwner.html

@@ -7,19 +7,20 @@
     <!-- 选择 应用信息 -->
    <div v-if="addOwnerInfo.index == 0">
         <vc:create name="viewFloorInfo"
-                   callBackListener="addOwner"
+                   callBackListener="addOwnerBinding"
                    callBackFunction="notify"
+                   showAddFloorButton="false"
         ></vc:create>
     </div>
 <div v-if="addOwnerInfo.index == 1">
         <vc:create name="sellRoomSelectRoom"
-                   callBackListener="addOwner"
+                   callBackListener="addOwnerBinding"
                    callBackFunction="notify"
         ></vc:create>
     </div>
 <div v-if="addOwnerInfo.index == 2">
-        <vc:create name="addOwner"
-                   callBackListener="addOwner"
+        <vc:create name="addOwnerView"
+                   callBackListener="addOwnerBinding"
                    callBackFunction="notify"
         ></vc:create>
     </div>

+ 10 - 5
WebService/src/main/resources/components/ownerPackage/addOwner/addOwner.js

@@ -14,8 +14,12 @@
             vc.component._initStep();
         },
         _initEvent:function(){
-            vc.on("addOwner", "notify", function(_info){
+            vc.on("addOwnerBinding", "notify", function(_info){
                 vc.component.addOwnerInfo.infos[vc.component.addOwnerInfo.index] = _info;
+
+                if(vc.component.addOwnerInfo.index == 0){
+                    vc.emit('searchRoom','listenerFloorInfo',_info);
+                }
             });
 
         },
@@ -34,8 +38,8 @@
                 vc.component.addOwnerInfo.index = vc.component.addOwnerInfo.$step.getIndex();
 
                 vc.emit('viewFloorInfo', 'onIndex', vc.component.addOwnerInfo.index);
-vc.emit('sellRoomSelectRoom', 'onIndex', vc.component.addOwnerInfo.index);
-vc.emit('addOwner', 'onIndex', vc.component.addOwnerInfo.index);
+                vc.emit('sellRoomSelectRoom', 'onIndex', vc.component.addOwnerInfo.index);
+                vc.emit('addOwnerBinding', 'onIndex', vc.component.addOwnerInfo.index);
 
             },
             _nextStep:function(){
@@ -48,8 +52,8 @@ vc.emit('addOwner', 'onIndex', vc.component.addOwnerInfo.index);
                 vc.component.addOwnerInfo.index = vc.component.addOwnerInfo.$step.getIndex();
 
                  vc.emit('viewFloorInfo', 'onIndex', vc.component.addOwnerInfo.index);
-vc.emit('sellRoomSelectRoom', 'onIndex', vc.component.addOwnerInfo.index);
-vc.emit('addOwner', 'onIndex', vc.component.addOwnerInfo.index);
+                vc.emit('sellRoomSelectRoom', 'onIndex', vc.component.addOwnerInfo.index);
+                vc.emit('addOwnerBinding', 'onIndex', vc.component.addOwnerInfo.index);
 
             },
             _finishStep:function(){
@@ -62,6 +66,7 @@ vc.emit('addOwner', 'onIndex', vc.component.addOwnerInfo.index);
                 }
 
                 var param = {
+                    communityId:vc.getCurrentCommunity().communityId,
                     data:vc.component.addOwnerInfo.infos
                 }
 

+ 32 - 30
WebService/src/main/resources/components/ownerPackage/addOwnerView/addOwnerView.html

@@ -10,36 +10,38 @@
             <div class="ibox-content">
 
                 <div class="form-group row">
-         <label class="col-sm-2 col-form-label">名称</label>
-         <div class="col-sm-10">
-           <input v-model="addOwnerViewInfo.name"                   type="text" placeholder="必填,请填写名称" class="form-control">
-         </div>
-</div>
-<div class="form-group row">
-         <label class="col-sm-2 col-form-label">性别</label>
-         <div class="col-sm-10">
-<select class="custom-select" v-model="addOwnerViewInfo.sex">
-         <option selected  disabled value="">必填,请选择性别</option>
-         <option  value="1">男</option>
-<option  value="0">女</option>
-  </select>         </div>
-</div>
-<div class="form-group row">
-         <label class="col-sm-2 col-form-label">年龄</label>
-         <div class="col-sm-10">
-           <input v-model="addOwnerViewInfo.age"                   type="text" placeholder="必填,请填写年龄" class="form-control">
-         </div>
-</div>
-<div class="form-group row">
-         <label class="col-sm-2 col-form-label">手机</label>
-         <div class="col-sm-10">
-<textarea  placeholder="选填,请填写手机" class="form-control" v-model="addOwnerViewInfo.link"></textarea>         </div>
-</div>
-<div class="form-group row">
-         <label class="col-sm-2 col-form-label">备注</label>
-         <div class="col-sm-10">
-<textarea  placeholder="选填,请填写备注" class="form-control" v-model="addOwnerViewInfo.remark"></textarea>         </div>
-</div>
+                    <label class="col-sm-2 col-form-label">名称</label>
+                    <div class="col-sm-10">
+                        <input v-model="addOwnerViewInfo.name" type="text" placeholder="必填,请填写名称" class="form-control">
+                    </div>
+                </div>
+                <div class="form-group row">
+                    <label class="col-sm-2 col-form-label">性别</label>
+                    <div class="col-sm-10">
+                        <select class="custom-select" v-model="addOwnerViewInfo.sex">
+                            <option selected disabled value="">必填,请选择性别</option>
+                            <option value="1">男</option>
+                            <option value="0">女</option>
+                        </select></div>
+                </div>
+                <div class="form-group row">
+                    <label class="col-sm-2 col-form-label">年龄</label>
+                    <div class="col-sm-10">
+                        <input v-model="addOwnerViewInfo.age" type="number" placeholder="必填,请填写年龄" class="form-control">
+                    </div>
+                </div>
+                <div class="form-group row">
+                    <label class="col-sm-2 col-form-label">手机</label>
+                    <div class="col-sm-10">
+                        <input placeholder="选填,请填写手机" type="tel" class="form-control"
+                                  v-model="addOwnerViewInfo.link"></input></div>
+                </div>
+                <div class="form-group row">
+                    <label class="col-sm-2 col-form-label">备注</label>
+                    <div class="col-sm-10">
+                        <textarea cols="5" placeholder="选填,请填写备注" class="form-control"
+                                  v-model="addOwnerViewInfo.remark"></textarea></div>
+                </div>
 
             </div>
         </div>

+ 3 - 3
WebService/src/main/resources/components/ownerPackage/list-owner/listOwner.html

@@ -74,10 +74,10 @@
         </div>
     </div>
 
-    <vc:create
-            name="addOwner"
+  <!--  <vc:create
+            name="addOwnerBinding"
             notifyLoadDataComponentName="listOwner"
-    ></vc:create>
+    ></vc:create>-->
     <vc:create
             name="editOwner"
             notifyLoadDataComponentName="listOwner"

+ 2 - 1
WebService/src/main/resources/components/ownerPackage/list-owner/listOwner.js

@@ -53,7 +53,8 @@
 
             },
             _openAddOwnerModal:function(){ //打开添加框
-                vc.emit('addOwner','openAddOwnerModal',-1);
+                //vc.emit('addOwner','openAddOwnerModal',-1);
+                vc.jumpToPage("/flow/addOwnerBindingFlow");
             },
             _openDelOwnerModel:function(_owner){ // 打开删除对话框
                 vc.emit('deleteOwner','openOwnerModel',_owner);

+ 12 - 5
WebService/src/main/resources/components/roomPackage/search-room/searchRoom.html

@@ -1,4 +1,5 @@
-<div id = "searchRoomModel" class="modal fade" tabindex="-1" role="dialog" aria-labelledby="searchRoomModelLabel" aria-hidden="true" >
+<div id="searchRoomModel" class="modal fade" tabindex="-1" role="dialog" aria-labelledby="searchRoomModelLabel"
+     aria-hidden="true">
     <div class="modal-dialog modal-lg">
         <div class="modal-content">
             <div class="modal-header">
@@ -15,14 +16,19 @@
 
                                 <div class="col-sm-6 m-b-xs">
                                     <div class="input-group">
-                                        <input placeholder="输入小区楼编号,必填" type="text" v-model="searchRoomInfo._currentFloorNum" class="form-control form-control-sm">
+                                        <input placeholder="输入小区楼编号,必填" type="text"
+                                               v-bind:readonly="searchRoomInfo.floorNumInputReadonly"
+                                               v-model="searchRoomInfo._currentFloorNum"
+                                               class="form-control form-control-sm">
                                     </div>
                                 </div>
                                 <div class="col-sm-6">
                                     <div class="input-group">
-                                        <input placeholder="输入房屋编号" type="text" v-model="searchRoomInfo._currentRoomNum" class="form-control form-control-sm">
+                                        <input placeholder="输入房屋编号" type="text" v-model="searchRoomInfo._currentRoomNum"
+                                               class="form-control form-control-sm">
                                         <span class="input-group-append">
-                                                <button type="button" class="btn btn-sm btn-primary" v-on:click="searchRooms()">查询</button>
+                                                <button type="button" class="btn btn-sm btn-primary"
+                                                        v-on:click="searchRooms()">查询</button>
                                             </span>
                                     </div>
                                 </div>
@@ -66,7 +72,8 @@
                                             {{room.userName}}
                                         </td>
                                         <td>
-                                            <button class="btn btn-primary btn-xs" v-on:click="chooseRoom(room)">选择</button>
+                                            <button class="btn btn-primary btn-xs" v-on:click="chooseRoom(room)">选择
+                                            </button>
                                         </td>
                                     </tr>
                                     </tbody>

+ 8 - 0
WebService/src/main/resources/components/roomPackage/search-room/searchRoom.js

@@ -10,6 +10,7 @@
                 rooms:[],
                 _currentRoomNum:'',
                 _currentFloorNum:'',
+                floorNumInputReadonly:false
             }
         },
         _initMethod:function(){
@@ -22,6 +23,13 @@
                 vc.component._refreshSearchRoomData();
                 //vc.component._loadAllRoomInfo(1,10);
             });
+
+            vc.on('searchRoom','listenerFloorInfo',function(_floorInfo){
+                vc.component.searchRoomInfo._currentFloorNum = _floorInfo.floorNum;
+                vc.component.searchRoomInfo.floorNumInputReadonly = true;
+                vc.component.searchRooms();
+
+            });
         },
         methods:{
             _loadAllRoomInfo:function(_page,_row,_roomNum){

+ 6 - 1
WebService/src/main/resources/components/roomPackage/sell-room-select-room/sellRoomSelectRoom.js

@@ -4,8 +4,13 @@
 (function(vc){
 
     vc.extends({
+        propTypes: {
+           callBackListener:vc.propTypes.string,
+           callBackFunction:vc.propTypes.string
+        },
         data:{
             roomInfo:{
+                flowComponent:'sellRoomSelectRoom',
                 roomId:"",
                 roomNum:"",
                 unitNum:"",
@@ -23,7 +28,7 @@
         _initEvent:function(){
             vc.on('sellRoomSelectRoom','chooseRoom',function(_room){
                 vc.component.roomInfo = _room;
-                vc.emit('sellRoom','notify',_room);
+                vc.emit($props.callBackListener,$props.callBackFunction,_room);
             });
 
         },

+ 2 - 0
WebService/src/main/resources/components/roomPackage/sell-room/sellRoom.html

@@ -4,6 +4,8 @@
     ></vc:create>
 
     <vc:create name="sellRoomSelectRoom"
+               callBackListener="sellRoom"
+               callBackFunction="notify"
     ></vc:create>
 
     <vc:create name="sellRoomOther"

+ 7 - 0
WebService/src/main/resources/static/js/vc-validate.js

@@ -105,6 +105,10 @@ vc 校验 工具类 -method
             var regDate = /^(\d{4})-(\d{2})-(\d{2})$/;
             return regDate.test(str);
         },
+        dateTime:function(str){
+            var reDateTime = /^(?:19|20|30)[0-9][0-9]-(?:(?:0[1-9])|(?:1[0-2]))-(?:(?:[0-2][1-9])|(?:[1-3][0-1])) (?:(?:[0-2][0-3])|(?:[0-1][0-9])):[0-5][0-9]:[0-5][0-9]$/;
+            return reDateTime.test(reDateTime);
+        },
         /**
             金额校验
         **/
@@ -208,6 +212,9 @@ vc 校验 工具类 -method
                     if(configObj.limit == 'date'){
                         validate.setState(validate.date(tmpDataObj),configObj.errInfo);
                     }
+                    if(configObj.limit == 'dateTime'){
+                        validate.setState(validate.dateTime(tmpDataObj),configObj.errInfo);
+                    }
 
                     if(configObj.limit == 'money'){
                         validate.setState(validate.money(tmpDataObj),configObj.errInfo);

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

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

+ 3 - 0
java110-common/src/main/java/com/java110/common/constant/PrivilegeCodeConstant.java

@@ -85,4 +85,7 @@ public final class PrivilegeCodeConstant {
     public static final String SERVICE_PROVIDE = "502019090149430005";
 
 
+    public static final String ADD_OWNER = "502019091322800001";
+
+
 }

+ 2 - 2
java110-common/src/main/java/com/java110/common/constant/ServiceCodeAddOwnerConstant.java

@@ -4,12 +4,12 @@ package com.java110.common.constant;
  * 添加业主常量类
  * Created by wuxw on 2017/5/20.
  */
-public class ServiceCodeAddOwnerConstant {
+public class ServiceCodeAddOwnerBindingConstant {
 
     /**
      * 添加 添加业主
      */
-    public static final String BINDING_ADDOWNER = "owner.addOwner";
+    public static final String BINDING_ADD_OWNER_BINDING = "owner.addOwnerBinding";