Bläddra i källkod

加入 服务绑定扩展信息

wuxw 6 år sedan
förälder
incheckning
9df40dad0f

+ 1 - 1
Api/src/main/java/com/java110/api/listener/menu/QueryMenuServiceListener.java

@@ -154,7 +154,7 @@ public class QueryMenuServiceListener extends AbstractServiceApiDataFlowListener
             childMenu.put("name", tMenu.getString("menuName"));
             childMenu.put("name", tMenu.getString("menuName"));
             childMenu.put("href", tMenu.getString("url"));
             childMenu.put("href", tMenu.getString("url"));
             childMenu.put("seq", tMenu.getString("menuSeq"));
             childMenu.put("seq", tMenu.getString("menuSeq"));
-            childMenu.put("seq", tMenu.getString("isShow"));
+            childMenu.put("isShow", tMenu.getString("isShow"));
             childs.add(childMenu);
             childs.add(childMenu);
         }
         }
         return new ResponseEntity<String>(tempMenus.toJSONString(), HttpStatus.OK);
         return new ResponseEntity<String>(tempMenus.toJSONString(), HttpStatus.OK);

+ 50 - 32
Api/src/main/java/com/java110/api/listener/service/BindingServiceListener.java

@@ -4,11 +4,13 @@ package com.java110.api.listener.service;
 import com.alibaba.fastjson.JSONArray;
 import com.alibaba.fastjson.JSONArray;
 import com.alibaba.fastjson.JSONObject;
 import com.alibaba.fastjson.JSONObject;
 import com.java110.api.listener.AbstractServiceApiListener;
 import com.java110.api.listener.AbstractServiceApiListener;
+import com.java110.common.constant.CommonConstant;
 import com.java110.common.constant.ResponseConstant;
 import com.java110.common.constant.ResponseConstant;
 import com.java110.common.constant.ServiceCodeServiceConstant;
 import com.java110.common.constant.ServiceCodeServiceConstant;
 import com.java110.common.exception.ListenerExecuteException;
 import com.java110.common.exception.ListenerExecuteException;
 import com.java110.common.util.Assert;
 import com.java110.common.util.Assert;
 import com.java110.common.util.BeanConvertUtil;
 import com.java110.common.util.BeanConvertUtil;
+import com.java110.common.util.StringUtil;
 import com.java110.core.annotation.Java110Listener;
 import com.java110.core.annotation.Java110Listener;
 import com.java110.core.context.DataFlowContext;
 import com.java110.core.context.DataFlowContext;
 import com.java110.core.factory.GenerateCodeFactory;
 import com.java110.core.factory.GenerateCodeFactory;
@@ -45,8 +47,12 @@ public class BindingServiceListener extends AbstractServiceApiListener {
 
 
         JSONArray infos = reqJson.getJSONArray("data");
         JSONArray infos = reqJson.getJSONArray("data");
 
 
-        if(infos == null || infos.size() !=2){
-            throw new IllegalArgumentException("请求参数错误,为包含 应用或服务信息");
+        Assert.hasKeyByFlowData(infos, "addRouteView", "orderTypeCd", "必填,请填写订单类型");
+        Assert.hasKeyByFlowData(infos, "addRouteView", "invokeLimitTimes", "必填,请填写调用次数");
+        Assert.hasKeyByFlowData(infos, "addRouteView", "invokeModel", "可填,请填写消息队列,订单在异步调用时使用");
+
+        if(infos == null || infos.size() !=3){
+            throw new IllegalArgumentException("请求参数错误,为包含 应用,服务或扩展信息");
         }
         }
     }
     }
 
 
@@ -55,47 +61,30 @@ public class BindingServiceListener extends AbstractServiceApiListener {
 
 
         JSONArray infos = reqJson.getJSONArray("data");
         JSONArray infos = reqJson.getJSONArray("data");
 
 
-        JSONObject appInfo = null; //应用信息
-        JSONObject serviceInfo = null; // 服务信息
-
-        for(int infoIndex = 0 ; infoIndex < infos.size(); infoIndex ++){
-
-            Assert.hasKeyAndValue(infos.getJSONObject(infoIndex), "flowComponent", "未包含服务流程组件名称");
-
-            if("App".equals(infos.getJSONObject(infoIndex).getString("flowComponent"))){
-                appInfo = infos.getJSONObject(infoIndex);
-            }
-            if("Service".equals(infos.getJSONObject(infoIndex).getString("flowComponent"))){
-                serviceInfo = infos.getJSONObject(infoIndex);
-            }
-        }
+        JSONObject viewAppInfo = getObj(infos, "App");
+        JSONObject viewServiceInfo = getObj(infos, "Service");
+        JSONObject addRouteView = getObj(infos, "addRouteView");
 
 
-        Assert.notNull(appInfo, "未包含应用信息");
-        Assert.notNull(serviceInfo, "未包含服务信息");
+        Assert.notNull(viewAppInfo, "未包含应用信息");
+        Assert.notNull(viewServiceInfo, "未包含服务信息");
+        Assert.notNull(addRouteView, "未包含扩展信息");
 
 
 
 
         //处理 应用信息
         //处理 应用信息
-        if(!appInfo.containsKey("appId")
-                || StringUtils.isEmpty(appInfo.getString("appId"))
-                || appInfo.getString("appId").startsWith("-")){
-            appInfo.put("appId", saveAppInfo(reqJson, appInfo));
+        if(!hasKey(viewAppInfo, "appId")){
+            viewAppInfo.put("appId", saveAppInfo(reqJson, viewAppInfo));
         }
         }
 
 
         //处理 服务信息
         //处理 服务信息
-        if(!serviceInfo.containsKey("serviceId")
-                || StringUtils.isEmpty(serviceInfo.getString("serviceId"))
-                || serviceInfo.getString("serviceId").startsWith("-")){
-            serviceInfo.put("serviceId", saveServiceInfo(reqJson, serviceInfo));
+        if(!hasKey(viewServiceInfo, "serviceId")){
+            viewServiceInfo.put("serviceId", saveServiceInfo(reqJson, viewServiceInfo));
         }
         }
 
 
         //处理路由信息
         //处理路由信息
 
 
-        RouteDto routeDto = new RouteDto();
-        routeDto.setAppId(appInfo.getString("appId"));
-        routeDto.setServiceId(serviceInfo.getString("serviceId"));
-        routeDto.setInvokeLimitTimes("1000");
-        routeDto.setInvokeModel("S");
-        routeDto.setOrderTypeCd("Q");
+        RouteDto routeDto = BeanConvertUtil.covertBean(addRouteView, RouteDto.class);
+        routeDto.setAppId(viewAppInfo.getString("appId"));
+        routeDto.setServiceId(viewServiceInfo.getString("serviceId"));
 
 
         int count = routeInnerServiceSMOImpl.saveRoute(routeDto);
         int count = routeInnerServiceSMOImpl.saveRoute(routeDto);
 
 
@@ -156,6 +145,35 @@ public class BindingServiceListener extends AbstractServiceApiListener {
         return serviceDto.getServiceId();
         return serviceDto.getServiceId();
     }
     }
 
 
+    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 + "】数据");
+    }
+
+    private boolean hasKey(JSONObject info, String key){
+        if(!info.containsKey(key)
+                || StringUtil.isEmpty(info.getString(key))
+                || info.getString(key).startsWith("-")){
+            return false;
+        }
+        return true;
+
+    }
+
+
     @Override
     @Override
     public String getServiceCode() {
     public String getServiceCode() {
         return ServiceCodeServiceConstant.BINDING_SERVICE;
         return ServiceCodeServiceConstant.BINDING_SERVICE;

+ 40 - 0
WebService/src/main/resources/components/servicePackage/addRouteView/addRouteView.html

@@ -0,0 +1,40 @@
+<div class="row">
+    <div class="col-lg-12">
+        <div class="ibox">
+            <div class="ibox-title">
+                <h5>服务绑定</h5>
+                <div class="ibox-tools" style="top:10px;">
+
+                </div>
+            </div>
+            <div class="ibox-content">
+
+                <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="addRouteViewInfo.orderTypeCd">
+         <option selected  disabled value="">必填,请选择订单类型</option>
+         <option  value="Q">查询</option>
+<option  value="D">业务受理</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="addRouteViewInfo.invokeLimitTimes"                   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="addRouteViewInfo.invokeModel">
+         <option selected  disabled value="">必填,请选择调用方式</option>
+         <option  value="S">同步方式</option>
+<option  value="A">异步方式</option>
+  </select>         </div>
+</div>
+
+            </div>
+        </div>
+    </div>
+</div>

+ 88 - 0
WebService/src/main/resources/components/servicePackage/addRouteView/addRouteView.js

@@ -0,0 +1,88 @@
+(function(vc){
+
+    vc.extends({
+        propTypes: {
+           callBackListener:vc.propTypes.string, //父组件名称
+           callBackFunction:vc.propTypes.string //父组件监听方法
+        },
+        data:{
+            addRouteViewInfo:{
+                flowComponent:'addRouteView',
+                orderTypeCd:'',
+invokeLimitTimes:'1000',
+invokeModel:'',
+
+            }
+        },
+        watch:{
+            addRouteViewInfo:{
+                deep: true,
+                handler:function(){
+                    vc.component.saveAddRouteInfo();
+                }
+             }
+        },
+         _initMethod:function(){
+
+         },
+         _initEvent:function(){
+
+            vc.on('addRouteViewInfo', 'onIndex', function(_index){
+                vc.component.addRouteViewInfo.index = _index;
+            });
+        },
+        methods:{
+            addRouteValidate(){
+                return vc.validate.validate({
+                    addRouteViewInfo:vc.component.addRouteViewInfo
+                },{
+                    'addRouteViewInfo.orderTypeCd':[
+{
+                            limit:"required",
+                            param:"",
+                            errInfo:"订单类型不能为空"
+                        },
+ {
+                            limit:"maxin",
+                            param:"1,4",
+                            errInfo:"订单类型错误"
+                        },
+                    ],
+'addRouteViewInfo.invokeLimitTimes':[
+{
+                            limit:"required",
+                            param:"",
+                            errInfo:"调用次数不能为空"
+                        },
+ {
+                            limit:"num",
+                            param:"",
+                            errInfo:"调用次数错误"
+                        },
+                    ],
+'addRouteViewInfo.invokeModel':[
+{
+                            limit:"required",
+                            param:"",
+                            errInfo:"调用方式不能为空"
+                        },
+ {
+                            limit:"maxLength",
+                            param:"50",
+                            errInfo:"消息队列不能超过50"
+                        },
+                    ],
+
+                });
+            },
+            saveAddRouteInfo:function(){
+                if(vc.component.addRouteValidate()){
+                    //侦听回传
+                    vc.emit($props.callBackListener,$props.callBackFunction, vc.component.addRouteViewInfo);
+                    return ;
+                }
+            }
+        }
+    });
+
+})(window.vc);

+ 8 - 4
WebService/src/main/resources/components/servicePackage/service-binding/serviceBinding.html

@@ -5,20 +5,24 @@
     </div>
     </div>
 
 
     <!-- 选择 应用信息 -->
     <!-- 选择 应用信息 -->
-    <div v-if="serviceBindingInfo.index == 0 || serviceBindingInfo.index == 2">
+    <div v-if="serviceBindingInfo.index == 0">
         <vc:create name="viewAppInfo"
         <vc:create name="viewAppInfo"
                    callBackListener="serviceBinding"
                    callBackListener="serviceBinding"
                    callBackFunction="notify"
                    callBackFunction="notify"
         ></vc:create>
         ></vc:create>
     </div>
     </div>
-
-    <!-- 选择 应用信息 -->
-    <div v-if="serviceBindingInfo.index == 1 || serviceBindingInfo.index == 2">
+    <div v-if="serviceBindingInfo.index == 1">
         <vc:create name="viewServiceInfo"
         <vc:create name="viewServiceInfo"
                    callBackListener="serviceBinding"
                    callBackListener="serviceBinding"
                    callBackFunction="notify"
                    callBackFunction="notify"
         ></vc:create>
         ></vc:create>
     </div>
     </div>
+    <div v-if="serviceBindingInfo.index == 2">
+        <vc:create name="addRouteView"
+                   callBackListener="serviceBinding"
+                   callBackFunction="notify"
+        ></vc:create>
+    </div>
 
 
 
 
 
 

+ 19 - 12
WebService/src/main/resources/components/servicePackage/service-binding/serviceBinding.js

@@ -2,8 +2,6 @@
     入驻小区
     入驻小区
 **/
 **/
 (function(vc){
 (function(vc){
-    var DEFAULT_PAGE = 1;
-    var DEFAULT_ROWS = 10;
     vc.extends({
     vc.extends({
         data:{
         data:{
             serviceBindingInfo:{
             serviceBindingInfo:{
@@ -27,7 +25,7 @@
                 vc.component.serviceBindingInfo.$step.step({
                 vc.component.serviceBindingInfo.$step.step({
                     index: 0,
                     index: 0,
                     time: 500,
                     time: 500,
-                    title: ["选择应用", "选择服务", "确认绑定"]
+                    title: ["选择应用","选择服务","扩展信息"]
                 });
                 });
                 vc.component.serviceBindingInfo.index = vc.component.serviceBindingInfo.$step.getIndex();
                 vc.component.serviceBindingInfo.index = vc.component.serviceBindingInfo.$step.getIndex();
             },
             },
@@ -35,31 +33,40 @@
                 vc.component.serviceBindingInfo.$step.prevStep();
                 vc.component.serviceBindingInfo.$step.prevStep();
                 vc.component.serviceBindingInfo.index = vc.component.serviceBindingInfo.$step.getIndex();
                 vc.component.serviceBindingInfo.index = vc.component.serviceBindingInfo.$step.getIndex();
 
 
-                 vc.emit('viewAppInfo', 'onIndex', vc.component.serviceBindingInfo.index);
-                 vc.emit('viewServiceInfo', 'onIndex', vc.component.serviceBindingInfo.index);
+                vc.emit('viewAppInfo', 'onIndex', vc.component.serviceBindingInfo.index);
+vc.emit('viewServiceInfo', 'onIndex', vc.component.serviceBindingInfo.index);
+vc.emit('addRouteView', 'onIndex', vc.component.serviceBindingInfo.index);
+
             },
             },
             _nextStep:function(){
             _nextStep:function(){
                 var _currentData = vc.component.serviceBindingInfo.infos[vc.component.serviceBindingInfo.index];
                 var _currentData = vc.component.serviceBindingInfo.infos[vc.component.serviceBindingInfo.index];
                 if( _currentData == null || _currentData == undefined){
                 if( _currentData == null || _currentData == undefined){
-                    vc.message("请选择相关信息");
+                    vc.message("请选择或填写必选信息");
                     return ;
                     return ;
                 }
                 }
                 vc.component.serviceBindingInfo.$step.nextStep();
                 vc.component.serviceBindingInfo.$step.nextStep();
                 vc.component.serviceBindingInfo.index = vc.component.serviceBindingInfo.$step.getIndex();
                 vc.component.serviceBindingInfo.index = vc.component.serviceBindingInfo.$step.getIndex();
 
 
-                vc.emit('viewAppInfo', 'onIndex', vc.component.serviceBindingInfo.index);
-                vc.emit('viewServiceInfo', 'onIndex', vc.component.serviceBindingInfo.index);
+                 vc.emit('viewAppInfo', 'onIndex', vc.component.serviceBindingInfo.index);
+vc.emit('viewServiceInfo', 'onIndex', vc.component.serviceBindingInfo.index);
+vc.emit('addRouteView', 'onIndex', vc.component.serviceBindingInfo.index);
+
             },
             },
             _finishStep:function(){
             _finishStep:function(){
 
 
 
 
+                var _currentData = vc.component.serviceBindingInfo.infos[vc.component.serviceBindingInfo.index];
+                if( _currentData == null || _currentData == undefined){
+                    vc.message("请选择或填写必选信息");
+                    return ;
+                }
 
 
                 var param = {
                 var param = {
                     data:vc.component.serviceBindingInfo.infos
                     data:vc.component.serviceBindingInfo.infos
                 }
                 }
 
 
                vc.http.post(
                vc.http.post(
-                   'serviceBinding',
+                   'serviceBindingBinding',
                    'binding',
                    'binding',
                    JSON.stringify(param),
                    JSON.stringify(param),
                    {
                    {
@@ -67,10 +74,10 @@
                     },
                     },
                     function(json,res){
                     function(json,res){
                        if(res.status == 200){
                        if(res.status == 200){
+
                            vc.message('处理成功',true);
                            vc.message('处理成功',true);
-                           var _jInfo = JSON.parse(json);
                            //关闭model
                            //关闭model
-                           vc.jumpToPage("/flow/serviceFlow?" + vc.objToGetParam(_jInfo));
+                           vc.jumpToPage("/flow/serviceRegisterFlow?" + vc.objToGetParam(JSON.parse(json)));
                            return ;
                            return ;
                        }
                        }
                        vc.message(json);
                        vc.message(json);
@@ -83,4 +90,4 @@
             }
             }
         }
         }
     });
     });
-})(window.vc);
+})(window.vc);

+ 53 - 103
java110-code-generator/src/main/resources/relationship/template_1.json

@@ -1,140 +1,90 @@
 {
 {
-  "templateName":"添加房屋",
-  "templateCode":"addRoomBinding",
-  "templateKey":"roomId",
-  "templateKeyName":"房屋ID",
-  "package": "roomPackage",
-  "successUrl": "/",
+  "templateName":"服务绑定",
+  "templateCode":"serviceBinding",
+  "templateKey":"id",
+  "templateKeyName":"绑定ID",
+  "package": "servicePackage",
+  "successUrl": "/flow/serviceRegisterFlow",
   "needAffirm": false,
   "needAffirm": false,
   "flows":[
   "flows":[
     {
     {
       "index": 0,
       "index": 0,
-      "code":"floor",
-      "flowKey": "floorId",
-      "cnCode":"选择",
-      "vcName":"viewFloorInfo",
-      "businessName": "businessFloor",
-      "businessType": "BUSINESS_TYPE_SAVE_FLOOR_INFO",
+      "code":"app",
+      "flowKey": "appId",
+      "cnCode":"选择应用",
+      "vcName":"viewAppInfo",
+      "businessName": "businessApp",
+      "businessType": "BUSINESS_TYPE_SAVE_APP_INFO",
       "existsComponent": true
       "existsComponent": true
     },
     },
     {
     {
       "index": 1,
       "index": 1,
-      "code":"unit",
-      "flowKey": "unitId",
-      "cnCode":"选择单元",
-      "vcName":"viewUnitInfo",
-      "businessName": "businessUnit",
-      "businessType": "BUSINESS_TYPE_SAVE_UNIT_INFO",
+      "code":"service",
+      "flowKey": "serviceId",
+      "cnCode":"选择服务",
+      "vcName":"viewServiceInfo",
+      "businessName": "businessService",
+      "businessType": "BUSINESS_TYPE_SAVE_SERVICE_INFO",
       "existsComponent": true
       "existsComponent": true
     },
     },
     {
     {
       "index": 2,
       "index": 2,
-      "code":"room",
-      "flowKey": "roomId",
-      "cnCode":"添加房屋",
-      "vcName":"addRoomView",
-      "businessName": "businessRoom",
-      "businessType": "BUSINESS_TYPE_SAVE_ROOM_INFO",
+      "code":"route",
+      "flowKey": "id",
+      "cnCode":"扩展信息",
+      "vcName":"addRouteView",
+      "businessName": "businessRoute",
+      "businessType": "BUSINESS_TYPE_SAVE_ROUTE_INFO",
       "existsComponent": false
       "existsComponent": false
     }
     }
   ],
   ],
   "components": {
   "components": {
-      "addRoomView": {
-        "templateName":"添加房屋",
-        "templateCode":"addRoom",
-        "package": "roomPackage",
+      "addRouteView": {
+        "templateName":"扩展信息",
+        "templateCode":"addRoute",
+        "package": "servicePackage",
         "columns":[
         "columns":[
           {
           {
-            "code":"roomNum",
-            "cnCode":"房屋编号",
-            "desc":"必填,请填写房屋编号",
+            "code":"orderTypeCd",
+            "cnCode":"订单类型",
+            "desc":"必填,请填写订单类型",
             "required":true,
             "required":true,
             "hasDefaultValue":false,
             "hasDefaultValue":false,
-            "inputType":"input",
-            "limit":"maxLength",
-            "limitParam":"12",
-            "limitErrInfo":"房屋编号长度不能超过12位"
-          },
-          {
-            "code":"layer",
-            "cnCode":"房屋楼层",
-            "desc":"必填,请填写房屋楼层",
-            "required":true,
-            "hasDefaultValue":false,
-            "inputType":"input",
-            "limit":"num",
-            "limitParam":"",
-            "limitErrInfo":"房屋楼层高度必须为数字"
+            "inputType":"select",
+            "selectValue":"Q,D",
+            "selectValueName":"查询,业务受理",
+            "limit":"maxin",
+            "limitParam":"1,4",
+            "limitErrInfo":"订单类型错误",
+            "show": true
           },
           },
           {
           {
-            "code":"section",
-            "cnCode":"房间数",
-            "desc":"必填,请填写房屋楼层",
+            "code":"invokeLimitTimes",
+            "cnCode":"调用次数",
+            "desc":"必填,请填写调用次数",
             "required":true,
             "required":true,
-            "hasDefaultValue":false,
+            "hasDefaultValue":true,
+            "defaultValue":"1000",
             "inputType":"input",
             "inputType":"input",
             "limit":"num",
             "limit":"num",
             "limitParam":"",
             "limitParam":"",
-            "limitErrInfo":"房间数必须为数字"
+            "limitErrInfo":"调用次数错误",
+            "show": false
           },
           },
           {
           {
-            "code":"apartment",
-            "cnCode":"房屋户型",
-            "desc":"必填,请选择房屋户型",
+            "code":"invokeModel",
+            "cnCode":"调用方式",
+            "desc":"可填,请填写消息队列,订单在异步调用时使用",
             "required":true,
             "required":true,
             "hasDefaultValue":false,
             "hasDefaultValue":false,
+            "defaultValue":"",
             "inputType":"select",
             "inputType":"select",
-            "selectValue":"一室两厅,两室两厅",
-            "selectValueName":"1010,2020",
+            "selectValue":"S,A",
+            "selectValueName":"同步方式,异步方式",
             "limit":"maxLength",
             "limit":"maxLength",
             "limitParam":"50",
             "limitParam":"50",
-            "limitErrInfo":"房屋户型不能大于50"
-          },
-          {
-            "code":"builtUpArea",
-            "cnCode":"建筑面积",
-            "desc":"必填,请填写房屋建筑面积",
-            "required":true,
-            "hasDefaultValue":false,
-            "inputType":"input",
-            "limit":"money",
-            "limitParam":"",
-            "limitErrInfo":"建筑面积错误,如 300.00"
-          },
-          {
-            "code":"unitPrice",
-            "cnCode":"房屋单价",
-            "desc":"必填,请填写房屋每平米单价",
-            "required":true,
-            "hasDefaultValue":false,
-            "inputType":"input",
-            "limit":"money",
-            "limitParam":"",
-            "limitErrInfo":"房屋单价错误 如 300.00"
-          },
-          {
-            "code":"state",
-            "cnCode":"房屋状态",
-            "desc":"必填,请选择房屋状态",
-            "required":true,
-            "hasDefaultValue":true,
-            "defaultValue":"2002",
-            "inputType":"none",
-            "limit":"maxLength",
-            "limitParam":"12",
-            "limitErrInfo":"房屋状态 不能超过12位"
-          },
-          {
-            "code":"remark",
-            "cnCode":"备注",
-            "desc":"可填,请填写备注",
-            "required":false,
-            "hasDefaultValue":false,
-            "defaultValue":"",
-            "inputType":"textarea",
-            "limit":"maxLength",
-            "limitParam":"200",
-            "limitErrInfo":"备注内容不能超过200"
+            "limitErrInfo":"消息队列不能超过50",
+            "show": false
           }
           }
         ]
         ]
       }
       }

+ 142 - 0
java110-code-generator/src/main/resources/relationship/template_room.json

@@ -0,0 +1,142 @@
+{
+  "templateName":"添加房屋",
+  "templateCode":"addRoomBinding",
+  "templateKey":"roomId",
+  "templateKeyName":"房屋ID",
+  "package": "roomPackage",
+  "successUrl": "/",
+  "needAffirm": false,
+  "flows":[
+    {
+      "index": 0,
+      "code":"floor",
+      "flowKey": "floorId",
+      "cnCode":"选择楼",
+      "vcName":"viewFloorInfo",
+      "businessName": "businessFloor",
+      "businessType": "BUSINESS_TYPE_SAVE_FLOOR_INFO",
+      "existsComponent": true
+    },
+    {
+      "index": 1,
+      "code":"unit",
+      "flowKey": "unitId",
+      "cnCode":"选择单元",
+      "vcName":"viewUnitInfo",
+      "businessName": "businessUnit",
+      "businessType": "BUSINESS_TYPE_SAVE_UNIT_INFO",
+      "existsComponent": true
+    },
+    {
+      "index": 2,
+      "code":"room",
+      "flowKey": "roomId",
+      "cnCode":"添加房屋",
+      "vcName":"addRoomView",
+      "businessName": "businessRoom",
+      "businessType": "BUSINESS_TYPE_SAVE_ROOM_INFO",
+      "existsComponent": false
+    }
+  ],
+  "components": {
+      "addRoomView": {
+        "templateName":"添加房屋",
+        "templateCode":"addRoom",
+        "package": "roomPackage",
+        "columns":[
+          {
+            "code":"roomNum",
+            "cnCode":"房屋编号",
+            "desc":"必填,请填写房屋编号",
+            "required":true,
+            "hasDefaultValue":false,
+            "inputType":"input",
+            "limit":"maxLength",
+            "limitParam":"12",
+            "limitErrInfo":"房屋编号长度不能超过12位"
+          },
+          {
+            "code":"layer",
+            "cnCode":"房屋楼层",
+            "desc":"必填,请填写房屋楼层",
+            "required":true,
+            "hasDefaultValue":false,
+            "inputType":"input",
+            "limit":"num",
+            "limitParam":"",
+            "limitErrInfo":"房屋楼层高度必须为数字"
+          },
+          {
+            "code":"section",
+            "cnCode":"房间数",
+            "desc":"必填,请填写房屋楼层",
+            "required":true,
+            "hasDefaultValue":false,
+            "inputType":"input",
+            "limit":"num",
+            "limitParam":"",
+            "limitErrInfo":"房间数必须为数字"
+          },
+          {
+            "code":"apartment",
+            "cnCode":"房屋户型",
+            "desc":"必填,请选择房屋户型",
+            "required":true,
+            "hasDefaultValue":false,
+            "inputType":"select",
+            "selectValue":"一室两厅,两室两厅",
+            "selectValueName":"1010,2020",
+            "limit":"maxLength",
+            "limitParam":"50",
+            "limitErrInfo":"房屋户型不能大于50"
+          },
+          {
+            "code":"builtUpArea",
+            "cnCode":"建筑面积",
+            "desc":"必填,请填写房屋建筑面积",
+            "required":true,
+            "hasDefaultValue":false,
+            "inputType":"input",
+            "limit":"money",
+            "limitParam":"",
+            "limitErrInfo":"建筑面积错误,如 300.00"
+          },
+          {
+            "code":"unitPrice",
+            "cnCode":"房屋单价",
+            "desc":"必填,请填写房屋每平米单价",
+            "required":true,
+            "hasDefaultValue":false,
+            "inputType":"input",
+            "limit":"money",
+            "limitParam":"",
+            "limitErrInfo":"房屋单价错误 如 300.00"
+          },
+          {
+            "code":"state",
+            "cnCode":"房屋状态",
+            "desc":"必填,请选择房屋状态",
+            "required":true,
+            "hasDefaultValue":true,
+            "defaultValue":"2002",
+            "inputType":"none",
+            "limit":"maxLength",
+            "limitParam":"12",
+            "limitErrInfo":"房屋状态 不能超过12位"
+          },
+          {
+            "code":"remark",
+            "cnCode":"备注",
+            "desc":"可填,请填写备注",
+            "required":false,
+            "hasDefaultValue":false,
+            "defaultValue":"",
+            "inputType":"textarea",
+            "limit":"maxLength",
+            "limitParam":"200",
+            "limitErrInfo":"备注内容不能超过200"
+          }
+        ]
+      }
+  }
+}