<NME> ServiceCodeAddStaffStepConstant.java
<BEF> ADDFILE
<MSG> 优化员工功能

<DFF> @@ -0,0 +1,16 @@
+package com.java110.utils.constant;
+
+/**
+ * 添加员工常量类
+ * Created by wuxw on 2017/5/20.
+ */
+public class ServiceCodeAddStaffStepConstant {
+
+    /**
+     * 添加 添加员工
+     */
+    public static final String BINDING_ADDSTAFFSTEP = "staff.addStaffStep";
+
+
+
+}

{'commit': 'diff --git a/Api/src/main/java/com/java110/api/listener/users/AddStaffServiceListener.java b/Api/src/main/java/com/java110/api/listener/users/AddStaffServiceListener.java\nindex 6cf0d5252..f9152d9fb 100644\n--- a/Api/src/main/java/com/java110/api/listener/users/AddStaffServiceListener.java\n+++ b/Api/src/main/java/com/java110/api/listener/users/AddStaffServiceListener.java\n@@ -83,6 +83,9 @@ public class AddStaffServiceListener extends AbstractServiceApiDataFlowListener{\n         JSONObject staffBusiness = addStaff(paramInJson);\n         businesses.add(staffBusiness);\n \n+        JSONObject staffOrgBusiness = addStaffOrg(paramInJson);\n+        businesses.add(staffOrgBusiness);\n+\n         HttpHeaders header = new HttpHeaders();\n         dataFlowContext.getRequestCurrentHeaders().put(CommonConstant.HTTP_USER_ID,userId);\n         dataFlowContext.getRequestCurrentHeaders().put(CommonConstant.HTTP_ORDER_TYPE_CD,"D");\n@@ -107,6 +110,24 @@ public class AddStaffServiceListener extends AbstractServiceApiDataFlowListener{\n         privilegeUserDefault(dataFlowContext,paramInJson);\n     }\n \n+    private JSONObject addStaffOrg(JSONObject paramInJson) {\n+\n+        JSONObject business = JSONObject.parseObject("{\\"datas\\":{}}");\n+        business.put(CommonConstant.HTTP_BUSINESS_TYPE_CD, BusinessTypeConstant.BUSINESS_TYPE_SAVE_STORE_USER);\n+        business.put(CommonConstant.HTTP_SEQ,1);\n+        business.put(CommonConstant.HTTP_INVOKE_MODEL,CommonConstant.HTTP_INVOKE_MODEL_S);\n+        JSONArray businessStaffOrgs = new JSONArray();\n+        JSONObject businessStaffOrg = new JSONObject();\n+        businessStaffOrg.put("storeId",paramInJson.getString("storeId"));\n+        businessStaffOrg.put("storeUserId","-1");\n+        businessStaffOrg.put("userId",paramInJson.getString("userId"));\n+        businessStaffOrg.put("relCd",paramInJson.getString("relCd"));\n+        businessStaffOrgs.add(businessStaffOrg);\n+        business.getJSONObject(CommonConstant.HTTP_BUSINESS_DATAS).put("businessStoreUser",businessStaffOrgs);\n+\n+        return business;\n+    }\n+\n     /**\n      * 添加员工\n      * @param paramInJson\n@@ -140,7 +161,9 @@ public class AddStaffServiceListener extends AbstractServiceApiDataFlowListener{\n         Assert.jsonObjectHaveKey(paramObj,"name","请求参数中未包含name 节点，请确认");\n         Assert.jsonObjectHaveKey(paramObj,"email","请求参数中未包含email 节点，请确认");\n         Assert.jsonObjectHaveKey(paramObj,"tel","请求参数中未包含tel 节点，请确认");\n-\n+        Assert.jsonObjectHaveKey(paramObj,"orgId", "请求报文格式错误或未包含部门信息");\n+        Assert.jsonObjectHaveKey(paramObj,"address", "请求报文格式错误或未包含地址信息");\n+        Assert.jsonObjectHaveKey(paramObj,"sex", "请求报文格式错误或未包含性别信息");\n \n         JSONObject business = JSONObject.parseObject("{\\"datas\\":{}}");\n         business.put(CommonConstant.HTTP_BUSINESS_TYPE_CD, BusinessTypeConstant.BUSINESS_TYPE_SAVE_USER_INFO);\ndiff --git a/Api/src/main/java/com/java110/api/rest/PicTest.java b/Api/src/main/java/com/java110/api/rest/PicTest.java\nindex 0e1114eb6..302acab84 100644\n--- a/Api/src/main/java/com/java110/api/rest/PicTest.java\n+++ b/Api/src/main/java/com/java110/api/rest/PicTest.java\n@@ -17,15 +17,40 @@ import javax.imageio.ImageIO;\n import javax.imageio.stream.FileImageOutputStream;\n \n public class PicTest {\n+\n+    static int a = 0;\n     public static void main(String[] args) throws IOException {\n-        long timeStart = System.currentTimeMillis();\n+        /*long timeStart = System.currentTimeMillis();\n         String imgLocalUrl = "D:\\\\白静雪.jpg";\n \n         byte[] imgBytes = getByteByPic(imgLocalUrl);\n         byte[] resultImg = compressUnderSize(imgBytes,800 * 1024);\n         byte2image(resultImg,"E:\\\\tp\\\\timga.jpg");\n         long timeEnd = System.currentTimeMillis();\n-        System.out.println("耗时："+ (timeEnd - timeStart));\n+        System.out.println("耗时："+ (timeEnd - timeStart));*/\n+        char i= 8;\n+        int j = 0;\n+        for (;i >0;j-=3){\n+            ++j;\n+        }\n+        System.out.printf("%d\\n",j);\n+\n+       // System.out.printf("a= "+ fib(5));\n+    }\n+\n+    public static int fib(int i) {\n+        a++;\n+        if(i == 0){\n+            return 1;\n+        }else{\n+            if(i== 1){\n+                return 2;\n+            }else{\n+                return  fib(i-1)+fib(i-2);\n+            }\n+\n+        }\n+\n     }\n \n     public static byte[] getByteByPic(String imageUrl) throws IOException{\ndiff --git a/Api/src/main/resources/photoInfo.txt b/Api/src/main/resources/photoInfo.txt\nindex 2354ff8ab..afee5c2da 100644\n--- a/Api/src/main/resources/photoInfo.txt\n+++ b/Api/src/main/resources/photoInfo.txt\n@@ -1,149 +1,20 @@\n-713039780971|http://135.192.50.148:7500/v1/crmappkey0001/T1zyATBCLT1RXrhCrK\n-713039976392|http://135.192.50.148:7500/v1/crmappkey0001/T18zJTB5DT1RXrhCrK\n-713039997387|http://135.192.50.148:7500/v1/crmappkey0001/T1QabTB5hT1RXrhCrK\n-713040006717|http://135.192.50.148:7500/v1/crmappkey0001/T1NRVTBvd_1RXrhCrK\n-713040078002|http://135.192.50.148:7500/v1/crmappkey0001/T1htVTBQVb1RXrhCrK\n-713040066641|http://135.192.50.148:7500/v1/crmappkey0001/T1XXZTBjDQ1RXrhCrK\n-713040117755|http://135.192.50.148:7500/v1/crmappkey0001/T1pXdTBmDC1RXrhCrK\n-713040106986|http://135.192.50.148:7500/v1/crmappkey0001/T1ltATBQWm1RXrhCrK\n-713040140517|http://135.192.50.148:7500/v1/crmappkey0001/T1uybTBCdm1RXrhCrK\n-713040265790|http://135.192.50.148:7500/v1/crmappkey0001/T1sRbTBjhW1RXrhCrK\n-713040380070|http://135.192.50.148:7500/v1/crmappkey0001/T1bVVgBmDv1RXrhCrK\n-713040402676|http://135.192.50.148:7500/v1/crmappkey0001/T1mk_gBbJT1RXrhCrK\n-713040452404|http://135.192.50.148:7500/v1/crmappkey0001/T1E.DgB7d_1RXrhCrK\n-713040461591|http://135.192.50.148:7500/v1/crmappkey0001/T1C6CgBvbT1RXrhCrK\n-713040443108|http://135.192.50.148:7500/v1/crmappkey0001/T1.khgBCL_1RXrhCrK\n-713040492312|http://135.192.50.148:7500/v1/crmappkey0001/T15U_gBXKv1RXrhCrK\n-713040246676|http://135.192.50.148:7500/v1/crmappkey0001/T1V6hgBQLT1RXrhCrK\n-713040534246|http://135.192.50.148:7500/v1/crmappkey0001/T1qoJgB7xg1RXrhCrK\n-713040538258|http://135.192.50.148:7500/v1/crmappkey0001/T14oxgBKYg1RXrhCrK\n-713040592876|http://135.192.50.148:7500/v1/crmappkey0001/T1B.ZgB5_j1RXrhCrK\n-713040790871|http://135.192.50.148:7500/v1/crmappkey0001/T1PaxTBKb91RXrhCrK\n-713040786042|http://135.192.50.148:7500/v1/crmappkey0001/T1t6VgBy_s1RXrhCrK\n-713040779146|http://135.192.50.148:7500/v1/crmappkey0001/T1JRZTBvD91RXrhCrK\n-713040772213|http://135.192.50.148:7500/v1/crmappkey0001/T1PmbgBvCQ1RXrhCrK\n-713040136201|http://135.192.50.148:7500/v1/crmappkey0001/T1DXLTBjdS1RXrhCrK\n-713040855740|http://135.192.50.148:7500/v1/crmappkey0001/T1cohgByK41RXrhCrK\n-713040936071|http://135.192.50.148:7500/v1/crmappkey0001/T1kchgBbWs1RXrhCrK\n-713041022095|http://135.192.50.148:7500/v1/crmappkey0001/T1V6bgByWb1RXrhCrK\n-713040959132|http://135.192.50.148:7500/v1/crmappkey0001/T1NcDgBmCs1RXrhCrK\n-713041138341|http://135.192.50.148:7500/v1/crmappkey0001/T1OkbgBmWs1RXrhCrK\n-713041246981|http://135.192.50.148:7500/v1/crmappkey0001/T1sZbgB_ds1RXrhCrK\n-713041255419|http://135.192.50.148:7500/v1/crmappkey0001/T1sZbgBQxs1RXrhCrK\n-713041240318|http://135.192.50.148:7500/v1/crmappkey0001/T1hCLgBsVb1RXrhCrK\n-713040981460|http://135.192.50.148:7500/v1/crmappkey0001/T1A.AgBKbX1RXrhCrK\n-713041272320|http://135.192.50.148:7500/v1/crmappkey0001/T1G6JgByKm1RXrhCrK\n-713041335082|http://135.192.50.148:7500/v1/crmappkey0001/T1kUdgBj_s1RXrhCrK\n-713041110867|http://135.192.50.148:7500/v1/crmappkey0001/T1RCKgBQbX1RXrhCrK\n-713041330246|http://135.192.50.148:7500/v1/crmappkey0001/T1zcdgBQbs1RXrhCrK\n-713041348303|http://135.192.50.148:7500/v1/crmappkey0001/T1iUAgB5Cs1RXrhCrK\n-713041384395|http://135.192.50.148:7500/v1/crmappkey0001/T1q0CgBmLQ1RXrhCrK\n-713041472301|http://135.192.50.148:7500/v1/crmappkey0001/T1Qk_gB5xC1RXrhCrK\n-713041538189|http://135.192.50.148:7500/v1/crmappkey0001/T1A5KgBjKC1RXrhCrK\n-713041774093|http://135.192.50.148:7500/v1/crmappkey0001/T1zUAgBQEb1RXrhCrK\n-713041833366|http://135.192.50.148:7500/v1/crmappkey0001/T1j.WgBTbX1RXrhCrK\n-713041815076|http://135.192.50.148:7500/v1/crmappkey0001/T1bZKgByVX1RXrhCrK\n-713042069292|http://135.192.50.148:7500/v1/crmappkey0001/T1rzCTB4ES1RXrhCrK\n-713042071969|http://135.192.50.148:7500/v1/crmappkey0001/T132YgBvds1RXrhCrK\n-713042129527|http://135.192.50.148:7500/v1/crmappkey0001/T17oAgBTEX1RXrhCrK\n-713042140286|http://135.192.50.148:7500/v1/crmappkey0001/T1IUVgB7Zb1RXrhCrK\n-753040937722|http://135.192.50.148:7500/v1/crmappkey0001/T1Y7LgB4xT1RXrhCrK\n-713042187191|http://135.192.50.148:7500/v1/crmappkey0001/T1k2bgB4LT1RXrhCrK\n-713042327534|http://135.192.50.148:7500/v1/crmappkey0001/T1d7hgBKdQ1RXrhCrK\n-713042335814|http://135.192.50.148:7500/v1/crmappkey0001/T1m2EgB4Ks1RXrhCrK\n-713042342652|http://135.192.50.148:7500/v1/crmappkey0001/T11OdgB5VQ1RXrhCrK\n-713042440563|http://135.192.50.148:7500/v1/crmappkey0001/T1I6EgB7Aj1RXrhCrK\n-713042493945|http://135.192.50.148:7500/v1/crmappkey0001/T1boAgBQ_X1RXrhCrK\n-713042460687|http://135.192.50.148:7500/v1/crmappkey0001/T1xkZgBsds1RXrhCrK\n-713042500971|http://135.192.50.148:7500/v1/crmappkey0001/T1CUZgBvL41RXrhCrK\n-713042486657|http://135.192.50.148:7500/v1/crmappkey0001/T1c6CgBsbX1RXrhCrK\n-713042514320|http://135.192.50.148:7500/v1/crmappkey0001/T1t.KgBCb41RXrhCrK\n-713042586556|http://135.192.50.148:7500/v1/crmappkey0001/T1.EWgBCWC1RXrhCrK\n-713042663331|http://135.192.50.148:7500/v1/crmappkey0001/T1hcLgBvCQ1RXrhCrK\n-713042662911|http://135.192.50.148:7500/v1/crmappkey0001/T1Q6ZgBQbs1RXrhCrK\n-713042703695|http://135.192.50.148:7500/v1/crmappkey0001/T1LUAgBCJX1RXrhCrK\n-713042678838|http://135.192.50.148:7500/v1/crmappkey0001/T1j6VgB_Lb1RXrhCrK\n-713042664876|http://135.192.50.148:7500/v1/crmappkey0001/T1ZcJgBmZy1RXrhCrK\n-713042656558|http://135.192.50.148:7500/v1/crmappkey0001/T1P.dgB_A41RXrhCrK\n-713042645610|http://135.192.50.148:7500/v1/crmappkey0001/T1NcZgB_Ks1RXrhCrK\n-713042668757|http://135.192.50.148:7500/v1/crmappkey0001/T1hU_gBQAs1RXrhCrK\n-713042766439|http://135.192.50.148:7500/v1/crmappkey0001/T1S5WgBsLX1RXrhCrK\n-713042773211|http://135.192.50.148:7500/v1/crmappkey0001/T18oDgBTbs1RXrhCrK\n-713042869667|http://135.192.50.148:7500/v1/crmappkey0001/T1t.WgBTC41RXrhCrK\n-713042836800|http://135.192.50.148:7500/v1/crmappkey0001/T18chgB5Lb1RXrhCrK\n-713042873517|http://135.192.50.148:7500/v1/crmappkey0001/T1IZAgBCJX1RXrhCrK\n-713042890457|http://135.192.50.148:7500/v1/crmappkey0001/T1nchgBgVX1RXrhCrK\n-713042952681|http://135.192.50.148:7500/v1/crmappkey0001/T18mAgBsKb1RXrhCrK\n-713042946062|http://135.192.50.148:7500/v1/crmappkey0001/T1xEWgBgWX1RXrhCrK\n-713043053593|http://135.192.50.148:7500/v1/crmappkey0001/T1DkxgBsJs1RXrhCrK\n-713043042066|http://135.192.50.148:7500/v1/crmappkey0001/T1eZVgBC_y1RXrhCrK\n-713043070701|http://135.192.50.148:7500/v1/crmappkey0001/T1J2DgBX_X1RXrhCrK\n-713043097285|http://135.192.50.148:7500/v1/crmappkey0001/T15ECgBvDy1RXrhCrK\n-713043223356|http://135.192.50.148:7500/v1/crmappkey0001/T1W7xgBv_C1RXrhCrK\n-713043202839|http://135.192.50.148:7500/v1/crmappkey0001/T1FZAgBXDm1RXrhCrK\n-713043187864|http://135.192.50.148:7500/v1/crmappkey0001/T1SkxgBgCs1RXrhCrK\n-713043413273|http://135.192.50.148:7500/v1/crmappkey0001/T1rUdgBgbX1RXrhCrK\n-713043382161|http://135.192.50.148:7500/v1/crmappkey0001/T1f2_gBTLT1RXrhCrK\n-713043256769|http://135.192.50.148:7500/v1/crmappkey0001/T1j5EgBgxy1RXrhCrK\n-713043473099|http://135.192.50.148:7500/v1/crmappkey0001/T1SkEgB7Y41RXrhCrK\n-713043469218|http://135.192.50.148:7500/v1/crmappkey0001/T1s0EgByLX1RXrhCrK\n-713043495025|http://135.192.50.148:7500/v1/crmappkey0001/T1emhgB5_b1RXrhCrK\n-713043436669|http://135.192.50.148:7500/v1/crmappkey0001/T1aVVgB7EX1RXrhCrK\n-713043525963|http://135.192.50.148:7500/v1/crmappkey0001/T1_U_gBsJb1RXrhCrK\n-713043581038|http://135.192.50.148:7500/v1/crmappkey0001/T1QkYgBsK41RXrhCrK\n-713043491049|http://135.192.50.148:7500/v1/crmappkey0001/T19UEgBjh41RXrhCrK\n-713043627563|http://135.192.50.148:7500/v1/crmappkey0001/T1T7AgBgAT1RXrhCrK\n-713043633685|http://135.192.50.148:7500/v1/crmappkey0001/T1V5ZgBmh41RXrhCrK\n-713043577649|http://135.192.50.148:7500/v1/crmappkey0001/T1e2bgBTVT1RXrhCrK\n-713043579749|http://135.192.50.148:7500/v1/crmappkey0001/T1ccbgBbAb1RXrhCrK\n-713043638372|http://135.192.50.148:7500/v1/crmappkey0001/T1nUZgBjAQ1RXrhCrK\n-713043640366|http://135.192.50.148:7500/v1/crmappkey0001/T1DoZgB5CX1RXrhCrK\n-713043643934|http://135.192.50.148:7500/v1/crmappkey0001/T1AcxgBbWQ1RXrhCrK\n-713043654194|http://135.192.50.148:7500/v1/crmappkey0001/T18cYgBCWX1RXrhCrK\n-713043737085|http://135.192.50.148:7500/v1/crmappkey0001/T1hU_gBXLX1RXrhCrK\n-713043717610|http://135.192.50.148:7500/v1/crmappkey0001/T1KCCgBQYX1RXrhCrK\n-713043754780|http://135.192.50.148:7500/v1/crmappkey0001/T1e6DgByV41RXrhCrK\n-713043795513|http://135.192.50.148:7500/v1/crmappkey0001/T1eOLgBv_T1RXrhCrK\n-713043861117|http://135.192.50.148:7500/v1/crmappkey0001/T1ZkWgBvY41RXrhCrK\n-713043818869|http://135.192.50.148:7500/v1/crmappkey0001/T1ikJgBj_y1RXrhCrK\n-713044318496|http://135.192.50.148:7500/v1/crmappkey0001/T1a7ZgBCWX1RXrhCrK\n-713043780618|http://135.192.50.148:7500/v1/crmappkey0001/T1wUEgBXKX1RXrhCrK\n-713044332117|http://135.192.50.148:7500/v1/crmappkey0001/T1Jc_gBCDy1RXrhCrK\n-713044483607|http://135.192.50.148:7500/v1/crmappkey0001/T1.CWgBKxX1RXrhCrK\n-713044678147|http://135.192.50.148:7500/v1/crmappkey0001/T1r6EgB7dm1RXrhCrK\n-713044329689|http://135.192.50.148:7500/v1/crmappkey0001/T1n2hgBgKX1RXrhCrK\n-713044492032|http://135.192.50.148:7500/v1/crmappkey0001/T1o0JgBvEX1RXrhCrK\n-713044270240|http://135.192.50.148:7500/v1/crmappkey0001/T1S5CgBTVX1RXrhCrK\n-713043954224|http://135.192.50.148:7500/v1/crmappkey0001/T17OJgBCYX1RXrhCrK\n-713044266033|http://135.192.50.148:7500/v1/crmappkey0001/T1rC_gBgxX1RXrhCrK\n-713044521077|http://135.192.50.148:7500/v1/crmappkey0001/T1YdEgBKWT1RXrhCrK\n-713044517301|http://135.192.50.148:7500/v1/crmappkey0001/T1a5JgB7dX1RXrhCrK\n-713043814765|http://135.192.50.148:7500/v1/crmappkey0001/T1LkbgB5_y1RXrhCrK\n-713043953413|http://135.192.50.148:7500/v1/crmappkey0001/T1IOAgBQdT1RXrhCrK\n-713043966119|http://135.192.50.148:7500/v1/crmappkey0001/T19mbgBmxX1RXrhCrK\n-713044183408|http://135.192.50.148:7500/v1/crmappkey0001/T1X0CgBbKX1RXrhCrK\n-713044085230|http://135.192.50.148:7500/v1/crmappkey0001/T1o7VgBsLT1RXrhCrK\n-713043985364|http://135.192.50.148:7500/v1/crmappkey0001/T1lOVgB_dT1RXrhCrK\n-713044103672|http://135.192.50.148:7500/v1/crmappkey0001/T1tZCgBgbX1RXrhCrK\n-713043976633|http://135.192.50.148:7500/v1/crmappkey0001/T1LZ_gB_CX1RXrhCrK\n-713043967833|http://135.192.50.148:7500/v1/crmappkey0001/T1vO_gBQZT1RXrhCrK\n-713039847348|http://135.192.50.148:7500/v1/crmappkey0001/T1cFdTBXDT1RXrhCrK\n-713039851547|http://135.192.50.148:7500/v1/crmappkey0001/T1fVVgBCZ_1RXrhCrK\n-713039890438|http://135.192.50.148:7500/v1/crmappkey0001/T14VAgBXEs1RXrhCrK\n-713039912006|http://135.192.50.148:7500/v1/crmappkey0001/T1QRWTB4VT1RXrhCrK\n-713040089296|http://135.192.50.148:7500/v1/crmappkey0001/T1mAJgB_AT1RXrhCrK\n-713040102279|http://135.192.50.148:7500/v1/crmappkey0001/T16JJgByWv1RXrhCrK\n-713040137708|http://135.192.50.148:7500/v1/crmappkey0001/T1.zLTBbAl1RXrhCrK\n-713040156309|http://135.192.50.148:7500/v1/crmappkey0001/T1L6KgB7xQ1RXrhCrK\n-713040379105|http://135.192.50.148:7500/v1/crmappkey0001/T15OVgBKE_1RXrhCrK\n-713040451190|http://135.192.50.148:7500/v1/crmappkey0001/T1hUYgBQZy1RXrhCrK\n-713040819173|http://135.192.50.148:7500/v1/crmappkey0001/T1..JgB5Wm1RXrhCrK\n-713041043972|http://135.192.50.148:7500/v1/crmappkey0001/T19OZgByDy1RXrhCrK\n-713041841075|http://135.192.50.148:7500/v1/crmappkey0001/T192AgBvDv1RXrhCrK\n-713042515929|http://135.192.50.148:7500/v1/crmappkey0001/T17KEgBs_v1RXrhCrK\n-713042795870|http://135.192.50.148:7500/v1/crmappkey0001/T1cCCgBbxX1RXrhCrK\n-713043330749|http://135.192.50.148:7500/v1/crmappkey0001/T145bgB_dm1RXrhCrK\n-713043370598|http://135.192.50.148:7500/v1/crmappkey0001/T1qoYgBjEQ1RXrhCrK\n-713043423115|http://135.192.50.148:7500/v1/crmappkey0001/T1SVCgBmCC1RXrhCrK\n-713043441424|http://135.192.50.148:7500/v1/crmappkey0001/T1wAKgB7KT1RXrhCrK\n-753040212159|http://135.192.50.148:7500/v1/crmappkey0001/T1VNJTBsLL1RXrhCrK\n\\ No newline at end of file\n+713039811614|http://135.192.50.148:7500/v1/crmappkey0001/T1Z5KgB7Wm1RXrhCrK\n+713039930373|http://135.192.50.148:7500/v1/crmappkey0001/T1S5KgB7Ky1RXrhCrK\n+713040525406|http://135.192.50.148:7500/v1/crmappkey0001/T1iULgBXhX1RXrhCrK\n+713040591436|http://135.192.50.148:7500/v1/crmappkey0001/T1.JEgBgZv1RXrhCrK\n+713040763091|http://135.192.50.148:7500/v1/crmappkey0001/T1fkKgBvZ41R4bAZ6K\n+713040774592|http://135.192.50.148:7500/v1/crmappkey0001/T1cZVgBT_X1R4bAZ6K\n+713041058324|http://135.192.50.148:7500/v1/crmappkey0001/T1PUxgBgCb1RXrhCrK\n+713041574065|http://135.192.50.148:7500/v1/crmappkey0001/T19.xgB7Vs1RXrhCrK\n+713041840227|http://135.192.50.148:7500/v1/crmappkey0001/T140ZgBKZb1R4bAZ6K\n+713041927203|http://135.192.50.148:7500/v1/crmappkey0001/T1XUZgByLy1R4bAZ6K\n+713042563428|http://135.192.50.148:7500/v1/crmappkey0001/T1_.hgBjZ41RXrhCrK\n+713043138860|http://135.192.50.148:7500/v1/crmappkey0001/T1z2AgBQYT1R4bAZ6K\n+713043241768|http://135.192.50.148:7500/v1/crmappkey0001/T1l7bgBgL_1RXrhCrK\n+713043390327|http://135.192.50.148:7500/v1/crmappkey0001/T1bOdgBCEb1R4bAZ6K\n+713043652157|http://135.192.50.148:7500/v1/crmappkey0001/T1tJJgBTh_1RXrhCrK\n+713044030925|http://135.192.50.148:7500/v1/crmappkey0001/T1B2AgB5dv1RyJcC6K\n+713047606942|http://135.192.50.148:7500/v1/crmappkey0001/T1CoZgBbx51RXrhCrK\n+713047841429|http://135.192.50.148:7500/v1/crmappkey0001/T12CbgBvWm1RXrhCrK\n+713048076575|http://135.192.50.148:7500/v1/crmappkey0001/T14KCgB_hT1RXrhCrK\n+753043810973|http://135.192.50.148:7500/v1/crmappkey0001/T1g5YgB7Ky1RXrhCrK\n\\ No newline at end of file\ndiff --git a/WebService/src/main/java/com/java110/web/components/staff/AddStaffStepBindingComponent.java b/WebService/src/main/java/com/java110/web/components/staff/AddStaffStepBindingComponent.java\nnew file mode 100644\nindex 000000000..577dc2de0\n--- /dev/null\n+++ b/WebService/src/main/java/com/java110/web/components/staff/AddStaffStepBindingComponent.java\n@@ -0,0 +1,35 @@\n+package com.java110.web.components.staff;\n+\n+import com.java110.core.context.IPageData;\n+import com.java110.web.smo.IStaffServiceSMO;\n+import org.springframework.beans.factory.annotation.Autowired;\n+import org.springframework.http.ResponseEntity;\n+import org.springframework.stereotype.Component;\n+\n+/**\n+ * 添加添加员工组件\n+ */\n+@Component("addStaffStepBinding")\n+public class AddStaffStepBindingComponent {\n+\n+    @Autowired\n+    private IStaffServiceSMO staffServiceSMOImpl;\n+\n+    /**\n+     * 添加添加员工数据\n+     *\n+     * @param pd 页面数据封装\n+     * @return ResponseEntity 对象\n+     */\n+    public ResponseEntity<String> binding(IPageData pd) {\n+        return staffServiceSMOImpl.saveStaff(pd);\n+    }\n+\n+    public IStaffServiceSMO getStaffServiceSMOImpl() {\n+        return staffServiceSMOImpl;\n+    }\n+\n+    public void setStaffServiceSMOImpl(IStaffServiceSMO staffServiceSMOImpl) {\n+        this.staffServiceSMOImpl = staffServiceSMOImpl;\n+    }\n+}\ndiff --git a/WebService/src/main/java/com/java110/web/smo/impl/StaffServiceSMOImpl.java b/WebService/src/main/java/com/java110/web/smo/impl/StaffServiceSMOImpl.java\nindex 3640fd1ac..9e39ded86 100644\n--- a/WebService/src/main/java/com/java110/web/smo/impl/StaffServiceSMOImpl.java\n+++ b/WebService/src/main/java/com/java110/web/smo/impl/StaffServiceSMOImpl.java\n@@ -41,6 +41,7 @@ public class StaffServiceSMOImpl extends BaseComponentSMO implements IStaffServi\n         Assert.jsonObjectHaveKey(pd.getReqData(), "tel", "请求报文格式错误或未包含手机信息");\n         Assert.jsonObjectHaveKey(pd.getReqData(), "sex", "请求报文格式错误或未包含性别信息");\n         Assert.jsonObjectHaveKey(pd.getReqData(), "address", "请求报文格式错误或未包含地址信息");\n+        Assert.jsonObjectHaveKey(pd.getReqData(), "orgId", "请求报文格式错误或未包含部门信息");\n \n         ResponseEntity responseEntity = super.getStoreInfo(pd, restTemplate);\n \ndiff --git a/WebService/src/main/resources/components/orgPackage/view-org-info/viewOrgInfo.html b/WebService/src/main/resources/components/orgPackage/view-org-info/viewOrgInfo.html\nindex f9bbe67b6..50e03871f 100644\n--- a/WebService/src/main/resources/components/orgPackage/view-org-info/viewOrgInfo.html\n+++ b/WebService/src/main/resources/components/orgPackage/view-org-info/viewOrgInfo.html\n@@ -2,55 +2,48 @@\n     <div class="col-lg-12">\n         <div class="ibox ">\n             <div class="ibox-title">\n-                <h5>组织管理信息</h5>\n+                <h5>{{viewOrgInfo.componentName}}</h5>\n                 <div class="ibox-tools" style="top:10px;">\n-                    <button type="button" v-if="viewOrgInfo.index != 2" class="btn btn-primary btn-sm" style="margin-right:10px;"  v-on:click="_openSelectOrgInfoModel()">\n-                        <i class="glyphicon glyphicon-search"></i> 选择组织管理</button>\n-\n-                    <button type="button" v-if="viewOrgInfo.index != 2" class="btn btn-primary btn-sm" v-on:click="_openAddOrgInfoModel()">\n-                        <i class="glyphicon glyphicon-plus"></i> 添加组织管理</button>\n+                    <button type="button" v-if="viewOrgInfo.index != 2" class="btn btn-primary btn-sm"\n+                            style="margin-right:10px;" v-on:click="_openSelectOrgInfoModel()">\n+                        <i class="glyphicon glyphicon-search"></i> 选择组织管理\n+                    </button>\n                 </div>\n             </div>\n             <div class="ibox-content">\n                 <div class="row">\n-<div class="col-sm-4">\n+                    <div class="col-sm-4">\n                         <div class="form-group">\n-                            <label class="col-form-label" >组织名称：</label>\n+                            <label class="col-form-label">组织名称：</label>\n                             <label class="">{{viewOrgInfo.orgName}}</label>\n                         </div>\n-</div>\n-<div class="col-sm-4">\n+                    </div>\n+                    <div class="col-sm-4">\n                         <div class="form-group">\n-                            <label class="col-form-label" >组织级别：</label>\n+                            <label class="col-form-label">组织级别：</label>\n                             <label class="">{{viewOrgInfo.orgLevel}}</label>\n                         </div>\n-</div>\n-<div class="col-sm-4">\n+                    </div>\n+                    <div class="col-sm-4">\n                         <div class="form-group">\n-                            <label class="col-form-label" >上级ID：</label>\n+                            <label class="col-form-label">上级组织：</label>\n                             <label class="">{{viewOrgInfo.parentOrgId}}</label>\n                         </div>\n-</div>\n-</div>\n-<div class="row">\n-<div class="col-sm-4">\n+                    </div>\n+                </div>\n+                <div class="row">\n+                    <div class="col-sm-4">\n                         <div class="form-group">\n-                            <label class="col-form-label" >描述：</label>\n+                            <label class="col-form-label">描述：</label>\n                             <label class="">{{viewOrgInfo.description}}</label>\n                         </div>\n-</div>\n-</div>\n+                    </div>\n+                </div>\n \n             </div>\n         </div>\n     </div>\n \n-    <vc:create name="addOrg"\n-               callBackListener="viewOrgInfo"\n-               callBackFunction="chooseOrg"\n-    ></vc:create>\n-\n-\n     <vc:create name="chooseOrg"\n                emitChooseOrg="viewOrgInfo"\n                emitLoadData="viewOrgInfo"\ndiff --git a/WebService/src/main/resources/components/orgPackage/view-org-info/viewOrgInfo.js b/WebService/src/main/resources/components/orgPackage/view-org-info/viewOrgInfo.js\nindex 02f733e7f..46c7025b0 100644\n--- a/WebService/src/main/resources/components/orgPackage/view-org-info/viewOrgInfo.js\n+++ b/WebService/src/main/resources/components/orgPackage/view-org-info/viewOrgInfo.js\n@@ -10,18 +10,21 @@\n         },\n         data:{\n             viewOrgInfo:{\n+                componentName:\'组织管理信息\',\n                 index:0,\n                 flowComponent:\'viewOrgInfo\',\n                 orgName:\'\',\n-orgLevel:\'\',\n-parentOrgId:\'\',\n-description:\'\',\n-\n+                orgLevel:\'\',\n+                parentOrgId:\'\',\n+                description:\'\',\n+                branchOrgId:\'\',\n             }\n         },\n         _initMethod:function(){\n             //根据请求参数查询 查询 业主信息\n             vc.component._loadOrgInfoData();\n+\n+\n         },\n         _initEvent:function(){\n             vc.on(\'viewOrgInfo\',\'chooseOrg\',function(_app){\n@@ -33,6 +36,11 @@ description:\'\',\n                 vc.component.viewOrgInfo.index = _index;\n             });\n \n+            vc.on(\'viewOrgInfo\', \'_initInfo\', function(_info){\n+                //vc.component.viewOrgInfo.index = _index;\n+                vc.copyObject(_info,vc.component.viewOrgInfo);\n+            });\n+\n         },\n         methods:{\n \ndiff --git a/WebService/src/main/resources/components/staffPackage/addStaffStep/addStaffStep.html b/WebService/src/main/resources/components/staffPackage/addStaffStep/addStaffStep.html\nnew file mode 100644\nindex 000000000..af3cfc67f\n--- /dev/null\n+++ b/WebService/src/main/resources/components/staffPackage/addStaffStep/addStaffStep.html\n@@ -0,0 +1,35 @@\n+<div id="component">\n+\n+    <div class="java110_step">\n+        <div id="step"></div>\n+    </div>\n+\n+    <!-- 选择 应用信息 -->\n+    <div v-if="addStaffStepInfo.index == 0 or addStaffStepInfo.index == 1">\n+        <vc:create name="viewOrgInfo"\n+                   callBackListener="addStaffStep"\n+                   callBackFunction="notify"\n+        ></vc:create>\n+    </div>\n+    <div v-if="addStaffStepInfo.index == 2">\n+        <vc:create name="addStaff"\n+                   callBackListener="addStaffStep"\n+                   callBackFunction="notify"\n+        ></vc:create>\n+    </div>\n+\n+\n+    <div class="row">\n+        <div class="col-md-10"></div>\n+        <div class="col-md-2 " style="margin-bottom:10px; text-align:right">\n+            <button type="button" class="btn btn-secondary" v-on:click="_prevStep()">上一步</button>\n+            <button v-if="addStaffStepInfo.index != 2" type="button" class="btn btn-primary" style="margin-left:10px;"\n+                    v-on:click="_nextStep()">下一步\n+            </button>\n+            <button v-if="addStaffStepInfo.index == 2" type="button" class="btn btn-primary" style="margin-left:10px;"\n+                    v-on:click="_finishStep()">完成\n+            </button>\n+        </div>\n+    </div>\n+\n+</div>\ndiff --git a/WebService/src/main/resources/components/staffPackage/addStaffStep/addStaffStep.js b/WebService/src/main/resources/components/staffPackage/addStaffStep/addStaffStep.js\nnew file mode 100644\nindex 000000000..bd80afcf9\n--- /dev/null\n+++ b/WebService/src/main/resources/components/staffPackage/addStaffStep/addStaffStep.js\n@@ -0,0 +1,95 @@\n+/**\n+    入驻小区\n+**/\n+(function(vc){\n+    vc.extends({\n+        data:{\n+            addStaffStepInfo:{\n+                $step:{},\n+                index:0,\n+                infos:[],\n+                staffInfo:{\n+                    orgId:\'\',\n+                    username:\'\',\n+                    sex:\'\',\n+                    email:\'\',\n+                    tel:\'\',\n+                    address:\'\',\n+                }\n+            }\n+        },\n+        _initMethod:function(){\n+            vc.component._initStep();\n+        },\n+        _initEvent:function(){\n+            vc.on("addStaffStep", "notify", function(_info){\n+                vc.component.addStaffStepInfo.infos[vc.component.addStaffStepInfo.index] = _info;\n+\n+                if(vc.component.addStaffStepInfo.index == 1){\n+                   vc.component.addStaffStepInfo.staffInfo.orgId = _info.orgId\n+                }\n+\n+                if(vc.component.addStaffStepInfo.index == 2){\n+                    vc.copyObject(_info, vc.component.addStaffStepInfo.staffInfo);\n+                }\n+            });\n+\n+        },\n+        methods:{\n+            _initStep:function(){\n+                vc.component.addStaffStepInfo.$step = $("#step");\n+                vc.component.addStaffStepInfo.$step.step({\n+                    index: 0,\n+                    time: 500,\n+                    title: ["选择分公司","选择部门","员工信息"]\n+                });\n+                vc.component.addStaffStepInfo.index = vc.component.addStaffStepInfo.$step.getIndex();\n+            },\n+            _prevStep:function(){\n+                vc.component.addStaffStepInfo.$step.prevStep();\n+                vc.component.addStaffStepInfo.index = vc.component.addStaffStepInfo.$step.getIndex();\n+\n+                vc.emit(\'viewOrgInfo\', \'onIndex\', vc.component.addStaffStepInfo.index);\n+                vc.emit(\'addStaff\', \'onIndex\', vc.component.addStaffStepInfo.index);\n+\n+            },\n+            _nextStep:function(){\n+                var _currentData = vc.component.addStaffStepInfo.infos[vc.component.addStaffStepInfo.index];\n+                if( _currentData == null || _currentData == undefined){\n+                    vc.message("请选择或填写必选信息");\n+                    return ;\n+                }\n+                vc.component.addStaffStepInfo.$step.nextStep();\n+                vc.component.addStaffStepInfo.index = vc.component.addStaffStepInfo.$step.getIndex();\n+\n+                 vc.emit(\'viewOrgInfo\', \'onIndex\', vc.component.addStaffStepInfo.index);\n+                vc.emit(\'addStaff\', \'onIndex\', vc.component.addStaffStepInfo.index);\n+\n+            },\n+            _finishStep:function(){\n+               vc.http.post(\n+                   \'addStaffStepBinding\',\n+                   \'binding\',\n+                   JSON.stringify(vc.component.addStaffStepInfo.staffInfo),\n+                   {\n+                       emulateJSON:true\n+                    },\n+                    function(json,res){\n+                       if(res.status == 200){\n+\n+                           vc.message(\'处理成功\',true);\n+                           //关闭model\n+                           vc.jumpToPage("/flow/staff?" + vc.objToGetParam(JSON.parse(json)));\n+                           return ;\n+                       }\n+                       vc.message(json);\n+                    },\n+                    function(errInfo,error){\n+                       console.log(\'请求失败处理\');\n+\n+                       vc.message(errInfo);\n+                    });\n+            }\n+        }\n+    });\n+})(window.vc);\ndiff --git a/WebService/src/main/resources/components/staffPackage/addStaffView/addStaffView.html b/WebService/src/main/resources/components/staffPackage/addStaffView/addStaffView.html\nnew file mode 100644\nindex 000000000..946fe3f3f\n--- /dev/null\n+++ b/WebService/src/main/resources/components/staffPackage/addStaffView/addStaffView.html\n@@ -0,0 +1,49 @@\n+<div class="row">\n+    <div class="col-lg-12">\n+        <div class="ibox">\n+            <div class="ibox-title">\n+                <h5>添加员工</h5>\n+                <div class="ibox-tools" style="top:10px;">\n+\n+                </div>\n+            </div>\n+            <div class="ibox-content">\n+\n+                <div class="form-group row">\n+         <label class="col-sm-2 col-form-label">员工名称</label>\n+         <div class="col-sm-10">\n+           <input v-model="addStaffViewInfo.username"                   type="text" placeholder="必填，请填写员工名称" class="form-control">\n+         </div>\n+</div>\n+<div class="form-group row">\n+         <label class="col-sm-2 col-form-label">员工性别</label>\n+         <div class="col-sm-10">\n+<select class="custom-select" v-model="addStaffViewInfo.sex">\n+         <option selected  disabled value="">必填，请选择员工性别</option>\n+         <option  value="1">男</option>\n+<option  value="0">女</option>\n+  </select>         </div>\n+</div>\n+<div class="form-group row">\n+         <label class="col-sm-2 col-form-label">员工邮箱</label>\n+         <div class="col-sm-10">\n+           <input v-model="addStaffViewInfo.email"                   type="text" placeholder="必填，请填写员工邮箱" class="form-control">\n+         </div>\n+</div>\n+<div class="form-group row">\n+         <label class="col-sm-2 col-form-label">手机</label>\n+         <div class="col-sm-10">\n+           <input v-model="addStaffViewInfo.tel"                   type="text" placeholder="选填，请填写手机" class="form-control">\n+         </div>\n+</div>\n+<div class="form-group row">\n+         <label class="col-sm-2 col-form-label">家庭住址</label>\n+         <div class="col-sm-10">\n+           <input v-model="addStaffViewInfo.address"                   type="text" placeholder="必填，请填写家庭住址" class="form-control">\n+         </div>\n+</div>\n+\n+            </div>\n+        </div>\n+    </div>\n+</div>\ndiff --git a/WebService/src/main/resources/components/staffPackage/addStaffView/addStaffView.js b/WebService/src/main/resources/components/staffPackage/addStaffView/addStaffView.js\nnew file mode 100644\nindex 000000000..d3e9e1f76\n--- /dev/null\n+++ b/WebService/src/main/resources/components/staffPackage/addStaffView/addStaffView.js\n@@ -0,0 +1,108 @@\n+(function(vc){\n+\n+    vc.extends({\n+        propTypes: {\n+           callBackListener:vc.propTypes.string, //父组件名称\n+           callBackFunction:vc.propTypes.string //父组件监听方法\n+        },\n+        data:{\n+            addStaffViewInfo:{\n+                flowComponent:\'addStaffView\',\n+                username:\'\',\n+                sex:\'\',\n+                email:\'\',\n+                tel:\'\',\n+                address:\'\',\n+            }\n+        },\n+        watch:{\n+            addStaffViewInfo:{\n+                deep: true,\n+                handler:function(){\n+                    vc.component.saveAddStaffInfo();\n+                }\n+             }\n+        },\n+         _initMethod:function(){\n+\n+         },\n+         _initEvent:function(){\n+\n+            vc.on(\'addStaffViewInfo\', \'onIndex\', function(_index){\n+                vc.component.addStaffViewInfo.index = _index;\n+            });\n+        },\n+        methods:{\n+            addStaffValidate(){\n+                return vc.validate.validate({\n+                    addStaffViewInfo:vc.component.addStaffViewInfo\n+                },{\n+                    \'addStaffViewInfo.username\':[\n+{\n+                            limit:"required",\n+                            param:"",\n+                            errInfo:"员工名称不能为空"\n+                        },\n+ {\n+                            limit:"maxin",\n+                            param:"2,10",\n+                            errInfo:"员工名称长度必须在2位至10位"\n+                        },\n+                    ],\n+\'addStaffViewInfo.sex\':[\n+{\n+                            limit:"required",\n+                            param:"",\n+                            errInfo:"员工性别不能为空"\n+                        },\n+ {\n+                            limit:"num",\n+                            param:"",\n+                            errInfo:"员工性别不能为空"\n+                        },\n+                    ],\n+\'addStaffViewInfo.email\':[\n+{\n+                            limit:"required",\n+                            param:"",\n+                            errInfo:"员工邮箱不能为空"\n+                        },\n+ {\n+                            limit:"email",\n+                            param:"",\n+                            errInfo:"员工邮箱不是有效邮箱"\n+                        },\n+                    ],\n+\'addStaffViewInfo.tel\':[\n+ {\n+                            limit:"photo",\n+                            param:"",\n+                            errInfo:"联系方式不是有效手机"\n+                        },\n+                    ],\n+\'addStaffViewInfo.address\':[\n+{\n+                            limit:"required",\n+                            param:"",\n+                            errInfo:"家庭住址不能为空"\n+                        },\n+ {\n+                            limit:"maxLength",\n+                            param:"200",\n+                            errInfo:"家庭住址不能超过200位"\n+                        },\n+                    ],\n+\n+                });\n+            },\n+            saveAddStaffInfo:function(){\n+                if(vc.component.addStaffValidate()){\n+                    //侦听回传\n+                    vc.emit($props.callBackListener,$props.callBackFunction, vc.component.addStaffViewInfo);\n+                    return ;\n+                }\n+            }\n+        }\n+    });\n+\n+})(window.vc);\ndiff --git a/WebService/src/main/resources/views/addStaffStepFlow.html b/WebService/src/main/resources/views/addStaffStepFlow.html\nnew file mode 100644\nindex 000000000..7a4429cca\n--- /dev/null\n+++ b/WebService/src/main/resources/views/addStaffStepFlow.html\n@@ -0,0 +1,38 @@\n+<!DOCTYPE html>\n+<html lang="en"\n+      xmlns="http://www.w3.org/1999/xhtml"\n+      xmlns:th="http://www.thymeleaf.org"\n+      xmlns:vc="http://www.thymeleaf.org">\n+<head>\n+    <meta charset="UTF-8"/>\n+    <title>添加员工|java110</title>\n+    <vc:create name="commonTop"></vc:create>\n+    <link href="/css/jquery.step.css" rel="stylesheet"/>\n+    <script src="/js/jquery.step.min.js" ></script>\n+</head>\n+<body>\n+<vc:create name="bodyTop"></vc:create>\n+<div id="wrapper">\n+    <vc:create name="menu"></vc:create>\n+\n+\n+    <div id="page-wrapper" class="gray-bg dashbard-1">\n+        <div class="row border-bottom">\n+            <vc:create name="nav"></vc:create>\n+        </div>\n+        <div class="wrapper wrapper-content" style="padding-bottom: 0px;">\n+            <vc:create name="breadcrumb"></vc:create>\n+        </div>\n+        <!-- id="component" -->\n+        <div class="wrapper wrapper-content animated fadeInRight">\n+            <vc:create name="addStaffStep"></vc:create>\n+        </div>\n+\n+        <vc:create name="copyright"></vc:create>\n+\n+    </div>\n+</div>\n+\n+<vc:create name="commonBottom"></vc:create>\n+</body>\n+</html>\ndiff --git a/java110-code-generator/src/main/resources/relationship/template_1.json b/java110-code-generator/src/main/resources/relationship/template_1.json\nindex d87c16b34..094beed8f 100644\n--- a/java110-code-generator/src/main/resources/relationship/template_1.json\n+++ b/java110-code-generator/src/main/resources/relationship/template_1.json\n@@ -1,65 +1,65 @@\n {\n-  "templateName":"添加业主",\n-  "templateCode":"addOwner",\n-  "templateKey":"ownerId",\n-  "templateKeyName":"业主ID",\n-  "package": "ownerPackage",\n-  "successUrl": "/flow/ownerFlow",\n+  "templateName":"添加员工",\n+  "templateCode":"addStaffStep",\n+  "templateKey":"userId",\n+  "templateKeyName":"员工ID",\n+  "package": "staffPackage",\n+  "successUrl": "/flow/staff",\n   "needAffirm": false,\n   "flows":[\n     {\n       "index": 0,\n-      "code":"floor",\n-      "flowKey": "floorId",\n-      "cnCode":"选择楼栋",\n-      "vcName":"viewFloorInfo",\n-      "businessName": "businessFloor",\n-      "businessType": "BUSINESS_TYPE_SAVE_FLOOR_INFO",\n+      "code":"branchOrg",\n+      "flowKey": "branchOrgId",\n+      "cnCode":"选择分公司",\n+      "vcName":"viewOrgInfo",\n+      "businessName": "businessOrg",\n+      "businessType": "BUSINESS_TYPE_SAVE_ORG_INFO",\n       "existsComponent": true\n     },\n     {\n       "index": 1,\n-      "code":"room",\n-      "flowKey": "roomId",\n-      "cnCode":"选择房屋",\n-      "vcName":"sellRoomSelectRoom",\n-      "businessName": "businessRoom",\n-      "businessType": "BUSINESS_TYPE_SAVE_ROOM_INFO",\n+      "code":"departmentOrg",\n+      "flowKey": "departmentOrgId",\n+      "cnCode":"选择部门",\n+      "vcName":"viewOrgInfo",\n+      "businessName": "businessOrg",\n+      "businessType": "BUSINESS_TYPE_SAVE_ORG_INFO",\n       "existsComponent": true\n     },\n     {\n       "index": 2,\n-      "code":"owner",\n-      "flowKey": "ownerId",\n-      "cnCode":"填写业主信息",\n-      "vcName":"addOwner",\n-      "businessName": "businessOwner",\n-      "businessType": "BUSINESS_TYPE_SAVE_OWNER_INFO",\n+      "code":"staff",\n+      "flowKey": "userId",\n+      "cnCode":"填写员工信息",\n+      "vcName":"addStaff",\n+      "businessName": "businessStaff",\n+      "businessType": "BUSINESS_TYPE_SAVE_STAFF_INFO",\n       "existsComponent": false\n     }\n   ],\n   "components": {\n-      "addOwner": {\n-        "templateName":"添加业主",\n-        "templateCode":"addOwner",\n-        "package": "ownerPackage",\n+      "addStaff": {\n+        "templateName":"添加员工",\n+        "templateCode":"addStaff",\n+        "package": "staffPackage",\n         "columns":[\n           {\n-            "code":"name",\n-            "cnCode":"名称",\n-            "desc":"必填，名称不能为空",\n+            "code":"username",\n+            "cnCode":"员工名称",\n+            "desc":"必填，员工名称不能为空",\n             "required":true,\n             "hasDefaultValue":false,\n             "inputType":"input",\n             "limit":"maxin",\n             "limitParam":"2,10",\n-            "limitErrInfo":"名称长度必须在2位至10位",\n+            "limitErrInfo":"员工名称长度必须在2位至10位",\n             "show": true\n           },\n           {\n             "code":"sex",\n-            "cnCode":"性别",\n-            "desc":"必填，请选择性别",\n+            "cnCode":"员工性别",\n+            "desc":"必填，请选择员工性别",\n             "required":true,\n             "hasDefaultValue":false,\n             "inputType":"select",\n@@ -67,46 +67,46 @@\n             "selectValueName":"男,女",\n             "limit":"num",\n             "limitParam":"",\n-            "limitErrInfo":"性别不能为空",\n+            "limitErrInfo":"员工性别不能为空",\n             "show": true\n           },\n           {\n-            "code":"age",\n-            "cnCode":"年龄",\n-            "desc":"必填，请填写年龄",\n+            "code":"email",\n+            "cnCode":"员工邮箱",\n+            "desc":"必填，请填写员工邮箱",\n             "required":true,\n             "hasDefaultValue":false,\n             "defaultValue":"",\n             "inputType":"input",\n-            "limit":"num",\n+            "limit":"email",\n             "limitParam":"",\n-            "limitErrInfo":"年龄不是有效的数字",\n-            "show": false\n+            "limitErrInfo":"员工邮箱不是有效邮箱",\n+            "show": true\n           },\n           {\n-            "code":"link",\n+            "code":"tel",\n             "cnCode":"手机",\n             "desc":"必填，请填写联系方式",\n             "required":false,\n             "hasDefaultValue":false,\n             "defaultValue":"",\n-            "inputType":"textarea",\n-            "limit":"maxLength",\n-            "limitParam":"2000",\n-            "limitErrInfo":"输出模板不能超过2000",\n-            "show": false\n+            "inputType":"input",\n+            "limit":"photo",\n+            "limitParam":"",\n+            "limitErrInfo":"联系方式不是有效手机",\n+            "show": true\n           },\n           {\n-            "code":"remark",\n-            "cnCode":"备注",\n-            "desc":"可填，请填写备注",\n-            "required":false,\n+            "code":"address",\n+            "cnCode":"家庭住址",\n+            "desc":"必填，写家庭住址",\n+            "required":true,\n             "hasDefaultValue":false,\n             "defaultValue":"",\n-            "inputType":"textarea",\n+            "inputType":"input",\n             "limit":"maxLength",\n             "limitParam":"200",\n-            "limitErrInfo":"备注长度不能超过200位",\n+            "limitErrInfo":"家庭住址不能超过200位",\n             "show": false\n           }\n         ]\ndiff --git a/java110-code-generator/src/main/resources/relationship/template_owner.json b/java110-code-generator/src/main/resources/relationship/template_owner.json\nnew file mode 100644\nindex 000000000..d87c16b34\n--- /dev/null\n+++ b/java110-code-generator/src/main/resources/relationship/template_owner.json\n@@ -0,0 +1,115 @@\n+{\n+  "templateName":"添加业主",\n+  "templateCode":"addOwner",\n+  "templateKey":"ownerId",\n+  "templateKeyName":"业主ID",\n+  "package": "ownerPackage",\n+  "successUrl": "/flow/ownerFlow",\n+  "needAffirm": false,\n+  "flows":[\n+    {\n+      "index": 0,\n+      "code":"floor",\n+      "flowKey": "floorId",\n+      "cnCode":"选择楼栋",\n+      "vcName":"viewFloorInfo",\n+      "businessName": "businessFloor",\n+      "businessType": "BUSINESS_TYPE_SAVE_FLOOR_INFO",\n+      "existsComponent": true\n+    },\n+    {\n+      "index": 1,\n+      "code":"room",\n+      "flowKey": "roomId",\n+      "cnCode":"选择房屋",\n+      "vcName":"sellRoomSelectRoom",\n+      "businessName": "businessRoom",\n+      "businessType": "BUSINESS_TYPE_SAVE_ROOM_INFO",\n+      "existsComponent": true\n+    },\n+    {\n+      "index": 2,\n+      "code":"owner",\n+      "flowKey": "ownerId",\n+      "cnCode":"填写业主信息",\n+      "vcName":"addOwner",\n+      "businessName": "businessOwner",\n+      "businessType": "BUSINESS_TYPE_SAVE_OWNER_INFO",\n+      "existsComponent": false\n+    }\n+  ],\n+  "components": {\n+      "addOwner": {\n+        "templateName":"添加业主",\n+        "templateCode":"addOwner",\n+        "package": "ownerPackage",\n+        "columns":[\n+          {\n+            "code":"name",\n+            "cnCode":"名称",\n+            "desc":"必填，名称不能为空",\n+            "required":true,\n+            "hasDefaultValue":false,\n+            "inputType":"input",\n+            "limit":"maxin",\n+            "limitParam":"2,10",\n+            "limitErrInfo":"名称长度必须在2位至10位",\n+            "show": true\n+          },\n+          {\n+            "code":"sex",\n+            "cnCode":"性别",\n+            "desc":"必填，请选择性别",\n+            "required":true,\n+            "hasDefaultValue":false,\n+            "inputType":"select",\n+            "selectValue":"1,0",\n+            "selectValueName":"男,女",\n+            "limit":"num",\n+            "limitParam":"",\n+            "limitErrInfo":"性别不能为空",\n+            "show": true\n+          },\n+          {\n+            "code":"age",\n+            "cnCode":"年龄",\n+            "desc":"必填，请填写年龄",\n+            "required":true,\n+            "hasDefaultValue":false,\n+            "defaultValue":"",\n+            "inputType":"input",\n+            "limit":"num",\n+            "limitParam":"",\n+            "limitErrInfo":"年龄不是有效的数字",\n+            "show": false\n+          },\n+          {\n+            "code":"link",\n+            "cnCode":"手机",\n+            "desc":"必填，请填写联系方式",\n+            "required":false,\n+            "hasDefaultValue":false,\n+            "defaultValue":"",\n+            "inputType":"textarea",\n+            "limit":"maxLength",\n+            "limitParam":"2000",\n+            "limitErrInfo":"输出模板不能超过2000",\n+            "show": false\n+          },\n+          {\n+            "code":"remark",\n+            "cnCode":"备注",\n+            "desc":"可填，请填写备注",\n+            "required":false,\n+            "hasDefaultValue":false,\n+            "defaultValue":"",\n+            "inputType":"textarea",\n+            "limit":"maxLength",\n+            "limitParam":"200",\n+            "limitErrInfo":"备注长度不能超过200位",\n+            "show": false\n+          }\n+        ]\n+      }\n+  }\n+}\n\\ No newline at end of file\ndiff --git a/java110-utils/src/main/java/com/java110/utils/constant/PrivilegeCodeConstant.java b/java110-utils/src/main/java/com/java110/utils/constant/PrivilegeCodeConstant.java\nindex 6b9bee9db..4017b3146 100644\n--- a/java110-utils/src/main/java/com/java110/utils/constant/PrivilegeCodeConstant.java\n+++ b/java110-utils/src/main/java/com/java110/utils/constant/PrivilegeCodeConstant.java\n@@ -50,7 +50,6 @@ public final class PrivilegeCodeConstant {\n     public static final String PRIVILEGE_CAR = "500201906019";\n \n \n-\n     //停车费用配置权限\n     public static final String PRIVILEGE_PARKING_SPACE_CONFIG_FEE = "500201904021";\n \n@@ -79,7 +78,7 @@ public final class PrivilegeCodeConstant {\n     /**\n      * 访客相关权限常量\n      */\n-    public static final String AGENT_HAS_LIST_VISIT="500201907033";\n+    public static final String AGENT_HAS_LIST_VISIT = "500201907033";\n \n     /**\n      * 服务提供权限编码\n@@ -103,5 +102,7 @@ public final class PrivilegeCodeConstant {\n     public static final String LIST_ORG = "502019100721900005";\n \n \n+    public static final String ADD_STAFF = "";\n+\n \n }\ndiff --git a/java110-utils/src/main/java/com/java110/utils/constant/ServiceCodeAddStaffStepConstant.java b/java110-utils/src/main/java/com/java110/utils/constant/ServiceCodeAddStaffStepConstant.java\nnew file mode 100644\nindex 000000000..196f5911c\n--- /dev/null\n+++ b/java110-utils/src/main/java/com/java110/utils/constant/ServiceCodeAddStaffStepConstant.java\n@@ -0,0 +1,16 @@\n+package com.java110.utils.constant;\n+\n+/**\n+ * 添加员工常量类\n+ * Created by wuxw on 2017/5/20.\n+ */\n+public class ServiceCodeAddStaffStepConstant {\n+\n+    /**\n+     * 添加 添加员工\n+     */\n+    public static final String BINDING_ADDSTAFFSTEP = "staff.addStaffStep";\n+\n+\n+\n+}\n', 'commit_subject': '优化员工功能', 'repo_name': 'java110/MicroCommunity', 'committer': {'name': 'wuxw', 'email': '75a186818c0bf2138372dfcfa3e032ffd96026e2@qq.com', 'time_sec': '1571144011', 'tz_offset': '480', 'date': {'seconds': '1571144011'}}, 'commit_tree': '346b0bf36a96ca5c9b6247d28ebffbb20af70519', 'commit_message': '优化员工功能\n', 'language_name': 'JavaScript', 'license': 'apache-2.0', 'hunks': '@@ -0,0 +1,16 @@\n+package com.java110.utils.constant;\n+\n+/**\n+ * 添加员工常量类\n+ * Created by wuxw on 2017/5/20.\n+ */\n+public class ServiceCodeAddStaffStepConstant {\n+\n+    /**\n+     * 添加 添加员工\n+     */\n+    public static final String BINDING_ADDSTAFFSTEP = "staff.addStaffStep";\n+\n+\n+\n+}\n', 'addition_count': 16, 'deletion_count': 0, 'src_file': '/dev/null', 'tgt_file': 'b/java110-utils/src/main/java/com/java110/utils/constant/ServiceCodeAddStaffStepConstant.java', 'file_extension': '.java', 'before_file': 'ADDFILE', 'message': '优化员工功能\n', 'author_name': 'wuxw', 'lang': 'java'}